소스 검색

add.毕业要求名称支持修改,毕业要求名称培养方案下唯一

caozixuan 8 달 전
부모
커밋
8af2c7eb3b

+ 4 - 0
distributed-print-business/src/main/resources/db/log/脚本-caozx.sql

@@ -0,0 +1,4 @@
+-- 2024-10-08
+ALTER TABLE obe_culture_program_requirement
+    ADD UNIQUE INDEX obe_culture_program_requirement_unique (culture_program_id ASC, name ASC) VISIBLE;
+;

+ 27 - 11
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/service/impl/ObeCultureProgramRequirementServiceImpl.java

@@ -71,22 +71,38 @@ public class ObeCultureProgramRequirementServiceImpl extends ServiceImpl<ObeCult
     @Override
     public boolean saveRequirement(ObeCultureProgramRequirement obeCultureProgramRequirement) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        Long id = obeCultureProgramRequirement.getId();
         // 修改
-        if (obeCultureProgramRequirement.getId() != null) {
+        if (id != null) {
+            ObeCultureProgramRequirement dbRequirement = this.getById(id);
+            if (Objects.isNull(dbRequirement)) {
+                throw ExceptionResultEnum.ERROR.exception("毕业要求不存在");
+            }
+            Long cultureProgramId = dbRequirement.getCultureProgramId();
+            String name = obeCultureProgramRequirement.getName();
+
+            // 校验毕业要求名称在同一培养方案下唯一
+            int sameCount = this.count(new QueryWrapper<ObeCultureProgramRequirement>().lambda()
+                    .eq(ObeCultureProgramRequirement::getCultureProgramId, cultureProgramId)
+                    .eq(ObeCultureProgramRequirement::getName, name).ne(ObeCultureProgramRequirement::getId, id));
+            if (sameCount > 0) {
+                throw ExceptionResultEnum.ERROR.exception("毕业要求名称需要在同一培养方案下唯一");
+            }
+
             obeCultureProgramRequirement.updateInfo(sysUser.getId());
             return this.updateById(obeCultureProgramRequirement);
         }
         // 新增
-//        else {
-//            ObeCultureProgramRequirement obeCultureProgramRequirementParent = this.getById(obeCultureProgramRequirement.getParentId());
-//            obeCultureProgramRequirement.setSortNum(this.getMaxSortNum(obeCultureProgramRequirement.getCultureProgramId(), obeCultureProgramRequirement.getParentId()) + 1);
-//            obeCultureProgramRequirement.setName(concatRequirementName(obeCultureProgramRequirementParent.getSortNum(), obeCultureProgramRequirement.getSortNum()));
-//            obeCultureProgramRequirement.insertInfo(sysUser.getId());
-//            if (this.save(obeCultureProgramRequirement)) {
-//                obeCourseRequirementMatrixService.updateMatrix(obeCultureProgramRequirement.getCultureProgramId(), Arrays.asList(obeCultureProgramRequirement), null);
-//            }
-//            return true;
-//        }
+        //        else {
+        //            ObeCultureProgramRequirement obeCultureProgramRequirementParent = this.getById(obeCultureProgramRequirement.getParentId());
+        //            obeCultureProgramRequirement.setSortNum(this.getMaxSortNum(obeCultureProgramRequirement.getCultureProgramId(), obeCultureProgramRequirement.getParentId()) + 1);
+        //            obeCultureProgramRequirement.setName(concatRequirementName(obeCultureProgramRequirementParent.getSortNum(), obeCultureProgramRequirement.getSortNum()));
+        //            obeCultureProgramRequirement.insertInfo(sysUser.getId());
+        //            if (this.save(obeCultureProgramRequirement)) {
+        //                obeCourseRequirementMatrixService.updateMatrix(obeCultureProgramRequirement.getCultureProgramId(), Arrays.asList(obeCultureProgramRequirement), null);
+        //            }
+        //            return true;
+        //        }
         return true;
     }