xiatian vor 8 Monaten
Ursprung
Commit
ed27fb8485

+ 10 - 0
src/main/java/cn/com/qmth/markingaudit/bean/QuestionDataVo.java

@@ -17,6 +17,8 @@ public class QuestionDataVo {
     // 小题分
     private Double minorScore;
 
+    private Boolean isObjective;
+
     public String getName() {
         return name;
     }
@@ -57,4 +59,12 @@ public class QuestionDataVo {
         this.minorScore = minorScore;
     }
 
+    public Boolean getIsObjective() {
+        return isObjective;
+    }
+
+    public void setIsObjective(Boolean isObjective) {
+        this.isObjective = isObjective;
+    }
+
 }

+ 41 - 0
src/main/java/cn/com/qmth/markingaudit/bean/ScoreDataQuery.java

@@ -0,0 +1,41 @@
+package cn.com.qmth.markingaudit.bean;
+
+import javax.validation.constraints.NotNull;
+
+import cn.com.qmth.markingaudit.support.IdPagerQuery;
+
+public class ScoreDataQuery extends IdPagerQuery {
+
+    private String schoolCode;
+
+    @NotNull(message = "考试ID不能为空")
+    private Integer examId;
+
+    @NotNull(message = "科目代码不能为空")
+    private String subjectCode;
+
+    public Integer getExamId() {
+        return examId;
+    }
+
+    public void setExamId(Integer examId) {
+        this.examId = examId;
+    }
+
+    public String getSubjectCode() {
+        return subjectCode;
+    }
+
+    public void setSubjectCode(String subjectCode) {
+        this.subjectCode = subjectCode;
+    }
+
+    public String getSchoolCode() {
+        return schoolCode;
+    }
+
+    public void setSchoolCode(String schoolCode) {
+        this.schoolCode = schoolCode;
+    }
+
+}

+ 80 - 0
src/main/java/cn/com/qmth/markingaudit/bean/ScoreDataVo.java

@@ -0,0 +1,80 @@
+package cn.com.qmth.markingaudit.bean;
+
+import java.util.List;
+
+import cn.com.qmth.markingaudit.enums.SubjectiveStatus;
+
+public class ScoreDataVo {
+
+    private Integer dataId;
+
+    private SubjectiveStatus subjectiveStatus;
+
+    private Double total;
+
+    // 准考证号
+    private String cardNo;
+
+    private String objectiveScoreList;
+
+    private String subjectiveScoreList;
+
+    private List<ScoreInfo> examInfo;
+
+    public Integer getDataId() {
+        return dataId;
+    }
+
+    public void setDataId(Integer dataId) {
+        this.dataId = dataId;
+    }
+
+    public String getCardNo() {
+        return cardNo;
+    }
+
+    public void setCardNo(String cardNo) {
+        this.cardNo = cardNo;
+    }
+
+    public List<ScoreInfo> getExamInfo() {
+        return examInfo;
+    }
+
+    public void setExamInfo(List<ScoreInfo> examInfo) {
+        this.examInfo = examInfo;
+    }
+
+    public SubjectiveStatus getSubjectiveStatus() {
+        return subjectiveStatus;
+    }
+
+    public void setSubjectiveStatus(SubjectiveStatus subjectiveStatus) {
+        this.subjectiveStatus = subjectiveStatus;
+    }
+
+    public Double getTotal() {
+        return total;
+    }
+
+    public void setTotal(Double total) {
+        this.total = total;
+    }
+
+    public String getObjectiveScoreList() {
+        return objectiveScoreList;
+    }
+
+    public void setObjectiveScoreList(String objectiveScoreList) {
+        this.objectiveScoreList = objectiveScoreList;
+    }
+
+    public String getSubjectiveScoreList() {
+        return subjectiveScoreList;
+    }
+
+    public void setSubjectiveScoreList(String subjectiveScoreList) {
+        this.subjectiveScoreList = subjectiveScoreList;
+    }
+
+}

+ 49 - 0
src/main/java/cn/com/qmth/markingaudit/bean/ScoreInfo.java

@@ -0,0 +1,49 @@
+package cn.com.qmth.markingaudit.bean;
+
+public class ScoreInfo {
+
+    // 大题名
+    private String majorName;
+
+    // 大题号
+    private String majorNo;
+
+    // 小题号
+    private String minorNo;
+
+    // 得分
+    private Double score;
+
+    public String getMajorName() {
+        return majorName;
+    }
+
+    public void setMajorName(String majorName) {
+        this.majorName = majorName;
+    }
+
+    public String getMajorNo() {
+        return majorNo;
+    }
+
+    public void setMajorNo(String majorNo) {
+        this.majorNo = majorNo;
+    }
+
+    public String getMinorNo() {
+        return minorNo;
+    }
+
+    public void setMinorNo(String minorNo) {
+        this.minorNo = minorNo;
+    }
+
+    public Double getScore() {
+        return score;
+    }
+
+    public void setScore(Double score) {
+        this.score = score;
+    }
+
+}

