yangys
2025-08-22 95e63522959ff8c21381ee2a5dc85b9d44cf2949
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/append/AppendFinishListener.java
ÎļþÃû´Ó blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/TempFinishDataHandler.java ÐÞ¸Ä
@@ -1,19 +1,14 @@
package org.springblade.mdm.flow.excution.dispatch;
package org.springblade.mdm.flow.excution.append;
import lombok.extern.slf4j.Slf4j;
import org.flowable.engine.RuntimeService;
import org.flowable.engine.delegate.DelegateExecution;
import org.springblade.core.tool.utils.Func;
import org.springblade.mdm.flow.constants.FlowContants;
import org.springblade.mdm.flow.entity.ApproveRecord;
import org.springblade.mdm.flow.entity.FlowProgramFile;
import org.springblade.mdm.flow.service.ApproveRecordService;
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.NcNodeAutoCreateService;
import org.springblade.mdm.program.service.NcNodeService;
import org.springblade.mdm.program.service.NcProgramApprovedService;
import org.springblade.mdm.utils.EntityUtil;
@@ -24,40 +19,47 @@
import java.util.List;
/**
 * ä¸´æ—¶æ´¾å·¥å®¡æ‰¹é€šè¿‡æ‰§è¡Œçš„事件,功能:建立临时节点,插入审批完成记录
 * ç¨‹åºè¡¥å……流程(临时流程) å®¡æ‰¹é€šè¿‡æ‰§è¡Œçš„事件
 */
@Slf4j
@Component("tempDispatchFinishDataHandler")
public class TempFinishDataHandler  implements FinishDataHandler{
   @Autowired
   private NcProgramApprovedService approvedService;
@Component("appendFinishListener")
public class AppendFinishListener {
   @Autowired
   private FlowProgramFileService flowProgramFileService;
   @Autowired
   private NcProgramApprovedService approvedService;
   @Autowired
   private FlowCommonService flowCommonService;
   @Autowired
   private NcNodeService ncNodeService;
   /**
    * åœ¨æµç¨‹ç»“束时自动调用,由
    * @param props æµç¨‹å±žæ€§
    * åœ¨æµç¨‹ç»“束时自动调用,(配置在审批结束事件的executelistener中了)
    * @param execution æ‰§è¡Œå¯¹è±¡
    */
   public void handleData(FlowProgramProperties props ) {
   public void handle(DelegateExecution execution) {
      // æ‰§è¡Œä¸šåŠ¡é€»è¾‘
      String instId = execution.getProcessInstanceId();
      log.info("事件名称{},instid={}" , execution.getEventName(),instId);
      FlowProgramProperties props = flowCommonService.getProgramProperties(instId);
      String programName = NcNodeService.genProgramName(props.getDrawingNo(),props.getProcessNo());
      //临时流程,不处理树,只处理文件.由于导出是基于节点的,这里创建临时节点,不在树立展示
      //临时流程,不处理树,只处理文件
      NcNode tempPkgNode = new NcNode();
      tempPkgNode.setNodeType(NcNode.TYPE_PROGRAM_PACKAGE);
      tempPkgNode.setIsLastEdition(0);
      tempPkgNode.setIsLastEdition(1);
      tempPkgNode.setProcessNo(props.getProcessNo());
      tempPkgNode.setMachineCode(props.getMachineCode());
      tempPkgNode.setProcessName(props.getProcessName());
      tempPkgNode.setProcessEdition(props.getProcessEdition());
      tempPkgNode.setDrawingNoEdition(props.getDrawingNoEdition());
      tempPkgNode.setName(programName);
      tempPkgNode.setParentIds("0,4");
      tempPkgNode.setIsLocked(0);
      tempPkgNode.setCraftEdition(props.getCraftEdition());
      tempPkgNode.setDrawingNo(props.getDrawingNo());
      tempPkgNode.setProcessInstanceId(props.getProcessInstanceId());
      tempPkgNode.setProcessInstanceId(instId);
      ncNodeService.save(tempPkgNode);
      List<FlowProgramFile> newFlowFileList = flowProgramFileService.listByProcessInstanceId(props.getProcessInstanceId());
@@ -68,19 +70,18 @@
         tempProgramNode.setNodeType(NcNode.TYPE_PROGRAM_FILE);
         tempProgramNode.setName(newFlowFile.getName());
         BeanUtils.copyProperties(tempPkgNode,tempProgramNode);
         tempProgramNode.setParentId(tempPkgNode.getId());
         tempProgramNode.setIsLastEdition(1);//导出时需要使用最新节点
         tempProgramNode.setParentIds(tempPkgNode.getParentIds()+","+tempPkgNode.getId());
         tempProgramNode.setProcessInstanceId(props.getProcessInstanceId());
         tempProgramNode.setFlowProgramFileId(newFlowFile.getId());
         ncNodeService.save(tempProgramNode);
      }
      addApproveTable(tempPkgNode,props);
      log.info("流程已完成in DispatchFinishListener");
   }
      addApproveTable(tempPkgNode,props);
      log.info("程序补充流程已完成in AppendFinishListener");
   }
   /**
    * ä¿å­˜å®¡æ‰¹å®Œæˆçš„记录
@@ -97,5 +98,4 @@
      approvedService.save(approved);
   }
}