云
5 天以前 d0cf2cb2c352bdeb146aad2bb57ba7d39cef3bbd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package cn.iocoder.yudao.module.ums.service.application;
 
import cn.iocoder.yudao.module.bpm.service.task.BpmTaskApprovalValidator;
import cn.iocoder.yudao.module.ums.dal.dataobject.application.UmsApplicationDO;
import cn.iocoder.yudao.module.ums.dal.mysql.application.UmsApplicationMapper;
import jakarta.annotation.Resource;
import org.flowable.engine.runtime.ProcessInstance;
import org.flowable.task.api.Task;
import org.springframework.stereotype.Component;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.ums.enums.ErrorCodeConstants.*;
 
@Component
public class UmsApplicationApprovalValidator implements BpmTaskApprovalValidator {
    @Resource private UmsApplicationMapper mapper;
 
    @Override
    public void validate(Long userId, Task task, ProcessInstance instance) {
        if (!"ums_membership_approve".equals(instance.getProcessDefinitionKey())) return;
        // 发起人节点由 BPM 在流程启动时自动提交;缴费由后续审批人确认。
        if ("StartUserNode".equals(task.getTaskDefinitionKey())) return;
        Long id;
        try { id = Long.valueOf(instance.getBusinessKey()); }
        catch (Exception e) { throw exception(APPLICATION_NOT_EXISTS); }
        UmsApplicationDO application = mapper.selectById(id);
        if (application == null) throw exception(APPLICATION_NOT_EXISTS);
        if (application.getFeePaid() == null) throw exception(APPLICATION_FEE_CONFIRM_REQUIRED);
    }
}