Переглянути джерело

美术阅卷11月新增需求-加入正评设置标准卷

wangliang 5 роки тому
батько
коміт
bdeb862953

+ 12 - 9
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/MarkTaskApi.java

@@ -1,6 +1,7 @@
 package cn.com.qmth.stmms.ms.marking.api;
 
 import cn.com.qmth.stmms.ms.commons.config.ScoreConfig;
+import cn.com.qmth.stmms.ms.commons.utils.SqlUtil;
 import cn.com.qmth.stmms.ms.commons.web.PageableDTO;
 import cn.com.qmth.stmms.ms.core.domain.ExamQuestion;
 import cn.com.qmth.stmms.ms.core.domain.MarkStage;
@@ -12,6 +13,7 @@ import cn.com.qmth.stmms.ms.core.repository.*;
 import cn.com.qmth.stmms.ms.marking.assembler.MarkTaskAssembler;
 import cn.com.qmth.stmms.ms.marking.dto.MarkTaskDTO;
 import cn.com.qmth.stmms.ms.marking.service.MarkingService;
+import com.google.gson.Gson;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -58,6 +60,9 @@ public class MarkTaskApi {
     @Autowired
     LevelRepo levelRepo;
 
+    @Autowired
+    SqlUtil sqlUtil;
+
     /**
      * 评卷员的评卷任务
      *
@@ -92,13 +97,6 @@ public class MarkTaskApi {
                     predicates.add(builder.equal(root.get("paper").get("batchNo"), batchNo));
                 }
             } else if (stage == MarkStage.SCORE) {
-                //查询
-//                if (Objects.nonNull(scoreConfig) && scoreConfig.isEnable()) {
-//                    Long batchNo = markTaskRepo.findByQuestionId(questionId);
-//                    if (!Objects.isNull(batchNo)) {
-//                        predicates.add(builder.equal(root.get("batchNo"), batchNo));
-//                    }
-//                }
                 predicates.add(builder.isNotNull(root.get("result")));
             }
             if (isSample != null) {
@@ -115,10 +113,15 @@ public class MarkTaskApi {
             if (Objects.nonNull(isSample) && isSample) {
                 ExamQuestion examQuestion = examQuestionRepo.findOne(questionId);
                 if (examQuestion.getTest() == TrialEnum.DEFAULT.getId()) {
-                    List<Paper> paperList = paperRepo.findByLevelAndIsSampleAndIsMissingAndSubjectAndTestAndAreaCodeAndWorkIdOrderByUpdatedOnDesc(level, isSample, false, examQuestion.getSubject(), TrialEnum.START_FORMAL.getId(), examQuestion.getAreaCode(), examQuestion.getWorkId());
+                    String sql = "select p.id, p.work_id as workId, p.secret_number as secretNumber, p.idx, p.student_name as studentName, p.exam_number as examNumber, p.subject, p.question_id as questionId, p.area_code as areaCode, p.question_name as questionName, p.level, p.redo_level as redoLevel, p.score, p.inspect_score as inspectScore, p.inspect_level as inspectLevel, p.inspector, p.is_arbitrated as isArbitrated, p.is_rejected as isRejected, p.mark_by_leader as markByLeader, p.marked_logic as markedLogic, p.updated_on as updatedOn, p.is_manual as isManual, p.uploaded_on as uploadedOn, p.uploaded_count as uploadedCount, p.is_tagged as isTagged, p.is_sample as isSample, p.inspect_range as inspectRange, p.source_name as sourceName, p.sheet_md5 as sheetMD5, p.slice_md5 as sliceMD5, p.is_missing as isMissing, p.random_seq as randomSeq, p.exam_room as examRoom, p.is_test as test, p.is_active as active, p.batch_no as batchNo from paper p where p.`level` = ? and p.`is_sample` = ? and p.`is_missing` = ? and p.`subject` = ? and (p.`is_test` = ? or p.`is_test` = ?) and p.`area_code` = ? and p.`work_id` = ? order by p.`updated_on` desc";
+                    sql = sqlUtil.sqlPrint(sql, "'" + level + "'", isSample, false, "'" + examQuestion.getSubject() + "'", TrialEnum.DEFAULT.getId(), TrialEnum.START_FORMAL.getId(), "'" + examQuestion.getAreaCode() + "'", examQuestion.getWorkId());
+                    List paperList = sqlUtil.execSqlForMap(sql);
                     if (Objects.nonNull(paperList) && paperList.size() > 0) {
                         MarkUser markUser = markUserRepo.findOne(markerId);
-                        for (Paper p : paperList) {
+                        Gson gson = new Gson();
+                        for (int i = 0; i < paperList.size(); i++) {
+                            Map map = (Map) paperList.get(i);
+                            Paper p = gson.fromJson(gson.toJson(map), Paper.class);
                             MarkTask markTask = new MarkTask(markUser, p, stage, 1L);
                             markTaskDTOs.add(markTaskAssembler.toDTO(markTask));
                         }