Selaa lähdekoodia

feat: 隔离不同事业部 并区分不同的区域范围

shc 4 kuukautta sitten
vanhempi
commit
e6deca583a

+ 122 - 24
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/manager/TaskManager.java

@@ -41,6 +41,8 @@ import java.time.LocalDateTime;
 import java.time.LocalTime;
 import java.time.LocalTime;
 import java.time.format.DateTimeFormatter;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.Comparator;
 import java.util.HashMap;
 import java.util.HashMap;
@@ -50,11 +52,11 @@ import java.util.Map;
 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;
+import java.util.stream.Stream;
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import javax.validation.Valid;
 import javax.validation.Valid;
 import org.springframework.data.redis.core.ListOperations;
 import org.springframework.data.redis.core.ListOperations;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
@@ -77,6 +79,40 @@ public class TaskManager {
   @Resource private WmScorePackageStatusService scorePackageStatusService;
   @Resource private WmScorePackageStatusService scorePackageStatusService;
   @Resource private SysCheckChainNodeCheckHistoryMapper checkChainNodeCheckHistoryMapper;
   @Resource private SysCheckChainNodeCheckHistoryMapper checkChainNodeCheckHistoryMapper;
 
 
+  // 丁凯总作为分管领导可见的服务商
+  private static final List<Integer> DING_KAI_DEPT_ID =
+      Stream.of(
+              1719195651,
+              1719196241,
+              1719205659,
+              1719382604,
+              1720061726,
+              1721729779,
+              1721790321,
+              1721790409,
+              1721809329,
+              1721809609,
+              1721809840,
+              1721810141,
+              1721810469,
+              1721810741,
+              1721811001,
+              1721811221,
+              1721812479,
+              1721812716,
+              1721812974,
+              1721813071,
+              1721813201,
+              1721813297,
+              1721813472,
+              1722154503,
+              1722155596,
+              1722162321,
+              1722163297,
+              1722174609,
+              1723012356)
+          .collect(Collectors.toList());
+
   /**
   /**
    * 平铺审核分页
    * 平铺审核分页
    *
    *
@@ -106,7 +142,7 @@ public class TaskManager {
 
 
   private Page<ToDirectCheck> getCheckPage(OnPage query, HnqzUser user) {
   private Page<ToDirectCheck> getCheckPage(OnPage query, HnqzUser user) {
 
 
-    // 获取vendor
+    // 获取vendor 根据人员所属区域
     List<Integer> vendorList = getVendorList(query.getVendorId(), user);
     List<Integer> vendorList = getVendorList(query.getVendorId(), user);
 
 
     // 计算服务包查询周期
     // 计算服务包查询周期
@@ -127,23 +163,85 @@ public class TaskManager {
 
 
     Page<ToDirectCheck> page = new Page<>(query.getCurrent(), query.getSize());
     Page<ToDirectCheck> page = new Page<>(query.getCurrent(), query.getSize());
 
 
-    taskMapper.pageDirectCheck(
-        page,
-        issueDate,
-        expiryDate,
-        StrUtil.isEmpty(query.getPkgIds())
-            ? Collections.emptyList()
-            : StrUtil.split(query.getPkgIds(), StrPool.COMMA),
-        startTime,
-        endTime,
-        query.getTaskTypeId(),
-        vendorList,
-        skuIds,
-        query.getSalesId(),
-        query.getProvAbbr(),
-        calcNodeSum(query.getNodeId()),
-        query.getTaskStatus());
-    return page;
+    Integer nodeId = query.getNodeId();
+
+    // 正常角色组合
+    if (nodeId != 24) {
+
+      taskMapper.pageDirectCheck(
+          page,
+          issueDate,
+          expiryDate,
+          StrUtil.isEmpty(query.getPkgIds())
+              ? Collections.emptyList()
+              : StrUtil.split(query.getPkgIds(), StrPool.COMMA),
+          startTime,
+          endTime,
+          query.getTaskTypeId(),
+          vendorList,
+          skuIds,
+          query.getSalesId(),
+          query.getProvAbbr(),
+          calcNodeSum(query.getNodeId()),
+          query.getTaskStatus());
+      return page;
+
+    }
+    // 总经理和分管领导同时存在
+    else {
+
+      // 同时存在总经理和分管领导时,先处理分管领导的数据,分管领导数据处理完了再处理总理经的数据
+
+      List<Integer> vendor;
+      if (query.getVendorId() == null) {
+        vendor = DING_KAI_DEPT_ID;
+      } else {
+        if (DING_KAI_DEPT_ID.contains(query.getVendorId())) {
+          vendor = Collections.singletonList(query.getVendorId());
+        } else {
+          return page;
+        }
+      }
+
+      taskMapper.pageDirectCheck(
+          page,
+          issueDate,
+          expiryDate,
+          StrUtil.isEmpty(query.getPkgIds())
+              ? Collections.emptyList()
+              : StrUtil.split(query.getPkgIds(), StrPool.COMMA),
+          startTime,
+          endTime,
+          query.getTaskTypeId(),
+          vendor,
+          skuIds,
+          query.getSalesId(),
+          query.getProvAbbr(),
+          calcNodeSum(9),
+          query.getTaskStatus());
+
+      // 如果分管领导的数据不存在,默认再查一遍总经理的
+      if (CollUtil.isEmpty(page.getRecords())) {
+        taskMapper.pageDirectCheck(
+            page,
+            issueDate,
+            expiryDate,
+            StrUtil.isEmpty(query.getPkgIds())
+                ? Collections.emptyList()
+                : StrUtil.split(query.getPkgIds(), StrPool.COMMA),
+            startTime,
+            endTime,
+            query.getTaskTypeId(),
+            vendorList,
+            skuIds,
+            query.getSalesId(),
+            query.getProvAbbr(),
+            calcNodeSum(15),
+            query.getTaskStatus());
+      }
+
+      return page;
+    }
   }
   }
 
 
   private List<Integer> calcNodeSum(Integer nodeId) {
   private List<Integer> calcNodeSum(Integer nodeId) {
@@ -176,11 +274,11 @@ public class TaskManager {
     else if (nodeId == 15) {
     else if (nodeId == 15) {
       nodeSum.add(28);
       nodeSum.add(28);
     }
     }
-    // 分管领导和总经理双节点
-    else if (nodeId == 24) {
-      nodeSum.add(23);
-      nodeSum.add(28);
-    }
+    //    // 分管领导和总经理双节点
+    //    else if (nodeId == 24) {
+    //      nodeSum.add(23);
+    //      nodeSum.add(28);
+    //    }
     // 其他
     // 其他
     else {
     else {
       throw new BizException("当前角色不存在绑定审批节点");
       throw new BizException("当前角色不存在绑定审批节点");