|
@@ -3,6 +3,7 @@ package com.qunzhixinxi.hnqz.admin.manager;
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
import cn.hutool.core.collection.CollUtil;
|
|
import cn.hutool.core.collection.CollUtil;
|
|
import cn.hutool.core.date.DatePattern;
|
|
import cn.hutool.core.date.DatePattern;
|
|
|
|
+import cn.hutool.core.util.ArrayUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
@@ -74,6 +75,7 @@ import java.util.HashSet;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
import java.util.Objects;
|
|
import java.util.Objects;
|
|
|
|
+import java.util.Optional;
|
|
import java.util.Set;
|
|
import java.util.Set;
|
|
import java.util.function.Function;
|
|
import java.util.function.Function;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
@@ -218,10 +220,14 @@ public class WmPackageManager {
|
|
LocalDate issueDate = pkgPeriod.get("issueDate");
|
|
LocalDate issueDate = pkgPeriod.get("issueDate");
|
|
LocalDate expiryDate = pkgPeriod.get("expiryDate");
|
|
LocalDate expiryDate = pkgPeriod.get("expiryDate");
|
|
|
|
|
|
|
|
+ // 获取产品信息
|
|
|
|
+ List<String> skuIds = getSkuIds(query.getMahName(), query.getSkuId());
|
|
|
|
+
|
|
List<WmScorePackage> pkgs = scorePackageService.list(Wrappers.<WmScorePackage>lambdaQuery()
|
|
List<WmScorePackage> pkgs = scorePackageService.list(Wrappers.<WmScorePackage>lambdaQuery()
|
|
.eq(StrUtil.isNotBlank(query.getPkgId()), WmScorePackage::getId, query.getPkgId())
|
|
.eq(StrUtil.isNotBlank(query.getPkgId()), WmScorePackage::getId, query.getPkgId())
|
|
.eq(StrUtil.isNotBlank(query.getPkgName()), WmScorePackage::getScorePackageName, query.getPkgName())
|
|
.eq(StrUtil.isNotBlank(query.getPkgName()), WmScorePackage::getScorePackageName, query.getPkgName())
|
|
.eq(StrUtil.isNotBlank(query.getProvAbbr()), WmScorePackage::getProvAbbr, query.getProvAbbr())
|
|
.eq(StrUtil.isNotBlank(query.getProvAbbr()), WmScorePackage::getProvAbbr, query.getProvAbbr())
|
|
|
|
+ .in(CollUtil.isNotEmpty(skuIds), WmScorePackage::getDrugtable, skuIds)
|
|
.in(WmScorePackage::getSendPackageDeptId, entIds).in(WmScorePackage::getDrugtable, drugIds)
|
|
.in(WmScorePackage::getSendPackageDeptId, entIds).in(WmScorePackage::getDrugtable, drugIds)
|
|
.between(WmScorePackage::getStartTime, issueDate, expiryDate));
|
|
.between(WmScorePackage::getStartTime, issueDate, expiryDate));
|
|
|
|
|
|
@@ -261,9 +267,21 @@ public class WmPackageManager {
|
|
.boxed()
|
|
.boxed()
|
|
.collect(Collectors.toSet());
|
|
.collect(Collectors.toSet());
|
|
|
|
|
|
|
|
+ List<WmScorePackage> scorePackages = scorePackageService.listByIds(pkgIds);
|
|
Map<String, WmScorePackage> pkgIdToPkgMap =
|
|
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 =
|
|
resList =
|
|
records.stream()
|
|
records.stream()
|
|
@@ -272,13 +290,33 @@ public class WmPackageManager {
|
|
Map<String, Object> map = BeanUtil.copyProperties(r, Map.class);
|
|
Map<String, Object> map = BeanUtil.copyProperties(r, Map.class);
|
|
|
|
|
|
WmScorePackage wmScorePackage = pkgIdToPkgMap.get(r.getPackageId().toString());
|
|
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;
|
|
return map;
|
|
})
|
|
})
|
|
.collect(Collectors.toList());
|
|
.collect(Collectors.toList());
|