Explorar el Código

任务管理、项目管理--修改名称重复的验证逻辑

buzhanyi hace 4 meses
padre
commit
4f49ecadfb

+ 13 - 0
application-webadmin/src/main/java/com/ankaibei/workFlow/webadmin/ankaibei/mapper/ProjectInfoMapper.java

@@ -88,4 +88,17 @@ public interface ProjectInfoMapper extends JpaRepository<ProjectInfoEntity, Inte
      */
     @Query
     List<ProjectInfoEntity> findAllByFlowTaskStatusIsAndIsDeleteEquals(Integer flowTaskStatus, String isDelete);
+
+    /**
+     * 查询项目名称数量
+     */
+    @Query
+    int countByProjectNameEqualsAndIsDeleteEquals(String projectName, String isDelete);
+
+    /**
+     * 查询项目名称数量(除本身)
+     */
+    @Query
+    int countByProjectNameEqualsAndIsDeleteEqualsAndProjectIdNot(String projectName, String isDelete, Integer projectId);
+
 }

+ 8 - 0
application-webadmin/src/main/java/com/ankaibei/workFlow/webadmin/ankaibei/mapper/TaskInfoMapper.java

@@ -47,6 +47,14 @@ public interface TaskInfoMapper extends JpaRepository<TaskInfoEntity, Integer>,
     @Query
     int countByTargetTaskEqualsAndIsDeleteEquals(String targetTask, String isDelete);
 
+
+    /**
+     * 查询任务名称数量(除本身)
+     */
+    @Query
+    int countByTargetTaskEqualsAndIsDeleteEqualsAndTaskIdNot(String targetTask, String isDelete, Integer taskId);
+
+
     /**
      * 完成任务
      *

+ 6 - 5
application-webadmin/src/main/java/com/ankaibei/workFlow/webadmin/ankaibei/service/impl/ProjectInfoServiceImpl.java

@@ -154,11 +154,9 @@ public class ProjectInfoServiceImpl implements ProjectInfoService {
 
     @Override
     public ResMsg addProject(ProjectInfoEntity projectInfoEntity) {
-        List<ProjectInfoEntity> all = projectInfoMapper.findAll();
-        for (ProjectInfoEntity pro : all) {
-            if (projectInfoEntity.getProjectName().equals(pro.getProjectName())) {
-                return new ResMsg(CodeEnum.TNE_PROJECT_NAME_ALREADY_EXISTS);
-            }
+        //将修改的信息赋值给原数据对象
+        if (projectInfoMapper.countByProjectNameEqualsAndIsDeleteEquals(projectInfoEntity.getProjectName(), "1") > 0) {
+            return new ResMsg(CodeEnum.TNE_PROJECT_NAME_ALREADY_EXISTS);
         }
         //不使用的字段不用管
         //projectInfoEntity.setProjectStage(ProjectStageEnum.BUSINESS_RESEARCHB.getCode());
@@ -225,6 +223,9 @@ public class ProjectInfoServiceImpl implements ProjectInfoService {
             flowStatus = FlowTaskStatus.DRAFT.toString();
         }
         //将修改的信息赋值给原数据对象
+        if (projectInfoMapper.countByProjectNameEqualsAndIsDeleteEqualsAndProjectIdNot(entity.getProjectName(), "1", entity.getProjectId()) > 0) {
+            return new ResMsg(CodeEnum.TNE_PROJECT_NAME_ALREADY_EXISTS);
+        }
         byId.setProjectName(entity.getProjectName());//项目名称
         byId.setProjectPeriod(entity.getProjectPeriod());//项目周期
         byId.setProjectType(entity.getProjectType());//项目类型

+ 1 - 1
application-webadmin/src/main/java/com/ankaibei/workFlow/webadmin/ankaibei/service/impl/TaskInfoServiceImpl.java

@@ -188,7 +188,7 @@ public class TaskInfoServiceImpl implements TaskInfoService {
      */
     @Override
     public ResMsg editTask(TaskInfoEntity taskInfoEntity, List<Long> taskParticipant) {
-        if (taskInfoMapper.countByTargetTaskEqualsAndIsDeleteEquals(taskInfoEntity.getTargetTask(), "1") > 0) {
+        if (taskInfoMapper.countByTargetTaskEqualsAndIsDeleteEqualsAndTaskIdNot(taskInfoEntity.getTargetTask(), "1", (taskInfoEntity.getTaskId())) > 0) {
             return new ResMsg(CodeEnum.TASK_ALREADY_EXISTS);
         }
         //判断开始时间和结束时间是否为空