yin 1 bulan lalu
induk
melakukan
c70a274153

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

@@ -7,6 +7,7 @@ import java.util.List;
 
 import javax.servlet.http.HttpServletRequest;
 
+import cn.com.qmth.stmms.common.enums.*;
 import org.apache.commons.lang.StringEscapeUtils;
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
@@ -38,12 +39,6 @@ import cn.com.qmth.stmms.biz.user.model.User;
 import cn.com.qmth.stmms.common.annotation.Logging;
 import cn.com.qmth.stmms.common.annotation.RoleRequire;
 import cn.com.qmth.stmms.common.domain.WebUser;
-import cn.com.qmth.stmms.common.enums.ExamStatus;
-import cn.com.qmth.stmms.common.enums.ExamType;
-import cn.com.qmth.stmms.common.enums.LogType;
-import cn.com.qmth.stmms.common.enums.MarkMode;
-import cn.com.qmth.stmms.common.enums.ObjectiveStatus;
-import cn.com.qmth.stmms.common.enums.Role;
 import cn.com.qmth.stmms.common.utils.RequestUtils;
 import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
@@ -120,6 +115,7 @@ public class ExamController extends BaseExamController {
         model.addAttribute("passScore", exam.getPassScore());
         model.addAttribute("excellentScore", exam.getExcellentScore());
         model.addAttribute("markModeList", MarkMode.values());
+        model.addAttribute("trackCountPolicyList", TrackCountPolicy.values());
         model.addAttribute("query", query);
         return "modules/exam/examEdit";
     }
