Forráskód Böngészése

feat: 兑付通知按照药品进行区隔

shc 7 hónapja
szülő
commit
f8aa04dfd8

+ 22 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/manager/WmPackageManager.java

@@ -10,6 +10,7 @@ import com.qunzhixinxi.hnqz.admin.api.dto.WmPkgDTO;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysCheckChainNodeCheckHistory;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysImplementPlan;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysPlanPkg;
+import com.qunzhixinxi.hnqz.admin.api.entity.SysUserDrug;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysUserRole;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmPackageRedemptionNotice;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmPackageTaskTypeQty;
@@ -19,6 +20,7 @@ import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskType;
 import com.qunzhixinxi.hnqz.admin.service.SysCheckChainNodeCheckHistoryService;
 import com.qunzhixinxi.hnqz.admin.service.SysImplementPlanService;
 import com.qunzhixinxi.hnqz.admin.service.SysPlanPkgService;
+import com.qunzhixinxi.hnqz.admin.service.SysUserDrugService;
 import com.qunzhixinxi.hnqz.admin.service.SysUserRoleService;
 import com.qunzhixinxi.hnqz.admin.service.WmPackageRedemptionNoticeService;
 import com.qunzhixinxi.hnqz.admin.service.WmPackageTaskTypeQtyService;
@@ -69,6 +71,7 @@ public class WmPackageManager {
     private final WmPackageTaskTypeQtyService pkgTaskTypeQtyService;
     private final SysPlanPkgService planPkgService;
     private final SysImplementPlanService implementPlanService;
+    private final SysUserDrugService userDrugService;
 
     /**
      * 创建执行包兑付通知
@@ -114,7 +117,25 @@ public class WmPackageManager {
         }
         // 事业部分管领导 || 所有监督角色
         else if (CollUtil.containsAny(roles, List.of(BIZ_ADMIN_ROLE, 49, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61))) {
-            // 查询全部
+            // 只能看见所绑定药品的包的内容
+            List<SysUserDrug> userDrugs = userDrugService.list(Wrappers.<SysUserDrug>lambdaQuery().eq(SysUserDrug::getUserId, user.getId()));
+
+            if (CollUtil.isEmpty(userDrugs)) {
+                throw new BizException("当前人员并未绑定药品,无法确定可见范围,请核实");
+            }
+
+            List<String> drugIds = userDrugs.stream().map(ud -> ud.getDrugId().toString()).distinct().sorted().collect(Collectors.toList());
+
+            List<WmScorePackage> pkgs = scorePackageService.list(Wrappers.<WmScorePackage>lambdaQuery().in(WmScorePackage::getDrugtable, drugIds));
+
+            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 (roles.contains(SERV_ADMIN_ROLE)) {