From ae3eb2688ce9d30663ad3059171d685fa21477da Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Fri, 27 Feb 2026 09:39:20 +0800 Subject: [PATCH] =?UTF-8?q?feat(hrm):=20=E6=B7=BB=E5=8A=A0=E8=B5=84?= =?UTF-8?q?=E9=87=91=E8=B0=83=E9=85=8D=E7=94=B3=E8=AF=B7=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在BizStatusSyncHelper中新增HrmAppropriationReq相关依赖注入 - 实现资金调配申请的审批状态更新逻辑(approved/pending/rejected) - 在HrmFlowTaskServiceImpl中添加资金调配业务的数据查询支持 - 在IHrmAppropriationReqService接口中定义updateStatus方法 - 在HrmAppropriationReqServiceImpl中实现状态更新的具体逻辑 --- .../service/IHrmAppropriationReqService.java | 5 +++++ .../hrm/service/impl/BizStatusSyncHelper.java | 18 ++++++++++++++++++ .../impl/HrmAppropriationReqServiceImpl.java | 9 +++++++++ .../service/impl/HrmFlowTaskServiceImpl.java | 6 +++++- 4 files changed, 37 insertions(+), 1 deletion(-) diff --git a/fad-hrm/src/main/java/com/ruoyi/hrm/service/IHrmAppropriationReqService.java b/fad-hrm/src/main/java/com/ruoyi/hrm/service/IHrmAppropriationReqService.java index 59c3a8c..4629e65 100644 --- a/fad-hrm/src/main/java/com/ruoyi/hrm/service/IHrmAppropriationReqService.java +++ b/fad-hrm/src/main/java/com/ruoyi/hrm/service/IHrmAppropriationReqService.java @@ -26,6 +26,11 @@ public interface IHrmAppropriationReqService { Boolean updateByBo(HrmAppropriationReqBo bo); Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + *状态更新(draft/running/approved/rejected/canceled) + */ + Boolean updateStatus(Long bizId, String status); } diff --git a/fad-hrm/src/main/java/com/ruoyi/hrm/service/impl/BizStatusSyncHelper.java b/fad-hrm/src/main/java/com/ruoyi/hrm/service/impl/BizStatusSyncHelper.java index dac6a8c..89f51fe 100644 --- a/fad-hrm/src/main/java/com/ruoyi/hrm/service/impl/BizStatusSyncHelper.java +++ b/fad-hrm/src/main/java/com/ruoyi/hrm/service/impl/BizStatusSyncHelper.java @@ -4,10 +4,12 @@ import com.ruoyi.hrm.domain.HrmLeaveReq; import com.ruoyi.hrm.domain.HrmReimburseReq; import com.ruoyi.hrm.domain.HrmTravelReq; import com.ruoyi.hrm.domain.HrmSealReq; +import com.ruoyi.hrm.domain.HrmAppropriationReq; import com.ruoyi.hrm.mapper.HrmLeaveReqMapper; import com.ruoyi.hrm.mapper.HrmReimburseReqMapper; import com.ruoyi.hrm.mapper.HrmTravelReqMapper; import com.ruoyi.hrm.mapper.HrmSealReqMapper; +import com.ruoyi.hrm.mapper.HrmAppropriationReqMapper; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; @@ -23,6 +25,7 @@ public class BizStatusSyncHelper { private final HrmTravelReqMapper travelReqMapper; private final HrmSealReqMapper sealReqMapper; private final HrmReimburseReqMapper reimburseReqMapper; + private final HrmAppropriationReqMapper appropriationReqMapper; public void setBizApproved(String bizType, Long bizId) { if (bizType == null || bizId == null) return; @@ -46,6 +49,11 @@ public class BizStatusSyncHelper { u.setBizId(bizId); u.setStatus("approved"); reimburseReqMapper.updateById(u); + } else if ("appropriation".equalsIgnoreCase(bizType)) { + HrmAppropriationReq u = new HrmAppropriationReq(); + u.setBizId(bizId); + u.setStatus("approved"); + appropriationReqMapper.updateById(u); } } @@ -71,6 +79,11 @@ public class BizStatusSyncHelper { u.setBizId(bizId); u.setStatus("pending"); reimburseReqMapper.updateById(u); + } else if ("appropriation".equalsIgnoreCase(bizType)) { + HrmAppropriationReq u = new HrmAppropriationReq(); + u.setBizId(bizId); + u.setStatus("pending"); + appropriationReqMapper.updateById(u); } } @@ -96,6 +109,11 @@ public class BizStatusSyncHelper { u.setBizId(bizId); u.setStatus("rejected"); reimburseReqMapper.updateById(u); + } else if ("appropriation".equalsIgnoreCase(bizType)) { + HrmAppropriationReq u = new HrmAppropriationReq(); + u.setBizId(bizId); + u.setStatus("rejected"); + appropriationReqMapper.updateById(u); } } } diff --git a/fad-hrm/src/main/java/com/ruoyi/hrm/service/impl/HrmAppropriationReqServiceImpl.java b/fad-hrm/src/main/java/com/ruoyi/hrm/service/impl/HrmAppropriationReqServiceImpl.java index b635e63..874a3f7 100644 --- a/fad-hrm/src/main/java/com/ruoyi/hrm/service/impl/HrmAppropriationReqServiceImpl.java +++ b/fad-hrm/src/main/java/com/ruoyi/hrm/service/impl/HrmAppropriationReqServiceImpl.java @@ -116,6 +116,15 @@ public class HrmAppropriationReqServiceImpl implements IHrmAppropriationReqServi return baseMapper.deleteBatchIds(ids) > 0; } + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean updateStatus(Long bizId, String status) { + HrmAppropriationReq req = new HrmAppropriationReq(); + req.setBizId(bizId); + req.setStatus(status); + return baseMapper.updateById(req) > 0; + } + @SuppressWarnings("unused") private LambdaQueryWrapper buildQueryWrapper(HrmAppropriationReqBo bo) { LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); diff --git a/fad-hrm/src/main/java/com/ruoyi/hrm/service/impl/HrmFlowTaskServiceImpl.java b/fad-hrm/src/main/java/com/ruoyi/hrm/service/impl/HrmFlowTaskServiceImpl.java index cad19f7..9bf3c5e 100644 --- a/fad-hrm/src/main/java/com/ruoyi/hrm/service/impl/HrmFlowTaskServiceImpl.java +++ b/fad-hrm/src/main/java/com/ruoyi/hrm/service/impl/HrmFlowTaskServiceImpl.java @@ -37,11 +37,12 @@ public class HrmFlowTaskServiceImpl implements IHrmFlowTaskService { private final FlowAssigneeHelper assigneeHelper; private final BizStatusSyncHelper bizStatusSyncHelper; - // 注入四个业务Mapper + // 注入五个业务Mapper private final HrmLeaveReqMapper leaveReqMapper; private final HrmTravelReqMapper travelReqMapper; private final HrmSealReqMapper sealReqMapper; private final HrmReimburseReqMapper reimburseReqMapper; + private final HrmAppropriationReqMapper appropriationReqMapper; private final ObjectMapper objectMapper; // Spring Boot 默认提供 private final UserService userService; @@ -98,6 +99,9 @@ public class HrmFlowTaskServiceImpl implements IHrmFlowTaskService { case "reimburse": reimburseReqMapper.selectBatchIds(bizIds).forEach(d -> bizDataMap.put("reimburse_" + d.getBizId(), d)); break; + case "appropriation": + appropriationReqMapper.selectBatchIds(bizIds).forEach(d -> bizDataMap.put("appropriation_" + d.getBizId(), d)); + break; } });