Sfoglia il codice sorgente

Merge remote-tracking branch 'origin/dev_v1.0.4' into dev_v1.0.4

# Conflicts:
#	src/main/java/com/qmth/eds/service/CommonService.java
xiaofei 2 anni fa
parent
commit
924865357c

+ 14 - 16
src/main/java/com/qmth/eds/api/ExamAssignController.java

@@ -9,10 +9,8 @@ import com.qmth.eds.bean.result.EditResult;
 import com.qmth.eds.bean.result.StudentMarkResult;
 import com.qmth.eds.common.contant.SystemConstant;
 import com.qmth.eds.common.entity.ExamAssign;
-import com.qmth.eds.common.entity.SysUser;
 import com.qmth.eds.common.util.Result;
 import com.qmth.eds.common.util.ResultUtil;
-import com.qmth.eds.common.util.ServletUtil;
 import com.qmth.eds.service.CloudMarkingScoreService;
 import com.qmth.eds.service.CommonService;
 import com.qmth.eds.service.ExamAssignService;
@@ -28,7 +26,6 @@ import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.util.List;
 import java.util.Objects;
-import java.util.Set;
 
 /**
  * <p>
@@ -83,27 +80,28 @@ public class ExamAssignController {
     @ApiOperation(value = "计算结果查询")
     @PostMapping("/result")
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = AssignResultPreviewResult.class)})
-    public Result assignResultPreview(@ApiParam(value = "开课学院", required = true) @RequestParam String collegeName,
-                                      @ApiParam(value = "班级id", required = true) @RequestParam String clazzId,
-                                      @ApiParam(value = "任课老师工号", required = true) @RequestParam String teacherCode,
+    public Result assignResultPreview(@ApiParam(value = "学期id", required = true) @RequestParam Long semesterId,
+                                      @ApiParam(value = "考试id", required = true) @RequestParam Long examTypeId,
+                                      @ApiParam(value = "科目代码", required = true) @RequestParam String courseCode,
+                                      @ApiParam(value = "开课学院", required = true) @RequestParam String kkCollegeName,
+                                      @ApiParam(value = "考查学院", required = false) @RequestParam(required = false) String kcCollegeName,
+                                      @ApiParam(value = "班级id", required = false) @RequestParam(required = false) String clazzId,
+                                      @ApiParam(value = "任课老师工号", required = false) @RequestParam(required = false) String teacherCode,
                                       @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
                                       @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
-        return ResultUtil.ok(examAssignService.assignResultPreview(new Page<>(pageNumber, pageSize), collegeName, clazzId, teacherCode));
+        return ResultUtil.ok(examAssignService.assignResultPreview(new Page<>(pageNumber, pageSize), semesterId, examTypeId, courseCode, kkCollegeName, kcCollegeName, clazzId, teacherCode));
     }
 
     @ApiOperation(value = "计算结果对比")
     @PostMapping("/contrast")
     @ApiResponses({@ApiResponse(code = 200, message = "保存/更新成功", response = AssignContrastResult.class)})
     public Result contrast(@ApiParam(value = "学期id", required = true) @RequestParam Long semesterId,
-                           @ApiParam(value = "考试id", required = true) @RequestParam Long examId,
-                           @ApiParam(value = "科目代码", required = true) @RequestParam String subjectCode,
-                           @ApiParam(value = "开课学院", required = true) @RequestParam String collegeName,
-//                           @ApiParam(value = "卷面总分", required = true) @RequestParam BigDecimal surfaceScore,
+                           @ApiParam(value = "考试id", required = true) @RequestParam Long examTypeId,
+                           @ApiParam(value = "科目代码", required = true) @RequestParam String courseCode,
+                           @ApiParam(value = "开课学院", required = true) @RequestParam String kkCollegeName,
                            @ApiParam(value = "及格分", required = true) @RequestParam BigDecimal passScore) {
-        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        Set<String> subjectCodeSet = commonService.findCloudMarkSubjectCode(semesterId, examId, subjectCode);
-        List<StudentMarkResult> studentMarkResultList = cloudMarkingScoreService.queryStudentMark(schoolId, sysUser.getOrgId(), semesterId, examId, subjectCode, collegeName, subjectCodeSet);
+        List<String> cloudMarkSubjectCodeList = commonService.findCloudMarkSubjectCode(semesterId, examTypeId, courseCode);
+        List<StudentMarkResult> studentMarkResultList = cloudMarkingScoreService.queryStudentMark(semesterId, examTypeId, kkCollegeName, cloudMarkSubjectCodeList);
         AssignContrastResult assignContrastResult = null;
         if (!CollectionUtils.isEmpty(studentMarkResultList)) {
             BigDecimal assignBeforeSumScore = new BigDecimal(0), assignAfterSumScore = new BigDecimal(0), sumCount = new BigDecimal(studentMarkResultList.size());
@@ -135,7 +133,7 @@ public class ExamAssignController {
             //赋分后不及格率
             BigDecimal assignAfterFailRate = new BigDecimal(assignAfterFailCount).divide(sumCount, 2, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP);
             assignContrastResult = new AssignContrastResult(sumCount.intValue(), assignBeforeAverageScore, assignBeforeFailRate,
-                    assignBeforeFailCount, assignAfterAverageScore, assignAfterAverageScore, assignAfterFailCount);
+                    assignBeforeFailCount, assignAfterAverageScore, assignAfterFailRate, assignAfterFailCount);
         }
         return ResultUtil.ok(Objects.isNull(assignContrastResult) ? new AssignContrastResult() : assignContrastResult);
     }

+ 33 - 20
src/main/java/com/qmth/eds/api/SysController.java

@@ -14,6 +14,7 @@ import com.qmth.eds.common.util.Result;
 import com.qmth.eds.common.util.ResultUtil;
 import com.qmth.eds.common.util.ServletUtil;
 import com.qmth.eds.service.CommonService;
+import com.qmth.eds.service.ExamSyncStudentService;
 import com.qmth.eds.service.SysUserService;
 import com.qmth.eds.service.TeachcloudCommonService;
 import io.swagger.annotations.*;
@@ -44,6 +45,9 @@ public class SysController {
     @Resource
     CommonService commonService;
 
+    @Resource
+    ExamSyncStudentService examSyncStudentService;
+
     /**
      * 登录
      *
@@ -126,13 +130,15 @@ public class SysController {
     @ApiOperation(value = "查询考查学院列表")
     @PostMapping("/examine/college/list")
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = ExamineCollegeResult.class)})
-    public Result examineCollegeList(@ApiParam(value = "学期id") @RequestParam(required = false) Long semesterId,
-                                     @ApiParam(value = "考试id") @RequestParam(required = false) Long examId,
-                                     @ApiParam(value = "科目代码") @RequestParam(required = false) String subjectCode) {
-        List<ExamSyncStudent> examSyncStudentList = commonService.conditionCommonQuery(semesterId, examId, subjectCode);
-        List<ExamineCollegeResult> examineCollegeResultList = null;
+    public Result examineCollegeList(@ApiParam(value = "学期id", required = true) @RequestParam Long semesterId,
+                                     @ApiParam(value = "考试id", required = true) @RequestParam Long examTypeId,
+                                     @ApiParam(value = "科目代码", required = true) @RequestParam String courseCode,
+                                     @ApiParam(value = "开课学院", required = true) @RequestParam String kkCollegeName) {
+        List<String> cloudMarkSubjectCodeList = commonService.findCloudMarkSubjectCode(semesterId, examTypeId, courseCode);
+        List<ExamSyncStudent> examSyncStudentList = examSyncStudentService.queryByExamineCollegeList(semesterId, examTypeId, cloudMarkSubjectCodeList, kkCollegeName, null, null);
+        Set<ExamineCollegeResult> examineCollegeResultList = null;
         if (!CollectionUtils.isEmpty(examSyncStudentList)) {
-            examineCollegeResultList = new ArrayList<>(examSyncStudentList.size());
+            examineCollegeResultList = new LinkedHashSet<>(examSyncStudentList.size());
             for (ExamSyncStudent e : examSyncStudentList) {
                 if (Objects.nonNull(e.getJgmc()) && !Objects.equals(e.getJgmc().trim(), "")) {
                     examineCollegeResultList.add(new ExamineCollegeResult(e.getJgmc(), e.getJgmc()));
@@ -145,13 +151,16 @@ public class SysController {
     @ApiOperation(value = "查询班级列表")
     @PostMapping("/clazz/list")
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = ClazzResult.class)})
-    public Result clazzList(@ApiParam(value = "学期id") @RequestParam(required = false) Long semesterId,
-                            @ApiParam(value = "考试id") @RequestParam(required = false) Long examId,
-                            @ApiParam(value = "科目代码") @RequestParam(required = false) String subjectCode) {
-        List<ExamSyncStudent> examSyncStudentList = commonService.conditionCommonQuery(semesterId, examId, subjectCode);
-        List<ClazzResult> clazzResultList = null;
+    public Result clazzList(@ApiParam(value = "学期id", required = true) @RequestParam Long semesterId,
+                            @ApiParam(value = "考试id", required = true) @RequestParam Long examTypeId,
+                            @ApiParam(value = "科目代码", required = true) @RequestParam String courseCode,
+                            @ApiParam(value = "开课学院", required = true) @RequestParam String kkCollegeName,
+                            @ApiParam(value = "考查学院名称", required = true) @RequestParam String kcCollegeName) {
+        List<String> cloudMarkSubjectCodeList = commonService.findCloudMarkSubjectCode(semesterId, examTypeId, courseCode);
+        List<ExamSyncStudent> examSyncStudentList = examSyncStudentService.queryByExamineCollegeList(semesterId, examTypeId, cloudMarkSubjectCodeList, kkCollegeName, kcCollegeName, null);
+        Set<ClazzResult> clazzResultList = null;
         if (!CollectionUtils.isEmpty(examSyncStudentList)) {
-            clazzResultList = new ArrayList<>(examSyncStudentList.size());
+            clazzResultList = new LinkedHashSet<>(examSyncStudentList.size());
             for (ExamSyncStudent e : examSyncStudentList) {
                 if ((Objects.nonNull(e.getJxbId()) && !Objects.equals(e.getJxbId().trim(), ""))
                         && (Objects.nonNull(e.getJxbmc()) && !Objects.equals(e.getJxbmc().trim(), ""))) {
@@ -165,16 +174,20 @@ public class SysController {
     @ApiOperation(value = "查询任课老师列表")
     @PostMapping("/teacher/list")
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = TeacherResult.class)})
-    public Result teacherList(@ApiParam(value = "学期id") @RequestParam(required = false) Long semesterId,
-                              @ApiParam(value = "考试id") @RequestParam(required = false) Long examId,
-                              @ApiParam(value = "科目代码") @RequestParam(required = false) String subjectCode) {
-        List<ExamSyncStudent> examSyncStudentList = commonService.conditionCommonQuery(semesterId, examId, subjectCode);
-        List<TeacherResult> teacherResultList = null;
+    public Result teacherList(@ApiParam(value = "学期id", required = true) @RequestParam Long semesterId,
+                              @ApiParam(value = "考试id", required = true) @RequestParam Long examTypeId,
+                              @ApiParam(value = "科目代码", required = true) @RequestParam String courseCode,
+                              @ApiParam(value = "开课学院", required = true) @RequestParam String kkCollegeName,
+                              @ApiParam(value = "考查学院名称", required = true) @RequestParam String kcCollegeName,
+                              @ApiParam(value = "班级id", required = true) @RequestParam String clazzId) {
+        List<String> cloudMarkSubjectCodeList = commonService.findCloudMarkSubjectCode(semesterId, examTypeId, courseCode);
+        List<ExamSyncStudent> examSyncStudentList = examSyncStudentService.queryByExamineCollegeList(semesterId, examTypeId, cloudMarkSubjectCodeList, kkCollegeName, kcCollegeName, clazzId);
+        Set<TeacherResult> teacherResultList = null;
         if (!CollectionUtils.isEmpty(examSyncStudentList)) {
-            teacherResultList = new ArrayList<>(examSyncStudentList.size());
+            teacherResultList = new LinkedHashSet<>(examSyncStudentList.size());
             for (ExamSyncStudent e : examSyncStudentList) {
-                if ((Objects.nonNull(e.getJgh()) && !Objects.equals(e.getJgh().trim(), ""))
-                        && (Objects.nonNull(e.getXm()) && !Objects.equals(e.getXm().trim(), ""))) {
+                if ((Objects.nonNull(e.getJxbId()) && !Objects.equals(e.getJxbId().trim(), ""))
+                        && (Objects.nonNull(e.getJxbmc()) && !Objects.equals(e.getJxbmc().trim(), ""))) {
                     teacherResultList.add(new TeacherResult(e.getJgh(), e.getXm()));
                 }
             }

+ 18 - 0
src/main/java/com/qmth/eds/bean/result/ClazzResult.java

@@ -3,6 +3,7 @@ package com.qmth.eds.bean.result;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.io.Serializable;
+import java.util.Objects;
 
 /**
  * @Description: 班级result
@@ -43,4 +44,21 @@ public class ClazzResult implements Serializable {
     public void setName(String name) {
         this.name = name;
     }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+        ClazzResult that = (ClazzResult) o;
+        return Objects.equals(id, that.id) && Objects.equals(name, that.name);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(id, name);
+    }
 }

+ 18 - 0
src/main/java/com/qmth/eds/bean/result/ExamineCollegeResult.java

@@ -3,6 +3,7 @@ package com.qmth.eds.bean.result;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.io.Serializable;
+import java.util.Objects;
 
 /**
  * @Description: 考查学院result
@@ -43,4 +44,21 @@ public class ExamineCollegeResult implements Serializable {
     public void setName(String name) {
         this.name = name;
     }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+        ExamineCollegeResult that = (ExamineCollegeResult) o;
+        return Objects.equals(code, that.code) && Objects.equals(name, that.name);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(code, name);
+    }
 }

+ 18 - 0
src/main/java/com/qmth/eds/bean/result/TeacherResult.java

@@ -3,6 +3,7 @@ package com.qmth.eds.bean.result;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.io.Serializable;
+import java.util.Objects;
 
 /**
  * @Description: 任课老师result
@@ -43,4 +44,21 @@ public class TeacherResult implements Serializable {
     public void setName(String name) {
         this.name = name;
     }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+        TeacherResult that = (TeacherResult) o;
+        return Objects.equals(code, that.code) && Objects.equals(name, that.name);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(code, name);
+    }
 }

+ 16 - 7
src/main/java/com/qmth/eds/mapper/CloudMarkingScoreMapper.java

@@ -10,7 +10,6 @@ import com.qmth.eds.common.entity.CloudMarkingScore;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
-import java.util.Set;
 
 /**
  * 云阅卷成绩表 Mapper 接口
@@ -24,19 +23,29 @@ public interface CloudMarkingScoreMapper extends BaseMapper<CloudMarkingScore> {
      *
      * @param schoolId
      * @param semesterId
-     * @param orgId
+     * @param examTypeId
      * @param courseCode
      * @return
      */
