Преглед на файлове

feat: 知会增加检索条件,分页增加字段

lixuesong преди 3 месеца
родител
ревизия
cf64272f0d
променени са 1 файла, в които са добавени 46 реда и са изтрити 8 реда
  1. 46 8
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/manager/WmPackageManager.java

+ 46 - 8
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/manager/WmPackageManager.java

@@ -3,6 +3,7 @@ package com.qunzhixinxi.hnqz.admin.manager;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.util.ArrayUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -74,6 +75,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
+import java.util.Optional;
 import java.util.Set;
 import java.util.function.Function;
 import java.util.stream.Collectors;
@@ -218,10 +220,14 @@ public class WmPackageManager {
       LocalDate issueDate = pkgPeriod.get("issueDate");
       LocalDate expiryDate = pkgPeriod.get("expiryDate");
 
+      // 获取产品信息
+      List<String> skuIds = getSkuIds(query.getMahName(), query.getSkuId());
+
       List<WmScorePackage> pkgs = scorePackageService.list(Wrappers.<WmScorePackage>lambdaQuery()
           .eq(StrUtil.isNotBlank(query.getPkgId()), WmScorePackage::getId, query.getPkgId())
           .eq(StrUtil.isNotBlank(query.getPkgName()), WmScorePackage::getScorePackageName, query.getPkgName())
           .eq(StrUtil.isNotBlank(query.getProvAbbr()), WmScorePackage::getProvAbbr, query.getProvAbbr())
+          .in(CollUtil.isNotEmpty(skuIds), WmScorePackage::getDrugtable, skuIds)
           .in(WmScorePackage::getSendPackageDeptId, entIds).in(WmScorePackage::getDrugtable, drugIds)
           .between(WmScorePackage::getStartTime, issueDate, expiryDate));
 
@@ -261,9 +267,21 @@ public class WmPackageManager {
               .boxed()
               .collect(Collectors.toSet());
 
+      List<WmScorePackage> scorePackages = scorePackageService.listByIds(pkgIds);
       Map<String, WmScorePackage> pkgIdToPkgMap =
-          scorePackageService.listByIds(pkgIds).stream()
-              .collect(Collectors.toMap(WmScorePackage::getId, Function.identity()));
+          scorePackages.stream().collect(Collectors.toMap(WmScorePackage::getId, Function.identity()));
+
+      // 获取涉及到的产品信息
+      List<WmDaDrugEntDrugtable> range =
+              redisTemplate.opsForList().range(CacheConstants.DRUG_KEY, 0, -1);
+
+      Map<String, WmDaDrugEntDrugtable> drugtableMap = new HashMap<>();
+      if (CollUtil.isNotEmpty(range)) {
+          Set<String> skuIds = scorePackages.stream().filter(p -> ArrayUtil.isNotEmpty(p.getDrugtable()))
+              .map(p -> p.getDrugtable()[0]).collect(Collectors.toSet());
+          drugtableMap.putAll(range.stream().filter(d -> skuIds.contains(d.getId()))
+              .collect(Collectors.toMap(WmDaDrugEntDrugtable::getId, Function.identity())));
+      }
 
       resList =
           records.stream()
@@ -272,13 +290,33 @@ public class WmPackageManager {
                     Map<String, Object> map = BeanUtil.copyProperties(r, Map.class);
 
                     WmScorePackage wmScorePackage = pkgIdToPkgMap.get(r.getPackageId().toString());
-                    String pkgName =
-                        Objects.nonNull(wmScorePackage) ? wmScorePackage.getScorePackageName() : "";
-                    String score =
-                        Objects.nonNull(wmScorePackage) ? wmScorePackage.getScore().toString() : "";
 
-                    map.put("packageName", pkgName);
-                    map.put("packageScore", score);
+                    map.put("packageName", "");
+                    map.put("packageScore", "");
+                    map.put("provAbbr", "");
+                    map.put("skuName", "");
+                    map.put("mahName", "");
+
+                    if (Objects.nonNull(wmScorePackage)) {
+                        String pkgName = wmScorePackage.getScorePackageName();
+                        String score = wmScorePackage.getScore().toString();
+
+                        map.put("packageName", pkgName);
+                        map.put("packageScore", score);
+                        // 省份
+                        map.put("provAbbr", wmScorePackage.getProvAbbr());
+
+                        Optional<WmDaDrugEntDrugtable> drugtableOpt =
+                            Optional.ofNullable(wmScorePackage.getDrugtable())
+                                .map(drugtable -> drugtableMap.get(drugtable[0]));
+                        if (drugtableOpt.isPresent()) {
+                            WmDaDrugEntDrugtable drugtable = drugtableOpt.get();
+                            // 产品名称
+                            map.put("skuName", drugtable.getDrugnameTy());
+                            // 所属生产企业
+                            map.put("mahName", drugtable.getDrugEntName());
+                        }
+                    }
                     return map;
                   })
               .collect(Collectors.toList());