From fc3ae614a4c5a2a7cdb9029ecfc4372eb1c28b18 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期二, 09 九月 2025 11:41:42 +0800
Subject: [PATCH] 补充确认表,审批表模板字段

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/controller/ConfirmTablePrintController.java |   17 +--
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/service/ConfirmTablePrintService.java       |  130 +++++++++++++++----------
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/service/TaskDispatchStatService.java        |   31 +++++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/entity/TaskDispatch.java                          |    8 +
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/thirdpart/service/MesTaskService.java                  |    8 +
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/controller/CuredProgramController.java      |    2 
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/mapper/TaskDispatchStatMapper.xml           |    6 
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/vo/TaskDispatchStatVO.java                  |   19 +--
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ApproveInfoQueryService.java              |   38 ++++---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/service/ApproveTableService.java            |   29 ++---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/TaskDispatchService.java                  |    4 
 11 files changed, 173 insertions(+), 119 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/entity/TaskDispatch.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/entity/TaskDispatch.java
index 5ef26b8..2153d30 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/entity/TaskDispatch.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/entity/TaskDispatch.java
@@ -96,6 +96,14 @@
 	private String mesTaskId;
 
 	/**
+	 * 鎿嶄綔鍛橈紙mes鎻愪緵锛�
+	 */
+	private String operator;
+	/**
+	 * 鎿嶄綔鑰呮椂闂达紙mes鎻愪緵锛�
+	 */
+	private Date operateTime;
+	/**
 	 * 妫�楠屽憳锛坢es鎻愪緵锛�
 	 */
 	private String inspector;
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ApproveInfoQueryService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ApproveInfoQueryService.java
index 3ec57b0..90f20e1 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ApproveInfoQueryService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ApproveInfoQueryService.java
@@ -4,9 +4,13 @@
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.flowable.engine.HistoryService;
+import org.flowable.engine.history.HistoricProcessInstance;
 import org.flowable.task.api.history.HistoricTaskInstance;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.mdm.basesetting.producedivision.entity.ProduceDivision;
+import org.springblade.mdm.basesetting.producedivision.service.ProduceDivisionService;
+import org.springblade.mdm.commons.service.UserCommonService;
 import org.springblade.mdm.flow.vo.ApproveTableInfo;
 import org.springblade.mdm.program.entity.NcNode;
 import org.springblade.mdm.program.entity.NcProgramApproved;
@@ -35,7 +39,10 @@
 	private IUserClient useClient;
 	@Autowired
 	private NcProgramApprovedService programApprovedService;
