Selaa lähdekoodia

feat: supervision

shc 9 kuukautta sitten
vanhempi
commit
9e5b45efbe

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

@@ -121,4 +121,21 @@ public class UpmsState {
         private final String state;
         private final String desc;
     }
+
+
+    @Getter
+    @AllArgsConstructor
+    public enum PackageSupervisionState {
+
+        INIT("INIT", "新建"),
+        CKT1("CKT1", "待审核1"),
+        // CKT2("CKT2", "待审核2"),
+        REJECTED("REJECTED", "拒绝"),
+        PASSED("PASSED", "通过"),
+        ;
+
+        @EnumValue
+        private final String state;
+        private final String desc;
+    }
 }

+ 24 - 1
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/dto/WmSupervisionDto.java

@@ -4,6 +4,7 @@ import lombok.AccessLevel;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import javax.validation.Valid;
 import javax.validation.constraints.Max;
 import javax.validation.constraints.Min;
 import javax.validation.constraints.NotBlank;
@@ -56,9 +57,12 @@ public final class WmSupervisionDto {
         /**
          * 备注
          */
-        @NotBlank(message = "监察说明")
+        // @NotBlank(message = "监察说明")
         private String remarks;
 
+        @NotBlank(message = "监察结果必填")
+        private String resultInfo;
+
     }
 
     @Data
@@ -84,6 +88,25 @@ public final class WmSupervisionDto {
 
     }
 
