瀏覽代碼

feat:supervision v3.3

shc 8 月之前
父節點
當前提交
35ce4e4989

+ 33 - 0
doc/db/36wm_task_sup_adv.sql

@@ -0,0 +1,33 @@
+USE `cnbg_20240511_001`;
+
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for wm_task_sup_adv
+-- ----------------------------
+DROP TABLE IF EXISTS `wm_task_sup_adv`;
+CREATE TABLE `wm_task_sup_adv`
+(
+    `advice_id`                BIGINT UNSIGNED AUTO_INCREMENT     NOT NULL COMMENT '监督建议ID',
+    `task_supervision_id`      BIGINT UNSIGNED                    NOT NULL COMMENT '任务监察ID',
+    `task_supervision_content` VARCHAR(512)                       NULL COMMENT '监察内容',
+    `remarks`                  VARCHAR(512)                       NOT NULL COMMENT '监察说明',
+    `create_by`                VARCHAR(32)                        NOT NULL COMMENT '创建人',
+    `create_time`              DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '创建时间',
+    PRIMARY KEY `pk_id` (`advice_id`) USING BTREE,
+    KEY `idx_tpid` (`task_supervision_id`) USING BTREE
+) ENGINE = InnoDB
+  DEFAULT CHARSET = utf8mb4
+  COLLATE = utf8mb4_general_ci
+  ROW_FORMAT = DYNAMIC COMMENT ='服务监督建议表';
+
+
+-- ----------------------------
+-- Records of wm_task_sup
+-- ----------------------------
+BEGIN;
+COMMIT;
+
+
+SET FOREIGN_KEY_CHECKS = 1;

+ 7 - 2
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/entity/WmTaskSupervision.java