-
+	@Autowired
+	private ProduceDivisionService produceDivisionService;
+	@Autowired
+	private UserCommonService userCommonService;
     /**
      * 鑾峰彇瀹為檯瀹℃壒浜哄鍚嶏紝鍜屾椂闂�
 	 * @param props 娴佺▼灞炴��
@@ -73,11 +80,21 @@
 				seniorId = Func.toLong(task.getAssignee());
 			}
 		}
-
-		appInfo.setTeamLeaderName(getNameByUserid(teamLeaderId));
-		appInfo.setProgrammerName(getNameByUserid(programmerId));
-		appInfo.setCheckerName(getNameByUserid(checkerId));
-		appInfo.setSeniorName(getNameByUserid(seniorId));
+		if(teamLeaderId != 0) {
+			appInfo.setTeamLeaderName(userCommonService.getUserNameById(teamLeaderId));
+		}else{
+			//娌℃壘鍒扮粍闀匡紙涓嶆槸璇曞垏浠诲姟锛夛紝鐩存帴鏌ユ壘闆朵欢鍙峰搴斿緱鏁版嵁
+			try {
+				ProduceDivision div = produceDivisionService.getByDrawingNoWithQinzhe(props.getDrawingNo());
+				appInfo.setTeamLeaderName(userCommonService.getUserNameById(div.getTeamLeaderId()));
+			}catch(Exception e){
+				log.error("鏍规嵁闆朵欢鍙�:{}鎵句笉鍒颁汉鍛樿亴璐h〃鏁版嵁",props.getDrawingNo(),e);
+				appInfo.setTeamLeaderName("");
+			}
+		}
+		appInfo.setProgrammerName(userCommonService.getUserNameById(programmerId));
+		appInfo.setCheckerName(userCommonService.getUserNameById(checkerId));
+		appInfo.setSeniorName(userCommonService.getUserNameById(seniorId));
 
 		//鏌ヨ鏁版帶绋嬪簭缂栧彿
 		Optional<NcProgramApproved> appOpt = programApprovedService.lambdaQuery().eq(NcProgramApproved::getProcessInstanceId, props.getProcessInstanceId()).oneOpt();
@@ -91,13 +108,4 @@
 		return appInfo;
 	}
 
-	String getNameByUserid(Long userid){
-		String name = StringUtils.EMPTY;
-		//瀹℃牳
-		R<User> userR = useClient.userInfoById(userid);
-		if (userR.isSuccess()) {
-			name = userR.getData().getName();
-		}
-		return name;
-	}
 }
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/TaskDispatchService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/TaskDispatchService.java
index c72e8ca..4656aa7 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/TaskDispatchService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/TaskDispatchService.java
@@ -133,4 +133,8 @@
 		Optional<TaskDispatch> opt = lambdaQuery().eq(TaskDispatch::getMesTaskId, mesTaskId).oneOpt();
 		return opt.orElse(null);
 	}
+
+    public TaskDispatch getByProgramNo(String programNo) {
+		return lambdaQuery().eq(TaskDispatch::getProgramNo, programNo).one();
+    }
 }
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/controller/ConfirmTablePrintController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/controller/ConfirmTablePrintController.java
index 8ab66f9..a2f9a8d 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/controller/ConfirmTablePrintController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/controller/ConfirmTablePrintController.java
@@ -6,12 +6,10 @@
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import jakarta.servlet.http.HttpServletResponse;
+import liquibase.logging.mdc.customobjects.History;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.poi.ss.usermodel.DateUtil;
 import org.flowable.engine.HistoryService;
-import org.flowable.engine.RuntimeService;
 import org.flowable.engine.history.HistoricProcessInstance;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
@@ -21,11 +19,8 @@
 import org.springblade.mdm.flow.service.FlowCommonService;
 import org.springblade.mdm.flow.service.FlowProgramProperties;
 import org.springblade.mdm.flow.service.TaskDispatchService;
-import org.springblade.mdm.flow.vo.DispathTaskQueryVO;
 import org.springblade.mdm.flow.vo.FlowVO;
-import org.springblade.mdm.statreport.service.ApproveTableService;
 import org.springblade.mdm.statreport.service.ConfirmTablePrintService;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -45,8 +40,7 @@
 	private FlowCommonService flowCommonService;
 	private ConfirmTablePrintService confirmTablePrintService;
 	private final TaskDispatchService taskDispatchService;
-	private final HistoryService hisService;
-
+	private final HistoryService historyService;
 	@GetMapping("/confirm-page")
 	@ApiOperationSupport(order = 3)
 	@Operation(summary = "纭鍗曞垪琛�", description = "纭鍗曞垪琛�")
@@ -60,16 +54,15 @@
 	@Operation(summary = "瀵煎嚭鏁版帶绋嬪簭纭琛�", description = "鏁版帶绋嬪簭纭琛�")
 	public void exportConfirmTable(String processInstanceId,HttpServletResponse response) throws IOException {
 
-		HistoricProcessInstance his = hisService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
-		String taskDispatchId = his.getBusinessKey();
-		TaskDispatch dispatch = taskDispatchService.getById(taskDispatchId);
 		FlowProgramProperties props = flowCommonService.getProgramPropertiesFromHis(processInstanceId);
 
+		HistoricProcessInstance his = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
+		//TaskDispatch dispatch = taskDispatchService.getById(his.getBusinessKey());
 		String progName = props.getDrawingNo()+"-"+props.getProcessNo()+"-"+props.getProcessEdition();
 
 		String filename = UrlUtil.encode("鏁版帶绋嬪簭纭琛�"+progName)+".docx";
 
-		ByteArrayOutputStream outputStream = confirmTablePrintService.exportConfirmTableDoc(dispatch,props);
+		ByteArrayOutputStream outputStream = confirmTablePrintService.exportConfirmTableDoc(props);
 
 		byte[] fileBytes = outputStream.toByteArray();
 
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/controller/CuredProgramController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/controller/CuredProgramController.java
index fecdf21..d2e6e5a 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/controller/CuredProgramController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/controller/CuredProgramController.java
@@ -30,7 +30,7 @@
 import java.util.Map;
 
 /**
- * 鍥哄寲绋嬪簭缁熻
+ * 鍥哄寲绋嬪簭缁熻,缁熻涓�娈垫椂闂村唴鍥哄寲浜嗗灏戠▼搴�
  */
 @Slf4j
 @RestController
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/mapper/TaskDispatchStatMapper.xml b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/mapper/TaskDispatchStatMapper.xml
index 902467f..8625e54 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/mapper/TaskDispatchStatMapper.xml
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/mapper/TaskDispatchStatMapper.xml
@@ -3,11 +3,13 @@
 <mapper namespace="org.springblade.mdm.statreport.mapper.TaskDispatchStatMapper">
 
     <select id="pageQuery" resultType="org.springblade.mdm.statreport.vo.TaskDispatchStatVO">
