Ver código fonte

代码调整

wangliang 1 ano atrás
pai
commit
6c5503d752

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

@@ -2,6 +2,7 @@ package com.qmth.distributed.print.business.mapper;
 
 import com.qmth.distributed.print.business.bean.result.PrintPlanBrief;
 import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
+import com.qmth.teachcloud.common.bean.result.DictionaryResult;
 import com.qmth.teachcloud.common.entity.BasicCourse;
 import org.apache.ibatis.annotations.Param;
 
@@ -59,4 +60,10 @@ public interface ConditionMapper {
     List<String> listPaperNumberForApproveHistory(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("courseId") Long courseId, @Param("dpr") DataPermissionRule dpr);
 
     List<String> listPaperNumberForScore(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("status") String status, @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);
 }

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

@@ -2,6 +2,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.PrintPlanBrief;
+import com.qmth.teachcloud.common.bean.result.DictionaryResult;
 import com.qmth.teachcloud.common.entity.*;
 import com.qmth.teachcloud.common.enums.ExamCategoryEnum;
 
@@ -27,4 +28,8 @@ public interface ConditionService {
     List<SysOrg> listCollege();
 
     List<BasicTeachClazzResult> listBasicTeachClazz(Long examId, String courseCode, String clazzName);
+
+    List<DictionaryResult> listOutlineSemester(Long professionalId, Long cultureProgramId);
+
+    List<BasicCourse> listCultureProgramCourse(Long professionalId, Long cultureProgramId, Long semesterId);
 }

+ 18 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ConditionServiceImpl.java

@@ -11,6 +11,7 @@ import com.qmth.distributed.print.business.service.BasicTeachClazzService;
 import com.qmth.distributed.print.business.service.ConditionService;
 import com.qmth.distributed.print.business.service.TeachCourseService;
 import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
+import com.qmth.teachcloud.common.bean.result.DictionaryResult;
 import com.qmth.teachcloud.common.entity.*;
 import com.qmth.teachcloud.common.enums.ExamCategoryEnum;
 import com.qmth.teachcloud.common.enums.mark.MarkPaperStatus;
@@ -230,4 +231,21 @@ public class ConditionServiceImpl implements ConditionService {
     public List<BasicTeachClazzResult> listBasicTeachClazz(Long examId, String courseCode, String clazzName) {
         return basicTeachClazzService.findAllTeachClazz(examId, courseCode, clazzName);
     }
+
+    @Override
+    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, semesterId, dpr);
+    }
 }

+ 86 - 0
distributed-print-business/src/main/resources/mapper/ConditionMapper.xml

@@ -783,4 +783,90 @@
         </where>
         order by mp.course_id
     </select>
+
+    <select id="listOutlineSemester"
+            resultType="com.qmth.teachcloud.common.bean.result.DictionaryResult">
+        SELECT
+        id AS id, name AS name, code AS code
+        FROM
+        basic_semester bs
+        <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 = bs.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
+        bc.*
+        FROM
+        basic_course bc
+        <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
+            bc.id = oco.course_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="semesterId != null">
+                AND oco.semester_id = #{semesterId}
+            </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>

+ 39 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/ConditionController.java

@@ -9,6 +9,8 @@ import com.qmth.teachcloud.common.enums.ExamCategoryEnum;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.mark.service.ScanConditionService;
+import com.qmth.teachcloud.obe.service.BasicProfessionalService;
+import com.qmth.teachcloud.obe.service.ObeCultureProgramService;
 import io.swagger.annotations.*;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -33,6 +35,12 @@ public class ConditionController {
     @Resource
     private ScanConditionService scanConditionService;
 
+    @Resource
+    BasicProfessionalService professionalService;
+
+    @Resource
+    ObeCultureProgramService obeCultureProgramService;
+
     @ApiOperation(value = "学期")
     @RequestMapping(value = "/list_semester", method = RequestMethod.POST)
     @ApiResponses({ @ApiResponse(code = 200, message = "查询成功", response = BasicSemester.class) })
@@ -110,4 +118,35 @@ public class ConditionController {
         return ResultUtil.ok(
                 conditionService.listBasicTeachClazz(SystemConstant.convertIdToLong(examId), courseCode, clazzName));
     }
+
+    @ApiOperation(value = "OBE-专业")
+    @RequestMapping(value = "/list_professional", method = RequestMethod.POST)
+    @ApiResponses({ @ApiResponse(code = 200, message = "查询", response = Result.class) })
+    public Result listProfessional() {
+        return ResultUtil.ok(professionalService.listProfessional());
+    }
+
+    @ApiOperation(value = "OBE-培养方案")
+    @RequestMapping(value = "/list_culture_program", method = RequestMethod.POST)
+    @ApiResponses({ @ApiResponse(code = 200, message = "查询", response = Result.class) })
+    public Result listCultureProgram(@ApiParam(value = "专业ID") @RequestParam(value = "professionalId", required = false) Long professionalId) {
+        return ResultUtil.ok(obeCultureProgramService.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) })
+    public Result listCultureProgramCourse(@ApiParam(value = "专业ID") @RequestParam(value = "professionalId", required = false) Long professionalId,
+                                           @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));
+    }
 }

