| | |
| | | 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; |
| | | import org.springblade.mdm.program.entity.NcNode; |
| | | import org.springblade.mdm.program.entity.NcProgram; |
| | | import org.springblade.mdm.program.entity.ProcessProgRef; |
| | | import org.springblade.mdm.program.service.NcNodeService; |
| | | import org.springblade.mdm.program.service.NcProgramService; |
| | | import org.springblade.mdm.program.service.ProcessProgRefService; |
| | | import org.springframework.beans.BeanUtils; |
| | |
| | | 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.*; |
| | | /** |
| | |
| | | @Service |
| | | @AllArgsConstructor |
| | | public class ApproveTableService{ |
| | | private final ProcessProgRefService processProgRefService; |
| | | private final FlowCommonService flowCommonService; |
| | | private final ApproveRecordService approveRecordService; |
| | | private final NcProgramService ncProgramService; |
| | | 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)); // 空方框 |
| | |
| | | |
| | | 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); |
| | | printStep(document,bfChinese,record); |
| | | if(record.getNcNodeId() ==null){ |
| | | //continue; |
| | | } |
| | | |
| | | 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(); |
| | | } |
| | |
| | | document.close(); |
| | | } |
| | | |
| | | void printStep(Document document,BaseFont bfChinese,ApproveRecord record) throws DocumentException, IOException { |
| | | NcProgram ncProgram; |
| | | void printStep(Document document,BaseFont bfChinese,ApproveRecord record,HistoricProcessInstance ins) throws DocumentException, IOException { |
| | | NcNode programPackageNode; |
| | | Machine machine; |
| | | if(record.getNcProgramId() !=null ) { |
| | | ncProgram = ncProgramService.getById(record.getNcProgramId()); |
| | | machine = machineService.getByCode(ncProgram.getMachineCode()); |
| | | Map<String,Object> vars = ins.getProcessVariables(); |
| | | //activitiy.stream().filter(HistoricActivityInstance::get) |
| | | if(record.getNcNodeId() !=null ) { |
| | | //programPackageNode = ncNodeService.getById(record.getNcNodeId()); |
| | | String machineCode = String.valueOf(vars.get(FlowContants.MACHINE_CODE)); |
| | | //machine = machineService.getByCode(programPackageNode.getMachineCode()); |
| | | machine = machineService.getByCode(machineCode); |
| | | }else{ |
| | | ncProgram = new NcProgram(); |
| | | programPackageNode = new NcNode(); |
| | | machine = new Machine(); |
| | | } |
| | | |
| | |
| | | //PdfPCell cell12 = new PdfPCell(); |
| | | //cell12.setColspan(2); |
| | | //cell12.addElement(new Phrase(ncProgram.getDrawingNo())); |
| | | table.addCell(getCell(ncProgram.getDrawingNo(),ft));//零组件号 |
| | | |
| | | table.addCell(getCell(ncProgram.getProcessNo(),ft));//工序号 |
| | | table.addCell(getCell(ncProgram.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("");//负责人,工段负责人派出时间 |
| | | |
| | |
| | | Chunk block2 = square; |
| | | Date programDate = null; |
| | | Date checkDate = null; |
| | | if(StringUtils.equals(record.getTaskDefinitionId(),"programmingTask")){ |
| | | if(StringUtils.equals(record.getTaskDefinitionKey(),"programmingTask")){ |
| | | block1 = check; |
| | | programDate = record.getCreateTime(); |
| | | }else if(StringUtils.equals(record.getTaskDefinitionId(),"check")){ |
| | | }else if(StringUtils.equals(record.getTaskDefinitionKey(),"check")){ |
| | | block2 = check; |
| | | checkDate = record.getCreateTime(); |
| | | } |
| | |
| | | |
| | | PdfPCell cell2 = new PdfPCell(); |
| | | cell2.setColspan(2); |
| | | cell2.addElement(new Phrase(ncProgram.getCode(),ft));//数控程序编号 |
| | | |
| | | //cell2.addElement(new Phrase(programPackageNode.getProgramNo(),ft));//数控程序编号 |
| | | cell2.addElement(new Phrase("00001",ft)); |
| | | table.addCell(cell2); |
| | | |
| | | String pDateStr = " "; |