فهرست منبع

feat:supervision v3.2

shc 8 ماه پیش
والد
کامیت
42e06e21b7

+ 20 - 0
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/dto/WmSupervisionDto.java

@@ -240,4 +240,24 @@ public final class WmSupervisionDto {
         @NotNull(message = "警告信息必填")
         private Integer warnId;
     }
+
+    @Data
+    public static class OnTaskSupervisionPage {
+
+        @NotNull(message = "查询服务商必填")
+        private Integer deptId;
+
+        @NotNull(message = "复查标记必填")
+        private Boolean review;
+
+        @NotNull(message = "页码必填")
+        @Min(value = 1, message = "页码最小为{value}")
+        private Integer current;
+
+        @NotNull(message = "分页数量必填")
+        @Min(value = 10, message = "分页数量最小为{value}")
+        @Max(value = 100, message = "分页数量最大为{value}")
+        private Integer size;
+    }
+
 }

+ 6 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmSupervisionController.java

@@ -91,6 +91,12 @@ public class WmSupervisionController {
         return R.ok(supervisionManager.getCurrentPkgTaskSupResult(pkg, SecurityUtils.getUser()));
     }
 
+    @GetMapping(value = "/supervision/task/sup/page")
+    public R<Page<Map<String, Object>>> pageTaskSupervision(@Validated WmSupervisionDto.OnTaskSupervisionPage query) {
+
+        return R.ok(supervisionManager.pageTaskSupervision(query));
+    }
+
     @GetMapping(value = "/supervision/task/avail/list")
     public R<List<Map<String, Object>>> listAvailableTask(@RequestParam(value = "pkgId") Integer pkgId,
                                                           @RequestParam(value = "review", defaultValue = "false") Boolean review) {

+ 6 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmTaskTypeController.java

@@ -425,7 +425,12 @@ public class WmTaskTypeController {
      * @return 列表数据
      */
     @GetMapping("/list-package-task-type")
-    public R<?> listPackageTaskType(@RequestParam(value = "scorePackageId") String scorePackageId, String taskStatus) {
+    public R<?> listPackageTaskType(@RequestParam(value = "scorePackageId", required = false) String scorePackageId, String taskStatus) {
+
+        if (StrUtil.isBlank(scorePackageId)) {
+            return R.ok(wmTaskTypeService.list(Wrappers.<WmTaskType>lambdaQuery().le(WmTaskType::getId, "100")));
+        }
+
         // 获取待审核的任务
         LambdaQueryWrapper<WmTask> queryWrapper = Wrappers.<WmTask>lambdaQuery()
                 .select(WmTask::getTaskTypeId)

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

@@ -1024,7 +1024,8 @@ public class WmSupervisionManager {
 
                 List<String> pkgIds = pkgs.stream().map(WmScorePackage::getId).distinct().sorted().collect(Collectors.toList());
                 // 获取子集包中的所有任务
-                List<WmTask> tasks = taskService.list(Wrappers.<WmTask>lambdaQuery().in(WmTask::getScorePackageId, pkgIds).eq(WmTask::getTaskStatus, "3"));
+                List<WmTask> tasks = taskService.listAvailableTaskForSupervision1(pkgIds.stream().mapToInt(Integer::valueOf).boxed().distinct().sorted().collect(Collectors.toList()), Collections.emptyList());
+                // List<WmTask> tasks = taskService.list(Wrappers.<WmTask>lambdaQuery().in(WmTask::getScorePackageId, pkgIds).eq(WmTask::getTaskStatus, "3"));
                 // 获取监察记录
                 List<WmTaskSupervision> supervisions = taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery().in(WmTaskSupervision::getPackageId, pkgs));
 
@@ -1048,6 +1049,316 @@ public class WmSupervisionManager {
         return page;
     }
 
+    public Page<Map<String, Object>> pageTaskSupervision(WmSupervisionDto.OnTaskSupervisionPage query) {
+
+        Page<Map<String, Object>> page = new Page<>(query.getCurrent(), query.getSize());
+
+        // 获取积分包
+        List<WmScorePackage> packages = packageService.list(Wrappers.<WmScorePackage>lambdaQuery().eq(WmScorePackage::getSendPackageDeptId, query.getDeptId()));
+
+        if (CollUtil.isEmpty(packages)) {
+            return page;
+        }
+
+        // 获取积分包ID
+        List<Integer> pkgIds = packages.stream().map(WmScorePackage::getId).mapToInt(Integer::valueOf).boxed().distinct().sorted().collect(Collectors.toList());
+
+
+        List<WmTaskSupervision> list = taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery()
+                .in(WmTaskSupervision::getPackageId, pkgIds)
+                .orderByDesc(WmTaskSupervision::getCreateTime)
+        );
+        // 获取当前积分包已经监督过的任务ID
+        List<Integer> supTaskIds = list.stream().mapToInt(WmTaskSupervision::getTaskId).boxed().sorted().distinct().collect(Collectors.toList());
+        Page<WmTask> taskPage = taskService.listAvailableTaskForSupervision2(new Page<>(query.getCurrent(), query.getSize()), pkgIds, supTaskIds);
+
+        List<WmTask> records = taskPage.getRecords();
+
+        if (CollUtil.isEmpty(records)) {
+            return page;
+        }
+
+        Map<String, List<WmTask>> collect = records.stream().collect(Collectors.groupingBy(WmTask::getScorePackageId));
+
+        List<Map<String, Object>> maps = new ArrayList<>(records.size());
+        for (Map.Entry<String, List<WmTask>> entry : collect.entrySet()) {
+
+            List<Map<String, Object>> m = taskService.listTaskInfo(entry.getValue(), entry.getKey());
+            maps.addAll(m);
+        }
+
+        page.setRecords(maps);
+        page.setTotal(taskPage.getTotal());
+
+        return page;
+
+
+        // String username = SecurityUtils.getUser().getUsername();
+        // List<Integer> roles = SecurityUtils.getRoles();
+        //
+        // // 监督员
+        // if (CollUtil.containsAny(roles, List.of(49, 52, 53, 56))) {
+        //     List<WmTaskSupervision> list = taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery()
+        //             .eq(WmTaskSupervision::getPackageId, pkgId)
+        //             .orderByDesc(WmTaskSupervision::getCreateTime)
+        //     );
+        //
+        //
+        //     // 复查
+        //     List<WmTask> wmTasks;
+        //     if (review) {
+        //         // 获取当前积分包已经监督过的任务ID
+        //         Set<Integer> supTaskIds = list.stream().filter(ts -> StrUtil.equals(username, ts.getCreateBy())).mapToInt(WmTaskSupervision::getTaskId).boxed().collect(Collectors.toSet());
+        //         wmTasks = CollUtil.isEmpty(supTaskIds) ? Collections.emptyList() : taskService.listByIds(supTaskIds);
+        //     } else {
+        //         // 获取当前积分包已经监督过的任务ID
+        //         Set<Integer> supTaskIds = list.stream().mapToInt(WmTaskSupervision::getTaskId).boxed().collect(Collectors.toSet());
+        //         wmTasks = taskService.listAvailableTaskForSupervision(pkgId, supTaskIds);
+        //     }
+        //
+        //
+        //     List<Map<String, Object>> maps = CollUtil.isEmpty(wmTasks) ? Collections.emptyList() : taskService.listTaskInfo(wmTasks, pkgId.toString());
+        //
+        //     Set<String> createdBy = list.stream().map(WmTaskSupervision::getCreateBy).collect(Collectors.toSet());
+        //     Map<String, SysUser> userMap;
+        //     Map<Integer, List<SysUserRole>> userRoleMap;
+        //     Map<Integer, String> roleMap;
+        //     if (CollUtil.isNotEmpty(createdBy)) {
+        //         List<SysUser> users = userService.list(Wrappers.<SysUser>lambdaQuery().in(SysUser::getUsername, createdBy));
+        //         userMap = users.stream().collect(Collectors.toMap(SysUser::getUsername, Function.identity()));
+        //         Set<Integer> userIds = users.stream().mapToInt(SysUser::getUserId).boxed().collect(Collectors.toSet());
+        //         List<SysUserRole> userRoles = userRoleService.list(Wrappers.<SysUserRole>lambdaQuery().in(SysUserRole::getUserId, userIds));
+        //         userRoleMap = userRoles.stream().collect(Collectors.groupingBy(SysUserRole::getUserId));
+        //         Set<Integer> roleId = userRoles.stream().mapToInt(SysUserRole::getRoleId).boxed().collect(Collectors.toSet());
+        //         roleMap = roleService.listByIds(roleId).stream().collect(Collectors.toMap(SysRole::getRoleId, SysRole::getRoleName));
+        //     } else {
+        //         userMap = Collections.emptyMap();
+        //         userRoleMap = Collections.emptyMap();
+        //         roleMap = Collections.emptyMap();
+        //     }
+        //
+        //
+        //     Map<Integer, List<WmTaskSupervision>> collect = list.stream().collect(Collectors.groupingBy(WmTaskSupervision::getTaskId));
+        //     maps.forEach(m -> {
+        //
+        //         Integer id = Integer.valueOf(m.get("id").toString());
+        //
+        //         List<WmTaskSupervision> wmTaskSupervisions = collect.get(id);
+        //         m.put("supervision", wmTaskSupervisions);
+        //
+        //         List<String> msgs = new ArrayList<>(4);
+        //         if (CollUtil.isNotEmpty(wmTaskSupervisions)) {
+        //
+        //             msgs = wmTaskSupervisions.stream().sorted(Comparator.comparingInt(WmTaskSupervision::getTaskId).reversed())
+        //                     .map(ts -> {
+        //                         SysUser user = userMap.get(ts.getCreateBy());
+        //                         SysUserRole sysUserRole = userRoleMap.get(user.getUserId()).get(0);
+        //                         String roleName = roleMap.get(sysUserRole.getRoleId());
+        //                         String realName = user.getRealname();
+        //                         String date = DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN).format(ts.getCreateTime());
+        //                         String resultMsg = ts.getSupervisionResult() ? " 通过 " : " 不通过 ";
+        //                         String remarks = StrUtil.isBlank(ts.getRemarks()) ? " " : ts.getRemarks();
+        //
+        //                         return String.format("%s【%s】,审核【%s】,监督意见为【%s】(%s)。", roleName, realName, resultMsg, remarks, date);
+        //
+        //                     }).collect(Collectors.toList());
+        //
+        //
+        //         }
+        //         m.put("supervisionMessages", msgs);
+        //         m.put("review", review);
+        //
+        //     });
+        //
+        //     return maps;
+        // }
+        // // 服务商
+        // else if (CollUtil.containsAny(roles, List.of(37))) {
+        //     // 获取当前积分包已经监督过的任务ID
+        //     List<WmTaskSupervision> list = taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery()
+        //             // .eq(WmTaskSupervision::getSupervisionState, UpmsState.TaskSupervisionState.PASSED)
+        //             .eq(WmTaskSupervision::getPackageId, pkgId).orderByDesc(WmTaskSupervision::getCreateTime));
+        //
+        //     if (CollUtil.isEmpty(list)) {
+        //         return Collections.emptyList();
+        //     }
+        //
+        //     Set<Integer> supTaskIds = list.stream().filter(ts -> UpmsState.TaskSupervisionState.PASSED.equals(ts.getSupervisionState())).mapToInt(WmTaskSupervision::getTaskId).boxed().collect(Collectors.toSet());
+        //
+        //     if (CollUtil.isEmpty(supTaskIds)) {
+        //         return Collections.emptyList();
+        //     }
+        //
+        //     List<WmTask> tasks = taskService.list(Wrappers.<WmTask>lambdaQuery().in(WmTask::getId, supTaskIds));
+        //     List<Map<String, Object>> maps = taskService.listTaskInfo(tasks, pkgId.toString());
+        //
+        //     Set<String> createdBy = list.stream().map(WmTaskSupervision::getCreateBy).collect(Collectors.toSet());
+        //     Map<String, SysUser> userMap;
+        //     Map<Integer, List<SysUserRole>> userRoleMap;
+        //     Map<Integer, String> roleMap;
+        //     if (CollUtil.isNotEmpty(createdBy)) {
+        //         List<SysUser> users = userService.list(Wrappers.<SysUser>lambdaQuery().in(SysUser::getUsername, createdBy));
+        //         userMap = users.stream().collect(Collectors.toMap(SysUser::getUsername, Function.identity()));
+        //         Set<Integer> userIds = users.stream().mapToInt(SysUser::getUserId).boxed().collect(Collectors.toSet());
+        //         List<SysUserRole> userRoles = userRoleService.list(Wrappers.<SysUserRole>lambdaQuery().in(SysUserRole::getUserId, userIds));
+        //         userRoleMap = userRoles.stream().collect(Collectors.groupingBy(SysUserRole::getUserId));
+        //         Set<Integer> roleId = userRoles.stream().mapToInt(SysUserRole::getRoleId).boxed().collect(Collectors.toSet());
+        //         roleMap = roleService.listByIds(roleId).stream().collect(Collectors.toMap(SysRole::getRoleId, SysRole::getRoleName));
+        //     } else {
+        //         userMap = Collections.emptyMap();
+        //         userRoleMap = Collections.emptyMap();
+        //         roleMap = Collections.emptyMap();
+        //     }
+        //
+        //     Map<Integer, List<WmTaskSupervision>> collect = list.stream().collect(Collectors.groupingBy(WmTaskSupervision::getTaskId));
+        //     maps.forEach(m -> {
+        //
+        //         Integer id = Integer.valueOf(m.get("id").toString());
+        //
+        //         List<WmTaskSupervision> wmTaskSupervisions = collect.get(id);
+        //         m.put("supervision", wmTaskSupervisions);
+        //
+        //         List<String> msgs = new ArrayList<>(4);
+        //         if (CollUtil.isNotEmpty(wmTaskSupervisions)) {
+        //
+        //             msgs = wmTaskSupervisions.stream().sorted(Comparator.comparingInt(WmTaskSupervision::getTaskId).reversed())
+        //                     .map(ts -> {
+        //                         SysUser user = userMap.get(ts.getCreateBy());
+        //                         SysUserRole sysUserRole = userRoleMap.get(user.getUserId()).get(0);
+        //                         String roleName = roleMap.get(sysUserRole.getRoleId());
+        //                         String realName = user.getRealname();
+        //                         String date = DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN).format(ts.getCreateTime());
+        //                         String resultMsg = ts.getSupervisionResult() ? " 通过 " : " 不通过 ";
+        //                         String remarks = StrUtil.isBlank(ts.getRemarks()) ? " " : ts.getRemarks();
+        //
+        //                         return String.format("%s【%s】,审核【%s】,监督意见为【%s】(%s)。", roleName, realName, resultMsg, remarks, date);
+        //
+        //                     }).collect(Collectors.toList());
+        //
+        //
+        //         }
+        //         m.put("supervisionMessages", msgs);
+        //         m.put("review", review);
+        //
+        //     });
+        //
+        //     return maps;
+        // }
+        // // 负责人|分管领导|事业部总经理
+        // else {
+        //
+        //
+        //     // 获取当前积分包已经监督过的任务ID
+        //     List<WmTaskSupervision> list = taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery()
+        //             .eq(WmTaskSupervision::getPackageId, pkgId)
+        //             .orderByDesc(WmTaskSupervision::getCreateTime));
+        //
+        //
+        //     List<WmTask> wmTasks;
+        //     if (review) {
+        //         // 获取当前积分包已经监督过的任务ID
+        //         Set<Integer> supTaskIds = list.stream().filter(ts -> StrUtil.equals(username, ts.getCreateBy())).mapToInt(WmTaskSupervision::getTaskId).boxed().collect(Collectors.toSet());
+        //         wmTasks = CollUtil.isEmpty(supTaskIds) ? Collections.emptyList() : taskService.listByIds(supTaskIds);
+        //     } else {
+        //         Map<UpmsState.TaskSupervisionState, Set<Integer>> collect1 = list.stream()
+        //                 .collect(Collectors.groupingBy(WmTaskSupervision::getSupervisionState, Collectors.mapping(WmTaskSupervision::getTaskId, Collectors.toSet())));
+        //
+        //
+        //         Set<Integer> init = collect1.get(UpmsState.TaskSupervisionState.INIT);
+        //         Set<Integer> ckt1 = collect1.get(UpmsState.TaskSupervisionState.CKT1);
+        //         Set<Integer> ckt2 = collect1.get(UpmsState.TaskSupervisionState.CKT2);
+        //         Set<Integer> passed = collect1.get(UpmsState.TaskSupervisionState.PASSED);
+        //         Set<Integer> rejected = collect1.get(UpmsState.TaskSupervisionState.REJECTED);
+        //
+        //         // 负责人
+        //         List<Integer> supTaskIds;
+        //         if (CollUtil.containsAny(roles, List.of(57, 58, 59, 60))) {
+        //
+        //             Set<Integer> temp = CollUtil.unionDistinct(ckt1, rejected);
+        //             supTaskIds = CollUtil.subtractToList(init, temp);
+        //
+        //         }
+        //         // 分管领导
+        //         else if (CollUtil.containsAny(roles, List.of(51, 54, 55, 61))) {
+        //             Set<Integer> temp = CollUtil.unionDistinct(ckt2, rejected);
+        //             supTaskIds = CollUtil.subtractToList(ckt1, temp);
+        //
+        //         }
+        //         // 事业部总经理
+        //         else if (CollUtil.containsAny(roles, List.of(39))) {
+        //             Set<Integer> temp = CollUtil.unionDistinct(passed, rejected);
+        //             supTaskIds = CollUtil.subtractToList(ckt2, temp);
+        //         } else {
+        //             throw new BizException("无监督权限");
+        //         }
+        //
+        //
+        //         if (CollUtil.isEmpty(supTaskIds)) {
+        //             return Collections.emptyList();
+        //         }
+        //
+        //         wmTasks = taskService.list(Wrappers.<WmTask>lambdaQuery().in(WmTask::getId, supTaskIds));
+        //     }
+        //
+        //
+        //     List<Map<String, Object>> maps = taskService.listTaskInfo(wmTasks, pkgId.toString());
+        //
+        //     Map<Integer, List<WmTaskSupervision>> collect = list.stream().collect(Collectors.groupingBy(WmTaskSupervision::getTaskId));
+        //
+        //     Set<String> createdBy = list.stream().map(WmTaskSupervision::getCreateBy).collect(Collectors.toSet());
+        //     Map<String, SysUser> userMap;
+        //     Map<Integer, List<SysUserRole>> userRoleMap;
+        //     Map<Integer, String> roleMap;
+        //     if (CollUtil.isNotEmpty(createdBy)) {
+        //         List<SysUser> users = userService.list(Wrappers.<SysUser>lambdaQuery().in(SysUser::getUsername, createdBy));
+        //         userMap = users.stream().collect(Collectors.toMap(SysUser::getUsername, Function.identity()));
+        //         Set<Integer> userIds = users.stream().mapToInt(SysUser::getUserId).boxed().collect(Collectors.toSet());
+        //         List<SysUserRole> userRoles = userRoleService.list(Wrappers.<SysUserRole>lambdaQuery().in(SysUserRole::getUserId, userIds));
+        //         userRoleMap = userRoles.stream().collect(Collectors.groupingBy(SysUserRole::getUserId));
+        //         Set<Integer> roleId = userRoles.stream().mapToInt(SysUserRole::getRoleId).boxed().collect(Collectors.toSet());
+        //         roleMap = roleService.listByIds(roleId).stream().collect(Collectors.toMap(SysRole::getRoleId, SysRole::getRoleName));
+        //     } else {
+        //         userMap = Collections.emptyMap();
+        //         userRoleMap = Collections.emptyMap();
+        //         roleMap = Collections.emptyMap();
+        //     }
+        //
+        //     maps.forEach(m -> {
+        //
+        //         Integer id = Integer.valueOf(m.get("id").toString());
+        //
+        //         List<WmTaskSupervision> wmTaskSupervisions = collect.get(id);
+        //         m.put("supervision", wmTaskSupervisions);
+        //
+        //         List<String> msgs = new ArrayList<>(4);
+        //         if (CollUtil.isNotEmpty(wmTaskSupervisions)) {
+        //
+        //             msgs = wmTaskSupervisions.stream().sorted(Comparator.comparingInt(WmTaskSupervision::getTaskId).reversed())
+        //                     .map(ts -> {
+        //                         SysUser user = userMap.get(ts.getCreateBy());
+        //                         SysUserRole sysUserRole = userRoleMap.get(user.getUserId()).get(0);
+        //                         String roleName = roleMap.get(sysUserRole.getRoleId());
+        //                         String realName = user.getRealname();
+        //                         String date = DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN).format(ts.getCreateTime());
+        //                         String resultMsg = ts.getSupervisionResult() ? " 通过 " : " 不通过 ";
+        //                         String remarks = StrUtil.isBlank(ts.getRemarks()) ? " " : ts.getRemarks();
+        //
+        //                         return String.format("%s【%s】,审核【%s】,监督意见为【%s】(%s)。", roleName, realName, resultMsg, remarks, date);
+        //
+        //                     }).collect(Collectors.toList());
+        //
+        //
+        //         }
+        //         m.put("supervisionMessages", msgs);
+        //         m.put("review", review);
+        //
+        //     });
+        //
+        //     return maps;
+        //     return null;
+        // }
+    }
+
 //     @Transactional(rollbackFor = Exception.class)
 //     public Boolean checkTaskSupervision(WmSupervisionDto.OnTaskSupervisionCheck resource, HnqzUser user) {
 //         Integer supervisionId = resource.getSupervisionId();

+ 2 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mapper/WmTaskMapper.java

@@ -215,4 +215,6 @@ public interface WmTaskMapper extends DataScopeMapper<WmTask> {
      * @return 任务列表
      */
     List<WmTask> listAvailableTaskForSupervision1(@Param(value = "pkgIds") Collection<Integer> pkgIds, @Param(value = "ignoreIds") Collection<Integer> ignoreIds);
+
+    Page<WmTask> listAvailableTaskForSupervision2(Page<WmTask> page, @Param(value = "pkgIds") Collection<Integer> pkgIds, @Param(value = "ignoreIds") Collection<Integer> ignoreIds);
 }

+ 3 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/WmTaskService.java

@@ -233,7 +233,9 @@ public interface WmTaskService extends IService<WmTask> {
      */
     List<WmTask> listAvailableTaskForSupervision(Integer pkgId, Collection<Integer> ignoreIds);
 
-    List<WmTask> listAvailableTaskForSupervision1(Collection<Integer> pkgIds, Collection<Integer> ignoreIds );
+    List<WmTask> listAvailableTaskForSupervision1(Collection<Integer> pkgIds, Collection<Integer> ignoreIds);
+
+    Page<WmTask> listAvailableTaskForSupervision2(Page<WmTask> page, Collection<Integer> pkgIds, Collection<Integer> ignoreIds);
 
     List<Map<String, Object>> listTaskInfo(List<WmTask> taskList, String pkgId);
 

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

@@ -2928,7 +2928,7 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
     /**
      * 获取可监督的任务
      *
-     * @param pkgIds     积分包ID
+     * @param pkgIds    积分包ID
      * @param ignoreIds 忽略的ID
      * @return 监督任务列表
      */
@@ -2937,6 +2937,11 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
         return this.baseMapper.listAvailableTaskForSupervision1(pkgIds, ignoreIds);
     }
 
+    @Override
+    public Page<WmTask> listAvailableTaskForSupervision2(Page<WmTask> page, Collection<Integer> pkgIds, Collection<Integer> ignoreIds) {
+        return this.baseMapper.listAvailableTaskForSupervision2(page, pkgIds, ignoreIds);
+    }
+
     @Override
     public List<Map<String, Object>> listTaskInfo(List<WmTask> taskList, String pkgId) {
         List<Map<String, Object>> resultList = new ArrayList<>();

+ 20 - 0
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/WmTaskMapper.xml

@@ -1410,4 +1410,24 @@
             </foreach>
         </if>
     </select>
+
+    <select id="listAvailableTaskForSupervision2" resultMap="wmTaskMap">
+        SELECT *
+        FROM wm_task t
+        LEFT JOIN sys_chain_node_check_his c ON c.target_id = t.id
+        WHERE c.node_id = 6
+        AND c.check_result = 1
+        <if test="pkgIds != null and pkgIds.size > 0">
+            AND t.score_package_id IN
+            <foreach collection="pkgIds" item="id" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
+        <if test="ignoreIds != null and ignoreIds.size > 0">
+            AND t.id NOT IN
+            <foreach collection="ignoreIds" item="id" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
+    </select>
 </mapper>