ソースを参照

feat:可用分支

shc 4 ヶ月 前
コミット
8398585a8d

+ 318 - 190
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/manager/WmPackageManager.java

@@ -3,6 +3,7 @@ package com.qunzhixinxi.hnqz.admin.manager;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -23,6 +24,7 @@ import com.qunzhixinxi.hnqz.admin.api.entity.SysUserDrug;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysUserRole;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmDaDrugEntDrugtable;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmPackageRedemptionNotice;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmPackageRedemptionNotice.CheckState;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmPackageTaskTypeQty;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackageStatus;
@@ -354,14 +356,16 @@ public class WmPackageManager {
     Map<String, WmTask> taskId2EntityMap =
         tasks.stream().collect(Collectors.toMap(WmTask::getId, Function.identity()));
 
-    Set<Integer> taskIds =
+    List<Integer> taskIds =
         tasks.stream()
             .map(WmTask::getId)
             .mapToInt(Integer::valueOf)
+            .distinct()
+            .sorted()
             .boxed()
-            .collect(Collectors.toSet());
+            .collect(Collectors.toList());
 
-    // 审核通过的记录
+    // 获取总经理审核后的记录
     List<SysCheckChainNodeCheckHistory> okTasks =
         CollUtil.isNotEmpty(tasks)
             ? checkChainNodeCheckHistoryService.list(
@@ -370,24 +374,70 @@ public class WmPackageManager {
                     .in(SysCheckChainNodeCheckHistory::getTargetId, taskIds))
             : Collections.emptyList();
 
-    // 兑付信息
+    // 总经理审核通过的分数
+    List<String> passedByNode6 =
+        okTasks.stream()
+            .filter(SysCheckChainNodeCheckHistory::getCheckResult)
+            .map(his -> his.getTargetId().toString())
+            .distinct()
+            .sorted()
+            .collect(Collectors.toList());
+
+    double passedByNode6ScoreSum =
+        CollUtil.isNotEmpty(passedByNode6)
+            ? 0
+            : taskId2EntityMap.entrySet().stream()
+                .filter(entry -> passedByNode6.contains(entry.getKey()))
+                .mapToDouble(entry -> entry.getValue().getScore())
+                .sum();
+
+    // 所有兑付信息
     List<WmPackageRedemptionNotice> notices =
         packageRedemptionNoticeService.list(
             Wrappers.<WmPackageRedemptionNotice>lambdaQuery()
                 .eq(WmPackageRedemptionNotice::getPackageId, packageId)
-                .in(
-                    WmPackageRedemptionNotice::getNoticeState,
-                    WmPackageRedemptionNotice.NoticeState.CONFIRM.getState(),
-                    WmPackageRedemptionNotice.NoticeState.ARGUE.getState(),
-                    WmPackageRedemptionNotice.NoticeState.DONE.getState())
+                //                .in(
+                //                    WmPackageRedemptionNotice::getNoticeState,
+                //                    WmPackageRedemptionNotice.NoticeState.CONFIRM.getState(),
+                //                    WmPackageRedemptionNotice.NoticeState.ARGUE.getState(),
+                //                    WmPackageRedemptionNotice.NoticeState.DONE.getState())
                 .orderByDesc(WmPackageRedemptionNotice::getCreateTime));
 
-    Map<String, Object> result = new HashMap<>(11);
+    Map<String, Object> result = new HashMap<>(15);
     result.put("id", packageId);
     result.put("pkgSn", scorePackage.getPackageSn());
     result.put("pkgName", scorePackage.getScorePackageName());
     result.put("pkgScore", scorePackage.getScore());
-    result.put("nextStep", CollUtil.isNotEmpty(notices) ? notices.get(0).getStep() + 1 : 1);
+    result.put("passedByNode6Total", CollUtil.isEmpty(passedByNode6) ? 0 : passedByNode6.size());
+
+    int nextStep =
+        CollUtil.isNotEmpty(notices)
+            ? notices.stream()
+                    .filter(
+                        rdm ->
+                            StrUtil.equalsAny(
+                                rdm.getNoticeState(),
+                                WmPackageRedemptionNotice.NoticeState.CONFIRM.getState(),
+                                WmPackageRedemptionNotice.NoticeState.ARGUE.getState(),
+                                WmPackageRedemptionNotice.NoticeState.DONE.getState()))
+                    .collect(Collectors.toList())
+                    .get(0)
+                    .getStep()
+                + 1
+            : 1;
+
+    double usedRdpScore =
+        CollUtil.isNotEmpty(notices)
+            ? notices.stream()
+                .filter(rdm -> !CheckState.REJECTED.getState().equals(rdm.getCheckState()))
+                .mapToDouble(WmPackageRedemptionNotice::getCurrentRedemptionScore)
+                .sum()
+            : 0;
+
+    result.put("nextStep", nextStep);
+    result.put("passedByNode6ScoreSum", passedByNode6ScoreSum);
+    result.put("usedRdmScore", usedRdpScore);
+    result.put("availRdpScore", passedByNode6ScoreSum - usedRdpScore);
 
     int taskTotalCount = tasks.size();
 
@@ -557,7 +607,7 @@ public class WmPackageManager {
     Set<Integer> operatorRoleIds = scope.operatorRoleIds;
     List<String> cPkgIds = scope.cPkgIds;
     Map<String, List<String>> parentId2PkgMap = scope.parentId2PkgMap;
-    Map<Integer, List<WmPackageTaskTypeQty>>pttMap = scope.pttMap;
+    Map<Integer, List<WmPackageTaskTypeQty>> pttMap = scope.pttMap;
 
     // 获取区域的上级包
     List<String> ppid =
@@ -600,7 +650,6 @@ public class WmPackageManager {
         implementPlanService.listByIds(planIds).stream()
             .collect(Collectors.toMap(SysImplementPlan::getPlanId, Function.identity()));
 
-    
     // 获取全部的任务
     List<WmTask> tasks =
         taskService.list(
@@ -616,7 +665,6 @@ public class WmPackageManager {
     Map<String, List<WmTask>> pkg2TaskListMap =
         tasks.stream().collect(Collectors.groupingBy(WmTask::getScorePackageId));
 
-    
     List<WmScorePackageInfoExcelModel> result =
         pkgs.parallelStream()
             .map(
@@ -626,7 +674,7 @@ public class WmPackageManager {
                   WmScorePackageInfoExcelModel model = new WmScorePackageInfoExcelModel();
                   model.setPkgId(pkg.getId());
                   model.setPkgName(pkg.getScorePackageName());
-                  if(!operatorRoleIds.contains(37)) {
+                  if (!operatorRoleIds.contains(37)) {
                     model.setScore(String.valueOf(pkg.getScore()));
                   }
 
@@ -639,9 +687,7 @@ public class WmPackageManager {
                   // 计划名称
                   Integer planId = pkg2PlanMap.get(Integer.parseInt(pkg.getId()));
                   SysImplementPlan plan = planMap.get(planId);
-                  model.setPlanName(
-                    plan != null ? plan.getPlanName() : ""
-                  );
+                  model.setPlanName(plan != null ? plan.getPlanName() : "");
 
                   // 产品&生产企业
                   WmDaDrugEntDrugtable drugtable = drugtableMap.get(pkg.getDrugtable()[0]);
@@ -1119,186 +1165,224 @@ public class WmPackageManager {
     // 更新任务
     List<WmTask> tasks = taskMapper.selectForUpdateByPkgId(wmScorePackageStatus.getPackageId());
 
-    tasks.forEach(task -> {
-      task.setTaskUserId(newOwnerId.toString());
-      task.setUpdateUser(adminId.toString());
-      task.setUpdateTime(now);
-      task.setRemarks(remarks);
-    });
+    tasks.forEach(
+        task -> {
+          task.setTaskUserId(newOwnerId.toString());
+          task.setUpdateUser(adminId.toString());
+          task.setUpdateTime(now);
+          task.setRemarks(remarks);
+        });
 
     taskService.updateBatchById(tasks);
 
     return Boolean.TRUE;
   }
 
-  public List<WmScorePackageCheckStatusExcelModel> exportCheckInfo(LocalDate startDate, LocalDate endDate) {
-    if(new HashSet<>(SecurityUtils.getRoles()).contains(37)) {
+  public List<WmScorePackageCheckStatusExcelModel> exportCheckInfo(
+      LocalDate startDate, LocalDate endDate) {
+    if (new HashSet<>(SecurityUtils.getRoles()).contains(37)) {
       throw new RuntimeException("服务商管理员没有权限查看");
     }
     WmPackageExportScope scope = getWmPackageExportScope(startDate, endDate);
-    
+
     List<WmScorePackageCheckStatusExcelModel> result = new ArrayList<>();
-    Map<Integer, String> quarterMap = 
-      Map.ofEntries(Map.entry(1, "一季度"), Map.entry(2, "二季度"), Map.entry(3, "三季度"),  Map.entry(4, "四季度"));
+    Map<Integer, String> quarterMap =
+        Map.ofEntries(
+            Map.entry(1, "一季度"), Map.entry(2, "二季度"), Map.entry(3, "三季度"), Map.entry(4, "四季度"));
 
     int batch = 20;
-    for(int i = 0; i < scope.pkgs.size(); i = i + batch) {
+    for (int i = 0; i < scope.pkgs.size(); i = i + batch) {
       List<WmScorePackage> pkgBatch = scope.pkgs.subList(i, Math.min(i + batch, scope.pkgs.size()));
-      List<String> pkgIds = pkgBatch.stream()
-        .map(p -> p.getId())
-        .sorted()
-        .collect(Collectors.toList());
+      List<String> pkgIds =
+          pkgBatch.stream().map(p -> p.getId()).sorted().collect(Collectors.toList());
 
-      List<String> cPkgIdBatch = pkgIds.stream()
-        .map(id -> scope.parentId2PkgMap.getOrDefault(id, new ArrayList<>()))
-        .flatMap(list -> list.stream())
-        .sorted()
-        .collect(Collectors.toList());
-      
-      if(CollUtil.isEmpty(cPkgIdBatch)) {
+      List<String> cPkgIdBatch =
+          pkgIds.stream()
+              .map(id -> scope.parentId2PkgMap.getOrDefault(id, new ArrayList<>()))
+              .flatMap(list -> list.stream())
+              .sorted()
+              .collect(Collectors.toList());
+
+      if (CollUtil.isEmpty(cPkgIdBatch)) {
         log.warn("No child pkg found in batch: {}", i);
         continue;
       }
       List<WmTask> tasks =
-        taskService.list(
-            Wrappers.<WmTask>lambdaQuery()
-                .eq(WmTask::getDelFlag, CommonConstants.STATUS_NORMAL) // filter 2099 rows
-                .in(
-                    WmTask::getScorePackageId,
-                    cPkgIdBatch));
+          taskService.list(
+              Wrappers.<WmTask>lambdaQuery()
+                  .eq(WmTask::getDelFlag, CommonConstants.STATUS_NORMAL) // filter 2099 rows
+                  .in(WmTask::getScorePackageId, cPkgIdBatch));
       Map<String, List<WmTask>> cPkg2TaskListMap =
-          tasks.stream().collect(Collectors.groupingBy(WmTask::getScorePackageId));          
+          tasks.stream().collect(Collectors.groupingBy(WmTask::getScorePackageId));
 
-      List<Map<String, Object>> checkBatch = sysCheckChainNodeCheckHistoryMapper.getTaskCheckHisForDivisionPkgs(pkgIds);
+      List<Map<String, Object>> checkBatch =
+          sysCheckChainNodeCheckHistoryMapper.getTaskCheckHisForDivisionPkgs(pkgIds);
       Map<String, List<Map<String, Object>>> pkg2CheckListMap =
-          checkBatch.stream().collect(Collectors.groupingBy((row) -> row.get("pkg_id").toString()));          
+          checkBatch.stream().collect(Collectors.groupingBy((row) -> row.get("pkg_id").toString()));
 
       pkgBatch.parallelStream()
-            .map(
-                pkg -> {
-                  WmScorePackageCheckStatusExcelModel model = new WmScorePackageCheckStatusExcelModel();
-
-                  model.setDivision(scope.dis.getOrDefault(Integer.valueOf(pkg.getSendPackageDeptId()), new SysDept()).getName());
-                  model.setProvince(pkg.getProvAbbr());
-                  model.setCsoName(scope.service.getOrDefault(Integer.valueOf(pkg.getDeptId()), new SysDept()).getName());
-                  model.setYear(String.format("%d年", pkg.getCreateTime().getYear()));
-                  model.setQuarter(quarterMap.get(pkg.getCreateTime().getMonthValue() / 3 + 1));
-                  model.setProduct(scope.drugtableMap.getOrDefault(pkg.getDrugtable()[0], new WmDaDrugEntDrugtable()).getDrugnameTy());
-                  model.setPkgName(pkg.getScorePackageName());
-                  model.setPkgId(pkg.getId());
-                  int plannedQty = scope.parentId2PkgMap.getOrDefault(pkg.getId(), new ArrayList<>())
-                    .stream().mapToInt(Integer::parseInt).reduce(0, (cnt, cPkgId) -> {
-                      cnt += scope.pttMap.getOrDefault(cPkgId, new ArrayList<>())
-                        .stream().mapToInt(WmPackageTaskTypeQty::getQty).sum();
-                      return cnt;
-                    });
-                  model.setTaskNumPlanned(Integer.toString(plannedQty));
-                  
-                  List<Map<String, Object>> checkList = pkg2CheckListMap.getOrDefault(pkg.getId(), new ArrayList<>());
-                  if(CollUtil.isEmpty(checkList)) {
-                    log.warn("No check his found for pkg: {}", pkg.getId());
-                    return model;
-                  }
-                  checkList.sort((a, b) -> {
-                      int ret = Integer.compare(toInteger(a.get("task_id")), toInteger(b.get("task_id")));
-                      if(ret == 0) {
+          .map(
+              pkg -> {
+                WmScorePackageCheckStatusExcelModel model =
+                    new WmScorePackageCheckStatusExcelModel();
+
+                model.setDivision(
+                    scope
+                        .dis
+                        .getOrDefault(Integer.valueOf(pkg.getSendPackageDeptId()), new SysDept())
+                        .getName());
+                model.setProvince(pkg.getProvAbbr());
+                model.setCsoName(
+                    scope
+                        .service
+                        .getOrDefault(Integer.valueOf(pkg.getDeptId()), new SysDept())
+                        .getName());
+                model.setYear(String.format("%d年", pkg.getCreateTime().getYear()));
+                model.setQuarter(quarterMap.get(pkg.getCreateTime().getMonthValue() / 3 + 1));
+                model.setProduct(
+                    scope
+                        .drugtableMap
+                        .getOrDefault(pkg.getDrugtable()[0], new WmDaDrugEntDrugtable())
+                        .getDrugnameTy());
+                model.setPkgName(pkg.getScorePackageName());
+                model.setPkgId(pkg.getId());
+                int plannedQty =
+                    scope.parentId2PkgMap.getOrDefault(pkg.getId(), new ArrayList<>()).stream()
+                        .mapToInt(Integer::parseInt)
+                        .reduce(
+                            0,
+                            (cnt, cPkgId) -> {
+                              cnt +=
+                                  scope.pttMap.getOrDefault(cPkgId, new ArrayList<>()).stream()
+                                      .mapToInt(WmPackageTaskTypeQty::getQty)
+                                      .sum();
+                              return cnt;
+                            });
+                model.setTaskNumPlanned(Integer.toString(plannedQty));
+
+                List<Map<String, Object>> checkList =
+                    pkg2CheckListMap.getOrDefault(pkg.getId(), new ArrayList<>());
+                if (CollUtil.isEmpty(checkList)) {
+                  log.warn("No check his found for pkg: {}", pkg.getId());
+                  return model;
+                }
+                checkList.sort(
+                    (a, b) -> {
+                      int ret =
+                          Integer.compare(toInteger(a.get("task_id")), toInteger(b.get("task_id")));
+                      if (ret == 0) {
                         ret = Integer.compare(toInteger(a.get("seq")), toInteger(b.get("seq")));
                       }
                       return ret;
                     });
-                  int[] passed = new int[10];
-                  int[] rejected = new int[10];
-                  int[] todos = new int[10];
-                  int lastTaskId = -1;
-                  int lastSeq = -1;
-                  int lastSeq4Num = 1;
-                  boolean lastRejected = true;
-                  checkList.add(
+                int[] passed = new int[10];
+                int[] rejected = new int[10];
+                int[] todos = new int[10];
+                int lastTaskId = -1;
+                int lastSeq = -1;
+                int lastSeq4Num = 1;
+                boolean lastRejected = true;
+                checkList.add(
                     Map.ofEntries(
-                      Map.entry("task_id", Integer.valueOf(-1)),
-                      Map.entry("node_id", Integer.valueOf(0)),
-                      Map.entry("seq", Integer.valueOf(0)),
-                      Map.entry("check_result", Integer.valueOf(0))));
-                  for(Map<String, Object> record: checkList) {
-                    int taskId = toInteger(record.get("task_id"));
-                    int nodeId = toInteger(record.get("node_id"));
-                    int seq = toInteger(record.get("seq"));
-                    int checkResult = toInteger(record.get("check_result"));
-                    
-                    if(checkResult == 1) {
-                      passed[nodeId] += 1;
-                    } else {
-                      rejected[nodeId] += 1;
-                    }
+                        Map.entry("task_id", Integer.valueOf(-1)),
+                        Map.entry("node_id", Integer.valueOf(0)),
+                        Map.entry("seq", Integer.valueOf(0)),
+                        Map.entry("check_result", Integer.valueOf(0))));
+                for (Map<String, Object> record : checkList) {
+                  int taskId = toInteger(record.get("task_id"));
+                  int nodeId = toInteger(record.get("node_id"));
+                  int seq = toInteger(record.get("seq"));
+                  int checkResult = toInteger(record.get("check_result"));
+
+                  if (checkResult == 1) {
+                    passed[nodeId] += 1;
+                  } else {
+                    rejected[nodeId] += 1;
+                  }
 
-                    if(lastTaskId != taskId) { // handle todo of last task
-                      if(!lastRejected) {
-                        if(lastSeq == 4) {
-                          if(lastSeq4Num % 8 == 0 && lastSeq4Num % 9 == 0) {
-                            todos[5] += 1;
-                          } else if(lastSeq4Num % 9 == 0) {
-                            todos[8] += 1;
-                          } else if(lastSeq4Num % 8 == 0) {
-                            todos[9] += 1;
-                          } else { // treat as 3
-                            todos[8] += 1;
-                            todos[9] += 1;
-                          }
-                        } else if(lastSeq == 3) {
+                  if (lastTaskId != taskId) { // handle todo of last task
+                    if (!lastRejected) {
+                      if (lastSeq == 4) {
+                        if (lastSeq4Num % 8 == 0 && lastSeq4Num % 9 == 0) {
+                          todos[5] += 1;
+                        } else if (lastSeq4Num % 9 == 0) {
+                          todos[8] += 1;
+                        } else if (lastSeq4Num % 8 == 0) {
+                          todos[9] += 1;
+                        } else { // treat as 3
                           todos[8] += 1;
                           todos[9] += 1;
-                        } else if(lastSeq != 6) {
-                          todos[lastSeq+1] += 1;
                         }
+                      } else if (lastSeq == 3) {
+                        todos[8] += 1;
+                        todos[9] += 1;
+                      } else if (lastSeq != 6) {
+                        todos[lastSeq + 1] += 1;
                       }
-                      lastTaskId = taskId;
-                      lastRejected = false;
-                      lastSeq4Num = 1;
                     }
+                    lastTaskId = taskId;
+                    lastRejected = false;
+                    lastSeq4Num = 1;
+                  }
 
-                    if(checkResult == 0) {
-                      lastRejected = true;
-                    }
-                    lastSeq = seq;
-                    lastSeq4Num *= nodeId > 7 && checkResult == 1 ? nodeId : 1;
+                  if (checkResult == 0) {
+                    lastRejected = true;
                   }
+                  lastSeq = seq;
+                  lastSeq4Num *= nodeId > 7 && checkResult == 1 ? nodeId : 1;
+                }
 
-                  model.setTaskNumSubmitted(Integer.toString(passed[1]));
-                  model.setNode2PassedNum(Integer.toString(passed[2]));
-                  model.setNode2RejectNum(Integer.toString(rejected[2]));
-                  model.setNode2TodoNum(Integer.toString(todos[2]));
-                  if(!scope.operatorRoleIds.contains(43)) { // 非地市
-                    model.setNode3PassedNum(Integer.toString(passed[3]));
-                    model.setNode3RejectNum(Integer.toString(rejected[3]));
-                    model.setNode3TodoNum(Integer.toString(todos[3]));
-                    if(!scope.operatorRoleIds.contains(4)) { // 非区域
-                      if(!scope.operatorRoleIds.contains(40)) { // 非商务
-                        model.setNode8PassedNum(Integer.toString(passed[8]));
-                        model.setNode8RejectNum(Integer.toString(rejected[8]));
-                        model.setNode8TodoNum(Integer.toString(todos[8]));
-                      }
-                      if(!scope.operatorRoleIds.contains(42)) { // 非市场
-                        model.setNode9PassedNum(Integer.toString(passed[9]));
-                        model.setNode9RejectNum(Integer.toString(rejected[9]));
-                        model.setNode9TodoNum(Integer.toString(todos[9]));
-                      }
-                      if(scope.operatorRoleIds.contains(41) || scope.operatorRoleIds.contains(39) || scope.operatorRoleIds.contains(3)) { // 分管领导 & 总经理 & 运营
-                        model.setNode5PassedNum(Integer.toString(passed[5]));
-                        model.setNode5RejectNum(Integer.toString(rejected[5]));
-                        model.setNode5TodoNum(Integer.toString(todos[5]));
-                        if(scope.operatorRoleIds.contains(39) || scope.operatorRoleIds.contains(3)) { // 总经理 & 运营
-                          model.setNode6PassedNum(Integer.toString(passed[6]));
-                          model.setNode6RejectNum(Integer.toString(rejected[6]));
-                          model.setNode6TodoNum(Integer.toString(todos[6]));
-                        }
+                model.setTaskNumSubmitted(Integer.toString(passed[1]));
+                model.setNode2PassedNum(Integer.toString(passed[2]));
+                model.setNode2RejectNum(Integer.toString(rejected[2]));
+                model.setNode2TodoNum(Integer.toString(todos[2]));
+                if (!scope.operatorRoleIds.contains(43)) { // 非地市
+                  model.setNode3PassedNum(Integer.toString(passed[3]));
+                  model.setNode3RejectNum(Integer.toString(rejected[3]));
+                  model.setNode3TodoNum(Integer.toString(todos[3]));
+                  if (!scope.operatorRoleIds.contains(4)) { // 非区域
+                    if (!scope.operatorRoleIds.contains(40)) { // 非商务
+                      model.setNode8PassedNum(Integer.toString(passed[8]));
+                      model.setNode8RejectNum(Integer.toString(rejected[8]));
+                      model.setNode8TodoNum(Integer.toString(todos[8]));
+                    }
+                    if (!scope.operatorRoleIds.contains(42)) { // 非市场
+                      model.setNode9PassedNum(Integer.toString(passed[9]));
+                      model.setNode9RejectNum(Integer.toString(rejected[9]));
+                      model.setNode9TodoNum(Integer.toString(todos[9]));
+                    }
+                    if (scope.operatorRoleIds.contains(41)
+                        || scope.operatorRoleIds.contains(39)
+                        || scope.operatorRoleIds.contains(3)) { // 分管领导 & 总经理 & 运营
+                      model.setNode5PassedNum(Integer.toString(passed[5]));
+                      model.setNode5RejectNum(Integer.toString(rejected[5]));
+                      model.setNode5TodoNum(Integer.toString(todos[5]));
+                      if (scope.operatorRoleIds.contains(39)
+                          || scope.operatorRoleIds.contains(3)) { // 总经理 & 运营
+                        model.setNode6PassedNum(Integer.toString(passed[6]));
+                        model.setNode6RejectNum(Integer.toString(rejected[6]));
+                        model.setNode6TodoNum(Integer.toString(todos[6]));
                       }
                     }
                   }
-                  model.setAllRejectNum(Integer.toString(rejected[2]+rejected[3]+rejected[8]+rejected[9]+rejected[5]+rejected[6]));
-                  model.setAlllTodoNum(Integer.toString(todos[2]+todos[3]+todos[8]+todos[9]+todos[5]+todos[6]));
-                  return model;
                 }
-            ).forEach(model -> {result.add(model); });
+                model.setAllRejectNum(
+                    Integer.toString(
+                        rejected[2]
+                            + rejected[3]
+                            + rejected[8]
+                            + rejected[9]
+                            + rejected[5]
+                            + rejected[6]));
+                model.setAlllTodoNum(
+                    Integer.toString(
+                        todos[2] + todos[3] + todos[8] + todos[9] + todos[5] + todos[6]));
+                return model;
+              })
+          .forEach(
+              model -> {
+                result.add(model);
+              });
     }
 
     return result;
@@ -1327,23 +1411,33 @@ public class WmPackageManager {
     }
 
     // 分别过滤区域和服务商
-    List<Integer> parentDeptIds = operatorRoleIds.contains(37) ? //服务商的区域ID
-        sysDeptRelationMapper.selectList(
-            Wrappers.<SysDeptRelation>lambdaQuery()
-                .ne(SysDeptRelation::getAncestor, SecurityUtils.getUser().getDeptId())
-                .eq(SysDeptRelation::getDescendant, SecurityUtils.getUser().getDeptId()))
-            .stream().map(SysDeptRelation::getAncestor).collect(Collectors.toList())
-        : new ArrayList<>();
+    List<Integer> parentDeptIds =
+        operatorRoleIds.contains(37)
+            ? // 服务商的区域ID
+            sysDeptRelationMapper
+                .selectList(
+                    Wrappers.<SysDeptRelation>lambdaQuery()
+                        .ne(SysDeptRelation::getAncestor, SecurityUtils.getUser().getDeptId())
+                        .eq(SysDeptRelation::getDescendant, SecurityUtils.getUser().getDeptId()))
+                .stream()
+                .map(SysDeptRelation::getAncestor)
+                .collect(Collectors.toList())
+            : new ArrayList<>();
     if (operatorRoleIds.contains(37) && CollUtil.isEmpty(parentDeptIds)) {
       throw new RuntimeException("没有找到对应的区域");
     }
-    List<Integer> childDeptIds = operatorRoleIds.contains(4) ? //区域的服务商ID
-        sysDeptRelationMapper.selectList(
-            Wrappers.<SysDeptRelation>lambdaQuery()
-                .eq(SysDeptRelation::getAncestor, SecurityUtils.getUser().getDeptId())
-                .ne(SysDeptRelation::getDescendant, SecurityUtils.getUser().getDeptId()))
-            .stream().map(SysDeptRelation::getDescendant).collect(Collectors.toList())
-        : new ArrayList<>();
+    List<Integer> childDeptIds =
+        operatorRoleIds.contains(4)
+            ? // 区域的服务商ID
+            sysDeptRelationMapper
+                .selectList(
+                    Wrappers.<SysDeptRelation>lambdaQuery()
+                        .eq(SysDeptRelation::getAncestor, SecurityUtils.getUser().getDeptId())
+                        .ne(SysDeptRelation::getDescendant, SecurityUtils.getUser().getDeptId()))
+                .stream()
+                .map(SysDeptRelation::getDescendant)
+                .collect(Collectors.toList())
+            : new ArrayList<>();
     if (operatorRoleIds.contains(4) && CollUtil.isEmpty(childDeptIds)) {
       throw new RuntimeException("没有找到对应的服务商");
     }
@@ -1351,16 +1445,40 @@ public class WmPackageManager {
     Map<Integer, SysDept> dis =
         depts.stream()
             .filter(d -> d.getLevel() == 3)
-            .filter(d -> !operatorRoleIds.contains(4) || operatorRoleIds.contains(4) && d.getDeptId().equals(SecurityUtils.getUser().getDeptId())) //区域管理员
-            .filter(d -> !operatorRoleIds.contains(43) || operatorRoleIds.contains(43) && d.getDeptId().equals(SecurityUtils.getUser().getDeptId())) //地市管理员
-            .filter(d -> !operatorRoleIds.contains(37) || operatorRoleIds.contains(37) && parentDeptIds.contains(d.getDeptId())) //服务商管理员
+            .filter(
+                d ->
+                    !operatorRoleIds.contains(4)
+                        || operatorRoleIds.contains(4)
+                            && d.getDeptId().equals(SecurityUtils.getUser().getDeptId())) // 区域管理员
+            .filter(
+                d ->
+                    !operatorRoleIds.contains(43)
+                        || operatorRoleIds.contains(43)
+                            && d.getDeptId().equals(SecurityUtils.getUser().getDeptId())) // 地市管理员
+            .filter(
+                d ->
+                    !operatorRoleIds.contains(37)
+                        || operatorRoleIds.contains(37)
+                            && parentDeptIds.contains(d.getDeptId())) // 服务商管理员
             .collect(Collectors.toMap(SysDept::getDeptId, Function.identity()));
     Map<Integer, SysDept> service =
         depts.stream()
             .filter(d -> d.getLevel() == 4)
-            .filter(d -> !operatorRoleIds.contains(4) || operatorRoleIds.contains(4) && childDeptIds.contains(d.getDeptId())) //区域管理员
-            .filter(d -> !operatorRoleIds.contains(43) || operatorRoleIds.contains(43) && childDeptIds.contains(d.getDeptId())) //地市管理员
-            .filter(d -> !operatorRoleIds.contains(37) || operatorRoleIds.contains(37) && d.getDeptId().equals(SecurityUtils.getUser().getDeptId())) //服务商管理员
+            .filter(
+                d ->
+                    !operatorRoleIds.contains(4)
+                        || operatorRoleIds.contains(4)
+                            && childDeptIds.contains(d.getDeptId())) // 区域管理员
+            .filter(
+                d ->
+                    !operatorRoleIds.contains(43)
+                        || operatorRoleIds.contains(43)
+                            && childDeptIds.contains(d.getDeptId())) // 地市管理员
+            .filter(
+                d ->
+                    !operatorRoleIds.contains(37)
+                        || operatorRoleIds.contains(37)
+                            && d.getDeptId().equals(SecurityUtils.getUser().getDeptId())) // 服务商管理员
             .collect(Collectors.toMap(SysDept::getDeptId, Function.identity()));
 
     if (CollUtil.isEmpty(dis) || CollUtil.isEmpty(service)) {
@@ -1379,10 +1497,12 @@ public class WmPackageManager {
                         .map(String::valueOf)
                         .sorted()
                         .collect(Collectors.toList())));
-    if(operatorRoleIds.contains(37)) {
-      pkgs = pkgs.stream()
-        .filter(p -> p.getDeptId().equals(Integer.toString(SecurityUtils.getUser().getDeptId())))
-        .collect(Collectors.toList());
+    if (operatorRoleIds.contains(37)) {
+      pkgs =
+          pkgs.stream()
+              .filter(
+                  p -> p.getDeptId().equals(Integer.toString(SecurityUtils.getUser().getDeptId())))
+              .collect(Collectors.toList());
     }
     if (CollUtil.isEmpty(pkgs)) {
       throw new BizException(
@@ -1424,13 +1544,13 @@ public class WmPackageManager {
 
     // 获取下发的
     List<WmPackageTaskTypeQty> taskTypeQties =
-    packageTaskTypeQtyService.listPkgTaskTypeQtyByPkgIds(
-        cPkgIds.stream()
-            .mapToInt(Integer::parseInt)
-            .boxed()
-            .distinct()
-            .sorted()
-            .collect(Collectors.toList()));
+        packageTaskTypeQtyService.listPkgTaskTypeQtyByPkgIds(
+            cPkgIds.stream()
+                .mapToInt(Integer::parseInt)
+                .boxed()
+                .distinct()
+                .sorted()
+                .collect(Collectors.toList()));
 
     if (CollUtil.isEmpty(taskTypeQties)) {
       throw new BizException("没有找到可导出的任务下发记录");
@@ -1452,8 +1572,16 @@ public class WmPackageManager {
             : wmDaDrugEntDrugtableMapper.selectBatchIds(drugIds).stream()
                 .collect(Collectors.toMap(WmDaDrugEntDrugtable::getId, Function.identity()));
 
-    return new WmPackageExportScope(dis, service, pkgs, drugtableMap, operatorRoleIds,
-      childrenPkgs, cPkgIds, parentId2PkgMap, pttMap);
+    return new WmPackageExportScope(
+        dis,
+        service,
+        pkgs,
+        drugtableMap,
+        operatorRoleIds,
+        childrenPkgs,
+        cPkgIds,
+        parentId2PkgMap,
+        pttMap);
   }
 
   private Integer toInteger(Object obj) {