diff --git a/klp-wms/src/main/java/com/klp/controller/WmsEmployeeTransferController.java b/klp-wms/src/main/java/com/klp/controller/WmsEmployeeTransferController.java index dbb44e45..46fe1329 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsEmployeeTransferController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsEmployeeTransferController.java @@ -96,4 +96,14 @@ public class WmsEmployeeTransferController extends BaseController { @PathVariable Long[] transferIds) { return toAjax(iWmsEmployeeTransferService.deleteWithValidByIds(Arrays.asList(transferIds), true)); } + + /** + * 员工转岗 + */ + @Log(title = "员工转岗", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping("/transfer") + public R transfer(@Validated(AddGroup.class) @RequestBody WmsEmployeeTransferBo bo) { + return toAjax(iWmsEmployeeTransferService.employeeTransfer(bo)); + } } diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsEmployeeTransferVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsEmployeeTransferVo.java index 8d355d32..d3d96d7d 100644 --- a/klp-wms/src/main/java/com/klp/domain/vo/WmsEmployeeTransferVo.java +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsEmployeeTransferVo.java @@ -6,6 +6,7 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import com.klp.common.annotation.ExcelDictFormat; import com.klp.common.convert.ExcelDictConvert; +import com.klp.domain.WmsEmployeeInfo; import lombok.Data; @@ -94,5 +95,9 @@ public class WmsEmployeeTransferVo { @ExcelProperty(value = "备注") private String remark; + /** + * 员工信息 + */ + private WmsEmployeeInfo wmsEmployeeInfo; } diff --git a/klp-wms/src/main/java/com/klp/service/IWmsEmployeeTransferService.java b/klp-wms/src/main/java/com/klp/service/IWmsEmployeeTransferService.java index e1c07f6e..767342af 100644 --- a/klp-wms/src/main/java/com/klp/service/IWmsEmployeeTransferService.java +++ b/klp-wms/src/main/java/com/klp/service/IWmsEmployeeTransferService.java @@ -46,4 +46,9 @@ public interface IWmsEmployeeTransferService { * 校验并批量删除员工转岗记录信息 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 员工转岗 + */ + Boolean employeeTransfer(WmsEmployeeTransferBo bo); } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsEmployeeTransferServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsEmployeeTransferServiceImpl.java index dfd1a88e..a10b790d 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsEmployeeTransferServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsEmployeeTransferServiceImpl.java @@ -9,10 +9,13 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.klp.common.utils.StringUtils; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import com.klp.domain.bo.WmsEmployeeTransferBo; import com.klp.domain.vo.WmsEmployeeTransferVo; import com.klp.domain.WmsEmployeeTransfer; +import com.klp.domain.WmsEmployeeInfo; import com.klp.mapper.WmsEmployeeTransferMapper; +import com.klp.mapper.WmsEmployeeInfoMapper; import com.klp.service.IWmsEmployeeTransferService; import java.util.List; @@ -30,13 +33,19 @@ import java.util.Collection; public class WmsEmployeeTransferServiceImpl implements IWmsEmployeeTransferService { private final WmsEmployeeTransferMapper baseMapper; + private final WmsEmployeeInfoMapper wmsEmployeeInfoMapper; /** * 查询员工转岗记录 */ @Override public WmsEmployeeTransferVo queryById(Long transferId){ - return baseMapper.selectVoById(transferId); + WmsEmployeeTransferVo vo = baseMapper.selectVoById(transferId); + if (vo != null && vo.getInfoId() != null) { + WmsEmployeeInfo employee = wmsEmployeeInfoMapper.selectById(vo.getInfoId()); + vo.setWmsEmployeeInfo(employee); + } + return vo; } /** @@ -46,6 +55,12 @@ public class WmsEmployeeTransferServiceImpl implements IWmsEmployeeTransferServi public TableDataInfo queryPageList(WmsEmployeeTransferBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + for (WmsEmployeeTransferVo vo : result.getRecords()) { + if (vo.getInfoId() != null) { + WmsEmployeeInfo employee = wmsEmployeeInfoMapper.selectById(vo.getInfoId()); + vo.setWmsEmployeeInfo(employee); + } + } return TableDataInfo.build(result); } @@ -55,7 +70,14 @@ public class WmsEmployeeTransferServiceImpl implements IWmsEmployeeTransferServi @Override public List queryList(WmsEmployeeTransferBo bo) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); + List list = baseMapper.selectVoList(lqw); + for (WmsEmployeeTransferVo vo : list) { + if (vo.getInfoId() != null) { + WmsEmployeeInfo employee = wmsEmployeeInfoMapper.selectById(vo.getInfoId()); + vo.setWmsEmployeeInfo(employee); + } + } + return list; } private LambdaQueryWrapper buildQueryWrapper(WmsEmployeeTransferBo bo) { @@ -115,4 +137,53 @@ public class WmsEmployeeTransferServiceImpl implements IWmsEmployeeTransferServi } return baseMapper.deleteBatchIds(ids) > 0; } + + /** + * 员工转岗 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean employeeTransfer(WmsEmployeeTransferBo bo) { + if (bo.getInfoId() == null) { + throw new RuntimeException("员工ID不能为空"); + } + WmsEmployeeInfo employee = wmsEmployeeInfoMapper.selectById(bo.getInfoId()); + if (employee == null) { + throw new RuntimeException("员工不存在"); + } + if (employee.getIsLeave() != null && employee.getIsLeave() == 1) { + throw new RuntimeException("员工已离职,无法转岗"); + } + + bo.setOldDept(employee.getDept()); + bo.setOldJobType(employee.getJobType()); + + WmsEmployeeInfo update = new WmsEmployeeInfo(); + update.setInfoId(bo.getInfoId()); + if (bo.getNewDept() != null) { + update.setDept(bo.getNewDept()); + } + if (bo.getNewJobType() != null) { + update.setJobType(bo.getNewJobType()); + } + boolean flag = wmsEmployeeInfoMapper.updateById(update) > 0; + if (!flag) { + return false; + } + + WmsEmployeeTransfer transfer = new WmsEmployeeTransfer(); + transfer.setInfoId(bo.getInfoId()); + transfer.setOldDept(bo.getOldDept()); + transfer.setOldJobType(bo.getOldJobType()); + transfer.setNewDept(bo.getNewDept()); + transfer.setNewJobType(bo.getNewJobType()); + transfer.setTransferTime(bo.getTransferTime()); + transfer.setTransferReason(bo.getTransferReason()); + transfer.setTransferHandler(bo.getTransferHandler()); + transfer.setAttachment(bo.getAttachment()); + transfer.setRemark(bo.getRemark()); + transfer.setCreateBy(bo.getCreateBy()); + transfer.setApprovalStatus(1); + return baseMapper.insert(transfer) > 0; + } }