فهرست منبع

feat: 编辑计划

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

+ 37 - 0
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/dto/SysImplementPlanDTO.java

@@ -74,6 +74,43 @@ public final class SysImplementPlanDTO {
 
     }
 
+    @Data
+    public static class OnUpdate {
+
+        @NotNull(message = "被修改计划ID必填")
+        private Integer planId;
+
+        /**
+         * 计划名称
+         */
+        private String planName;
+
+        /**
+         * 计划值
+         */
+        private Long planScore;
+
+        /**
+         * 产品ID
+         */
+        private Integer skuId;
+
+        /**
+         * 受托人ID
+         */
+        private Long consigneeId;
+
+        /**
+         * 签发时间
+         */
+        private LocalDate planIssue;
+
+        /**
+         * 截止日期
+         */
+        private LocalDate planExpiry;
+
+    }
 
     @Data
     public static class OnCreate {

+ 8 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/SysImplementPlanController.java

@@ -54,6 +54,13 @@ public class SysImplementPlanController {
     }
 
 
+    @SysLog("更新执行计划")
+    @PostMapping("/plan/update")
+    public R<Boolean> updatePlan(@Validated @RequestBody SysImplementPlanDTO.OnUpdate resource) {
+        return R.ok(implementPlanManager.updatePlan(resource, SecurityUtils.getUser()));
+    }
+
+
     @ResponseExcel(name = "planInfoExport", sheets = {@Sheet(sheetName = "目标(计划)信息")})
     @GetMapping(value = "/plan/info/export")
     public List<PlanInfoExportModel> exportPlan(@Validated SysImplementPlanDTO.OnPage query) {
@@ -177,7 +184,7 @@ public class SysImplementPlanController {
 
     @GetMapping(value = "/plan/details/export")
     @ResponseExcel(name = "exportPlanDetails", sheets = {@Sheet(sheetName = "计划详情")})
-    public List<PlanDetailsExportModel> exportPlanDetails(@Validated SysImplementPlanDetailsDTO.OnExport query){
+    public List<PlanDetailsExportModel> exportPlanDetails(@Validated SysImplementPlanDetailsDTO.OnExport query) {
 
         return implementPlanManager.exportPlanDetails(query, SecurityUtils.getUser());
     }

+ 26 - 4
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/manager/SysImplementPlanManager.java

@@ -56,6 +56,7 @@ 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;
@@ -105,7 +106,7 @@ public class SysImplementPlanManager {
     @Transactional(rollbackFor = Exception.class)
     public Boolean createPlan(SysImplementPlanDTO.OnCreate resource, HnqzUser operator) {
 
-        boolean dupName = implementPlanService.dupName(resource.getPlanName(), operator.getDeptId());
+        boolean dupName = implementPlanService.dupName(resource.getPlanName(), operator.getDeptId(), Collections.emptyList());
 
         if (dupName) {
             throw new BizException(String.format("计划名称【%s】已存在,请更正", resource.getPlanName()));
@@ -117,13 +118,13 @@ public class SysImplementPlanManager {
         UpmsType.ImplementPlanType planType = resource.getPlanType();
 
         UpmsState.ImplementPlanState state;
-        if (UpmsType.ImplementPlanType.QRT.equals(planType) && (resource.getParentId() == 0)){
+        if (UpmsType.ImplementPlanType.QRT.equals(planType) && (resource.getParentId() == 0)) {
             state = UpmsState.ImplementPlanState.PASSED;
             plan.setCheckResult(true);
             plan.setCheckMessage("通过(审批流程,季度计划自动通过,不需要上级审批)");
             plan.setCheckTime(now);
             plan.setChecker(username);
-        } else{
+        } else {
             state = UpmsState.ImplementPlanState.INIT;
         }
 
@@ -975,7 +976,7 @@ public class SysImplementPlanManager {
             if (CollUtil.isNotEmpty(onBatchCreates) && onBatchCreates.size() > 1) {
                 errorMsg.append("表单内存在重名服务计划名称;");
             } else {
-                boolean dupName = implementPlanService.dupName(planName, deptId);
+                boolean dupName = implementPlanService.dupName(planName, deptId, Collections.emptyList());
                 if (dupName) {
                     errorMsg.append("服务计划名称已存在;");
                 }
@@ -1359,4 +1360,25 @@ public class SysImplementPlanManager {
 
         return true;
     }
+
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean updatePlan(SysImplementPlanDTO.OnUpdate resource, HnqzUser user) {
+
+        SysImplementPlan plan = implementPlanService.getById(resource.getPlanId());
+
+        if (UpmsState.ImplementPlanState.PASSED.equals(plan.getPlanState())) {
+            throw new BizException("当前执行计划已经审核通过了,不能修改");
+        }
+
+        boolean dump = implementPlanService.dupName(resource.getPlanName(), user.getDeptId(), Collections.singletonList(resource.getPlanId()));
+
+        if (dump) {
+            throw new BizException(String.format("计划名称【%s】已存在,请更正", resource.getPlanName()));
+        }
+
+        SysImplementPlan updated = BeanUtil.copyProperties(resource, SysImplementPlan.class);
+        updated.setUpdateBy(user.getUsername());
+        updated.setUpdateTime(LocalDateTime.now());
+        return implementPlanService.updatePlan(updated);
+    }
 }

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

@@ -53,10 +53,11 @@ public interface SysImplementPlanService extends IService<SysImplementPlan> {
      * 校验是否重名
      *
      * @param planName    计划名称
+     * @param ignoreIds   忽略的ID
      * @param consignorId 企业ID
      * @return 校验结果
      */
-    boolean dupName(String planName, Integer consignorId);
+    boolean dupName(String planName, Integer consignorId, Collection<Integer> ignoreIds);
 
 
     /**
@@ -69,5 +70,4 @@ public interface SysImplementPlanService extends IService<SysImplementPlan> {
     SysImplementPlan getPlanByName(String planName, Integer consignorId);
 
 
-
 }

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

@@ -1,5 +1,6 @@
 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;
@@ -88,12 +89,16 @@ public class SysImplementPlanServiceImpl extends ServiceImpl<SysImplementPlanMap
      * 校验是否重名
      *
      * @param planName    计划名称
+     * @param ignoreIds   忽略的ID
      * @param consignorId 企业ID
      * @return 校验结果
      */
     @Override
-    public boolean dupName(String planName, Integer consignorId) {
-        return this.count(Wrappers.<SysImplementPlan>lambdaQuery().eq(SysImplementPlan::getPlanName, planName.trim()).eq(SysImplementPlan::getConsignorId, consignorId)) != 0;
+    public boolean dupName(String planName, Integer consignorId, Collection<Integer> ignoreIds) {
+        return this.count(Wrappers.<SysImplementPlan>lambdaQuery()
+                .eq(SysImplementPlan::getPlanName, planName.trim())
+                .notIn(CollUtil.isNotEmpty(ignoreIds), SysImplementPlan::getPlanId, ignoreIds)
+                .eq(SysImplementPlan::getConsignorId, consignorId)) != 0;
     }
 
     /**