caozixuan 1 рік тому
батько
коміт
10c69653bf

+ 16 - 5
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ConditionMapper.java

@@ -1,5 +1,6 @@
 package com.qmth.distributed.print.business.mapper;
 
+import com.qmth.distributed.print.business.bean.result.DictionaryResult;
 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;
@@ -18,9 +19,11 @@ import java.util.List;
  */
 public interface ConditionMapper {
 
-    List<BasicCourse> listCourse(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("enable") Boolean enable, @Param("printPlanIds") List<String> printPlanIds, @Param("dpr") DataPermissionRule dpr);
+    List<BasicCourse> listCourse(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("enable") Boolean enable, @Param("printPlanIds") List<String> printPlanIds,
+            @Param("dpr") DataPermissionRule dpr);
 
-    List<String> listPaperNumber(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("printPlanIds") List<String> printPlanIds, @Param("dpr") DataPermissionRule dpr);
+    List<String> listPaperNumber(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("printPlanIds") List<String> printPlanIds,
+            @Param("dpr") DataPermissionRule dpr);
 
     List<BasicCourse> listCourseForApply(@Param("examId") Long examId, @Param("userId") Long userId);
 
@@ -34,13 +37,15 @@ public interface ConditionMapper {
 
     List<BasicCourse> listCourseForScore(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("status") String status, @Param("dpr") DataPermissionRule dpr);
 
-    List<BasicClazz> listClazz(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("clazzName") String clazzName, @Param("dpr") DataPermissionRule dpr);
+    List<BasicClazz> listClazz(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("clazzName") String clazzName,
+            @Param("dpr") DataPermissionRule dpr);
 
     List<PrintPlanBrief> listPrintPlanForClient(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("examDetailStatus") String[] examDetailStatus);
 
     List<BasicCourse> listCourseForPlanTask(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("printPlanIds") List<String> printPlanIds, @Param("dpr") DataPermissionRule dpr);
 
-    List<String> listPaperNumberPlanTask(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("printPlanIds") List<String> printPlanIds, @Param("courseCode") String courseCode, @Param("dpr") DataPermissionRule dpr);
+    List<String> listPaperNumberPlanTask(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("printPlanIds") List<String> printPlanIds, @Param("courseCode") String courseCode,
+            @Param("dpr") DataPermissionRule dpr);
 
     List<BasicCourse> listCourseForEntrance(@Param("examId") Long examId, @Param("userId") Long userId, @Param("status") String status);
 
@@ -51,9 +56,11 @@ public interface ConditionMapper {
     List<String> listPaperNumberFromMarkPaper(@Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("dpr") DataPermissionRule dpr);
 
     List<BasicCourse> listCourseFromExamTaskByCreateId(@Param("examId") Long examId, @Param("dpr") DataPermissionRule dpr);
+
     List<BasicCourse> listCourseFromExamTaskByUserId(@Param("examId") Long examId, @Param("dpr") DataPermissionRule dpr);
 
     List<String> listPaperNumberFromExamTaskByCreateId(@Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("dpr") DataPermissionRule dpr);
+
     List<String> listPaperNumberFromExamTaskByUserIdAndPass(@Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("dpr") DataPermissionRule dpr);
 
     List<BasicCourse> listCourseForQuery(@Param("examId") Long examId, @Param("dpr") DataPermissionRule dpr);
@@ -70,5 +77,9 @@ public interface ConditionMapper {
 
     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, @Param("cultureProgramId") Long cultureProgramId, @Param("dpr") DataPermissionRule dpr);
+    List<DictionaryResult> listOutlineSemester(@Param("schoolId") Long schoolId, @Param("professionalId") Long professionalId, @Param("cultureProgramId") Long cultureProgramId,
+            @Param("dpr") DataPermissionRule dpr);
+
+    List<BasicCourse> listCultureProgramCourse(@Param("schoolId") Long schoolId, @Param("professionalId") Long professionalId, @Param("cultureProgramId") Long cultureProgramId,
+            @Param("semesterId") Long semesterId, @Param("dpr") DataPermissionRule dpr);
 }

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

@@ -1,6 +1,7 @@
 package com.qmth.distributed.print.business.service;
 
 import com.qmth.distributed.print.business.bean.result.BasicTeachClazzResult;
+import com.qmth.distributed.print.business.bean.result.DictionaryResult;
 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;
@@ -37,5 +38,7 @@ public interface ConditionService {
 
     List<ObeCultureProgram> listCultureProgram(Long professionalId);
 
-    List<BasicCourse> listCultureProgramCourse(Long professionalId, Long cultureProgramId);
+    List<DictionaryResult> listOutlineSemester(Long professionalId, Long cultureProgramId);
+
+    List<BasicCourse> listCultureProgramCourse(Long professionalId, Long cultureProgramId, Long semesterId);
 }

+ 14 - 9
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ConditionServiceImpl.java

@@ -2,10 +2,10 @@ package com.qmth.distributed.print.business.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.qmth.distributed.print.business.bean.result.BasicTeachClazzResult;
+import com.qmth.distributed.print.business.bean.result.DictionaryResult;
 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.distributed.print.business.enums.ExamDetailStatusEnum;
 import com.qmth.distributed.print.business.enums.PrintPlanStatusEnum;
 import com.qmth.distributed.print.business.mapper.ConditionMapper;
@@ -21,7 +21,6 @@ import com.qmth.teachcloud.common.service.BasicRoleDataPermissionService;
 import com.qmth.teachcloud.common.service.BasicSemesterService;
 import com.qmth.teachcloud.common.service.SysOrgService;
 import com.qmth.teachcloud.common.util.ServletUtil;
-import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -45,9 +44,6 @@ public class ConditionServiceImpl implements ConditionService {
     @Resource
     BasicRoleDataPermissionService basicRoleDataPermissionService;
 
-    @Resource
-    TeachCourseService teachCourseService;
-
     @Resource
     SysOrgService sysOrgService;
 
@@ -204,8 +200,8 @@ public class ConditionServiceImpl implements ConditionService {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
 
         if ("client".equals(source)) {
-            String[] examDetailStatus = new String[]{ExamDetailStatusEnum.NEW.name(),
-                    PrintPlanStatusEnum.READY.name()};
+            String[] examDetailStatus = new String[] { ExamDetailStatusEnum.NEW.name(),
+                    PrintPlanStatusEnum.READY.name() };
             return conditionMapper.listPrintPlanForClient(semesterId, examId, examDetailStatus);
         } else {
             // 如果byAssignUser为true时,不能通过层级关系查询
@@ -264,10 +260,19 @@ public class ConditionServiceImpl implements ConditionService {
     }
 
     @Override
-    public List<BasicCourse> listCultureProgramCourse(Long professionalId, Long cultureProgramId) {
+    public List<DictionaryResult> listOutlineSemester(Long professionalId, Long cultureProgramId) {
+        Long privilegeId = ServletUtil.getCurrentPrivilegeId();
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(privilegeId);
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+
+        return conditionMapper.listOutlineSemester(schoolId, professionalId, cultureProgramId, dpr);
+    }
+
+    @Override
+    public List<BasicCourse> listCultureProgramCourse(Long professionalId, Long cultureProgramId, Long semesterId) {
         Long privilegeId = ServletUtil.getCurrentPrivilegeId();
         DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(privilegeId);
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        return conditionMapper.listCultureProgramCourse(schoolId, professionalId, cultureProgramId, dpr);
+        return conditionMapper.listCultureProgramCourse(schoolId, professionalId, cultureProgramId, semesterId, dpr);
     }
 }

+ 4 - 1
distributed-print-business/src/main/resources/db/log/caozixuan.sql

@@ -129,4 +129,7 @@ UPDATE sys_privilege SET related = '3031' WHERE (id = '3043');
 
 INSERT INTO sys_privilege (id, name, url, type, parent_id, sequence, property, enable, default_auth, front_display) VALUES ('3006', '课程大纲-查询可选择的培养方案', '/api/admin/obe/course_outline/can_choose_culture_program', 'URL', '3000', '5', 'AUTH', '1', '1', '1');
 INSERT INTO sys_privilege (id, name, url, type, parent_id, sequence, property, enable, default_auth, front_display) VALUES ('3007', '课程大纲-查询可选择的课程', '/api/admin/obe/course_outline/can_choose_course', 'URL', '3000', '6', 'AUTH', '1', '1', '1');
-UPDATE sys_privilege SET related = '3003,3006,3007' WHERE (id = '3014');
+UPDATE sys_privilege SET related = '3003,3006,3007' WHERE (id = '3014');
+
+-- 2024-06-13
+INSERT INTO sys_privilege (id, name, url, type, parent_id, sequence, property, enable, default_auth, front_display) VALUES ('1173', '共用接口-OBE学期', '/api/admin/basic/condition/list_outline_semester', 'URL', '149', '19', 'SYS', '1', '1', '1');

+ 46 - 1
distributed-print-business/src/main/resources/mapper/ConditionMapper.xml

@@ -834,6 +834,48 @@
                 )
         </where>
     </select>
+
+
+    <select id="listOutlineSemester"
+            resultType="com.qmth.distributed.print.business.bean.result.DictionaryResult">
+        SELECT
+            id AS id, name AS name, code AS code
+        FROM
+            basic_semester
+        <where>
+            AND 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
+                oco.semester_id = basic_semester.id
+            <if test="schoolId != null">
+                AND oco.school_id = #{schoolId}
+            </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>
+
     <select id="listCultureProgramCourse"
             resultType="com.qmth.teachcloud.common.entity.BasicCourse">
         SELECT
@@ -841,7 +883,7 @@
         FROM
             basic_course bc
         <where>
-             EXISTS( SELECT
+             AND EXISTS( SELECT
                 1
                     FROM
                 obe_course_outline oco
@@ -860,6 +902,9 @@
                 <if test="cultureProgramId != null">
                     AND oco.culture_program_id = #{cultureProgramId}
                 </if>
+                <if test="semesterId != null">
+                    AND oco.semester_id = #{semesterId}
+                </if>
                 <if test="dpr != null">
                     <if test="dpr.requestUserId != null">
                         AND oco.user_id = #{dpr.requestUserId}

+ 14 - 6
distributed-print/src/main/java/com/qmth/distributed/print/api/ConditionController.java

@@ -1,7 +1,6 @@
 package com.qmth.distributed.print.api;
 
 import com.qmth.boot.api.constant.ApiConstant;
-import com.qmth.distributed.print.business.bean.dto.professional.ProfessionalDto;
 import com.qmth.distributed.print.business.bean.result.PrintPlanBrief;
 import com.qmth.distributed.print.business.service.ConditionService;
 import com.qmth.teachcloud.common.contant.SystemConstant;
@@ -122,23 +121,32 @@ public class ConditionController {
 
     @ApiOperation(value = "OBE-专业")
     @RequestMapping(value = "/list_professional", method = RequestMethod.POST)
-    @ApiResponses({@ApiResponse(code = 200, message = "查询", response = Result.class)})
+    @ApiResponses({ @ApiResponse(code = 200, message = "查询", response = Result.class) })
     public Result listProfessional() {
         return ResultUtil.ok(conditionService.listProfessional());
     }
 
     @ApiOperation(value = "OBE-培养方案")
     @RequestMapping(value = "/list_culture_program", method = RequestMethod.POST)
-    @ApiResponses({@ApiResponse(code = 200, message = "查询", response = Result.class)})
+    @ApiResponses({ @ApiResponse(code = 200, message = "查询", response = Result.class) })
     public Result listCultureProgram(@ApiParam(value = "专业ID") @RequestParam(value = "professionalId", required = false) Long professionalId) {
         return ResultUtil.ok(conditionService.listCultureProgram(professionalId));
     }
 
+    @ApiOperation(value = "OBE-学期")
+    @RequestMapping(value = "/list_outline_semester", method = RequestMethod.POST)
+    @ApiResponses({ @ApiResponse(code = 200, message = "查询", response = Result.class) })
+    public Result listOutlineSemester(@ApiParam(value = "专业ID") @RequestParam(value = "professionalId", required = false) Long professionalId,
+            @ApiParam(value = "培养方案ID") @RequestParam(value = "cultureProgramId", required = false) Long cultureProgramId) {
+        return ResultUtil.ok(conditionService.listOutlineSemester(professionalId, cultureProgramId));
+    }
+
     @ApiOperation(value = "OBE-课程")
     @RequestMapping(value = "/list_culture_program_course", method = RequestMethod.POST)
-    @ApiResponses({@ApiResponse(code = 200, message = "查询", response = Result.class)})
+    @ApiResponses({ @ApiResponse(code = 200, message = "查询", response = Result.class) })
     public Result listCultureProgramCourse(@ApiParam(value = "专业ID") @RequestParam(value = "professionalId", required = false) Long professionalId,
-                                           @ApiParam(value = "培养方案ID") @RequestParam(value = "cultureProgramId", required = false) Long cultureProgramId) {
-        return ResultUtil.ok(conditionService.listCultureProgramCourse(professionalId, cultureProgramId));
+            @ApiParam(value = "培养方案ID") @RequestParam(value = "cultureProgramId", required = false) Long cultureProgramId,
+            @ApiParam(value = "学期id") @RequestParam(value = "semesterId", required = false) Long semesterId) {
+        return ResultUtil.ok(conditionService.listCultureProgramCourse(professionalId, cultureProgramId, semesterId));
     }
 }