Prechádzať zdrojové kódy

feat: 监察去个药品和角色

shc 7 mesiacov pred
rodič
commit
5daac6681f

+ 59 - 4
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/manager/WmSupervisionManager.java

@@ -1128,15 +1128,69 @@ public class WmSupervisionManager {
         return page;
     }
 
+    public List<Integer> getVisibleRoleIds(List<Integer> roles) {
+
+        // 49	生产企业财务部监察员
+        // 57	生产企业财务部监察负责人
+        // 51	生产企业财务部监察分管领导
+        if (CollUtil.containsAny(roles, List.of(49, 57, 51))) {
+            return List.of(49);
+        }
+
+        // 52	生产企业销售部监察员
+        // 58	生产企业销售部监察负责人
+        // 61	生产企业销售部监察分管领导
+        if (CollUtil.containsAny(roles, List.of(52, 58, 61))) {
+            return List.of(52);
+        }
+
+
+        // 53	营销中心法务合规部监察员
+        // 60	营销中心法务合规部监察负责人
+        // 54	营销中心法务合规部监察分管领导
+        if (CollUtil.containsAny(roles, List.of(60, 54, 53))) {
+            return List.of(53);
+        }
+
+        // 56	营销中心财务部监察员
+        // 59	营销中心财务部监察负责人
+        // 55	营销中心财务部监察分管领导
+
+        if (CollUtil.containsAny(roles, List.of(55, 59, 56))) {
+            return List.of(56);
+        }
+
+        return List.of(49, 52, 53, 56);
+
+
+    }
+
     public Page<Map<String, Object>> pageTaskSupervision(WmSupervisionDto.OnTaskSupervisionPage query) {
 
         // 操作人角色
         List<Integer> roles = SecurityUtils.getRoles();
-
+        HnqzUser user = SecurityUtils.getUser();
         Page<Map<String, Object>> page = new Page<>(query.getCurrent(), query.getSize());
 
+        // 根据角色判断药品
+        List<Integer> drugIds;
+        if (!roles.contains(39) && !roles.contains(37)) {
+
+            drugIds = userDrugService.listDrugIdByUserId(user.getId());
+
+            if (CollUtil.isEmpty(drugIds)) {
+                log.info("当前操作人没有分配产品");
+                return page;
+            }
+
+        } else {
+            drugIds = Collections.emptyList();
+        }
+
         // 获取积分包
-        List<WmScorePackage> packages = packageService.list(Wrappers.<WmScorePackage>lambdaQuery().eq(WmScorePackage::getSendPackageDeptId, query.getDeptId()));
+        List<WmScorePackage> packages = packageService.list(Wrappers.<WmScorePackage>lambdaQuery()
+                .in(CollUtil.isNotEmpty(drugIds), WmScorePackage::getDrugtable, drugIds)
+                .eq(WmScorePackage::getSendPackageDeptId, query.getDeptId()));
 
         if (CollUtil.isEmpty(packages)) {
             return page;
@@ -1146,8 +1200,9 @@ public class WmSupervisionManager {
         List<Integer> pkgIds = packages.stream().map(WmScorePackage::getId).mapToInt(Integer::valueOf).boxed().distinct().sorted().collect(Collectors.toList());
 
         // 积分包内已经监督的任务
-
+        List<Integer> visibleRoleIds = getVisibleRoleIds(roles);
         List<WmTaskSupervision> list1 = taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery()
+                .in(WmTaskSupervision::getRoleId, visibleRoleIds)
                 // .eq(WmTaskSupervision::getModifiable, false)
                 .in(WmTaskSupervision::getPackageId, pkgIds).orderByDesc(WmTaskSupervision::getCreateTime));
 
@@ -1156,7 +1211,7 @@ public class WmSupervisionManager {
 
         // 监督员
         Boolean review = query.getReview();
-        HnqzUser user = SecurityUtils.getUser();
+
         Page<WmTask> taskPage;
         boolean isService;
         if (CollUtil.containsAny(roles, List.of(49, 52, 53, 56))) {