yangys
2025-09-17 1e2b04fabbbc4b1ae37d7951068d7ab235f5b5f9
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/unlock/UnlockFinishListener.java
@@ -5,7 +5,12 @@
import org.flowable.engine.delegate.DelegateExecution;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.mdm.flow.constants.FlowContants;
import org.springblade.mdm.flow.excution.ListenerHelper;
import org.springblade.mdm.flow.service.FlowCommonService;
import org.springblade.mdm.flow.service.FlowProgramFileService;
import org.springblade.mdm.flow.service.FlowProgramProperties;
import org.springblade.mdm.program.entity.NcNode;
import org.springblade.mdm.program.entity.NcProgramApproved;
import org.springblade.mdm.program.service.NcNodeHisService;
import org.springblade.mdm.program.service.NcNodeService;
import org.springblade.mdm.program.service.NcProgramApprovedService;
@@ -26,6 +31,12 @@
   private NcNodeHisService nodeHisService;
   @Autowired
   private NcNodeService ncNodeService;
   @Autowired
   private FlowCommonService flowCommonService;
   @Autowired
   private NcProgramApprovedService approvedService;
   @Autowired
   private ListenerHelper listenerHelper;
   /**
    * 在流程结束时自动调用,(配置在审批结束事件的executelistener中了)
    * @param execution 执行对象
@@ -33,11 +44,20 @@
   public void handle(DelegateExecution execution) {
      // 执行业务逻辑
      Date time = DateUtil.now();
      Long nodeId = runtimeService.getVariable(execution.getId(),FlowContants.NODE_ID,Long.class);
      this.ncNodeService.unlock(nodeId);
      FlowProgramProperties props = flowCommonService.getProgramProperties(execution.getProcessInstanceId());
      //Long nodeId = runtimeService.getVariable(execution.getId(),FlowContants.NODE_ID,Long.class);
      NcNode packageNode = this.ncNodeService.getById(props.getNodeId());
      if(packageNode.isDeviationProgram()) {
         listenerHelper.addApproveTable(packageNode,props);
      }
      this.ncNodeService.unlock(props.getNodeId());
      nodeHisService.mergeNodeToHisGeTime(time);
   }
}