-        select t.drawing_no,t.process_no,t.process_edition,t.create_time,n.update_time cure_time
+        select t.id,t.drawing_no,t.process_no,t.process_edition,t.machine_code,t.create_time,n.update_time cure_time,
+               t.process_instance_id
         from mdm_task_dispatch t
         left join mdm_nc_node n
             on t.drawing_no=n.drawing_no and t.process_no=n.process_no and t.process_edition=n.process_edition
-                   and n.is_deleted=0 and n.is_cured=1 and n.node_type='60'
+                   and n.is_deleted=0 and n.is_cured=1 and n.node_type='60' and t.machine_code=n.machine_code
+                and n.is_last_edition=1
         <where>
             t.is_deleted=0 and t.status=2 and (t.deviation is null or t.deviation='')
             <if test="query.drawingNo != null and query.drawingNo!=''">
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/service/ApproveTableService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/service/ApproveTableService.java
index dfad95f..89b21f8 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/service/ApproveTableService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/service/ApproveTableService.java
@@ -93,7 +93,7 @@
 
 		dataMap.put("startTime",dispatchDateStr);//宸ユ璐熻矗浜�/鍗曞厓璐熻矗浜烘淳鍑烘椂闂�
 		dataMap.put("fuzeren",approveInfo.getProgrammerName());//璐熻矗浜�
-		int isProgram = 0;
+
 		if(StringUtils.equals(props.getHasCuredProgram(),FlowContants.Y)){
 			//鏍″浠诲姟
 			dataMap.put("jd", WordReplaceUtil.CHECKED);
@@ -109,31 +109,24 @@
 
 		dataMap.put("fzy",WordReplaceUtil.CHECKED); //浠跨湡 鏄�
 		dataMap.put("fzn",WordReplaceUtil.UNCHECKED);//浠跨湡 鍚�
-		Date programDate = approveInfo.getCheckDate();
-		Date checkDate = approveInfo.getCheckDate();
 
-
-
-		String checkDateStr = " ";
-		if (checkDate != null) {
-			checkDateStr = DateUtil.format(programDate, DATE_PATTERN);
-		}
-
-		String approveDateStr = " ";
-		if (approveInfo.getApproveDate() != null) {
-			approveDateStr = DateUtil.format(approveInfo.getApproveDate(), DATE_PATTERN);
-		}
 		String bianzhi = userCommonService.getUserNameById(dispatch.getCreateUser());
-		String bianzhiDateStr =  DateUtil.format(dispatch.getCreateTime(), DATE_PATTERN);
-		dataMap.put("bianzhi",bianzhi+"/"+bianzhiDateStr);//缂栧埗锛氳鍒掑憳/鍙戣捣鏃堕棿
-		dataMap.put("jiaodui",approveInfo.getTeamLeaderName()+"/鏃堕棿涓嶇‘瀹�");
-		dataMap.put("shenpi",approveInfo.getSeniorName()+"/鏃堕棿涓嶇‘瀹�");
+		dataMap.put("bianzhi",bianzhi+"/"+formatTimeForTable(dispatch.getCreateTime()));//缂栧埗锛氳鍒掑憳/鍙戣捣鏃堕棿
+		dataMap.put("jiaodui",approveInfo.getTeamLeaderName()+"/"+formatTimeForTable(approveInfo.getDispatchDate())); //
+		dataMap.put("shenpi",approveInfo.getSeniorName()+"/"+formatTimeForTable(approveInfo.getApproveDate()));//灏辨槸楂樺笀瀹℃壒鏃堕棿
 
 		dataMap.put("sendPath",machine.getProgSendDir()!=null?machine.getProgSendDir():"");
 
 		return dataMap;
 	}
