ting.yin 3 سال پیش
والد
کامیت
0c98404f1a

+ 11 - 1
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/model/MarkResult.java

@@ -1,5 +1,6 @@
 package cn.com.qmth.stmms.biz.mark.model;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
@@ -96,7 +97,16 @@ public class MarkResult {
     }
 
     public String getScoreList() {
-        return StringUtils.join(scoreList, SPLIT);
+        List<Object> list = new ArrayList<Object>();
+        for (int i = 0; i < scoreList.length; i++) {
+            Double d = scoreList[i];
+            if (d % 1 == 0) {
+                list.add(d.intValue());
+            } else {
+                list.add(d);
+            }
+        }
+        return StringUtils.join(list, SPLIT);
     }
 
     public void setScoreList(Double[] scoreList) {

+ 3 - 1
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/service/Impl/ArbitrateHistoryServiceImpl.java

@@ -26,6 +26,8 @@ import cn.com.qmth.stmms.common.enums.HistoryStatus;
 @Service
 public class ArbitrateHistoryServiceImpl extends BaseQueryService<ArbitrateHistory> implements ArbitrateHistoryService {
 
+    public static final int UN_SELECTIVE_SCORE = -1;
+
     @Autowired
     private ArbitrateHistoryDao historyDao;
 
@@ -103,7 +105,7 @@ public class ArbitrateHistoryServiceImpl extends BaseQueryService<ArbitrateHisto
                     predicates.add(cb.equal(root.get("secretNumber"), query.getSecretNumber()));
                 }
                 if (query.isUnselective()) {
-                    predicates.add(cb.equal(root.get("totalScore"), -1));
+                    predicates.add(cb.equal(root.get("totalScore"), UN_SELECTIVE_SCORE));
                 }
                 if (query.getStartScroe() != null) {
                     Predicate predicate1 = cb.ge(root.get("totalScore"), query.getStartScroe());

+ 9 - 4
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/service/Impl/MarkLibraryServiceImpl.java

@@ -30,6 +30,8 @@ public class MarkLibraryServiceImpl extends BaseQueryService<MarkLibrary> implem
     @Autowired
     private MarkLibraryDao libraryDao;
 
+    public static final int UN_SELECTIVE_SCORE = -1;
+
     @Override
     public MarkLibrary findById(int id) {
         return libraryDao.findOne(id);
@@ -145,13 +147,16 @@ public class MarkLibraryServiceImpl extends BaseQueryService<MarkLibrary> implem
                     predicates.add(cb.and(predicate1, predicate2));
                 }
                 if (query.isUnselective()) {
-                    Predicate predicate1 = cb.equal(root.get("markerScore"), -1);
-                    Predicate predicate2 = cb.equal(root.get("headerScore"), -1);
+                    Predicate predicate1 = cb.equal(root.get("markerScore"), UN_SELECTIVE_SCORE);
+                    Predicate predicate2 = cb.equal(root.get("headerScore"), UN_SELECTIVE_SCORE);
                     predicates.add(cb.or(predicate1, predicate2));
                 }
                 if (StringUtils.isNotBlank(query.getQuestionScore())) {
-                    predicates.add(cb.like(root.get("markerScoreList").as(String.class), "%" + query.getQuestionScore()
-                            + "%"));
+                    Predicate predicate1 = cb.like(root.get("markerScoreList").as(String.class),
+                            query.getQuestionScore() + ",%");
+                    Predicate predicate2 = cb.like(root.get("markerScoreList").as(String.class),
+                            "%," + query.getQuestionScore());
+                    predicates.add(cb.or(predicate1, predicate2));
                 }
                 if (query.getHeaderId() != null) {
                     predicates.add(cb.equal(root.get("headerId"), query.getHeaderId()));

+ 2 - 2
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/service/Impl/MarkServiceImpl.java

@@ -1647,8 +1647,8 @@ public class MarkServiceImpl implements MarkService {
                 markerScoreList.append(",");
             }
         }
-        if (libraryDao.updateMarkerResult(library.getId(), LibraryStatus.REJECTED, null, null,
-                markerScoreList.toString(), null, null, LibraryStatus.MARKED) == 1) {
+        if (libraryDao.updateMarkerResult(library.getId(), LibraryStatus.REJECTED, library.getMarkerId(), null,
+                markerScoreList.toString(), null, null, LibraryStatus.MARKED, LibraryStatus.INSPECTED) == 1) {
             resetStudentGroup(library.getStudentId(), library.getExamId(), library.getSubjectCode(),
                     library.getGroupNumber());
             problemHistoryDao.resetByLibraryId(library.getId(), HistoryStatus.WAITING, userId, HistoryStatus.BACK,

+ 5 - 3
stmms-web/src/main/java/cn/com/qmth/stmms/admin/dto/ExamStudentDTO.java

@@ -92,9 +92,11 @@ public class ExamStudentDTO {
         setTeacher(student.getTeacher());
         setObjectiveList(student.getScoreList(true));
         List<String> subjectiveList = new LinkedList<String>();
-        String[] values = StringUtils.split(student.getSubjectiveScoreList(), SPLIT);
-        for (String value : values) {
-            subjectiveList.add(value);
+        if (StringUtils.isNotBlank(student.getSubjectiveScoreList())) {
+            String[] values = StringUtils.split(student.getSubjectiveScoreList(), SPLIT);
+            for (String value : values) {
+                subjectiveList.add(value);
+            }
         }
         setSubjectiveList(subjectiveList);
     }

+ 3 - 1
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/ArbitrateController.java

@@ -66,6 +66,8 @@ public class ArbitrateController extends BaseExamController {
 
     protected static Logger log = LoggerFactory.getLogger(ArbitrateController.class);
 
+    public static final int UN_SELECTIVE_SCORE = -1;
+
     @Autowired
     private UserService userService;
 
@@ -324,7 +326,7 @@ public class ArbitrateController extends BaseExamController {
                 lockService.watch(LockType.GROUP, history.getExamId(), history.getSubjectCode(),
                         history.getGroupNumber());
                 history.setUserId(wu.getUser().getId());
-                history.setTotalScore(markResult.isUnselective() ? -1 : markResult.getMarkerScore());
+                history.setTotalScore(markResult.isUnselective() ? UN_SELECTIVE_SCORE : markResult.getMarkerScore());
                 history.setScoreList(markResult.isUnselective() ? null : markResult.getScoreList());
                 history.setStatus(HistoryStatus.MARKED);
                 history.setUpdateTime(new Date());

+ 6 - 1
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/ImportQueryController.java

@@ -83,6 +83,8 @@ public class ImportQueryController extends BaseExamController {
 
     public static final String DB_ITEM_JOINER = ":";
 
+    public static final String UN_SELECTIVE_SCORE = "-1";
+
     @RequestMapping("/list")
     public String list(Model model, HttpServletRequest request, ExamStudentSearchQuery query) {
         int examId = getSessionExamId(request);
@@ -103,7 +105,10 @@ public class ImportQueryController extends BaseExamController {
                     if (importQuery.getTagIdList().contains(id)) {
                         student.setTagValue("1");
                     }
-                    student.setSubjectiveScoreList(student.getSubjectiveScoreList().replace("-1", "/"));
+                    if (student.getSubjectiveScoreList() != null) {
+                        student.setSubjectiveScoreList(student.getSubjectiveScoreList()
+                                .replace(UN_SELECTIVE_SCORE, "/"));
+                    }
                     list.add(student);
                 }
             }

+ 3 - 1
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/ScoreController.java

@@ -210,7 +210,9 @@ public class ScoreController extends BaseExamController {
                         student.setObjectiveScore(0d);
                         student.setSubjectiveScore(0d);
                     }
-                    student.setSubjectiveScoreList(student.getSubjectiveScoreList().replace(UN_SELECTIVE_SCORE, "/"));
+                    if(student.getSubjectiveScoreList()!=null){
+                        student.setSubjectiveScoreList(student.getSubjectiveScoreList().replace(UN_SELECTIVE_SCORE, "/"));
+                    }
                     list.add(new ExamStudentDTO(student));
                 }
             }