From 3d558e1bb5091b76a6525f6fab015574e1755200 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期二, 09 九月 2025 18:27:30 +0800
Subject: [PATCH] 确认单下载增加容错

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/service/ConfirmTablePrintService.java |  130 ++++++++++++++++++++++++++-----------------
 1 files changed, 78 insertions(+), 52 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/service/ConfirmTablePrintService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/service/ConfirmTablePrintService.java
index 9560746..2f2e08c 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/service/ConfirmTablePrintService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/service/ConfirmTablePrintService.java
@@ -6,44 +6,36 @@
 import org.apache.commons.lang3.StringUtils;
 import org.flowable.engine.HistoryService;
 import org.flowable.engine.RuntimeService;
-import org.flowable.engine.TaskService;
 import org.flowable.engine.history.HistoricProcessInstance;
 import org.flowable.engine.history.HistoricProcessInstanceQuery;
-import org.flowable.engine.task.Comment;
-import org.flowable.task.api.Task;
-import org.flowable.task.api.TaskInfoQuery;
-import org.flowable.task.api.TaskQuery;
-import org.flowable.task.api.history.HistoricTaskInstance;
-import org.flowable.task.api.history.HistoricTaskInstanceQuery;
 import org.springblade.core.oss.OssTemplate;
-import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.DateUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.mdm.basesetting.machine.entity.Machine;
 import org.springblade.mdm.basesetting.machine.service.MachineService;
+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.flow.entity.FlowProgramFile;
-import org.springblade.mdm.flow.entity.MdmFlowProcess;
 import org.springblade.mdm.flow.entity.TaskDispatch;
+import org.springblade.mdm.flow.service.ApproveInfoQueryService;
 import org.springblade.mdm.flow.service.FlowProgramFileService;
 import org.springblade.mdm.flow.service.FlowProgramProperties;
-import org.springblade.mdm.flow.util.MdmFlowCache;
+import org.springblade.mdm.flow.service.TaskDispatchService;
 import org.springblade.mdm.flow.vo.ApproveTableInfo;
 import org.springblade.mdm.flow.vo.FlowVO;
+import org.springblade.mdm.program.entity.NcNode;
+import org.springblade.mdm.program.service.NcNodeService;
 import org.springblade.mdm.statreport.utils.WordReplaceUtil;
 import org.springblade.system.feign.IDictBizClient;
-import org.springblade.system.feign.IUserClient;
-import org.springblade.system.pojo.entity.User;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.*;
 
@@ -58,24 +50,25 @@
 	private final RuntimeService runtimeService;
 	private final IDictBizClient dictBizClient;
 	private final HistoryService historyService;
-	private final IUserClient userClient;
 	private final FlowProgramFileService flowProgramFileService;
-	@Autowired
-	private MachineService machineService;
-	@Autowired
-	private ParamService paramService;
-	@Autowired
-	private OssTemplate ossTemplate;
+	private ApproveInfoQueryService approveInfoQueryService;
+	private final MachineService machineService;
+	private final NcNodeService nodeService;
+	private final ParamService paramService;
+	private final TaskDispatchService taskDispatchService;
+	private final OssTemplate ossTemplate;
+	private final QinzheFgbService qinzheFgbService;
+	private static final String DATE_PATTERN = "yyyy-M-d";
 	/**
 	 * 瀵煎嚭word宀告湰
 	 * @param dispatch 浠诲姟鍒嗘淳
 	 * @param props 娴佺▼灞炴��
 	 */
