| | |
| | | package org.springblade.mdm.flow.service; |
| | | |
| | | import com.itextpdf.text.*; |
| | | import com.itextpdf.text.pdf.*; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.flowable.engine.HistoryService; |
| | | import org.flowable.task.api.history.HistoricTaskInstance; |
| | | import org.springblade.core.oss.OssTemplate; |
| | | import org.springblade.core.tool.api.R; |
| | | import org.springblade.core.tool.utils.DateUtil; |
| | | import org.springblade.mdm.basesetting.machine.MachineService; |
| | | import org.springblade.mdm.basesetting.machine.service.MachineService; |
| | | import org.springblade.mdm.basesetting.machine.entity.Machine; |
| | | import org.springblade.mdm.basesetting.producedivision.entity.QinzheFgb; |
| | | import org.springblade.mdm.basesetting.producedivision.service.QinzheFgbService; |
| | | import org.springblade.mdm.commons.contants.DictBizConstants; |
| | | import org.springblade.mdm.commons.service.ParamService; |
| | | import org.springblade.mdm.flow.constants.FlowContants; |
| | | import org.springblade.mdm.commons.support.TemplatedPdfWriter; |
| | | import org.springblade.mdm.flow.vo.ApproveTableInfo; |
| | | import org.springblade.mdm.program.entity.NcNode; |
| | | import org.springblade.mdm.program.entity.NcProgramApproved; |
| | | import org.springblade.mdm.program.service.NcNodeService; |
| | | import org.springblade.mdm.program.service.NcProgramApprovedService; |
| | | import org.springblade.system.feign.IDictBizClient; |
| | | import org.springblade.system.feign.IUserClient; |
| | | import org.springblade.system.pojo.entity.DictBiz; |
| | | import org.springblade.system.pojo.entity.User; |
| | | import org.springblade.system.pojo.entity.UserInfo; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.io.*; |
| | | import java.util.*; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 数控程序确认表输出服务 |
| | |
| | | private IUserClient userClient; |
| | | @Autowired |
| | | private ParamService paramService; |
| | | |
| | | @Autowired |
| | | private ApproveInfoQueryService approveInfoQueryService; |
| | | public void exportConfirmTable(FlowProgramProperties props, OutputStream os) throws IOException, DocumentException { |
| | | |
| | | byte[] tplBytes = getTemplateBytes(); |
| | | generateTempPDF(tplBytes,props,os); |
| | | //byte[] tplBytes = getTemplateBytes(); |
| | | TemplatedPdfWriter pdfWriter = new TemplatedPdfWriter(getTemplateBytes()); |
| | | //generateTempPDF(tplBytes,props,os); |
| | | pdfWriter.write(getPdfData(props),os); |
| | | } |
| | | |
| | | /* |
| | | void generateTempPDF(byte[] bytes,FlowProgramProperties props,OutputStream outputStream) throws DocumentException, IOException { |
| | | PdfReader reader = null; |
| | | PdfStamper pdfStamper = null; |
| | |
| | | //fields.setFieldRichValue() |
| | | } |
| | | |
| | | } |
| | | }*/ |
| | | |
| | | |
| | | |
| | |
| | | * @param props 流程属性 |
| | | * @return 数据map |
| | | */ |
| | | Map<String,String> getData(FlowProgramProperties props){ |
| | | Map<String,String> getPdfData(FlowProgramProperties props){ |
| | | Map<String,String> data = new HashMap<>(); |
| | | data.put("pageTotal","1"); |
| | | data.put("pageNo","1"); |
| | |
| | | |
| | | //零组件名称 |
| | | data.put("drawingName",getDrawingName(props.getDrawingNo())); |
| | | data.put("deviation",props.getDeviation()); |
| | | data.put("programNo",queryProgramNo(props.getNodeId())); |
| | | data.put("deviation",props.getDeviation()!=null?props.getDeviation():StringUtils.EMPTY); |
| | | |
| | | |
| | | data.put("fuheY","Y"); |
| | | data.put("keyongY","Y"); |
| | | |
| | | Machine machine = this.machineService.getByCode(props.getMachineCode()); |
| | | data.put("machineMode",machine.getName()); |
| | | R<String> dictSystemResult = dictBizClient.getValue(DictBizConstants.CONTROL_SYSTEM,machine.getControlSystem()); |
| | |
| | | data.put("controlSystem",dictSystemResult.getData()); |
| | | } |
| | | |
| | | data.put("operator","不明确/2025-1-1"); |
| | | data.put("jjy","不明确/2025-1-1"); |
| | | data.put("operator","来源MES/2025-1-1"); |
| | | data.put("jjy","来源MES/2025-1-1"); |
| | | data.put("fuheY","Y");//TODO 有 检验员 则符合 |
| | | data.put("keyongY","Y");//TODO 有 检验员 则符合 |
| | | |
| | | data.put("programmerName",getNameByUserId(props.getProgrammerId())); |
| | | data.put("checkerName",getNameByUserId(props.getCheckerId())); |
| | | data.put("seniorName",getNameByUserId(props.getSeniorId())); |
| | | data.put("jly","来源MES/2025-1-1"); |
| | | data.put("jln","来源MES/2025-1-1"); |
| | | ApproveTableInfo approveInfo = approveInfoQueryService.getApproveInfo(props); |
| | | data.put("programmerName",approveInfo.getProgrammerName()); |
| | | data.put("checkerName",approveInfo.getCheckerName()); |
| | | data.put("seniorName",approveInfo.getSeniorName()); |
| | | |
| | | data.put("programNo",approveInfo.getProgramNo()); |
| | | |
| | | return data; |
| | | } |
| | |
| | | * @param nodeId |
| | | * @return |
| | | */ |
| | | /* |
| | | private String queryProgramNo(Long nodeId) { |
| | | if(nodeId ==null) { |
| | | return StringUtils.EMPTY; |
| | |
| | | } |
| | | |
| | | } |
| | | |
| | | */ |
| | | /** |
| | | * 获取零组件名称 |
| | | * @param drawingNo 零件编号 |
| | |
| | | } |
| | | |
| | | } |
| | | |
| | | String getNameByUserId(Long userId){ |
| | | if(userId == null){ |
| | | return StringUtils.EMPTY; |
| | | } |
| | | |
| | | String name = StringUtils.EMPTY; |
| | | R<User> useInfoResult = userClient.userInfoById(userId); |
| | | if(useInfoResult.isSuccess()){ |
| | | name = useInfoResult.getData().getName(); |
| | | } |
| | | |
| | | return name; |
| | | } |
| | | |
| | | |
| | | |
| | | } |