Forráskód Böngészése

增加机构概念

xiaofei 2 éve
szülő
commit
a75247e876
21 módosított fájl, 284 hozzáadás és 65 törlés
  1. 4 4
      src/main/java/com/qmth/eds/api/CloudMarkingExamController.java
  2. 2 2
      src/main/java/com/qmth/eds/api/CloudMarkingScoreController.java
  3. 2 1
      src/main/java/com/qmth/eds/api/CloudMarkingScoreForeignController.java
  4. 33 0
      src/main/java/com/qmth/eds/api/SysCollegeController.java
  5. 108 0
      src/main/java/com/qmth/eds/common/entity/SysCollege.java
  6. 21 17
      src/main/java/com/qmth/eds/common/tools/CloudMarkingUtil.java
  7. 5 4
      src/main/java/com/qmth/eds/job/service/JobService.java
  8. 2 2
      src/main/java/com/qmth/eds/job/service/impl/JobServiceImpl.java
  9. 13 0
      src/main/java/com/qmth/eds/mapper/SysCollegeMapper.java
  10. 2 2
      src/main/java/com/qmth/eds/service/AsyncTaskService.java
  11. 2 2
      src/main/java/com/qmth/eds/service/CloudMarkingExamService.java
  12. 1 1
      src/main/java/com/qmth/eds/service/CloudMarkingScoreForeignService.java
  13. 2 1
      src/main/java/com/qmth/eds/service/DataSyncService.java
  14. 16 0
      src/main/java/com/qmth/eds/service/SysCollegeService.java
  15. 1 1
      src/main/java/com/qmth/eds/service/TBSyncTaskService.java
  16. 11 0
      src/main/java/com/qmth/eds/service/impl/AuthInfoServiceImpl.java
  17. 9 8
      src/main/java/com/qmth/eds/service/impl/CloudMarkingExamServiceImpl.java
  18. 5 4
      src/main/java/com/qmth/eds/service/impl/CloudMarkingScoreForeignServiceImpl.java
  19. 13 12
      src/main/java/com/qmth/eds/service/impl/DataSyncServiceImpl.java
  20. 29 0
      src/main/java/com/qmth/eds/service/impl/SysCollegeServiceImpl.java
  21. 3 4
      src/main/java/com/qmth/eds/service/impl/TBSyncTaskServiceImpl.java

+ 4 - 4
src/main/java/com/qmth/eds/api/CloudMarkingExamController.java

