yangys
2025-08-16 f77951077aa87daae6460c0161868bd5661efb2f
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ReplaceFlowService.java
@@ -23,6 +23,7 @@
import org.springblade.mdm.program.entity.NcNode;
import org.springblade.mdm.program.service.NcNodeService;
import org.springblade.mdm.program.service.NodeDeptQueryService;
import org.springblade.mdm.program.service.ProgramFlowStatusQueryService;
import org.springblade.mdm.program.vo.NcNodeVO;
import org.springblade.mdm.utils.EntityUtil;
import org.springblade.mdm.utils.ProgramFileNameCheckUtil;
@@ -47,6 +48,7 @@
   private final IdentityService identityService;
   private final FlowProgramFileService flowProgramFileService;
   private final ReplaceProgramFileService replaceProgramFileService;
   private final ProgramFlowStatusQueryService flowStatusQueryService;
   private final NodeDeptQueryService nodeDeptQueryService;
   private OssTemplate ossTemplate;
   public static final String NODE_ID = "nodeId";
@@ -79,8 +81,15 @@
    */
   /**
    * 准备替换流程需要的数据
    * @param nodeId 要替换的程序包名节点id
    * @param tempInstanceId 临时流程实例id,用于新的文件
    * @return 启动数据
    */
   @Transactional
   public NcNodeVO pre(long nodeId, String tempInstanceId) {
      checkFlowStatus(nodeId);
      List<NcNode> fileNodes = nodeService.lambdaQuery()
         .eq(NcNode::getParentId, nodeId)
@@ -111,6 +120,14 @@
      vo.setWorkshop(nodeDeptQueryService.getWorkshopNameByMachineCode(node.getMachineCode()));
      return vo;
   }
   void checkFlowStatus(long nodeId) {
      NcNode packageNode = nodeService.getById(nodeId);
      int status = flowStatusQueryService.queryFlowStatus(packageNode.getProcessInstanceId());
      if (status == 1) {
         throw new ServiceException("程序的流程正在进行中,不能进行替换");
      }
   }
   /**
@@ -190,7 +207,6 @@
      progFile.setName(file.getOriginalFilename());
      progFile.setOssName(bfile.getName());
      progFile.setProcessInstanceId(uploadVO.getProcessInstanceId());
      progFile.setIsCured(0);
      progFile.setProgramName(programName);
      flowProgramFileService.save(progFile);