+	String formatTimeForTable(Date date){
+		String DATE_PATTERN = "yyyy-M-d";
+		if(date==null){
+			return "";
+		}
 
+		return DateUtil.format(date, DATE_PATTERN);
+	}
 	/*
 	public void exportApproveTableOld(String processInstanceId, OutputStream os) throws DocumentException, IOException {
 
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..b50b9da 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,74 @@
 	 * 鑾峰彇濉厖鏁版嵁
 	 */
 
-	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);
 
-		if(dispatch == null){
-			dispatch = new TaskDispatch();//TODO 鍚庨潰鍘绘帀
-		}
+		Map<String, String> dataMap = new HashMap<>();
+		NcNode node = this.nodeService.getById(props.getNodeId());
+		TaskDispatch dispatch = taskDispatchService.getByProgramNo(node.getProgramNo());
 
-		Map<String,String> dataMap = new HashMap<>();
+		dataMap.put("bh",node.getProgramNo());//缂栧彿锛屽氨鏄暟鎺х▼搴忕紪鍙�
 
-		dataMap.put("bh","涓嶆槑纭�");
+		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("drawingNo",props.getDrawingNo());
-		dataMap.put("processNo",props.getProcessNo());
-		dataMap.put("craftEdition",props.getCraftEdition());
-		dataMap.put("processEdition",props.getProcessEdition());
-		dataMap.put("machineMode",machine.getName());
+		QinzheFgb qzfgb = qinzheFgbService.getByLjh(props.getDrawingNo());
+		dataMap.put("drawingName",qzfgb.getLjmc());
 
-		String DATE_PATTERN = "yyyy-M-d";
+		dataMap.put("productModel", props.getProductModel());
 
-		String dispatchDateStr = " ";
+		//椤垫暟锛岄〉鍙�
+		dataMap.put("tp", "1");
+		dataMap.put("pg", "1");
+
+
+		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 +196,7 @@
 			vo.setHistoryTaskEndTime(processInstance.getEndTime());
 
 
-			vo.setFile(getFileString(processInstance.getId()));
+			//vo.setFile(getFileString(processInstance.getId()));
 			records.add(vo);
 		}
 
@@ -190,6 +204,14 @@
 
 		return page;
 	}
+
+	String formatTimeForTable(Date date){
+		if(date==null){
+			return "";
+		}
+
+		return DateUtil.format(date, DATE_PATTERN);
+	}
 	/**
 	鑾峰彇鍒楄〃涓殑鏂囦欢鍚�
 	 */
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/service/TaskDispatchStatService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/service/TaskDispatchStatService.java
index a1b7036..52d81df 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/service/TaskDispatchStatService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/service/TaskDispatchStatService.java
@@ -6,15 +6,22 @@
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.ss.usermodel.DateUtil;
+import org.flowable.engine.HistoryService;
+import org.flowable.engine.RuntimeService;
+import org.flowable.engine.history.HistoricProcessInstance;
+import org.flowable.engine.runtime.ProcessInstance;
+import org.flowable.variable.api.event.FlowableVariableEvent;
 import org.jetbrains.annotations.NotNull;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.oss.OssTemplate;
 import org.springblade.core.tool.api.R;
+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.commons.service.ParamService;
 import org.springblade.mdm.commons.service.UserCommonService;
 import org.springblade.mdm.flow.constants.FlowContants;
+import org.springblade.mdm.flow.constants.FlowVariableContants;
 import org.springblade.mdm.flow.entity.TaskDispatch;
 import org.springblade.mdm.flow.service.ApproveInfoQueryService;
 import org.springblade.mdm.flow.service.FlowProgramProperties;
