yangys
2025-09-18 0d61b9bfca526e9c3da2209de8f9f367e76fd013
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/cure/CureFinishOperateTask.java
@@ -3,36 +3,30 @@
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.flowable.engine.delegate.DelegateExecution;
import org.springblade.core.oss.OssTemplate;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.SpringUtil;
import org.springblade.mdm.flow.excution.dispatch.FinishDataHandler;
import org.springblade.mdm.flow.excution.events.CureFinishedEvent;
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.service.NcNodeAutoCreateService;
import org.springblade.mdm.program.service.NcNodeHisService;
import org.springblade.mdm.program.service.NcNodeService;
import org.springblade.system.feign.ISysClient;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.io.IOException;
import java.util.Date;
@Slf4j
@Component("cureFinishOperateTask")
@AllArgsConstructor
public class CureFinishOperateTask {
   private final NcNodeService nodeService;
   private final NcNodeAutoCreateService ncNodeAutoCreateService;
   private final NcNodeHisService nodeHisService;
   private final FlowCommonService flowCommonService;
   private final FlowProgramFileService flowProgramFileService;
   private final ISysClient sysClient;
   private final OssTemplate ossTemplate;
   private final NormalCureFinishDataHandler normalCureFinishDataHandler;
   private final DeviationCureFinishDataHandler deviationCureFinishDataHandler;
   private final NcNodeService ncNodeService;
   /**
    * 固化审批通过处理任务,
@@ -42,8 +36,20 @@
   @Transactional
   public void execute(DelegateExecution execution) throws IOException {
      log.info("执行固化程序任务服务,流程实例id={}", execution.getProcessInstanceId());
      Date time = DateUtil.now();
      //固化程序检查有效期,
      dealWithNode(execution.getProcessInstanceId());
      NcNode node = dealWithNode(execution.getProcessInstanceId());
      nodeHisService.mergeNodeToHisGeTime(time);
      publishEvent(node.getProgramNo());
   }
   void publishEvent(String programNo) {
      //TaskDispatch dispatch = taskDispatchService.getByProgramNo(programNo);
      CureFinishedEvent event = new  CureFinishedEvent("curefinish",programNo);
      SpringUtil.publishEvent(event);
   }
   /**
@@ -51,13 +57,14 @@
    *
    * @param processInstanceId 流程实例id
    */
   void dealWithNode(String processInstanceId) throws IOException {
   NcNode dealWithNode(String processInstanceId) throws IOException {
      //程序包节点和下属程序节点(包括历史节点非最新版本的)从试切挪到固化下面
      //程序包节点 设置未已固化
      NcNode pkgNode = nodeService.lambdaQuery().eq(NcNode::getProcessInstanceId,  processInstanceId).one();
      FlowProgramProperties flowProps = flowCommonService.getProgramProperties(processInstanceId);
      getDataHandler(pkgNode).handleData(flowProps);
      return pkgNode;
   }
   /**
@@ -73,8 +80,4 @@
      }
   }
}