feat(hrm): 添加资金调配申请状态同步功能

- 在BizStatusSyncHelper中新增HrmAppropriationReq相关依赖注入
- 实现资金调配申请的审批状态更新逻辑(approved/pending/rejected)
- 在HrmFlowTaskServiceImpl中添加资金调配业务的数据查询支持
- 在IHrmAppropriationReqService接口中定义updateStatus方法
- 在HrmAppropriationReqServiceImpl中实现状态更新的具体逻辑
This commit is contained in:
2026-02-27 09:39:20 +08:00
parent cb6d3598fe
commit ae3eb2688c
4 changed files with 37 additions and 1 deletions

View File

@@ -26,6 +26,11 @@ public interface IHrmAppropriationReqService {
Boolean updateByBo(HrmAppropriationReqBo bo);
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
*状态更新draft/running/approved/rejected/canceled
*/
Boolean updateStatus(Long bizId, String status);
}

View File

@@ -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);
}
}
}

View File

@@ -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<HrmAppropriationReq> buildQueryWrapper(HrmAppropriationReqBo bo) {
LambdaQueryWrapper<HrmAppropriationReq> lqw = Wrappers.lambdaQuery();

View File

@@ -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;
}
});