yangys
2025-08-22 18d9c0bdc04e71cf3903c30c139f59dab744cf3f
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ApproveTableService.java
@@ -5,12 +5,16 @@
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.flowable.engine.HistoryService;
import org.flowable.engine.history.HistoricActivityInstance;
import org.flowable.engine.history.HistoricProcessInstance;
import org.flowable.task.api.Task;
import org.springblade.core.mp.base.BizServiceImpl;
import org.springblade.core.secure.utils.AuthUtil;
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.flow.constants.FlowContants;
import org.springblade.mdm.flow.entity.ApproveRecord;
import org.springblade.mdm.flow.mapper.ApproveRecordMapper;
import org.springblade.mdm.flow.vo.ApproveRecordVO;
@@ -27,6 +31,8 @@
import java.io.OutputStream;
import java.util.Date;
import java.util.List;
import java.util.Map;
import com.itextpdf.text.*;
import com.itextpdf.text.pdf.*;
/**
@@ -42,6 +48,7 @@
   private final ApproveRecordService approveRecordService;
   private final NcNodeService ncNodeService;
   private final MachineService machineService;
   private final HistoryService historyService;
   private static final String UNCHECK_BOX = "☐";
   private static final String CHECKED_BOX = "☑";
   static Chunk square = new Chunk("o", new Font(Font.FontFamily.ZAPFDINGBATS, 12)); // 空方框
@@ -69,11 +76,17 @@
      List<ApproveRecord> records = approveRecordService.lambdaQuery().eq(ApproveRecord::getProcessInstanceId, processInstanceId).orderByAsc(ApproveRecord::getCreateTime).list();
      for(int i=0;i<records.size();i++){
         ApproveRecord record = records.get(i);
         if(record.getNcNodeId() ==null){
            continue;
            //continue;
         }
         printStep(document,bfChinese,record);
         HistoricProcessInstance ins = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).includeProcessVariables().singleResult();
         List<HistoricActivityInstance> activitiys = historyService.createHistoricActivityInstanceQuery()
            .processInstanceId(processInstanceId)
            .list();
         printStep(document,bfChinese,record,ins);
         if(i<records.size()-1){
            document.newPage();
         }
@@ -82,12 +95,16 @@
      document.close();
   }
   void printStep(Document document,BaseFont bfChinese,ApproveRecord record) throws DocumentException, IOException {
   void printStep(Document document,BaseFont bfChinese,ApproveRecord record,HistoricProcessInstance ins) throws DocumentException, IOException {
      NcNode programPackageNode;
      Machine machine;
      Map<String,Object> vars = ins.getProcessVariables();
      //activitiy.stream().filter(HistoricActivityInstance::get)
      if(record.getNcNodeId() !=null ) {
         programPackageNode = ncNodeService.getById(record.getNcNodeId());
         machine = machineService.getByCode(programPackageNode.getMachineCode());
         //programPackageNode = ncNodeService.getById(record.getNcNodeId());
         String machineCode = String.valueOf(vars.get(FlowContants.MACHINE_CODE));
         //machine = machineService.getByCode(programPackageNode.getMachineCode());
         machine = machineService.getByCode(machineCode);
      }else{
         programPackageNode = new NcNode();
         machine = new Machine();
@@ -124,10 +141,12 @@
      //PdfPCell cell12 = new PdfPCell();
      //cell12.setColspan(2);
      //cell12.addElement(new Phrase(ncProgram.getDrawingNo()));
      table.addCell(getCell(programPackageNode.getDrawingNo(),ft));//零组件号
      table.addCell(getCell(programPackageNode.getProcessNo(),ft));//工序号
      table.addCell(getCell(programPackageNode.getCraftEdition(),ft));//工艺版次
      String drawingNo = vars.get(FlowContants.DRAWING_NO)+"";
      table.addCell(getCell(drawingNo,ft));//零组件号
      String processNo = vars.get(FlowContants.PROCESS_NO)+"";
      table.addCell(getCell(processNo,ft));//工序号
      String craftEdition = vars.get(FlowContants.CRAFT_EDITION)+"";
      table.addCell(getCell(craftEdition,ft));//工艺版次
      table.addCell(getCell(machine.getName(),ft));//机床型号
      table.addCell("");//负责人,工段负责人派出时间
@@ -210,7 +229,8 @@
      PdfPCell cell2 = new PdfPCell();
      cell2.setColspan(2);
      cell2.addElement(new Phrase(programPackageNode.getProgramNo(),ft));//数控程序编号
      //cell2.addElement(new Phrase(programPackageNode.getProgramNo(),ft));//数控程序编号
      cell2.addElement(new Phrase("00001",ft));
      table.addCell(cell2);
      String pDateStr = " ";