| | |
| | | import org.springblade.mdm.flow.service.FlowProgramFileService; |
| | | import org.springblade.mdm.program.entity.NcNode; |
| | | import org.springblade.mdm.program.entity.NcProgramApproved; |
| | | import org.springblade.mdm.program.entity.ProcessProgRef; |
| | | import org.springblade.mdm.program.service.NcNodeService; |
| | | import org.springblade.mdm.program.service.NcProgramApprovedService; |
| | | import org.springblade.mdm.program.service.ProcessProgRefService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.context.event.EventListener; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.util.List; |
| | |
| | | @Autowired |
| | | private RuntimeService runtimeService; |
| | | @Autowired |
| | | private ProcessProgRefService processProgRefService; |
| | | @Autowired |
| | | private NcProgramApprovedService approvedService; |
| | | @Autowired |
| | | private ApproveRecordService approveRecordService; |
| | |
| | | @Autowired |
| | | private NcNodeService ncNodeService; |
| | | /** |
| | | * 在刘恒结束时自动调用 |
| | | * @param execution |
| | | * 在流程结束时自动调用,(配置在审批结束事件的executelistener中了) |
| | | * @param execution 执行对象 |
| | | */ |
| | | public void handle(DelegateExecution execution) { |
| | | // 执行业务逻辑 |
| | | String instId = execution.getProcessInstanceId(); |
| | | log.info("{},instid={}" , runtimeService,instId); |
| | | log.info("事件名称{},instid={}" , execution.getEventName(),instId); |
| | | |
| | | updateFlowProgramFile(instId); |
| | | |
| | | //将关联表中的数据插入审批表 |
| | | //将流程关联 "程序包名"节点设置状态完成状态,如果以后有清除或者设置状态的需求,可以新建表,与程序包名做关联。 |
| | | /* |
| | | LambdaQueryWrapper<ProcessProgRef> wrapper = new LambdaQueryWrapper<>(); |
| | | wrapper.eq(ProcessProgRef::getProcessInstanceId, instId); |
| | | List<ProcessProgRef> reflist = processProgRefService.list(wrapper); |
| | | NcNode packageNode = ncNodeService.getByProcessInstanceId(instId); |
| | | updateApproveRecordNodeId(packageNode); |
| | | //execution.getEventName() |
| | | |
| | | log.info("流程已完成in DispatchFinishListener"); |
| | | } |
| | | |
| | | for (ProcessProgRef ref : reflist) { |
| | | NcProgramApproved approved = new NcProgramApproved(); |
| | | approved.setNcProgramId(ref.getNcProgramId()); |
| | | |
| | | approvedService.save(approved); |
| | | }*/ |
| | | |
| | | void updateFlowProgramFile(String instId){ |
| | | List<FlowProgramFile> programFiles = flowProgramFileService.lambdaQuery().eq(FlowProgramFile::getProcessInstanceId, instId).list(); |
| | | if(!programFiles.isEmpty()) { |
| | | FlowProgramFile pf = programFiles.get(0); |
| | |
| | | if(pkgNode!=null) { |
| | | approved.setNcNodeId(pkgNode.getId());//程序包节点id |
| | | approvedService.save(approved); |
| | | |
| | | //更新审批记录的ncNodeId |
| | | approveRecordService.lambdaUpdate() |
| | | .eq(ApproveRecord::getProcessInstanceId, instId) |
| | | .set(ApproveRecord::getNcNodeId,pkgNode.getId()).update(); |
| | | |
| | | }else{ |
| | | log.warn("未找到名为{}的程序包",pf.getProgramName()); |
| | | } |
| | | }else{ |
| | | log.warn("没有程序文件"); |
| | | } |
| | | } |
| | | |
| | | log.info("流程已完成"); |
| | | void updateApproveRecordNodeId(NcNode pkgNode){ |
| | | //更新审批记录的ncNodeId |
| | | approveRecordService.lambdaUpdate() |
| | | .eq(ApproveRecord::getProcessInstanceId, pkgNode.getProcessInstanceId()) |
| | | .set(ApproveRecord::getNcNodeId,pkgNode.getId()).update(); |
| | | } |
| | | } |