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

标记试卷增加违纪标注查询

ting.yin 5 жил өмнө
parent
commit
efcdbe6e53

+ 1 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/model/ExamStudent.java

@@ -17,6 +17,7 @@ import javax.persistence.Transient;
 
 import org.apache.commons.lang.StringUtils;
 
+import cn.com.qmth.stmms.biz.mark.model.TagInfo;
 import cn.com.qmth.stmms.biz.utils.ScoreItem;
 import cn.com.qmth.stmms.common.annotation.ExcelField;
 

+ 2 - 2
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/dao/TagInfoDao.java → stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/dao/TagInfoDao.java

@@ -1,4 +1,4 @@
-package cn.com.qmth.stmms.biz.exam.dao;
+package cn.com.qmth.stmms.biz.mark.dao;
 
 import java.util.List;
 
@@ -7,7 +7,7 @@ import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.PagingAndSortingRepository;
 
-import cn.com.qmth.stmms.biz.exam.model.TagInfo;
+import cn.com.qmth.stmms.biz.mark.model.TagInfo;
 import cn.com.qmth.stmms.common.enums.TagType;
 
 public interface TagInfoDao extends PagingAndSortingRepository<TagInfo, Integer>, JpaSpecificationExecutor<TagInfo> {

+ 2 - 2
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/model/TagInfo.java → stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/model/TagInfo.java

@@ -1,4 +1,4 @@
-package cn.com.qmth.stmms.biz.exam.model;
+package cn.com.qmth.stmms.biz.mark.model;
 
 import java.io.Serializable;
 
@@ -13,7 +13,7 @@ import javax.persistence.Table;
 import cn.com.qmth.stmms.common.enums.TagType;
 
 @Entity
-@Table(name = "b_tag_info")
+@Table(name = "m_tag_info")
 public class TagInfo implements Serializable {
 
     private static final long serialVersionUID = 4059391572310941581L;

+ 48 - 12
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/service/Impl/MarkLibraryServiceImpl.java

@@ -23,13 +23,13 @@ import org.springframework.transaction.annotation.Transactional;
 import cn.com.qmth.stmms.biz.common.BaseQueryService;
 import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
 import cn.com.qmth.stmms.biz.exam.model.Marker;
-import cn.com.qmth.stmms.biz.exam.service.TagInfoService;
 import cn.com.qmth.stmms.biz.mark.dao.MarkLibraryDao;
 import cn.com.qmth.stmms.biz.mark.model.MarkLibrary;
 import cn.com.qmth.stmms.biz.mark.query.MarkLibrarySearchQuery;
 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.TagInfoService;
 import cn.com.qmth.stmms.common.enums.LibraryStatus;
 
 @Service
@@ -40,10 +40,10 @@ public class MarkLibraryServiceImpl extends BaseQueryService<MarkLibrary> implem
 
     @Autowired
     private MarkTrackService trackService;
-    
+
     @Autowired
     private MarkSpecialTagService specialTagService;
-    
+
     @Autowired
     private TagInfoService tagInfoService;
 
@@ -115,7 +115,7 @@ public class MarkLibraryServiceImpl extends BaseQueryService<MarkLibrary> implem
         trackService.deleteByExamIdAndSubjectCode(subject.getExamId(), subject.getCode());
         specialTagService.deleteByExamAndSubject(subject.getExamId(), subject.getCode());
         tagInfoService.deleteByExamAndSubject(subject.getExamId(), subject.getCode());
-        
+
     }
 
     @Override
@@ -227,11 +227,11 @@ public class MarkLibraryServiceImpl extends BaseQueryService<MarkLibrary> implem
                 if (query.getTagId() > 0) {
                     predicates.add(cb.like(root.get("tags").as(String.class), "%" + query.getTagId() + "%"));
                 }
-                if (query.getMarkerScore()!=null ) {
+                if (query.getMarkerScore() != null) {
                     predicates.add(cb.equal(root.get("markerScore"), query.getMarkerScore()));
                 }
-                return predicates.isEmpty() ? cb.conjunction()
-                        : cb.and(predicates.toArray(new Predicate[predicates.size()]));
+                return predicates.isEmpty() ? cb.conjunction() : cb.and(predicates.toArray(new Predicate[predicates
+                        .size()]));
             }
         };
     }
@@ -284,9 +284,9 @@ public class MarkLibraryServiceImpl extends BaseQueryService<MarkLibrary> implem
                 if (query.getStatus() != null) {
                     predicates.add(cb.equal(root.get("status").as(LibraryStatus.class), query.getStatus()));
                 }
-                cQuery.groupBy(root.get("markerId"),root.get("subjectCode"));
-                return predicates.isEmpty() ? cb.conjunction()
-                        : cb.and(predicates.toArray(new Predicate[predicates.size()]));
+                cQuery.groupBy(root.get("markerId"), root.get("subjectCode"));
+                return predicates.isEmpty() ? cb.conjunction() : cb.and(predicates.toArray(new Predicate[predicates
+                        .size()]));
             }
         };
     }