-    List<CloudMarkingScore> queryBySyncCourseCode(@Param("schoolId") Long schoolId, @Param("semesterId") Long semesterId, @Param("orgId") Long orgId, @Param("courseCode") String courseCode);
+    List<String> queryBySyncCourseCode(@Param("schoolId") Long schoolId, @Param("semesterId") Long semesterId, @Param("examTypeId") Long examTypeId, @Param("courseCode") String courseCode);
 
     List<ExamSyncStudentDto> listExamSyncStudentDtos(@Param("schoolId") Long schoolId, @Param("semesterId") Long semesterId, @Param("examTypeId") Long examTypeId, @Param("courseCode") String courseCode, @Param("openCollege") String openCollege);
 
+    /**
+     * 查询学生成绩
+     *
+     * @param schoolId
+     * @param orgId
+     * @param semesterId
+     * @param examTypeId
+     * @param kkCollegeName
+     * @param cloudMarkSubjectCodeList
+     * @return
+     */
     List<StudentMarkResult> queryStudentMark(@Param("schoolId") Long schoolId,
                                              @Param("orgId") Long orgId,
                                              @Param("semesterId") Long semesterId,
-                                             @Param("examId") Long examId,
-                                             @Param("subjectCode") String subjectCode,
-                                             @Param("collegeName") String collegeName,
-                                             @Param("subjectCodeSet") Set<String> subjectCodeSet);
+                                             @Param("examTypeId") Long examTypeId,
+                                             @Param("kkCollegeName") String kkCollegeName,
+                                             @Param("cloudMarkSubjectCodeList") List<String> cloudMarkSubjectCodeList);
 }

