【HrPosition】职位业务优化

pull/3/head
chenjinlong 2021-02-02 14:18:23 +08:00
parent c08308a7d4
commit 058bbe638a
3 changed files with 84 additions and 123 deletions

View File

@ -17,7 +17,7 @@ import javax.annotation.Resource;
/**
*
*
* @author fengshuonan
* @author chenjinlong
* @date 2020/11/18 21:56
*/
@RestController
@ -30,7 +30,7 @@ public class HrPositionController {
/**
*
*
* @author fengshuonan
* @author chenjinlong
* @date 2020/11/04 11:07
*/
@PostResource(name = "添加系统职位", path = "/hrPosition/add")
@ -42,7 +42,7 @@ public class HrPositionController {
/**
*
*
* @author fengshuonan
* @author chenjinlong
* @date 2020/11/04 11:07
*/
@PostResource(name = "编辑系统职位", path = "/hrPosition/edit")
@ -54,19 +54,19 @@ public class HrPositionController {
/**
*
*
* @author fengshuonan
* @author chenjinlong
* @date 2020/11/04 11:07
*/
@PostResource(name = "删除系统职位", path = "/hrPosition/delete")
public ResponseData delete(@RequestBody @Validated(HrPositionRequest.delete.class) HrPositionRequest hrPositionRequest) {
hrPositionService.delete(hrPositionRequest);
hrPositionService.del(hrPositionRequest);
return new SuccessResponseData();
}
/**
*
*
* @author fengshuonan
* @author chenjinlong
* @date 2020/11/04 11:07
*/
@PostResource(name = "更新职位状态", path = "/hrPosition/updateStatus")
@ -78,7 +78,7 @@ public class HrPositionController {
/**
*
*
* @author fengshuonan
* @author chenjinlong
* @date 2020/11/04 11:07
*/
@GetResource(name = "查看详情系统职位", path = "/hrPosition/detail")
@ -89,23 +89,23 @@ public class HrPositionController {
/**
*
*
* @author fengshuonan
* @author chenjinlong
* @date 2020/11/04 11:07
*/
@GetResource(name = "分页查询系统职位", path = "/hrPosition/page")
public ResponseData page(HrPositionRequest hrPositionRequest) {
return new SuccessResponseData(hrPositionService.page(hrPositionRequest));
return new SuccessResponseData(hrPositionService.findPage(hrPositionRequest));
}
/**
*
*
* @author fengshuonan
* @author chenjinlong
* @date 2020/11/04 11:07
*/
@GetResource(name = "获取全部系统职位", path = "/hrPosition/list")
public ResponseData list(HrPositionRequest hrPositionRequest) {
return new SuccessResponseData(hrPositionService.list(hrPositionRequest));
return new SuccessResponseData(hrPositionService.findList(hrPositionRequest));
}
}

View File

@ -10,7 +10,7 @@ import java.util.List;
/**
*
*
* @author fengshuonan
* @author chenjinlong
* @date 2020/11/04 11:07
*/
public interface HrPositionService extends IService<HrPosition> {
@ -19,76 +19,66 @@ public interface HrPositionService extends IService<HrPosition> {
*
*
* @param hrPositionRequest
* @author fengshuonan
* @author chenjinlong
* @date 2020/11/04 11:07
*/
void add(HrPositionRequest hrPositionRequest);
/**
*
*
* @param hrPositionRequest
* @author chenjinlong
* @date 2020/11/04 11:07
*/
void del(HrPositionRequest hrPositionRequest);
/**
*
*
* @param hrPositionRequest
* @author fengshuonan
* @author chenjinlong
* @date 2020/11/04 11:07
*/
void edit(HrPositionRequest hrPositionRequest);
/**
*
*
* @param hrPositionRequest
* @author fengshuonan
* @date 2020/11/04 11:07
*/
void delete(HrPositionRequest hrPositionRequest);
/**
*
*
* @param hrPositionRequest
* @author fengshuonan
* @author chenjinlong
* @date 2020/11/18 23:00
*/
void updateStatus(HrPositionRequest hrPositionRequest);
/**
*
*
*
* @param hrPositionRequest
* @return
* @author fengshuonan
* @author chenjinlong
* @date 2020/11/04 11:07
*/
HrPosition detail(HrPositionRequest hrPositionRequest);
/**
*
*
* @param hrPositionRequest
* @return
* @author fengshuonan
* @date 2020/11/04 11:07
*/
PageResult<HrPosition> page(HrPositionRequest hrPositionRequest);
/**
*
*
*
* @param hrPositionRequest
* @return
* @author fengshuonan
* @author chenjinlong
* @date 2020/11/04 11:07
*/
List<HrPosition> list(HrPositionRequest hrPositionRequest);
List<HrPosition> findList(HrPositionRequest hrPositionRequest);
/**
* id
*
*
* @param positionIds id
* @return
* @author fengshuonan
* @date 2020/11/19 23:22
* @param hrPositionRequest
* @return
* @author chenjinlong
* @date 2020/11/04 11:07
*/
List<String> getPositionNamesByPositionIds(List<Long> positionIds);
PageResult<HrPosition> findPage(HrPositionRequest hrPositionRequest);
}

View File

@ -19,11 +19,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;
/**
*
@ -50,24 +48,16 @@ public class HrPositionServiceImpl extends ServiceImpl<HrPositionMapper, HrPosit
@Override
public void edit(HrPositionRequest hrPositionRequest) {
HrPosition sysPosition = this.querySysPosition(hrPositionRequest);
HrPosition sysPosition = this.querySysPositionById(hrPositionRequest);
BeanUtil.copyProperties(hrPositionRequest, sysPosition);
// 不能修改状态,用修改状态接口修改状态
sysPosition.setStatusFlag(null);
this.updateById(sysPosition);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(HrPositionRequest hrPositionRequest) {
public void del(HrPositionRequest hrPositionRequest) {
HrPosition sysPosition = this.querySysPositionById(hrPositionRequest);
HrPosition sysPosition = this.querySysPosition(hrPositionRequest);
// 该职位下是否有员工
// 职位有绑定员工,不能删除
// 该职位下是否有员工,如果有将不能删除
Boolean userOrgFlag = userOrgServiceApi.getUserOrgFlag(null, sysPosition.getPositionId());
if (userOrgFlag) {
throw new SystemModularException(PositionExceptionEnum.CANT_DELETE_POSITION);
@ -75,92 +65,43 @@ public class HrPositionServiceImpl extends ServiceImpl<HrPositionMapper, HrPosit
// 逻辑删除
sysPosition.setDelFlag(YesOrNotEnum.Y.getCode());
this.updateById(sysPosition);
}
@Override
public void updateStatus(HrPositionRequest hrPositionRequest) {
// 先查询有没有这条记录,再更新
HrPosition sysPosition = this.querySysPosition(hrPositionRequest);
HrPosition sysPosition = this.querySysPositionById(hrPositionRequest);
sysPosition.setStatusFlag(hrPositionRequest.getStatusFlag());
this.updateById(sysPosition);
}
@Override
public HrPosition detail(HrPositionRequest hrPositionRequest) {
return this.querySysPosition(hrPositionRequest);
return this.querySysPositionById(hrPositionRequest);
}
@Override
public PageResult<HrPosition> page(HrPositionRequest hrPositionRequest) {
LambdaQueryWrapper<HrPosition> wrapper = createWrapper(hrPositionRequest);
public List<HrPosition> findList(HrPositionRequest hrPositionRequest) {
LambdaQueryWrapper<HrPosition> wrapper = this.createWrapper(hrPositionRequest);
return this.list(wrapper);
}
@Override
public PageResult<HrPosition> findPage(HrPositionRequest hrPositionRequest) {
LambdaQueryWrapper<HrPosition> wrapper = this.createWrapper(hrPositionRequest);
Page<HrPosition> page = this.page(PageFactory.defaultPage(), wrapper);
return PageResultFactory.createPageResult(page);
}
@Override
public List<HrPosition> list(HrPositionRequest hrPositionRequest) {
LambdaQueryWrapper<HrPosition> wrapper = createWrapper(hrPositionRequest);
return this.list(wrapper);
}
@Override
public List<String> getPositionNamesByPositionIds(List<Long> positionIds) {
// 拼接查询条件
LambdaQueryWrapper<HrPosition> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(HrPosition::getPositionId, positionIds);
queryWrapper.select(HrPosition::getPositionName);
// 查询结果
List<HrPosition> sysPositions = this.list(queryWrapper);
// 把name组装起来
return sysPositions.stream().map(HrPosition::getPositionName).collect(Collectors.toList());
}
/**
*
* id
*
* @author fengshuonan
* @date 2020/11/6 18:35
* @return
* @author chenjinlong
* @date 2021/2/2 10:16
*/
private LambdaQueryWrapper<HrPosition> createWrapper(HrPositionRequest hrPositionRequest) {
LambdaQueryWrapper<HrPosition> queryWrapper = new LambdaQueryWrapper<>();
if (ObjectUtil.isNotNull(hrPositionRequest)) {
// 拼接职位名称条件
if (ObjectUtil.isNotEmpty(hrPositionRequest.getPositionName())) {
queryWrapper.like(HrPosition::getPositionName, hrPositionRequest.getPositionName());
}
// 拼接职位编码条件
if (ObjectUtil.isNotEmpty(hrPositionRequest.getPositionCode())) {
queryWrapper.eq(HrPosition::getPositionCode, hrPositionRequest.getPositionCode());
}
}
// 查询未删除状态的
queryWrapper.eq(HrPosition::getDelFlag, YesOrNotEnum.N.getCode());
// 根据排序升序排列,序号越小越在前
queryWrapper.orderByAsc(HrPosition::getPositionSort);
return queryWrapper;
}
/**
*
*
* @author fengshuonan
* @date 2020/11/18 22:59
*/
private HrPosition querySysPosition(HrPositionRequest hrPositionRequest) {
private HrPosition querySysPositionById(HrPositionRequest hrPositionRequest) {
HrPosition hrPosition = this.getById(hrPositionRequest.getPositionId());
if (ObjectUtil.isEmpty(hrPosition)) {
String userTip = StrUtil.format(PositionExceptionEnum.CANT_FIND_POSITION.getUserTip(), hrPositionRequest.getPositionId());
@ -168,4 +109,34 @@ public class HrPositionServiceImpl extends ServiceImpl<HrPositionMapper, HrPosit
}
return hrPosition;
}
/**
* QueryWrapper
*
* @return
* @author chenjinlong
* @date 2021/2/2 10:17
*/
private LambdaQueryWrapper<HrPosition> createWrapper(HrPositionRequest hrPositionRequest) {
LambdaQueryWrapper<HrPosition> queryWrapper = new LambdaQueryWrapper<>();
Long positionId = hrPositionRequest.getPositionId();
String positionName = hrPositionRequest.getPositionName();
String positionCode = hrPositionRequest.getPositionCode();
// SQL条件拼接
queryWrapper.eq(ObjectUtil.isNotNull(positionId), HrPosition::getPositionId, positionId);
queryWrapper.like(StrUtil.isNotEmpty(positionName), HrPosition::getPositionName, positionName);
queryWrapper.eq(StrUtil.isNotEmpty(positionCode), HrPosition::getPositionCode, positionCode);
// 查询未删除状态的
queryWrapper.eq(HrPosition::getDelFlag, YesOrNotEnum.N.getCode());
// 根据排序升序排列,序号越小越在前
queryWrapper.orderByAsc(HrPosition::getPositionSort);
return queryWrapper;
}
}