-	public ByteArrayOutputStream exportConfirmTableDoc(TaskDispatch dispatch, FlowProgramProperties props) throws IOException {
+	public ByteArrayOutputStream exportConfirmTableDoc(FlowProgramProperties props) throws IOException {
 		ByteArrayOutputStream os= new ByteArrayOutputStream();
 		String tplOssName = paramService.confirmTableTemplateOssFileName();
 		try(InputStream tplInputStream = ossTemplate.statFileStream(tplOssName);) {
-			WordReplaceUtil.convert(getData(dispatch, props), tplInputStream, os);
+			WordReplaceUtil.convert(getData( props), tplInputStream, os);
 		}
 		return os;
 	}
@@ -84,53 +77,78 @@
 	 * 鑾峰彇濉厖鏁版嵁
 	 */
 
-	Map<String,String> getData(TaskDispatch dispatch,FlowProgramProperties props){
-		//ApproveTableInfo approveInfo = approveInfoQueryService.getApproveInfo(props);
+	Map<String,String> getData(FlowProgramProperties props) {
+		ApproveTableInfo approveInfo = approveInfoQueryService.getApproveInfo(props);
 		Machine machine;
 		String machineCode = props.getMachineCode();
 		machine = machineService.getByCode(machineCode);
 
+		Map<String, String> dataMap = new HashMap<>();
+		NcNode node = this.nodeService.getById(props.getNodeId());
+		TaskDispatch dispatch = taskDispatchService.getByProgramNo(node.getProgramNo());
+
 		if(dispatch == null){
-			dispatch = new TaskDispatch();//TODO 鍚庨潰鍘绘帀
+			//闃叉鑰佹暟鎹姤閿�
+			dispatch = new TaskDispatch();
 		}
+		dataMap.put("bh",node.getProgramNo());//缂栧彿锛屽氨鏄暟鎺х▼搴忕紪鍙�
 
-		Map<String,String> dataMap = new HashMap<>();
+		dataMap.put("drawingNo", props.getDrawingNo());
+		dataMap.put("processNo", props.getProcessNo());
+		dataMap.put("craftEdition", props.getCraftEdition());
+		dataMap.put("processEdition", props.getProcessEdition());
+		dataMap.put("machineMode", machine.getName());
+		dataMap.put("drawingEdition", props.getDrawingNoEdition());//word鍐呬笉鑳借窡drawingNo鏈夌浉鍚屽瓧绗�
 
-		dataMap.put("bh","涓嶆槑纭�");
+		QinzheFgb qzfgb = qinzheFgbService.getByLjh(props.getDrawingNo());
+		dataMap.put("drawingName",qzfgb.getLjmc());
 
-		dataMap.put("drawingNo",props.getDrawingNo());
-		dataMap.put("processNo",props.getProcessNo());
-		dataMap.put("craftEdition",props.getCraftEdition());
-		dataMap.put("processEdition",props.getProcessEdition());
-		dataMap.put("machineMode",machine.getName());
+		dataMap.put("productModel", props.getProductModel());
 
-		String DATE_PATTERN = "yyyy-M-d";
+		//椤垫暟锛岄〉鍙�
+		dataMap.put("tp", "1");
+		dataMap.put("pg", "1");
 
-		String dispatchDateStr = " ";
+
+		dataMap.put("processName", dispatch.getProcessName());
+		dataMap.put("processCard", dispatch.getProcessCard());
 
 		String ctlSystem = "";
-		R<String> ctmR = dictBizClient.getValue(DictBizConstants.CONTROL_SYSTEM,machine.getControlSystem());
-		if(ctmR.isSuccess()){
+		R<String> ctmR = dictBizClient.getValue(DictBizConstants.CONTROL_SYSTEM, machine.getControlSystem());
+		if (ctmR.isSuccess()) {
 			ctlSystem = ctmR.getData();
 		}
-		dataMap.put("deviation",dispatch.getDeviation()==null?"":dispatch.getDeviation());
-		dataMap.put("controlSystem",ctlSystem);
-		dataMap.put("czz","鎿嶄綔鑰�");
-		dataMap.put("jyy","妫�楠屽憳");
-
-
+		dataMap.put("deviation", props.getDeviation() == null ? "" : props.getDeviation());
+		dataMap.put("controlSystem", ctlSystem);
+		if (StringUtils.isNotBlank(dispatch.getOperator())){
+			dataMap.put("czz", dispatch.getOperator()+"/"+formatTimeForTable(dispatch.getOperateTime()));//鎿嶄綔鍛橈紝鏃堕棿
+		}else{
+			dataMap.put("czz", "");
+		}
 		dataMap.put("programNo",dispatch.getProgramNo());
-		dataMap.put("fuhey",WordReplaceUtil.CHECKED);
-		dataMap.put("fuhen",WordReplaceUtil.UNCHECKED);
-		dataMap.put("jly",WordReplaceUtil.CHECKED);
-		dataMap.put("jln",WordReplaceUtil.UNCHECKED);
+		if(StringUtils.isNotBlank(dispatch.getInspector())) {
+			dataMap.put("jyy",dispatch.getInspector()+"/"+formatTimeForTable(dispatch.getCheckTime()));//瀹為檯妫�楠屽憳鍜屾楠屾椂闂�
 
-		String bianzhiDateStr = "";//DateUtil.format(dispatch.getCreateTime(), DATE_PATTERN);
+			//鏈夋楠屽憳锛屽嵆 绗﹀悎璇ュ伐搴忓伐鑹哄崱鐗囧昂瀵哥壒鎬ц姹�
+			dataMap.put("fuhey", WordReplaceUtil.CHECKED);
+			dataMap.put("fuhen", WordReplaceUtil.UNCHECKED);
 
+			dataMap.put("jly",WordReplaceUtil.CHECKED);
+			dataMap.put("jln",WordReplaceUtil.UNCHECKED);
+		}else {
+			dataMap.put("jyy",""); //濉厖绌烘楠屽憳
 
-		dataMap.put("bianzhi","缂栫▼鍛橈紵/"+bianzhiDateStr);
-		dataMap.put("jiaodui","宸ヨ壓鏍″锛�/鏃堕棿涓嶇‘瀹�");
-		dataMap.put("shenhe","楂樺笀锛�/鏃堕棿涓嶇‘瀹�");
+			dataMap.put("fuhey", WordReplaceUtil.UNCHECKED);
+			dataMap.put("fuhen", WordReplaceUtil.CHECKED);
+
+			dataMap.put("jly",WordReplaceUtil.UNCHECKED);
+			dataMap.put("jln",WordReplaceUtil.CHECKED);
+		}
+
+		dataMap.put("bianzhi",approveInfo.getProgrammerName()+"/"+formatTimeForTable(approveInfo.getProgrammingDate()));//缂栫▼浜哄憳
+		//approveInfo.getDispatchDate()
+		dataMap.put("jiaodui",approveInfo.getTeamLeaderName()+"/"+formatTimeForTable(approveInfo.getCheckDate()));//鏍″锛氫笓涓氱粍闀�
+		dataMap.put("shenhe",approveInfo.getSeniorName()+"/"+formatTimeForTable(approveInfo.getApproveDate()));
 
 		dataMap.put("sendPath",machine.getProgSendDir()!=null?machine.getProgSendDir():"");
 
@@ -182,7 +200,7 @@
 			vo.setHistoryTaskEndTime(processInstance.getEndTime());
 
 
-			vo.setFile(getFileString(processInstance.getId()));
+			//vo.setFile(getFileString(processInstance.getId()));
 			records.add(vo);
 		}
 
@@ -190,6 +208,14 @@
 
 		return page;
 	}
+
+	String formatTimeForTable(Date date){
+		if(date==null){
+			return "";
+		}
+
+		return DateUtil.format(date, DATE_PATTERN);
+	}
 	/**
 	鑾峰彇鍒楄〃涓殑鏂囦欢鍚�
 	 */

--
Gitblit v1.9.3