@@ -31,8 +31,8 @@ public class CloudMarkingExamController {
      */
     @ApiOperation(value = "查询云阅卷考试")
     @PostMapping("/list")
-    public Result listExam() {
-        return ResultUtil.ok(cloudMarkingExamService.listExam());
+    public Result listExam(Long collegeId) {
+        return ResultUtil.ok(cloudMarkingExamService.listExam(collegeId));
     }
 
     /**
@@ -40,7 +40,7 @@ public class CloudMarkingExamController {
      */
     @ApiOperation(value = "同步云阅卷考试")
     @PostMapping("/sync")
-    public Result syncExam() {
-        return ResultUtil.ok(cloudMarkingExamService.syncExam());
+    public Result syncExam(Long collegeId) {
+        return ResultUtil.ok(cloudMarkingExamService.syncExam(collegeId));
     }
 }

+ 2 - 2
src/main/java/com/qmth/eds/api/CloudMarkingScoreController.java

@@ -40,7 +40,7 @@ public class CloudMarkingScoreController {
      */
     @ApiOperation(value = "同步考生成绩")
     @PostMapping("/sync_student_score")
-    public Result syncStudentScore(Long semesterId, Long examTypeId, Integer examId) {
+    public Result syncStudentScore(Long semesterId, Long examTypeId, Long collegeId, Integer examId) {
         if (semesterId == null) {
             throw ExceptionResultEnum.ERROR.exception("请选择学期");
         }
@@ -50,7 +50,7 @@ public class CloudMarkingScoreController {
         if (examId == null) {
             throw ExceptionResultEnum.ERROR.exception("请选择云阅卷考试");
         }
-        jobService.syncStudentScore(semesterId, examTypeId, examId);
+        jobService.syncStudentScore(semesterId, examTypeId, collegeId, examId);
         return ResultUtil.success(true);
     }
 

+ 2 - 1
src/main/java/com/qmth/eds/api/CloudMarkingScoreForeignController.java

@@ -44,10 +44,11 @@ public class CloudMarkingScoreForeignController {
     @PostMapping("/page")
     public Result page(@RequestParam(value = "semesterId", required = false) Long semesterId,
                        @RequestParam(value = "examTypeId", required = false) Long examTypeId,
+                       @RequestParam(value = "collegeId", required = false) Long collegeId,
                        @RequestParam(value = "examId", required = false) String examId,
                        @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
                        @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
-        return ResultUtil.ok(cloudMarkingScoreForeignService.pageData(semesterId, examTypeId, examId, pageNumber, pageSize));
+        return ResultUtil.ok(cloudMarkingScoreForeignService.pageData(semesterId, examTypeId, collegeId, examId, pageNumber, pageSize));
     }
 
     /**

+ 33 - 0
src/main/java/com/qmth/eds/api/SysCollegeController.java

@@ -0,0 +1,33 @@
+package com.qmth.eds.api;
+
+import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.eds.common.util.Result;
+import com.qmth.eds.common.util.ResultUtil;
+import com.qmth.eds.service.BasicSchoolService;
+import com.qmth.eds.service.SysCollegeService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * <p>
+ * 学院表 前端控制器
+ * </p>
+ */
+@RestController
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/sys_college")
+public class SysCollegeController {
+
+    @Resource
+    private SysCollegeService sysCollegeService;
+
+    @ApiOperation(value = "查询")
+    @PostMapping("/list")
+    public Result list() {
+        return ResultUtil.ok(sysCollegeService.listBySchoolId());
+    }
+
+}

+ 108 - 0
src/main/java/com/qmth/eds/common/entity/SysCollege.java

@@ -0,0 +1,108 @@
+package com.qmth.eds.common.entity;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.eds.core.base.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.Objects;
+
+/**
+ * <p>
+ * 学院
+ * </p>
+ */
+@ApiModel(value = "SysCollege对象", description = "学院表")
+public class SysCollege extends BaseEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "主键")
+    private Long schoolId;
+
+    @ApiModelProperty(value = "学校编码")
+    private String code;
+
+    @ApiModelProperty(value = "学校名称")
+    private String name;
+
+    @ApiModelProperty(value = "访问key")
+    private String accessKey;
+
+    @ApiModelProperty(value = "访问秘钥")
+    private String accessSecret;
+
+    public SysCollege() {
+
+    }
+
+    public SysCollege(Long id, Long schoolId, String code, String name, String accessKey, String accessSecret) {
+        this.schoolId = schoolId;
+        this.code = code;
+        this.name = name;
+        this.accessKey = accessKey;
+        this.accessSecret = accessSecret;
+        setId(id);
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+        SysCollege that = (SysCollege) o;
+        return code.equals(that.code) && name.equals(that.name) && accessKey.equals(that.accessKey) && accessSecret.equals(that.accessSecret);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(code, name, accessKey, accessSecret);
+    }
+
+    public Long getSchoolId() {
+        return schoolId;
+    }
+
+    public void setSchoolId(Long schoolId) {
+        this.schoolId = schoolId;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getAccessKey() {
+        return accessKey;
+    }
+
+    public void setAccessKey(String accessKey) {
+        this.accessKey = accessKey;
+    }
+
+    public String getAccessSecret() {
+        return accessSecret;
+    }
+
+    public void setAccessSecret(String accessSecret) {
+        this.accessSecret = accessSecret;
+    }
+
+}

+ 21 - 17
src/main/java/com/qmth/eds/common/tools/CloudMarkingUtil.java

@@ -4,12 +4,12 @@ import com.alibaba.fastjson.JSONObject;
 import com.qmth.boot.tools.signature.SignatureEntity;
 import com.qmth.boot.tools.signature.SignatureType;
 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.enums.ExceptionResultEnum;
 import com.qmth.eds.common.util.HttpKit;
-import com.qmth.eds.common.util.ServletUtil;
 import com.qmth.eds.core.config.DictionaryConfig;
 import com.qmth.eds.service.CommonCacheService;
+import com.qmth.eds.service.SysCollegeService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
@@ -42,13 +42,16 @@ public class CloudMarkingUtil {
     @Resource
     CommonCacheService commonCacheService;
 
+    @Resource
+    SysCollegeService sysCollegeService;
+
     /**
      * 考试成绩考生查询接口
      *
      * @param pageNo   分页参数
      * @param pageSize 分页参数
      */
-    public List<JSONObject> getExam(int pageNo, int pageSize) {
+    public List<JSONObject> getExam(Long collegeId, int pageNo, int pageSize) {
         Map<String, String> paramMap = new HashMap<>();
         paramMap.put("pageNumber", String.valueOf(pageNo));
         paramMap.put("pageSize", String.valueOf(pageSize));
@@ -60,7 +63,7 @@ public class CloudMarkingUtil {
             throw ExceptionResultEnum.ERROR.exception("考试查询接口url未设置");
         }
 
-        Map<String, String> header = createHeader(examUrl);
+        Map<String, String> header = createHeader(examUrl, collegeId);
         //请求
         String examObject = HttpKit.sendPost(yyjRootUrl + examUrl, paramMap, header);
         return JSONObject.parseArray(JSONObject.toJSON(examObject).toString(), JSONObject.class);
@@ -70,8 +73,9 @@ public class CloudMarkingUtil {
      * 考试成绩考生数量查询接口
      *
      * @param mapSource 参数
+     * @param collegeId
      */
-    public int getStudentCount(Map<String, String> mapSource) {
+    public int getStudentCount(Map<String, String> mapSource, Long collegeId) {
         Map<String, String> map = paramMap(mapSource);
 
         String yyjRootUrl = dictionaryConfig.cloudMarkingDomain().getRootUrl();
@@ -82,7 +86,7 @@ public class CloudMarkingUtil {
         }
 
         //header
-        Map<String, String> headerMap = createHeader(studentCountUrl);
+        Map<String, String> headerMap = createHeader(studentCountUrl, collegeId);
         //请求
         String res = HttpKit.sendPost(yyjRootUrl + studentCountUrl, map, headerMap);
         if (StringUtils.isNotBlank(res)) {
@@ -95,11 +99,12 @@ public class CloudMarkingUtil {
     /**
      * 考试成绩考生查询接口
      *
-     * @param map      参数
-     * @param pageNo   分页参数
-     * @param pageSize 分页参数
+     * @param map       参数
+     * @param collegeId
+     * @param pageNo    分页参数
+     * @param pageSize  分页参数
      */
-    public List<JSONObject> getStudentScore(Map<String, String> map, int pageNo, int pageSize) {
+    public List<JSONObject> getStudentScore(Map<String, String> map, Long collegeId, int pageNo, int pageSize) {
         Map<String, String> paramMap = paramMap(map);
 
         paramMap.put("pageNumber", String.valueOf(pageNo));
@@ -112,7 +117,7 @@ public class CloudMarkingUtil {
             throw ExceptionResultEnum.ERROR.exception("考试成绩查询接口url未设置");
         }
 
-        Map<String, String> header = createHeader(studentScoreUrl);
+        Map<String, String> header = createHeader(studentScoreUrl, collegeId);
         //请求
         String studentObject = HttpKit.sendPost(yyjRootUrl + studentScoreUrl, paramMap, header);
         return JSONObject.parseArray(JSONObject.toJSON(studentObject).toString(), JSONObject.class);
@@ -123,14 +128,13 @@ public class CloudMarkingUtil {
      *
      * @param url url
      */
-    private Map<String, String> createHeader(String url) {
-        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        BasicSchool basicSchool = commonCacheService.schoolCache(schoolId);
+    private Map<String, String> createHeader(String url, Long collegeId) {
+        SysCollege sysCollege = sysCollegeService.getById(collegeId);
         String accessKey = null;
         String accessSecret = null;
-        if (basicSchool != null) {
-            accessKey = basicSchool.getAccessKey();
-            accessSecret = basicSchool.getAccessSecret();
+        if (sysCollege != null) {
+            accessKey = sysCollege.getAccessKey();
+            accessSecret = sysCollege.getAccessSecret();
         } else {
             accessKey = dictionaryConfig.cloudMarkingDomain().getAccessKey();
             accessSecret = dictionaryConfig.cloudMarkingDomain().getAccessSecret();

+ 5 - 4
src/main/java/com/qmth/eds/job/service/JobService.java

@@ -22,9 +22,10 @@ public interface JobService {
     /**
      * 同步云阅卷考生成绩
      *
-     * @param semesterId
-     * @param examTypeId
-     * @param examId 云阅卷考试ID
+     * @param semesterId 学期
+     * @param examTypeId 考试类型
+     * @param collegeId
+     * @param examId     云阅卷考试ID
      */
-    void syncStudentScore(Long semesterId, Long examTypeId, Integer examId);
+    void syncStudentScore(Long semesterId, Long examTypeId, Long collegeId, Integer examId);
 }

+ 2 - 2
src/main/java/com/qmth/eds/job/service/impl/JobServiceImpl.java

@@ -40,7 +40,7 @@ public class JobServiceImpl implements JobService {
     }
 
     @Override
-    public void syncStudentScore(Long semesterId, Long examTypeId, Integer examId) {
-        asyncTaskService.syncStudentScore(semesterId, examTypeId, examId);
+    public void syncStudentScore(Long semesterId, Long examTypeId, Long collegeId, Integer examId) {
+        asyncTaskService.syncStudentScore(semesterId, examTypeId, collegeId, examId);
     }
 }

+ 13 - 0
src/main/java/com/qmth/eds/mapper/SysCollegeMapper.java

@@ -0,0 +1,13 @@
+package com.qmth.eds.mapper;
+
+import com.qmth.eds.common.entity.SysCollege;
+import com.qmth.eds.core.base.CustomBaseMapper;
+
+/**
+ * <p>
+ * 学院表 Mapper 接口
+ * </p>
+ */
+public interface SysCollegeMapper extends CustomBaseMapper<SysCollege> {
+
+}

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

@@ -28,10 +28,10 @@ public class AsyncTaskService {
         dataSyncService.syncWuhanUniversityExamData(examScheduleTask, tbSyncTask, isAuto);
     }
 
-    public void syncStudentScore(Long semesterId, Long examTypeId, Integer examId) {
+    public void syncStudentScore(Long semesterId, Long examTypeId, Long collegeId, Integer examId) {
         // 记录日志
         String remark = "云阅卷考试:" + examId;
-        TBSyncTask tbSyncTask = tbSyncTaskService.saveTask(semesterId, examTypeId, TaskTypeEnum.CLOUD_MARKING_STUDENT_SCORE, remark);
+        TBSyncTask tbSyncTask = tbSyncTaskService.saveTask(collegeId, semesterId, examTypeId, TaskTypeEnum.CLOUD_MARKING_STUDENT_SCORE, remark);
         dataSyncService.syncCloudMarkingStudentScoreData(tbSyncTask, examId);
     }
 }

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

@@ -10,7 +10,7 @@ import java.util.List;
  */
 public interface CloudMarkingExamService extends IService<CloudMarkingExam> {
 
-    List<CloudMarkingExam> listExam();
+    List<CloudMarkingExam> listExam(Long collegeId);
 
-    List<CloudMarkingExam> syncExam();
+    List<CloudMarkingExam> syncExam(Long collegeId);
 }

+ 1 - 1
src/main/java/com/qmth/eds/service/CloudMarkingScoreForeignService.java

@@ -11,7 +11,7 @@ import javax.servlet.http.HttpServletResponse;
  */
 public interface CloudMarkingScoreForeignService extends IService<CloudMarkingScoreForeign> {
 
-    IPage<CloudMarkingScoreForeign> pageData(Long semesterId, Long examTypeId, String examId, Integer pageNumber, Integer pageSize);
+    IPage<CloudMarkingScoreForeign> pageData(Long semesterId, Long examTypeId, Long collegeId, String examId, Integer pageNumber, Integer pageSize);
 
     void downloadScore(Long semesterId, Long examTypeId, String examId, HttpServletResponse response);
 }

+ 2 - 1
src/main/java/com/qmth/eds/service/DataSyncService.java

@@ -21,7 +21,8 @@ public interface DataSyncService {
      * 同步云阅卷考生成绩
      *
      * @param tbSyncTask tbSyncTask
-     * @param examId 云阅卷考试ID
+     * @param collegeId
+     * @param examId     云阅卷考试ID
      */
     void syncCloudMarkingStudentScoreData(TBSyncTask tbSyncTask, Integer examId);
 }

+ 16 - 0
src/main/java/com/qmth/eds/service/SysCollegeService.java

@@ -0,0 +1,16 @@
+package com.qmth.eds.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.eds.common.entity.SysCollege;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 学院表 服务类
+ * </p>
+ */
+public interface SysCollegeService extends IService<SysCollege> {
+
+    List<SysCollege> listBySchoolId();
+}

+ 1 - 1
src/main/java/com/qmth/eds/service/TBSyncTaskService.java

@@ -21,7 +21,7 @@ public interface TBSyncTaskService extends IService<TBSyncTask> {
 
     void updateStatusAndResultById(Long id,TaskStatusEnum status, TaskResultEnum result, String errorMessage);
 
-    TBSyncTask saveTask(Long semesterId, Long examTypeId, TaskTypeEnum type, String remark);
+    TBSyncTask saveTask(Long collegeId, Long semesterId, Long examTypeId, TaskTypeEnum type, String remark);
 
     IPage<SyncTaskListResult> query(Page<SyncTaskListResult> iPage, TaskStatusEnum status, TaskTypeEnum type, TaskResultEnum result);
 }

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

@@ -8,6 +8,7 @@ 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;
@@ -16,6 +17,7 @@ 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.*;
@@ -60,6 +62,9 @@ public class AuthInfoServiceImpl implements AuthInfoService {
     @Resource
     BasicSchoolMapper basicSchoolMapper;
 
+    @Resource
+    SysCollegeService sysCollegeService;
+
     @Resource
     FileStoreUtil fileStoreUtil;
 
@@ -246,6 +251,12 @@ public class AuthInfoServiceImpl implements AuthInfoService {
                 commonCacheService.removeSchoolIdCache();
                 commonCacheService.removeSchoolCodeCache();
                 basicSchoolMapper.insertBatch(basicSchoolSet);
+
+                // 往学院表插入一条数据
+                for (BasicSchool basicSchool : basicSchoolSet) {
+                    SysCollege sysCollege = new SysCollege(basicSchool.getId(), basicSchool.getId(), basicSchool.getCode(), basicSchool.getName(), basicSchool.getAccessKey(), basicSchool.getAccessSecret());
+                    sysCollegeService.saveOrUpdate(sysCollege);
+                }
             }
 
             if (!CollectionUtils.isEmpty(sysOrgSet)) {

+ 9 - 8
src/main/java/com/qmth/eds/service/impl/CloudMarkingExamServiceImpl.java

@@ -25,30 +25,31 @@ public class CloudMarkingExamServiceImpl extends ServiceImpl<CloudMarkingExamMap
     CloudMarkingUtil cloudMarkingUtil;
 
     @Override
-    public List<CloudMarkingExam> listExam() {
-        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+    public List<CloudMarkingExam> listExam(Long collegeId) {
         QueryWrapper<CloudMarkingExam> queryWrapper = new QueryWrapper<>();
-        queryWrapper.lambda().eq(CloudMarkingExam::getSchoolId, schoolId)
+        queryWrapper.lambda().eq(CloudMarkingExam::getSchoolId, collegeId)
                 .orderByDesc(CloudMarkingExam::getExamId);
         return this.list(queryWrapper);
     }
 
     @Transactional
     @Override
-    public List<CloudMarkingExam> syncExam() {
-        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+    public List<CloudMarkingExam> syncExam(Long collegeId) {
+        if(collegeId == null){
+            throw ExceptionResultEnum.ERROR.exception("请选择学院");
+        }
         UpdateWrapper<CloudMarkingExam> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.lambda().eq(CloudMarkingExam::getSchoolId, schoolId);
+        updateWrapper.lambda().eq(CloudMarkingExam::getSchoolId, collegeId);
         this.remove(updateWrapper);
 
-        List<JSONObject> objectList = cloudMarkingUtil.getExam(SystemConstant.PAGE_NUMBER_MIN, SystemConstant.PAGE_SIZE);
+        List<JSONObject> objectList = cloudMarkingUtil.getExam(collegeId, SystemConstant.PAGE_NUMBER_MIN, SystemConstant.PAGE_SIZE);
         if (objectList.isEmpty()) {
             throw ExceptionResultEnum.ERROR.exception("未查询到考试");
         }
         List<CloudMarkingExam> markingExams = objectList.stream().map(m -> {
             CloudMarkingExam cloudMarkingExam = new CloudMarkingExam();
             cloudMarkingExam.setId(SystemConstant.getDbUuid());
-            cloudMarkingExam.setSchoolId(schoolId);
+            cloudMarkingExam.setSchoolId(collegeId);
             cloudMarkingExam.setExamId(m.getInteger("id"));
             cloudMarkingExam.setExamName(m.getString("name"));
             return cloudMarkingExam;

+ 5 - 4
src/main/java/com/qmth/eds/service/impl/CloudMarkingScoreForeignServiceImpl.java

@@ -17,17 +17,18 @@ import org.springframework.stereotype.Service;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.File;
-import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
 @Service
 public class CloudMarkingScoreForeignServiceImpl extends ServiceImpl<CloudMarkingScoreForeignMapper, CloudMarkingScoreForeign> implements CloudMarkingScoreForeignService {
     @Override
-    public IPage<CloudMarkingScoreForeign> pageData(Long semesterId, Long examTypeId, String examId, Integer pageNumber, Integer pageSize) {
-        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+    public IPage<CloudMarkingScoreForeign> pageData(Long semesterId, Long examTypeId, Long collegeId, String examId, Integer pageNumber, Integer pageSize) {
+        if(collegeId == null){
+            throw ExceptionResultEnum.ERROR.exception("请选择学院");
+        }
         QueryWrapper<CloudMarkingScoreForeign> queryWrapper = new QueryWrapper<>();
-        queryWrapper.lambda().eq(CloudMarkingScoreForeign::getSchoolId, schoolId);
+        queryWrapper.lambda().eq(CloudMarkingScoreForeign::getSchoolId, collegeId);
         if (semesterId != null) {
             queryWrapper.lambda().eq(CloudMarkingScoreForeign::getSemesterId, semesterId);
         }

+ 13 - 12
src/main/java/com/qmth/eds/service/impl/DataSyncServiceImpl.java

@@ -16,6 +16,7 @@ import com.qmth.eds.common.enums.TaskStatusEnum;
 import com.qmth.eds.common.tools.CloudMarkingUtil;
 import com.qmth.eds.common.tools.WuhanUniversityUtils;
 import com.qmth.eds.common.util.FileUtil;
+import com.qmth.eds.common.util.ServletUtil;
 import com.qmth.eds.service.*;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -186,7 +187,7 @@ public class DataSyncServiceImpl implements DataSyncService {
         // 同步初始参数
         TaskResultEnum result = null;
         String errorMessage = "";
-        Long schoolId = tbSyncTask.getSchoolId();
+        Long collegeId = tbSyncTask.getSchoolId();
         Long semesterId = tbSyncTask.getSemesterId();
         Long examTypeId = tbSyncTask.getExamTypeId();
         File txtFile = null;
@@ -198,18 +199,18 @@ public class DataSyncServiceImpl implements DataSyncService {
 
             Map<String, String> mapSource = new HashMap<>();
             mapSource.put("examId", String.valueOf(examId));
-            int totalCount = cloudMarkingUtil.getStudentCount(mapSource);
+            int totalCount = cloudMarkingUtil.getStudentCount(mapSource, collegeId);
             List<CloudMarkingScore> cloudMarkingScoreList = new ArrayList<>();
             if (totalCount > 0) {
                 int pageSize = SystemConstant.PAGE_SIZE;
                 int mod = totalCount % pageSize;
                 int pageNos = mod == 0 ? totalCount / pageSize : totalCount / pageSize + 1;
                 for (int i = 1; i <= pageNos; i++) {
-                    List<JSONObject> students = cloudMarkingUtil.getStudentScore(mapSource, i, pageSize);
+                    List<JSONObject> students = cloudMarkingUtil.getStudentScore(mapSource, collegeId, i, pageSize);
                     List<CloudMarkingScore> cloudMarkingScores = students.stream().map(m -> {
                         CloudMarkingScore cloudMarkingScore = new CloudMarkingScore();
                         cloudMarkingScore.setId(SystemConstant.getDbUuid());
-                        cloudMarkingScore.setSchoolId(schoolId);
+                        cloudMarkingScore.setSchoolId(collegeId);
                         cloudMarkingScore.setSemesterId(semesterId);
                         cloudMarkingScore.setExamTypeId(examTypeId);
                         cloudMarkingScore.setExamId(examId);
@@ -239,7 +240,7 @@ public class DataSyncServiceImpl implements DataSyncService {
 
             //2.调用教务系统接口回传成绩
             if (!cloudMarkingScoreList.isEmpty()) {
-                saveScoreData(schoolId, semesterId, examTypeId, examId, cloudMarkingScoreList);
+                saveScoreData(collegeId, semesterId, examTypeId, examId, cloudMarkingScoreList);
             }
 
             result = TaskResultEnum.SUCCESS;
@@ -268,10 +269,10 @@ public class DataSyncServiceImpl implements DataSyncService {
     }
 
     @Transactional
-    public void saveScoreData(Long schoolId, Long semesterId, Long examTypeId, Integer examId, List<CloudMarkingScore> cloudMarkingScoreList) {
-
+    public void saveScoreData(Long collegeId, Long semesterId, Long examTypeId, Integer examId, List<CloudMarkingScore> cloudMarkingScoreList) {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         // 删除旧数据
-        cloudMarkingScoreService.deleteByKeys(schoolId, semesterId, examTypeId, examId);
+        cloudMarkingScoreService.deleteByKeys(collegeId, semesterId, examTypeId, examId);
 
         List<CloudMarkingScore> data = new ArrayList<>();
         //1000条提交一次
@@ -302,21 +303,21 @@ public class DataSyncServiceImpl implements DataSyncService {
             for (CloudMarkingScore cloudMarkingScore : cloudMarkingScoreList) {
                 Optional<ExamSyncStudent> optional = examSyncStudents.stream().filter(s -> s.getJxbmc().equals(cloudMarkingScore.getClassName()) && s.getKch().equals(cloudMarkingScore.getSubjectCode()) && s.getXh().equals(cloudMarkingScore.getStudentCode())).findFirst();
                 if (!optional.isPresent()) {
-                    cloudMarkingScoreForeigns.add(new CloudMarkingScoreForeign(schoolId, semesterId, examTypeId, examId, null, null, cloudMarkingScore.getClassName(), cloudMarkingScore.getSubjectCode(), cloudMarkingScore.getSubjectName(), cloudMarkingScore.getStudentCode(), cloudMarkingScore.getTotalScore()));
+                    cloudMarkingScoreForeigns.add(new CloudMarkingScoreForeign(collegeId, semesterId, examTypeId, examId, null, null, cloudMarkingScore.getClassName(), cloudMarkingScore.getSubjectCode(), cloudMarkingScore.getSubjectName(), cloudMarkingScore.getStudentCode(), cloudMarkingScore.getTotalScore()));
                 } else {
                     ExamSyncStudent examSyncStudent = optional.get();
-                    cloudMarkingScoreForeigns.add(new CloudMarkingScoreForeign(schoolId, semesterId, examTypeId, examId, examSyncStudent.getXnm(), examSyncStudent.getXqm(), examSyncStudent.getJxbId(), examSyncStudent.getKch(), examSyncStudent.getKcmc(), examSyncStudent.getXh(), cloudMarkingScore.getTotalScore()));
+                    cloudMarkingScoreForeigns.add(new CloudMarkingScoreForeign(collegeId, semesterId, examTypeId, examId, examSyncStudent.getXnm(), examSyncStudent.getXqm(), examSyncStudent.getJxbId(), examSyncStudent.getKch(), examSyncStudent.getKcmc(), examSyncStudent.getXh(), cloudMarkingScore.getTotalScore()));
                 }
             }
         } else {
             for (CloudMarkingScore cloudMarkingScore : cloudMarkingScoreList) {
-                cloudMarkingScoreForeigns.add(new CloudMarkingScoreForeign(schoolId, semesterId, examTypeId, examId, null, null, cloudMarkingScore.getClassName(), cloudMarkingScore.getSubjectCode(), cloudMarkingScore.getSubjectName(), cloudMarkingScore.getStudentCode(), cloudMarkingScore.getTotalScore()));
+                cloudMarkingScoreForeigns.add(new CloudMarkingScoreForeign(collegeId, semesterId, examTypeId, examId, null, null, cloudMarkingScore.getClassName(), cloudMarkingScore.getSubjectCode(), cloudMarkingScore.getSubjectName(), cloudMarkingScore.getStudentCode(), cloudMarkingScore.getTotalScore()));
             }
         }
 
         // 删除全量数据
         UpdateWrapper<CloudMarkingScoreForeign> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.lambda().eq(CloudMarkingScoreForeign::getSchoolId, schoolId)
+        updateWrapper.lambda().eq(CloudMarkingScoreForeign::getSchoolId, collegeId)
                 .eq(CloudMarkingScoreForeign::getSemesterId, semesterId)
                 .eq(CloudMarkingScoreForeign::getExamTypeId, examTypeId)
                 .eq(CloudMarkingScoreForeign::getExamId, examId);

+ 29 - 0
src/main/java/com/qmth/eds/service/impl/SysCollegeServiceImpl.java

@@ -0,0 +1,29 @@
+package com.qmth.eds.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.eds.common.entity.SysCollege;
+import com.qmth.eds.common.util.ServletUtil;
+import com.qmth.eds.mapper.SysCollegeMapper;
+import com.qmth.eds.service.SysCollegeService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 学院表 服务实现类
+ * </p>
+ */
+@Service
+public class SysCollegeServiceImpl extends ServiceImpl<SysCollegeMapper, SysCollege> implements SysCollegeService {
+
+    @Override
+    public List<SysCollege> listBySchoolId() {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        QueryWrapper<SysCollege> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(SysCollege::getSchoolId, schoolId)
+                .orderByAsc(SysCollege::getCode);
+        return this.list(queryWrapper);
+    }
+}

+ 3 - 4
src/main/java/com/qmth/eds/service/impl/TBSyncTaskServiceImpl.java

@@ -50,11 +50,10 @@ public class TBSyncTaskServiceImpl extends ServiceImpl<TBSyncTaskMapper, TBSyncT
     }
 
     @Override
-    public TBSyncTask saveTask(Long semesterId, Long examTypeId, TaskTypeEnum type, String remark) {
-        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+    public TBSyncTask saveTask(Long collegeId, Long semesterId, Long examTypeId, TaskTypeEnum type, String remark) {
         Long userId = ServletUtil.getRequestUserId();
         QueryWrapper<TBSyncTask> queryWrapper = new QueryWrapper<>();
-        queryWrapper.lambda().eq(TBSyncTask::getSchoolId, schoolId)
+        queryWrapper.lambda().eq(TBSyncTask::getSchoolId, collegeId)
                 .eq(TBSyncTask::getSemesterId, semesterId)
                 .eq(TBSyncTask::getExamTypeId, examTypeId)
                 .eq(TBSyncTask::getType, type);
@@ -65,7 +64,7 @@ public class TBSyncTaskServiceImpl extends ServiceImpl<TBSyncTaskMapper, TBSyncT
             }
             this.removeById(tbSyncTask.getId());
         }
-        tbSyncTask = new TBSyncTask(schoolId, semesterId, examTypeId, type, remark, userId);
+        tbSyncTask = new TBSyncTask(collegeId, semesterId, examTypeId, type, remark, userId);
         tbSyncTask.setId(SystemConstant.getDbUuid());
         this.save(tbSyncTask);
         return tbSyncTask;