Browse Source

3.3.4 update

xiaofei 1 năm trước cách đây
mục cha
commit
9d35330aae
16 tập tin đã thay đổi với 140 bổ sung73 xóa
  1. 0 16
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/obe/CourseOutlineSubRequirementDto.java
  2. 1 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/obe/CourseRequirementMatrixDto.java
  3. 9 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/obe/MatrixRequirementDto.java
  4. 1 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/obe/MatrixSubRequirementDto.java
  5. 3 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ConditionMapper.java
  6. 2 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ObeCourseRequirementMatrixMapper.java
  7. 0 6
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ObeCultureProgramRequirementMapper.java
  8. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ConditionService.java
  9. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ObeCultureProgramRequirementService.java
  10. 3 6
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ConditionServiceImpl.java
  11. 2 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ObeCourseRequirementMatrixServiceImpl.java
  12. 43 6
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ObeCultureProgramRequirementServiceImpl.java
  13. 3 0
      distributed-print-business/src/main/resources/db/log/xiaofei.sql
  14. 67 19
      distributed-print-business/src/main/resources/mapper/ConditionMapper.xml
  15. 3 0
      distributed-print-business/src/main/resources/mapper/ObeCourseRequirementMatrixMapper.xml
  16. 0 15
      distributed-print-business/src/main/resources/mapper/ObeCultureProgramRequirementMapper.xml

+ 0 - 16
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/obe/CourseOutlineSubRequirementDto.java

@@ -1,16 +0,0 @@
-package com.qmth.distributed.print.business.bean.dto.obe;
-
-import com.qmth.distributed.print.business.entity.ObeCultureProgramRequirement;
-
-public class CourseOutlineSubRequirementDto extends ObeCultureProgramRequirement {
-
-    private Double scale;
-
-    public Double getScale() {
-        return scale;
-    }
-
-    public void setScale(Double scale) {
-        this.scale = scale;
-    }
-}

+ 1 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/obe/CourseRequirementMatrixDto.java

@@ -79,4 +79,5 @@ public class CourseRequirementMatrixDto extends ObeCourseRequirementMatrix {
     public void setRequirementContent(String requirementContent) {
         this.requirementContent = requirementContent;
     }
+
 }

+ 9 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/obe/MatrixRequirementDto.java

