Kaynağa Gözat

科目新增选做题属性

ting.yin 1 yıl önce
ebeveyn
işleme
f6a04c8a04

+ 19 - 6
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/model/ExamSubject.java

@@ -124,6 +124,12 @@ public class ExamSubject implements Serializable {
     @Column(name = "inspect_round", nullable = false)
     private Integer inspectRound;
 
+    /**
+     * 是否含选做题
+     */
+    @Column(name = "selective")
+    private boolean selective;
+
     /**
      * 大题数量
      */
@@ -414,13 +420,20 @@ public class ExamSubject implements Serializable {
         this.displayQuestionName = displayQuestionName;
     }
 
-	public Integer getInspectRound() {
-		return inspectRound;
-	}
+    public Integer getInspectRound() {
+        return inspectRound;
+    }
+
+    public void setInspectRound(Integer inspectRound) {
+        this.inspectRound = inspectRound;
+    }
 
-	public void setInspectRound(Integer inspectRound) {
-		this.inspectRound = inspectRound;
-	}
+    public boolean isSelective() {
+        return selective;
+    }
 
+    public void setSelective(boolean selective) {
+        this.selective = selective;
+    }
 
 }

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

@@ -168,6 +168,7 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
                 subject.setRemark(es.getRemark());
                 subject.setDisplayQuestionName(false);
                 subject.setInspectRound(1);