@@ -318,8 +318,44 @@ public class MarkLibraryServiceImpl extends BaseQueryService<MarkLibrary> implem
         }
         sql.append(" limit ").append(pageNumber).append(",").append(query.getPageSize());
         Query q = em.createNativeQuery(sql.toString(), MarkLibrary.class);
-        Page<MarkLibrary> page = new PageImpl<>(q.getResultList(),
-                new PageRequest(query.getPageNumber() - 1, query.getPageSize()), totalCount);
+        Page<MarkLibrary> page = new PageImpl<>(q.getResultList(), new PageRequest(query.getPageNumber() - 1,
+                query.getPageSize()), totalCount);
+        fillResult(page, query);
+        return query;
+    }
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public MarkLibrarySearchQuery findByTagId(MarkLibrarySearchQuery query) {
+        StringBuffer sql = new StringBuffer(
+                "SELECT m.* FROM m_library m left join m_tag_info t ON m.id=t.library_id WHERE 1=1");
+        if (query.getExamId() > 0) {
+            sql.append(" and m.exam_id = ").append(query.getExamId());
+        }
+        if (StringUtils.isNotBlank(query.getSubjectCode())) {
+            sql.append(" and m.subject_code = '").append(query.getSubjectCode()).append("'");
+        }
+        if (query.getCampusId() > 0) {
+            sql.append(" and m.campus_id = ").append(query.getCampusId());
+        }
+        if (query.getStudentId() != null) {
+            sql.append(" and m.student_id = ").append(query.getStudentId());
+        }
+        if (query.getTagId() == 0) {
+            sql.append(" and t.id is not null ");
+        } else {
+            sql.append(" and m.tags like '").append(query.getTagId()).append("'");
+        }
+        Query qCount = em.createNativeQuery(sql.toString(), MarkLibrary.class);
+        int totalCount = qCount.getResultList().size();
+        int pageNumber = query.getPageNumber() - 1;
+        if (pageNumber > 0) {
+            pageNumber = pageNumber * query.getPageSize();
+        }
+        sql.append(" limit ").append(pageNumber).append(",").append(query.getPageSize());
+        Query q = em.createNativeQuery(sql.toString(), MarkLibrary.class);
+        Page<MarkLibrary> page = new PageImpl<>(q.getResultList(), new PageRequest(query.getPageNumber() - 1,
+                query.getPageSize()), totalCount);
         fillResult(page, query);
         return query;
     }

+ 4 - 4
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/TagInfoServiceImpl.java → stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/service/Impl/TagInfoServiceImpl.java

@@ -1,4 +1,4 @@
-package cn.com.qmth.stmms.biz.exam.service.impl;
+package cn.com.qmth.stmms.biz.mark.service.Impl;
 
 import java.util.List;
 
@@ -6,9 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import cn.com.qmth.stmms.biz.common.BaseQueryService;
-import cn.com.qmth.stmms.biz.exam.dao.TagInfoDao;
-import cn.com.qmth.stmms.biz.exam.model.TagInfo;
-import cn.com.qmth.stmms.biz.exam.service.TagInfoService;
+import cn.com.qmth.stmms.biz.mark.dao.TagInfoDao;
+import cn.com.qmth.stmms.biz.mark.model.TagInfo;
+import cn.com.qmth.stmms.biz.mark.service.TagInfoService;
 import cn.com.qmth.stmms.common.enums.TagType;
 
 @Service

+ 2 - 2
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/service/Impl/TaskServiceImpl.java

@@ -23,17 +23,16 @@ import cn.com.qmth.stmms.biz.exam.model.ExamQuestion;
 import cn.com.qmth.stmms.biz.exam.model.ExamStudent;
 import cn.com.qmth.stmms.biz.exam.model.ExamStudentPaper;
 import cn.com.qmth.stmms.biz.exam.model.Marker;
-import cn.com.qmth.stmms.biz.exam.model.TagInfo;
 import cn.com.qmth.stmms.biz.exam.service.ExamQuestionService;
 import cn.com.qmth.stmms.biz.exam.service.ExamStudentPaperService;
 import cn.com.qmth.stmms.biz.exam.service.ExamStudentService;
 import cn.com.qmth.stmms.biz.exam.service.ExamSubjectService;
-import cn.com.qmth.stmms.biz.exam.service.TagInfoService;
 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.MarkStepDTO;
 import cn.com.qmth.stmms.biz.mark.model.MarkTrack;
 import cn.com.qmth.stmms.biz.mark.model.SpecialTagDTO;