+    @Data
+    public static class OnPkgSupervisionCheck {
+
+        @NotNull(message = "监察ID必填")
+        private Integer supervisionId;
+
+        /**
+         * 监察意见
+         */
+        @NotNull(message = "监察意见必填")
+        private Boolean supervision;
+
+        /**
+         * 备注
+         */
+        private String remarks;
+
+    }
+
 
     @Data
     public static class OnWarnRulePage {

+ 15 - 1
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/entity/WmPackageSupervision.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;
@@ -33,18 +34,31 @@ public final class WmPackageSupervision implements Serializable {
     private Integer packageId;
 
     /**
-     * 监察结果
+     * 监察监察意见
      */
     @TableField(value = "sup_res")
     private Boolean supervisionResult;
 
+    /**
+     * 监察结果
+     */
+    private String resultInfo;
+
+    /**
+     * 监察状态
+     */
+    @TableField(value = "sup_state")
+    private UpmsState.PackageSupervisionState supervisionState;
+
     /**
      * 备注
      */
     private String remarks;
 
     private String createBy;
+    private String updateBy;
 
+    private LocalDateTime updateTime;
     private LocalDateTime createTime;
 
 }

+ 13 - 2
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmSupervisionController.java

@@ -54,6 +54,12 @@ public class WmSupervisionController {
         return R.ok(supervisionManager.getPkgSupervision(supId));
 
     }
+    @SysLog(value = "执行包监察的审核")
+    @PostMapping(value = "/supervision/pkg/res/check")
+    public R<Boolean> checkPkgSupervision(@Validated @RequestBody WmSupervisionDto.OnPkgSupervisionCheck resource) {
+        return R.ok(supervisionManager.checkPkgSupervision(resource, SecurityUtils.getUser()));
+
+    }
 
 
     @GetMapping(value = "/supervision/pkg/stat")
@@ -69,6 +75,12 @@ public class WmSupervisionController {
         return R.ok(supervisionManager.createTaskSupervision(resource, SecurityUtils.getUser()));
     }
 
+    // 获取当前积分包任务监察结果信息
+    @GetMapping(value = "/supervision/task/result")
+    public R<String> getCurrentPkgTaskSupResult(@RequestParam(value = "pkgId") Integer pkg) {
+        return R.ok(supervisionManager.getCurrentPkgTaskSupResult(pkg, SecurityUtils.getUser()));
+    }
+
     @GetMapping(value = "/supervision/task/avail/list")
     public R<List<Map<String, Object>>> listAvailableTask(@RequestParam(value = "pkgId") Integer pkgId) {
 
@@ -103,12 +115,11 @@ public class WmSupervisionController {
 
     @SysLog("警告信息阅读")
     @PostMapping(value = "/supervision/warn/read")
-    public R<Boolean> readWarn(@Validated @RequestBody WmSupervisionDto.OnWarnCreate resource){
+    public R<Boolean> readWarn(@Validated @RequestBody WmSupervisionDto.OnWarnCreate resource) {
 
         return R.ok(supervisionManager.readWarn(resource, SecurityUtils.getUser()));
 
     }
 
 
-
 }

+ 74 - 2
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/manager/WmSupervisionManager.java

@@ -3,8 +3,10 @@ package com.qunzhixinxi.hnqz.admin.manager;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.text.CharSequenceUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qunzhixinxi.hnqz.admin.api.constant.UpmsState;
 import com.qunzhixinxi.hnqz.admin.api.dto.WmSupervisionDto;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysRole;
@@ -13,6 +15,7 @@ import com.qunzhixinxi.hnqz.admin.api.entity.SysUserRole;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmPackageSupervision;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmRoleSupervisionWarn;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmRoleSupervisionWarnRule;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackageStatus;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTask;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSupervision;
@@ -35,10 +38,10 @@ import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDate;
 import java.time.LocalDateTime;
-import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
@@ -203,7 +206,7 @@ public class WmSupervisionManager {
     public Boolean createPkgSupervision(WmSupervisionDto.OnPkgSupervision resource, HnqzUser user) {
 
         // 校验周期
-        if (!this.checkDate(15)) {
+        if (!this.checkDate(100)) {
             throw new BizException("不在监察周期");
         }
 
@@ -468,4 +471,73 @@ public class WmSupervisionManager {
 
         return warnUserRelationService.read(resource, user);
     }
+
+    public String getCurrentPkgTaskSupResult(Integer pkg, HnqzUser user) {
+
+        WmScorePackage scorePackage = packageService.getById(pkg.toString());
+
+        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()));
+
+
+        String msg = "积分包【" + scorePackage.getScorePackageName() + "】中共有审核通过的服务" + taskCount + "条,监察员共监察" + list.size() + "条,监察占比为"
+                + String.format("%.2f", (list.size() * 100.0f / taskCount)) + "%";
+
+
+        return msg;
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean checkPkgSupervision(WmSupervisionDto.OnPkgSupervisionCheck resource, HnqzUser user) {
+
+        Integer supervisionId = resource.getSupervisionId();
+
+        WmPackageSupervision supervision = packageSupervisionService.getById(supervisionId);
+
+        if (resource.getSupervision()) {
+
+            UpmsState.PackageSupervisionState state;
+            switch (supervision.getSupervisionState()) {
+                case INIT:
+                    state = UpmsState.PackageSupervisionState.CKT1;
+                    break;
+                case CKT1:
+                    state = UpmsState.PackageSupervisionState.PASSED;
+                    break;
+                // case CKT2:
+                //     state = UpmsState.PackageSupervisionState.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.setSupervisionState(state);
+            packageSupervisionService.updateById(supervision);
+
+        } else {
+            supervision.setSupervisionResult(false);
+            supervision.setRemarks(supervision.getRemarks() + ";" + resource.getRemarks());
+            supervision.setUpdateBy(user.getUsername());
+            supervision.setUpdateTime(LocalDateTime.now());
+            supervision.setSupervisionState(UpmsState.PackageSupervisionState.REJECTED);
+            packageSupervisionService.updateById(supervision);
+
+            // 如果审核拒绝 任务监察信息全部放弃 重新审核
+            taskSupervisionService.remove(Wrappers.<WmTaskSupervision>lambdaQuery().eq(WmTaskSupervision::getPackageId, supervision.getPackageId()).eq(WmTaskSupervision::getCreateBy, supervision.getCreateBy()));
+
+        }
+
+
+        return true;
+    }
 }

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

@@ -2,6 +2,7 @@ package com.qunzhixinxi.hnqz.admin.service.impl;
 
 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.WmPackageSupervision;
 import com.qunzhixinxi.hnqz.admin.mapper.WmPackageSupervisionMapper;
@@ -42,7 +43,11 @@ public class WmPackageSupervisionServiceImpl extends ServiceImpl<WmPackageSuperv
         supervision.setSupervisionResult(resource.getSupervision());
         supervision.setRemarks(resource.getRemarks());
         supervision.setCreateBy(user.getUsername());
+        supervision.setResultInfo(resource.getResultInfo());
+        supervision.setSupervisionState(UpmsState.PackageSupervisionState.INIT);
         supervision.setCreateTime(LocalDateTime.now());
+        supervision.setUpdateTime(LocalDateTime.now());
+        supervision.setUpdateBy(user.getUsername());
 
         return this.save(supervision);
     }