+                subject.setSelective(false);
             } else {
                 subject.setLevel(es.getLevel());
                 subject.setCategory(es.getCategory());
@@ -224,6 +225,7 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
             subject.setRemark(StringUtils.trimToNull(student.getSubjectRemark()));
             subject.setDisplayQuestionName(false);
             subject.setInspectRound(1);
+            subject.setSelective(false);
             subjectService.save(subject);
         } else {
             student.setSubjectName(subject.getName());

+ 18 - 12
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/ExamSubjectServiceImpl.java

@@ -32,10 +32,13 @@ public class ExamSubjectServiceImpl extends BaseQueryService<ExamSubject> implem
 
     @Autowired
     private ExamSubjectDao subjectDao;
+
     @Autowired
     private ExamStudentDao examStudentDao;
+
     @PersistenceContext
     private EntityManager entityManager;
+
     @Transactional
     @Override
     // @CachePut(value = "exam_subject_cache", key =
@@ -163,6 +166,9 @@ public class ExamSubjectServiceImpl extends BaseQueryService<ExamSubject> implem
                 if (query.getUploadCountEqual() != null) {
                     predicates.add(cb.equal(root.get("uploadCount").as(Integer.class), query.getUploadCountEqual()));
                 }
+                if (query.getSelective() != null) {
+                    predicates.add(cb.equal(root.get("selective"), query.getSelective()));
+                }
                 if (StringUtils.isNotBlank(query.getCodeIn())) {
                     String[] list = query.getCodeIn().split(",");
                     if (list.length > 0) {
@@ -213,21 +219,21 @@ public class ExamSubjectServiceImpl extends BaseQueryService<ExamSubject> implem
         subjectDao.updateTrialCount(examId, subjectCode, trialCount);
     }
 
-	@Override
-	public int findMaxInspectRound(int examId, Set<String> subjectCodes) {
-		StringBuilder sql = new StringBuilder("select max(s.inspect_round) from eb_exam_subject s ");
-		sql.append(" where s.exam_id="+examId+" and s.code in ('"+StringUtils.join(subjectCodes,"','")+"')");
+    @Override
+    public int findMaxInspectRound(int examId, Set<String> subjectCodes) {
+        StringBuilder sql = new StringBuilder("select max(s.inspect_round) from eb_exam_subject s ");
+        sql.append(" where s.exam_id=" + examId + " and s.code in ('" + StringUtils.join(subjectCodes, "','") + "')");
         Query countQuery = entityManager.createNativeQuery(sql.toString());
         Object singleResult = countQuery.getResultList().get(0);
         Integer count = singleResult == null ? 0 : Integer.valueOf(singleResult.toString());
         return count;
-	}
-
-	@Transactional
-	@Override
-	public void nextInspectRound(int examId, String subjectCode) {
-		subjectDao.nextInspectRound(examId,subjectCode);
-		examStudentDao.cancelInspect(examId,subjectCode);
-	}
+    }
+
+    @Transactional
+    @Override
+    public void nextInspectRound(int examId, String subjectCode) {
+        subjectDao.nextInspectRound(examId, subjectCode);
+        examStudentDao.cancelInspect(examId, subjectCode);
+    }
 
 }

+ 10 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/query/ExamSubjectSearchQuery.java

@@ -27,6 +27,8 @@ public class ExamSubjectSearchQuery extends BaseQuery<ExamSubject> {
 
     private Boolean finished;
 
+    private Boolean selective;
+
     public int getExamId() {
         return examId;
     }
@@ -119,4 +121,12 @@ public class ExamSubjectSearchQuery extends BaseQuery<ExamSubject> {
         this.codeNotIn = codeNotIn;
     }
 
+    public Boolean getSelective() {
+        return selective;
+    }
+
+    public void setSelective(Boolean selective) {
+        this.selective = selective;
+    }
+
 }

+ 5 - 5
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/LibraryController.java

@@ -121,11 +121,11 @@ public class LibraryController extends BaseExamController {
             query = libraryService.findByQuery(query);
             for (MarkLibrary library : query.getResult()) {
                 if (library.getMarkerId() != null) {
-                    Marker marker = markerService.findById(library.getMarkerId());
-                    library.setMarkerLoginName(userService.findById(marker.getUserId()).getLoginName());
-                    if(library.getHeaderId()!=null) {
-                    	User header=userService.findById(library.getHeaderId());
-                    	library.setHeaderLoginName(header.getLoginName()+"/"+header.getName());
+                    User marker = userService.findByMarkerId(library.getMarkerId());
+                    library.setMarkerLoginName(marker.getLoginName() + "/" + marker.getName());
+                    if (library.getHeaderId() != null) {
+                        User header = userService.findById(library.getHeaderId());
+                        library.setHeaderLoginName(header.getLoginName() + "/" + header.getName());
                     }
                 }
             }

+ 1 - 0
stmms-web/src/main/java/cn/com/qmth/stmms/admin/thread/DataSyncThread.java

@@ -240,6 +240,7 @@ public class DataSyncThread implements Runnable {
         subject.setUploadCount(0);
         subject.setDisplayQuestionName(false);
         subject.setInspectRound(1);
+        subject.setSelective(false);
         subjectService.save(subject);
     }
 

+ 1 - 0
stmms-web/src/main/java/cn/com/qmth/stmms/admin/thread/OnlineExamThread.java

@@ -238,6 +238,7 @@ public class OnlineExamThread implements Runnable {
         subject.setUploadCount(0);
         subject.setDisplayQuestionName(false);
         subject.setInspectRound(1);
+        subject.setSelective(false);
         subjectService.save(subject);
         subjectMap.put(subjectCode, subject);
         // 保存question

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

@@ -539,6 +539,7 @@ public class CoreController extends BaseApiController {
             subject.setEnableSplit(exam.isEnableSplit());
             subject.setDisplayQuestionName(false);
             subject.setInspectRound(1);
+            subject.setSelective(false);
         }
         subject.setName(name);
         subject.setRemark(remark);

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

@@ -191,18 +191,21 @@
                 </c:if>
             </td>
             <td>${marker.enable eq true ? "启用" : "禁用"}</td>
-            <td>${marker.markedCount}</td>
+            <td>${marker.markedCount}
+            	<c:if test="${marker.reseting==true}">
+                    正在重置
+                </c:if>
+                <c:if test="${web_user.schoolAdmin==true && marker.reseting==false}">
+                 &nbsp;<a href="javascript:void(0)" class="reset-button" data-id="${marker.id}">重置</a>
+                </c:if>
+            </td>
             <td>${marker.currentCount}</td>
             <td>${marker.topCount}</td>
             <td><c:if test="${marker.classCount != 0}"><a href="${ctx}/admin/exam/marker/class/${marker.id}">${marker.classCount}</a></c:if>
             	<c:if test="${marker.classCount == 0}">0</c:if>
             </td>
             <td>
-                <c:if test="${marker.reseting==true}">
-                    正在重置
-                </c:if>
                 <c:if test="${web_user.schoolAdmin==true && marker.reseting==false}">
-                    <a href="javascript:void(0)" class="reset-button" data-id="${marker.id}">重置</a>
                     <c:if test="${marker.enable==true}">
                         <a href="javascript:void(0)" class="toggle-button" data-id="${marker.id}" data-value="false">禁用</a>
                     </c:if>

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

@@ -65,6 +65,12 @@
                 <option value="${level}" data-level="${level}" <c:if test="${level==query.level}">selected</c:if>>${level}</option>
             </c:forEach>
         </select>
+        <label>选做科目</label>
+        <select class="input-small" name="selective" id="selective-select">
+            <option value="">不限</option>
+            <option value="true" <c:if test="${query.selective}">selected</c:if>>是</option>
+            <option value="false" <c:if test="${!query.selective}">selected</c:if>>否</option>
+        </select>
         <label>专业类型</label>
         <select class="input-small" name="category" id="category-select">
             <option value="">请选择</option>
@@ -128,6 +134,7 @@
         <th>科目名称</th>
         <th>层次</th>
         <th>专业类型</th>
+        <th>选做科目</th>
         <th>试卷</th>
         <th>答案</th>
         <th>试卷类型</th>
@@ -148,6 +155,9 @@
             </td>
             <td>${subject.level}</td>
             <td>${subject.category}</td>
+            <td>
+            	<c:if test="${subject.selective}">是</c:if>
+            </td>
             <td>
                 <c:if test="${subject.paperUrl != null && examType!='MULTI_MEDIA'}">
                     <a href="${fileServer}${subject.paperUrl}" target="_blank">已上传</a>

+ 2 - 1
stmms-web/src/main/webapp/sql/stmms_ft.sql

@@ -386,7 +386,8 @@ CREATE TABLE `eb_exam_subject`
 	`auto_scroll`   	tinyint(1)	DEFAULT NULL COMMENT '评卷提交自动定位',
 	`enable_split`   	tinyint(1)	DEFAULT NULL COMMENT '自动对切题卡',
 	`display_question_name`   	tinyint(1)	NOT NULL COMMENT '显示题目昵称',
-	`inspect_round` 	INT (11) NOT NULL COMMENT '复核轮数',
+	`inspect_round` 	INT (11)	NOT NULL COMMENT '复核轮数',
+	`selective` 		tinyint(1)  NOT NULL COMMENT '选做题科目',
     PRIMARY KEY (`exam_id`, `code`)
 ) ENGINE = InnoDB
   DEFAULT CHARSET = utf8mb4 COMMENT ='考试科目表';