@@ -8,6 +8,7 @@ public class MatrixRequirementDto extends BasicProfessional {
 
     private String name;
     private String content;
+    private Double expectValue;
     private List<MatrixSubRequirementDto> subRequirements;
 
     @Override
@@ -35,4 +36,12 @@ public class MatrixRequirementDto extends BasicProfessional {
     public void setSubRequirements(List<MatrixSubRequirementDto> subRequirements) {
         this.subRequirements = subRequirements;
     }
+
+    public Double getExpectValue() {
+        return expectValue;
+    }
+
+    public void setExpectValue(Double expectValue) {
+        this.expectValue = expectValue;
+    }
 }

+ 1 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/obe/MatrixSubRequirementDto.java

@@ -47,4 +47,5 @@ public class MatrixSubRequirementDto extends BasicProfessional {
     public void setContent(String content) {
         this.content = content;
     }
+
 }

+ 3 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ConditionMapper.java

@@ -3,6 +3,7 @@ package com.qmth.distributed.print.business.mapper;
 import com.qmth.distributed.print.business.bean.result.PrintPlanBrief;
 import com.qmth.distributed.print.business.entity.BasicProfessional;
 import com.qmth.distributed.print.business.entity.ObeCultureProgram;
+import com.qmth.distributed.print.business.entity.ObeCultureProgramCourse;
 import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.entity.BasicClazz;
 import com.qmth.teachcloud.common.entity.BasicCourse;
@@ -68,4 +69,6 @@ public interface ConditionMapper {
     List<BasicProfessional> listProfessional(@Param("schoolId") Long schoolId, @Param("dpr") DataPermissionRule dpr);
 
     List<ObeCultureProgram> listCultureProgram(@Param("schoolId") Long schoolId, @Param("professionalId") Long professionalId, @Param("dpr") DataPermissionRule dpr);
+
+    List<BasicCourse> listCultureProgramCourse(@Param("schoolId") Long schoolId, @Param("professionalId") Long professionalId, Long cultureProgramId, @Param("dpr") DataPermissionRule dpr);
 }

+ 2 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ObeCourseRequirementMatrixMapper.java

@@ -3,6 +3,7 @@ package com.qmth.distributed.print.business.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.qmth.distributed.print.business.bean.dto.obe.CourseRequirementMatrixDto;
 import com.qmth.distributed.print.business.entity.ObeCourseRequirementMatrix;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -16,5 +17,5 @@ import java.util.List;
  */
 public interface ObeCourseRequirementMatrixMapper extends BaseMapper<ObeCourseRequirementMatrix> {
 
-    List<CourseRequirementMatrixDto> listMatrix(Long cultureProgramId);
+    List<CourseRequirementMatrixDto> listMatrix(@Param("cultureProgramId") Long cultureProgramId, @Param("courseId") Long courseId);
 }

+ 0 - 6
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ObeCultureProgramRequirementMapper.java

@@ -1,11 +1,7 @@
 package com.qmth.distributed.print.business.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.qmth.distributed.print.business.bean.dto.obe.CourseOutlineSubRequirementDto;
 import com.qmth.distributed.print.business.entity.ObeCultureProgramRequirement;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
 
 /**
  * <p>
@@ -16,6 +12,4 @@ import java.util.List;
  * @since 2024-06-05
  */
 public interface ObeCultureProgramRequirementMapper extends BaseMapper<ObeCultureProgramRequirement> {
-
-    List<CourseOutlineSubRequirementDto> listSubRequirement(@Param("cultureProgramId") Long cultureProgramId, @Param("courseId") Long courseId);
 }

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ConditionService.java

@@ -37,5 +37,5 @@ public interface ConditionService {
 
     List<ObeCultureProgram> listCultureProgram(Long professionalId);
 
-    List<ObeCultureProgramCourse> listCultureProgramCourse(Long professionalId, Long cultureProgramId);
+    List<BasicCourse> listCultureProgramCourse(Long professionalId, Long cultureProgramId);
 }

+ 2 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ObeCultureProgramRequirementService.java

@@ -1,7 +1,7 @@
 package com.qmth.distributed.print.business.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.qmth.distributed.print.business.bean.dto.obe.CourseOutlineSubRequirementDto;
+import com.qmth.distributed.print.business.bean.dto.obe.MatrixRequirementDto;
 import com.qmth.distributed.print.business.entity.ObeCultureProgramRequirement;
 
 import java.util.List;
@@ -39,5 +39,5 @@ public interface ObeCultureProgramRequirementService extends IService<ObeCulture
 
     List<ObeCultureProgramRequirement> listByCultureProgramId(Long cultureProgramId);
 
-    List<CourseOutlineSubRequirementDto> listSubRequirement(Long cultureProgramId, Long courseId);
+    List<MatrixRequirementDto> listSubRequirement(Long cultureProgramId, Long courseId);
 }

+ 3 - 6
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ConditionServiceImpl.java