+ 13 - 2
src/main/java/com/qmth/eds/mapper/ExamAssignMapper.java

@@ -23,10 +23,21 @@ public interface ExamAssignMapper extends BaseMapper<ExamAssign> {
      * 赋分结果预览
      *
      * @param iPage
-     * @param collegeName
+     * @param schoolId
+     * @param orgId
+     * @param semesterId
+     * @param examTypeId
+     * @param courseCode
+     * @param kkCollegeName
+     * @param kcCollegeName
      * @param clazzId
      * @param teacherCode
      * @return
      */
-    IPage<AssignResultPreviewResult> assignResultPreview(IPage<Map> iPage, @Param("collegeName") String collegeName, @Param("clazzId") String clazzId, @Param("teacherCode") String teacherCode);
+    IPage<AssignResultPreviewResult> assignResultPreview(IPage<Map> iPage, @Param("schoolId") Long schoolId, @Param("orgId") Long orgId,
+                                                         @Param("semesterId") Long semesterId,
+                                                         @Param("examTypeId") Long examTypeId,
+                                                         @Param("courseCode") String courseCode,
+                                                         @Param("kkCollegeName") String kkCollegeName,
+                                                         @Param("kcCollegeName") String kcCollegeName, @Param("clazzId") String clazzId, @Param("teacherCode") String teacherCode);
 }

