From 8fe459dae50942a75bddff350ea255179c06b62a Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Wed, 18 Mar 2026 11:03:43 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E6=B7=BB=E5=8A=A0=E5=91=98?= =?UTF-8?q?=E5=B7=A5=E8=BD=AC=E5=B2=97=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在IWmsEmployeeTransferService中新增employeeTransfer方法 - 在WmsEmployeeTransferController中添加transfer接口 - 实现WmsEmployeeTransferServiceImpl中的员工转岗业务逻辑 - 添加事务注解确保数据一致性 - 在查询方法中关联员工信息表获取完整数据 - 验证员工状态确保在职员工才能转岗 - 记录转岗前后的部门和岗位信息 - 更新WmsEmployeeTransferVo以包含员工信息字段 --- .../WmsEmployeeTransferController.java | 10 +++ .../klp/domain/vo/WmsEmployeeTransferVo.java | 5 ++ .../service/IWmsEmployeeTransferService.java | 5 ++ .../impl/WmsEmployeeTransferServiceImpl.java | 75 ++++++++++++++++++- 4 files changed, 93 insertions(+), 2 deletions(-) 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; + } }