فهرست منبع

手工合并1.5.3_hotfix修改小题仲裁情况下,全卷复核打回小题删除仲裁任务,并只打回小题

yin 2 ماه پیش
والد
کامیت
29b17de0a9

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

@@ -125,10 +125,10 @@ public interface MarkLibraryDao extends JpaRepository<MarkLibrary, Integer>, Jpa
 
     @Modifying(clearAutomatically = true)
     @Query("update MarkLibrary l set l.status=?2, l.markerId=?3, l.markerScore=?4, l.markerScoreList=?5, l.markerTime=?6, "
-            + "l.markerSpent=?7, l.rejectReason=?8, l.headerId=?9, l.headerTime=?10  where l.id=?1 and l.status in (?11) and (l.markerId=null or l.markerId=?3)")
+            + "l.markerSpent=?7, l.rejectReason=?8, l.headerId=?9, l.headerTime=?10, l.headerScore=?11, l.headerScoreList=?12  where l.id=?1 and l.status in (?13) and (l.markerId=null or l.markerId=?3)")
     int updateMarkerResult(Integer id, LibraryStatus newStatus, Integer markerId, Double markerScore,
             String markerScoreList, Date markerTime, Integer spent, String resson, Integer rejecterId, Date rejectTime,
-            LibraryStatus... previousStatus);
+                           Double headerScore,String headerScoreList,LibraryStatus... previousStatus);
 
     @Query("select m.markerScore ,count(m) from MarkLibrary m where m.examId=?1 and m.subjectCode=?2 and m.groupNumber=?3 and m.markerId=?4 and m.markerScore != -1 and m.status in (?5)  group by m.markerScore ")
     List<Object[]> findScoreCount(int examId, String subjectCode, Integer groupNumber, Integer markerId,

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

@@ -627,7 +627,7 @@ public class MarkServiceImpl implements MarkService {
                     }
                 }
                 if (libraryDao.updateMarkerResult(library.getId(), LibraryStatus.REJECTED, library.getMarkerId(), null,
-                        StringUtils.join(markerScoreList, ","), null, null, reason, userId, now, LibraryStatus.MARKED,
+                        StringUtils.join(markerScoreList, ","), null, null, reason, userId, now, null,null,LibraryStatus.MARKED,
                         LibraryStatus.INSPECTED,LibraryStatus.ARBITRATED,LibraryStatus.WAIT_ARBITRATE) == 1) {
                     markerService.updateRejectCountById(library.getMarkerId());
                     rejectHistory.setRejectScoreList(StringUtils.join(markerScoreList, ","));
@@ -822,7 +822,7 @@ public class MarkServiceImpl implements MarkService {
         // 尝试提交评卷结果
         Date now = new Date();
         if (libraryDao.updateMarkerResult(library.getId(), LibraryStatus.MARKED, marker.getId(),
-                result.getMarkerScore(), result.getScoreList(), now, result.getSpent(), null, null, null,
+                result.getMarkerScore(), result.getScoreList(), now, result.getSpent(), null, null, null,null,null,
                 LibraryStatus.WAITING, LibraryStatus.MARKED, LibraryStatus.INSPECTED, LibraryStatus.REJECTED) == 0) {
             // 条件不符更新失败,直接返回
             return false;
@@ -1988,21 +1988,25 @@ public class MarkServiceImpl implements MarkService {
 
                 if (library.getStatus().equals(LibraryStatus.ARBITRATED) || qList.size() == questions.size()) {
                     // 仲裁任务直接重置 或者该分组下所有分数被打回也重置
-                    markerService.updateRejectCountById(library.getMarkerId());
-                    libraryDao.resetById(library.getId(), null, reason, userId, now, LibraryStatus.REJECTED,
-                            LibraryStatus.MARKED, LibraryStatus.PROBLEM, LibraryStatus.INSPECTED,
-                            LibraryStatus.ARBITRATED);
-                    rejectHistoryDao.save(history);
-                    trackDao.deleteByLibraryId(library.getId());
-                    specialTagDao.deleteByLibraryId(library.getId());
                     headerTagDao.deleteByStudentIdAndGroupNumber(library.getStudentId(), groupNumber);
                     headerTrackDao.deleteByPkStudentIdAndGroupNumber(library.getStudentId(), groupNumber);
                     arbitrateDao.deleteByStudentIdAndGroupNumber(student.getId(), groupNumber);
-                    count++;
-                    continue;
+                    if(!ArbitrateType.QUESTION.equals(group.getArbitrateType())){
+                        // 仲裁任务直接重置 或者该分组下所有分数被打回也重置
+                        markerService.updateRejectCountById(library.getMarkerId());
+                        libraryDao.resetById(library.getId(), null, reason, userId, now, LibraryStatus.REJECTED,
+                                LibraryStatus.MARKED, LibraryStatus.PROBLEM, LibraryStatus.INSPECTED,
+                                LibraryStatus.ARBITRATED);
+                        rejectHistoryDao.save(history);
+                        trackDao.deleteByLibraryId(library.getId());
+                        specialTagDao.deleteByLibraryId(library.getId());
+                        count++;
+                        continue;
+                    }
                 }
                 if (library.getStatus().equals(LibraryStatus.MARKED)
-                        || library.getStatus().equals(LibraryStatus.INSPECTED)) {
+                        || library.getStatus().equals(LibraryStatus.INSPECTED)
+                        || (library.getStatus().equals(LibraryStatus.ARBITRATED)&&ArbitrateType.QUESTION.equals(group.getArbitrateType()))) {
                     List<ScoreItem> sList = library.getMarkerScoreItem();
                     for (MarkStepDTO markStepDTO : qList) {
                         trackDao.deleteByLibraryIdAndQuestionNumber(library.getId(),
@@ -2028,8 +2032,8 @@ public class MarkServiceImpl implements MarkService {
                         }
                     }
                     if (libraryDao.updateMarkerResult(library.getId(), LibraryStatus.REJECTED, library.getMarkerId(),
-                            null, StringUtils.join(markerScoreList, ","), null, null, reason, userId, now,
-                            LibraryStatus.MARKED, LibraryStatus.INSPECTED) == 1) {
+                            null, StringUtils.join(markerScoreList, ","), null, null, reason, userId, now,null,null,
+                            LibraryStatus.MARKED, LibraryStatus.INSPECTED,LibraryStatus.ARBITRATED) == 1) {
                         markerService.updateRejectCountById(library.getMarkerId());
                         history.setRejectScoreList(StringUtils.join(markerScoreList, ","));
                         rejectHistoryDao.save(history);
@@ -2149,7 +2153,7 @@ public class MarkServiceImpl implements MarkService {
             // }
         }
         if (libraryDao.updateMarkerResult(library.getId(), LibraryStatus.REJECTED, library.getMarkerId(), null,
-                StringUtils.join(markerScoreList, ","), null, null, reason, userId, now, LibraryStatus.MARKED,
+                StringUtils.join(markerScoreList, ","), null, null, reason, userId, now,null,null, LibraryStatus.MARKED,
                 LibraryStatus.INSPECTED) == 1) {
             markerService.updateRejectCountById(library.getMarkerId());
             history.setRejectScoreList(StringUtils.join(markerScoreList, ","));