+ 7 - 5
src/main/java/com/qmth/eds/mapper/ExamSyncStudentMapper.java

@@ -5,7 +5,6 @@ import com.qmth.eds.common.entity.ExamSyncStudent;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
-import java.util.Set;
 
 /**
  * 考务数据同步考生信息表 Mapper 接口
@@ -18,10 +17,13 @@ public interface ExamSyncStudentMapper extends BaseMapper<ExamSyncStudent> {
      * @param schoolId
      * @param semesterId
      * @param orgId
-     * @param examId
-     * @param courseCode
-     * @param subjectCodeSet
+     * @param examTypeId
+     * @param cloudMarkSubjectCodeList
+     * @param kkCollegeName
+     * @param kcCollegeName
+     * @param clazzId
      * @return
      */
-    List<ExamSyncStudent> queryByExamineCollegeList(@Param("schoolId") Long schoolId, @Param("semesterId") Long semesterId, @Param("orgId") Long orgId, @Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("subjectCodeSet") Set<String> subjectCodeSet);
+    List<ExamSyncStudent> queryByExamineCollegeList(@Param("schoolId") Long schoolId, @Param("semesterId") Long semesterId, @Param("orgId") Long orgId, @Param("examTypeId") Long examTypeId, @Param("cloudMarkSubjectCodeList") List<String> cloudMarkSubjectCodeList
+            , @Param("kkCollegeName") String kkCollegeName, @Param("kcCollegeName") String kcCollegeName, @Param("clazzId") String clazzId);
 }

+ 9 - 15
src/main/java/com/qmth/eds/service/CloudMarkingScoreService.java

@@ -8,7 +8,6 @@ import com.qmth.eds.bean.result.StudentMarkResult;
 import com.qmth.eds.common.entity.CloudMarkingScore;
 
 import java.util.List;
-import java.util.Set;
 
 /**
  * 云阅卷成绩表 服务类
@@ -24,30 +23,25 @@ public interface CloudMarkingScoreService extends IService<CloudMarkingScore> {
      *
      * @param schoolId
      * @param semesterId
-     * @param orgId
+     * @param examTypeId
      * @param courseCode
      * @return
      */
-    List<CloudMarkingScore> queryBySyncCourseCode(Long schoolId, Long semesterId, Long orgId, String courseCode);
+    List<String> queryBySyncCourseCode(Long schoolId, Long semesterId, Long examTypeId, String courseCode);
 
     List<ExamSyncStudentDto> listExamSyncStudentDtos(Long schoolId, Long semesterId, Long examTypeId, String courseCode, String openCollege);
 
     /**
      * 查询学生成绩
      *
-     * @param schoolId
-     * @param orgId
      * @param semesterId
-     * @param examId
-     * @param subjectCode
-     * @param collegeName
-     * @param subjectCodeSet
+     * @param examTypeId
+     * @param kkCollegeName
+     * @param cloudMarkSubjectCodeList
      * @return
      */
-    List<StudentMarkResult> queryStudentMark(Long schoolId, Long orgId,
-                                             Long semesterId,
-                                             Long examId,
-                                             String subjectCode,
-                                             String collegeName,
-                                             Set<String> subjectCodeSet);
+    List<StudentMarkResult> queryStudentMark(Long semesterId,
+                                             Long examTypeId,
+                                             String kkCollegeName,
+                                             List<String> cloudMarkSubjectCodeList);
 }

+ 3 - 13
src/main/java/com/qmth/eds/service/CommonService.java

@@ -77,25 +77,15 @@ public interface CommonService {
      */
     String getSysSettingValue(Long schoolId, String code);
 
-    /**
-     * 查询条件公用
-     *
-     * @param semesterId
-     * @param examId
-     * @param subjectCode
-     * @return
-     */
-    List<ExamSyncStudent> conditionCommonQuery(Long semesterId, Long examId, String subjectCode);
-
     /**
      * 查询云阅卷科目代码
      *
      * @param semesterId
-     * @param examId
-     * @param subjectCode
+     * @param examTypeId
+     * @param courseCode
      * @return
      */
-    Set<String> findCloudMarkSubjectCode(Long semesterId, Long examId, String subjectCode);
+    Set<String> findCloudMarkSubjectCode(Long semesterId, Long examTypeId, String courseCode);
 
     List<ExamSyncStudent> conditionCourseQuery(Long semesterId, Long examTypeId);
 }

+ 11 - 2
src/main/java/com/qmth/eds/service/ExamAssignService.java

