|
@@ -13,12 +13,16 @@ import com.qunzhixinxi.hnqz.admin.api.dto.SysCheckChainNodeCheckHistoryDTO;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.dto.SysCheckChainNodeCheckHistoryDTO.OnCreate;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysCheckChainNodeCheckHistory;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.entity.SysDictItem;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmDaDrugEntDrugtable;
|
|
|
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.WmTaskContent;
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskContentConfig;
|
|
|
import com.qunzhixinxi.hnqz.admin.controller.task.vo.TaskReqVO;
|
|
|
+import com.qunzhixinxi.hnqz.admin.controller.task.vo.TaskReqVO.OnPage;
|
|
|
import com.qunzhixinxi.hnqz.admin.controller.task.vo.TaskRespVO;
|
|
|
import com.qunzhixinxi.hnqz.admin.controller.task.vo.TaskRespVO.ToDirectCheck;
|
|
|
import com.qunzhixinxi.hnqz.admin.mapper.SysCheckChainNodeCheckHistoryMapper;
|
|
@@ -26,6 +30,7 @@ import com.qunzhixinxi.hnqz.admin.mapper.WmTaskV2Mapper;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.SysUserAreaService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmScorePackageStatusService;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.WmTaskContentService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmTaskService;
|
|
|
import com.qunzhixinxi.hnqz.common.core.constant.CacheConstants;
|
|
|
import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
|
|
@@ -36,7 +41,10 @@ import java.time.LocalDateTime;
|
|
|
import java.time.LocalTime;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Collections;
|
|
|
+import java.util.Comparator;
|
|
|
import java.util.HashMap;
|
|
|
+import java.util.LinkedHashMap;
|
|
|
+import java.util.LinkedList;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.function.Function;
|
|
@@ -59,6 +67,7 @@ public class TaskManager {
|
|
|
|
|
|
@Resource private RedisTemplate redisTemplate;
|
|
|
@Resource private WmTaskV2Mapper taskMapper;
|
|
|
+ @Resource private WmTaskContentService taskContentService;
|
|
|
@Resource private WmTaskService taskService;
|
|
|
@Resource private SysUserAreaService userAreaService;
|
|
|
@Resource private WmScorePackageService scorePackageService;
|
|
@@ -66,6 +75,19 @@ public class TaskManager {
|
|
|
@Resource private WmScorePackageStatusService scorePackageStatusService;
|
|
|
@Resource private SysCheckChainNodeCheckHistoryMapper checkChainNodeCheckHistoryMapper;
|
|
|
|
|
|
+ /**
|
|
|
+ * 平铺审核分页
|
|
|
+ *
|
|
|
+ * @param query 查询条件
|
|
|
+ * @param user 审核人
|
|
|
+ * @return 分页信息
|
|
|
+ */
|
|
|
+ public Page<ToDirectCheck> pageTaskToCheckInTile(@Valid TaskReqVO.OnPage query, HnqzUser user) {
|
|
|
+
|
|
|
+ Page<ToDirectCheck> page = getCheckPage(query, user);
|
|
|
+ return build(page, true);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 分页查询
|
|
|
*
|
|
@@ -75,6 +97,12 @@ public class TaskManager {
|
|
|
public Page<TaskRespVO.ToDirectCheck> pageTaskToCheck(
|
|
|
@Valid TaskReqVO.OnPage query, HnqzUser user) {
|
|
|
|
|
|
+ Page<ToDirectCheck> page = getCheckPage(query, user);
|
|
|
+
|
|
|
+ return build(page, false);
|
|
|
+ }
|
|
|
+
|
|
|
+ private Page<ToDirectCheck> getCheckPage(OnPage query, HnqzUser user) {
|
|
|
// 获取vendor
|
|
|
List<Integer> vendorList = getVendorList(query.getVendorId(), user);
|
|
|
|
|
@@ -94,7 +122,7 @@ public class TaskManager {
|
|
|
// 获取产品信息
|
|
|
List<String> skuIds = getSkuIds(query.getMahName(), query.getSkuId());
|
|
|
|
|
|
- Page<TaskRespVO.ToDirectCheck> page = new Page<>(query.getCurrent(), query.getSize());
|
|
|
+ Page<ToDirectCheck> page = new Page<>(query.getCurrent(), query.getSize());
|
|
|
|
|
|
taskMapper.pageDirectCheck(
|
|
|
page,
|
|
@@ -112,8 +140,7 @@ public class TaskManager {
|
|
|
query.getProvAbbr(),
|
|
|
calcNodeSum(query.getNodeId()),
|
|
|
query.getTaskStatus());
|
|
|
-
|
|
|
- return build(page);
|
|
|
+ return page;
|
|
|
}
|
|
|
|
|
|
private List<Integer> calcNodeSum(Integer nodeId) {
|
|
@@ -182,7 +209,8 @@ public class TaskManager {
|
|
|
}
|
|
|
|
|
|
// 组装数据
|
|
|
- private Page<TaskRespVO.ToDirectCheck> build(Page<TaskRespVO.ToDirectCheck> page) {
|
|
|
+ private Page<TaskRespVO.ToDirectCheck> build(
|
|
|
+ Page<TaskRespVO.ToDirectCheck> page, boolean toTile) {
|
|
|
|
|
|
List<ToDirectCheck> records = page.getRecords();
|
|
|
|
|
@@ -206,6 +234,36 @@ public class TaskManager {
|
|
|
Map<String, WmDaDrugEntDrugtable> drugtableMap =
|
|
|
drugs.stream().collect(Collectors.toMap(WmDaDrugEntDrugtable::getId, Function.identity()));
|
|
|
|
|
|
+ // 从缓存中获取配置项
|
|
|
+ List<WmTaskContentConfig> configs =
|
|
|
+ operations.range(CacheConstants.TASK_CONTENT_CONFIG_KEY, 0, -1);
|
|
|
+ Map<String, List<WmTaskContentConfig>> configMap =
|
|
|
+ configs.stream()
|
|
|
+ .sorted(Comparator.comparingInt(WmTaskContentConfig::getSeq))
|
|
|
+ .collect(Collectors.groupingBy(WmTaskContentConfig::getTaskTypeId));
|
|
|
+
|
|
|
+ // 从缓存中获取字典项
|
|
|
+ List<SysDictItem> items = operations.range(CacheConstants.DICT_ITEM_KEY, 0, -1);
|
|
|
+ Map<String, List<SysDictItem>> itemMap =
|
|
|
+ items.stream().collect(Collectors.groupingBy(SysDictItem::getType));
|
|
|
+
|
|
|
+ // 获取任务内容
|
|
|
+ Map<Integer, WmTaskContent> tcId2EntityMap = new HashMap<>();
|
|
|
+ if (toTile) {
|
|
|
+ List<Integer> tcIds =
|
|
|
+ records.stream()
|
|
|
+ .map(ToDirectCheck::getTaskContentId)
|
|
|
+ .distinct()
|
|
|
+ .sorted()
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ if (CollUtil.isNotEmpty(tcIds)) {
|
|
|
+ tcId2EntityMap =
|
|
|
+ taskContentService.listByIds(tcIds).stream()
|
|
|
+ .collect(Collectors.toMap(WmTaskContent::getId, Function.identity()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
// List<Integer> taskIds =
|
|
|
// records.stream()
|
|
|
// .mapToInt(ToDirectCheck::getTaskId)
|
|
@@ -220,21 +278,47 @@ public class TaskManager {
|
|
|
// Map<Long, List<Map<String, Object>>> his =
|
|
|
// taskCheckHis.stream().collect(Collectors.groupingBy(r -> (Long) r.get("target_id")));
|
|
|
|
|
|
- records.forEach(
|
|
|
- record -> {
|
|
|
- SysUser sysUser = userMap.get(record.getTaskUserId());
|
|
|
- SysDept dept = deptMap.get(record.getEntId());
|
|
|
- WmDaDrugEntDrugtable drugtable = drugtableMap.get(record.getSkuId());
|
|
|
+ for (ToDirectCheck record : records) {
|
|
|
|
|
|
- record.setSalesName(sysUser != null ? sysUser.getRealname() : "");
|
|
|
- record.setEntName(dept.getName());
|
|
|
- record.setSkuName(drugtable.getDrugnameTy());
|
|
|
- record.setMahName(drugtable.getDrugEntName());
|
|
|
+ SysUser sysUser = userMap.get(record.getTaskUserId());
|
|
|
+ SysDept dept = deptMap.get(record.getEntId());
|
|
|
+ WmDaDrugEntDrugtable drugtable = drugtableMap.get(record.getSkuId());
|
|
|
|
|
|
- // 查询审核记录
|
|
|
- // List<Map<String, Object>> maps = his.get((long) record.getTaskId());
|
|
|
- // record.setCheckHistoryList(maps);
|
|
|
- });
|
|
|
+ record.setSalesName(sysUser != null ? sysUser.getRealname() : "");
|
|
|
+ record.setEntName(dept.getName());
|
|
|
+ record.setSkuName(drugtable.getDrugnameTy());
|
|
|
+ record.setMahName(drugtable.getDrugEntName());
|
|
|
+
|
|
|
+ // 任务内容
|
|
|
+ WmTaskContent taskContent = tcId2EntityMap.get(record.getTaskContentId());
|
|
|
+ record.setTaskContent(taskContent);
|
|
|
+ List<WmTaskContentConfig> configList = configMap.get(record.getTaskTypeId());
|
|
|
+ record.setConfigs(configList);
|
|
|
+
|
|
|
+ if (CollUtil.isNotEmpty(configList)) {
|
|
|
+
|
|
|
+ Map<String, List<SysDictItem>> coll = new LinkedHashMap<>();
|
|
|
+
|
|
|
+ for (WmTaskContentConfig config : configList) {
|
|
|
+
|
|
|
+ if (StrUtil.isBlank(config.getDictGroupName())) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ List<SysDictItem> items1 = itemMap.get(config.getDictGroupName());
|
|
|
+
|
|
|
+ if (CollUtil.isEmpty(items1)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ coll.put(config.getDictGroupName(), itemMap.get(config.getDictGroupName()));
|
|
|
+ }
|
|
|
+ record.setDict(coll);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 查询审核记录
|
|
|
+ // List<Map<String, Object>> maps = his.get((long) record.getTaskId());
|
|
|
+ // record.setCheckHistoryList(maps);
|
|
|
+ }
|
|
|
|
|
|
page.setRecords(records);
|
|
|
return page;
|