Selaa lähdekoodia

Merge remote-tracking branch 'origin/dev_v3.3.4' into dev_v3.3.4

wangliang 1 vuosi sitten
vanhempi
commit
47752b3670

+ 19 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ObeCourseTargetServiceImpl.java

@@ -86,8 +86,16 @@ public class ObeCourseTargetServiceImpl extends ServiceImpl<ObeCourseTargetMappe
             throw ExceptionResultEnum.ERROR.exception("课程大纲不存在");
         }
 
-        // 指标点
+        // 指标点检查
         Long obeCultureProgramRequirementId = obeCourseTargetParam.getObeCultureProgramRequirementId();
+        ObeCourseTarget checkRequirement = this.getOne(new QueryWrapper<ObeCourseTarget>().lambda().eq(ObeCourseTarget::getObeCultureProgramRequirementId, obeCultureProgramRequirementId)
+                .eq(ObeCourseTarget::getObeCourseOutlineId, obeCourseOutlineId).last(SystemConstant.LIMIT1));
+        if (Objects.nonNull(checkRequirement)) {
+            if (!checkRequirement.getId().equals(id)) {
+                throw ExceptionResultEnum.ERROR.exception("指标点已经被其他课程目标选用");
+            }
+        }
+
         List<Long> dimensionIdList = obeCourseTargetParam.getDimensionIdList();
         String targetName = obeCourseTargetParam.getTargetName();
         String degreeRequirement = obeCourseTargetParam.getDegreeRequirement();
@@ -178,10 +186,20 @@ public class ObeCourseTargetServiceImpl extends ServiceImpl<ObeCourseTargetMappe
     public void deleteCourseTarget(Long id) {
         ObeCourseTarget obeCourseTarget = this.getById(id);
         if (Objects.nonNull(obeCourseTarget)) {
+            Long requirementId = obeCourseTarget.getObeCultureProgramRequirementId();
+
             obeCourseOutlineService.update(new UpdateWrapper<ObeCourseOutline>().lambda()
                     .eq(ObeCourseOutline::getId, obeCourseTarget.getObeCourseOutlineId()).set(ObeCourseOutline::getDimensionSign, SystemConstant.getDbUuid()));
             obeCourseOutlineService.clearCourseSetting(obeCourseTarget.getObeCourseOutlineId(), CourseSettingTypeEnum.COURSE_TARGET);
             this.removeById(id);
+
+            // 判断是否要删除指标点和知识点关系
+            if (this.count(new QueryWrapper<ObeCourseTarget>().lambda().eq(ObeCourseTarget::getObeCourseOutlineId, obeCourseTarget.getObeCourseOutlineId())
+                    .eq(ObeCourseTarget::getObeCultureProgramRequirementId, requirementId)) == 0) {
+                obeCourseRequirementDimensionService.remove(new QueryWrapper<ObeCourseRequirementDimension>().lambda()
+                        .eq(ObeCourseRequirementDimension::getObeCourseOutlineId, obeCourseTarget.getObeCourseOutlineId())
+                        .eq(ObeCourseRequirementDimension::getObeCultureProgramRequirementId, requirementId));
+            }
         }
     }