@@ -49,8 +56,9 @@
 	@Autowired
 	private MachineService machineService;
 	@Autowired
-	private TaskDispatchService taskDispatchService;
-
+	private HistoryService historyService;
+	@Autowired
+	private RuntimeService runtimeService;
 	@Autowired
 	private TaskDispatchStatMapper taskDispatchStatMapper;
 
@@ -62,6 +70,25 @@
 
 		IPage<TaskDispatchStatVO> voPage = taskDispatchStatMapper.pageQuery(Condition.getPage(queryVO),queryVO);
 
+		voPage.getRecords().forEach(vo ->
+		{
+			HistoricProcessInstance hisInst = historyService.createHistoricProcessInstanceQuery().processInstanceId(vo.getProcessInstanceId()).singleResult();
+			if(hisInst != null){
+				vo.setProgrammerName(userCommonService.getUserNameById(Func.toLong(hisInst.getProcessVariables().get(FlowVariableContants.PROGRAMMER))));
+			}
+
+
+			if(vo.getCureTime() == null){
+				ProcessInstance runInst = runtimeService.createProcessInstanceQuery().processInstanceId(vo.getProcessInstanceId()).singleResult();
+				if(runInst == null || runInst.isEnded()){
+					vo.setStatus(2);//鍥哄寲涓�
+				}else{
+					vo.setStatus(1);//璇曞垏涓�
+				}
+			}else{
+				vo.setStatus(3);//宸插浐鍖�
+			}
+		});
 		return voPage;
 	}
 }
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/vo/TaskDispatchStatVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/vo/TaskDispatchStatVO.java
index f3ce80d..e9ee26b 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/vo/TaskDispatchStatVO.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/vo/TaskDispatchStatVO.java
@@ -17,10 +17,8 @@
 	 * 璁惧缂栧彿
 	 */
 	private String machineCode;
-	/**
-	 * 宸ュ簭鍚嶇О锛屽鈥滅簿閾b��
-	 */
-	//private String processName;
+
+	private String processInstanceId;
 
 	/**
 	 * 宸ュ簭鐗堟
@@ -31,22 +29,15 @@
 	 */
 	private String processNo;
 	/**
-	 * 宸ヨ壓鐗堟
-	 */
-	private String craftEdition;
-	/**
 	 * 闆剁粍浠跺彿/鍥惧彿
 	 */
 	private String drawingNo;
-	/**
-	 * 鍥惧彿鐗堟
-	 */
-	private String drawingNoEdition;
+
 
 	/**
-	 * 浜у搧鍨嬪彿
+	 * 涓荤宸ヨ壓濮撳悕
 	 */
-	private String productModel;
+	private String programmerName;
 
 
 	/**
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/thirdpart/service/MesTaskService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/thirdpart/service/MesTaskService.java
index d94029d..f8491a4 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/thirdpart/service/MesTaskService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/thirdpart/service/MesTaskService.java
@@ -3,6 +3,7 @@
 
 import lombok.extern.slf4j.Slf4j;
 import org.flowable.engine.RuntimeService;
+import org.flowable.engine.runtime.ProcessInstance;
 import org.springblade.mdm.flow.constants.FlowVariableContants;
 import org.springblade.mdm.flow.entity.TaskDispatch;
 import org.springblade.mdm.flow.service.TaskDispatchService;
@@ -57,7 +58,12 @@
 			taskDispatch.setCheckTime(finishTaskVO.getCheckTime());
 			taskDispatchService.updateById(taskDispatch);
 
-			runtimeService.setVariable(taskDispatch.getProcessInstanceId(), FlowVariableContants.PROCESS_CARD,finishTaskVO.getProcessCard());
+			ProcessInstance inst = runtimeService.createProcessInstanceQuery()
+				.processInstanceId(taskDispatch.getProcessInstanceId()).active().singleResult();
+			if(inst != null){
+				runtimeService.setVariable(taskDispatch.getProcessInstanceId(), FlowVariableContants.PROCESS_CARD,finishTaskVO.getProcessCard());
+			}
+
 		}
 	}
 }

--
Gitblit v1.9.3