+ 2 - 0
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/mapper/BasicProfessionalMapper.java

@@ -23,4 +23,6 @@ public interface BasicProfessionalMapper extends BaseMapper<BasicProfessional> {
     IPage<ProfessionalDto> pageData(@Param("page") Page<ProfessionalDto> page, @Param("schoolId") Long schoolId, @Param("name") String name, @Param("orgId") Long orgId, @Param("dpr") DataPermissionRule dpr);
 
     List<ProfessionalDto> pageData(@Param("schoolId") Long schoolId, @Param("name") String name, @Param("orgId") Long orgId, @Param("dpr") DataPermissionRule dpr);
+
+    List<BasicProfessional> listProfessional(@Param("schoolId") Long schoolId, @Param("dpr") DataPermissionRule dpr);
 }

+ 6 - 0
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/mapper/ObeCultureProgramMapper.java

@@ -8,6 +8,8 @@ import com.qmth.teachcloud.obe.been.result.CultureProgramResult;
 import com.qmth.teachcloud.obe.entity.ObeCultureProgram;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * <p>
  * 培养方案 Mapper 接口
@@ -21,4 +23,8 @@ public interface ObeCultureProgramMapper extends BaseMapper<ObeCultureProgram> {
     IPage<CultureProgramResult> pageData(@Param("page") Page<CultureProgramResult> page, @Param("schoolId") Long schoolId, @Param("professionalId") Long professionalId, @Param("name") String name, @Param("dpr") DataPermissionRule dpr);
 
     CultureProgramResult getByCultureProgramId(Long id);
+
+    List<ObeCultureProgram> listCultureProgram(@Param("schoolId") Long schoolId, @Param("professionalId") Long professionalId, @Param("dpr") DataPermissionRule dpr);
+
+    List<ObeCultureProgram> listCultureProgramForDegree(@Param("schoolId") Long schoolId, @Param("dpr") DataPermissionRule dpr);
 }

+ 2 - 0
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/service/BasicProfessionalService.java

@@ -25,4 +25,6 @@ public interface BasicProfessionalService extends IService<BasicProfessional> {
     Boolean saveData(BasicProfessional tpProfessional);
 
     boolean remove(Long id);
+
+    List<BasicProfessional> listProfessional();
 }

+ 4 - 0
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/service/ObeCultureProgramService.java

@@ -7,6 +7,8 @@ import com.qmth.teachcloud.obe.been.params.cultureProgram.ObeCultureProgramDescr
 import com.qmth.teachcloud.obe.been.result.CultureProgramResult;
 import com.qmth.teachcloud.obe.entity.ObeCultureProgram;
 
