Quellcode durchsuchen

fix: 个人任务明细数据导出接口-部分字段回显问题

lixuesong vor 3 Tagen
Ursprung
Commit
245c5d9791

+ 15 - 0
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/constant/UpmsState.java

@@ -186,6 +186,21 @@ public class UpmsState {
 
     @EnumValue private final String state;
     private final String desc;
+
+    /**
+     * 根据state获取名称
+     *
+     * @param state 状态
+     * @return {@link String } 名称
+     */
+    public static String getByStateName(String state) {
+      for (TaskState value : values()) {
+        if (value.state.equals(state)) {
+          return value.desc;
+        }
+      }
+      return "";
+    }
   }
 
   @Getter

+ 2 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/pkg/WmScorePackageExportController.java

@@ -60,7 +60,8 @@ public class WmScorePackageExportController {
 
 		LocalDate today = LocalDate.now();
 		if(endDate == null) {
-			endDate = today;
+			// 当月的最后一天
+			endDate = LocalDate.of(today.getYear(),  today.getMonth(), today.lengthOfMonth());
 		}
 		if(startDate == null) {
 			// 当月的第一天

+ 2 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/task/WmTaskExportController.java

@@ -60,7 +60,8 @@ public class WmTaskExportController {
 
 		LocalDate today = LocalDate.now();
 		if(endDate == null) {
-			endDate = today;
+			// 当月的最后一天
+			endDate = LocalDate.of(today.getYear(),  today.getMonth(), today.lengthOfMonth());
 		}
 		if(startDate == null) {
 			// 当月的第一天

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

@@ -1,18 +1,20 @@
 package com.qunzhixinxi.hnqz.admin.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.qunzhixinxi.hnqz.admin.api.constant.UpmsState;
 import com.qunzhixinxi.hnqz.admin.api.constant.enums.EnableEnum;
 import com.qunzhixinxi.hnqz.admin.api.constant.enums.ExportType;
 import com.qunzhixinxi.hnqz.admin.api.constant.enums.PackageStatusEnum;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmDaDrugEntDrugtable;
-import com.qunzhixinxi.hnqz.admin.api.entity.WmPackageTaskTypeQty;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackageStatus;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTask;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskType;
 import com.qunzhixinxi.hnqz.admin.api.model.excel.WmScorePackageSubInfoExcelModel;
 import com.qunzhixinxi.hnqz.admin.api.model.excel.WmTaskDetailExcelModel;
 import com.qunzhixinxi.hnqz.admin.aspect.ExportGuard;
@@ -24,10 +26,12 @@ import com.qunzhixinxi.hnqz.admin.mapper.SysUserMapper;
 import com.qunzhixinxi.hnqz.admin.mapper.WmScorePackageMapper;
 import com.qunzhixinxi.hnqz.admin.mapper.WmScorePackageStatusMapper;
 import com.qunzhixinxi.hnqz.admin.mapper.WmTaskMapper;
+import com.qunzhixinxi.hnqz.admin.mapper.WmTaskTypeMapper;
 import com.qunzhixinxi.hnqz.admin.service.WmScorePackageExportService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskDetailExportService;
 import com.qunzhixinxi.hnqz.admin.util.ExportUtils;
 import com.qunzhixinxi.hnqz.admin.util.RedisUtils;
+import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
 import com.qunzhixinxi.hnqz.common.core.util.SpringContextHolder;
 import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
 import lombok.RequiredArgsConstructor;
@@ -37,9 +41,11 @@ import org.springframework.stereotype.Service;
 import java.time.LocalDate;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
@@ -55,6 +61,7 @@ import java.util.stream.Collectors;
 public class WmTaskDetailExportServiceImpl implements WmTaskDetailExportService {
 	private final WmScorePackageMapper scorePackageMapper;
 	private final WmTaskMapper taskMapper;
+	private final WmTaskTypeMapper taskTypeMapper;
 	private final SysUserMapper userMapper;
 	private final WmScorePackageStatusMapper scorePackageStatusMapper;
 	private final WmScorePackageExportService scorePackageExportService;
@@ -126,7 +133,6 @@ public class WmTaskDetailExportServiceImpl implements WmTaskDetailExportService
 		Map<String, WmDaDrugEntDrugtable> drugtableMap = scope.getDrugtableMap();
 		List<String> cPkgIds = scope.getCPkgIds();
 		List<WmScorePackage> childrenPkgs = scope.getChildrenPkgs();
-		Map<Integer, List<WmPackageTaskTypeQty>> pttMap = scope.getPttMap();
 
 		// 获取区域的上级包
 		List<String> parentIds = childrenPkgs.stream()
@@ -148,6 +154,13 @@ public class WmTaskDetailExportServiceImpl implements WmTaskDetailExportService
 				Wrappers.<WmTask>lambdaQuery()
 						.in(WmTask::getScorePackageId, cPkgIds));
 
+		// 任务类型名称
+		List<WmTaskType> taskTypes = taskTypeMapper.selectList(Wrappers.<WmTaskType>lambdaQuery()
+				.eq(WmTaskType::getDelFlag, CommonConstants.STATUS_NORMAL)
+				.lt(WmTaskType::getId, 1000));
+		Map<String, String> taskTypeNameMap =
+				taskTypes.stream().collect(Collectors.toMap(WmTaskType::getId, WmTaskType::getTaskTypeName, (n1, n2) -> n1));
+
 		// 获取所有执行包领取记录
 		List<WmScorePackageStatus> scorePackageStatuses = scorePackageStatusMapper.selectList(
 				Wrappers.<WmScorePackageStatus>lambdaQuery()
@@ -174,15 +187,25 @@ public class WmTaskDetailExportServiceImpl implements WmTaskDetailExportService
 		Map<String, List<WmTask>> pkg2TaskListMap = tasks.stream()
 				.collect(Collectors.groupingBy(WmTask::getScorePackageId));
 
+		AtomicInteger index = new AtomicInteger(1);
 		return childrenPkgs.parallelStream()
 				.map(pkg -> buildTaskExcelModel(pkg, service, parentPackageMap, drugtableMap,
-						packageUserMap, pkg2TaskListMap))
-				.flatMap(Collection::stream)
+						packageUserMap, pkg2TaskListMap, taskTypeNameMap))
+				.flatMap(Collection::stream).peek(model -> model.setNumber(index.getAndIncrement()))
 				.collect(Collectors.toList());
 	}
 
 	/**
 	 * 构建每个执行包下任务的Excel模型数据
+	 *
+	 * @param pkg              积分包
+	 * @param service          服务商
+	 * @param parentPackageMap 父包映射
+	 * @param drugtableMap     药品map
+	 * @param packageUserMap   积分包接单用户
+	 * @param pkg2TaskListMap  积分包下的任务列表map
+	 * @param taskTypeNameMap  任务类型名称映射
+	 * @return {@link List }<{@link WmTaskDetailExcelModel }> 任务明细数据list
 	 */
 	private List<WmTaskDetailExcelModel> buildTaskExcelModel(
 			WmScorePackage pkg,
@@ -190,14 +213,17 @@ public class WmTaskDetailExportServiceImpl implements WmTaskDetailExportService
 			Map<String, WmScorePackage> parentPackageMap,
 			Map<String, WmDaDrugEntDrugtable> drugtableMap,
 			Map<String, SysUser> packageUserMap,
-			Map<String, List<WmTask>> pkg2TaskListMap) {
+			Map<String, List<WmTask>> pkg2TaskListMap,
+			Map<String, String> taskTypeNameMap) {
 
 		List<WmTaskDetailExcelModel> models = new ArrayList<>();
 
 		List<WmTask> tasks = pkg2TaskListMap.get(pkg.getId());
-		for (int i = 0; i < tasks.size(); i++) {
-			WmTask task = tasks.get(i);
+		if (CollUtil.isEmpty(tasks)) {
+			return Collections.emptyList();
+		}
 
+		for (WmTask task : tasks) {
 			WmTaskDetailExcelModel model = new WmTaskDetailExcelModel();
 
 			// 市场服务供应商名称
@@ -210,6 +236,7 @@ public class WmTaskDetailExportServiceImpl implements WmTaskDetailExportService
 
 			// 父级包
 			WmScorePackage parentPackage = parentPackageMap.get(pkg.getRelationScoreId());
+			model.setParentPkgId(parentPackage != null ? parentPackage.getId() : "");
 			model.setParentPkgName(parentPackage != null ? parentPackage.getScorePackageName() : "");
 
 			// 执行包年度、季度
@@ -229,8 +256,8 @@ public class WmTaskDetailExportServiceImpl implements WmTaskDetailExportService
 
 			// 任务ID、任务类型
 			model.setTaskId(task.getId());
-			model.setTaskName(task.getTaskTypeName());
-			model.setTaskStatus(task.getTaskStatus());
+			model.setTaskName(taskTypeNameMap.getOrDefault(task.getTaskTypeId(), ""));
+			model.setTaskStatus(UpmsState.TaskState.getByStateName(task.getTaskStatus()));
 			model.setTaskCreateTime(DateUtil.formatLocalDateTime(task.getCreateTime()));
 			model.setRejectReason(task.getTaskStatusInfo());
 			models.add(model);