+import cn.com.qmth.stmms.biz.mark.model.TagInfo;
 import cn.com.qmth.stmms.biz.mark.model.TagInfoDTO;
 import cn.com.qmth.stmms.biz.mark.model.Task;
 import cn.com.qmth.stmms.biz.mark.model.TrackDTO;
@@ -41,6 +40,7 @@ import cn.com.qmth.stmms.biz.mark.query.MarkLibrarySearchQuery;
 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.TagInfoService;
 import cn.com.qmth.stmms.biz.mark.service.TaskService;
 import cn.com.qmth.stmms.biz.utils.CurrentTaskUtil;
 import cn.com.qmth.stmms.biz.utils.MarkRedisUtil;

+ 2 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/service/MarkLibraryService.java

@@ -61,4 +61,6 @@ public interface MarkLibraryService {
     long countByMidAndSubjectCodeStatus(int markerId, String subjectCode, LibraryStatus status);
 
     MarkLibrarySearchQuery getByCondition(final MarkLibrarySearchQuery query);
+
+    MarkLibrarySearchQuery findByTagId(MarkLibrarySearchQuery query);
 }

+ 2 - 2
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/TagInfoService.java → stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/service/TagInfoService.java

@@ -1,8 +1,8 @@
-package cn.com.qmth.stmms.biz.exam.service;
+package cn.com.qmth.stmms.biz.mark.service;
 
 import java.util.List;
 
