Bläddra i källkod

feat: 服务目标数据统计页面 update

shc 7 månader sedan
förälder
incheckning
efbf73e14e

+ 41 - 5
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/manager/SysStatisticManager.java

@@ -15,6 +15,7 @@ import com.qunzhixinxi.hnqz.admin.api.entity.ReDeptDrug;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysAreaEntity;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysImplementPlan;
+import com.qunzhixinxi.hnqz.admin.api.entity.SysPlanPkg;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmAgentEvaluation;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmDaDrugEntDrugtable;
@@ -29,6 +30,7 @@ import com.qunzhixinxi.hnqz.admin.service.SysAreaEntityService;
 import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
 import com.qunzhixinxi.hnqz.admin.service.SysEnterpriseAreaService;
 import com.qunzhixinxi.hnqz.admin.service.SysImplementPlanService;
+import com.qunzhixinxi.hnqz.admin.service.SysPlanPkgService;
 import com.qunzhixinxi.hnqz.admin.service.SysUserAreaService;
 import com.qunzhixinxi.hnqz.admin.service.SysUserService;
 import com.qunzhixinxi.hnqz.admin.service.WmAgentEvaluationService;
@@ -68,6 +70,7 @@ import java.util.stream.Collectors;
 @AllArgsConstructor
 public class SysStatisticManager {
 
+    private final SysPlanPkgService planPkgService;
     private final SysUserService sysUserService;
     private final SysDeptService deptService;
     private final WmScorePackageService packageService;
@@ -283,6 +286,7 @@ public class SysStatisticManager {
 
     /**
      * 执行计划统计
+     * 序号、目标名称、目标分值、目标局期、承接对象、创建日期、已下发机分值、已分发比例、服务完成比例
      *
      * @param query 查询条件
      * @param user  查询人
@@ -373,20 +377,49 @@ public class SysStatisticManager {
 
 
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
+        // 目标名称、目标分值、目标局期、承接对象、创建日期、已下发分值、已分发比例、服务完成比例
         List<TreeNode<Integer>> treeNodes = cont.stream().map(plan -> {
             TreeNode<Integer> node = new TreeNode<>();
             node.setId(plan.getPlanId());
             node.setParentId(plan.getParentId());
+            // 目标名称
             node.setName(plan.getPlanName());
-            node.setWeight(plan.getPlanScore());
+            node.setWeight(plan.getPlanId());
 
-            Map<String, Object> extra = new HashMap<>(5);
+            Map<String, Object> extra = new HashMap<>(8);
 
+            // 承接对象
             extra.put("providerName", dId2NameMap.get(plan.getConsigneeId()));
+            // 目标分值
             extra.put("planScore", plan.getPlanScore());
+            // 目标周期
             extra.put("planPeriod", String.format("%s 至 %s", formatter.format(plan.getPlanIssue()), formatter.format(plan.getPlanExpiry())));
+            // 创建日期
             extra.put("createTime", plan.getCreateTime());
+            // 计划类型
             extra.put("planType", plan.getPlanType());
+            // 已下发积分值
+            extra.put("availScore", plan.getPlanScore() - plan.getAvailScore());
+            // 分发比例
+            extra.put("distScore", String.format("%.2f", 100.0 * (plan.getPlanScore() - plan.getAvailScore()) / plan.getPlanScore()));
+
+
+            String serviceCompleteRate = "";
+            SysPlanPkg pp = planPkgService.getOne(Wrappers.<SysPlanPkg>lambdaQuery().eq(SysPlanPkg::getPlanId, plan.getPlanId()));
+
+            if (pp != null) {
+                List<WmTask> tasks = taskService.list(Wrappers.<WmTask>lambdaQuery()
+                        .in(WmTask::getTaskStatus, UpmsState.TaskState.PASSED)
+                        .in(WmTask::getScorePackageId, pp.getPkgId().toString()));
+
+                if (CollUtil.isNotEmpty(tasks)) {
+                    serviceCompleteRate = String.valueOf(tasks.stream().mapToInt(WmTask::getScore).sum());
+                }
+
+            }
+            // 服务完成比例
+            extra.put("serviceCompleteRate", serviceCompleteRate);
+
 
             node.setExtra(extra);
 
@@ -420,6 +453,7 @@ public class SysStatisticManager {
 
     /**
      * 所有执行包数据汇总树状展示
+     * 序号、执行包名称、执行包分值、接包对象、创建日期、宛成分值、完成分值百分比
      *
      * @param query 查询条件
      * @param user  操作人
@@ -468,8 +502,6 @@ public class SysStatisticManager {
         }
 
 
-
-
         packageService.page(page, queryWrapper);
 
         List<WmScorePackage> pkgs = page.getRecords();
@@ -517,6 +549,8 @@ public class SysStatisticManager {
             extra.put("pkgPeriod", String.format("%s 至 %s", formatter.format(pkg.getStartTime()), formatter.format(pkg.getEndTime())));
             extra.put("createTime", pkg.getCreateTime());
 
+            // 序号、执行包名称、执行包分值、接包对象、创建日期、宛成分值、完成分值百分比
+
             node.setExtra(extra);
 
             return node;
@@ -548,6 +582,8 @@ public class SysStatisticManager {
 
     /**
      * 统计服务商数据
+     * <p>
+     * 序号、服务商名称、所属区域、服务产品、企查查评分、服务评分、服务商平均分
      *
      * @param query 查询条件
      * @param user  操作人
@@ -628,7 +664,7 @@ public class SysStatisticManager {
         }
 
 
-        // 封装参数
+        // 封装参数 序号、服务商名称、所属区域、服务产品、企查查评分、服务评分、服务商平均分
         List<Map<String, Object>> collect = depts.stream().map(d -> {
             Map<String, Object> map = new HashMap<>(6);