Ver código fonte

3.4.0 update

xiaofei 11 meses atrás
pai
commit
5d9e95045c

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

@@ -70,9 +70,8 @@ public interface ConditionMapper {
 
     List<BasicCourse> listCourseForDocument(@Param("examId") Long examId, @Param("dpr") DataPermissionRule dpr);
 
-    List<BasicCourse> listCourseForBasicExamStudent(@Param("examId") Long examId, @Param("dpr") DataPermissionRule dpr);
+    List<BasicCourse> listCourseForBasicExamStudent(@Param("examId") Long examId, @Param("openCollegeId") Long openCollegeId, @Param("dpr") DataPermissionRule dpr);
 
     List<String> listPaperNumberFromBasicExamStudent(@Param("examId") Long examId, @Param("courseId") Long courseId, @Param("dpr") DataPermissionRule dpr);
 
-    List<SysOrg> listOpenCollege(Long courseId);
 }

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

@@ -19,7 +19,7 @@ public interface ConditionService {
 
     List<BasicExam> listExam(Long semesterId, ExamCategoryEnum category, Boolean enable);
 
-    List<BasicCourse> listCourse(Long semesterId, Long examId, Boolean enable, List<String> printPlanId);
+    List<BasicCourse> listCourse(Long semesterId, Long examId, Boolean enable, List<String> printPlanId, Long openCollegeId);
 
     List<String> listPaperNumber(Long semesterId, Long examId, Long courseId, List<String> printPlanId);
 

+ 14 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicExamStudentServiceImpl.java

@@ -279,6 +279,20 @@ public class BasicExamStudentServiceImpl extends ServiceImpl<BasicExamStudentMap
 
         // 同一课程+教学班下只能有一位任课老师
         List<BasicExamStudent> basicExamStudentList = this.listByExamIdAndCourseIdAndTeachClassName(basicExamStudent.getExamId(), basicExamStudent.getCourseId(), basicExamStudent.getTeachClassName());
+        if(CollectionUtils.isNotEmpty(basicExamStudentList)){
+            List<Long> teacherIds = basicExamStudentList.stream().map(BasicExamStudent::getTeacherId).distinct().collect(Collectors.toList());
+            if(teacherIds.size() >1){
+                throw ExceptionResultEnum.ERROR.exception("课程下同一教学班,只允许有一个任课老师");
+            } else{
+                if(basicExamStudent.getTeacherId() != null && teacherIds.get(0) == null){
+                    throw ExceptionResultEnum.ERROR.exception("教学班其它学生任课老师为空,本次不填任课老师信息");
+                } else if (basicExamStudent.getTeacherId() == null && teacherIds.get(0) != null){
+                    throw ExceptionResultEnum.ERROR.exception("教学班其它学生任课老师不为空,任课老师必填");
+                } else if (basicExamStudent.getTeacherId() != null && teacherIds.get(0) != null && basicExamStudent.getTeacherId().equals(teacherIds.get(0))){
+                    throw ExceptionResultEnum.ERROR.exception("任课老师与教学班其它学生任课老师不一致");
+                }
+            }
+        }
 
         if (SystemConstant.longNotNull(basicExamStudent.getId())) {
             // 编辑 (学号不可更改)

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

@@ -19,7 +19,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;
@@ -82,7 +81,7 @@ public class ConditionServiceImpl implements ConditionService {
     }
 
     @Override
-    public List<BasicCourse> listCourse(Long semesterId, Long examId, Boolean enable, List<String> printPlanIds) {
+    public List<BasicCourse> listCourse(Long semesterId, Long examId, Boolean enable, List<String> printPlanIds, Long openCollegeId) {
         // 考试ID为空,默认返回空
         if (examId == null) {
             return new ArrayList<>();
@@ -95,7 +94,7 @@ public class ConditionServiceImpl implements ConditionService {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         // 考生管理(1100)
         if ("1100".equals(privilegeIdString)) {
-            return conditionMapper.listCourseForBasicExamStudent(examId, dpr);
+            return conditionMapper.listCourseForBasicExamStudent(examId, openCollegeId, dpr);
         }
         // 命题任务管理(39)
         else if ("39".equals(privilegeIdString)) {

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

@@ -890,7 +890,12 @@
         </if>)
     </select>
     <select id="listCourseForBasicExamStudent" resultType="com.qmth.teachcloud.common.entity.BasicCourse">
-        select * from basic_course bc where exists(
+        select * from basic_course bc
+            <where>
+            <if test="openCollegeId != null">
+                and bc.teaching_room_id = #{openCollegeId}
+            </if>
+            and exists(
             select 1 from basic_exam_student bes where exam_id = #{examId} and bc.id = bes.course_id
                 <if test="dpr != null">
                     <if test="dpr.requestUserId != null">
@@ -906,6 +911,7 @@
                         </foreach>
                     </if>
                 </if> )
+            </where>
     </select>
     <select id="listPaperNumberFromBasicExamStudent" resultType="java.lang.String">
         select distinct bes.paper_number from basic_exam_student bes left join basic_course bc on bes.course_id = bc.id

+ 3 - 2
distributed-print/src/main/java/com/qmth/distributed/print/api/ConditionController.java

@@ -58,8 +58,9 @@ public class ConditionController {
     @RequestMapping(value = "/list_course", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = BasicCourse.class)})
     public Result listCourse(@ApiParam(value = "学期ID") @RequestParam(required = false) Long semesterId, @ApiParam(value = "考试ID") @RequestParam(required = false) Long examId,
-                             @ApiParam(value = "启用/禁用") @RequestParam(required = false) Boolean enable, @RequestParam(value = "printPlanId", required = false) List<String> printPlanId) {
-        return ResultUtil.ok(conditionService.listCourse(semesterId, examId, enable, printPlanId));
+                             @ApiParam(value = "启用/禁用") @RequestParam(required = false) Boolean enable, @RequestParam(value = "printPlanId", required = false) List<String> printPlanId,
+                             @ApiParam(value = "开课学院ID") @RequestParam(required = false) Long openCollegeId) {
+        return ResultUtil.ok(conditionService.listCourse(semesterId, examId, enable, printPlanId, openCollegeId));
     }
 
     @ApiOperation(value = "试卷编号")