+ 10 - 0
src/main/java/cn/com/qmth/markingaudit/controller/MonitorController.java

@@ -20,6 +20,8 @@ import cn.com.qmth.markingaudit.bean.QuestionDataQuery;
 import cn.com.qmth.markingaudit.bean.QuestionDataVo;
 import cn.com.qmth.markingaudit.bean.RejectDataQuery;
 import cn.com.qmth.markingaudit.bean.RejectDataVo;
+import cn.com.qmth.markingaudit.bean.ScoreDataQuery;
+import cn.com.qmth.markingaudit.bean.ScoreDataVo;
 import cn.com.qmth.markingaudit.bean.StudentDataQuery;
 import cn.com.qmth.markingaudit.bean.StudentDataVo;
 import cn.com.qmth.markingaudit.bean.SubjectDataQuery;
@@ -93,4 +95,12 @@ public class MonitorController {
         req.setSchoolCode(ai.getSchoolCode());
         return monitorService.rejectData(req);
     }
+
+    @ApiOperation(value = "成绩数据")
+    @PostMapping("scoreDataSync")
+    public List<ScoreDataVo> scoreData(@Validated ScoreDataQuery req) {
+        AccessInfo ai = ServletUtil.getAccessInfo();
+        req.setSchoolCode(ai.getSchoolCode());
+        return monitorService.scoreData(req);
+    }
 }

+ 4 - 0
src/main/java/cn/com/qmth/markingaudit/dao/MonitorDao.java

@@ -17,6 +17,8 @@ import cn.com.qmth.markingaudit.bean.QuestionDataQuery;
 import cn.com.qmth.markingaudit.bean.QuestionDataVo;
 import cn.com.qmth.markingaudit.bean.RejectDataQuery;
 import cn.com.qmth.markingaudit.bean.RejectDataVo;
+import cn.com.qmth.markingaudit.bean.ScoreDataQuery;
+import cn.com.qmth.markingaudit.bean.ScoreDataVo;
 import cn.com.qmth.markingaudit.bean.StudentDataQuery;
 import cn.com.qmth.markingaudit.bean.StudentDataVo;
 import cn.com.qmth.markingaudit.bean.SubjectDataQuery;
@@ -46,4 +48,6 @@ public interface MonitorDao {
 
     List<RejectDataVo> rejectData(@Param("req") RejectDataQuery req);
 
+    List<ScoreDataVo> scoreData(@Param("req") ScoreDataQuery req);
+
 }

+ 4 - 0
src/main/java/cn/com/qmth/markingaudit/service/MonitorService.java

@@ -12,6 +12,8 @@ import cn.com.qmth.markingaudit.bean.QuestionDataQuery;
 import cn.com.qmth.markingaudit.bean.QuestionDataVo;
 import cn.com.qmth.markingaudit.bean.RejectDataQuery;
 import cn.com.qmth.markingaudit.bean.RejectDataVo;
+import cn.com.qmth.markingaudit.bean.ScoreDataQuery;
+import cn.com.qmth.markingaudit.bean.ScoreDataVo;
 import cn.com.qmth.markingaudit.bean.StudentDataQuery;
 import cn.com.qmth.markingaudit.bean.StudentDataVo;
 import cn.com.qmth.markingaudit.bean.SubjectDataQuery;
@@ -36,4 +38,6 @@ public interface MonitorService {
 
     List<RejectDataVo> rejectData(RejectDataQuery req);
 
+    List<ScoreDataVo> scoreData(ScoreDataQuery req);
+
 }

+ 69 - 0
src/main/java/cn/com/qmth/markingaudit/service/impl/MonitorServiceImpl.java

@@ -27,6 +27,9 @@ import cn.com.qmth.markingaudit.bean.QuestionDataQuery;
 import cn.com.qmth.markingaudit.bean.QuestionDataVo;
 import cn.com.qmth.markingaudit.bean.RejectDataQuery;
 import cn.com.qmth.markingaudit.bean.RejectDataVo;
+import cn.com.qmth.markingaudit.bean.ScoreDataQuery;
+import cn.com.qmth.markingaudit.bean.ScoreDataVo;
+import cn.com.qmth.markingaudit.bean.ScoreInfo;
 import cn.com.qmth.markingaudit.bean.StudentDataQuery;
 import cn.com.qmth.markingaudit.bean.StudentDataVo;
 import cn.com.qmth.markingaudit.bean.SubjectDataQuery;
@@ -184,4 +187,70 @@ public class MonitorServiceImpl implements MonitorService {
         return monitorDao.rejectData(req);
     }
 
