1
0
Эх сурвалжийг харах

新增试评任务查看,修复切换试评到正评,分组管理取消重置

ting.yin 3 жил өмнө
parent
commit
fbcf9ca7f5

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

@@ -1486,7 +1486,7 @@ public class MarkServiceImpl implements MarkService {
         }
         for (Integer groupNumber : map.keySet()) {
             MarkGroup group = groupDao.findOne(student.getExamId(), student.getSubjectCode(), groupNumber);
-            if (group.getStatus() == MarkStatus.FINISH) {
+            if (group.getStatus() == MarkStatus.FINISH || group.getStatus() == MarkStatus.TRIAL) {
                 return false;
             }
         }

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

@@ -40,7 +40,7 @@ public class TrialServiceImpl extends BaseQueryService<TrialLibrary> implements
     private TrialTagDao tagDao;
 
     @Override
-    public TrialLibrary findLibrary(Integer id) {
+    public TrialLibrary findById(Integer id) {
         return libraryDao.findOne(id);
     }
 

+ 1 - 1
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/service/TrialService.java

@@ -11,7 +11,7 @@ import cn.com.qmth.stmms.biz.mark.query.TrialLibrarySearchQuery;
 
 public interface TrialService {
 
-    TrialLibrary findLibrary(Integer id);
+    TrialLibrary findById(Integer id);
 
     TrialLibrarySearchQuery findLibrary(TrialLibrarySearchQuery query);
 

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

@@ -229,37 +229,52 @@ public class MarkGroupController extends BaseExamController {
     public String changeStatus(HttpServletRequest request, Model model, RedirectAttributes redirectAttributes,
             @RequestParam String subjectCode, @RequestParam Integer number, @RequestParam MarkStatus status) {
         int examId = getSessionExamId(request);
-        MarkGroup group = groupService.findOne(examId, subjectCode, number);
-        if (group == null) {
+        MarkGroup markGroup = groupService.findOne(examId, subjectCode, number);
+        if (markGroup == null) {
             return "redirect:/admin/exam/mark";
         }
+        boolean allow = false;
+        if (markGroup.getStatus() == MarkStatus.TRIAL && status == MarkStatus.FORMAL) {
+            allow = true;
+        } else if (markGroup.getStatus() == MarkStatus.FORMAL && status == MarkStatus.FINISH
+                && markGroup.getLeftCount() == 0) {
+            allow = true;
+        } else if (markGroup.getStatus() == MarkStatus.FINISH && status == MarkStatus.FORMAL) {
+            allow = true;
+        }
+        if (!allow) {
+            redirectAttributes.addAttribute("message", "不能切换到指定的评卷状态");
+            redirectAttributes.addAttribute("subjectCode", subjectCode);
+            return "redirect:/admin/exam/group";
+        }
+        if (markGroup.getStatus() == MarkStatus.TRIAL && status == MarkStatus.FORMAL) {
+            List<MarkGroup> list = groupService.findByExamAndSubjectAndStatus(examId, subjectCode, MarkStatus.TRIAL);
+            for (MarkGroup group : list) {
+                updateStatus(group, status);
+            }
+            studentService.updateSubjectiveStatusAndScoreAndInspectorId(examId, subjectCode, SubjectiveStatus.UNMARK,
+                    0, null, null, null);
+        } else {
+            updateStatus(markGroup, status);
+        }
+        redirectAttributes.addAttribute("subjectCode", subjectCode);
+        return "redirect:/admin/exam/group";
+    }
+
+    private void updateStatus(MarkGroup group, MarkStatus status) {
         try {
             lockService.waitlock(LockType.GROUP, group.getExamId(), group.getSubjectCode(), group.getNumber());
-            boolean allow = false;
-            if (group.getStatus() == MarkStatus.TRIAL && status == MarkStatus.FORMAL) {
-                allow = true;
-            } else if (group.getStatus() == MarkStatus.FORMAL && status == MarkStatus.FINISH
-                    && group.getLeftCount() == 0) {
-                allow = true;
-            } else if (group.getStatus() == MarkStatus.FINISH && status == MarkStatus.FORMAL) {
-                allow = true;
-            }
-            if (allow) {
-                if (groupService.updateStatus(examId, subjectCode, number, status, group.getStatus())
-                        && status == MarkStatus.FORMAL) {
-                    // 切换到正评成功后刷新任务数量
-                    group.setStatus(status);
-                    markService.updateLibraryCount(group);
-                    markService.updateMarkedCount(group);
-                }
-            } else {
-                redirectAttributes.addAttribute("message", "不能切换到指定的评卷状态");
+            if (groupService.updateStatus(group.getExamId(), group.getSubjectCode(), group.getNumber(), status,
+                    group.getStatus())
+                    && status == MarkStatus.FORMAL) {
+                // 切换到正评成功后刷新任务数量
+                group.setStatus(status);
+                markService.updateLibraryCount(group);
+                markService.updateMarkedCount(group);
             }
         } finally {
             lockService.unlock(LockType.GROUP, group.getExamId(), group.getSubjectCode(), group.getNumber());
         }
-        redirectAttributes.addAttribute("subjectCode", subjectCode);
-        return "redirect:/admin/exam/group";
     }
 
     @RequestMapping("/add")

+ 17 - 0
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/MarkTrackController.java

@@ -23,10 +23,12 @@ import cn.com.qmth.stmms.biz.mark.model.MarkLibrary;
 import cn.com.qmth.stmms.biz.mark.model.MarkSpecialTag;
 import cn.com.qmth.stmms.biz.mark.model.MarkTrack;
 import cn.com.qmth.stmms.biz.mark.model.Task;
+import cn.com.qmth.stmms.biz.mark.model.TrialLibrary;
 import cn.com.qmth.stmms.biz.mark.service.MarkLibraryService;
 import cn.com.qmth.stmms.biz.mark.service.MarkSpecialTagService;
 import cn.com.qmth.stmms.biz.mark.service.MarkTrackService;
 import cn.com.qmth.stmms.biz.mark.service.TaskService;
+import cn.com.qmth.stmms.biz.mark.service.TrialService;
 
 @Controller("trackController")
 @RequestMapping("/admin/exam/track")
@@ -58,6 +60,9 @@ public class MarkTrackController extends BaseExamController {
     @Autowired
     private TaskService taskService;
 
+    @Autowired
+    private TrialService trialService;
+
     @Value("${slice.split.config}")
     private String splitConfig;
 
@@ -157,4 +162,16 @@ public class MarkTrackController extends BaseExamController {
         return groups;
     }
 
+    @ResponseBody
+    @RequestMapping("/trialLibrary")
+    public HashMap<String, Object> trialLibrary(@RequestParam Integer libraryId) {
+        TrialLibrary library = trialService.findById(libraryId);
+        HashMap<String, Object> map = new HashMap<String, Object>();
+        Task task = taskService.build(library);
+        map.put("task", task);
+        map.put("groupNumber", library.getGroupNumber());
+        map.put("fileServer", fileService.getFileServer());
+        map.put("splitConfig", getSplitConfig());
+        return map;
+    }
 }

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

@@ -129,14 +129,14 @@ public class TrialController extends BaseExamController {
         return "modules/exam/trialList";
     }
 
-    @Logging(menu = "打回试评任务", type = LogType.UPDATE)
+    @Logging(menu = "重置试评任务", type = LogType.UPDATE)
     @RequestMapping(value = "/reset", method = RequestMethod.POST)
     @ResponseBody
     @RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER })
     public JSONObject reset(HttpServletRequest request, @RequestParam Integer libraryId) {
         JSONObject obj = new JSONObject();
         int examId = getSessionExamId(request);
-        TrialLibrary library = trialService.findLibrary(libraryId);
+        TrialLibrary library = trialService.findById(libraryId);
         if (library != null) {
             if (library.getExamId().equals(examId)
                     && subjectCheck(library.getSubjectCode(), RequestUtils.getWebUser(request))) {
@@ -176,7 +176,7 @@ public class TrialController extends BaseExamController {
     @RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER })
     public JSONObject detail(HttpServletRequest request, @RequestParam Integer libraryId) {
         JSONObject obj = new JSONObject();
-        TrialLibrary library = trialService.findLibrary(libraryId);
+        TrialLibrary library = trialService.findById(libraryId);
         Exam exam = examService.findById(library.getExamId());
         if (library != null) {
             ExamStudent student = studentService.findById(library.getStudentId());

+ 2 - 2
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/groupList.jsp

@@ -102,10 +102,10 @@
                             &nbsp;
                             <a href="${ctx}/admin/exam/group/release?subjectCode=${result.subjectCode}&number=${result.number}">回收</a>
                         </c:if>
-                        <c:if test="${result.libraryCount>0}">
+                       <%--  <c:if test="${result.libraryCount>0}">
                             &nbsp;
                             <a href="${ctx}/admin/exam/group/reset?subjectCode=${result.subjectCode}&number=${result.number}" data-number="${result.number}" class="reset-button">重置</a>
-                        </c:if>
+                        </c:if> --%>
                         &nbsp;
                         <c:if test="${examType!='MULTI_MEDIA'}">
                             <a href="${ctx}/admin/exam/group/edit-simple?subjectCode=${result.subjectCode}&number=${result.number}" data-number="${result.number}" class="edit-button">修改</a>

+ 4 - 5
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/trialList.jsp

@@ -102,12 +102,11 @@
                 </c:if>
             </td>
             <td>
-                <c:if test="${result.markerTime!=null}">
-                    <c:if test="${group!=null && group.status==TRIAL}">
-                        &nbsp;
-                        <a href="##" class="reset-link" data-id="${result.id}">重置</a>
-                    </c:if>
+               <%--  <c:if test="${result.markerTime!=null}">
+                    <a href="##" class="reset-link" data-id="${result.id}">重置</a>
                 </c:if>
+                        &nbsp; --%>
+                <a href="${ctx}/web/admin/exam/track/trialLibrary?libraryId=${result.id}&subjectCode=${result.subjectCode}" target="_blank">查看</a>
             </td>
         </tr>
     </c:forEach>