xiatian преди 1 година
родител
ревизия
ecc619246b

+ 4 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/dao/ExamQuestionDao.java

@@ -110,4 +110,8 @@ public interface ExamQuestionDao extends JpaRepository<ExamQuestion, Integer>, J
     @Query(value = "select sum(cast(q.total_score as decimal(10,3))) from eb_exam_question q where q.exam_id=?1 and q.subject_code=?2 and q.is_objective=?3 and q.group_number=?4 ", nativeQuery = true)
     public Double sumTotalScoreByGroupNumber(int examId, String subjectCode, boolean objective, Integer groupNumber);
 
+    @Modifying
+    @Query("update ExamQuestion q set q.mainTitle = ?2,q.name=?3 where q.id=?1 ")
+	public void updateMainTitle(Integer id, String mainTitle, String name);
+
 }

+ 2 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/ExamQuestionService.java

@@ -78,4 +78,6 @@ public interface ExamQuestionService {
             Integer number);
 
     double sumTotalScoreByGroupNumber(int examId, String subjectCode, boolean objective, Integer groupNumber);
+
+	void updateMainTitle(Integer id, String mainTitle, String name);
 }

+ 6 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/ExamQuestionServiceImpl.java

@@ -359,4 +359,10 @@ public class ExamQuestionServiceImpl extends BaseQueryService<ExamQuestion> impl
         return score != null ? score.doubleValue() : 0d;
     }
 
+    @Transactional
+	@Override
+	public void updateMainTitle(Integer id, String mainTitle, String name) {
+    	questionDao.updateMainTitle(id, mainTitle, name);
+	}
+
 }

+ 10 - 19
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/PaperController.java

