浏览代码

Merge remote-tracking branch 'origin/test20200828' into dev_20201016

ting.yin 4 年之前
父节点
当前提交
20b8225c08

+ 2 - 2
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/dao/ExamStudentDao.java

@@ -64,9 +64,9 @@ public interface ExamStudentDao
     public List<String> findDistinctPackageCode(int examId);
 
     @Modifying
-    @Query("update ExamStudent s set s.subjectiveStatus=?2, s.subjectiveScore=?3, s.subjectiveScoreList=?4 ,s.inspectorId=?5 where s.id=?1")
+    @Query("update ExamStudent s set s.subjectiveStatus=?2, s.subjectiveScore=?3, s.subjectiveScoreList=?4 ,s.inspectTime=?5,s.inspectorId=?6 where s.id=?1")
     public void updateSubjectiveStatusAndScore(Integer id, SubjectiveStatus status, double score, String scoreList,
-            Integer inspectorId);
+            Date inspectTime, Integer inspectorId);
 
     @Modifying
     @Query("update ExamStudent s set s.subjectiveStatus=?3, s.subjectiveScore=?4, s.subjectiveScoreList=?5,s.inspectTime=?6,s.inspectorId=?7 where s.examId=?1 and s.subjectCode=?2")

+ 1 - 1
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/model/MarkGroup.java

@@ -166,7 +166,7 @@ public class MarkGroup implements Serializable {
         if (doubleRate != null && doubleRate >= 0 && doubleRate <= 1) {
             this.doubleRate = doubleRate;
         }
-        if (arbitrateThreshold != null && arbitrateThreshold > 0) {
+        if (arbitrateThreshold != null && arbitrateThreshold >= 0) {
             this.arbitrateThreshold = arbitrateThreshold;
         }
         if (scorePolicy != null) {

+ 1 - 1
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/ExamStudentService.java

@@ -141,6 +141,6 @@ public interface ExamStudentService {
 
     public List<String> findDistinctClassName(Integer examId);
 
-    public void updateSubjectiveStatusAndTimeAndInspectorId(Integer studentId, SubjectiveStatus inspected,
+    public void updateSubjectiveStatusAndTimeAndInspectorId(Integer studentId, SubjectiveStatus status,
             Date inspectTime, Integer inspectorId);
 }

+ 1 - 1
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/ExamStudentServiceImpl.java

@@ -447,7 +447,7 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
     @Override
     @Transactional
     public void updateSubjectiveStatusAndScore(Integer id, SubjectiveStatus status, double score, String scoreList) {
-        studentDao.updateSubjectiveStatusAndScore(id, status, score, scoreList, null);
+        studentDao.updateSubjectiveStatusAndScore(id, status, score, scoreList, null, null);
     }
 
     @Override

+ 6 - 6
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/SubjectiveScoreServiceImpl.java

@@ -81,20 +81,20 @@ public class SubjectiveScoreServiceImpl extends BaseQueryService<SubjectiveScore
                 // predicates.add(predicate);
                 // }
                 if (query.getMainStartScore() != null) {
-                    Predicate predicate = cb
-                            .greaterThan(root.get("mainScore").as(Double.class), query.getMainStartScore());
+                    Predicate predicate = cb.greaterThanOrEqualTo(root.get("mainScore").as(Double.class),
+                            query.getMainStartScore());
                     predicates.add(predicate);
                 }
                 if (query.getMainEndScore() != null) {
-                    Predicate predicate = cb.lessThan(root.get("mainScore").as(Double.class), query.getMainEndScore());
+                    Predicate predicate = cb.lessThanOrEqualTo(root.get("mainScore").as(Double.class),
+                            query.getMainEndScore());
                     predicates.add(predicate);
                 }
                 if (query.getScore() != null) {
                     predicates.add(cb.equal(root.get("score"), query.getScore()));
                 }
-                return predicates.isEmpty() ?
-                        cb.conjunction() :
-                        cb.and(predicates.toArray(new Predicate[predicates.size()]));
+                return predicates.isEmpty() ? cb.conjunction() : cb.and(predicates.toArray(new Predicate[predicates
+                        .size()]));
             }
         };
     }

+ 2 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/dao/MarkLibraryDao.java

@@ -136,6 +136,8 @@ public interface MarkLibraryDao extends JpaRepository<MarkLibrary, Integer>, Jpa
     void deleteByExamIdAndSubjectCodeAndGroupNumberAndTaskNumber(Integer examId, String subjectCode,
             Integer groupNumber, Integer taskNumber);
 
+    MarkLibrary findByStudentIdAndGroupNumberAndTaskNumber(Integer studentId, Integer groupNumber, Integer taskNumber);
+
     @Modifying(clearAutomatically = true)
     @Query("update MarkLibrary l set l.status=?2, l.markerId=?3, l.markerTime=?4, "
             + "l.markerSpent=?5 where l.id=?1 and l.status in (?6) and (l.markerId=null or l.markerId=?3)")

+ 4 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/dao/ProblemHistoryDao.java

@@ -48,4 +48,8 @@ public interface ProblemHistoryDao extends JpaRepository<ProblemHistory, Integer
     int resetByLibraryId(Integer libraryId, HistoryStatus previousStatus, Integer userId, HistoryStatus newStatus,
             Date time);
 
+    @Modifying
+    @Query("delete ProblemHistory m where m.libraryId=?1")
+    void deleteByLibraryId(Integer libraryId);
+
 }

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

