Bläddra i källkod

feat: 运营导出 增加下发数量统计

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

+ 99 - 26
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/manager/WmPackageManager.java

@@ -491,6 +491,8 @@ public class WmPackageManager {
         // 获取子集包
         List<WmScorePackage> childrenPkgs = scorePackageService.list(Wrappers.<WmScorePackage>lambdaQuery().in(WmScorePackage::getRelationScoreId, pkgIds));
         List<String> cPkgIds = childrenPkgs.stream().map(WmScorePackage::getId).distinct().sorted().collect(Collectors.toList());
+        // 父级下的所有子集
+        Map<String, List<String>> parentId2PkgMap = childrenPkgs.stream().collect(Collectors.groupingBy(WmScorePackage::getRelationScoreId, Collectors.mapping(WmScorePackage::getId, Collectors.toList())));
 
         // 获取全部的任务
         List<WmTask> tasks = taskService.list(Wrappers.<WmTask>lambdaQuery().in(WmTask::getScorePackageId, cPkgIds).ne(WmTask::getTaskStatus, UpmsState.TaskState.REJECTED));
@@ -500,6 +502,7 @@ public class WmPackageManager {
 
         // 获取下发的
         List<WmPackageTaskTypeQty> taskTypeQties = packageTaskTypeQtyService.listPkgTaskTypeQtyByPkgIds(cPkgIds.stream().mapToInt(Integer::parseInt).boxed().distinct().sorted().collect(Collectors.toList()));
+        Map<Integer, List<WmPackageTaskTypeQty>> pttMap = taskTypeQties.stream().collect(Collectors.groupingBy(WmPackageTaskTypeQty::getPackageId));
 
 
         List<WmScorePackageInfoExcelModel> result = pkgs.stream().map(pkg -> {
@@ -598,35 +601,105 @@ public class WmPackageManager {
 
 
             // 下发任务统计
+            List<String> cPkgIdList = parentId2PkgMap.get(pkg.getId());
+
+            if (CollUtil.isNotEmpty(cPkgIdList)) {
+
+
+                int tt53dist = 0;
+                int tt52dist = 0;
+                int tt51dist = 0;
+                int tt14dist = 0;
+                int tt17dist = 0;
+                int tt12dist = 0;
+                int tt13dist = 0;
+                int tt1dist = 0;
+                int tt5dist = 0;
+                int tt3dist = 0;
+                int tt4dist = 0;
+                int tt64dist = 0;
+                int tt19dist = 0;
+
+                for (String cPkgId : cPkgIdList) {
+                    List<WmPackageTaskTypeQty> packageTaskTypeQtyList = pttMap.get(cPkgId);
+                    if (CollUtil.isEmpty(packageTaskTypeQtyList)) {
+                        continue;
+                    }
+
+                    for (WmPackageTaskTypeQty packageTaskTypeQty : packageTaskTypeQtyList) {
+                        String taskTypeName = packageTaskTypeQty.getTaskTypeName();
+
+                        if (StrUtil.equals(taskTypeName, "基础拜访")){
+                            tt53dist++;
+                        }
+
+                        if (StrUtil.equals(taskTypeName, "专项拜访")){
+                            tt52dist++;
+                        }
+
+                        if (StrUtil.equals(taskTypeName, "专业拜访")){
+                            tt51dist++;
+                        }
+
+                        if (StrUtil.equals(taskTypeName, "数据收集")){
+                            tt14dist++;
+                        }
+
+                        if (StrUtil.equals(taskTypeName, "医学警戒信息收集")){
+                            tt17dist++;
+                        }
+
+                        if (StrUtil.equals(taskTypeName, "产品展示")){
+                            tt12dist++;
+                        }
+
+                        if (StrUtil.equals(taskTypeName, "业务宣传服务")){
+                            tt13dist++;
+                        }
+
+                        if (StrUtil.equals(taskTypeName, "POV科室会")){
+                            tt1dist++;
+                        }
+
+                        if (StrUtil.equals(taskTypeName, "沙龙会")){
+                            tt5dist++;
+                        }
+
+                        if (StrUtil.equals(taskTypeName, "市级学术会议")){
+                            tt3dist++;
+                        }
+
+                        if (StrUtil.equals(taskTypeName, "省级学术会议")){
+                            tt4dist++;
+                        }
+
+                        if (StrUtil.equals(taskTypeName, "线上学术会议")){
+                            tt64dist++;
+                        }
+
+                        if (StrUtil.equals(taskTypeName, "健康教育课堂")){
+                            tt19dist++;
+                        }
+
+                    }
+                }
 
-            //
-            // model.setTt53dist();
-            //
-            // model.setTt52dist();
-            //
-            // model.setTt51dist();
-            //
-            // model.setTt14dist();
-            //
-            // model.setTt17dist();
-            //
-            // model.setTt12dist();
-            //
-            // model.setTt13dist();
-            //
-            // model.setTt1dist();
-            //
-            // model.setTt5dist();
-            //
-            // model.setTt3dist();
-            //
-            // model.setTt4dist();
-            //
-            // model.setTt64dist();
-            //
-            // model.setTt19dist();
 
+                model.setTt53dist(String.valueOf(tt53dist));
+                model.setTt52dist(String.valueOf(tt52dist));
+                model.setTt51dist(String.valueOf(tt51dist));
+                model.setTt14dist(String.valueOf(tt14dist));
+                model.setTt17dist(String.valueOf(tt17dist));
+                model.setTt12dist(String.valueOf(tt12dist));
+                model.setTt13dist(String.valueOf(tt13dist));
+                model.setTt1dist(String.valueOf(tt1dist));
+                model.setTt5dist(String.valueOf(tt5dist));
+                model.setTt3dist(String.valueOf(tt3dist));
+                model.setTt4dist(String.valueOf(tt4dist));
+                model.setTt64dist(String.valueOf(tt64dist));
+                model.setTt19dist(String.valueOf(tt19dist));
 
+            }
 
 
             return model;