ting.yin 5 anos atrás
pai
commit
9cd632f128

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

@@ -31,8 +31,8 @@ public interface MarkLibraryDao extends JpaRepository<MarkLibrary, Integer>, Jpa
     @Query("select l1 from MarkLibrary l1 where l1.examId=?1 and l1.subjectCode=?2 and l1.groupNumber=?3 and l1.status in (?5) "
             + "and not exists (select l2 from MarkLibrary l2 where l2.studentId=l1.studentId and l2.id!=l1.id and l2.markerId=?4) "
             + "and exists (select mc.id from MarkerClass mc, ExamStudent s where l1.studentId=s.id and mc.markerId=?4 and s.className=mc.className)")
-    List<MarkLibrary> findUnMarkedFilterClass(Integer examId, String subjectCode, Integer groupNumber, Integer markerId,
-            Set<LibraryStatus> statusSet, Pageable page);
+    List<MarkLibrary> findUnMarkedFilterClass(Integer examId, String subjectCode, Integer groupNumber,
+            Integer markerId, Set<LibraryStatus> statusSet, Pageable page);
 
     List<MarkLibrary> findByMarkerId(Integer markerId);
 
@@ -48,8 +48,8 @@ public interface MarkLibraryDao extends JpaRepository<MarkLibrary, Integer>, Jpa
     long countByExamIdAndSubjectCodeAndGroupNumber(Integer examId, String subjectCode, Integer groupNumber);
 
     @Query("select count(*) from MarkLibrary f where f.examId=?1 and f.subjectCode=?2 and f.groupNumber=?3 and f.taskNumber=?4")
-    long countByExamIdAndSubjectCodeAndGroupNumberAndTaskNumber(Integer examId, String subjectCode, Integer groupNumber,
-            Integer taskNumber);
+    long countByExamIdAndSubjectCodeAndGroupNumberAndTaskNumber(Integer examId, String subjectCode,
+            Integer groupNumber, Integer taskNumber);
 
     @Query("select count(*) from MarkLibrary f where f.examId=?1 and f.subjectCode=?2 and f.groupNumber=?3 and f.status in (?4)")
     long countByExamIdAndSubjectCodeAndGroupNumberAndStatus(Integer examId, String subjectCode, Integer groupNumber,
@@ -110,8 +110,8 @@ public interface MarkLibraryDao extends JpaRepository<MarkLibrary, Integer>, Jpa
     @Modifying(clearAutomatically = true)
     @Query("update MarkLibrary m set m.headerId=?3, m.headerScore=?4, m.headerScoreList=?5, m.headerTime=?6, m.status=?7 "
             + " where m.studentId=?1 and m.groupNumber=?2")
-    void updateHeaderResult(Integer studentId, Integer groupNumber, Integer userId, Double totalScore, String scoreList,
-            Date updateTime, LibraryStatus arbitrated);
+    void updateHeaderResult(Integer studentId, Integer groupNumber, Integer userId, Double totalScore,
+            String scoreList, Date updateTime, LibraryStatus arbitrated);
 
     @Modifying(clearAutomatically = true)
     @Query("update MarkLibrary m set m.status=?3 where m.studentId=?1 and m.groupNumber=?2")
@@ -130,4 +130,9 @@ public interface MarkLibraryDao extends JpaRepository<MarkLibrary, Integer>, Jpa
     @Query("select m.markerScore from MarkLibrary m where m.examId=?1 and m.subjectCode=?2 and m.groupNumber=?3 and m.status in (?4) group by m.markerScore ")
     List<Double> findScore(int examId, String subjectCode, Integer groupNumber, LibraryStatus... status);
 
+    @Modifying
+    @Query("delete MarkLibrary m where m.examId=?1 and m.subjectCode=?2 and m.groupNumber=?3 and m.taskNumber=?4")
+    void deleteByExamIdAndSubjectCodeAndGroupNumberAndTaskNumber(Integer examId, String subjectCode,
+            Integer groupNumber, Integer taskNumber);
+
 }

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

@@ -949,6 +949,8 @@ public class MarkServiceImpl implements MarkService {
                     group.getNumber());
             libraryDao.resetByExamIdAndSubjectCodeAndGroupNumber(group.getExamId(), group.getSubjectCode(),
                     group.getNumber(), LibraryStatus.WAITING);
