Browse Source

修正一些大题名称显示问题;增加重置修改中大题号的验证

ting.yin 6 years ago
parent
commit
537d226ffb

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

@@ -102,10 +102,10 @@ public class ArbitrateController extends BaseExamController {
         List<MarkGroup> groupList = groupService.findByExamAndSubjectWithDouble(examId, query.getSubjectCode());
         List<MarkGroup> groupList = groupService.findByExamAndSubjectWithDouble(examId, query.getSubjectCode());
         if (query.getGroupNumber() == null && groupList.size() > 0) {
         if (query.getGroupNumber() == null && groupList.size() > 0) {
             query.setGroupNumber(groupList.get(0).getNumber());
             query.setGroupNumber(groupList.get(0).getNumber());
-            for (MarkGroup group : groupList) {
-                group.setQuestionList(questionService.findByExamAndSubjectAndObjectiveAndGroupNumber(examId,
-                        group.getSubjectCode(), false, group.getNumber()));
-            }
+        }
+        for (MarkGroup group : groupList) {
+            group.setQuestionList(questionService.findByExamAndSubjectAndObjectiveAndGroupNumber(examId,
+                    group.getSubjectCode(), false, group.getNumber()));
         }
         }
         query.orderByIdDesc();
         query.orderByIdDesc();
         query = arbitrateService.findByQuery(query);
         query = arbitrateService.findByQuery(query);

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

@@ -2,8 +2,10 @@ package cn.com.qmth.stmms.admin.exam;
 
 
 import java.text.DecimalFormat;
 import java.text.DecimalFormat;
 import java.util.ArrayList;
 import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.LinkedList;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.List;
+import java.util.Set;
 
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
 
 
@@ -355,31 +357,28 @@ public class MarkGroupController extends BaseExamController {
         int examId = getSessionExamId(request);
         int examId = getSessionExamId(request);
         MarkGroup group = groupService.findOne(examId, subjectCode, number);
         MarkGroup group = groupService.findOne(examId, subjectCode, number);
         if (group != null) {
         if (group != null) {
-            // quick update
-            picList = StringEscapeUtils.unescapeHtml(picList);
-            JSONArray array = JSONArray.fromObject(picList);
-            List<PictureConfigItem> list = JSONArray.toList(array, new PictureConfigItem(), new JsonConfig());
-            if (list != null && !list.isEmpty()) {
-                groupService.updatePicList(examId, subjectCode, number, list);
-            }
-            if (doubleRate != null) {
-                groupService.updateDoubleRate(examId, subjectCode, number, doubleRate);
-            }
-            if (arbitrateThreshold != null) {
-                groupService.updateArbitrateThreshold(examId, subjectCode, number, arbitrateThreshold);
-            }
-            groupService.updateMarkMode(examId, subjectCode, number, markMode);
-            if (trialCount != null && trialCount > 0 && group.getStatus() == MarkStatus.TRIAL) {
-                groupService.updateTrialCount(examId, subjectCode, number, trialCount);
-            }
-            groupService.updateSheetView(examId, subjectCode, number, sheetView);
             if (questionDetail != null && reset.booleanValue()) {
             if (questionDetail != null && reset.booleanValue()) {
                 // advance update
                 // advance update
                 questionDetail = StringEscapeUtils.unescapeHtml(questionDetail);
                 questionDetail = StringEscapeUtils.unescapeHtml(questionDetail);
-                array = JSONArray.fromObject(questionDetail);
+                JSONArray array = JSONArray.fromObject(questionDetail);
                 List<ExamQuestionDTO> detailList = JSONArray.toList(array, new ExamQuestionDTO(), new JsonConfig());
                 List<ExamQuestionDTO> detailList = JSONArray.toList(array, new ExamQuestionDTO(), new JsonConfig());
+                List<ExamQuestion> all = questionService.findByExamAndSubjectAndObjective(examId, subjectCode,false);
+                List<ExamQuestion> old = questionService.findByExamAndSubjectAndObjectiveAndGroupNumber(examId, subjectCode,false,number);
+                Set<Integer> mainNumbers = new HashSet<Integer>();
+                for (ExamQuestion examQuestion : all) {
+                    mainNumbers.add(examQuestion.getMainNumber());
+                }
+                for (ExamQuestion examQuestion : old) {
+                    mainNumbers.remove(examQuestion.getMainNumber());
+                }
                 for (int i = 0; i < detailList.size(); i++) {
                 for (int i = 0; i < detailList.size(); i++) {
                     ExamQuestionDTO dto = detailList.get(i);
                     ExamQuestionDTO dto = detailList.get(i);
+                    if (mainNumbers.contains(dto.getMainNumber())) {
+                        addMessage(redirectAttributes, "大题号不能重复");
+                        redirectAttributes.addAttribute("subjectCode", subjectCode);
+                        redirectAttributes.addAttribute("number", number);
+                        return "redirect:/admin/exam/group/edit-full";
+                    }
                     Object scoreListArray[] = array.getJSONObject(i).getJSONArray("scoreList").toArray();
                     Object scoreListArray[] = array.getJSONObject(i).getJSONArray("scoreList").toArray();
                     List<Double> scoreList = new ArrayList<Double>();
                     List<Double> scoreList = new ArrayList<Double>();
                     for (int j = 0; j < scoreListArray.length; j++) {
                     for (int j = 0; j < scoreListArray.length; j++) {
@@ -412,6 +411,24 @@ public class MarkGroupController extends BaseExamController {
                     }
                     }
                 }
                 }
             }
             }
+            // quick update
+            picList = StringEscapeUtils.unescapeHtml(picList);
+            JSONArray array = JSONArray.fromObject(picList);
+            List<PictureConfigItem> list = JSONArray.toList(array, new PictureConfigItem(), new JsonConfig());
+            if (list != null && !list.isEmpty()) {
+                groupService.updatePicList(examId, subjectCode, number, list);
+            }
+            if (doubleRate != null) {
+                groupService.updateDoubleRate(examId, subjectCode, number, doubleRate);
+            }
+            if (arbitrateThreshold != null) {
+                groupService.updateArbitrateThreshold(examId, subjectCode, number, arbitrateThreshold);
+            }
+            groupService.updateMarkMode(examId, subjectCode, number, markMode);
+            if (trialCount != null && trialCount > 0 && group.getStatus() == MarkStatus.TRIAL) {
+                groupService.updateTrialCount(examId, subjectCode, number, trialCount);
+            }
+            groupService.updateSheetView(examId, subjectCode, number, sheetView);
             redirectAttributes.addAttribute("subjectCode", subjectCode);
             redirectAttributes.addAttribute("subjectCode", subjectCode);
             redirectAttributes.addAttribute("number", number);
             redirectAttributes.addAttribute("number", number);
             return "redirect:/admin/exam/group";
             return "redirect:/admin/exam/group";

+ 6 - 0
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/MarkQualityController.java

@@ -23,6 +23,7 @@ import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
 import cn.com.qmth.stmms.biz.exam.model.MarkGroup;
 import cn.com.qmth.stmms.biz.exam.model.MarkGroup;
 import cn.com.qmth.stmms.biz.exam.model.Marker;
 import cn.com.qmth.stmms.biz.exam.model.Marker;
 import cn.com.qmth.stmms.biz.exam.query.MarkerSearchQuery;
 import cn.com.qmth.stmms.biz.exam.query.MarkerSearchQuery;
+import cn.com.qmth.stmms.biz.exam.service.ExamQuestionService;
 import cn.com.qmth.stmms.biz.exam.service.ExamSubjectService;
 import cn.com.qmth.stmms.biz.exam.service.ExamSubjectService;
 import cn.com.qmth.stmms.biz.exam.service.MarkGroupService;
 import cn.com.qmth.stmms.biz.exam.service.MarkGroupService;
 import cn.com.qmth.stmms.biz.exam.service.MarkerService;
 import cn.com.qmth.stmms.biz.exam.service.MarkerService;
@@ -59,6 +60,9 @@ public class MarkQualityController extends BaseExamController {
     @Autowired
     @Autowired
     private MarkLibraryService libraryService;
     private MarkLibraryService libraryService;
 
 
+    @Autowired
+    private ExamQuestionService questionService;
+    
     @RequestMapping
     @RequestMapping
     public String list(Model model, HttpServletRequest request, MarkerSearchQuery query) {
     public String list(Model model, HttpServletRequest request, MarkerSearchQuery query) {
         int examId = getSessionExamId(request);
         int examId = getSessionExamId(request);
@@ -133,6 +137,8 @@ public class MarkQualityController extends BaseExamController {
                 vo.setScoreCount(scoreCount);
                 vo.setScoreCount(scoreCount);
                 list.add(vo);
                 list.add(vo);
             }
             }
+            group.setQuestionList(questionService.findByExamAndSubjectAndObjectiveAndGroupNumber(examId, subjectCode,
+                    false, group.getNumber()));
             model.addAttribute("scores", scores);
             model.addAttribute("scores", scores);
             model.addAttribute("markers", list);
             model.addAttribute("markers", list);
             model.addAttribute("group", group);
             model.addAttribute("group", group);

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

@@ -21,6 +21,7 @@ import cn.com.qmth.stmms.biz.campus.model.Campus;
 import cn.com.qmth.stmms.biz.campus.service.CampusService;
 import cn.com.qmth.stmms.biz.campus.service.CampusService;
 import cn.com.qmth.stmms.biz.exam.model.ExamStudent;
 import cn.com.qmth.stmms.biz.exam.model.ExamStudent;
 import cn.com.qmth.stmms.biz.exam.model.MarkGroup;
 import cn.com.qmth.stmms.biz.exam.model.MarkGroup;
+import cn.com.qmth.stmms.biz.exam.service.ExamQuestionService;
 import cn.com.qmth.stmms.biz.exam.service.ExamStudentService;
 import cn.com.qmth.stmms.biz.exam.service.ExamStudentService;
 import cn.com.qmth.stmms.biz.exam.service.MarkGroupService;
 import cn.com.qmth.stmms.biz.exam.service.MarkGroupService;
 import cn.com.qmth.stmms.biz.mark.model.MarkLibrary;
 import cn.com.qmth.stmms.biz.mark.model.MarkLibrary;
@@ -60,6 +61,9 @@ public class MarkTrackController extends BaseExamController {
 
 
     @Autowired
     @Autowired
     private MarkSpecialTagService markSpecialTagService;
     private MarkSpecialTagService markSpecialTagService;
+    
+    @Autowired
+    private ExamQuestionService questionService;
 
 
     @RequestMapping("/student/{studentId}")
     @RequestMapping("/student/{studentId}")
     public ModelAndView view(@PathVariable Integer studentId) {
     public ModelAndView view(@PathVariable Integer studentId) {
@@ -132,6 +136,8 @@ public class MarkTrackController extends BaseExamController {
         HashMap<String, Object> groups = new HashMap<String, Object>();
         HashMap<String, Object> groups = new HashMap<String, Object>();
         MarkGroup group = groupService.findOne(examStudent.getExamId(), examStudent.getSubjectCode(),
         MarkGroup group = groupService.findOne(examStudent.getExamId(), examStudent.getSubjectCode(),
                 library.getGroupNumber());
                 library.getGroupNumber());
+        group.setQuestionList(questionService.findByExamAndSubjectAndObjectiveAndGroupNumber(examStudent.getExamId(), examStudent.getSubjectCode(),
+                    false, group.getNumber()));
         List<String> picUrls = PictureUrlBuilder.getSliceUrls(examStudent.getExamId(), campus.getId(),
         List<String> picUrls = PictureUrlBuilder.getSliceUrls(examStudent.getExamId(), campus.getId(),
                 examStudent.getSubjectCode(), examStudent.getExamNumber(), examStudent.getSliceCount());
                 examStudent.getSubjectCode(), examStudent.getExamNumber(), examStudent.getSliceCount());
         List<MarkTrack> markTracks = markTrackService.findByLibraryId(library.getId());
         List<MarkTrack> markTracks = markTrackService.findByLibraryId(library.getId());

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

@@ -282,6 +282,8 @@ public class MarkerController extends BaseExamController {
                 }
                 }
                 MarkGroup group = groupService.findOne(examId, marker.getSubjectCode(), marker.getGroupNumber());
                 MarkGroup group = groupService.findOne(examId, marker.getSubjectCode(), marker.getGroupNumber());
                 if (group != null) {
                 if (group != null) {
+                    group.setQuestionList(questionService.findByExamAndSubjectAndObjectiveAndGroupNumber(examId, group.getSubjectCode(),
+                    false, group.getNumber()));
                     marker.setGroupName(group.getNumber() + "-" + group.getTitle());
                     marker.setGroupName(group.getNumber() + "-" + group.getTitle());
                 } else {
                 } else {
                     marker.setGroupName("");
                     marker.setGroupName("");

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

@@ -55,7 +55,7 @@
 		<thead>
 		<thead>
 			<tr>
 			<tr>
 				<th>科目代码</th>
 				<th>科目代码</th>
-				<th>大题号</th>
+				<th>分组序号</th>
 				<th>准考证号</th>
 				<th>准考证号</th>
 				<th>状态</th>
 				<th>状态</th>
 				<th>创建时间</th>
 				<th>创建时间</th>

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

@@ -27,7 +27,7 @@
 			});
 			});
 			var openDouble = "${group.doubleRate}";
 			var openDouble = "${group.doubleRate}";
 			if(openDouble!=null&&openDouble>0){
 			if(openDouble!=null&&openDouble>0){
-				$("#openDouble").attr("checked","checked");
+				$("#openDouble").prop("checked",true);
 				$("#openDouble").attr("disabled","disabled");
 				$("#openDouble").attr("disabled","disabled");
 				$(".doubleDiv").show();
 				$(".doubleDiv").show();
 			}else{
 			}else{
@@ -59,6 +59,7 @@
 		<tags:message content="${message}"/>
 		<tags:message content="${message}"/>
 		<form:hidden path="subjectCode"/>
 		<form:hidden path="subjectCode"/>
 		<input type="hidden" id="rest" name="reset" value="true"/>
 		<input type="hidden" id="rest" name="reset" value="true"/>
+		<input type="hidden" id="number" name="number" value="${group.number }"/>
 		<input type="hidden" id="questionDetail" name="questionDetail" />
 		<input type="hidden" id="questionDetail" name="questionDetail" />
         <div class="control-group">
         <div class="control-group">
             <label class="control-label">分组序号</label>
             <label class="control-label">分组序号</label>
@@ -177,7 +178,6 @@ $('#btnSubmit').click(function(){
 	var questionDetail = [];
 	var questionDetail = [];
 	var fill = true;
 	var fill = true;
 	$("#questionDiv div div").each(function(){
 	$("#questionDiv div div").each(function(){
-		debugger;
 		var question = []
 		var question = []
 		$(this).children("input").each(function(){
 		$(this).children("input").each(function(){
 			var q = $(this).val();
 			var q = $(this).val();

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

@@ -28,7 +28,7 @@
 			
 			
 			var openDouble = "${group.doubleRate}";
 			var openDouble = "${group.doubleRate}";
 			if(openDouble!=null&&openDouble>0){
 			if(openDouble!=null&&openDouble>0){
-				$("#openDouble").attr("checked","checked");
+				$("#openDouble").prop("checked",true);
 				$("#openDouble").attr("disabled","disabled");
 				$("#openDouble").attr("disabled","disabled");
 				$(".doubleDiv").show();
 				$(".doubleDiv").show();
 			}else{
 			}else{

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

@@ -61,7 +61,7 @@
 		<thead>
 		<thead>
 			<tr>
 			<tr>
 				<th>科目代码</th>
 				<th>科目代码</th>
-				<th>大题号</th>
+				<th>分组序号</th>
 				<th>准考证号</th>
 				<th>准考证号</th>
 				<th>考生编号</th>
 				<th>考生编号</th>
 				<th>状态</th>
 				<th>状态</th>

+ 3 - 3
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/markerClass.jsp

@@ -21,8 +21,8 @@
 		<div class="control-group">
 		<div class="control-group">
 			<label class="control-label">班级</label>
 			<label class="control-label">班级</label>
 			<div class="controls">
 			<div class="controls">
-			<c:forEach items="${classes}" var="class">
-				<input name="classes" type="checkbox" value="${class }" checked/>${class }<br/>
+			<c:forEach items="${classes}" var="result">
+				<input name="classes" type="checkbox" value="${result }" checked/>${result }<br/>
 			</c:forEach>
 			</c:forEach>
 			<c:forEach items="${classList}" var="result">
 			<c:forEach items="${classList}" var="result">
 				<input name="classes" type="checkbox" value="${result }"/>${result }<br/>
 				<input name="classes" type="checkbox" value="${result }"/>${result }<br/>
@@ -32,7 +32,7 @@
 		<div class="form-actions">
 		<div class="form-actions">
 			<input id="btnSubmit" class="btn btn-primary" type="submit" value="保 存"/>
 			<input id="btnSubmit" class="btn btn-primary" type="submit" value="保 存"/>
 			&nbsp;
 			&nbsp;
-			<a href="${ctx}/admin/exam/marker" class="btn"/>返回</a>
+			<a href="${ctx}/admin/exam/marker?subjectCode=${marker.subjectCode}" class="btn"/>返回</a>
 		</div>
 		</div>
 	</form:form>
 	</form:form>
 </body>
 </body>

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

@@ -45,7 +45,7 @@
 		<thead>
 		<thead>
 			<tr>
 			<tr>
 				<th>科目代码</th>
 				<th>科目代码</th>
-				<th>大题号</th>
+				<th>分组序号</th>
 				<th>准考证号</th>
 				<th>准考证号</th>
 				<th>考生编号</th>
 				<th>考生编号</th>
 				<th>评卷员</th>
 				<th>评卷员</th>