@@ -133,6 +129,7 @@ public class ExamController extends BaseExamController {
         exam.setSchoolId(user.getSchoolId());
         exam.setCreatorId(user.getId());
         exam.setStatus(ExamStatus.START);
+        exam.setTrackCountPolicy(TrackCountPolicy.LE);
         exam.setObjectiveStatus(ObjectiveStatus.WAITING);
         if (exam.getType().equals(ExamType.MULTI_MEDIA)) {
             exam.setForceSpecialTag(false);
@@ -190,6 +187,7 @@ public class ExamController extends BaseExamController {
             oldExam.setShowObjectiveScore(exam.getShowObjectiveScore());
             oldExam.setRemarkCount(exam.getRemarkCount());
             oldExam.setInspectRoundLimit(exam.getInspectRoundLimit());
+            oldExam.setTrackCountPolicy(exam.getTrackCountPolicy());
             examService.save(oldExam);
         }
         return "redirect:/admin/exam/list?pageNumber=" + query.getPageNumber() + "&type=" + queryType + "&status="

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

@@ -109,7 +109,8 @@ public class SelectiveGroupController extends BaseExamController {
     @RequestMapping("/add")
     public String add(Model model, HttpServletRequest request, RedirectAttributes redirectAttributes,
             @RequestParam String subjectCode, @RequestParam Integer selectiveCount, @RequestParam Integer scorePolicy,
-            @RequestParam Integer selectivePart, @RequestParam(required = false) String parts) {
+            @RequestParam Integer selectivePart, @RequestParam(required = true,defaultValue = "false") Boolean enableAllSelective,
+                      @RequestParam(required = false) String parts) {
         int examId = getSessionExamId(request);
         List<MarkGroup> groups = groupService.findByExamAndSubject(examId, subjectCode);
         if (groups != null && groups.size() > 0) {
@@ -141,6 +142,7 @@ public class SelectiveGroupController extends BaseExamController {
         }
         model.addAttribute("selectiveCount", selectiveCount);
         model.addAttribute("selectivePart", selectivePart);
+        model.addAttribute("enableAllSelective", enableAllSelective);
         model.addAttribute("selectivePartNo", partList.size() + 1);
         model.addAttribute("scorePolicy", scorePolicy);
         model.addAttribute("questions", questions);
@@ -175,7 +177,8 @@ public class SelectiveGroupController extends BaseExamController {
     @Transactional
     public String save(HttpServletRequest request, RedirectAttributes redirectAttributes,
             @RequestParam String subjectCode, @RequestParam Integer selectiveCount, @RequestParam Integer scorePolicy,
-            @RequestParam Integer selectivePart, @RequestParam String parts) {
+            @RequestParam Integer selectivePart,  @RequestParam(required = true,defaultValue = "false") Boolean enableAllSelective,
+                       @RequestParam String parts) {
         int examId = getSessionExamId(request);
         if (selectiveCount >= selectivePart) {
             addMessage(redirectAttributes, "选做题数量不能大于已选择题目数量");
@@ -203,6 +206,10 @@ public class SelectiveGroupController extends BaseExamController {
         subjectService.updateSelective(examId, subjectCode, true);
         subjectService.updateScore(examId, subjectCode, false,
                 questionService.sumTotalScore(examId, subjectCode, false));
+        ExamSubject subject = subjectService.find(examId,subjectCode);
+        if(subject.isEnableAllSelective()!=enableAllSelective){
+            subjectService.updateEnableAllSelective(examId,subjectCode,enableAllSelective);
+        }
         return "redirect:/admin/exam/selectiveGroup?subjectCode=" + subjectCode;
     }
 

+ 1 - 8
stmms-web/src/main/java/cn/com/qmth/stmms/api/controller/CoreController.java

@@ -11,6 +11,7 @@ import java.util.stream.Collectors;
 
 import javax.servlet.http.HttpServletRequest;
 
+import cn.com.qmth.stmms.common.enums.*;
 import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
 
@@ -64,14 +65,6 @@ import cn.com.qmth.stmms.biz.user.service.UserService;
 import cn.com.qmth.stmms.biz.utils.ScoreItem;
 import cn.com.qmth.stmms.common.annotation.RoleRequire;
 import cn.com.qmth.stmms.common.domain.ApiUser;
-import cn.com.qmth.stmms.common.enums.ExamStatus;
-import cn.com.qmth.stmms.common.enums.ExamType;
-import cn.com.qmth.stmms.common.enums.LockType;
-import cn.com.qmth.stmms.common.enums.ObjectiveStatus;
-import cn.com.qmth.stmms.common.enums.QuestionType;
-import cn.com.qmth.stmms.common.enums.Role;
-import cn.com.qmth.stmms.common.enums.SubjectiveStatus;
-import cn.com.qmth.stmms.common.enums.UserSource;
 import cn.com.qmth.stmms.common.utils.DateUtils;
 import cn.com.qmth.stmms.common.utils.EncryptUtils;
 import cn.com.qmth.stmms.common.utils.RequestUtils;

+ 11 - 0
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/examEdit.jsp

@@ -276,6 +276,17 @@
 					</div>
 				</div>
 			</c:if>
+			<div class="control-group">
+				<label class="control-label">给分次数限制</label>
+				<div class="controls">
+					<select class="input-small" name="trackCountPolicy">
+						<c:forEach items="${trackCountPolicyList}" var="item">
+							<option value="${item.value}"
+									<c:if test="${item.value==exam.trackCountPolicy.value}">selected</c:if>>${item.name}</option>
+						</c:forEach>
+					</select>
+				</div>
+			</div>
 		</c:if>
 		<div class="control-group">
 			<label class="control-label">描述</label>

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

@@ -262,13 +262,15 @@
                     </div>
                 </div>
             </c:if>
-            <div class="control-group">
-                <label class="control-label">启用全零分</label>
-                <div class="controls">
-                    <input name="enableAllZero" type="checkbox" value="1"
-                           <c:if test="${group.enableAllZero}">checked</c:if>/>
+            <c:if test="${exam.markMode!='TRACK'}">
+                <div class="control-group">
+                    <label class="control-label">启用全零分</label>
+                    <div class="controls">
+                        <input name="enableAllZero" type="checkbox" value="1"
+                               <c:if test="${group.enableAllZero}">checked</c:if>/>
+                    </div>
                 </div>
-            </div>
+            </c:if>
         </c:if>
         <div class="form-actions">
             <a id="btnPre" class="btn">上一步</a>&nbsp;

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

@@ -409,13 +409,15 @@
                 </div>
             </c:if>
         </c:if>
-        <div class="control-group">
-            <label class="control-label">启用全零分</label>
-            <div class="controls">
-                <input name="enableAllZero" type="checkbox" value="1"
-                       <c:if test="${group.enableAllZero}">checked</c:if>/>
+        <c:if test="${exam.markMode!='TRACK' && group.markMode!='TRACK'}">
+            <div class="control-group">
+                <label class="control-label">启用全零分</label>
+                <div class="controls">
+                    <input name="enableAllZero" type="checkbox" value="1"
+                           <c:if test="${group.enableAllZero}">checked</c:if>/>
+                </div>
             </div>
-        </div>
+        </c:if>
         <div class="control-group">
             <label class="control-label">重要提示</label>
             <div class="controls">

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

@@ -168,7 +168,7 @@
             </div>
         </c:if>
     </c:if>
-    <c:if test="${exam.markMode!='TRACK'}">
+    <c:if test="${exam.markMode!='TRACK' && group.markMode!='TRACK'}">
         <div class="control-group">
             <label class="control-label">启用全零分</label>
             <div class="controls">

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

@@ -14,6 +14,7 @@
 		<input name="selectiveCount" value="${selectiveCount}" type="hidden"/>
 		<input name="selectivePart" value="${selectivePart}" type="hidden"/>
 		<input name="scorePolicy" value="${scorePolicy}" type="hidden"/>
+		<input name="enableAllSelective" value="${enableAllSelective}" type="hidden"/>
 		<input name="parts" value="${parts}" type="hidden" id="parts"/>
 		<div>
 			<label>科目:${subject.code}-${subject.name}</label>

+ 15 - 11
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/selectiveList.jsp

@@ -130,18 +130,21 @@
 	<div class="addWindow" style="display:none">
 	    <div class="task-header">
 	        <p class="title">设置选做题规则</p>
-	        <p class="image-close"><img src="${ctxStatic}/mark-new/images/images-close.png"/></p></div>
-	    <div class="task-content">选做题规则:<input type="number" id="selectivePart" name="selectivePart" class="task-count" oninput="if(value<0)value=0"/>选<input type="number" id="selectiveCount" name="selectiveCount" class="task-count" oninput="if(value<0)value=0"/><br/><br/>
-	    <div style="z-index:99999">
-	    取分规则:<select name="scorePolicy" style="z-index:99999;">
-	    			 <c:forEach items="${scorePolicyList}" var="item">
-                        <option value="${item.value }">${item.name }</option>
-                     </c:forEach>
-	    		</select><br/><br/>
-	    </div>
+	        <p class="image-close"><img src="${ctxStatic}/mark-new/images/images-close.png"/></p>
+		</div>
+	    <div class="task-content">
+			选做题规则:<input type="number" id="selectivePart" name="selectivePart" class="task-count" oninput="if(value<0)value=0"/>选<input type="number" id="selectiveCount" name="selectiveCount" class="task-count" oninput="if(value<0)value=0"/><br/>
+			启用一键未选做:<input name="enableAllSelective" type="checkbox" <c:if test="${subject.enableAllSelective}">checked</c:if>/><br/>
+			<div style="z-index:99999">
+			取分规则:<select name="scorePolicy" style="z-index:99999;">
+						 <c:forEach items="${scorePolicyList}" var="item">
+							<option value="${item.value }">${item.name }</option>
+						 </c:forEach>
+					</select><br/><br/>
+			</div>
 	    *如选做为5选3,则系统会校验后续选做题总量为5,合分数量为3。
 	    <i class="wrong"> </i>
-	    </div>
+		</div>
 	    <a href="#" class="btn btn-small btn-info task-btn">下一步</a>
 	</div>
 	<div class="editWindow" style="display:none">
@@ -182,7 +185,8 @@
 	<input name="selectiveIndex"  type="hidden" id="selectiveIndex"/>
 	    <div class="task-header">
 	        <p class="title">设置选做题规则</p>
-	        <p class="image-close"><img src="${ctxStatic}/mark-new/images/images-close.png"/></p></div>
+	        <p class="image-close"><img src="${ctxStatic}/mark-new/images/images-close.png"/></p>
+		</div>
 	    <div class="task-content">
 			选做题规则:<span id ="scorePolicySpan"></span><br/>
 			启用一键未选做:<input name="enableAllSelective" type="checkbox" <c:if test="${subject.enableAllSelective}">checked</c:if>/><br/>