浏览代码

feat: supervision 1

shc 8 月之前
父节点
当前提交
4497f2ae9a

+ 16 - 0
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/constant/UpmsState.java

@@ -138,4 +138,20 @@ public class UpmsState {
         private final String state;
         private final String desc;
     }
+
+    @Getter
+    @AllArgsConstructor
+    public enum TaskSupervisionState {
+
+        INIT("INIT", "待部门负责人审核"),
+        CKT1("CKT1", "待分管领导审核"),
+        CKT2("CKT2", "待人用疫苗事业部总经理审核"),
+        REJECTED("REJECTED", "拒绝"),
+        PASSED("PASSED", "通过"),
+        ;
+
+        @EnumValue
+        private final String state;
+        private final String desc;
+    }
 }

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

@@ -107,6 +107,25 @@ public final class WmSupervisionDto {
 
     }
 
+    @Data
+    public static class OnTaskSupervisionCheck {
+
+        @NotNull(message = "监察ID必填")
+        private Integer supervisionId;
+
+        /**
+         * 监察意见
+         */
+        @NotNull(message = "监察意见必填")
+        private Boolean supervision;
+
+        /**
+         * 备注
+         */
+        private String remarks;
+
+    }
+
 
     @Data
     public static class OnWarnRulePage {

+ 5 - 0
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/entity/WmTaskSupervision.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.qunzhixinxi.hnqz.admin.api.constant.UpmsState;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -41,11 +42,15 @@ public final class WmTaskSupervision implements Serializable {
     @TableField(value = "sup_res")
     private Boolean supervisionResult;
 
+    @TableField(value = "sup_state")
+    private UpmsState.TaskSupervisionState supervisionState;
+
     /**
      * 备注
      */
     private String remarks;
 
+
     private String createBy;
 
     private LocalDateTime createTime;

+ 9 - 1
hnqz-upms/hnqz-upms-biz/pom.xml

@@ -259,7 +259,15 @@
 					<skip>false</skip>
 				</configuration>
 			</plugin>
-		</plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <source>9</source>
+          <target>9</target>
+        </configuration>
+      </plugin>
+    </plugins>
 	</build>
 
 </project>

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

@@ -75,6 +75,13 @@ public class WmSupervisionController {
         return R.ok(supervisionManager.createTaskSupervision(resource, SecurityUtils.getUser()));
     }
 
+    // @SysLog(value = "服务任务监察的审核")
+    // @PostMapping(value = "/supervision/task/res/check")
+    // public R<Boolean> checkTaskSupervision(@Validated @RequestBody WmSupervisionDto.OnTaskSupervisionCheck resource) {
+    //     return R.ok(supervisionManager.checkTaskSupervision(resource, SecurityUtils.getUser()));
+    //
+    // }
+
     // 获取当前积分包任务监察结果信息
     @GetMapping(value = "/supervision/task/result")
     public R<String> getCurrentPkgTaskSupResult(@RequestParam(value = "pkgId") Integer pkg) {

+ 125 - 6
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/manager/WmSupervisionManager.java

@@ -168,7 +168,7 @@ public class WmSupervisionManager {
                     Map<String, String> stat = new HashMap<>(2);
 
                     List<WmTaskSupervision> wmTaskSupervisions = pkgIdToTaskSupMap.get(pid);
-                    stat.put("supTotal", CollUtil.isNotEmpty(wmTaskSupervisions) ? String.valueOf(wmTaskSupervisions.size()) : "0");
+                    stat.put("supTotal", CollUtil.isNotEmpty(wmTaskSupervisions) ? String.valueOf(wmTaskSupervisions.stream().map(WmTaskSupervision::getTaskId).collect(Collectors.toSet()).size()) : "0");
 
                     List<WmTask> total = pkgIdToTaskMap.get(pid.toString());
                     stat.put("total", CollUtil.isNotEmpty(total) ? String.valueOf(total.size()) : "0");
@@ -344,6 +344,21 @@ public class WmSupervisionManager {
         return taskSupervisionService.createTaskSupervision(resource, user);
     }
 
+    // /**
+    //  * 获取可以监察的任务
+    //  *
+    //  * @param pkgId 执行包ID
+    //  * @return 任务列表
+    //  */
+    // public List<Map<String, Object>> listAvailableTask(Integer pkgId) {
+    //
+    //         // 获取当前积分包已经监察过的任务ID
+    //         Set<Integer> supTaskIds = taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery().eq(WmTaskSupervision::getPackageId, pkgId)).stream().mapToInt(WmTaskSupervision::getTaskId).boxed().collect(Collectors.toSet());
+    //         List<WmTask> wmTasks = taskService.listAvailableTaskForSupervision(pkgId, supTaskIds);
+    //         List<Map<String, Object>> maps = taskService.listTaskInfo(wmTasks, pkgId.toString());
+    //         return maps;
+    // }
+
     /**
      * 获取可以监察的任务
      *
@@ -352,14 +367,71 @@ public class WmSupervisionManager {
      */
     public List<Map<String, Object>> listAvailableTask(Integer pkgId) {
 
-        // 获取当前积分包已经监察过的任务ID
-        Set<Integer> supTaskIds = taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery().eq(WmTaskSupervision::getPackageId, pkgId)).stream().mapToInt(WmTaskSupervision::getTaskId).boxed().collect(Collectors.toSet());
 
-        List<WmTask> wmTasks = taskService.listAvailableTaskForSupervision(pkgId, supTaskIds);
+        List<Integer> roles = SecurityUtils.getRoles();
+
+
+        // 监察员
+        if (CollUtil.containsAny(roles, List.of(49, 52, 53, 56))) {
+
+            // 获取当前积分包已经监察过的任务ID
+            Set<Integer> supTaskIds = taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery().eq(WmTaskSupervision::getPackageId, pkgId)).stream().mapToInt(WmTaskSupervision::getTaskId).boxed().collect(Collectors.toSet());
+
+            List<WmTask> wmTasks = taskService.listAvailableTaskForSupervision(pkgId, supTaskIds);
+
+            List<Map<String, Object>> maps = taskService.listTaskInfo(wmTasks, pkgId.toString());
+
+            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));
 
-        List<Map<String, Object>> maps = taskService.listTaskInfo(wmTasks, pkgId.toString());
+            if (CollUtil.isEmpty(list)) {
+                return Collections.emptyList();
+            }
+
+            Set<Integer> supTaskIds = list.stream().mapToInt(WmTaskSupervision::getTaskId).boxed().collect(Collectors.toSet());
+            List<WmTask> tasks = taskService.list(Wrappers.<WmTask>lambdaQuery().in(WmTask::getId, supTaskIds));
+            List<Map<String, Object>> maps = taskService.listTaskInfo(tasks, pkgId.toString());
+
+            Map<Integer, List<WmTaskSupervision>> collect = list.stream().collect(Collectors.groupingBy(WmTaskSupervision::getTaskId));
+
+            maps.forEach(m -> {
+                Integer id = Integer.valueOf(m.get("id").toString());
+                WmTaskSupervision wmTaskSupervision = collect.get(id).get(0);
+
+                m.put("supervision", wmTaskSupervision);
+
+            });
 
-        return maps;
+            return maps;
+        } else {
+
+            // 获取当前积分包已经监察过的任务ID
+            List<WmTaskSupervision> list = taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery().eq(WmTaskSupervision::getPackageId, pkgId).orderByDesc(WmTaskSupervision::getCreateTime));
+
+            if (CollUtil.isEmpty(list)) {
+                return Collections.emptyList();
+            }
+
+            Set<Integer> supTaskIds = list.stream().mapToInt(WmTaskSupervision::getTaskId).boxed().collect(Collectors.toSet());
+            List<WmTask> tasks = taskService.list(Wrappers.<WmTask>lambdaQuery().in(WmTask::getId, supTaskIds));
+            List<Map<String, Object>> maps = taskService.listTaskInfo(tasks, pkgId.toString());
+
+            Map<Integer, List<WmTaskSupervision>> collect = list.stream().collect(Collectors.groupingBy(WmTaskSupervision::getTaskId));
+
+            maps.forEach(m -> {
+                Integer id = Integer.valueOf(m.get("id").toString());
+                WmTaskSupervision wmTaskSupervision = collect.get(id).get(0);
+
+                m.put("supervision", wmTaskSupervision);
+
+            });
+
+            return maps;
+        }
     }
 
     /**
@@ -560,4 +632,51 @@ public class WmSupervisionManager {
 
         return true;
     }
+
+//     @Transactional(rollbackFor = Exception.class)
+//     public Boolean checkTaskSupervision(WmSupervisionDto.OnTaskSupervisionCheck resource, HnqzUser user) {
+//         Integer supervisionId = resource.getSupervisionId();
+//
+//         WmTaskSupervision supervision = taskSupervisionService.getById(supervisionId);
+//
+//         if (resource.getSupervision()) {
+//
+//             UpmsState.TaskSupervisionState state;
+//             switch (supervision.getState()) {
+//                 case INIT:
+//                     state = UpmsState.TaskSupervisionState.CKT1;
+//                     break;
+//                 case CKT1:
+//                     state = UpmsState.TaskSupervisionState.CKT2;
+//                     break;
+//                 case CKT2:
+//                     state = UpmsState.TaskSupervisionState.PASSED;
+//                     break;
+//                 default:
+//                     throw new BizException("监察状态不正确,不能操作");
+//
+//             }
+//
+//             String remarks = resource.getRemarks();
+//             if (StrUtil.isNotBlank(remarks)) {
+//                 supervision.setRemarks(resource.getRemarks() + ";" + supervision.getRemarks());
+//             }
+//             supervision.setUpdateBy(user.getUsername());
+//             supervision.setUpdateTime(LocalDateTime.now());
+//             supervision.setState(state);
+//             taskSupervisionService.updateById(supervision);
+//
+//         } else {
+//             supervision.setSupervisionResult(false);
+//             supervision.setRemarks(supervision.getRemarks() + ";" + resource.getRemarks());
+//             supervision.setUpdateBy(user.getUsername());
+//             supervision.setUpdateTime(LocalDateTime.now());
+//             supervision.setState(UpmsState.TaskSupervisionState.REJECTED);
+//             taskSupervisionService.updateById(supervision);
+//
+//         }
+//
+//
+//         return true;
+//     }
 }

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

@@ -1,17 +1,21 @@
 package com.qunzhixinxi.hnqz.admin.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
 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;
 
 /**
  * 任务监察服务实现
@@ -41,6 +45,24 @@ public class WmTaskSupervisionServiceImpl extends ServiceImpl<WmTaskSupervisionM
         taskSupervision.setSupervisionResult(resource.getSupervision());
         taskSupervision.setRemarks(resource.getRemarks());
         taskSupervision.setCreateBy(user.getUsername());
+
+        List<Integer> roles = SecurityUtils.getRoles();
+
+        UpmsState.TaskSupervisionState state;
+        if (CollUtil.containsAny(roles, List.of(49, 52, 53, 56))) {
+            state = UpmsState.TaskSupervisionState.INIT;
+        } else if (CollUtil.containsAny(roles, List.of(51, 54, 55, 61))) {
+            state = UpmsState.TaskSupervisionState.CKT1;
+        } else if (CollUtil.containsAny(roles, List.of(57, 58, 59, 60))) {
+            state = UpmsState.TaskSupervisionState.CKT2;
+        } else if (CollUtil.containsAny(roles, List.of(39))) {
+            state = UpmsState.TaskSupervisionState.PASSED;
+        } else {
+            state = UpmsState.TaskSupervisionState.REJECTED;
+        }
+
+
+        taskSupervision.setSupervisionState(state);
         taskSupervision.setCreateTime(LocalDateTime.now());
 
         return this.save(taskSupervision);