|
@@ -1204,10 +1204,12 @@ public class WmSupervisionManager {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ boolean isSupervision = query.getSupervision() != null && query.getSupervision();
|
|
|
|
+
|
|
// 查询所有的服务商
|
|
// 查询所有的服务商
|
|
Page<SysDept> deptPage =
|
|
Page<SysDept> deptPage =
|
|
deptService.page(
|
|
deptService.page(
|
|
- new Page<>(query.getCurrent(), query.getSize()),
|
|
|
|
|
|
+ isSupervision ? new Page<>(1, 99999) : new Page<>(query.getCurrent(), query.getSize()),
|
|
Wrappers.<SysDept>lambdaQuery()
|
|
Wrappers.<SysDept>lambdaQuery()
|
|
.eq(SysDept::getLevel, 4)
|
|
.eq(SysDept::getLevel, 4)
|
|
.eq(StrUtil.isNotBlank(query.getEntName()), SysDept::getName, query.getEntName())
|
|
.eq(StrUtil.isNotBlank(query.getEntName()), SysDept::getName, query.getEntName())
|
|
@@ -1219,258 +1221,244 @@ public class WmSupervisionManager {
|
|
return page;
|
|
return page;
|
|
}
|
|
}
|
|
|
|
|
|
- // 封装参数
|
|
|
|
- List<Map<String, Object>> collect =
|
|
|
|
- depts.stream()
|
|
|
|
- .map(
|
|
|
|
- dept -> {
|
|
|
|
- Map<String, Object> map = new HashMap<>(5);
|
|
|
|
- map.put("deptName", dept.getName());
|
|
|
|
- map.put("deptId", dept.getDeptId());
|
|
|
|
-
|
|
|
|
- LambdaQueryWrapper<WmScorePackage> queryWrapper =
|
|
|
|
- Wrappers.<WmScorePackage>lambdaQuery()
|
|
|
|
- .in(CollUtil.isNotEmpty(drugIds), WmScorePackage::getDrugtable, drugIds)
|
|
|
|
- .eq(
|
|
|
|
- StrUtil.isNotBlank(query.getPkgName()),
|
|
|
|
- WmScorePackage::getScorePackageName,
|
|
|
|
- query.getPkgName())
|
|
|
|
- .eq(WmScorePackage::getSendPackageDeptId, dept.getDeptId().toString());
|
|
|
|
-
|
|
|
|
- LocalDate[] period = query.getPeriod();
|
|
|
|
- if (ArrayUtil.isNotEmpty(period) && period.length == 2) {
|
|
|
|
- queryWrapper.ge(WmScorePackage::getStartTime, period[0]);
|
|
|
|
- queryWrapper.le(WmScorePackage::getEndTime, period[1]);
|
|
|
|
- }
|
|
|
|
|
|
+ LambdaQueryWrapper<WmScorePackage> queryWrapper =
|
|
|
|
+ Wrappers.<WmScorePackage>lambdaQuery()
|
|
|
|
+ .in(CollUtil.isNotEmpty(drugIds), WmScorePackage::getDrugtable, drugIds)
|
|
|
|
+ .eq(
|
|
|
|
+ StrUtil.isNotBlank(query.getPkgName()),
|
|
|
|
+ WmScorePackage::getScorePackageName,
|
|
|
|
+ query.getPkgName());
|
|
|
|
+// .eq(, dept.getDeptId().toString());
|
|
|
|
+
|
|
|
|
+ LocalDate[] period = query.getPeriod();
|
|
|
|
+ if (ArrayUtil.isNotEmpty(period) && period.length == 2) {
|
|
|
|
+ queryWrapper.ge(WmScorePackage::getStartTime, period[0]);
|
|
|
|
+ queryWrapper.le(WmScorePackage::getEndTime, period[1]);
|
|
|
|
+ }
|
|
|
|
|
|
- // 获取当前企业当季度的包
|
|
|
|
- List<WmScorePackage> pkgs = packageService.list(queryWrapper);
|
|
|
|
|
|
+ // 获取当前企业当季度的包
|
|
|
|
+ // mybatisplus hardcode page size 500
|
|
|
|
+ // half half select to avoid network exception when executing too long
|
|
|
|
+ List<String> deptIds = depts.stream().map(dept -> dept.getDeptId().toString()).collect(Collectors.toList());
|
|
|
|
+ List<WmScorePackage> pkgs = packageService.list(queryWrapper.clone().in(WmScorePackage::getDeptId, deptIds.subList(0, deptIds.size()/2)));
|
|
|
|
+ pkgs.addAll(packageService.list(queryWrapper.in(WmScorePackage::getDeptId, deptIds.subList(deptIds.size()/2, deptIds.size()))));
|
|
|
|
+;
|
|
|
|
+ if (CollUtil.isEmpty(pkgs)) {
|
|
|
|
+ throw new BizException("没有查询到匹配积分包");
|
|
|
|
+ }
|
|
|
|
+ Map<String, Set<String>> dept2pkgs = pkgs.stream().collect(Collectors.groupingBy(
|
|
|
|
+ WmScorePackage::getSendPackageDeptId, Collectors.mapping(WmScorePackage::getId, Collectors.toSet())
|
|
|
|
+ ));
|
|
|
|
+ List<String> pkgIds =
|
|
|
|
+ pkgs.stream()
|
|
|
|
+ .map(WmScorePackage::getId)
|
|
|
|
+ .distinct()
|
|
|
|
+ .sorted()
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
|
- int total = 0;
|
|
|
|
- int supTotal = 0;
|
|
|
|
- int total1 = 0;
|
|
|
|
- int supTotal1 = 0;
|
|
|
|
|
|
+ int taskBatch = 10000;
|
|
|
|
+ int lastIdx = pkgIds.size() > taskBatch ? taskBatch : pkgIds.size();
|
|
|
|
+ List<WmTaskSupervision> allSupervisions = taskSupervisionService.getSupervisionByPkgIds(pkgIds.subList(0, lastIdx));
|
|
|
|
+ if (pkgIds.size() > taskBatch) {
|
|
|
|
+ while(lastIdx < pkgIds.size()) {
|
|
|
|
+ allSupervisions.addAll(taskSupervisionService.getSupervisionByPkgIds(
|
|
|
|
+ pkgIds.subList(lastIdx, Math.min(lastIdx + taskBatch, pkgIds.size()))));
|
|
|
|
+ lastIdx += taskBatch;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
- // 生产企业财务部监督员
|
|
|
|
- int mahFinaSupTotal = 0;
|
|
|
|
- // 生产企业销售部监督员
|
|
|
|
- int mahSalesSupTotal = 0;
|
|
|
|
- // 营销中心法务合规部监督员
|
|
|
|
- int optLawSupTotal = 0;
|
|
|
|
- // 营销中心财务部监督员
|
|
|
|
- int optFinaSupTotal = 0;
|
|
|
|
|
|
+ Map<Integer, List<WmTaskSupervision>> pkg2sups = allSupervisions.stream().collect(Collectors.groupingBy(
|
|
|
|
+ WmTaskSupervision::getPackageId, Collectors.toList())
|
|
|
|
+ );
|
|
|
|
|
|
- Set<Integer> todos = new HashSet<>();
|
|
|
|
- // 获取c端包统计信息
|
|
|
|
- if (CollUtil.isNotEmpty(pkgs)) {
|
|
|
|
|
|
+ // 封装参数
|
|
|
|
+ int count = 0;
|
|
|
|
+ List<Map<String, Object>> collect = new ArrayList<>();
|
|
|
|
+ for(SysDept dept: depts) {
|
|
|
|
+ Map<String, Object> map = new HashMap<>(5);
|
|
|
|
+ map.put("deptName", dept.getName());
|
|
|
|
+ map.put("deptId", dept.getDeptId());
|
|
|
|
+
|
|
|
|
+ int total = 0;
|
|
|
|
+ int supTotal = 0;
|
|
|
|
+
|
|
|
|
+ // 生产企业财务部监督员
|
|
|
|
+ int mahFinaSupTotal = 0;
|
|
|
|
+ // 生产企业销售部监督员
|
|
|
|
+ int mahSalesSupTotal = 0;
|
|
|
|
+ // 营销中心法务合规部监督员
|
|
|
|
+ int optLawSupTotal = 0;
|
|
|
|
+ // 营销中心财务部监督员
|
|
|
|
+ int optFinaSupTotal = 0;
|
|
|
|
+
|
|
|
|
+ int todos = 0;
|
|
|
|
+ // 获取c端包统计信息
|
|
|
|
+
|
|
|
|
+ List<WmTaskSupervision> taskSup = dept2pkgs.getOrDefault(dept.getDeptId().toString(), new HashSet<>()).stream().map(
|
|
|
|
+ pkgId -> pkg2sups.getOrDefault(Integer.valueOf(pkgId), new ArrayList<>())
|
|
|
|
+ ).flatMap(List::stream).collect(Collectors.toList());
|
|
|
|
+
|
|
|
|
+ List<WmTaskSupervision> supervisions = taskSup.stream()
|
|
|
|
+ .filter(sup -> sup.getSupervisionId() != null && !sup.getModifiable())
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
|
- List<String> pkgIds =
|
|
|
|
- pkgs.stream()
|
|
|
|
- .map(WmScorePackage::getId)
|
|
|
|
- .distinct()
|
|
|
|
- .sorted()
|
|
|
|
- .collect(Collectors.toList());
|
|
|
|
- // 获取子集包中的所有任务
|
|
|
|
- List<WmTask> tasks =
|
|
|
|
- taskService.listAvailableTaskForSupervision1(
|
|
|
|
- pkgIds.stream()
|
|
|
|
- .mapToInt(Integer::valueOf)
|
|
|
|
- .boxed()
|
|
|
|
- .distinct()
|
|
|
|
- .sorted()
|
|
|
|
- .collect(Collectors.toList()),
|
|
|
|
- Collections.emptyList());
|
|
|
|
-
|
|
|
|
- List<Integer> tIds =
|
|
|
|
- tasks.stream()
|
|
|
|
- .mapToInt(t -> Integer.parseInt(t.getId()))
|
|
|
|
- .boxed()
|
|
|
|
- .distinct()
|
|
|
|
- .sorted()
|
|
|
|
- .collect(Collectors.toList());
|
|
|
|
-
|
|
|
|
- // List<WmTask> tasks =
|
|
|
|
- // taskService.list(Wrappers.<WmTask>lambdaQuery().in(WmTask::getScorePackageId,
|
|
|
|
- // pkgIds).eq(WmTask::getTaskStatus, "3"));
|
|
|
|
- // 获取监察记录(不可编辑的是监察过的)
|
|
|
|
- // List<WmTaskSupervision> supervisions =
|
|
|
|
- // taskSupervisionService.list(
|
|
|
|
- // Wrappers.<WmTaskSupervision>lambdaQuery()
|
|
|
|
- // .eq(WmTaskSupervision::getModifiable, false)
|
|
|
|
- // .in(WmTaskSupervision::getTaskId, tIds)
|
|
|
|
- //// .in(
|
|
|
|
- //// WmTaskSupervision::getPackageId,
|
|
|
|
- //// pkgIds.stream()
|
|
|
|
- //// .mapToInt(Integer::valueOf)
|
|
|
|
- //// .boxed()
|
|
|
|
- //// .sorted()
|
|
|
|
- //// .distinct()
|
|
|
|
- //// .collect(Collectors.toList()))
|
|
|
|
- // );
|
|
|
|
-
|
|
|
|
- List<WmTaskSupervision> supervisions =
|
|
|
|
- CollUtil.isEmpty(tIds)
|
|
|
|
- ? Collections.emptyList()
|
|
|
|
- : taskSupervisionService.list(
|
|
|
|
- Wrappers.<WmTaskSupervision>lambdaQuery()
|
|
|
|
- .eq(WmTaskSupervision::getModifiable, false)
|
|
|
|
- .in(WmTaskSupervision::getTaskId, tIds));
|
|
|
|
-
|
|
|
|
- Map<Integer, List<WmTaskSupervision>> roleId2SupMap =
|
|
|
|
- supervisions.stream()
|
|
|
|
- .collect(Collectors.groupingBy(WmTaskSupervision::getRoleId));
|
|
|
|
- // 生产企业财务部监督员
|
|
|
|
- mahFinaSupTotal =
|
|
|
|
- CollUtil.isNotEmpty(roleId2SupMap.get(49))
|
|
|
|
- ? roleId2SupMap.get(49).size()
|
|
|
|
- : 0;
|
|
|
|
- // 生产企业销售部监督员
|
|
|
|
- mahSalesSupTotal =
|
|
|
|
- CollUtil.isNotEmpty(roleId2SupMap.get(52))
|
|
|
|
- ? roleId2SupMap.get(52).size()
|
|
|
|
- : 0;
|
|
|
|
- // 营销中心法务合规部监督员
|
|
|
|
- optLawSupTotal =
|
|
|
|
- CollUtil.isNotEmpty(roleId2SupMap.get(53))
|
|
|
|
- ? roleId2SupMap.get(53).size()
|
|
|
|
- : 0;
|
|
|
|
- // 营销中心财务部监督员
|
|
|
|
- optFinaSupTotal =
|
|
|
|
- CollUtil.isNotEmpty(roleId2SupMap.get(56))
|
|
|
|
- ? roleId2SupMap.get(56).size()
|
|
|
|
- : 0;
|
|
|
|
-
|
|
|
|
- total = CollUtil.isNotEmpty(tasks) ? tasks.size() : 0;
|
|
|
|
- supTotal =
|
|
|
|
- CollUtil.isNotEmpty(supervisions)
|
|
|
|
- ? supervisions.stream()
|
|
|
|
- .map(WmTaskSupervision::getTaskId)
|
|
|
|
- .collect(Collectors.toSet())
|
|
|
|
- .size()
|
|
|
|
- : 0;
|
|
|
|
-
|
|
|
|
- List<Integer> roles = SecurityUtils.getRoles();
|
|
|
|
- // 监察员
|
|
|
|
- if (CollUtil.containsAny(roles, List.of(49, 52, 53, 56))) {
|
|
|
|
- // 获取监察结果
|
|
|
|
- total1 = total;
|
|
|
|
- supTotal1 = supTotal;
|
|
|
|
- }
|
|
|
|
- // 服务商
|
|
|
|
- else if (CollUtil.containsAny(roles, List.of(37))) {
|
|
|
|
-
|
|
|
|
- supTotal =
|
|
|
|
- CollUtil.isNotEmpty(supervisions)
|
|
|
|
- ? supervisions.stream()
|
|
|
|
- .filter(
|
|
|
|
- ts ->
|
|
|
|
- UpmsState.TaskSupervisionState.PASSED.equals(
|
|
|
|
- ts.getSupervisionState()))
|
|
|
|
- .map(WmTaskSupervision::getTaskId)
|
|
|
|
- .collect(Collectors.toSet())
|
|
|
|
- .size()
|
|
|
|
- : 0;
|
|
|
|
-
|
|
|
|
- // 获取监察结果
|
|
|
|
- total1 = supTotal;
|
|
|
|
- supTotal1 = supTotal;
|
|
|
|
- }
|
|
|
|
- // 其他角色
|
|
|
|
- else {
|
|
|
|
-
|
|
|
|
- // 所有监察的
|
|
|
|
- List<Long> supId =
|
|
|
|
- supervisions.stream()
|
|
|
|
- .map(WmTaskSupervision::getSupervisionId)
|
|
|
|
- .collect(Collectors.toList());
|
|
|
|
-
|
|
|
|
- if (CollUtil.isNotEmpty(supId)) {
|
|
|
|
-
|
|
|
|
- // 我监察过的(有重复的的)
|
|
|
|
- Set<Long> advices =
|
|
|
|
- taskSupervisionAdviceService
|
|
|
|
- .list(
|
|
|
|
- Wrappers.<WmTaskSupervisionAdvice>lambdaQuery()
|
|
|
|
- .eq(WmTaskSupervisionAdvice::getDelFlag, false)
|
|
|
|
- .in(WmTaskSupervisionAdvice::getTaskSupervisionId, supId)
|
|
|
|
- .eq(
|
|
|
|
- WmTaskSupervisionAdvice::getCreateBy,
|
|
|
|
- operator.getUsername()))
|
|
|
|
- .stream()
|
|
|
|
- .map(WmTaskSupervisionAdvice::getTaskSupervisionId)
|
|
|
|
- .collect(Collectors.toSet());
|
|
|
|
-
|
|
|
|
- Map<UpmsState.TaskSupervisionState, Set<Integer>> collect1 =
|
|
|
|
- supervisions.stream()
|
|
|
|
- .filter(sup -> !sup.getModifiable())
|
|
|
|
- .collect(
|
|
|
|
- Collectors.groupingBy(
|
|
|
|
- WmTaskSupervision::getSupervisionState,
|
|
|
|
- Collectors.mapping(
|
|
|
|
- WmTaskSupervision::getTaskId, Collectors.toSet())));
|
|
|
|
-
|
|
|
|
- Set<Integer> init =
|
|
|
|
- collect1.getOrDefault(
|
|
|
|
- UpmsState.TaskSupervisionState.INIT, Collections.emptySet());
|
|
|
|
- Set<Integer> ckt1 =
|
|
|
|
- collect1.getOrDefault(
|
|
|
|
- UpmsState.TaskSupervisionState.CKT1, Collections.emptySet());
|
|
|
|
- Set<Integer> ckt2 =
|
|
|
|
- collect1.getOrDefault(
|
|
|
|
- UpmsState.TaskSupervisionState.CKT2, Collections.emptySet());
|
|
|
|
- // Set<Integer> passed =
|
|
|
|
- // collect1.getOrDefault(
|
|
|
|
- // UpmsState.TaskSupervisionState.PASSED, Collections.emptySet());
|
|
|
|
- // Set<Integer> rejected =
|
|
|
|
- // collect1.getOrDefault(UpmsState.TaskSupervisionState.REJECTED,
|
|
|
|
- // Collections.emptySet());
|
|
|
|
-
|
|
|
|
- // 负责人
|
|
|
|
- if (CollUtil.containsAny(roles, List.of(57, 58, 59, 60))) {
|
|
|
|
-
|
|
|
|
- supTotal1 = advices.size();
|
|
|
|
- total1 = init.size() + supTotal1;
|
|
|
|
- todos = init;
|
|
|
|
- }
|
|
|
|
- // 分管领导
|
|
|
|
- else if (CollUtil.containsAny(roles, List.of(51, 54, 55, 61))) {
|
|
|
|
-
|
|
|
|
- supTotal1 = advices.size();
|
|
|
|
- total1 = ckt1.size() + supTotal1;
|
|
|
|
- todos = ckt1;
|
|
|
|
- }
|
|
|
|
- // 事业部总经理
|
|
|
|
- else if (CollUtil.containsAny(roles, List.of(39))) {
|
|
|
|
- supTotal1 = advices.size();
|
|
|
|
- total1 = ckt2.size() + supTotal1;
|
|
|
|
- todos = ckt2;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ Map<Integer, List<WmTaskSupervision>> roleId2SupMap =
|
|
|
|
+ supervisions.stream()
|
|
|
|
+ .collect(Collectors.groupingBy(WmTaskSupervision::getRoleId));
|
|
|
|
+ // 生产企业财务部监督员
|
|
|
|
+ mahFinaSupTotal =
|
|
|
|
+ CollUtil.isNotEmpty(roleId2SupMap.get(49))
|
|
|
|
+ ? roleId2SupMap.get(49).size()
|
|
|
|
+ : 0;
|
|
|
|
+ // 生产企业销售部监督员
|
|
|
|
+ mahSalesSupTotal =
|
|
|
|
+ CollUtil.isNotEmpty(roleId2SupMap.get(52))
|
|
|
|
+ ? roleId2SupMap.get(52).size()
|
|
|
|
+ : 0;
|
|
|
|
+ // 营销中心法务合规部监督员
|
|
|
|
+ optLawSupTotal =
|
|
|
|
+ CollUtil.isNotEmpty(roleId2SupMap.get(53))
|
|
|
|
+ ? roleId2SupMap.get(53).size()
|
|
|
|
+ : 0;
|
|
|
|
+ // 营销中心财务部监督员
|
|
|
|
+ optFinaSupTotal =
|
|
|
|
+ CollUtil.isNotEmpty(roleId2SupMap.get(56))
|
|
|
|
+ ? roleId2SupMap.get(56).size()
|
|
|
|
+ : 0;
|
|
|
|
+
|
|
|
|
+ total = CollUtil.isNotEmpty(taskSup) ? taskSup.size() : 0;
|
|
|
|
+ supTotal =
|
|
|
|
+ CollUtil.isNotEmpty(supervisions)
|
|
|
|
+ ? supervisions.stream()
|
|
|
|
+ .map(WmTaskSupervision::getTaskId)
|
|
|
|
+ .collect(Collectors.toSet())
|
|
|
|
+ .size()
|
|
|
|
+ : 0;
|
|
|
|
+
|
|
|
|
+ List<Integer> roles = SecurityUtils.getRoles();
|
|
|
|
+ // 监察员
|
|
|
|
+ if (CollUtil.containsAny(roles, List.of(49, 52, 53, 56))) {
|
|
|
|
+ // 获取监察结果
|
|
|
|
+ todos = total - supTotal;
|
|
|
|
+ }
|
|
|
|
+ // 服务商
|
|
|
|
+ else if (CollUtil.containsAny(roles, List.of(37))) {
|
|
|
|
+
|
|
|
|
+ supTotal =
|
|
|
|
+ CollUtil.isNotEmpty(supervisions)
|
|
|
|
+ ? supervisions.stream()
|
|
|
|
+ .filter(
|
|
|
|
+ ts ->
|
|
|
|
+ UpmsState.TaskSupervisionState.PASSED.equals(
|
|
|
|
+ ts.getSupervisionState()))
|
|
|
|
+ .map(WmTaskSupervision::getTaskId)
|
|
|
|
+ .collect(Collectors.toSet())
|
|
|
|
+ .size()
|
|
|
|
+ : 0;
|
|
|
|
+
|
|
|
|
+ // 获取监察结果
|
|
|
|
+ todos = 0;
|
|
|
|
+ }
|
|
|
|
+ // 其他角色
|
|
|
|
+ else {
|
|
|
|
|
|
- Map<String, Integer> stat = new HashMap<>(4);
|
|
|
|
- stat.put("supTotal", supTotal);
|
|
|
|
- stat.put("total", total);
|
|
|
|
- stat.put("mahFinaSupTotal", mahFinaSupTotal);
|
|
|
|
- stat.put("mahSalesSupTotal", mahSalesSupTotal);
|
|
|
|
- stat.put("optLawSupTotal", optLawSupTotal);
|
|
|
|
- stat.put("optFinaSupTotal", optFinaSupTotal);
|
|
|
|
- map.put("taskSupStat", stat);
|
|
|
|
- map.put("toCheck", todos.size() > 0);
|
|
|
|
- map.put("checked", supTotal1 != 0);
|
|
|
|
-
|
|
|
|
- return map;
|
|
|
|
- })
|
|
|
|
- .collect(Collectors.toList());
|
|
|
|
|
|
+ // 所有监察的
|
|
|
|
+ List<Long> supId =
|
|
|
|
+ supervisions.stream()
|
|
|
|
+ .map(WmTaskSupervision::getSupervisionId)
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
+
|
|
|
|
+ if (CollUtil.isNotEmpty(supId)) {
|
|
|
|
+ Map<UpmsState.TaskSupervisionState, Set<Integer>> collect1 =
|
|
|
|
+ supervisions.stream()
|
|
|
|
+ .collect(
|
|
|
|
+ Collectors.groupingBy(
|
|
|
|
+ WmTaskSupervision::getSupervisionState,
|
|
|
|
+ Collectors.mapping(
|
|
|
|
+ WmTaskSupervision::getTaskId, Collectors.toSet())));
|
|
|
|
+
|
|
|
|
+ Set<Integer> init =
|
|
|
|
+ collect1.getOrDefault(
|
|
|
|
+ UpmsState.TaskSupervisionState.INIT, Collections.emptySet());
|
|
|
|
+ Set<Integer> ckt1 =
|
|
|
|
+ collect1.getOrDefault(
|
|
|
|
+ UpmsState.TaskSupervisionState.CKT1, Collections.emptySet());
|
|
|
|
+ Set<Integer> ckt2 =
|
|
|
|
+ collect1.getOrDefault(
|
|
|
|
+ UpmsState.TaskSupervisionState.CKT2, Collections.emptySet());
|
|
|
|
+ // Set<Integer> passed =
|
|
|
|
+ // collect1.getOrDefault(
|
|
|
|
+ // UpmsState.TaskSupervisionState.PASSED, Collections.emptySet());
|
|
|
|
+ // Set<Integer> rejected =
|
|
|
|
+ // collect1.getOrDefault(UpmsState.TaskSupervisionState.REJECTED,
|
|
|
|
+ // Collections.emptySet());
|
|
|
|
+
|
|
|
|
+ // 负责人
|
|
|
|
+ if (CollUtil.containsAny(roles, List.of(57, 58, 59, 60))) {
|
|
|
|
+ todos = init.size();
|
|
|
|
+ }
|
|
|
|
+ // 分管领导
|
|
|
|
+ else if (CollUtil.containsAny(roles, List.of(51, 54, 55, 61))) {
|
|
|
|
+ todos = ckt1.size();
|
|
|
|
+ }
|
|
|
|
+ // 事业部总经理
|
|
|
|
+ else if (CollUtil.containsAny(roles, List.of(39))) {
|
|
|
|
+ todos = ckt2.size();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(!isSupervision || todos != 0) {
|
|
|
|
+ // 我监察过的(有重复的的)
|
|
|
|
+ Set<Long> advices =
|
|
|
|
+ taskSupervisionAdviceService
|
|
|
|
+ .list(
|
|
|
|
+ Wrappers.<WmTaskSupervisionAdvice>lambdaQuery()
|
|
|
|
+ .eq(WmTaskSupervisionAdvice::getDelFlag, false)
|
|
|
|
+ .in(WmTaskSupervisionAdvice::getTaskSupervisionId, supId)
|
|
|
|
+ .eq(
|
|
|
|
+ WmTaskSupervisionAdvice::getCreateBy,
|
|
|
|
+ operator.getUsername()))
|
|
|
|
+ .stream()
|
|
|
|
+ .map(WmTaskSupervisionAdvice::getTaskSupervisionId)
|
|
|
|
+ .collect(Collectors.toSet());
|
|
|
|
+
|
|
|
|
+ supTotal = advices.size();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ Map<String, Integer> stat = new HashMap<>(4);
|
|
|
|
+ stat.put("supTotal", supTotal);
|
|
|
|
+ stat.put("total", total);
|
|
|
|
+ stat.put("mahFinaSupTotal", mahFinaSupTotal);
|
|
|
|
+ stat.put("mahSalesSupTotal", mahSalesSupTotal);
|
|
|
|
+ stat.put("optLawSupTotal", optLawSupTotal);
|
|
|
|
+ stat.put("optFinaSupTotal", optFinaSupTotal);
|
|
|
|
+ map.put("taskSupStat", stat);
|
|
|
|
+ map.put("toCheck", todos > 0);
|
|
|
|
+ map.put("checked", supTotal != 0);
|
|
|
|
+
|
|
|
|
+ collect.add(map);
|
|
|
|
+
|
|
|
|
+ if (isSupervision && todos > 0) {
|
|
|
|
+ count++;
|
|
|
|
+ if (count > query.getCurrent() * query.getSize()) {
|
|
|
|
+ // Only calculate one more of next page
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
- // show actionable only
|
|
|
|
- if (query.getSupervision() != null && query.getSupervision()) {
|
|
|
|
- collect = collect.stream().filter((record) -> (Boolean)record.get("toCheck"))
|
|
|
|
- .collect(Collectors.toList());
|
|
|
|
|
|
+ if (isSupervision) {
|
|
|
|
+ // show actionable only
|
|
|
|
+ collect = collect.stream().filter((record) -> (Boolean)record.get("toCheck"))
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
+ int start = (query.getCurrent() - 1) * query.getSize();
|
|
|
|
+ page.setRecords(collect.subList(Math.max(start, 0), Math.min(start + query.getSize(), collect.size())));
|
|
|
|
+ page.setTotal(collect.size());
|
|
|
|
+ } else {
|
|
|
|
+ page.setRecords(collect);
|
|
|
|
+ page.setTotal(deptPage.getTotal());
|
|
}
|
|
}
|
|
- page.setRecords(collect);
|
|
|
|
- page.setTotal(deptPage.getTotal());
|
|
|
|
return page;
|
|
return page;
|
|
}
|
|
}
|
|
|
|
|