@@ -711,9 +711,20 @@ public class MarkServiceImpl implements MarkService {
             specialTagDao.deleteByLibraryId(library.getId());
             resetStudentGroup(library.getStudentId(), library.getExamId(), library.getSubjectCode(),
                     library.getGroupNumber());
-            updateMarkedCount(library.getExamId(), library.getSubjectCode(), library.getGroupNumber());
             problemHistoryDao.resetByLibraryId(library.getId(), HistoryStatus.WAITING, userId, HistoryStatus.BACK,
                     new Date());
+            // 开启三评时,打回1,2任务则删除第3条任务
+            long count = libraryDao.countByStudentIdAndGroupNumber(library.getStudentId(), library.getGroupNumber());
+            if (library.getTaskNumber() != 3 && count == 3) {
+                MarkLibrary third = libraryDao.findByStudentIdAndGroupNumberAndTaskNumber(library.getStudentId(),
+                        library.getGroupNumber(), 3);
+                trackDao.deleteByLibraryId(third.getId());
+                specialTagDao.deleteByLibraryId(third.getId());
+                problemHistoryDao.deleteByLibraryId(third.getId());
+                libraryDao.delete(third);
+                updateLibraryCount(group);
+            }
+            updateMarkedCount(group);
             return true;
         } else {
             return false;
@@ -1312,13 +1323,22 @@ public class MarkServiceImpl implements MarkService {
                 specialTagDao.deleteByLibraryId(library.getId());
                 problemHistoryDao.resetByLibraryId(library.getId(), HistoryStatus.WAITING, userId, HistoryStatus.BACK,
                         new Date());
+                if (library.getTaskNumber() == 3) {
+                    // 出现三评时删除第三条任务
+                    problemHistoryDao.deleteByLibraryId(library.getId());
+                    libraryDao.delete(library);
+                    updateLibraryCount(group);
+                }
             }
         }
         if (count > 0) {
-            updateMarkedCount(group.getExamId(), group.getSubjectCode(), group.getNumber());
+            updateMarkedCount(group);
             resetStudentGroup(student.getId(), group.getExamId(), group.getSubjectCode(), group.getNumber());
+            studentService.updateSubjectiveStatusAndTimeAndInspectorId(student.getId(), SubjectiveStatus.UNMARK, null,
+                    null);
+            return true;
         }
-        return true;
+        return false;
     }
 
 }

+ 2 - 2
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/MarkGroupController.java

@@ -459,10 +459,10 @@ public class MarkGroupController extends BaseExamController {
                 if (list != null && !list.isEmpty()) {
                     groupService.updatePicList(examId, subjectCode, number, list);
                 }
-                if (doubleRate != null) {
+                if (doubleRate != null && doubleRate >= 0 && doubleRate <= 1) {
                     groupService.updateDoubleRate(examId, subjectCode, number, doubleRate);
                 }
-                if (arbitrateThreshold != null) {
+                if (arbitrateThreshold != null && arbitrateThreshold >= 0) {
                     groupService.updateArbitrateThreshold(examId, subjectCode, number, arbitrateThreshold);
                 }
                 groupService.updateMarkMode(examId, subjectCode, number, markMode);

+ 6 - 1
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/groupAdd.jsp

@@ -121,7 +121,7 @@
             <label class="control-label">仲裁阀值</label>
             <div class="controls">
                 <form:input path="arbitrateThreshold" id="arbitrateThreshold" htmlEscape="false" maxlength="100"
-                            class="required" type="number"/>*阈值为分数
+                            class="required" type="number"/>*阈值为分数且大于等于0
             </div>
         </div>
         <div class="control-group">
@@ -178,6 +178,11 @@
     }
 
     $('#btnSubmit').click(function () {
+    	if($("#arbitrateThreshold").val()<0){
+    		alert("仲裁阈值不能小于0");
+    		return;
+    	}
+    	
         var questionDetail = [];
         var fill = true;
         $("#questionDiv div div").each(function () {

+ 6 - 1
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/groupEditFull.jsp

@@ -143,7 +143,7 @@
             <label class="control-label">仲裁阀值</label>
             <div class="controls">
                 <form:input path="arbitrateThreshold" htmlEscape="false" maxlength="100" class="required" type="number"
-                            id="arbitrateThreshold"/>*阈值为分数
+                            id="arbitrateThreshold"/>*阈值为分数且大于等于0
             </div>
         </div>
         <div class="control-group">
@@ -209,6 +209,11 @@
     }
 
     $('#btnSubmit').click(function () {
+    	if($("#arbitrateThreshold").val()<0){
+    		alert("仲裁阈值不能小于0");
+    		return;
+    	}
+    	
         var questionDetail = [];
         var fill = true;
         $("#questionDiv div div").each(function () {