+import java.util.List;
+
 /**
  * <p>
  * 培养方案 服务类
@@ -38,4 +40,6 @@ public interface ObeCultureProgramService extends IService<ObeCultureProgram> {
     Long copyByCultureProgramId(Long id);
 
     CultureProgramResult getByCultureProgramId(Long id);
+
+    List<ObeCultureProgram> listCultureProgram(Long professionalId);
 }

+ 9 - 0
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/service/impl/BasicProfessionalServiceImpl.java

@@ -89,4 +89,13 @@ public class BasicProfessionalServiceImpl extends ServiceImpl<BasicProfessionalM
         }
         return this.removeById(id);
     }
+
+    @Override
+    public List<BasicProfessional> listProfessional() {
+        Long privilegeId = ServletUtil.getCurrentPrivilegeId();
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(privilegeId);
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        // 未找到权限菜单,默认为本人权限
+        return this.baseMapper.listProfessional(schoolId, dpr);
+    }
 }

+ 19 - 0
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/service/impl/ObeCultureProgramServiceImpl.java

@@ -21,6 +21,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.atomic.AtomicInteger;
@@ -197,4 +198,22 @@ public class ObeCultureProgramServiceImpl extends ServiceImpl<ObeCultureProgramM
     public CultureProgramResult getByCultureProgramId(Long id) {
         return this.baseMapper.getByCultureProgramId(id);
     }
+
+    @Override
+    public List<ObeCultureProgram> listCultureProgram(Long professionalId) {
+        List<ObeCultureProgram> result = new ArrayList<>();
+        Long privilegeId = ServletUtil.getCurrentPrivilegeId();
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(privilegeId);
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        String privilegeIdString = privilegeId == null ? null : String.valueOf(privilegeId);
+        // 课程大纲管理、课程考核设置
+        if ("3000".equals(privilegeIdString) || "3001".equals(privilegeIdString) || "2080".equals(privilegeIdString)) {
+            result = this.baseMapper.listCultureProgram(schoolId, professionalId, dpr);
+        }
+        // 课程目标达成度统计、成绩管理
+        else if ("2002".equals(privilegeIdString) || "2001".equals(privilegeIdString)) {
+            result = this.baseMapper.listCultureProgramForDegree(schoolId, dpr);
+        }
+        return result;
+    }
 }

+ 25 - 0
teachcloud-obe/src/main/resources/mapper/BasicProfessionalMapper.xml

@@ -54,4 +54,29 @@
         </where>
     </select>
 
+    <select id="listProfessional" resultType="com.qmth.teachcloud.obe.entity.BasicProfessional"
+            parameterType="com.qmth.teachcloud.common.bean.dto.DataPermissionRule">
+        select
+        bp.id,
+        bp.name,
+        so.name orgName
+        from basic_professional bp
+        left join sys_org so on bp.org_id = so.id
+        <where>
+            <if test="schoolId != null">
+                and bp.school_id = #{schoolId}
+            </if>
+            <if test="dpr != null">
+                <if test="dpr.requestUserId != null">
+                    AND bp.create_id = #{dpr.requestUserId}
+                </if>
+                <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
+                    AND bp.org_id IN
+                    <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                </if>
+            </if>
+        </where>
+    </select>
 </mapper>

+ 75 - 0
teachcloud-obe/src/main/resources/mapper/ObeCultureProgramMapper.xml

@@ -70,4 +70,79 @@
         where ocp.id = #{id}
     </select>
 
+    <select id="listCultureProgram" resultType="com.qmth.teachcloud.obe.entity.ObeCultureProgram">
+        SELECT
+        ocp.*
+        FROM
+        obe_culture_program ocp
+        <where>
+            <if test="professionalId != null">
+                AND ocp.professional_id = #{professionalId}
+            </if>
+            AND EXISTS( SELECT
+            1
+            FROM
+            obe_course_outline oco
+            LEFT JOIN
+            basic_course bc on oco.course_id = bc.id
+            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 = #{schoolId}
+            </if>
+            <if test="dpr != null">
+                <if test="dpr.requestUserId != null">
+                    AND oco.user_id = #{dpr.requestUserId}
+                </if>
+                <if test="dpr.courseUserId != null">
+                    AND EXISTS( SELECT 1 FROM (select course_code from teach_course where user_id = #{dpr.courseUserId}) tc WHERE tc.course_code = bc.code)
+                </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="listCultureProgramForDegree"
+            resultType="com.qmth.teachcloud.obe.entity.ObeCultureProgram">
+        SELECT
+        *
+        FROM
+        obe_culture_program ocp
+        WHERE
+        EXISTS( SELECT
+        1
+        FROM
+        obe_course_outline oco
+        LEFT JOIN
+        basic_course bc ON oco.course_id = bc.id
+        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 = #{schoolId}
+        </if>
+        <if test="dpr != null">
+            <if test="dpr.requestUserId != null">
+                AND oco.user_id = #{dpr.requestUserId}
+            </if>
+            <if test="dpr.courseUserId != null">
+                AND EXISTS( SELECT 1 FROM (select course_code from teach_course where user_id = #{dpr.courseUserId}) tc WHERE tc.course_code = bc.code)
+            </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>)
+    </select>
 </mapper>