@@ -42,8 +42,11 @@ public final class WmTaskSupervision implements Serializable {
     @TableField(value = "sup_res")
     private Boolean supervisionResult;
 
-    @TableField(value = "sup_state")
-    private UpmsState.TaskSupervisionState supervisionState;
+    /**
+     * 是否可以修改
+     */
+    private Boolean modifiable;
+
 
     /**
      * 备注
@@ -52,8 +55,10 @@ public final class WmTaskSupervision implements Serializable {
 
 
     private String createBy;
+    private String updateBy;
 
     private LocalDateTime createTime;
+    private LocalDateTime updateTime;
 
 
 }

+ 35 - 0
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/entity/WmTaskSupervisionAdvice.java

@@ -0,0 +1,35 @@
+package com.qunzhixinxi.hnqz.admin.api.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 任务监察意见
+ *
+ * @author jimmy
+ * @date 2024-11-14 16:50
+ */
+@Data
+@TableName(value = "wm_task_sup_adv")
+public class WmTaskSupervisionAdvice {
+
+    @TableId(value = "adv_id", type = IdType.AUTO)
+    private Long adviceId;
+
+    private Long taskSupervisionId;
+
+    private String taskSupervisionContent;
+
+    private Boolean adviceResult;
+
+    private String remarks;
+
+    private String createBy;
+
+    private LocalDateTime createTime;
+
+}

+ 17 - 9
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmSupervisionController.java

@@ -72,10 +72,18 @@ public class WmSupervisionController {
 
     }
 
-    @SysLog(value = "服务任务监督")
+    // @SysLog(value = "服务任务监督")
+    // @PostMapping(value = "/supervision/task/create")
+    // public R<Boolean> createTaskSupervision(@Validated @RequestBody WmSupervisionDto.OnTaskSupervision resource) {
+    //     return R.ok(supervisionManager.createTaskSupervision(resource, SecurityUtils.getUser()));
+    // }
+
+    @SysLog(value = "服务任务监督v1")
     @PostMapping(value = "/supervision/task/create")
     public R<Boolean> createTaskSupervision(@Validated @RequestBody WmSupervisionDto.OnTaskSupervision resource) {
-        return R.ok(supervisionManager.createTaskSupervision(resource, SecurityUtils.getUser()));
+
+        return R.ok(supervisionManager.doTaskSupervision(resource, SecurityUtils.getUser()));
+
     }
 
     // @SysLog(value = "服务任务监督的审核")
@@ -97,13 +105,13 @@ public class WmSupervisionController {
         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) {
-
-        return R.ok(supervisionManager.listAvailableTask(pkgId, review));
-
-    }
+    // @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) {
+    //
+    //     return R.ok(supervisionManager.listAvailableTask(pkgId, review));
+    //
+    // }
 
     @GetMapping(value = "/supervision/warn/rule/page")
     public R<Page<Map<String, Object>>> pageWarnRule(@Validated WmSupervisionDto.OnWarnRulePage query) {

+ 358 - 314
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/manager/WmSupervisionManager.java

@@ -2,7 +2,6 @@ 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.text.CharSequenceUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -33,6 +32,7 @@ import com.qunzhixinxi.hnqz.admin.service.WmRoleSupervisionWarnService;
 import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
 import com.qunzhixinxi.hnqz.admin.service.WmScorePackageStatusService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskService;
+import com.qunzhixinxi.hnqz.admin.service.WmTaskSupervisionAdviceService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskSupervisionService;
 import com.qunzhixinxi.hnqz.admin.service.WmWarnUserRelationService;
 import com.qunzhixinxi.hnqz.common.core.exception.BizException;
@@ -45,11 +45,9 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDate;
 import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.Comparator;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -90,6 +88,7 @@ public class WmSupervisionManager {
     private final WmRoleSupervisionWarnService roleSupervisionWarnService;
     private final SysUserRoleService userRoleService;
     private final SysUserDrugService userDrugService;
+    private final WmTaskSupervisionAdviceService taskSupervisionAdviceService;
 
 
     /**
@@ -154,16 +153,14 @@ public class WmSupervisionManager {
             Map<Integer, String> deptIdToDeptNameMap = deptService.listByIds(deptId).stream().collect(Collectors.toMap(SysDept::getDeptId, SysDept::getName));
 
             // 获取监督信息 && 任务监督
-            Set<Integer> pkgIds = records.stream().filter(map ->
-                    Objects.nonNull(map.get("supFlag"))).mapToInt(map -> (Integer) map.get("id")).boxed().collect(Collectors.toSet());
+            Set<Integer> pkgIds = records.stream().filter(map -> Objects.nonNull(map.get("supFlag"))).mapToInt(map -> (Integer) map.get("id")).boxed().collect(Collectors.toSet());
 
             Map<Integer, String> pkgIdToCreatorNameMap;
             Map<Integer, WmPackageSupervision> pkgIdToSupervisionMap;
             Map<Integer, Map<String, String>> taskSupStatMap = new HashMap<>(pkgIds.size());
             if (CollUtil.isNotEmpty(pkgIds)) {
 
-                Map<Integer, List<WmTaskSupervision>> pkgIdToTaskSupMap = taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery().in(WmTaskSupervision::getPackageId, pkgIds)).stream()
-                        .collect(Collectors.groupingBy(WmTaskSupervision::getPackageId));
+                Map<Integer, List<WmTaskSupervision>> pkgIdToTaskSupMap = taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery().in(WmTaskSupervision::getPackageId, pkgIds)).stream().collect(Collectors.groupingBy(WmTaskSupervision::getPackageId));
 
                 Map<String, List<WmTask>> pkgIdToTaskMap = taskService.list(Wrappers.<WmTask>lambdaQuery().in(WmTask::getScorePackageId, pkgIds)).stream().collect(Collectors.groupingBy(WmTask::getScorePackageId));
 
@@ -184,8 +181,7 @@ public class WmSupervisionManager {
 
                 pkgIdToSupervisionMap = supervisions.stream().collect(Collectors.toMap(WmPackageSupervision::getPackageId, Function.identity()));
 
-                Map<Integer, String> pkgIdAndSupCreateorUsernameMap = supervisions.stream()
-                        .collect(Collectors.toMap(WmPackageSupervision::getPackageId, WmPackageSupervision::getCreateBy, (v1, v2) -> v2));
+                Map<Integer, String> pkgIdAndSupCreateorUsernameMap = supervisions.stream().collect(Collectors.toMap(WmPackageSupervision::getPackageId, WmPackageSupervision::getCreateBy, (v1, v2) -> v2));
                 Collection<String> values = pkgIdAndSupCreateorUsernameMap.values();
                 if (CollUtil.isNotEmpty(values)) {
                     Map<String, String> userToNameMap = userService.list(Wrappers.<SysUser>lambdaQuery().in(SysUser::getUsername, values)).stream().collect(Collectors.toMap(SysUser::getUsername, SysUser::getRealname));
@@ -259,10 +255,7 @@ public class WmSupervisionManager {
 
         LocalDate today = LocalDate.now();
 
-        return (today.isAfter(SEASON1_BEGIN_DATE) && today.isBefore(SEASON1_BEGIN_DATE.plusDays(period))) ||
-                (today.isAfter(SEASON2_BEGIN_DATE) && today.isBefore(SEASON2_BEGIN_DATE.plusDays(period))) ||
-                (today.isAfter(SEASON3_BEGIN_DATE) && today.isBefore(SEASON3_BEGIN_DATE.plusDays(period))) ||
-                (today.isAfter(SEASON4_BEGIN_DATE) && today.isBefore(SEASON4_BEGIN_DATE.plusDays(period)));
+        return (today.isAfter(SEASON1_BEGIN_DATE) && today.isBefore(SEASON1_BEGIN_DATE.plusDays(period))) || (today.isAfter(SEASON2_BEGIN_DATE) && today.isBefore(SEASON2_BEGIN_DATE.plusDays(period))) || (today.isAfter(SEASON3_BEGIN_DATE) && today.isBefore(SEASON3_BEGIN_DATE.plusDays(period))) || (today.isAfter(SEASON4_BEGIN_DATE) && today.isBefore(SEASON4_BEGIN_DATE.plusDays(period)));
     }
 
     /**
@@ -369,278 +362,278 @@ public class WmSupervisionManager {
     //         return maps;
     // }
 
-    /**
-     * 获取可以监督的任务
-     *
-     * @param pkgId 执行包ID
-     * @return 任务列表
-     */
-    public List<Map<String, Object>> listAvailableTask(Integer pkgId, Boolean review) {
-
-        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;
-        }
-    }
+    // /**
+    //  * 获取可以监督的任务
+    //  *
+    //  * @param pkgId 执行包ID
+    //  * @return 任务列表
+    //  */
+    // public List<Map<String, Object>> listAvailableTask(Integer pkgId, Boolean review) {
+    //
+    //     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;
+    //     }
+    // }
 
     /**
      * 获取警告分页
@@ -721,20 +714,14 @@ public class WmSupervisionManager {
 
         Set<Integer> roleIds = userRoleService.list(Wrappers.<SysUserRole>lambdaQuery().eq(SysUserRole::getUserId, user.getId())).stream().mapToInt(SysUserRole::getRoleId).boxed().collect(Collectors.toSet());
 
-        Page<WmRoleSupervisionWarn> page = roleSupervisionWarnService.page(new Page<>(query.getCurrent(), query.getSize()),
-                Wrappers.<WmRoleSupervisionWarn>lambdaQuery()
-                        .in(CollUtil.isNotEmpty(roleIds), WmRoleSupervisionWarn::getRoleId, roleIds)
-                        .orderByDesc(WmRoleSupervisionWarn::getCreateTime)
-        );
+        Page<WmRoleSupervisionWarn> page = roleSupervisionWarnService.page(new Page<>(query.getCurrent(), query.getSize()), Wrappers.<WmRoleSupervisionWarn>lambdaQuery().in(CollUtil.isNotEmpty(roleIds), WmRoleSupervisionWarn::getRoleId, roleIds).orderByDesc(WmRoleSupervisionWarn::getCreateTime));
 
         List<WmRoleSupervisionWarn> warns = page.getRecords();
 
         List<Map<String, Object>> resList;
         if (CollUtil.isNotEmpty(warns)) {
             Set<Integer> warnIds = warns.stream().mapToInt(WmRoleSupervisionWarn::getWarnId).boxed().collect(Collectors.toSet());
-            Set<Integer> collect = warnUserRelationService.list(Wrappers.<WmWarnUserRelation>lambdaQuery()
-                    .eq(WmWarnUserRelation::getUserId, user.getId())
-                    .in(WmWarnUserRelation::getWarnId, warnIds)).stream().mapToInt(WmWarnUserRelation::getWarnId).boxed().collect(Collectors.toSet());
+            Set<Integer> collect = warnUserRelationService.list(Wrappers.<WmWarnUserRelation>lambdaQuery().eq(WmWarnUserRelation::getUserId, user.getId()).in(WmWarnUserRelation::getWarnId, warnIds)).stream().mapToInt(WmWarnUserRelation::getWarnId).boxed().collect(Collectors.toSet());
 
             resList = warns.stream().map(warn -> {
                 Map<String, Object> map = BeanUtil.copyProperties(warn, Map.class);
@@ -778,13 +765,10 @@ public class WmSupervisionManager {
 
         List<WmTaskSupervision> list = taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery().eq(WmTaskSupervision::getPackageId, pkg));
 
-        int taskCount = taskService.count(Wrappers.<WmTask>lambdaQuery()
-                .eq(WmTask::getTaskStatus, "3")
-                .eq(WmTask::getScorePackageId, pkg.toString()));
+        int taskCount = taskService.count(Wrappers.<WmTask>lambdaQuery().eq(WmTask::getTaskStatus, "3").eq(WmTask::getScorePackageId, pkg.toString()));
 
 
-        String msg = "积分包【" + scorePackage.getScorePackageName() + "】中共有审核通过的服务" + taskCount + "条,监督员共监督" + list.size() + "条,监督占比为"
-                + String.format("%.2f", (list.size() * 100.0f / taskCount)) + "%";
+        String msg = "积分包【" + scorePackage.getScorePackageName() + "】中共有审核通过的服务" + taskCount + "条,监督员共监督" + list.size() + "条,监督占比为" + String.format("%.2f", (list.size() * 100.0f / taskCount)) + "%";
 
 
         return msg;
@@ -991,10 +975,7 @@ public class WmSupervisionManager {
         }
 
         // 查询所有的服务商
-        Page<SysDept> deptPage = deptService.page(new Page<>(query.getCurrent(), query.getSize()),
-                Wrappers.<SysDept>lambdaQuery().eq(SysDept::getLevel, 4)
-                        .eq(StrUtil.isNotBlank(query.getEntName()), SysDept::getName, query.getEntName())
-                        .in(CollUtil.isNotEmpty(entIds), SysDept::getDeptId, entIds));
+        Page<SysDept> deptPage = deptService.page(new Page<>(query.getCurrent(), query.getSize()), Wrappers.<SysDept>lambdaQuery().eq(SysDept::getLevel, 4).eq(StrUtil.isNotBlank(query.getEntName()), SysDept::getName, query.getEntName()).in(CollUtil.isNotEmpty(entIds), SysDept::getDeptId, entIds));
 
         List<SysDept> depts = deptPage.getRecords();
 
@@ -1010,11 +991,7 @@ public class WmSupervisionManager {
             map.put("deptId", dept.getDeptId());
 
             // 获取当前企业当季度的包
-            List<WmScorePackage> pkgs = packageService.list(Wrappers.<WmScorePackage>lambdaQuery()
-                    .in(CollUtil.isNotEmpty(drugIds), WmScorePackage::getDrugtable, drugIds)
-                    .eq(StrUtil.isNotBlank(query.getPkgName()), WmScorePackage::getScorePackageName, query.getPkgName())
-                    .eq(WmScorePackage::getSendPackageDeptId, dept.getDeptId().toString())
-            );
+            List<WmScorePackage> pkgs = packageService.list(Wrappers.<WmScorePackage>lambdaQuery().in(CollUtil.isNotEmpty(drugIds), WmScorePackage::getDrugtable, drugIds).eq(StrUtil.isNotBlank(query.getPkgName()), WmScorePackage::getScorePackageName, query.getPkgName()).eq(WmScorePackage::getSendPackageDeptId, dept.getDeptId().toString()));
 
             int total = 0;
             int supTotal = 0;
@@ -1027,7 +1004,7 @@ public class WmSupervisionManager {
                 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));
+                List<WmTaskSupervision> supervisions = taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery().in(WmTaskSupervision::getPackageId, pkgIds.stream().mapToInt(Integer::valueOf).boxed().sorted().distinct().collect(Collectors.toList())));
 
                 // 获取监察结果
                 total = CollUtil.isNotEmpty(tasks) ? tasks.size() : 0;
@@ -1063,14 +1040,26 @@ public class WmSupervisionManager {
         // 获取积分包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));
 
-        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);
+
+        // 查询
+        Page<WmTask> taskPage;
+        if (query.getReview()) {
+            HnqzUser user = SecurityUtils.getUser();
+            List<String> taskIds = list.stream().filter(ts -> StrUtil.equals(ts.getCreateBy(), user.getUsername())).map(ts -> ts.getTaskId().toString()).distinct().collect(Collectors.toList());
+            if (CollUtil.isEmpty(taskIds)) {
+                return page;
+            }
+            taskPage = taskService.page(new Page<>(query.getCurrent(), query.getSize()), Wrappers.<WmTask>lambdaQuery().in(WmTask::getId, taskIds));
+
+        } else {
+            List<Integer> supTaskIds = list.stream().mapToInt(WmTaskSupervision::getTaskId).boxed().sorted().distinct().collect(Collectors.toList());
+            taskPage = taskService.listAvailableTaskForSupervision2(new Page<>(query.getCurrent(), query.getSize()), pkgIds, supTaskIds);
+        }
+
 
         List<WmTask> records = taskPage.getRecords();
 
@@ -1084,9 +1073,31 @@ public class WmSupervisionManager {
         for (Map.Entry<String, List<WmTask>> entry : collect.entrySet()) {
 
             List<Map<String, Object>> m = taskService.listTaskInfo(entry.getValue(), entry.getKey());
+
             maps.addAll(m);
         }
 
+        // 封装监察信息
+        Map<Integer, WmTaskSupervision> taskId2TaskSupervisionMap = list.stream().collect(Collectors.toMap(WmTaskSupervision::getTaskId, Function.identity()));
+
+        maps.forEach(m -> {
+            Integer tId = Integer.valueOf(m.get("id").toString());
+            WmTaskSupervision wmTaskSupervision = taskId2TaskSupervisionMap.get(tId);
+
+            if (wmTaskSupervision == null) {
+                return;
+            }
+
+            m.put("modifiable", wmTaskSupervision.getModifiable());
+
+            String supervisionMsg = String.format("【%s】,%s", wmTaskSupervision.getSupervisionResult() ? "通过" : "不通过", wmTaskSupervision.getRemarks());
+
+            m.put("supervisionMessage", supervisionMsg);
+
+            m.put("adviceMessages", Collections.emptyList());
+        });
+
+
         page.setRecords(maps);
         page.setTotal(taskPage.getTotal());
 
@@ -1359,6 +1370,39 @@ public class WmSupervisionManager {
         // }
     }
 
+    // 执行任务监察
+    public Boolean doTaskSupervision(WmSupervisionDto.OnTaskSupervision resource, HnqzUser operator) {
+
+        // 监察任务是否有监察记录
+        WmTaskSupervision supervision = taskSupervisionService.getSupervisionByTaskId(resource.getTaskId());
+
+        // 存在监察记录
+        if (supervision != null) {
+
+            boolean modifiable = false;
+
+            // 如果监督记录创建人不是当前人,就记录监督意见
+            if (!StrUtil.equals(operator.getUsername(), supervision.getCreateBy())) {
+                taskSupervisionAdviceService.createAdvice(supervision.getSupervisionId(), resource, supervision.getRemarks(), operator);
+                modifiable = !resource.getSupervision();
+            }
+
+            taskSupervisionService.updateSupervision(supervision.getSupervisionId(), modifiable, operator);
+
+
+        }
+        // 不存在监察记录
+        else {
+
+            taskSupervisionService.createTaskSupervision(resource, operator);
+
+            // 更新监督结果
+            packageStatusService.updateSupervisionFlag(resource.getPkgId());
+
+        }
+        return true;
+    }
+
 //     @Transactional(rollbackFor = Exception.class)
 //     public Boolean checkTaskSupervision(WmSupervisionDto.OnTaskSupervisionCheck resource, HnqzUser user) {
 //         Integer supervisionId = resource.getSupervisionId();

+ 15 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mapper/WmTaskSupervisionAdviceMapper.java

@@ -0,0 +1,15 @@
+package com.qunzhixinxi.hnqz.admin.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSupervisionAdvice;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 任务监察建议
+ *
+ * @author jimmy
+ * @date 2024-11-14 16:56
+ */
+@Mapper
+public interface WmTaskSupervisionAdviceMapper extends BaseMapper<WmTaskSupervisionAdvice> {
+}

+ 25 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/WmTaskSupervisionAdviceService.java

@@ -0,0 +1,25 @@
+package com.qunzhixinxi.hnqz.admin.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.qunzhixinxi.hnqz.admin.api.dto.WmSupervisionDto;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSupervisionAdvice;
+import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
+
+/**
+ * 任务监察建议
+ *
+ * @author jimmy
+ * @date 2024-11-14 17:24
+ */
+public interface WmTaskSupervisionAdviceService extends IService<WmTaskSupervisionAdvice> {
+
+    /**
+     * 创建监察意见
+     *
+     * @param supervisionId      监察ID
+     * @param supervisionContent 原始内容
+     * @param resource           意见信息
+     * @param operator           操作人
+     */
+    void createAdvice(Long supervisionId, WmSupervisionDto.OnTaskSupervision resource, String supervisionContent, HnqzUser operator);
+}

+ 19 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/WmTaskSupervisionService.java

@@ -20,4 +20,23 @@ public interface WmTaskSupervisionService extends IService<WmTaskSupervision> {
      * @return 操作结果
      */
     Boolean createTaskSupervision(WmSupervisionDto.OnTaskSupervision resource, HnqzUser user);
+
+    /**
+     * 获取任务的监察记录
+     *
+     * @param taskId 任务ID
+     * @return 监察记录
+     */
+    WmTaskSupervision getSupervisionByTaskId(Integer taskId);
+
+
+    /**
+     * 更新监察信息
+     *
+     * @param supervisionId 监察ID
+     * @param modifiable    是否可编辑
+     * @param operator      操作人
+     */
+    void updateSupervision(Long supervisionId, Boolean modifiable, HnqzUser operator);
 }
+

+ 50 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmTaskSupervisionAdviceServiceImpl.java

@@ -0,0 +1,50 @@
+package com.qunzhixinxi.hnqz.admin.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qunzhixinxi.hnqz.admin.api.dto.WmSupervisionDto;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSupervisionAdvice;
+import com.qunzhixinxi.hnqz.admin.mapper.WmTaskSupervisionAdviceMapper;
+import com.qunzhixinxi.hnqz.admin.service.WmTaskSupervisionAdviceService;
+import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.LocalDateTime;
+
+/**
+ * 任务监察建议服务实现
+ *
+ * @author jimmy
+ * @date 2024-11-14 17:24
+ */
+@Service
+@AllArgsConstructor
+public class WmTaskSupervisionAdviceServiceImpl extends ServiceImpl<WmTaskSupervisionAdviceMapper, WmTaskSupervisionAdvice>
+        implements WmTaskSupervisionAdviceService {
+
+    /**
+     * 创建监察意见
+     *
+     * @param resource           意见信息
+     * @param supervisionId      监督ID
+     * @param supervisionContent 监督内容
+     * @param operator           操作人
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void createAdvice(Long supervisionId, WmSupervisionDto.OnTaskSupervision resource, String supervisionContent, HnqzUser operator) {
+
+        WmTaskSupervisionAdvice advice = new WmTaskSupervisionAdvice();
+        advice.setTaskSupervisionId(supervisionId);
+        advice.setAdviceResult(resource.getSupervision());
+        advice.setRemarks(resource.getRemarks());
+        advice.setCreateBy(operator.getUsername());
+        advice.setTaskSupervisionContent(supervisionContent);
+        advice.setCreateTime(LocalDateTime.now());
+
+        this.save(advice);
+
+
+    }
+}

+ 37 - 20
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmTaskSupervisionServiceImpl.java

@@ -1,21 +1,18 @@
 package com.qunzhixinxi.hnqz.admin.service.impl;
 
-import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.qunzhixinxi.hnqz.admin.api.constant.UpmsState;
 import com.qunzhixinxi.hnqz.admin.api.dto.WmSupervisionDto;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSupervision;
 import com.qunzhixinxi.hnqz.admin.mapper.WmTaskSupervisionMapper;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskSupervisionService;
 import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
-import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
-import java.util.List;
 
 /**
  * 任务监督服务实现
@@ -44,27 +41,47 @@ public class WmTaskSupervisionServiceImpl extends ServiceImpl<WmTaskSupervisionM
         taskSupervision.setTaskId(resource.getTaskId());
         taskSupervision.setSupervisionResult(resource.getSupervision());
         taskSupervision.setRemarks(resource.getRemarks());
+        taskSupervision.setModifiable(false);
         taskSupervision.setCreateBy(user.getUsername());
+        taskSupervision.setCreateTime(LocalDateTime.now());
+        taskSupervision.setUpdateBy(user.getUsername());
+        taskSupervision.setUpdateTime(LocalDateTime.now());
+
+        return this.save(taskSupervision);
+    }
+
+    /**
+     * 获取任务的监察记录
+     *
+     * @param taskId 任务ID
+     * @return 监察记录
+     */
+    @Override
+    public WmTaskSupervision getSupervisionByTaskId(Integer taskId) {
+        return this.getOne(Wrappers.<WmTaskSupervision>lambdaQuery().eq(WmTaskSupervision::getTaskId, taskId));
+    }
 
-        List<Integer> roles = SecurityUtils.getRoles();
+    /**
+     * 更新监察信息
+     *
+     * @param supervisionId 监察ID
+     * @param modifiable    是否可以调整
+     * @param operator      操作人
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void updateSupervision(Long supervisionId, Boolean modifiable, HnqzUser operator) {
 
-        UpmsState.TaskSupervisionState state;
-        if (CollUtil.containsAny(roles, List.of(49, 52, 53, 56))) {
-            state = UpmsState.TaskSupervisionState.INIT;
-        } else if (CollUtil.containsAny(roles, List.of(57, 58, 59, 60))) {
-            state = UpmsState.TaskSupervisionState.CKT1;
-        } else if (CollUtil.containsAny(roles, List.of(51, 54, 55, 61))) {
-            state = UpmsState.TaskSupervisionState.CKT2;
-        } else if (CollUtil.containsAny(roles, List.of(39))) {
-            state = UpmsState.TaskSupervisionState.PASSED;
-        } else {
-            state = UpmsState.TaskSupervisionState.REJECTED;
-        }
+        WmTaskSupervision taskSupervision = new WmTaskSupervision();
+        taskSupervision.setSupervisionId(supervisionId);
+        taskSupervision.setModifiable(modifiable);
+        taskSupervision.setUpdateBy(operator.getUsername());
+        taskSupervision.setUpdateTime(LocalDateTime.now());
 
 
-        taskSupervision.setSupervisionState(state);
-        taskSupervision.setCreateTime(LocalDateTime.now());
+        this.updateById(taskSupervision);
 
-        return this.save(taskSupervision);
     }
+
+
 }