|
@@ -962,18 +962,24 @@ public class WmSupervisionManager {
|
|
|
}
|
|
|
|
|
|
|
|
|
- // 筛查区域内所有企业
|
|
|
- List<Long> areaCode = query.getAreaCode();
|
|
|
+
|
|
|
List<Long> entIds;
|
|
|
- if (CollUtil.isNotEmpty(areaCode)) {
|
|
|
- entIds = enterpriseAreaService.listAreaEnts(areaCode);
|
|
|
- if (CollUtil.isEmpty(entIds)) {
|
|
|
- return page;
|
|
|
- }
|
|
|
+ if (CollUtil.containsAny(SecurityUtils.getRoles(), List.of(37))){
|
|
|
+ entIds = Collections.singletonList(Long.valueOf(operator.getDeptId()));
|
|
|
} else {
|
|
|
- entIds = Collections.emptyList();
|
|
|
+ // 筛查区域内所有企业
|
|
|
+ List<Long> areaCode = query.getAreaCode();
|
|
|
+ if (CollUtil.isNotEmpty(areaCode)) {
|
|
|
+ entIds = enterpriseAreaService.listAreaEnts(areaCode);
|
|
|
+ if (CollUtil.isEmpty(entIds)) {
|
|
|
+ return page;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ entIds = Collections.emptyList();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
+
|
|
|
// 查询所有的服务商
|
|
|
Page<SysDept> deptPage = deptService.page(new Page<>(query.getCurrent(), query.getSize()), Wrappers.<SysDept>lambdaQuery().eq(SysDept::getLevel, 4).eq(StrUtil.isNotBlank(query.getEntName()), SysDept::getName, query.getEntName()).in(CollUtil.isNotEmpty(entIds), SysDept::getDeptId, entIds));
|
|
|
|
|
@@ -984,7 +990,6 @@ public class WmSupervisionManager {
|
|
|
}
|
|
|
|
|
|
// 封装参数
|
|
|
-
|
|
|
List<Map<String, Object>> collect = depts.stream().map(dept -> {
|
|
|
Map<String, Object> map = new HashMap<>(5);
|
|
|
map.put("deptName", dept.getName());
|
|
@@ -995,6 +1000,8 @@ public class WmSupervisionManager {
|
|
|
|
|
|
int total = 0;
|
|
|
int supTotal = 0;
|
|
|
+ int total1 = 0;
|
|
|
+ int supTotal1 = 0;
|
|
|
|
|
|
// 获取c端包统计信息
|
|
|
if (CollUtil.isNotEmpty(pkgs)) {
|
|
@@ -1006,17 +1013,62 @@ public class WmSupervisionManager {
|
|
|
// 获取监察记录
|
|
|
List<WmTaskSupervision> supervisions = taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery().in(WmTaskSupervision::getPackageId, pkgIds.stream().mapToInt(Integer::valueOf).boxed().sorted().distinct().collect(Collectors.toList())));
|
|
|
|
|
|
- // 获取监察结果
|
|
|
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))) {
|
|
|
+ // 获取监察结果
|
|
|
+ total1 = supTotal;
|
|
|
+ supTotal1 = supTotal;
|
|
|
+ }
|
|
|
+ // 其他角色
|
|
|
+ else {
|
|
|
+
|
|
|
+ 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))) {
|
|
|
+
|
|
|
+ supTotal1 = ckt1.size();
|
|
|
+ total1 = init.size() + supTotal1;
|
|
|
+ }
|
|
|
+ // 分管领导
|
|
|
+ else if (CollUtil.containsAny(roles, List.of(51, 54, 55, 61))) {
|
|
|
+
|
|
|
+ supTotal1 = ckt2.size();
|
|
|
+ total1 = ckt1.size() + supTotal1;
|
|
|
+ }
|
|
|
+ // 事业部总经理
|
|
|
+ else if (CollUtil.containsAny(roles, List.of(39))) {
|
|
|
+ supTotal1 = passed.size();
|
|
|
+ total1 = ckt2.size() + supTotal1;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
Map<String, Integer> stat = new HashMap<>(2);
|
|
|
stat.put("supTotal", supTotal);
|
|
|
stat.put("total", total);
|
|
|
map.put("taskSupStat", stat);
|
|
|
- map.put("toCheck", supTotal != total);
|
|
|
- map.put("checked", supTotal != 0);
|
|
|
+ map.put("toCheck", supTotal1 != total1);
|
|
|
+ map.put("checked", supTotal1 != 0);
|
|
|
|
|
|
return map;
|
|
|
}).collect(Collectors.toList());
|
|
@@ -1028,6 +1080,9 @@ public class WmSupervisionManager {
|
|
|
|
|
|
public Page<Map<String, Object>> pageTaskSupervision(WmSupervisionDto.OnTaskSupervisionPage query) {
|
|
|
|
|
|
+ // 操作人角色
|
|
|
+ List<Integer> roles = SecurityUtils.getRoles();
|
|
|
+
|
|
|
Page<Map<String, Object>> page = new Page<>(query.getCurrent(), query.getSize());
|
|
|
|
|
|
// 获取积分包
|
|
@@ -1043,21 +1098,90 @@ public class WmSupervisionManager {
|
|
|
// 积分包内已经监督的任务
|
|
|
List<WmTaskSupervision> list = taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery().in(WmTaskSupervision::getPackageId, pkgIds).orderByDesc(WmTaskSupervision::getCreateTime));
|
|
|
|
|
|
- // 获取当前积分包已经监督过的任务ID
|
|
|
|
|
|
- // 查询
|
|
|
+ // 监督员
|
|
|
+ Boolean review = query.getReview();
|
|
|
+ HnqzUser user = SecurityUtils.getUser();
|
|
|
Page<WmTask> taskPage;
|
|
|
- if (query.getReview()) {
|
|
|
- HnqzUser user = SecurityUtils.getUser();
|
|
|
- List<String> taskIds = list.stream().filter(ts -> StrUtil.equals(ts.getCreateBy(), user.getUsername())).map(ts -> ts.getTaskId().toString()).distinct().collect(Collectors.toList());
|
|
|
- if (CollUtil.isEmpty(taskIds)) {
|
|
|
+ if (CollUtil.containsAny(roles, List.of(49, 52, 53, 56))) {
|
|
|
+
|
|
|
+ if (review) {
|
|
|
+ List<String> taskIds = list.stream().filter(ts -> StrUtil.equals(ts.getCreateBy(), user.getUsername())).map(ts -> ts.getTaskId().toString()).distinct().collect(Collectors.toList());
|
|
|
+ if (CollUtil.isEmpty(taskIds)) {
|
|
|
+ return page;
|
|
|
+ }
|
|
|
+ taskPage = taskService.page(new Page<>(query.getCurrent(), query.getSize()), Wrappers.<WmTask>lambdaQuery().in(WmTask::getId, taskIds));
|
|
|
+
|
|
|
+ } else {
|
|
|
+ List<Integer> supTaskIds = list.stream().mapToInt(WmTaskSupervision::getTaskId).boxed().sorted().distinct().collect(Collectors.toList());
|
|
|
+ taskPage = taskService.listAvailableTaskForSupervision2(new Page<>(query.getCurrent(), query.getSize()), pkgIds, supTaskIds);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 服务商
|
|
|
+ else if (CollUtil.containsAny(roles, List.of(37))) {
|
|
|
+
|
|
|
+ // 获取当前积分包已经监督过的任务ID
|
|
|
+ List<WmTaskSupervision> collect = list.stream().filter(ts -> UpmsState.TaskSupervisionState.PASSED.equals(ts.getSupervisionState())).collect(Collectors.toList());
|
|
|
+
|
|
|
+ if (CollUtil.isEmpty(collect)) {
|
|
|
return page;
|
|
|
}
|
|
|
- taskPage = taskService.page(new Page<>(query.getCurrent(), query.getSize()), Wrappers.<WmTask>lambdaQuery().in(WmTask::getId, taskIds));
|
|
|
|
|
|
- } else {
|
|
|
- List<Integer> supTaskIds = list.stream().mapToInt(WmTaskSupervision::getTaskId).boxed().sorted().distinct().collect(Collectors.toList());
|
|
|
- taskPage = taskService.listAvailableTaskForSupervision2(new Page<>(query.getCurrent(), query.getSize()), pkgIds, supTaskIds);
|
|
|
+ Set<Integer> supTaskIds = collect.stream().mapToInt(WmTaskSupervision::getTaskId).boxed().collect(Collectors.toSet());
|
|
|
+
|
|
|
+
|
|
|
+ taskPage = taskService.page(new Page<>(query.getCurrent(), query.getSize()), Wrappers.<WmTask>lambdaQuery().in(WmTask::getId, supTaskIds));
|
|
|
+ }
|
|
|
+ // 负责人|分管领导|事业部总经理
|
|
|
+ else {
|
|
|
+
|
|
|
+ if (review) {
|
|
|
+ // 获取当前积分包已经监督过的任务ID
|
|
|
+ Set<Integer> supTaskIds = list.stream().filter(ts -> StrUtil.equals(user.getUsername(), ts.getCreateBy())).mapToInt(WmTaskSupervision::getTaskId).boxed().collect(Collectors.toSet());
|
|
|
+ if (CollUtil.isEmpty(supTaskIds)) {
|
|
|
+ return page;
|
|
|
+ }
|
|
|
+ taskPage = taskService.page(new Page<>(query.getCurrent(), query.getSize()), Wrappers.<WmTask>lambdaQuery().in(WmTask::getId, supTaskIds));
|
|
|
+ } else {
|
|
|
+ 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(57, 58, 59, 60))) {
|
|
|
+
|
|
|
+ Set<Integer> temp = CollUtil.unionDistinct(ckt1, rejected);
|
|
|
+ supTaskIds = CollUtil.subtractToList(init, temp);
|
|
|
+
|
|
|
+ }
|
|
|
+ // 分管领导
|
|
|
+ else if (CollUtil.containsAny(roles, List.of(51, 54, 55, 61))) {
|
|
|
+ Set<Integer> temp = CollUtil.unionDistinct(ckt2, rejected);
|
|
|
+ supTaskIds = CollUtil.subtractToList(ckt1, temp);
|
|
|
+
|
|
|
+ }
|
|
|
+ // 事业部总经理
|
|
|
+ else if (CollUtil.containsAny(roles, List.of(39))) {
|
|
|
+ Set<Integer> temp = CollUtil.unionDistinct(passed, rejected);
|
|
|
+ supTaskIds = CollUtil.subtractToList(ckt2, temp);
|
|
|
+ } else {
|
|
|
+ throw new BizException("无监督权限");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (CollUtil.isEmpty(supTaskIds)) {
|
|
|
+ return page;
|
|
|
+ }
|
|
|
+
|
|
|
+ taskPage = taskService.page(new Page<>(query.getCurrent(), query.getSize()), Wrappers.<WmTask>lambdaQuery().in(WmTask::getId, supTaskIds));
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|