Эх сурвалжийг харах

fix: 知会增加检索条件,分页增加字段修复

lixuesong 3 сар өмнө
parent
commit
bad0418408

+ 0 - 6
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/dto/WmPkgDTO.java

@@ -115,9 +115,6 @@ public final class WmPkgDTO {
     // 季度
     private String quarter;
 
-    // 推广员
-    private Integer salesId;
-
     // 生产企业
     private String mahName;
 
@@ -127,9 +124,6 @@ public final class WmPkgDTO {
     // 服务包所属省份
     private String provAbbr;
 
-    // 审核节点
-    private Integer nodeId;
-
     // 包ID
     private String pkgId;
 

+ 37 - 10
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/manager/WmPackageManager.java

@@ -169,12 +169,45 @@ public class WmPackageManager {
       queryWrapper.eq(WmPackageRedemptionNotice::getStep, query.getStep());
     }
 
+    // 计算服务包查询周期
+    Map<String, LocalDate> pkgPeriod = this.calcPkgPeriod(query.getYear(), query.getQuarter());
+    LocalDate issueDate = pkgPeriod.get("issueDate");
+    LocalDate expiryDate = pkgPeriod.get("expiryDate");
+
+    // 获取产品信息
+    List<String> skuIds = getSkuIds(query.getMahName(), query.getSkuId());
+    if (CollUtil.isEmpty(skuIds) && StrUtil.isNotBlank(query.getMahName())) {
+      // 产品信息为空且生产企业不为空,则返回空
+      return res;
+    }
+
     // 根据用户角色判断是管理员还是服务商
     // 区域管理员
     if (roles.contains(DIST_ADMIN_ROLE)) {
       queryWrapper
           .eq(WmPackageRedemptionNotice::getFromEntId, user.getDeptId())
           .eq(WmPackageRedemptionNotice::getCreateBy, user.getUsername());
+
+      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)
+              .between(WmScorePackage::getStartTime, issueDate, expiryDate));
+
+      if (CollUtil.isEmpty(pkgs)) {
+        return res;
+      }
+
+      List<Integer> pkgIds =
+              pkgs.stream()
+                      .mapToInt(p -> Integer.parseInt(p.getId()))
+                      .boxed()
+                      .distinct()
+                      .sorted()
+                      .collect(Collectors.toList());
+
+      queryWrapper.in(WmPackageRedemptionNotice::getPackageId, pkgIds);
     }
     // 事业部分管领导 || 所有监督角色
     else if (CollUtil.containsAny(
@@ -215,14 +248,6 @@ public class WmPackageManager {
               .sorted()
               .collect(Collectors.toList());
 
-      // 计算服务包查询周期
-      Map<String, LocalDate> pkgPeriod = this.calcPkgPeriod(query.getYear(), query.getQuarter());
-      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())
@@ -277,9 +302,9 @@ public class WmPackageManager {
 
       Map<String, WmDaDrugEntDrugtable> drugtableMap = new HashMap<>();
       if (CollUtil.isNotEmpty(range)) {
-          Set<String> skuIds = scorePackages.stream().filter(p -> ArrayUtil.isNotEmpty(p.getDrugtable()))
+          Set<String> drugtableSet = 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()))
+          drugtableMap.putAll(range.stream().filter(d -> drugtableSet.contains(d.getId()))
               .collect(Collectors.toMap(WmDaDrugEntDrugtable::getId, Function.identity())));
       }
 
@@ -295,6 +320,7 @@ public class WmPackageManager {
                     map.put("packageScore", "");
                     map.put("provAbbr", "");
                     map.put("skuName", "");
+                    map.put("skuId", "");
                     map.put("mahName", "");
 
                     if (Objects.nonNull(wmScorePackage)) {
@@ -311,6 +337,7 @@ public class WmPackageManager {
                                 .map(drugtable -> drugtableMap.get(drugtable[0]));
                         if (drugtableOpt.isPresent()) {
                             WmDaDrugEntDrugtable drugtable = drugtableOpt.get();
+                            map.put("skuId", drugtable.getId());
                             // 产品名称
                             map.put("skuName", drugtable.getDrugnameTy());
                             // 所属生产企业