Browse Source

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

wangliang 2 years ago
parent
commit
616edf4a52

+ 8 - 12
src/main/java/com/qmth/eds/api/ExamAssignController.java

@@ -5,6 +5,7 @@ import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.eds.bean.dto.syssetting.SettingObject;
 import com.qmth.eds.bean.result.EditResult;
 import com.qmth.eds.common.contant.SystemConstant;
+import com.qmth.eds.common.entity.ExamAssign;
 import com.qmth.eds.common.util.Result;
 import com.qmth.eds.common.util.ResultUtil;
 import com.qmth.eds.service.ExamAssignService;
@@ -49,24 +50,19 @@ public class ExamAssignController {
     @PostMapping("/to_calc")
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
     public Result toCalc(@RequestParam(value = "semesterId", required = false) Long semesterId,
-                           @RequestParam(value = "examTypeId", required = false) Long examTypeId,
-                           @RequestParam(value = "courseCode", required = false) String courseCode) {
-        return ResultUtil.ok(examAssignService.toCalc(semesterId, examTypeId, courseCode));
+                         @RequestParam(value = "examTypeId", required = false) Long examTypeId,
+                         @RequestParam(value = "courseCode", required = false) String courseCode,
+                         @RequestParam(value = "courseName", required = false) String courseName,
+                         @RequestParam(value = "openCollege", required = false) String openCollege) {
+        return ResultUtil.ok(examAssignService.toCalc(semesterId, examTypeId, courseCode, courseName, openCollege));
     }
 
 
     @ApiOperation(value = "计算")
     @PostMapping("/calc")
     @ApiResponses({@ApiResponse(code = 200, message = "保存/更新成功", response = EditResult.class)})
-    public Result save(@RequestParam(value = "semesterId", required = false) Long semesterId,
-                       @RequestParam(value = "examTypeId", required = false) Long examTypeId,
-                       @RequestParam(value = "courseCode", required = false) String courseCode,
-                       @RequestParam(value = "courseName", required = false) String courseName,
-                       @RequestParam(value = "formula", required = false) String formula,
-                       @RequestParam(value = "fullScore", required = false) Double fullScore,
-                       @RequestParam(value = "passScore", required = false) Double passScore,
-                       @RequestParam(value = "coefficient", required = false) String coefficient) {
-        return ResultUtil.ok(examAssignService.calcData(semesterId, examTypeId, courseCode, courseName, formula, fullScore, passScore, coefficient));
+    public Result save(@RequestParam(value = "semesterId", required = false) ExamAssign examAssign) {
+        return ResultUtil.ok(examAssignService.calcData(examAssign));
     }
 
     @ApiOperation(value = "计算结果查询")

+ 0 - 74
src/main/java/com/qmth/eds/bean/dto/AssignListDto.java

@@ -1,74 +0,0 @@
-package com.qmth.eds.bean.dto;
-
-public class AssignListDto {
-
-    private Long schoolId;
-
-    private Long semesterId;
-
-    private Long examTypeId;
-
-    private String courseCode;
-
-    private String courseName;
-
-    private String kkxy;
-
-    private String actualCount;
-
-    public Long getSchoolId() {
-        return schoolId;
-    }
-
-    public void setSchoolId(Long schoolId) {
-        this.schoolId = schoolId;
-    }
-
-    public Long getSemesterId() {
-        return semesterId;
-    }
-
-    public void setSemesterId(Long semesterId) {
-        this.semesterId = semesterId;
-    }
-
-    public Long getExamTypeId() {
-        return examTypeId;
-    }
-
-    public void setExamTypeId(Long examTypeId) {
-        this.examTypeId = examTypeId;
-    }
-
-    public String getCourseCode() {
-        return courseCode;
-    }
-
-    public void setCourseCode(String courseCode) {
-        this.courseCode = courseCode;
-    }
-
-    public String getCourseName() {
-        return courseName;
-    }
-
-    public void setCourseName(String courseName) {
-        this.courseName = courseName;
-    }
-
-    public String getKkxy() {
-        return kkxy;
-    }
-
-    public void setKkxy(String kkxy) {
-        this.kkxy = kkxy;
-    }
-
-    public String getActualCount() {
-        return actualCount;
-    }
-
-    public void setActualCount(String actualCount) {
-        this.actualCount = actualCount;
-    }
-}

+ 22 - 0
src/main/java/com/qmth/eds/bean/dto/ExamAssignDto.java

@@ -2,5 +2,27 @@ package com.qmth.eds.bean.dto;
 
 import com.qmth.eds.common.entity.ExamAssign;
 
+import java.util.List;
+
 public class ExamAssignDto extends ExamAssign {
+
+    private Integer actualCount;
+
+    private List<String> inspectCollege;
+
+    public Integer getActualCount() {
+        return actualCount;
+    }
+
+    public void setActualCount(Integer actualCount) {
+        this.actualCount = actualCount;
+    }
+
+    public List<String> getInspectCollege() {
+        return inspectCollege;
+    }
+
+    public void setInspectCollege(List<String> inspectCollege) {
+        this.inspectCollege = inspectCollege;
+    }
 }

+ 11 - 0
src/main/java/com/qmth/eds/common/entity/CloudMarkingScore.java

@@ -91,6 +91,9 @@ public class CloudMarkingScore implements Serializable {
     @ApiModelProperty(value = "阅卷轨迹")
     private String markTags;
 
+    @ApiModelProperty(value = "考务数据对接表ID")
+    private Long examSyncStudentId;
+
     public Long getId() {
         return id;
     }
@@ -274,4 +277,12 @@ public class CloudMarkingScore implements Serializable {
     public void setMarkTags(String markTags) {
         this.markTags = markTags;
     }
+
+    public Long getExamSyncStudentId() {
+        return examSyncStudentId;
+    }
+
+    public void setExamSyncStudentId(Long examSyncStudentId) {
+        this.examSyncStudentId = examSyncStudentId;
+    }
 }

+ 26 - 3
src/main/java/com/qmth/eds/common/entity/ExamAssign.java

@@ -2,6 +2,8 @@ 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.common.enums.ExamAssignStatusEnum;
+import com.qmth.eds.common.enums.FormulaEnum;
 import com.qmth.eds.core.base.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -34,12 +36,17 @@ public class ExamAssign extends BaseEntity implements Serializable {
     @ApiModelProperty(value = "课程名称")
     private String courseName;
 
+    @ApiModelProperty(value = "开课学院")
+    private String openCollege;
+
     @ApiModelProperty(value = "公式类型")
-    private String formula;
+    private FormulaEnum formula;
 
     @ApiModelProperty(value = "系数json")
     private String coefficient;
 
+    @ApiModelProperty(value = "状态")
+    private ExamAssignStatusEnum status;
 
     public Long getSchoolId() {
         return schoolId;
@@ -81,11 +88,19 @@ public class ExamAssign extends BaseEntity implements Serializable {
         this.courseName = courseName;
     }
 
-    public String getFormula() {
+    public String getOpenCollege() {
+        return openCollege;
+    }
+
+    public void setOpenCollege(String openCollege) {
+        this.openCollege = openCollege;
+    }
+
+    public FormulaEnum getFormula() {
         return formula;
     }
 
-    public void setFormula(String formula) {
+    public void setFormula(FormulaEnum formula) {
         this.formula = formula;
     }
 
@@ -96,4 +111,12 @@ public class ExamAssign extends BaseEntity implements Serializable {
     public void setCoefficient(String coefficient) {
         this.coefficient = coefficient;
     }
+
+    public ExamAssignStatusEnum getStatus() {
+        return status;
+    }
+
+    public void setStatus(ExamAssignStatusEnum status) {
+        this.status = status;
+    }
 }

+ 59 - 0
src/main/java/com/qmth/eds/common/enums/ExamAssignStatusEnum.java

@@ -0,0 +1,59 @@
+package com.qmth.eds.common.enums;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 赋分状态
+ */
+public enum ExamAssignStatusEnum {
+
+    INIT("未计算"),
+
+    RUNNING("计算中"),
+
+    FINISH("计算完成");
+
+    private String desc;
+
+    private ExamAssignStatusEnum(String desc) {
+        this.desc = desc;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+
+    /**
+     * 状态转换 toName
+     *
+     * @param title
+     * @return
+     */
+    public static String convertToName(String title) {
+        for (ExamAssignStatusEnum e : ExamAssignStatusEnum.values()) {
+            if (Objects.equals(title, e.getDesc())) {
+                return e.name();
+            }
+        }
+        return null;
+    }
+
+    /**
+     * @return
+     */
+    public static List<EnumResult> listTypes() {
+        List<EnumResult> list = new ArrayList<EnumResult>();
+        for (ExamAssignStatusEnum value : ExamAssignStatusEnum.values()) {
+            EnumResult result = new EnumResult();
+            result.setName(value.name());
+            result.setOrdinal(value.ordinal());
+            result.setCode(null);
+            result.setDesc(value.getDesc());
+            list.add(result);
+        }
+        return list;
+    }
+
+}

+ 37 - 0
src/main/java/com/qmth/eds/common/enums/FormulaEnum.java

@@ -0,0 +1,37 @@
+package com.qmth.eds.common.enums;
+
+import java.util.Objects;
+
+/**
+ * 机构类型enum
+ */
+public enum FormulaEnum {
+
+    FORMULA1("公式1"),
+    FORMULA2("公式2");
+
+    private String name;
+
+    private FormulaEnum(String name) {
+        this.name = name;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * 状态转换 toName
+     *
+     * @param name
+     * @return
+     */
+    public static String convertToName(String name) {
+        for (FormulaEnum e : FormulaEnum.values()) {
+            if (Objects.equals(name, e.getName())) {
+                return e.name();
+            }
+        }
+        return null;
+    }
+}

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

@@ -3,7 +3,7 @@ package com.qmth.eds.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.qmth.eds.bean.dto.AssignListDto;
+import com.qmth.eds.bean.dto.ExamAssignDto;
 import com.qmth.eds.common.entity.ExamAssign;
 import org.apache.ibatis.annotations.Param;
 
@@ -14,5 +14,5 @@ import org.apache.ibatis.annotations.Param;
  */
 public interface ExamAssignMapper extends BaseMapper<ExamAssign> {
 
-    IPage<AssignListDto> pageData(@Param("page") Page<AssignListDto> page, @Param("schoolId") Long schoolId, @Param("semesterId") Long semesterId, @Param("examTypeId") Long examTypeId, @Param("courseCode") String courseCode);
+    IPage<ExamAssignDto> pageData(@Param("page") Page<ExamAssignDto> page, @Param("schoolId") Long schoolId, @Param("semesterId") Long semesterId, @Param("examTypeId") Long examTypeId, @Param("courseCode") String courseCode);
 }

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

@@ -2,7 +2,6 @@ package com.qmth.eds.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.qmth.eds.bean.dto.AssignListDto;
 import com.qmth.eds.bean.dto.ExamAssignDto;
 import com.qmth.eds.common.entity.CloudMarkingScore;
 import com.qmth.eds.common.entity.ExamAssign;
@@ -17,13 +16,13 @@ import java.util.Map;
 public interface ExamAssignService extends IService<ExamAssign> {
 
 
-    IPage<AssignListDto> pageData(Long semesterId, Long examTypeId, String courseCode, Integer pageNumber, Integer pageSize);
+    IPage<ExamAssignDto> pageData(Long semesterId, Long examTypeId, String courseCode, Integer pageNumber, Integer pageSize);
 
-    boolean calcData(Long semesterId, Long examTypeId, String courseCode, String courseName, String formula, Double fullScore, Double passScore, String coefficient);
+    boolean calcData(ExamAssign examAssign);
 
     IPage<CloudMarkingScore> result(Long semesterId, Long examTypeId, String courseCode, String courseName, String formula, Integer pageNumber, Integer pageSize);
 
     Map contrast(Long semesterId, Long examTypeId, String courseCode);
 
-    ExamAssignDto toCalc(Long semesterId, Long examTypeId, String courseCode);
+    ExamAssignDto toCalc(Long semesterId, Long examTypeId, String courseCode, String courseName, String openCollege);
 }

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

@@ -21,5 +21,5 @@ public interface ExamSyncTotalService extends IService<ExamSyncTotal> {
 
     List<ExamSyncTotalDownloadDto> listDownloadRecordInfos(Long schoolId, Long semesterId, Long examTypeId);
 
-    ExamSyncTotal getBySemesterIdAndExamTypeIdAndDownloadStatus(Long semesterId, Long examTypeId, boolean status);
+    ExamSyncTotal getBySemesterIdAndExamTypeIdAndDownloadStatus(Long schoolId, Long semesterId, Long examTypeId, boolean status);
 }

+ 4 - 0
src/main/java/com/qmth/eds/service/WhuDataSyncService.java

@@ -1,5 +1,6 @@
 package com.qmth.eds.service;
 
+import com.qmth.eds.common.entity.ExamAssign;
 import com.qmth.eds.common.entity.ExamScheduleTask;
 import com.qmth.eds.common.entity.TBSyncTask;
 import org.springframework.scheduling.annotation.Async;
@@ -26,4 +27,7 @@ public interface WhuDataSyncService {
      */
     @Async
     void syncCloudMarkingStudentScoreData(Long schoolId, TBSyncTask tbSyncTask, Integer examId);
+
+    @Async
+    void calcAssignScore(ExamAssign examAssign);
 }

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

@@ -1,20 +1,29 @@
 package com.qmth.eds.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.qmth.eds.bean.dto.AssignListDto;
 import com.qmth.eds.bean.dto.ExamAssignDto;
+import com.qmth.eds.common.contant.SystemConstant;
 import com.qmth.eds.common.entity.*;
+import com.qmth.eds.common.enums.ExamAssignStatusEnum;
+import com.qmth.eds.common.enums.ExceptionResultEnum;
 import com.qmth.eds.common.util.ServletUtil;
 import com.qmth.eds.mapper.ExamAssignMapper;
 import com.qmth.eds.service.ExamAssignService;
 import com.qmth.eds.service.ExamSyncStudentService;
 import com.qmth.eds.service.ExamSyncTotalService;
+import com.qmth.eds.service.WhuDataSyncService;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -30,26 +39,56 @@ public class ExamAssignServiceImpl extends ServiceImpl<ExamAssignMapper, ExamAss
     @Resource
     ExamSyncStudentService examSyncStudentService;
 
+    @Resource
+    WhuDataSyncService whuDataSyncService;
+
     @Override
-    public IPage<AssignListDto> pageData(Long semesterId, Long examTypeId, String courseCode, Integer pageNumber, Integer pageSize) {
+    public IPage<ExamAssignDto> pageData(Long semesterId, Long examTypeId, String courseCode, Integer pageNumber, Integer pageSize) {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        Page<AssignListDto> page = new Page<>(pageNumber, pageSize);
-        IPage<AssignListDto> assignListDtoIPage = this.baseMapper.pageData(page, sysUser.getOrgId(), semesterId, examTypeId, courseCode);
-
-        ExamSyncTotal examSyncTotal = examSyncTotalService.getBySemesterIdAndExamTypeIdAndDownloadStatus(semesterId, examTypeId, true);
-
-        for (AssignListDto record : assignListDtoIPage.getRecords()) {
+        Page<ExamAssignDto> page = new Page<>(pageNumber, pageSize);
+        IPage<ExamAssignDto> assignListDtoIPage = this.baseMapper.pageData(page, sysUser.getOrgId(), semesterId, examTypeId, courseCode);
 
+        ExamSyncTotal examSyncTotal = examSyncTotalService.getBySemesterIdAndExamTypeIdAndDownloadStatus(schoolId, semesterId, examTypeId, true);
+        for (ExamAssignDto record : assignListDtoIPage.getRecords()) {
+            int actualCount = 0;
+            String kkxy = "";
+            if (examSyncTotal != null) {
+                List<ExamSyncStudent> examSyncStudents = examSyncStudentService.listByExamSyncTotalId(examSyncTotal);
+                if (!CollectionUtils.isEmpty(examSyncStudents)) {
+                    List<ExamSyncStudent> syncStudents = examSyncStudents.stream().filter(m -> m.getCloudMarkingCourseCode().equals(courseCode)).collect(Collectors.toList());
+                    actualCount = syncStudents.size();
+                    List<String> kkxyList = syncStudents.stream().map(ExamSyncStudent::getKkbm).distinct().collect(Collectors.toList());
+                    if (!CollectionUtils.isEmpty(kkxyList) && kkxyList.size() > 1) {
+                        throw ExceptionResultEnum.ERROR.exception(String.format("课程[%s]查询出%d个开课学院,请联系管理员检查数据", courseCode, kkxyList.size()));
+                    }
+                    kkxy = kkxyList.get(0);
+                }
+            }
+            record.setActualCount(actualCount);
+            record.setOpenCollege(kkxy);
         }
 
         return assignListDtoIPage;
     }
 
     @Override
-    public boolean calcData(Long semesterId, Long examTypeId, String courseCode, String courseName, String formula, Double fullScore, Double passScore, String coefficient) {
+    public boolean calcData(ExamAssign examAssign) {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         // 保存赋分参数
+        if (examAssign.getId() == null) {
+            examAssign.setId(SystemConstant.getDbUuid());
+            examAssign.setStatus(ExamAssignStatusEnum.INIT);
+            examAssign.setCreateId(sysUser.getId());
+            examAssign.setCreateTime(System.currentTimeMillis());
+        } else {
+            examAssign.setUpdateId(sysUser.getId());
+            examAssign.setUpdateTime(System.currentTimeMillis());
+        }
+        this.saveOrUpdate(examAssign);
 
         // 计算赋分
+        whuDataSyncService.calcAssignScore(examAssign);
         return true;
     }
 
@@ -64,7 +103,43 @@ public class ExamAssignServiceImpl extends ServiceImpl<ExamAssignMapper, ExamAss
     }
 
     @Override
-    public ExamAssignDto toCalc(Long semesterId, Long examTypeId, String courseCode) {
-        return null;
+    public ExamAssignDto toCalc(Long semesterId, Long examTypeId, String courseCode, String courseName, String openCollege) {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+
+        QueryWrapper<ExamAssign> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(ExamAssign::getSchoolId, sysUser.getOrgId())
+                .eq(ExamAssign::getSemesterId, semesterId)
+                .eq(ExamAssign::getExamTypeId, examTypeId)
+                .eq(ExamAssign::getCourseCode, courseCode)
+                .eq(ExamAssign::getOpenCollege, openCollege);
+        ExamAssign examAssign = this.getOne(queryWrapper);
+        ExamAssignDto examAssignDto = new ExamAssignDto();
+        if (examAssign == null) {
+            examAssignDto.setSchoolId(sysUser.getSchoolId());
+            examAssignDto.setSemesterId(semesterId);
+            examAssignDto.setExamTypeId(examTypeId);
+            examAssignDto.setCourseCode(courseCode);
+            examAssignDto.setCourseName(courseName);
+            examAssignDto.setOpenCollege(openCollege);
+            examAssignDto.setStatus(ExamAssignStatusEnum.INIT);
+        } else {
+            BeanUtils.copyProperties(examAssign, examAssignDto);
+        }
+
+        ExamSyncTotal examSyncTotal = examSyncTotalService.getBySemesterIdAndExamTypeIdAndDownloadStatus(schoolId, semesterId, examTypeId, true);
+        int actualCount = 0;
+        List<String> kcxyList = new ArrayList<>();
+        if (examSyncTotal != null) {
+            List<ExamSyncStudent> examSyncStudents = examSyncStudentService.listByExamSyncTotalId(examSyncTotal);
+            if (!CollectionUtils.isEmpty(examSyncStudents)) {
+                List<ExamSyncStudent> syncStudents = examSyncStudents.stream().filter(m -> m.getCloudMarkingCourseCode().equals(courseCode) && m.getKkbm().equals(openCollege)).collect(Collectors.toList());
+                actualCount = syncStudents.size();
+                kcxyList = syncStudents.stream().map(ExamSyncStudent::getJgmc).distinct().collect(Collectors.toList());
+            }
+        }
+        examAssignDto.setActualCount(actualCount);
+        examAssignDto.setInspectCollege(kcxyList);
+        return examAssignDto;
     }
 }

+ 3 - 2
src/main/java/com/qmth/eds/service/impl/ExamSyncTotalServiceImpl.java

@@ -92,9 +92,10 @@ public class ExamSyncTotalServiceImpl extends ServiceImpl<ExamSyncTotalMapper, E
     }
 
     @Override
-    public ExamSyncTotal getBySemesterIdAndExamTypeIdAndDownloadStatus(Long semesterId, Long examTypeId, boolean status) {
+    public ExamSyncTotal getBySemesterIdAndExamTypeIdAndDownloadStatus(Long schoolId, Long semesterId, Long examTypeId, boolean status) {
         QueryWrapper<ExamSyncTotal> queryWrapper = new QueryWrapper<>();
-        queryWrapper.lambda().eq(ExamSyncTotal::getSemesterId, semesterId)
+        queryWrapper.lambda().eq(ExamSyncTotal::getSchoolId, schoolId)
+                .eq(ExamSyncTotal::getSemesterId, semesterId)
                 .eq(ExamSyncTotal::getExamTypeId, examTypeId)
                 .eq(ExamSyncTotal::getDownloadStatus, status);
         return this.getOne(queryWrapper);

+ 7 - 0
src/main/java/com/qmth/eds/service/impl/WhuDataSyncServiceImpl.java

@@ -267,6 +267,11 @@ public class WhuDataSyncServiceImpl implements WhuDataSyncService {
         }
     }
 
+    @Override
+    public void calcAssignScore(ExamAssign examAssign) {
+
+    }
+
     @Transactional
     public void saveScoreData(Long schoolId, Long collegeId, Long semesterId, Long examTypeId, Integer examId, List<CloudMarkingScore> cloudMarkingScoreList) {
         // 删除旧数据
@@ -307,6 +312,8 @@ public class WhuDataSyncServiceImpl implements WhuDataSyncService {
                     cloudMarkingScoreForeigns.add(new CloudMarkingScoreForeign(collegeId, semesterId, examTypeId, examId, null, null, null, cloudMarkingScore.getSubjectCode(), cloudMarkingScore.getSubjectName(), cloudMarkingScore.getStudentCode(), cloudMarkingScore.getTotalScore()));
                 } else {
                     ExamSyncStudent examSyncStudent = optional.get();
+                    // 匹配上,保存考务数据表ID
+                    cloudMarkingScore.setExamSyncStudentId(examSyncStudent.getId());
                     cloudMarkingScoreForeigns.add(new CloudMarkingScoreForeign(collegeId, semesterId, examTypeId, examId, examSyncStudent.getXnm(), examSyncStudent.getXqm(), examSyncStudent.getJxbId(), examSyncStudent.getKch(), examSyncStudent.getKcmc(), examSyncStudent.getXh(), cloudMarkingScore.getTotalScore()));
                 }
             }

+ 7 - 0
src/main/resources/db/log/log-1.0.4.sql

@@ -19,6 +19,7 @@ INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence
 INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('50', '赋分计算结果查询', '/api/assign/result', 'URL', '45', '4', 'AUTH', '1', '1', '1');
 INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('51', '赋分计算结果对比', '/api/assign/contrast', 'URL', '45', '5', 'AUTH', '1', '1', '1');
 INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('52', '同步结果查询', '/api/sync_task/page', 'URL', '33', '1', 'SYS', '1', '1', '1');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('53', '赋分准备计算', '/api/assign/to_calc', 'URL', '45', '6', 'AUTH', '1', '1', '1');
 
 
 INSERT INTO `sys_role_privilege` (`id`, `role_id`, `privilege_id`, `enable`) VALUES ('45', '3', '45', '1');
@@ -28,6 +29,7 @@ INSERT INTO `sys_role_privilege` (`id`, `role_id`, `privilege_id`, `enable`) VAL
 INSERT INTO `sys_role_privilege` (`id`, `role_id`, `privilege_id`, `enable`) VALUES ('49', '3', '49', '1');
 INSERT INTO `sys_role_privilege` (`id`, `role_id`, `privilege_id`, `enable`) VALUES ('50', '3', '50', '1');
 INSERT INTO `sys_role_privilege` (`id`, `role_id`, `privilege_id`, `enable`) VALUES ('51', '3', '51', '1');
+INSERT INTO `sys_role_privilege` (`id`, `role_id`, `privilege_id`, `enable`) VALUES ('52', '3', '53', '1');
 
 CREATE TABLE `exam_assign` (
      `id` BIGINT(20) NOT NULL,
@@ -36,10 +38,15 @@ CREATE TABLE `exam_assign` (
      `exam_type_id` BIGINT(20) NULL,
      `course_code` VARCHAR(45) NULL,
      `course_name` VARCHAR(100) NULL,
+     `open_college` VARCHAR(100) NULL COMMENT '开课学院',
      `formula` VARCHAR(45) NULL COMMENT '公式类型(类型1或者类型2)',
      `coefficient` MEDIUMTEXT NULL COMMENT '系统对象(json格式)',
+     `status` VARCHAR(45) NULL COMMENT '状态(INIT-未计算,RUNNING-计算中,FINISH-计算完成)',
      `create_id` BIGINT(20) NULL,
      `create_time` BIGINT(20) NULL,
      `update_id` BIGINT(20) NULL,
      `update_time` BIGINT(20) NULL,
      PRIMARY KEY (`id`));
+
+ALTER TABLE `cloud_marking_score`
+    ADD COLUMN `exam_sync_student_id` BIGINT(20) NULL COMMENT '教务数据表id' AFTER `mark_tags`;

+ 1 - 1
src/main/resources/mapper/ExamAssignMapper.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 <mapper namespace="com.qmth.eds.mapper.ExamAssignMapper">
-    <select id="pageData" resultType="com.qmth.eds.bean.dto.AssignListDto">
+    <select id="pageData" resultType="com.qmth.eds.bean.dto.ExamAssignDto">
         select
             distinct
             school_id schoolId,