|
@@ -8,17 +8,20 @@ import cn.hutool.core.lang.tree.TreeUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.constant.UpmsState;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.constant.UpmsType;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.dto.SysStatisticDto;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysImplementPlan;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmTask;
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSupervision;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskType;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.SysImplementPlanService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmTaskService;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.WmTaskSupervisionService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmTaskTypeService;
|
|
|
import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
|
|
|
import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
|
|
@@ -53,6 +56,7 @@ public class SysStatisticManager {
|
|
|
private final WmScorePackageService packageService;
|
|
|
private final WmTaskService taskService;
|
|
|
private final WmTaskTypeService taskTypeService;
|
|
|
+ private final WmTaskSupervisionService taskSupervisionService;
|
|
|
private final SysImplementPlanService implementPlanService;
|
|
|
|
|
|
/**
|
|
@@ -357,7 +361,7 @@ public class SysStatisticManager {
|
|
|
|
|
|
List<WmScorePackage> pkgs = page.getRecords();
|
|
|
|
|
|
- if (CollUtil.isEmpty(pkgs)){
|
|
|
+ if (CollUtil.isEmpty(pkgs)) {
|
|
|
return page;
|
|
|
}
|
|
|
|
|
@@ -516,23 +520,75 @@ public class SysStatisticManager {
|
|
|
* @param user 查询人
|
|
|
* @return 统计结果
|
|
|
*/
|
|
|
- public Page<Map<String, Object>> statSupData(SysStatisticDto.OnSupData query, HnqzUser user) {
|
|
|
- Map<String, Object> records = new HashMap<>();
|
|
|
- records.put("id", 123);
|
|
|
- records.put("providerName", "测试服务提供方1");
|
|
|
- records.put("supervisionTimes", 5);
|
|
|
- records.put("supervisionScore", 123456);
|
|
|
- records.put("supervisionPassedRate", "30%");
|
|
|
- records.put("supervisionWarnRate", "30%");
|
|
|
- records.put("supervisionRate", "30%");
|
|
|
+ public Page<?> statSupData(SysStatisticDto.OnSupData query, HnqzUser user) {
|
|
|
|
|
|
+ // 获取服务商分页
|
|
|
+ Page<SysDept> page = new Page<>(query.getCurrent(), query.getSize());
|
|
|
+ deptService.page(page, Wrappers.<SysDept>lambdaQuery().eq(SysDept::getLevel, 4).eq(SysDept::getDelFlag, CommonConstants.STATUS_NORMAL));
|
|
|
|
|
|
- Page<Map<String, Object>> page = new Page<>();
|
|
|
- page.setRecords(Collections.singletonList(records));
|
|
|
- page.setCurrent(1);
|
|
|
- page.setSize(20);
|
|
|
- page.setTotal(1);
|
|
|
|
|
|
- return page;
|
|
|
+ List<SysDept> depts = page.getRecords();
|
|
|
+
|
|
|
+ if (CollUtil.isEmpty(depts)) {
|
|
|
+ return page;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 封装参数
|
|
|
+ List<Map<String, Object>> collect = depts.stream().map(dept -> {
|
|
|
+ Map<String, Object> map = new HashMap<>(3);
|
|
|
+ map.put("deptName", dept.getName());
|
|
|
+ map.put("deptId", dept.getDeptId());
|
|
|
+
|
|
|
+ // 获取当前企业当季度的包
|
|
|
+ List<WmScorePackage> pkgs = packageService.list(Wrappers.<WmScorePackage>lambdaQuery().eq(WmScorePackage::getSendPackageDeptId, dept.getDeptId().toString()));
|
|
|
+
|
|
|
+ int total = 0;
|
|
|
+ int supTotal = 0;
|
|
|
+ int passedTotal = 0;
|
|
|
+ int rejectTotal = 0;
|
|
|
+
|
|
|
+ // 获取c端包统计信息
|
|
|
+ if (CollUtil.isNotEmpty(pkgs)) {
|
|
|
+
|
|
|
+ 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<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)
|
|
|
+ .eq(WmTaskSupervision::getSupervisionState, UpmsState.TaskSupervisionState.PASSED)
|
|
|
+ .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;
|
|
|
+
|
|
|
+ if (CollUtil.isNotEmpty(supervisions)) {
|
|
|
+
|
|
|
+ Map<Boolean, List<WmTaskSupervision>> collect1 = supervisions.stream().collect(Collectors.partitioningBy(WmTaskSupervision::getSupervisionResult));
|
|
|
+
|
|
|
+ passedTotal = CollUtil.isEmpty(collect1.get(Boolean.TRUE)) ? 0 : collect1.get(Boolean.TRUE).size();
|
|
|
+ rejectTotal = CollUtil.isEmpty(collect1.get(Boolean.FALSE)) ? 0 : collect1.get(Boolean.FALSE).size();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ Map<String, Integer> stat = new HashMap<>(4);
|
|
|
+ stat.put("supTotal", supTotal);
|
|
|
+ stat.put("total", total);
|
|
|
+ stat.put("passedTotal", passedTotal);
|
|
|
+ stat.put("rejectTotal", rejectTotal);
|
|
|
+ map.put("taskSupStat", stat);
|
|
|
+
|
|
|
+ return map;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+
|
|
|
+
|
|
|
+ Page<Map<String, Object>> builds = new Page<>(page.getCurrent(), page.getSize());
|
|
|
+
|
|
|
+ builds.setRecords(collect);
|
|
|
+ builds.setTotal(page.getTotal());
|
|
|
+
|
|
|
+ return builds;
|
|
|
}
|
|
|
}
|