Procházet zdrojové kódy

feat: 执行包统计 update

shc před 7 měsíci
rodič
revize
6901495d5b

+ 26 - 2
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/manager/SysStatisticManager.java

@@ -538,19 +538,40 @@ public class SysStatisticManager {
             TreeNode<Integer> node = new TreeNode<>();
             node.setId(Integer.parseInt(pkg.getId()));
             node.setParentId(StrUtil.isBlank(pkg.getRelationScoreId()) ? 0 : Integer.parseInt(pkg.getRelationScoreId()));
+            // 执行包名称
             node.setName(pkg.getScorePackageName());
             node.setWeight(pkg.getScore());
 
-            Map<String, Object> extra = new HashMap<>(5);
+            Map<String, Object> extra = new HashMap<>(9);
 
+            // 执行包分值
             extra.put("pkgScore", pkg.getScore());
+            // 可用分值
             extra.put("availScore", pkg.getKfpjf());
+            // 下发分值
+            extra.put("distScore", pkg.getScore() - pkg.getKfpjf());
+            // 下发百分比
+            extra.put("distRate", String.format("%.2f", 100.0 * (pkg.getScore() - pkg.getKfpjf()) / pkg.getScore()));
+            // 承接对象
             extra.put("pickerName", dId2NameMap.get(Integer.valueOf(pkg.getDeptId())) == null ? "" : dId2NameMap.get(Integer.valueOf(pkg.getDeptId())));
+            // 周期
             extra.put("pkgPeriod", String.format("%s 至 %s", formatter.format(pkg.getStartTime()), formatter.format(pkg.getEndTime())));
+            // 创建时间
             extra.put("createTime", pkg.getCreateTime());
 
-            // 序号、执行包名称、执行包分值、接包对象、创建日期、宛成分值、完成分值百分比
+            // 完成分值
+            List<WmTask> tasks = taskService.list(Wrappers.<WmTask>lambdaQuery()
+                    .eq(WmTask::getTaskStatus, UpmsState.TaskState.PASSED)
+                    .eq(WmTask::getScorePackageId, pkg.getId()));
+
+            int sum = 0;
+            if (CollUtil.isNotEmpty(tasks)) {
+                sum = tasks.stream().mapToInt(WmTask::getScore).sum();
+            }
+            extra.put("completedScore", sum);
 
+            // 完成百分比
+            extra.put("completedRate", String.format("%.2f", 100.0 * sum / pkg.getScore()));
             node.setExtra(extra);
 
             return node;
@@ -803,7 +824,9 @@ public class SysStatisticManager {
 
         for (SysDept dept : depts) {
             Map<String, Object> map = new HashMap<>(7);
+            // 服务商ID
             map.put("id", dept.getDeptId());
+            // 服务商名称
             map.put("name", dept.getName());
 
             List<SysUser> userList = userCollect.get(dept.getDeptId());
@@ -856,6 +879,7 @@ public class SysStatisticManager {
                 userMap = Collections.emptyList();
             }
 
+            // 用户列表
             map.put("userList", userMap);
             map.put("deptPkgCount", deptPkgCount);
             map.put("deptPkgScoreTotal", deptPkgScoreTotal);