浏览代码

init: init project step4: biz code support

shc 1 年之前
父节点
当前提交
e5164dc488

+ 3 - 0
hnqz-common/hnqz-common-security/src/main/java/com/qunzhixinxi/hnqz/common/security/component/HnqzUserAuthenticationConverter.java

@@ -67,6 +67,9 @@ public class HnqzUserAuthenticationConverter implements UserAuthenticationConver
             validateTenantId(map);
             String username = MapUtil.getStr(map, SecurityConstants.DETAILS_USERNAME);
             String realName = MapUtil.getStr(map, "realName");
+            if (StrUtil.isBlank(realName)) {
+                realName = MapUtil.getStr(map, "realname");
+            }
             Integer id = MapUtil.getInt(map, SecurityConstants.DETAILS_USER_ID);
             Integer deptId = MapUtil.getInt(map, SecurityConstants.DETAILS_DEPT_ID);
             Integer tenantId = MapUtil.getInt(map, SecurityConstants.DETAILS_TENANT_ID);

+ 10 - 5
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmReportController.java

@@ -228,8 +228,11 @@ public class WmReportController {
      */
     @SysLog("结算报告--审批")
     @GetMapping("/approvalReport")
-    public R approvalReport(WmReport wmReport, @RequestParam(value = "taskIds") List<String> taskIds,
-                            String approvalOpinion, String approvalInfo) {
+    public R approvalReport(WmReport wmReport,
+                            @RequestParam(value = "taskIds") List<String> taskIds,
+                            String approvalOpinion,
+                            String approvalInfo,
+                            Integer nodeId) {
         log.info("结算报告--审批 请求参数:taskIds={},approvalOpinion={},approvalInfo={} 操作人:{},操作时间:{}",
                 taskIds, approvalOpinion, approvalInfo, SecurityUtils.getUser().getId(), LocalDateTime.now());
         WmReport wmReport1 = wmReportService.getById(wmReport.getId());
@@ -248,7 +251,7 @@ public class WmReportController {
             }
         });
 
-        R r = wmReportService.approvalReport(wmReport1, taskIds, approvalOpinion, approvalInfo);
+        R r = wmReportService.approvalReport(wmReport1, taskIds, approvalOpinion, approvalInfo, nodeId);
 
         Set<String> cahceKeys = taskIds.stream()
                 .map(taskId -> CacheConstants.TASK_APPROVAL_KEY + taskId).collect(Collectors.toSet());
@@ -350,7 +353,9 @@ public class WmReportController {
     @SysLog("批量任务类型结算报告--审批")
     @PostMapping("/approval-report-by-task")
     public R approvalReportByTask(@RequestParam(value = "taskIds") List<String> taskIds,
-                                  String approvalOpinion, String approvalInfo) {
+                                  String approvalOpinion,
+                                  String approvalInfo,
+                                  @RequestParam(required = false) Integer nodeId) {
         log.info("批量任务类型结算报告--审批 请求参数:taskIds={},approvalOpinion={},approvalInfo={} 操作人:{},操作时间:{}",
                 taskIds, approvalOpinion, approvalInfo, SecurityUtils.getUser().getId(), LocalDateTime.now());
         if (CollUtil.isEmpty(taskIds)) {
@@ -365,7 +370,7 @@ public class WmReportController {
             }
         });
 
-        R<?> r = wmReportService.approvalReportByTaskType(taskIds, approvalOpinion, approvalInfo);
+        R<?> r = wmReportService.approvalReportByTaskType(taskIds, approvalOpinion, approvalInfo, nodeId);
 
         Set<String> cahceKeys = taskIds.stream()
                 .map(taskId -> CacheConstants.TASK_APPROVAL_KEY + taskId).collect(Collectors.toSet());

+ 1 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/manager/SysCheckChainManager.java

@@ -127,7 +127,7 @@ public class SysCheckChainManager {
                     curNodeId = nodeId;
                     nextNodeId = nodeMap.get(3).getNextNodeId();
                     // 事业组审核
-                    roleId = nodeMap.get(3).getExecRoleId();
+                    roleId = -1;
 
                 }
                 // 服务组

+ 2 - 2
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/WmReportService.java

@@ -45,7 +45,7 @@ public interface WmReportService extends IService<WmReport> {
      */
     Boolean batchApprovalTask(String reportId, List<String> taskIdList, String approvalOpinion, String approvalInfo);
 
-    R approvalReport(WmReport wmReport, List<String> taskIds, String approvalOpinion, String approvalInfo);
+    R approvalReport(WmReport wmReport, List<String> taskIds, String approvalOpinion, String approvalInfo, Integer nodeId);
 
     /**
      * 企业根据任务类型审核任务
@@ -55,7 +55,7 @@ public interface WmReportService extends IService<WmReport> {
      * @param approvalInfo
      * @return
      */
-    R<?> approvalReportByTaskType(List<String> taskIds, String approvalOpinion, String approvalInfo);
+    R<?> approvalReportByTaskType(List<String> taskIds, String approvalOpinion, String approvalInfo, Integer nodeId);
 
     /**
      * 报告管理--查看

+ 87 - 59
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmReportServiceImpl.java

@@ -17,6 +17,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qunzhixinxi.hnqz.admin.api.constant.CacheConstants;
+import com.qunzhixinxi.hnqz.admin.api.dto.SysCheckChainNodeCheckHistoryDTO;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDeptRelation;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDictItem;
@@ -147,9 +148,9 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
 
         Set<Integer> scoreIds = records.stream().map(WmReport::getScoreId).collect(Collectors.toSet());
         List<WmScorePackage> scorePackageList = wmScorePackageService.listByIds(scoreIds);
-        // 积分包对应的审核管理费
-        Map<String, BigDecimal> packageAuditManagFeeRatesMap = scorePackageList.stream()
-                .collect(Collectors.toMap(WmScorePackage::getId, WmScorePackage::getAuditManagementFeeRates));
+        //// 积分包对应的审核管理费
+        //Map<String, BigDecimal> packageAuditManagFeeRatesMap = scorePackageList.stream()
+        //        .collect(Collectors.toMap(WmScorePackage::getId, WmScorePackage::getAuditManagementFeeRates));
 
         for (WmReport report : records) {
 
@@ -231,11 +232,12 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
             report.setExcelReportOpt(excelPpt);
 
             // 完成积分值(最终完成积分值 = 完成积分值 * (1+审核管理费比例))
-            int actualScore = new BigDecimal(report.getTotalScore()).multiply(
-                    packageAuditManagFeeRatesMap.get(String.valueOf(report.getScoreId()))
-                            .divide(new BigDecimal("100.00"), RoundingMode.HALF_EVEN).add(BigDecimal.ONE)
-            ).intValue();
-            report.setTotalScore(String.valueOf(actualScore));
+            //int actualScore = new BigDecimal(report.getTotalScore()).multiply(
+            //        packageAuditManagFeeRatesMap.get(String.valueOf(report.getScoreId()))
+            //                .divide(new BigDecimal("100.00"), RoundingMode.HALF_EVEN).add(BigDecimal.ONE)
+            //).intValue();
+            //report.setTotalScore(String.valueOf(actualScore));
+            //report.setTotalScore(report.getTotalScore());
         }
 
         return reportListPage;
@@ -753,47 +755,46 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public R approvalReport(WmReport wmReport, List<String> taskIds, String approvalOpinion, String approvalInfo) {
-        List<WmTask> taskList = new ArrayList<>();//该报告关联的所有未提交的任务
+    public R approvalReport(WmReport wmReport, List<String> taskIds, String approvalOpinion, String approvalInfo, Integer nodeId) {
 
         WmScorePackage scorePackage = wmScorePackageService.getById(wmReport.getScoreId());
-        // 如果是源头积分包,则判断是否审核入库调查信息
-        if (StringUtils.isBlank(scorePackage.getRelationScoreId())) {
-            List<WmTask> tasks = wmTaskService.list(Wrappers.<WmTask>lambdaQuery().in(WmTask::getId, taskIds));
-            // 调查信息审核(15、30-医院 16-商业公司 18-药店)
-            tasks.forEach(task -> {
-                if ("15".equals(task.getTaskTypeId()) || "30".equals(task.getTaskTypeId())) {
-                    Map<String, Object> data = (Map<String, Object>) wmDaHospitalService.approvalHospital(task.getId()).getData();
-                    WmTask _wmTask = (WmTask) data.get("wmTask");
-                    Map<String, String> paramMap = BeanUtil.toBean(data.get("newinfo"), Map.class);
-                    paramMap.put("approvalInfo", approvalInfo);
-                    paramMap.put("approvalOpinion", approvalOpinion);
-                    paramMap.put("compareResult", _wmTask.getCompareResult());
-                    paramMap.put("taskId", task.getId());
-                    wmDaHospitalService.updateByApproval(paramMap);
-                } else if ("16".equals(task.getTaskTypeId())) {
-                    Map<String, Object> data = (Map<String, Object>) wmDaDistributionService.approvalDistribution(task.getId()).getData();
-                    WmTask _wmTask = (WmTask) data.get("wmTask");
-                    Map<String, String> paramMap = BeanUtil.toBean(data.get("newinfo"), Map.class);
-                    paramMap.put("approvalInfo", approvalInfo);
-                    paramMap.put("approvalOpinion", approvalOpinion);
-                    paramMap.put("compareResult", _wmTask.getCompareResult());
-                    paramMap.put("taskId", task.getId());
-                    wmDaDistributionService.updateByApproval(paramMap);
-                } else if ("18".equals(task.getTaskTypeId())) {
-                    Map<String, Object> data = (Map<String, Object>) wmDaPharmacyService.approvalPharmacy(task.getId()).getData();
-                    WmTask _wmTask = (WmTask) data.get("_wmTask");
-                    WmDaPharmacy info = (WmDaPharmacy) data.get("info");
-                    Map<String, String> paramMap = MapUtil.newHashMap(4);
-                    paramMap.put("infoId", info.getId());
-                    paramMap.put("approvalInfo", approvalInfo);
-                    paramMap.put("approvalOpinion", approvalOpinion);
-                    paramMap.put("compareResult", _wmTask.getCompareResult());
-                    paramMap.put("taskId", task.getId());
-                    wmDaPharmacyService.updateByapproval(paramMap);
-                }
-            });
-        }
+        //// 如果是源头积分包,则判断是否审核入库调查信息
+        //if (StringUtils.isBlank(scorePackage.getRelationScoreId())) {
+        //    List<WmTask> tasks = wmTaskService.list(Wrappers.<WmTask>lambdaQuery().in(WmTask::getId, taskIds));
+        //    // 调查信息审核(15、30-医院 16-商业公司 18-药店)
+        //    tasks.forEach(task -> {
+        //        if ("15".equals(task.getTaskTypeId()) || "30".equals(task.getTaskTypeId())) {
+        //            Map<String, Object> data = (Map<String, Object>) wmDaHospitalService.approvalHospital(task.getId()).getData();
+        //            WmTask _wmTask = (WmTask) data.get("wmTask");
+        //            Map<String, String> paramMap = BeanUtil.toBean(data.get("newinfo"), Map.class);
+        //            paramMap.put("approvalInfo", approvalInfo);
+        //            paramMap.put("approvalOpinion", approvalOpinion);
+        //            paramMap.put("compareResult", _wmTask.getCompareResult());
+        //            paramMap.put("taskId", task.getId());
+        //            wmDaHospitalService.updateByApproval(paramMap);
+        //        } else if ("16".equals(task.getTaskTypeId())) {
+        //            Map<String, Object> data = (Map<String, Object>) wmDaDistributionService.approvalDistribution(task.getId()).getData();
+        //            WmTask _wmTask = (WmTask) data.get("wmTask");
+        //            Map<String, String> paramMap = BeanUtil.toBean(data.get("newinfo"), Map.class);
+        //            paramMap.put("approvalInfo", approvalInfo);
+        //            paramMap.put("approvalOpinion", approvalOpinion);
+        //            paramMap.put("compareResult", _wmTask.getCompareResult());
+        //            paramMap.put("taskId", task.getId());
+        //            wmDaDistributionService.updateByApproval(paramMap);
+        //        } else if ("18".equals(task.getTaskTypeId())) {
+        //            Map<String, Object> data = (Map<String, Object>) wmDaPharmacyService.approvalPharmacy(task.getId()).getData();
+        //            WmTask _wmTask = (WmTask) data.get("_wmTask");
+        //            WmDaPharmacy info = (WmDaPharmacy) data.get("info");
+        //            Map<String, String> paramMap = MapUtil.newHashMap(4);
+        //            paramMap.put("infoId", info.getId());
+        //            paramMap.put("approvalInfo", approvalInfo);
+        //            paramMap.put("approvalOpinion", approvalOpinion);
+        //            paramMap.put("compareResult", _wmTask.getCompareResult());
+        //            paramMap.put("taskId", task.getId());
+        //            wmDaPharmacyService.updateByapproval(paramMap);
+        //        }
+        //    });
+        //}
 
         Integer userId = SecurityUtils.getUser().getId();
         LocalDateTime now = LocalDateTime.now();
@@ -801,7 +802,8 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
         //更新任务表审批意见,查询所有未审核的任务,判断报告关联任务是否全部审核
         LambdaUpdateWrapper<WmTask> updateTaskWrapper = new LambdaUpdateWrapper<>();
         WmTask wmTask = new WmTask();
-        if (SecurityUtils.getRoles().contains(3)) {//药企
+        //if (SecurityUtils.getRoles().contains(3)) {//药企
+        if (SecurityUtils.getRoles().contains(39)) {//总经理
             updateTaskWrapper.set(WmTask::getReportDrugApprovalStatus, ReportEnum.REPORT_STATUS_SETTLE.getType());
             updateTaskWrapper.set(WmTask::getReportDrugApprovalOpinion, approvalOpinion);
             updateTaskWrapper.set(WmTask::getReportDrugApprovalInfo, approvalInfo);
@@ -813,9 +815,12 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
             }
             updateTaskWrapper.in(WmTask::getId, taskIds);
 
-        } else if (SecurityUtils.getRoles().contains(4)) {//一级代理商类型
+        }
 
-            updateTaskWrapper.set(WmTask::getReportOneApprovalStatus, ReportEnum.REPORT_STATUS_SETTLE.getType());
+        //else if (SecurityUtils.getRoles().contains(4)) {//一级代理商类型
+        else if (SecurityUtils.getRoles().contains(4)) {//区域
+
+            updateTaskWrapper.set(WmTask::getReportOneApprovalStatus, ReportEnum.REPORT_STATUS_CREATE.getType());
             updateTaskWrapper.set(WmTask::getReportOneApprovalOpinion, approvalOpinion);
             updateTaskWrapper.set(WmTask::getReportOneApprovalInfo, approvalInfo);
             if ("2".equals(scorePackage.getTypeid())) {
@@ -825,6 +830,7 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
             }
             updateTaskWrapper.in(WmTask::getId, taskIds);
         }
+
         if ("0".equals(scorePackage.getTypeid())) {//药企
             wmTask.setReportDrugId(wmReport.getId());
             wmTask.setReportDrugApprovalStatus(ReportEnum.REPORT_STATUS_APPROVAL.getType());
@@ -842,15 +848,33 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
             // 审核不通过,则设置TaskStatus为不通过
             updateTaskWrapper.set(WmTask::getTaskStatus, TaskStatusEnum.FAIL_APPROVED.val());
         }
+
+
+
+
         updateTaskWrapper.set(WmTask::getRealFlag, "0");
         updateTaskWrapper.set(WmTask::getDeptApprovalUserId, userId);
         updateTaskWrapper.set(WmTask::getDeptApprovalTime, now);
         wmTaskService.update(updateTaskWrapper);
-        taskList = wmTaskService.list(Wrappers.query(wmTask));
-        //更新报告状态
+
+        // 创建审批流审核记录
+        List<SysCheckChainNodeCheckHistoryDTO.OnCreate> collect = taskIds.stream().map(id -> {
+            SysCheckChainNodeCheckHistoryDTO.OnCreate res = new SysCheckChainNodeCheckHistoryDTO.OnCreate();
+            res.setNodeId(nodeId);
+            res.setTargetId(Integer.valueOf(id));
+            res.setCheckResult("1".equals(approvalOpinion));
+            res.setCheckMessage(approvalInfo);
+            return res;
+        }).collect(Collectors.toList());
+        checkChainManager.doCheck(collect, SecurityUtils.getUser());
+
+
+        //该报告关联的所有未提交的任务
+        List<WmTask> taskList = wmTaskService.list(Wrappers.query(wmTask));
+
+        // 更新报告状态  START======================================================
         //提交修改状态,更新时间
         LambdaUpdateWrapper<WmReport> updateWrapper = new LambdaUpdateWrapper<>();
-
         //判断任务是不是已经全部审核完成,所有的任务都完成才算完成
         if (taskList.isEmpty()) {//taskList为空,说明任务都已审核
             updateWrapper.set(WmReport::getReportStatus, ReportEnum.REPORT_STATUS_SETTLE.getType());
@@ -864,6 +888,9 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
         updateWrapper.eq(WmReport::getId, wmReport.getId());
         this.update(updateWrapper);
 
+        // 更新报告状态 END======================================================
+
+
         LambdaQueryWrapper<WmTask> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.in(WmTask::getId, taskIds);
         List<WmTask> wmTaskList = wmTaskService.list(queryWrapper);
@@ -890,8 +917,8 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
                 if (totalTaskScore >= taskScorePackage.getScore()) {
                     // 上级审核通过的积分值
                     int superApprovedScore = submitedTaskList.stream()
-                            .filter(t -> TaskStatusEnum.APPROVED.val().equals(t.getTaskStatus()) &&
-                                    ("1".equals(t.getReportDrugApprovalOpinion()) || "1".equals(t.getReportOneApprovalOpinion())))
+                            //.filter(t -> TaskStatusEnum.APPROVED.val().equals(t.getTaskStatus()) && ("1".equals(t.getReportDrugApprovalOpinion()) || "1".equals(t.getReportOneApprovalOpinion())))
+                            .filter(t -> TaskStatusEnum.APPROVED.val().equals(t.getTaskStatus()) && ("1".equals(t.getReportDrugApprovalOpinion()) && "1".equals(t.getReportOneApprovalOpinion())))
                             .mapToInt(WmTask::getScore).sum();
                     if (superApprovedScore >= taskScorePackage.getScore()) {
                         updateScorePackage.setScorePackageStatus(ScorePackageStatusEnum.TO_BE_SETTLED.val());
@@ -916,8 +943,9 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
                         .eq(WmTask::getScorePackageId, task.getScorePackageId())
                         .eq(WmTask::getTaskStatus, TaskStatusEnum.APPROVED.val())
                         .eq(WmTask::getRealFlag, "0")
-                        .and(wrapper -> wrapper.eq(WmTask::getReportDrugApprovalOpinion, "1")
-                                .or().eq(WmTask::getReportOneApprovalOpinion, "1"));
+                        .eq(WmTask::getReportDrugApprovalOpinion, "1")
+                        .eq(WmTask::getReportOneApprovalOpinion, "1");
+                        //.and(wrapper -> wrapper.eq(WmTask::getReportDrugApprovalOpinion, "1").or().eq(WmTask::getReportOneApprovalOpinion, "1"));
                 List<WmTask> approvalTaskList = wmTaskService.list(apporvalWrapper);
                 int totalScore = approvalTaskList.stream().mapToInt(WmTask::getScore).sum();
                 WmScorePackage taskScorePackage = wmScorePackageService.getById(task.getScorePackageId());
@@ -945,7 +973,7 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public R<?> approvalReportByTaskType(List<String> taskIds, String approvalOpinion, String approvalInfo) {
+    public R<?> approvalReportByTaskType(List<String> taskIds, String approvalOpinion, String approvalInfo, Integer nodeId) {
         LambdaQueryWrapper<WmTask> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.in(WmTask::getId, taskIds);
         List<WmTask> wmTaskList = wmTaskService.list(queryWrapper);
@@ -964,7 +992,7 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
             log.info("企业批量审核任务reportId={}, taskIds={}", reportId, taskIdList);
 
             // 调用原有审核方法
-            R approvalReportResult = this.approvalReport(queryReport, taskIdList, approvalOpinion, approvalInfo);
+            R approvalReportResult = this.approvalReport(queryReport, taskIdList, approvalOpinion, approvalInfo, nodeId);
 
             if (approvalReportResult.getCode() != 0) {
                 successFlag.set(false);

+ 2 - 2
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmScorePackageServiceImpl.java

@@ -2660,7 +2660,7 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 
         // 审核通过
         int shtg = taskList.parallelStream()
-                .filter(t -> StrUtil.equals(t.getReportDrugApprovalOpinion(), "1") || StrUtil.equals(t.getReportOneApprovalOpinion(), "1"))
+                .filter(t -> StrUtil.equals(t.getReportDrugApprovalOpinion(), "1") && StrUtil.equals(t.getReportOneApprovalOpinion(), "1"))
                 .mapToInt(WmTask::getScore)
                 .sum();
         // 审核 不通过
@@ -2670,7 +2670,7 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
                 .sum();
         // 审核通过数
         long shtgnum = taskList.parallelStream()
-                .filter(t -> StrUtil.equals(t.getReportDrugApprovalOpinion(), "1") || StrUtil.equals(t.getReportOneApprovalOpinion(), "1"))
+                .filter(t -> StrUtil.equals(t.getReportDrugApprovalOpinion(), "1") && StrUtil.equals(t.getReportOneApprovalOpinion(), "1"))
                 .count();
         // 审核不通过数
         long shbtgnum = taskList.parallelStream()

+ 19 - 6
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmTaskServiceImpl.java

@@ -94,6 +94,7 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.HashMap;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -296,9 +297,21 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
     @Override
     public R<?> selectByWmTask(WmTask wmTask) {
         String packageId = wmTask.getScorePackageId();  // 获取积分包ID
+        List<String> idList = new LinkedList<>();
         List<WmScorePackage> wmScorePackageList = wmScorePackageMapper.selectByRelationScoreIdList(packageId);
-        List<String> idList = wmScorePackageList.stream().map(WmScorePackage::getId).collect(Collectors.toList());
+        Set<String> secPkgIds = wmScorePackageList.stream().map(WmScorePackage::getId).collect(Collectors.toSet());
+
+        for (String id : secPkgIds) {
+            List<WmScorePackage> p = wmScorePackageMapper.selectByRelationScoreIdList(id);
+            if (CollUtil.isNotEmpty(p)) {
+                idList.addAll(p.stream().map(WmScorePackage::getId).collect(Collectors.toSet()));
+
+            }
+        }
+        idList.addAll(secPkgIds);
         idList.add(packageId);
+
+
         List<String> strs1 = new ArrayList<>();
         WmScorePackage wmScorePackage = wmScorePackageService.getById(packageId);
         String name = wmScorePackage.getScorePackageName();
@@ -374,8 +387,6 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
                 }
             }
         }
-
-
         else if (sysDept.getLevel() == 4) {
             // 二级CSO
             //if (Objects.nonNull(wmScorePackage.getDrugEntId())) {
@@ -445,7 +456,9 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
                     }
                 }
             }
-        } else if (sysDept.getLevel() == 2) {
+        }
+
+        else if (sysDept.getLevel() == 2) {
             // 药企
             wmTask.setExtIds(strs1);
             wmTask.setTaskStatus(String.valueOf(3));
@@ -1466,8 +1479,8 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
 
             }
 
-            for (WmTask task : taskPage.getRecords()){
-                if (task.getApprovalUserId() != null && CollUtil.isNotEmpty(userMap)){
+            for (WmTask task : taskPage.getRecords()) {
+                if (task.getApprovalUserId() != null && CollUtil.isNotEmpty(userMap)) {
                     task.setApprovalUserName(userMap.get(task.getApprovalUserId()));
                 }