|
@@ -48,6 +48,7 @@ import java.util.Collection;
|
|
|
import java.util.Collections;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.HashSet;
|
|
|
+import java.util.LinkedList;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Objects;
|
|
@@ -409,35 +410,52 @@ public class WmSupervisionManager {
|
|
|
return maps;
|
|
|
} else {
|
|
|
|
|
|
- UpmsState.TaskSupervisionState state;
|
|
|
|
|
|
+ // 获取当前积分包已经监察过的任务ID
|
|
|
+ List<WmTaskSupervision> list = taskSupervisionService.
|
|
|
+ list(Wrappers.<WmTaskSupervision>lambdaQuery()
|
|
|
+ .eq(WmTaskSupervision::getPackageId, pkgId)
|
|
|
+ .orderByDesc(WmTaskSupervision::getCreateTime));
|
|
|
+
|
|
|
+ Map<UpmsState.TaskSupervisionState, Set<Integer>> collect1 = list.stream()
|
|
|
+ .collect(Collectors.groupingBy(WmTaskSupervision::getSupervisionState, Collectors.mapping(WmTaskSupervision::getTaskId, Collectors.toSet())));
|
|
|
+
|
|
|
+
|
|
|
+ Set<Integer> init = collect1.get(UpmsState.TaskSupervisionState.INIT);
|
|
|
+ Set<Integer> ckt1 = collect1.get(UpmsState.TaskSupervisionState.CKT1);
|
|
|
+ Set<Integer> ckt2 = collect1.get(UpmsState.TaskSupervisionState.CKT2);
|
|
|
+ Set<Integer> passed = collect1.get(UpmsState.TaskSupervisionState.PASSED);
|
|
|
+ Set<Integer> rejected = collect1.get(UpmsState.TaskSupervisionState.REJECTED);
|
|
|
+
|
|
|
+ List<Integer> supTaskIds;
|
|
|
// 负责人
|
|
|
if (CollUtil.containsAny(roles, List.of(51, 54, 55, 61))) {
|
|
|
- state = UpmsState.TaskSupervisionState.INIT;
|
|
|
+
|
|
|
+ Set<Integer> temp = CollUtil.unionDistinct(ckt1, rejected);
|
|
|
+ supTaskIds = CollUtil.subtractToList(init, temp);
|
|
|
+
|
|
|
}
|
|
|
// 分管领导
|
|
|
else if (CollUtil.containsAny(roles, List.of(57, 58, 59, 60))) {
|
|
|
- state = UpmsState.TaskSupervisionState.CKT1;
|
|
|
+ Set<Integer> temp = CollUtil.unionDistinct(ckt2, rejected);
|
|
|
+ supTaskIds = CollUtil.subtractToList(ckt1, temp);
|
|
|
+
|
|
|
}
|
|
|
// 事业部总经理
|
|
|
else if (CollUtil.containsAny(roles, List.of(39))) {
|
|
|
- state = UpmsState.TaskSupervisionState.CKT2;
|
|
|
+ Set<Integer> temp = CollUtil.unionDistinct(passed, rejected);
|
|
|
+ supTaskIds = CollUtil.subtractToList(ckt2, temp);
|
|
|
} else {
|
|
|
throw new BizException("无监察权限");
|
|
|
}
|
|
|
|
|
|
- // 获取当前积分包已经监察过的任务ID
|
|
|
- List<WmTaskSupervision> list = taskSupervisionService.
|
|
|
- list(Wrappers.<WmTaskSupervision>lambdaQuery()
|
|
|
- .eq(WmTaskSupervision::getSupervisionState, state)
|
|
|
- .eq(WmTaskSupervision::getPackageId, pkgId)
|
|
|
- .orderByDesc(WmTaskSupervision::getCreateTime));
|
|
|
|
|
|
- if (CollUtil.isEmpty(list)) {
|
|
|
+
|
|
|
+ if (CollUtil.isEmpty(supTaskIds)) {
|
|
|
return Collections.emptyList();
|
|
|
}
|
|
|
|
|
|
- Set<Integer> supTaskIds = list.stream().mapToInt(WmTaskSupervision::getTaskId).boxed().collect(Collectors.toSet());
|
|
|
+ // Set<Integer> supTaskIds = list.stream().mapToInt(WmTaskSupervision::getTaskId).boxed().collect(Collectors.toSet());
|
|
|
List<WmTask> tasks = taskService.list(Wrappers.<WmTask>lambdaQuery().in(WmTask::getId, supTaskIds));
|
|
|
List<Map<String, Object>> maps = taskService.listTaskInfo(tasks, pkgId.toString());
|
|
|
|