@@ -258,19 +258,16 @@ public class ConditionServiceImpl implements ConditionService {
     public List<ObeCultureProgram> listCultureProgram(Long professionalId) {
         Long privilegeId = ServletUtil.getCurrentPrivilegeId();
         DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(privilegeId);
-        // 未找到权限菜单,默认为本人权限
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
 
         return conditionMapper.listCultureProgram(schoolId, professionalId, dpr);
     }
 
     @Override
-    public List<ObeCultureProgramCourse> listCultureProgramCourse(Long professionalId, Long cultureProgramId) {
+    public List<BasicCourse> listCultureProgramCourse(Long professionalId, Long cultureProgramId) {
         Long privilegeId = ServletUtil.getCurrentPrivilegeId();
-        String privilegeIdString = privilegeId == null ? null : String.valueOf(privilegeId);
         DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(privilegeId);
-        // 未找到权限菜单,默认为本人权限
-        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        return null;
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        return conditionMapper.listCultureProgramCourse(schoolId, professionalId, cultureProgramId, dpr);
     }
 }

+ 2 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ObeCourseRequirementMatrixServiceImpl.java

@@ -61,7 +61,7 @@ public class ObeCourseRequirementMatrixServiceImpl extends ServiceImpl<ObeCourse
     @Override
     public List<CourseRequirementMatrixDto> getMatrix(Long cultureProgramId) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        List<CourseRequirementMatrixDto> tpMatrixList = this.baseMapper.listMatrix(cultureProgramId);
+        List<CourseRequirementMatrixDto> tpMatrixList = this.baseMapper.listMatrix(cultureProgramId, null);
         List<CourseRequirementMatrixDto> matrixDtoList = new ArrayList<>();
         if (CollectionUtils.isNotEmpty(tpMatrixList)) {
             List<SysPrivilege> sysPrivileges = sysPrivilegeService.getClientUrlByUserId(sysUser.getId());
@@ -96,6 +96,7 @@ public class ObeCourseRequirementMatrixServiceImpl extends ServiceImpl<ObeCourse
                     MatrixRequirementDto matrixRequirementDto = new MatrixRequirementDto();
                     matrixRequirementDto.setName(tpRequirement.getName());
                     matrixRequirementDto.setContent(tpRequirement.getContent());
+                    matrixRequirementDto.setExpectValue(tpRequirement.getExpectValue());
                     List<CourseRequirementMatrixDto> requirementList = requirementEntry.getValue();
                     // 排序,解决字符串1和10排序问题
                     if (requirementList.size() > 1) {

+ 43 - 6
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ObeCultureProgramRequirementServiceImpl.java

@@ -4,11 +4,14 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.qmth.distributed.print.business.bean.dto.obe.CourseOutlineSubRequirementDto;
+import com.qmth.distributed.print.business.bean.dto.obe.CourseRequirementMatrixDto;
+import com.qmth.distributed.print.business.bean.dto.obe.MatrixRequirementDto;
+import com.qmth.distributed.print.business.bean.dto.obe.MatrixSubRequirementDto;
 import com.qmth.distributed.print.business.entity.ObeCourseRequirementMatrix;
 import com.qmth.distributed.print.business.entity.ObeCultureProgram;
 import com.qmth.distributed.print.business.entity.ObeCultureProgramRequirement;
 import com.qmth.distributed.print.business.enums.CultureProgramRequirementEnum;
+import com.qmth.distributed.print.business.mapper.ObeCourseRequirementMatrixMapper;
 import com.qmth.distributed.print.business.mapper.ObeCultureProgramRequirementMapper;
 import com.qmth.distributed.print.business.service.ObeCourseRequirementMatrixService;
 import com.qmth.distributed.print.business.service.ObeCultureProgramRequirementService;
@@ -20,6 +23,7 @@ import com.qmth.teachcloud.common.util.ServletUtil;
 import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.LinkedMultiValueMap;
 
 import javax.annotation.Resource;
 import java.util.*;
@@ -42,6 +46,8 @@ public class ObeCultureProgramRequirementServiceImpl extends ServiceImpl<ObeCult
     private ObeCultureProgramService obeCultureProgramService;
     @Resource
     private ObeCourseRequirementMatrixService obeCourseRequirementMatrixService;
+    @Resource
+    private ObeCourseRequirementMatrixMapper obeCourseRequirementMatrixMapper;
 
     @Override
     public List<ObeCultureProgramRequirement> listRequirement(Long cultureProgramId) {
@@ -179,7 +185,7 @@ public class ObeCultureProgramRequirementServiceImpl extends ServiceImpl<ObeCult
         UpdateWrapper<ObeCultureProgramRequirement> updateWrapper = new UpdateWrapper<>();
         updateWrapper.lambda().set(ObeCultureProgramRequirement::getExpectValue, obeCultureProgramRequirement.getExpectValue())
                 .eq(ObeCultureProgramRequirement::getCultureProgramId, obeCultureProgramRequirement.getCultureProgramId())
-                .isNotNull(ObeCultureProgramRequirement::getParentId);
+                .isNull(ObeCultureProgramRequirement::getParentId);
         return this.update(updateWrapper);
     }
 
@@ -217,10 +223,41 @@ public class ObeCultureProgramRequirementServiceImpl extends ServiceImpl<ObeCult
     }
 
     @Override
-    public List<CourseOutlineSubRequirementDto> listSubRequirement(Long cultureProgramId, Long courseId) {
-        List<CourseOutlineSubRequirementDto> courseOutlineSubRequirementDtoList = this.baseMapper.listSubRequirement(cultureProgramId, courseId);
-        List<CourseOutlineSubRequirementDto> subRequirementDtoList = courseOutlineSubRequirementDtoList.stream().filter(subRequirementDto -> subRequirementDto.getScale() != null).collect(Collectors.toList());
-        return CollectionUtils.isNotEmpty(subRequirementDtoList) ? subRequirementDtoList : courseOutlineSubRequirementDtoList;
+    public List<MatrixRequirementDto> listSubRequirement(Long cultureProgramId, Long courseId) {
+        List<CourseRequirementMatrixDto> tpMatrixList = obeCourseRequirementMatrixMapper.listMatrix(cultureProgramId, courseId);
+
+        LinkedMultiValueMap<Long, CourseRequirementMatrixDto> requirementMap = new LinkedMultiValueMap<>();
+        for (CourseRequirementMatrixDto tpMatrix : tpMatrixList) {
+            requirementMap.add(tpMatrix.getObeRequirementId(), tpMatrix);
+        }
+        List<MatrixRequirementDto> matrixRequirementDtoList = new ArrayList<>();
+        requirementMap.entrySet().stream().forEach(requirementEntry -> {
+            ObeCultureProgramRequirement tpRequirement = this.getById(requirementEntry.getKey());
+            MatrixRequirementDto matrixRequirementDto = new MatrixRequirementDto();
+            matrixRequirementDto.setName(tpRequirement.getName());
+            matrixRequirementDto.setExpectValue(tpRequirement.getExpectValue());
+            List<CourseRequirementMatrixDto> requirementList = requirementEntry.getValue();
+            // 排序,解决字符串1和10排序问题
+            if (requirementList.size() > 1) {
+                requirementList.sort(Comparator.comparingInt(o -> o.getSubRequirementSortNum()));
+            }
+
+            List<CourseRequirementMatrixDto> collect = requirementList.stream().filter(tpMatrix -> tpMatrix.getScale() != null).collect(Collectors.toList());
+            requirementList = CollectionUtils.isNotEmpty(collect) ? collect : requirementList;
+
+            List<MatrixSubRequirementDto> matrixSubRequirementDtoList = requirementList.stream().map(tpMatrix -> {
+                MatrixSubRequirementDto matrixSubRequirementDto = new MatrixSubRequirementDto();
+                matrixSubRequirementDto.setId(tpMatrix.getId());
+                matrixSubRequirementDto.setName(tpMatrix.getRequirementSortNum() + "-" + tpMatrix.getSubRequirementSortNum());
+                matrixSubRequirementDto.setScale(tpMatrix.getScale());
+                matrixSubRequirementDto.setContent(tpMatrix.getRequirementContent());
+                return matrixSubRequirementDto;
+            }).collect(Collectors.toList());
+            matrixRequirementDto.setSubRequirements(matrixSubRequirementDtoList);
+            matrixRequirementDtoList.add(matrixRequirementDto);
+        });
+
+        return matrixRequirementDtoList;
     }
 
     private String concatRequirementName(int requirementNum, int subRequirementNum) {

+ 3 - 0
distributed-print-business/src/main/resources/db/log/xiaofei.sql

@@ -119,3 +119,6 @@ INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence
 
 -- 2024-06-12
 ALTER TABLE `obe_course_requirement_matrix` CHANGE COLUMN `content` `scale` DOUBLE NULL DEFAULT NULL COMMENT '指标值' ;
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('1170', '共用接口-OBE专业', '/api/admin/basic/condition/list_professional', 'URL', '149', '17', 'SYS', '1', '1', '1');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('1171', '共用接口-OBE培养方案', '/api/admin/basic/condition/list_culture_program', 'URL', '149', '18', 'SYS', '1', '1', '1');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('1172', '共用接口-OBE课程', '/api/admin/basic/condition/list_culture_program_course', 'URL', '149', '18', 'SYS', '1', '1', '1');

+ 67 - 19
distributed-print-business/src/main/resources/mapper/ConditionMapper.xml

@@ -805,28 +805,76 @@
             ocp.*
         FROM
             obe_culture_program ocp
-                LEFT JOIN
-            basic_professional bp ON ocp.professional_id = bp.id
-                LEFT JOIN
-            sys_user su ON ocp.create_id = su.id
         <where>
-            <if test="schoolId != null">
-                and bp.school_id = #{schoolId}
-            </if>
             <if test="professionalId != null">
-                and ocp.professional_id = #{professionalId}
-            </if>
-            <if test="dpr != null">
-                <if test="dpr.requestUserId != null">
-                    AND ocp.create_id = #{dpr.requestUserId}
-                </if>
-                <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
-                    AND su.org_id IN
-                    <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
-                        #{item}
-                    </foreach>
-                </if>
+                AND ocp.professional_id = #{professionalId}
             </if>
+            AND EXISTS( SELECT
+                        1
+                    FROM
+                        obe_course_outline oco
+                            LEFT JOIN
+                        sys_user su ON oco.user_id = su.id
+                    WHERE
+                        ocp.id = oco.culture_program_id
+                        <if test="schoolId != null">
+                            AND oco.school_id = #{professionalId}
+                        </if>
+                        <if test="cultureProgramId != null">
+                            AND oco.culture_program_id = #{cultureProgramId}
+                        </if>
+                        <if test="dpr != null">
+                            <if test="dpr.requestUserId != null">
+                                AND oco.user_id = #{dpr.requestUserId}
+                            </if>
+                            <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
+                                AND su.org_id IN
+                                <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
+                                    #{item}
+                                </foreach>
+                            </if>
+                        </if>
+                )
+        </where>
+    </select>
+    <select id="listCultureProgramCourse"
+            resultType="com.qmth.teachcloud.common.entity.BasicCourse">
+        SELECT
+            bc.*
+        FROM
+            basic_course bc
+        <where>
+             EXISTS( SELECT
+                1
+                    FROM
+                obe_course_outline oco
+                    LEFT JOIN
+                obe_culture_program ocp ON oco.culture_program_id = ocp.id
+                    LEFT JOIN
+                sys_user su ON oco.user_id = su.id
+                WHERE
+                    bc.id = oco.course_id
+                <if test="schoolId != null">
+                    AND oco.school_id = #{professionalId}
+                </if>
+                <if test="professionalId != null">
+                    AND ocp.professional_id = #{professionalId}
+                </if>
+                <if test="cultureProgramId != null">
+                    AND oco.culture_program_id = #{cultureProgramId}
+                </if>
+                <if test="dpr != null">
+                    <if test="dpr.requestUserId != null">
+                        AND oco.user_id = #{dpr.requestUserId}
+                    </if>
+                    <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
+                        AND su.org_id IN
+                        <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
+                            #{item}
+                        </foreach>
+                    </if>
+                </if>
+            )
         </where>
     </select>
 </mapper>

+ 3 - 0
distributed-print-business/src/main/resources/mapper/ObeCourseRequirementMatrixMapper.xml

@@ -36,6 +36,9 @@
             basic_course bc ON ocpc.course_id = bc.id
         WHERE
             ocrm.culture_program_id = #{cultureProgramId}
+            <if test="courseId != null">
+                and ocpc.course_id = #{courseId}
+            </if>
         ORDER BY ocpc.sort_num , ocpr.sort_num
     </select>
 

+ 0 - 15
distributed-print-business/src/main/resources/mapper/ObeCultureProgramRequirementMapper.xml

@@ -15,19 +15,4 @@
         <result column="update_id" property="updateId" />
         <result column="update_time" property="updateTime" />
     </resultMap>
-    <select id="listSubRequirement"
-            resultType="com.qmth.distributed.print.business.bean.dto.obe.CourseOutlineSubRequirementDto">
-        SELECT
-            ocpr.*, ocrm.scale
-        FROM
-            obe_course_requirement_matrix ocrm
-                LEFT JOIN
-            obe_culture_program_requirement ocpr ON ocrm.obe_sub_requirement_id = ocpr.id
-                LEFT JOIN
-            obe_culture_program_course ocpc ON ocrm.obe_course_id = ocpc.id
-        WHERE
-            ocrm.culture_program_id = #{cultureProgramId}
-          AND ocpc.course_id = #{courseId}
-    </select>
-
 </mapper>