From af75ed87135a0f349886197a8233fb97ad5d92ce Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期六, 22 二月 2025 14:07:37 +0800
Subject: [PATCH] 新增修改,项目名项目码唯一验证

---
 business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java |   40 ++++++++++++++++++++++++++++++++++++++--
 1 files changed, 38 insertions(+), 2 deletions(-)

diff --git a/business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java
index 4213e49..c333f28 100644
--- a/business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java
@@ -116,6 +116,9 @@
         if(ProjectConstant.COMMIT.equals(entity.getUsedStatus()) && ProjectStatusEnum.PENDDING.getType().equals(entity.getProjectStatus())){
             entity.setUsedStatus(ProjectConstant.PASS);
         }
+        if(!checkProjectNameAndIdIsUnique(entity,null)){
+            return Result.error("椤圭洰鍚嶆垨椤圭洰鐮佸凡瀛樺湪");
+        }
         baseMapper.insert(entity);
         addPlan(entity.getId()); //娣诲姞璁″垝琛�
         //娣诲姞鏂囦欢
@@ -133,6 +136,33 @@
         return Result.ok("娣诲姞鎴愬姛").data(entity.getId());
     }
 
+    /**
+     * 鍒ゆ柇椤圭洰鍚嶅拰椤圭洰鐮佹槸鍚﹀敮涓�
+     * @param entity from true 鏉ヨ嚜add() false 鏉ヨ嚜edit()
+     * @return
+     */
+    public boolean  checkProjectNameAndIdIsUnique(ProjectInfo entity,Long updateId){
+        QueryWrapper<ProjectInfo> queryWrapper = new QueryWrapper<ProjectInfo>();
+        if (updateId == null) {
+
+            queryWrapper.eq("project_name", entity.getProjectName());
+
+            if (StringUtils.isNotEmpty(entity.getProjectCode())) {
+                queryWrapper.or();
+                queryWrapper.eq("project_code", entity.getProjectCode());
+            }
+
+            List<ProjectInfo> project = projectInfoMapper.selectList(queryWrapper);
+
+            return project == null || project.isEmpty();
+        }else {
+
+            List<ProjectInfo> project = projectInfoMapper.checkProjectNameAndIdIsUnique(updateId,entity.getProjectName(),entity.getProjectCode());
+
+            return project == null || project.isEmpty();
+        }
+
+    }
 
     public void addPlan(Long projectInfoId) {
         Plan plan = new Plan();
@@ -154,6 +184,7 @@
     @Override
     public Result update(ProjectInfoForm form) {
         ProjectInfo entity = baseMapper.selectById(form.getId());
+
         // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊
         Assert.notNull(entity, "璁板綍涓嶅瓨鍦�");
         ProjectInfoForm.getEntityByForm(form, entity);
@@ -162,6 +193,9 @@
         //濡傛灉鏄偍澶囬」鐩�(鏈紑宸ラ」鐩�)涓嶉渶瑕佸鏍�
         if (ProjectConstant.COMMIT.equals(entity.getUsedStatus()) && ProjectStatusEnum.PENDDING.getType().equals(entity.getProjectStatus())) {
             entity.setUsedStatus(ProjectConstant.PASS);
+        }
+        if(!checkProjectNameAndIdIsUnique(entity,form.getId())){
+            return Result.error("椤圭洰鍚嶆垨椤圭洰鐮佸凡瀛樺湪");
         }
         //鏇存柊椤圭洰淇℃伅
         baseMapper.updateById(entity);
@@ -774,12 +808,14 @@
     @Transactional(rollbackFor = Exception.class)
     public Result editProject(ProjectForm form) {
         if (ObjectUtil.isNotNull(form.getProjectInfoForm())) {
+
             if (ObjectUtil.isNull(form.getProjectInfoForm().getId())) {
                 //鏂板
-                ((ProjectInfoServiceImpl) AopContext.currentProxy()).add(form.getProjectInfoForm());
+                return ((ProjectInfoServiceImpl) AopContext.currentProxy()).add(form.getProjectInfoForm());
+
             } else {
                 //鏇存柊
-                ((ProjectInfoServiceImpl) AopContext.currentProxy()).update(form.getProjectInfoForm());
+                return ((ProjectInfoServiceImpl) AopContext.currentProxy()).update(form.getProjectInfoForm());
             }
         }
         if (ObjectUtil.isNotNull(form.getProjectInvestmentInfoForm())) {

--
Gitblit v1.8.0