+    @Override
+    public List<ScoreDataVo> scoreData(ScoreDataQuery req) {
+        checkExamIdValid(req.getExamId(), req.getSchoolCode());
+        List<ScoreDataVo> ret = monitorDao.scoreData(req);
+        if (CollectionUtils.isNotEmpty(ret)) {
+            QuestionDataQuery qreq = new QuestionDataQuery();
+            qreq.setExamId(req.getExamId());
+            qreq.setSubjectCode(req.getSubjectCode());
+            List<QuestionDataVo> qs = monitorDao.questionData(qreq);
+            for (ScoreDataVo vo : ret) {
+                if (SubjectiveStatus.MARKED.equals(vo.getSubjectiveStatus())) {
+                    List<ScoreInfo> scores = new ArrayList<>();
+                    vo.setExamInfo(scores);
+                    int objectiveIndex = 0;
+                    int subjectiveIndex = 0;
+                    String[] objectiveStr = null;
+                    String[] subjectiveStr = null;
+                    if (StringUtils.isNotBlank(vo.getObjectiveScoreList())) {
+                        objectiveStr = vo.getObjectiveScoreList().split(";");
+                    }
+                    if (StringUtils.isNotBlank(vo.getSubjectiveScoreList())) {
+                        subjectiveStr = vo.getSubjectiveScoreList().split(";");
+                    }
+                    for (QuestionDataVo q : qs) {
+                        ScoreInfo score = new ScoreInfo();
+                        scores.add(score);
+                        if (q.getIsObjective()) {
+                            score.setMajorName(q.getMajorName());
+                            score.setMajorNo(q.getMajorNo());
+                            score.setMinorNo(q.getMinorNo());
+                            score.setScore(getObjectiveScore(objectiveStr, objectiveIndex));
+                            objectiveIndex++;
+                        } else {
+                            score.setMajorName(q.getMajorName());
+                            score.setMajorNo(q.getMajorNo());
+                            score.setMinorNo(q.getMinorNo());
+                            score.setScore(getSubjectiveScore(subjectiveStr, subjectiveIndex));
+                            subjectiveIndex++;
+                        }
+                    }
+                }
+                vo.setSubjectiveScoreList(null);
+                vo.setObjectiveScoreList(null);
+            }
+        }
+        return ret;
+    }
+
+    private Double getObjectiveScore(String[] scores, int index) {
+        if (scores == null) {
+            return 0.0;
+        }
+        if (index >= scores.length) {
+            return 0.0;
+        }
+        String[] tem = scores[index].split(":");
+        return Double.valueOf(tem[1]);
+    }
+
+    private Double getSubjectiveScore(String[] scores, int index) {
+        if (scores == null) {
+            return 0.0;
+        }
+        return Double.valueOf(scores[index]);
+    }
+
 }

+ 1 - 1
src/main/resources/application.properties

@@ -13,7 +13,7 @@ com.qmth.api.uri-prefix=/monitor
 #
 db.host=localhost
 db.port=3306
-db.database=stmms_ft
+db.database=stmms_ft_225
 com.qmth.datasource.username=root
 com.qmth.datasource.password=123456
 com.qmth.datasource.url=jdbc:mysql://${db.host}:${db.port}/${db.database}?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2b8&rewriteBatchedStatements=true

+ 13 - 2
src/main/resources/mapper/MonitorMapper.xml

@@ -31,7 +31,8 @@
 	</select>
 	
 	<select id="questionData" resultType="cn.com.qmth.markingaudit.bean.QuestionDataVo">
-		select s.name,t.main_title majorName,t.main_number majorNo,t.sub_number minorNo,t.total_score minorScore
+		select s.name,t.main_title majorName,t.main_number majorNo,t.sub_number minorNo,
+		t.total_score minorScore,t.is_objective
 		from eb_exam_question t 
 		left join eb_exam_subject s on t.exam_id=s.exam_id and t.subject_code=s.code
 		where t.exam_id=#{req.examId}
@@ -61,7 +62,7 @@
 		f.main_title majorName,f.main_number majorNo,f.sub_number minorNo,t.score
 		from eb_subjective_score t 
 		left join eb_exam_question f on t.exam_id=f.exam_id and t.subject_code=f.subject_code 
-		and t.main_number=f.main_number and t.sub_number=f.sub_number
+		and t.main_number=f.main_number and t.sub_number=f.sub_number and f.is_objective=0
 		where 1=1
 		and t.student_id in
 		<foreach collection="ids" item="item"
@@ -118,4 +119,14 @@
 		order by t.id
 		limit #{req.pageSize}
 	</select>
+	<select id="scoreData" resultType="cn.com.qmth.markingaudit.bean.ScoreDataVo">
+		select t.id dataId,t.objective_score+t.subjective_score total,t.exam_number cardNo,
+		t.subjective_status,t.objective_score_list,t.subjective_score_list
+		from eb_exam_student t 
+		where t.exam_id=#{req.examId}
+		and t.subject_code=#{req.subjectCode}
+		and t.id&gt;=#{req.startId}
+		order by t.id
+		limit #{req.pageSize}
+	</select>
 </mapper>