| | |
| | | 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.IOException; |
| | | import java.io.OutputStream; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | 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 static final String UNCHECK_BOX = "☐"; |
| | | private static final String CHECKED_BOX = "☑"; |
| | | static Chunk square = new Chunk("o", new Font(Font.FontFamily.ZAPFDINGBATS, 12)); // 空方框 |
| | | static Chunk check = new Chunk("4", new Font(Font.FontFamily.ZAPFDINGBATS, 12)); // 带勾方框 |
| | | |
| | | //static SimpleDateFormat |
| | | BaseFont getBaseFont() throws DocumentException, IOException { |
| | | return BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); |
| | | } |
| | |
| | | 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; |
| | | } |
| | | printStep(document,bfChinese,record); |
| | | if(i<records.size()-1){ |
| | | document.newPage(); |
| | |
| | | } |
| | | |
| | | void printStep(Document document,BaseFont bfChinese,ApproveRecord record) throws DocumentException, IOException { |
| | | NcProgram ncProgram; |
| | | NcNode programPackageNode; |
| | | Machine machine; |
| | | if(record.getNcProgramId() !=null ) { |
| | | ncProgram = ncProgramService.getById(record.getNcProgramId()); |
| | | machine = machineService.getByCode(ncProgram.getMachineCode()); |
| | | if(record.getNcNodeId() !=null ) { |
| | | programPackageNode = ncNodeService.getById(record.getNcNodeId()); |
| | | machine = machineService.getByCode(programPackageNode.getMachineCode()); |
| | | }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(programPackageNode.getDrawingNo(),ft));//零组件号 |
| | | |
| | | table.addCell(getCell(ncProgram.getProcessNo(),ft));//工序号 |
| | | table.addCell(getCell(ncProgram.getCraftEdition(),ft));//工艺版次 |
| | | table.addCell(getCell(programPackageNode.getProcessNo(),ft));//工序号 |
| | | table.addCell(getCell(programPackageNode.getCraftEdition(),ft));//工艺版次 |
| | | table.addCell(getCell(machine.getName(),ft));//机床型号 |
| | | table.addCell("");//负责人,工段负责人派出时间 |
| | | |
| | |
| | | String personName = record.getUserNickname(); |
| | | Chunk block1 = square; |
| | | Chunk block2 = square; |
| | | Date programDate = null; |
| | | Date checkDate = null; |
| | | if(StringUtils.equals(record.getTaskDefinitionId(),"programmingTask")){ |
| | | block1 = check; |
| | | programDate = record.getCreateTime(); |
| | | }else if(StringUtils.equals(record.getTaskDefinitionId(),"check")){ |
| | | block2 = check; |
| | | checkDate = record.getCreateTime(); |
| | | } |
| | | Phrase p = new Phrase(" "+personName+" ",underLineFt); |
| | | |
| | |
| | | table.addCell(getCell("批准/日期",ft)); |
| | | |
| | | PdfPCell cell2 = new PdfPCell(); |
| | | cell2.addElement(new Phrase(" ",ft)); |
| | | cell2.setColspan(2); |
| | | |
| | | cell2.addElement(new Phrase(programPackageNode.getProgramNo(),ft));//数控程序编号 |
| | | table.addCell(cell2); |
| | | table.addCell(getCell(" ",ft)); |
| | | table.addCell(getCell(" ",ft)); |
| | | |
| | | String pDateStr = " "; |
| | | if(programDate!=null){ |
| | | pDateStr = DateUtil.format(programDate,"yyyy-MM-dd"); |
| | | } |
| | | String checkDateStr = " "; |
| | | if(checkDate!=null){ |
| | | checkDateStr = DateUtil.format(programDate,"yyyy-MM-dd"); |
| | | } |
| | | table.addCell(getCell(pDateStr,ft));//编制日期 |
| | | table.addCell(getCell(checkDateStr,ft)); |
| | | table.addCell(getCell(" ",ft)); |
| | | |
| | | // 设置表格宽度占页面宽度的100% |