浏览代码

fix: 导出个人明细-判断事业部总经理及之前审核状态并设置

lixuesong 1 天之前
父节点
当前提交
4075d01276

+ 15 - 11
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmTaskDetailExportServiceImpl.java

@@ -208,10 +208,9 @@ public class WmTaskDetailExportServiceImpl implements WmTaskDetailExportService
 		List<SysCheckChainNodeCheckHistory> nodeCheckHistories = checkChainNodeCheckHistoryMapper.selectList(
 				Wrappers.<SysCheckChainNodeCheckHistory>lambdaQuery()
 						.in(SysCheckChainNodeCheckHistory::getTargetId, taskIds)
-						.eq(SysCheckChainNodeCheckHistory::getNodeId, 6));
-		Map<Integer, SysCheckChainNodeCheckHistory> nodeCheckHistoryMap =
-				nodeCheckHistories.stream().collect(Collectors.toMap(SysCheckChainNodeCheckHistory::getTargetId,
-						Function.identity(), (n1, n2) -> n1));
+						.orderByAsc(SysCheckChainNodeCheckHistory::getHistoryId));
+		Map<Integer, List<SysCheckChainNodeCheckHistory>> nodeCheckHistoryMap =
+				nodeCheckHistories.stream().collect(Collectors.groupingBy(SysCheckChainNodeCheckHistory::getTargetId));
 
 		AtomicInteger index = new AtomicInteger(1);
 		return childrenPkgs.parallelStream()
@@ -242,7 +241,7 @@ public class WmTaskDetailExportServiceImpl implements WmTaskDetailExportService
 			Map<String, SysUser> packageUserMap,
 			Map<String, List<WmTask>> pkg2TaskListMap,
 			Map<String, String> taskTypeNameMap, Map<Integer,
-			SysCheckChainNodeCheckHistory> nodeCheckHistoryMap) {
+			List<SysCheckChainNodeCheckHistory>> nodeCheckHistoryMap) {
 
 		List<WmTaskDetailExcelModel> models = new ArrayList<>();
 
@@ -286,14 +285,19 @@ public class WmTaskDetailExportServiceImpl implements WmTaskDetailExportService
 			model.setTaskId(task.getId());
 			model.setTaskName(taskTypeNameMap.getOrDefault(task.getTaskTypeId(), ""));
 
-			// 事业部总经理审核状态
-			SysCheckChainNodeCheckHistory chainNodeCheckHistory = nodeCheckHistoryMap.get(Integer.parseInt(task.getId()));
-			if (chainNodeCheckHistory == null) {
+			// 判断事业部总经理及之前审核状态(
+			// 1.总经理未审之前,前面节点未拒绝的,则认为是审核中;
+			// 2.总经理未审之前,前面有节点拒绝的,则任务是已拒绝;
+			// 3.钟经理已审,根据实际审核状态回显)
+			List<SysCheckChainNodeCheckHistory> chainNodeCheckHistorys = nodeCheckHistoryMap.get(Integer.parseInt(task.getId()));
+			if (CollUtil.isEmpty(chainNodeCheckHistorys)) {
 				model.setTaskStatus("审核中");
 			} else {
-				model.setTaskStatus(Boolean.TRUE.equals(chainNodeCheckHistory.getCheckResult()) ? "审核通过" : "已拒绝");
-				model.setTaskCreateTime(DateUtil.formatLocalDateTime(chainNodeCheckHistory.getCreateTime()));
-				model.setRejectReason(chainNodeCheckHistory.getCheckMsg());
+				SysCheckChainNodeCheckHistory lastCheckHis = chainNodeCheckHistorys.get(chainNodeCheckHistorys.size() - 1);
+				model.setTaskStatus(Boolean.TRUE.equals(lastCheckHis.getCheckResult()) ?
+						lastCheckHis.getNodeId() == 6 ? "审核通过" : "审核中" : "已拒绝");
+				model.setTaskCreateTime(DateUtil.formatLocalDateTime(lastCheckHis.getCreateTime()));
+				model.setRejectReason(lastCheckHis.getCheckMsg());
 			}
 			models.add(model);
 		}