-import cn.com.qmth.stmms.biz.exam.model.TagInfo;
+import cn.com.qmth.stmms.biz.mark.model.TagInfo;
 import cn.com.qmth.stmms.common.enums.TagType;
 
 public interface TagInfoService {

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

@@ -35,7 +35,6 @@ import cn.com.qmth.stmms.biz.exam.model.ExamStudent;
 import cn.com.qmth.stmms.biz.exam.model.ExamStudentPaper;
 import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
 import cn.com.qmth.stmms.biz.exam.model.Marker;
-import cn.com.qmth.stmms.biz.exam.model.TagInfo;
 import cn.com.qmth.stmms.biz.exam.query.ExamStudentSearchQuery;
 import cn.com.qmth.stmms.biz.exam.service.ExamPackageService;
 import cn.com.qmth.stmms.biz.exam.service.ExamQuestionService;
@@ -45,9 +44,10 @@ import cn.com.qmth.stmms.biz.exam.service.ExamStudentService;
 import cn.com.qmth.stmms.biz.exam.service.ExamSubjectService;
 import cn.com.qmth.stmms.biz.exam.service.MarkerService;
 import cn.com.qmth.stmms.biz.exam.service.ScoreRateService;
-import cn.com.qmth.stmms.biz.exam.service.TagInfoService;
 import cn.com.qmth.stmms.biz.mark.model.MarkLibrary;
+import cn.com.qmth.stmms.biz.mark.model.TagInfo;
 import cn.com.qmth.stmms.biz.mark.service.MarkLibraryService;
+import cn.com.qmth.stmms.biz.mark.service.TagInfoService;
 import cn.com.qmth.stmms.biz.utils.ScoreItem;
 import cn.com.qmth.stmms.common.enums.ExamStatus;
 import cn.com.qmth.stmms.common.enums.LibraryStatus;

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

@@ -26,9 +26,12 @@ import cn.com.qmth.stmms.biz.exam.service.ExamStudentService;
 import cn.com.qmth.stmms.biz.exam.service.ExamSubjectService;
 import cn.com.qmth.stmms.biz.exam.service.TagService;
 import cn.com.qmth.stmms.biz.mark.model.MarkLibrary;
+import cn.com.qmth.stmms.biz.mark.model.TagInfo;
 import cn.com.qmth.stmms.biz.mark.query.MarkLibrarySearchQuery;
 import cn.com.qmth.stmms.biz.mark.service.MarkLibraryService;
+import cn.com.qmth.stmms.biz.mark.service.TagInfoService;
 import cn.com.qmth.stmms.common.enums.LibraryStatus;
+import cn.com.qmth.stmms.common.enums.TagType;
 import cn.com.qmth.stmms.common.utils.DateUtils;
 import cn.com.qmth.stmms.common.utils.PictureUrlBuilder;
 
@@ -52,6 +55,9 @@ public class TagController extends BaseParameterController {
 
     @Autowired
     private TagService tagService;
+    
+    @Autowired
+    private TagInfoService tagInfoService;
 
     @Value("${sheet.image.server}")
     private String imageServer;
@@ -71,10 +77,7 @@ public class TagController extends BaseParameterController {
             query.setExamId(examId);
             query.setTagNotNull(true);
             query.orderByExamNumber();
-            if (query.getTagId() == 0) {
-                query.setTagId(1);
-            }
-            query = libraryService.findByQuery(query);
+            query = libraryService.findByTagId(query);
 
             List<ExamStudent> list = new LinkedList<ExamStudent>();
             for (MarkLibrary library : query.getResult()) {
@@ -83,6 +86,8 @@ public class TagController extends BaseParameterController {
                     student.setSheetUrls(PictureUrlBuilder.getSheetUrls(examId, library.getCampusId(),
                             student.getSubjectCode(), student.getExamNumber(), student.getSheetCount()));
                     student.setMarkTime(DateUtils.formatDateTime(library.getMarkerTime()));
+                    TagInfo tagInfo = tagInfoService.findByStudentIdAndType(student.getId(), TagType.BREACH);
+                    student.setTagInfo(tagInfo);
                 }
                 list.add(student);
             }

+ 1 - 1
stmms-web/src/main/java/cn/com/qmth/stmms/mark/MarkController.java

@@ -33,12 +33,12 @@ import cn.com.qmth.stmms.biz.exam.model.Tag;
 import cn.com.qmth.stmms.biz.exam.service.ExamService;
 import cn.com.qmth.stmms.biz.exam.service.ExamSubjectService;
 import cn.com.qmth.stmms.biz.exam.service.MarkerService;
-import cn.com.qmth.stmms.biz.exam.service.TagInfoService;
 import cn.com.qmth.stmms.biz.exam.service.TagService;
 import cn.com.qmth.stmms.biz.mark.model.MarkLibrary;
 import cn.com.qmth.stmms.biz.mark.model.Task;
 import cn.com.qmth.stmms.biz.mark.query.MarkLibrarySearchQuery;
 import cn.com.qmth.stmms.biz.mark.service.MarkLibraryService;
+import cn.com.qmth.stmms.biz.mark.service.TagInfoService;
 import cn.com.qmth.stmms.biz.mark.service.TaskService;
 import cn.com.qmth.stmms.common.controller.BaseController;
 import cn.com.qmth.stmms.common.enums.ExamSubjectStatus;

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

@@ -131,7 +131,7 @@
 				<th>标记卷类型</th>
 				<th>阅卷账号</th>
 				<th>阅卷姓名</th>
-				<th>违纪注</th>
+				<th>违纪注</th>
 				<th>查看图片</th>
 			</tr>
 		</thead>

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

@@ -28,6 +28,7 @@
 			</select>
 			<label>标记类型</label>
 			<select class="input-medium" name="tagId">
+				<option value="0" <c:if test="${0==query.tagId}">selected</c:if>>违纪标注</option>
 				<c:forEach items="${tagList}" var="tag">
 				<option value="${tag.id}" <c:if test="${tag.id==query.tagId}">selected</c:if>>${tag.name}</option>
 				</c:forEach>
@@ -49,6 +50,7 @@
 				<th>考生编号</th>
 				<th>姓名</th>
 				<th>提交时间</th>
+				<th>违纪标注</th>
 				<th>操作</th>
 			</tr>
 		</thead>
@@ -61,6 +63,7 @@
 				<td>${result.id}</td>
 				<td>${result.name}</td>
 				<td>${result.markTime}</td>
+				<td>${result.tagInfo.remark}</td>
 				<td>
 					<a class="sheet-link" href="##" data-sheet-url="${result.sheetUrlString}" data-answer-url="<c:if test="${result.answerUrl!=null}">${cardServer}${result.answerUrl}</c:if>" data-title="${result.examNumber}&nbsp;&nbsp;${result.name}&nbsp;&nbsp;客观总分${result.objectiveScoreString}&nbsp;&nbsp;主观总分${result.subjectiveScoreString}&nbsp;&nbsp;全卷总分${result.totalScoreString}">原图</a>
 					<!--

+ 2 - 2
stmms-web/src/main/webapp/static/mark-new/js/modules/tagInfo.js

@@ -138,14 +138,14 @@ TagInfo.prototype.toggle = function(enable,button) {
     self.onTypeSelect();
 }
 
-TagInfo.prototype.container_dom = '<h3 class="popover-title">违纪</h3>\
+TagInfo.prototype.container_dom = '<h3 class="popover-title">违纪标注</h3>\
 <div class="popover-content"><p id="type-info-list" class="popover-list">\
 </p></div>';
 
 TagInfo.prototype.button_dom = '<a class="tag-button" href="#"></a>';
 
 TagInfo.prototype.popover_dom = '<div class="message-popover" style="display:none"><div class="popover-header">\
-	<p class="title">违纪卷备注</p><p class="image-close"><img src="{staticServer}/mark-new/images/images-close.png" /></p></div>\
+	<p class="title">违纪注</p><p class="image-close"><img src="{staticServer}/mark-new/images/images-close.png" /></p></div>\
 	<div class="popover-cont"><input class="remark-input" placeholder="请输入备注" type="text"/>\
 	<i class="wrong remark"></i></div>\
 	<a href="#" class="btn btn-small btn-info text-userInfo">确定</a>\