@@ -24,12 +24,21 @@ public interface ExamAssignService extends IService<ExamAssign> {
      * 赋分结果预览
      *
      * @param iPage
-     * @param collegeName
+     * @param semesterId
+     * @param examTypeId
+     * @param courseCode
+     * @param kkCollegeName
+     * @param kcCollegeName
      * @param clazzId
      * @param teacherCode
      * @return
      */
-    IPage<AssignResultPreviewResult> assignResultPreview(IPage<Map> iPage, String collegeName, String clazzId, String teacherCode);
+    IPage<AssignResultPreviewResult> assignResultPreview(IPage<Map> iPage,
+                                                         Long semesterId,
+                                                         Long examTypeId,
+                                                         String courseCode,
+                                                         String kkCollegeName,
+                                                         String kcCollegeName, String clazzId, String teacherCode);
 
     Map contrast(Long semesterId, Long examTypeId, String courseCode);
 

+ 6 - 6
src/main/java/com/qmth/eds/service/ExamSyncStudentService.java

@@ -17,13 +17,13 @@ public interface ExamSyncStudentService extends IService<ExamSyncStudent> {
     /**
      * 根据机构id、考试id、科目代码查询考查学院
      *
-     * @param schoolId
      * @param semesterId
-     * @param orgId
-     * @param examId
-     * @param courseCode
-     * @param cloudMarkSubjectCodeSet
+     * @param examTypeId
+     * @param cloudMarkSubjectCodeList
+     * @param kkCollegeName
+     * @param kcCollegeName
+     * @param clazzId
      * @return
      */
-    List<ExamSyncStudent> queryByExamineCollegeList(Long schoolId, Long semesterId, Long orgId, Long examId, String courseCode, Set<String> cloudMarkSubjectCodeSet);
+    List<ExamSyncStudent> queryByExamineCollegeList(Long semesterId, Long examTypeId, List<String> cloudMarkSubjectCodeList, String kkCollegeName, String kcCollegeName, String clazzId);
 }

+ 3 - 30
src/main/java/com/qmth/eds/service/impl/AuthInfoServiceImpl.java

@@ -6,22 +6,13 @@ import com.qmth.boot.core.solar.model.AppInfo;
 import com.qmth.boot.core.solar.model.OrgInfo;
 import com.qmth.boot.core.solar.service.SolarService;
 import com.qmth.eds.bean.dto.AuthOrgInfoDto;
-import com.qmth.eds.common.contant.SystemConstant;
 import com.qmth.eds.common.entity.BasicSchool;
 import com.qmth.eds.common.entity.SysCollege;
 import com.qmth.eds.common.entity.SysOrg;
 import com.qmth.eds.common.entity.TSAuth;
 import com.qmth.eds.common.enums.AuthEnum;
 import com.qmth.eds.common.enums.ExceptionResultEnum;
-import com.qmth.eds.common.enums.UploadFileEnum;
-import com.qmth.eds.common.util.FileStoreUtil;
-import com.qmth.eds.core.config.DictionaryConfig;
-import com.qmth.eds.mapper.BasicSchoolMapper;
-import com.qmth.eds.mapper.SysCollegeMapper;
-import com.qmth.eds.mapper.SysOrgMapper;
-import com.qmth.eds.mapper.TSAuthMapper;
 import com.qmth.eds.service.*;
-import org.apache.commons.codec.digest.DigestUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
@@ -29,9 +20,6 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
-import java.io.File;
-import java.io.FileInputStream;
-import java.time.LocalDateTime;
 import java.util.*;
 
 /**
@@ -50,36 +38,21 @@ public class AuthInfoServiceImpl implements AuthInfoService {
     @Resource
     TSAuthService tsAuthService;
 
-    @Resource
-    TSAuthMapper tsAuthMapper;
-
     @Resource
     CommonCacheService commonCacheService;
 
     @Resource
     BasicSchoolService basicSchoolService;
 
-    @Resource
-    BasicSchoolMapper basicSchoolMapper;
-
     @Resource
     SysCollegeService sysCollegeService;
 
-    @Resource
-    FileStoreUtil fileStoreUtil;
-
-    @Resource
-    DictionaryConfig dictionaryConfig;
-
     @Resource
     AuthInfoService authInfoService;
 
     @Resource
     SysOrgService sysOrgService;
 
-    @Resource
-    SysOrgMapper sysOrgMapper;
-
     /**
      * 授权信息初始化
      */
@@ -219,12 +192,12 @@ public class AuthInfoServiceImpl implements AuthInfoService {
             QueryWrapper<TSAuth> tsAuthQueryWrapper = new QueryWrapper<>();
             tsAuthQueryWrapper.lambda().in(TSAuth::getSchoolId, orgIdsSet);
             tsAuthService.remove(tsAuthQueryWrapper);
-            tsAuthMapper.insertBatch(tsAuthList);
+            tsAuthService.saveOrUpdateBatch(tsAuthList);
 
             if (!CollectionUtils.isEmpty(basicSchoolSet)) {
                 commonCacheService.removeSchoolIdCache();
                 commonCacheService.removeSchoolCodeCache();
-                basicSchoolMapper.insertBatch(basicSchoolSet);
+                basicSchoolService.saveOrUpdateBatch(basicSchoolSet);
 
                 // 往学院表插入一条数据
                 for (BasicSchool basicSchool : basicSchoolSet) {
@@ -235,7 +208,7 @@ public class AuthInfoServiceImpl implements AuthInfoService {
 
             if (!CollectionUtils.isEmpty(sysOrgSet)) {
                 commonCacheService.removeOrgCache();
-                sysOrgMapper.insertBatch(sysOrgSet);
+                sysOrgService.saveOrUpdateBatch(sysOrgSet);
             }
         }
     }

+ 11 - 11
src/main/java/com/qmth/eds/service/impl/CloudMarkingScoreServiceImpl.java

@@ -8,6 +8,7 @@ import com.qmth.eds.bean.dto.CloudMarkingScoreDto;
 import com.qmth.eds.bean.dto.ExamSyncStudentDto;
 import com.qmth.eds.bean.result.StudentMarkResult;
 import com.qmth.eds.common.entity.CloudMarkingScore;
+import com.qmth.eds.common.entity.SysUser;
 import com.qmth.eds.common.util.ServletUtil;
 import com.qmth.eds.mapper.CloudMarkingScoreMapper;
 import com.qmth.eds.service.CloudMarkingScoreService;
@@ -45,13 +46,13 @@ public class CloudMarkingScoreServiceImpl extends ServiceImpl<CloudMarkingScoreM
      *
      * @param schoolId
      * @param semesterId
-     * @param orgId
+     * @param examTypeId
      * @param courseCode
      * @return
      */
     @Override
-    public List<CloudMarkingScore> queryBySyncCourseCode(Long schoolId, Long semesterId, Long orgId, String courseCode) {
-        return cloudMarkingScoreMapper.queryBySyncCourseCode(schoolId, semesterId, orgId, courseCode);
+    public List<String> queryBySyncCourseCode(Long schoolId, Long semesterId, Long examTypeId, String courseCode) {
+        return cloudMarkingScoreMapper.queryBySyncCourseCode(schoolId, semesterId, examTypeId, courseCode);
     }
 
     @Override
@@ -62,17 +63,16 @@ public class CloudMarkingScoreServiceImpl extends ServiceImpl<CloudMarkingScoreM
     /**
      * 查询学生成绩
      *
-     * @param schoolId
-     * @param orgId
      * @param semesterId
-     * @param examId
-     * @param subjectCode
-     * @param collegeName
-     * @param subjectCodeSet
+     * @param examTypeId
+     * @param kkCollegeName
+     * @param cloudMarkSubjectCodeList
      * @return
      */
     @Override
-    public List<StudentMarkResult> queryStudentMark(Long schoolId, Long orgId, Long semesterId, Long examId, String subjectCode, String collegeName, Set<String> subjectCodeSet) {
-        return cloudMarkingScoreMapper.queryStudentMark(schoolId, orgId, semesterId, examId, subjectCode, collegeName, subjectCodeSet);
+    public List<StudentMarkResult> queryStudentMark(Long semesterId, Long examTypeId, String kkCollegeName, List<String> cloudMarkSubjectCodeList) {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        return cloudMarkingScoreMapper.queryStudentMark(schoolId, sysUser.getOrgId(), semesterId, examTypeId, kkCollegeName, cloudMarkSubjectCodeList);
     }
 }

+ 5 - 27
src/main/java/com/qmth/eds/service/impl/CommonServiceImpl.java

@@ -245,42 +245,20 @@ public class CommonServiceImpl implements CommonService {
         return simpleObject.getValue();
     }
 
-    /**
-     * 查询条件公用
-     *
-     * @param semesterId
-     * @param examId
-     * @param subjectCode
-     * @return
-     */
-    @Override
-    public List<ExamSyncStudent> conditionCommonQuery(Long semesterId, Long examId, String subjectCode) {
-        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        Set<String> subjectCodeSet = this.findCloudMarkSubjectCode(semesterId, examId, subjectCode);
-        return examSyncStudentService.queryByExamineCollegeList(schoolId, semesterId, sysUser.getOrgId(), examId, subjectCode, subjectCodeSet);
-    }
-
     /**
      * 查询云阅卷科目代码
      *
      * @param semesterId
-     * @param examId
-     * @param subjectCode
+     * @param examTypeId
+     * @param courseCode
      * @return
      */
     @Override
-    public Set<String> findCloudMarkSubjectCode(Long semesterId, Long examId, String subjectCode) {
-        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+    public List<String> findCloudMarkSubjectCode(Long semesterId, Long examTypeId, String courseCode) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         //先查询云阅卷科目代码
-        List<CloudMarkingScore> cloudMarkingScoreList = cloudMarkingScoreService.queryBySyncCourseCode(schoolId, semesterId, sysUser.getOrgId(), subjectCode);
-        Set<String> subjectCodeSet = null;
-        if (!CollectionUtils.isEmpty(cloudMarkingScoreList)) {
-            subjectCodeSet = new HashSet<>(cloudMarkingScoreList.size());
-            subjectCodeSet = cloudMarkingScoreList.stream().map(s -> s.getSubjectCode()).collect(Collectors.toSet());
-        }
-        return !CollectionUtils.isEmpty(subjectCodeSet) ? subjectCodeSet : Collections.emptySet();
+        List<String> courseCodeList = cloudMarkingScoreService.queryBySyncCourseCode(schoolId, semesterId, examTypeId, courseCode);
+        return !CollectionUtils.isEmpty(courseCodeList) ? courseCodeList : Collections.emptyList();
     }
 
     @Override

+ 11 - 3
src/main/java/com/qmth/eds/service/impl/ExamAssignServiceImpl.java

@@ -108,14 +108,22 @@ public class ExamAssignServiceImpl extends ServiceImpl<ExamAssignMapper, ExamAss
      * 赋分结果预览
      *
      * @param iPage
-     * @param collegeName
+     * @param semesterId
+     * @param examTypeId
+     * @param courseCode
+     * @param kkCollegeName
      * @param clazzId
      * @param teacherCode
      * @return
      */
     @Override
-    public IPage<AssignResultPreviewResult> assignResultPreview(IPage<Map> iPage, String collegeName, String clazzId, String teacherCode) {
-        return examAssignMapper.assignResultPreview(iPage, collegeName, clazzId, teacherCode);
+    public IPage<AssignResultPreviewResult> assignResultPreview(IPage<Map> iPage,
+                                                                Long semesterId,
+                                                                Long examTypeId,
+                                                                String courseCode, String kkCollegeName, String kcCollegeName, String clazzId, String teacherCode) {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        return examAssignMapper.assignResultPreview(iPage, schoolId, sysUser.getOrgId(), semesterId, examTypeId, courseCode, kkCollegeName, kcCollegeName, clazzId, teacherCode);
     }
 
     @Override

+ 11 - 8
src/main/java/com/qmth/eds/service/impl/ExamSyncStudentServiceImpl.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.eds.common.entity.ExamCourseMapping;
 import com.qmth.eds.common.entity.ExamSyncStudent;
 import com.qmth.eds.common.entity.ExamSyncTotal;
+import com.qmth.eds.common.entity.SysUser;
+import com.qmth.eds.common.util.ServletUtil;
 import com.qmth.eds.mapper.ExamSyncStudentMapper;
 import com.qmth.eds.service.ExamCourseMappingService;
 import com.qmth.eds.service.ExamSyncStudentService;
@@ -13,7 +15,6 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.util.List;
 import java.util.Optional;
-import java.util.Set;
 
 @Service
 public class ExamSyncStudentServiceImpl extends ServiceImpl<ExamSyncStudentMapper, ExamSyncStudent> implements ExamSyncStudentService {
@@ -55,16 +56,18 @@ public class ExamSyncStudentServiceImpl extends ServiceImpl<ExamSyncStudentMappe
     /**
      * 根据机构id、考试id、科目代码查询考查学院
      *
-     * @param schoolId
      * @param semesterId
-     * @param orgId
-     * @param examId
-     * @param courseCode
-     * @param cloudMarkSubjectCodeSet
+     * @param examTypeId
+     * @param cloudMarkSubjectCodeList
+     * @param kkCollegeName
+     * @param kcCollegeName
+     * @param clazzId
      * @return
      */
     @Override
-    public List<ExamSyncStudent> queryByExamineCollegeList(Long schoolId, Long semesterId, Long orgId, Long examId, String courseCode, Set<String> cloudMarkSubjectCodeSet) {
-        return examSyncStudentMapper.queryByExamineCollegeList(schoolId, semesterId, orgId, examId, courseCode, cloudMarkSubjectCodeSet);
+    public List<ExamSyncStudent> queryByExamineCollegeList(Long semesterId, Long examTypeId, List<String> cloudMarkSubjectCodeList, String kkCollegeName, String kcCollegeName, String clazzId) {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        return examSyncStudentMapper.queryByExamineCollegeList(schoolId, semesterId, sysUser.getOrgId(), examTypeId, cloudMarkSubjectCodeList, kkCollegeName, kcCollegeName, clazzId);
     }
 }

+ 31 - 56
src/main/resources/mapper/CloudMarkingScoreMapper.xml

@@ -39,34 +39,27 @@
         </where>
     </select>
 
-    <select id="queryBySyncCourseCode" resultType="com.qmth.eds.common.entity.CloudMarkingScore">
+    <select id="queryBySyncCourseCode" resultType="java.lang.String">
         select
-            cms.*
+            ecm.cloud_marking_course_code
         from
-            cloud_marking_score cms
-        <where> 1 = 1
-            <if test="orgId != null and orgId != ''">
-                and cms.school_id = #{orgId}
+            exam_course_mapping ecm
+        <where>
+            <if test="schoolId != null and schoolId != ''">
+                and ecm.school_id = #{schoolId}
             </if>
             <if test="semesterId != null and semesterId != ''">
-                and cms.semester_id = #{semesterId}
+                and ecm.semester_id = #{semesterId}
+            </if>
+            <if test="examTypeId != null and examTypeId != ''">
+                and ecm.exam_type_id = #{examTypeId}
+            </if>
+            <if test="courseCode != null and courseCode != ''">
+                and ecm.sync_course_code = #{courseCode}
             </if>
-                and exists (
-                    select
-                        ecm.cloud_marking_course_code
-                    from
-                        exam_course_mapping ecm
-                    <where> 1 = 1
-                        <if test="schoolId != null and schoolId != ''">
-                            and ecm.school_id = #{schoolId}
-                        </if>
-                        <if test="courseCode != null and courseCode != ''">
-                            and ecm.sync_course_code = #{courseCode}
-                        </if>
-                      and cms.subject_code = ecm.cloud_marking_course_code
-                    </where>)
         </where>
     </select>
+
     <select id="listExamSyncStudentDtos" resultType="com.qmth.eds.bean.dto.ExamSyncStudentDto">
         SELECT
             cms.id cloudMarkingScoreId,
@@ -118,46 +111,28 @@
             t.subjective_score as subjectiveScore
         from
         exam_sync_student ess
-        join exam_course_mapping ecm on 1 = 1
-        <if test="courseCode != null and courseCode != ''">
-            and ecm.sync_course_code = #{courseCode}
-        </if>
-        <if test="subjectCodeSet != null and subjectCodeSet != '' and subjectCodeSet.size > 0">
-            and ecm.cloud_marking_course_code in
-            <foreach collection="subjectCodeSet" item="subjectCode" index="index" open="(" close=")" separator=",">
-                #{subjectCode}
-            </foreach>
-        </if>
         join cloud_marking_score t on ess.id = t.exam_sync_student_id
         <where> 1 = 1
             <if test="schoolId != null and schoolId != ''">
                 and ess.school_id = #{schoolId}
             </if>
-            and exists(
-            select
-            cms.student_code
-            from
-            cloud_marking_score cms
-            <where> 1 = 1
-                <if test="orgId != null and orgId != ''">
-                    and cms.school_id = #{orgId}
-                </if>
-                <if test="semesterId != null and semesterId != ''">
-                    and cms.semester_id = #{semesterId}
-                </if>
-                <if test="examId != null and examId != ''">
-                    and cms.exam_id = #{examId}
-                </if>
-                <if test="subjectCodeSet != null and subjectCodeSet != '' and subjectCodeSet.size > 0">
-                    and cms.subject_code in
-                    <foreach collection="subjectCodeSet" item="subjectCode" index="index" open="(" close=")" separator=",">
-                        #{subjectCode}
-                    </foreach>
-                </if>
-                and ess.id = cms.exam_sync_student_id
-            </where>)
-            <if test="collegeName != null and collegeName != ''">
-                and ess.kkbm = #{collegeName}
+            <if test="orgId != null and orgId != ''">
+                and t.school_id = #{orgId}
+            </if>
+            <if test="semesterId != null and semesterId != ''">
+                and t.semester_id = #{semesterId}
+            </if>
+            <if test="examTypeId != null and examTypeId != ''">
+                and t.exam_type_id = #{examTypeId}
+            </if>
+            <if test="cloudMarkSubjectCodeList != null and cloudMarkSubjectCodeList != '' and cloudMarkSubjectCodeList.size > 0">
+                and t.subject_code in
+                <foreach collection="cloudMarkSubjectCodeList" item="subjectCode" index="index" open="(" close=")" separator=",">
+                    #{subjectCode}
+                </foreach>
+            </if>
+            <if test="kkCollegeName != null and kkCollegeName != ''">
+                and ess.kkbm = #{kkCollegeName}
             </if>
         </where>
     </select>

+ 20 - 6
src/main/resources/mapper/ExamAssignMapper.xml

@@ -41,17 +41,31 @@
             IFNULL(cms.assign_score,'/') as assignScore
         from
             exam_sync_student ess
-                join cloud_marking_score cms on
-                cms.exam_sync_student_id = ess.id
+        join cloud_marking_score cms on cms.exam_sync_student_id = ess.id
         <where>
-            <if test="collegeName != null and collegeName != ''">
-                and ecm.jgmc = #{collegeName}
+            <if test="schoolId != null and schoolId != ''">
+                and ess.school_id = #{schoolId}
+            </if>
+            <if test="orgId != null and orgId != ''">
+                and cms.school_id = #{orgId}
+            </if>
+            <if test="kcCollegeName != null and kcCollegeName != ''">
+                and ess.jgmc = #{kcCollegeName}
+            </if>
+            <if test="semesterId != null and semesterId != ''">
+                and cms.semester_id = #{semesterId}
+            </if>
+            <if test="examTypeId != null and examTypeId != ''">
+                and cms.exam_type_id = #{examTypeId}
+            </if>
+            <if test="kkCollegeName != null and kkCollegeName != ''">
+                and ess.kkbm = #{kkCollegeName}
             </if>
             <if test="clazzId != null and clazzId != ''">
-                and ecm.jxb_id = #{clazzId}
+                and ess.jxb_id = #{clazzId}
             </if>
             <if test="teacherCode != null and teacherCode != ''">
-                and ecm.jgh = #{teacherCode}
+                and ess.jgh = #{teacherCode}
             </if>
         </where>
         group by

+ 25 - 33
src/main/resources/mapper/ExamSyncStudentMapper.xml

@@ -7,43 +7,35 @@
             *
         from
             exam_sync_student ess
-        join exam_course_mapping ecm on 1 = 1
-        <if test="courseCode != null and courseCode != ''">
-            and ecm.sync_course_code = #{courseCode}
-        </if>
-        <if test="subjectCodeSet != null and subjectCodeSet != '' and subjectCodeSet.size > 0">
-            and ecm.cloud_marking_course_code in
-            <foreach collection="subjectCodeSet" item="subjectCode" index="index" open="(" close=")" separator=",">
-                #{subjectCode}
-            </foreach>
-        </if>
+            join cloud_marking_score cms on ess.id = cms.exam_sync_student_id
         <where> 1 = 1
             <if test="schoolId != null and schoolId != ''">
                 and ess.school_id = #{schoolId}
             </if>
-                and exists(
-                select
-                    cms.student_code
-                from
-                    cloud_marking_score cms
-                <where> 1 = 1
-                    <if test="orgId != null and orgId != ''">
-                        and cms.school_id = #{orgId}
-                    </if>
-                    <if test="semesterId != null and semesterId != ''">
-                        and cms.semester_id = #{semesterId}
-                    </if>
-                    <if test="examId != null and examId != ''">
-                        and cms.exam_id = #{examId}
-                    </if>
-                    <if test="subjectCodeSet != null and subjectCodeSet != '' and subjectCodeSet.size > 0">
-                        and cms.subject_code in
-                        <foreach collection="subjectCodeSet" item="subjectCode" index="index" open="(" close=")" separator=",">
-                            #{subjectCode}
-                        </foreach>
-                    </if>
-                    and ess.id = cms.exam_sync_student_id
-                </where>)
+            <if test="orgId != null and orgId != ''">
+                and cms.school_id = #{orgId}
+            </if>
+            <if test="semesterId != null and semesterId != ''">
+                and cms.semester_id = #{semesterId}
+            </if>
+            <if test="examTypeId != null and examTypeId != ''">
+                and cms.exam_type_id = #{examTypeId}
+            </if>
+            <if test="cloudMarkSubjectCodeList != null and cloudMarkSubjectCodeList != '' and cloudMarkSubjectCodeList.size > 0">
+                and cms.subject_code in
+                <foreach collection="cloudMarkSubjectCodeList" item="subjectCode" index="index" open="(" close=")" separator=",">
+                    #{subjectCode}
+                </foreach>
+            </if>
+            <if test="kkCollegeName != null and kkCollegeName != ''">
+                and ess.kkbm = #{kkCollegeName}
+            </if>
+            <if test="kcCollegeName != null and kcCollegeName != ''">
+                and ess.jgmc = #{kcCollegeName}
+            </if>
+            <if test="clazzId != null and clazzId != ''">
+                and ess.jxb_id = #{clazzId}
+            </if>
         </where>
         order by ess.jgmc
     </select>