@@ -101,23 +101,6 @@ public class PaperController extends BaseExamController {
     @Autowired
     private MarkService markService;
 
-    @Autowired
-    private ReportSubjectQuestionService reportSubjectQuestionService;
-
-    @Autowired
-    private ReportSubjectClassService reportSubjectClassService;
-
-    @Autowired
-    private ReportSubjectTeacherService reportSubjectTeacherService;
-
-    @Autowired
-    private ReportSubjectCollegeService reportSubjectCollegeService;
-
-    @Autowired
-    private ReportSubjectGroupService reportSubjectGroupService;
-
-    @Autowired
-    private ReportSubjectService reportSubjectService;
 
     @Autowired
     private MarkerService markerService;
@@ -548,13 +531,14 @@ public class PaperController extends BaseExamController {
     @RequestMapping(value = "/question-edit/{questionId}", method = RequestMethod.GET)
     @RoleRequire(Role.SCHOOL_ADMIN)
     public String edit(Model model, @PathVariable Integer questionId, ExamSubjectSearchQuery query,
-            @RequestParam(required = false) Boolean upload) {
+            @RequestParam(required = false) Boolean upload,@RequestParam Boolean enableUpdate) {
         ExamQuestion examQuestion = questionService.findById(questionId);
         model.addAttribute("examQuestion", examQuestion);
         model.addAttribute("objectivePolicyList", ObjectivePolicy.values());
         model.addAttribute("questionTypeList", QuestionType.values());
         model.addAttribute("query", query);
         model.addAttribute("upload", upload);
+        model.addAttribute("enableUpdate", enableUpdate);
         return "modules/exam/questionEdit";
     }
 
@@ -562,13 +546,20 @@ public class PaperController extends BaseExamController {
     @RequestMapping(value = "/question-edit", method = RequestMethod.POST)
     @RoleRequire(Role.SCHOOL_ADMIN)
     public String update(HttpServletRequest request, RedirectAttributes redirectAttributes, @RequestParam Integer id,
-            ExamQuestion question, ExamSubjectSearchQuery query, @RequestParam(required = false) Boolean upload) {
+            ExamQuestion question, ExamSubjectSearchQuery query, @RequestParam(required = false) Boolean upload,
+            @RequestParam Boolean enableUpdate) {
         int examId = getSessionExamId(request);
         ExamQuestion old = questionService.findById(id);
         String u = upload == null ? "" : upload.toString();
         String t = query.getTotalScoreNotEqual() == null ? "" : query.getTotalScoreNotEqual().toString();
         ExamQuestion newQ = questionService.findByExamAndSubjectAndObjectiveAndMainNumberAndSubNumber(examId,
                 question.getSubjectCode(), question.isObjective(), question.getMainNumber(), question.getSubNumber());
+        if(!old.isObjective()&&!enableUpdate) {//只能修改大题名称的主观题
+        	questionService.updateMainTitle(id, question.getMainTitle(), question.getName());
+    		return "redirect:/admin/exam/paper/detail?subjectCode=" + question.getSubjectCode() + "&pageNumber="
+                    + query.getPageNumber() + "&code=" + query.getCode() + "&category=" + query.getCategory()
+                    + "&level=" + query.getLevel() + "&upload=" + u + "&totalScoreNotEqual=" + t;
+    	}
         if (old == null || ((old.getMainNumber() != question.getMainNumber()
                 || !old.getSubNumber().equals(question.getSubNumber())) && newQ != null)) {
             addMessage(redirectAttributes, "编辑失败,编辑题目不存在或编辑后的题号已存在");

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

@@ -94,8 +94,7 @@
                     正在删除
                 </c:if>
                 <c:if test="${question.deleting!=true}">
-					<c:if test="${question.objective}"><a href="${ctx}/admin/exam/paper/question-edit/${question.id}?pageNumber=${query.pageNumber}&code=${query.code }&category=${ query.category}&level=${query.level }&upload=${ upload}&totalScoreNotEqual=${  query.totalScoreNotEqual}">编辑</a></c:if>
-					<c:if test="${!question.objective && question.enableUpdate}"><a href="${ctx}/admin/exam/paper/question-edit/${question.id}?pageNumber=${query.pageNumber}&code=${query.code }&category=${ query.category}&level=${query.level }&upload=${ upload}&totalScoreNotEqual=${  query.totalScoreNotEqual}">编辑</a></c:if>
+					<a href="${ctx}/admin/exam/paper/question-edit/${question.id}?pageNumber=${query.pageNumber}&code=${query.code }&category=${ query.category}&level=${query.level }&upload=${ upload}&totalScoreNotEqual=${  query.totalScoreNotEqual}&enableUpdate=${question.enableUpdate}">编辑</a>
 					<c:if test="${question.groupNumber==null ||question.groupNumber==0}"><a href="${ctx}/admin/exam/paper/question-delete/${question.id}?pageNumber=${query.pageNumber}&code=${query.code }&category=${ query.category}&level=${query.level }&upload=${ upload}&totalScoreNotEqual=${  query.totalScoreNotEqual}" class="delete-button">删除</a></c:if>
                 </c:if>
 				</td>

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

@@ -55,6 +55,7 @@
 	 	<input type="hidden" id="category" name="category" value="${query.category }"/>
 	 	<input type="hidden" id="level" name="level" value="${query.level }"/>
 	 	<input type="hidden" id="upload" name="upload" value="${upload}"/>
+	 	<input type="hidden" id="enableUpdate" name="enableUpdate" value="${enableUpdate}"/>
 	 	<input type="hidden" id="totalScoreNotEqual" name="totalScoreNotEqual" value="${query.totalScoreNotEqual }"/>
 	 	
 	 	<input type="hidden" name="subjectCode" value="${examQuestion.subjectCode}"/>
@@ -74,19 +75,19 @@
 		<div class="control-group">
 			<label class="control-label">大题号</label>
 			<div class="controls">
-			 <input name="mainNumber" value="${examQuestion.mainNumber }" type="number" htmlEscape="false" max="10000" min="1" class="required digits"/>
+			 <input <c:if test="${!examQuestion.objective && !enableUpdate}">disabled</c:if> name="mainNumber" value="${examQuestion.mainNumber }" type="number" htmlEscape="false" max="10000" min="1" class="required digits"/>
 			</div>
 		</div>
 		<div class="control-group">
 			<label class="control-label">小题号</label>
 			<div class="controls">
-			 <input name="subNumber" value="${examQuestion.subNumber }" type="number" htmlEscape="false" max="10000" min="1" class="required digits"/>
+			 <input <c:if test="${!examQuestion.objective && !enableUpdate}">disabled</c:if> name="subNumber" value="${examQuestion.subNumber }" type="number" htmlEscape="false" max="10000" min="1" class="required digits"/>
 			</div>
 		</div>
 		<div class="control-group">
 			<label class="control-label">满分</label>
 			<div class="controls">
-			 <input name="totalScore" value="${examQuestion.totalScore }" type="number" id="total-score-input" htmlEscape="false"  maxlength="10" class="required"/>
+			 <input <c:if test="${!examQuestion.objective && !enableUpdate}">disabled</c:if> name="totalScore" value="${examQuestion.totalScore }" type="number" id="total-score-input" htmlEscape="false"  maxlength="10" class="required"/>
 			</div>
 		</div>
 		<div class="control-group">
@@ -99,7 +100,7 @@
 			<div class="control-group">
 	            <label class="control-label">间隔分</label>
 	            <div class="controls">
-	                <input type="number" name="intervalScore" class="required" id="interval-score-input" htmlEscape="false" maxlength="10" class="required"
+	                <input <c:if test="${!examQuestion.objective && !enableUpdate}">disabled</c:if> type="number" name="intervalScore" class="required" id="interval-score-input" htmlEscape="false" maxlength="10" class="required"
 	                       value="${examQuestion.intervalScore}"/>
 	            </div>
 	        </div>
@@ -107,13 +108,13 @@
         	<div class="control-group">
 				<label class="control-label">试卷类型</label>
 				<div class="controls">
-				 <input name="paperType" value="${examQuestion.paperType }" type="text" class="required"/>
+				 <input <c:if test="${!examQuestion.objective && !enableUpdate}">disabled</c:if> name="paperType" value="${examQuestion.paperType }" type="text" class="required"/>
 				</div>
 			</div>
 	        <div class="control-group">
 				<label class="control-label">题型</label>
 				<div class="controls">
-					<select class="input-small" name="type">
+					<select <c:if test="${!examQuestion.objective && !enableUpdate}">disabled</c:if> class="input-small" name="type">
 	                <c:forEach items="${questionTypeList}" var="item">
 	                	 <option value="${item.value}" <c:if test="${item.value==examQuestion.type.value}">selected</c:if>>${item.name}</option>
 	                </c:forEach>
@@ -123,14 +124,14 @@
 	        <div class="control-group">
 	            <label class="control-label">答案</label>
 	            <div class="controls">
-	                <input type="text" name="answer" htmlEscape="false" maxlength="10" class="required"
+	                <input <c:if test="${!examQuestion.objective && !enableUpdate}">disabled</c:if> type="text" name="answer" htmlEscape="false" maxlength="10" class="required"
 	                       value="${examQuestion.answer}"/>
 	            </div>
 	        </div>
 			<div class="control-group">
 				<label class="control-label">判分策略</label>
 				<div class="controls">
-					<select class="input-small" name="objectivePolicy">
+					<select <c:if test="${!examQuestion.objective && !enableUpdate}">disabled</c:if> class="input-small" name="objectivePolicy">
 	                <c:forEach items="${objectivePolicyList}" var="item">
 	                	 <option value="${item.value}" <c:if test="${item.value==examQuestion.objectivePolicy.value}">selected</c:if>>${item.name}</option>
 	                </c:forEach>