yangys
2025-09-18 0d61b9bfca526e9c3da2209de8f9f367e76fd013
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/cure/CureFinishOperateTask.java
@@ -2,53 +2,31 @@
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.IOUtils;
import org.flowable.engine.delegate.DelegateExecution;
import org.springblade.core.oss.OssTemplate;
import org.springblade.core.oss.model.BladeFile;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.mdm.basesetting.machine.MachineService;
import org.springblade.mdm.basesetting.machine.entity.Machine;
import org.springblade.mdm.commons.contants.ParamConstants;
import org.springblade.mdm.flow.entity.FlowProgramFile;
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.mdm.program.service.ProgramAnnotationService;
import org.springblade.system.feign.ISysClient;
import org.springblade.system.pojo.entity.DictBiz;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.time.LocalDate;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
@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;
   /**
    * 固化审批通过处理任务,
@@ -58,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);
   }
   /**
@@ -67,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;
   }
   /**
@@ -89,8 +80,4 @@
      }
   }
}