+            libraryDao.deleteByExamIdAndSubjectCodeAndGroupNumberAndTaskNumber(group.getExamId(),
+                    group.getSubjectCode(), group.getNumber(), 3);
             markerDao.resetByExamIdAndSubjectCodeAndGroupNumber(group.getExamId(), group.getSubjectCode(),
                     group.getNumber());
         } else if (group.getStatus() == MarkStatus.TRIAL) {

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

@@ -270,6 +270,7 @@ public class MarkGroupController extends BaseExamController {
             model.addAttribute("pictureConfig", pictureConfig);
             model.addAttribute("markModeList", MarkMode.values());
             model.addAttribute("scorePolicyList", ScorePolicy.values());
+            model.addAttribute("thirdPolicyList", ThirdPolicy.values());
             return "modules/exam/groupEditSimple";
         } else {
             redirectAttributes.addAttribute("subjectCode", subjectCode);
@@ -354,10 +355,10 @@ public class MarkGroupController extends BaseExamController {
     public String save(HttpServletRequest request, Model model, RedirectAttributes redirectAttributes,
             @RequestParam String subjectCode, @RequestParam Integer number, @RequestParam Boolean reset,
             @RequestParam(required = false) String picList, @RequestParam(required = false) Double doubleRate,
-            @RequestParam(required = false) Double arbitrateThreshold,@RequestParam(required = false) Integer thirdPolicy,
-            @RequestParam(required = false) Integer scorePolicy, @RequestParam(required = false) MarkMode markMode,
-            @RequestParam(required = false) Integer trialCount, @RequestParam(required = false) boolean sheetView,
-            @RequestParam(required = false) String questionDetail,
+            @RequestParam(required = false) Double arbitrateThreshold,
+            @RequestParam(required = false) Integer thirdPolicy, @RequestParam(required = false) Integer scorePolicy,
+            @RequestParam(required = false) MarkMode markMode, @RequestParam(required = false) Integer trialCount,
+            @RequestParam(required = false) boolean sheetView, @RequestParam(required = false) String questionDetail,
             @RequestParam(required = false) String intervalScoreList) {
         int examId = getSessionExamId(request);
         MarkGroup group = groupService.findOne(examId, subjectCode, number);
@@ -368,7 +369,8 @@ public class MarkGroupController extends BaseExamController {
                     questionDetail = StringEscapeUtils.unescapeHtml(questionDetail);
                     JSONArray array = JSONArray.fromObject(questionDetail);
                     List<ExamQuestionDTO> detailList = JSONArray.toList(array, new ExamQuestionDTO(), new JsonConfig());
-                    List<ExamQuestion> all = questionService.findByExamAndSubjectAndObjective(examId, subjectCode, false);
+                    List<ExamQuestion> all = questionService.findByExamAndSubjectAndObjective(examId, subjectCode,
+                            false);
                     List<ExamQuestion> old = questionService.findByExamAndSubjectAndObjectiveAndGroupNumber(examId,
                             subjectCode, false, number);
                     Set<Integer> mainNumbers = new HashSet<Integer>();
@@ -395,11 +397,12 @@ public class MarkGroupController extends BaseExamController {
                     }
                     if (detailList != null && detailList.size() > 0) {
                         ScorePolicy policy = scorePolicy != null ? ScorePolicy.findByValue(scorePolicy) : null;
-                        ThirdPolicy third = thirdPolicy != null ? ThirdPolicy.findByValue(thirdPolicy) : ThirdPolicy.DISABLE;
+                        ThirdPolicy third = thirdPolicy != null ? ThirdPolicy.findByValue(thirdPolicy)
+                                : ThirdPolicy.DISABLE;
                         try {
                             lockService.waitlock(LockType.GROUP, true, group.getExamId(), group.getSubjectCode(),
                                     group.getNumber());
-                            markService.updateGroup(group, buildQuestionList(group, detailList), policy,third);
+                            markService.updateGroup(group, buildQuestionList(group, detailList), policy, third);
                         } catch (Exception e) {
                             log.error("update group error", e);
                             throw new RuntimeException("重置更新大题失败", e);
@@ -442,7 +445,7 @@ public class MarkGroupController extends BaseExamController {
                 redirectAttributes.addAttribute("subjectCode", subjectCode);
                 redirectAttributes.addAttribute("number", number);
                 return "redirect:/admin/exam/group";
-            
+
             } catch (Exception e) {
                 log.error("edit markgroup error", e);
                 addMessage(redirectAttributes, "参数有误");
@@ -465,9 +468,10 @@ public class MarkGroupController extends BaseExamController {
     public String insert(HttpServletRequest request, Model model, RedirectAttributes redirectAttributes,
             @RequestParam String subjectCode, @RequestParam Integer number, @RequestParam String questionDetail,
             @RequestParam String picList, @RequestParam(required = false) Double doubleRate,
-            @RequestParam(required = false) Double arbitrateThreshold,@RequestParam(required = false) Integer thirdPolicy,
-            @RequestParam(required = false) Integer scorePolicy, @RequestParam(required = false) String markMode,
-            @RequestParam(required = false) Integer trialCount, @RequestParam(required = false) boolean sheetView) {
+            @RequestParam(required = false) Double arbitrateThreshold,
+            @RequestParam(required = false) Integer thirdPolicy, @RequestParam(required = false) Integer scorePolicy,
+            @RequestParam(required = false) String markMode, @RequestParam(required = false) Integer trialCount,
+            @RequestParam(required = false) boolean sheetView) {
         int examId = getSessionExamId(request);
         MarkGroup group = groupService.findOne(examId, subjectCode, number);
         if (group != null) {
@@ -488,7 +492,8 @@ public class MarkGroupController extends BaseExamController {
                 // build picList
                 picList = StringEscapeUtils.unescapeHtml(picList);
                 JSONArray array = JSONArray.fromObject(picList);
-                List<PictureConfigItem> picConfigList = JSONArray.toList(array, new PictureConfigItem(), new JsonConfig());
+                List<PictureConfigItem> picConfigList = JSONArray.toList(array, new PictureConfigItem(),
+                        new JsonConfig());
                 // build questionDetail
                 questionDetail = StringEscapeUtils.unescapeHtml(questionDetail);
                 array = JSONArray.fromObject(questionDetail);
@@ -511,14 +516,16 @@ public class MarkGroupController extends BaseExamController {
                             return "redirect:/admin/exam/group/add";
                         }
                     }
-                    group = new MarkGroup(examId, subjectCode, number, picConfigList, 0d, doubleRate, arbitrateThreshold,
-                            scorePolicy, markMode, trialCount, sheetView,thirdPolicy);
+                    group = new MarkGroup(examId, subjectCode, number, picConfigList, 0d, doubleRate,
+                            arbitrateThreshold, scorePolicy, markMode, trialCount, sheetView, thirdPolicy);
                     // clear and replace exam_question
-                    questionService.deleteByExamAndSubjectAndObjectiveAndGroupNumber(examId, subjectCode, false, number);
+                    questionService
+                            .deleteByExamAndSubjectAndObjectiveAndGroupNumber(examId, subjectCode, false, number);
                     List<ExamQuestion> list = buildQuestionList(group, detailList);
                     questionService.save(list);
                     groupService.save(group);
-                    subjectService.updateScore(examId, subjectCode, false, groupService.sumTotalScore(examId, subjectCode));
+                    subjectService.updateScore(examId, subjectCode, false,
+                            groupService.sumTotalScore(examId, subjectCode));
                     redirectAttributes.addAttribute("subjectCode", subjectCode);
                     return "redirect:/admin/exam/group";
                 } else {

+ 20 - 20
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/groupEditSimple.jsp

@@ -104,26 +104,26 @@
             </div>
         </div>
         </c:forEach>
-		<div class="control-group">
-            <label class="control-label">双评</label>
-            <div class="controls">
-                <input type="checkbox" id="openDouble">开启
-            </div>
-        </div>
-        <div class="doubleDiv">
-        <div class="control-group">
-            <label class="control-label">双评比例</label>
-            <div class="controls">
-                <form:input path="doubleRate" htmlEscape="false" maxlength="100" class="required" type="number" id="doubleRate"/>*比例范围为0-1
-            </div>
-        </div>
-        <div class="control-group">
-            <label class="control-label">仲裁阀值</label>
-            <div class="controls">
-                <form:input path="arbitrateThreshold" htmlEscape="false" maxlength="100" class="required" type="number" id="arbitrateThreshold"/>*阈值为分数
-            </div>
-        </div>
-        </div>
+<!-- 		<div class="control-group"> -->
+<!--             <label class="control-label">双评</label> -->
+<!--             <div class="controls"> -->
+<!--                 <input type="checkbox" id="openDouble">开启 -->
+<!--             </div> -->
+<!--         </div> -->
+<!--         <div class="doubleDiv"> -->
+<!--         <div class="control-group"> -->
+<!--             <label class="control-label">双评比例</label> -->
+<!--             <div class="controls"> -->
+<%--                 <form:input path="doubleRate" htmlEscape="false" maxlength="100" class="required" type="number" id="doubleRate"/>*比例范围为0-1 --%>
+<!--             </div> -->
+<!--         </div> -->
+<!--         <div class="control-group"> -->
+<!--             <label class="control-label">仲裁阀值</label> -->
+<!--             <div class="controls"> -->
+<%--                 <form:input path="arbitrateThreshold" htmlEscape="false" maxlength="100" class="required" type="number" id="arbitrateThreshold"/>*阈值为分数 --%>
+<!--             </div> -->
+<!--         </div> -->
+<!--         </div> -->
 		<div class="control-group">
 			<label class="control-label">原卷显示</label>
 			<div class="controls">