浏览代码

评卷员进度导出为已评卷的评卷员

ting.yin 6 年之前
父节点
当前提交
15f06e9344

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

@@ -253,12 +253,15 @@ public class MarkLibraryServiceImpl extends BaseQueryService<MarkLibrary> implem
         return libraryDao.getMarkerInfo(markerId, status);
         return libraryDao.getMarkerInfo(markerId, status);
     }
     }
 
 
-    private Specification<MarkLibrary> buildSpecificationGroupBySubjectCode(final MarkLibrarySearchQuery query) {
+    private Specification<MarkLibrary> buildSpecificationGroupByMarkerId(final MarkLibrarySearchQuery query) {
         return new Specification<MarkLibrary>() {
         return new Specification<MarkLibrary>() {
 
 
             @Override
             @Override
             public Predicate toPredicate(Root<MarkLibrary> root, CriteriaQuery<?> cQuery, CriteriaBuilder cb) {
             public Predicate toPredicate(Root<MarkLibrary> root, CriteriaQuery<?> cQuery, CriteriaBuilder cb) {
                 List<Predicate> predicates = new LinkedList<Predicate>();
                 List<Predicate> predicates = new LinkedList<Predicate>();
+                if (query.getExamId() > 0) {
+                    predicates.add(cb.equal(root.get("examId"), query.getExamId()));
+                }
                 if (StringUtils.isNotBlank(query.getSubjectCode())) {
                 if (StringUtils.isNotBlank(query.getSubjectCode())) {
                     predicates.add(cb.equal(root.get("subjectCode"), query.getSubjectCode()));
                     predicates.add(cb.equal(root.get("subjectCode"), query.getSubjectCode()));
                 }
                 }
@@ -268,7 +271,7 @@ public class MarkLibraryServiceImpl extends BaseQueryService<MarkLibrary> implem
                 if (query.getStatus() != null) {
                 if (query.getStatus() != null) {
                     predicates.add(cb.equal(root.get("status").as(LibraryStatus.class), query.getStatus()));
                     predicates.add(cb.equal(root.get("status").as(LibraryStatus.class), query.getStatus()));
                 }
                 }
-                cQuery.groupBy(root.get("subjectCode"));
+                cQuery.groupBy(root.get("markerId"),root.get("subjectCode"));
                 return predicates.isEmpty() ? cb.conjunction()
                 return predicates.isEmpty() ? cb.conjunction()
                         : cb.and(predicates.toArray(new Predicate[predicates.size()]));
                         : cb.and(predicates.toArray(new Predicate[predicates.size()]));
             }
             }
@@ -278,7 +281,7 @@ public class MarkLibraryServiceImpl extends BaseQueryService<MarkLibrary> implem
     @Override
     @Override
     public MarkLibrarySearchQuery findGroupByQuery(final MarkLibrarySearchQuery query) {
     public MarkLibrarySearchQuery findGroupByQuery(final MarkLibrarySearchQuery query) {
         checkQuery(query);
         checkQuery(query);
-        Page<MarkLibrary> result = libraryDao.findAll(buildSpecificationGroupBySubjectCode(query), query);
+        Page<MarkLibrary> result = libraryDao.findAll(buildSpecificationGroupByMarkerId(query), query);
         fillResult(result, query);
         fillResult(result, query);
         return query;
         return query;
     }
     }

+ 7 - 14
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/MarkController.java

@@ -27,10 +27,10 @@ import cn.com.qmth.stmms.admin.exam.parameter.BaseParameterController;
 import cn.com.qmth.stmms.admin.vo.SubjectLibraryVO;
 import cn.com.qmth.stmms.admin.vo.SubjectLibraryVO;
 import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
 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.Marker;
-import cn.com.qmth.stmms.biz.exam.query.MarkerSearchQuery;
 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.MarkerService;
 import cn.com.qmth.stmms.biz.exam.service.MarkerService;
 import cn.com.qmth.stmms.biz.exam.service.query.ExamSubjectSearchQuery;
 import cn.com.qmth.stmms.biz.exam.service.query.ExamSubjectSearchQuery;
+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.query.MarkLibrarySearchQuery;
 import cn.com.qmth.stmms.biz.mark.service.MarkLibraryService;
 import cn.com.qmth.stmms.biz.mark.service.MarkLibraryService;
 import cn.com.qmth.stmms.biz.mark.service.TaskService;
 import cn.com.qmth.stmms.biz.mark.service.TaskService;
@@ -239,26 +239,19 @@ public class MarkController extends BaseParameterController {
         if (examId > 0) {
         if (examId > 0) {
             List<MarkerInfoDTO> result = new LinkedList<MarkerInfoDTO>();
             List<MarkerInfoDTO> result = new LinkedList<MarkerInfoDTO>();
             String subjectCode = RequestUtils.getSession(request).getParameter("subjectCode");
             String subjectCode = RequestUtils.getSession(request).getParameter("subjectCode");
-            List<Marker> list = null;
-            MarkerSearchQuery query = new MarkerSearchQuery();
+            MarkLibrarySearchQuery query = new MarkLibrarySearchQuery();
             query.setExamId(examId);
             query.setExamId(examId);
             query.setPageNumber(1);
             query.setPageNumber(1);
+            query.setStatus(LibraryStatus.MARKED);
             query.setPageSize(Integer.MAX_VALUE);
             query.setPageSize(Integer.MAX_VALUE);
-            query.orderById();
             if(subjectCode!=null){//科组长
             if(subjectCode!=null){//科组长
             	query.setSubjectCode(subjectCode);
             	query.setSubjectCode(subjectCode);
             }
             }
-            list = markerService.findByQuery(query).getResult();
-            for (Marker marker : list) {
-            	if(subjectCode!=null){//科组长
-            		result.add(getMarkerInfoDTO(subjectCode, marker));
-            	}else{
-            		for (ExamSubject subject : marker.getExamSubjects()) {
-            			result.add(getMarkerInfoDTO(subject.getCode(), marker));
-            		}
-            	}
+            query = libraryService.findByQuery(query);
+            for (MarkLibrary library : query.getResult()) {
+            	Marker marker = markerService.findById(library.getMarkerId());
+            	result.add(getMarkerInfoDTO(library.getSubjectCode(), marker));
             }
             }
-
             try {
             try {
                 String fileName = "评卷员工作量" + DateUtils.getDate("yyyyMMdd") + ".xlsx";
                 String fileName = "评卷员工作量" + DateUtils.getDate("yyyyMMdd") + ".xlsx";
                 new ExportExcel("评卷员工作量", MarkerInfoDTO.class).setDataList(result).write(response, fileName).dispose();
                 new ExportExcel("评卷员工作量", MarkerInfoDTO.class).setDataList(result).write(response, fileName).dispose();

+ 7 - 8
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/parameter/ExamMarkerController.java

@@ -40,6 +40,7 @@ import cn.com.qmth.stmms.biz.exam.query.MarkerSearchQuery;
 import cn.com.qmth.stmms.biz.exam.service.ExamService;
 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.ExamSubjectService;
 import cn.com.qmth.stmms.biz.exam.service.MarkerService;
 import cn.com.qmth.stmms.biz.exam.service.MarkerService;
+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.query.MarkLibrarySearchQuery;
 import cn.com.qmth.stmms.biz.mark.service.MarkLibraryService;
 import cn.com.qmth.stmms.biz.mark.service.MarkLibraryService;
 import cn.com.qmth.stmms.biz.mark.service.TaskService;
 import cn.com.qmth.stmms.biz.mark.service.TaskService;
@@ -122,18 +123,14 @@ public class ExamMarkerController extends BaseParameterController {
             } else if (subjectList.size() > 0) {
             } else if (subjectList.size() > 0) {
                 subject = subjectList.get(0);
                 subject = subjectList.get(0);
             }
             }
-            query.setPageNumber(1);
-            query.setPageSize(Integer.MAX_VALUE);
-            query.setExamId(examId);
-            query.orderById();
-            query.setSubjectCode(subject.getCode());
-            query = markerService.findByQuery(query);
             Set<MarkerVO> markerVOs = new HashSet<MarkerVO>();
             Set<MarkerVO> markerVOs = new HashSet<MarkerVO>();
             MarkLibrarySearchQuery query2 = new MarkLibrarySearchQuery();
             MarkLibrarySearchQuery query2 = new MarkLibrarySearchQuery();
             query2.setExamId(examId);
             query2.setExamId(examId);
-            query2.setSubjectCode(subject.getCode());
             query2.setStatus(LibraryStatus.MARKED);
             query2.setStatus(LibraryStatus.MARKED);
-            for (Marker marker : query.getResult()) {
+            query2.setSubjectCode(subject.getCode());
+            query2 = libraryService.findGroupByQuery(query2);
+            for (MarkLibrary library : query2.getResult()) {
+            	Marker marker = markerService.findById(library.getMarkerId());
             	marker.setSubject(subject);
             	marker.setSubject(subject);
         		query2.setMarkerId(marker.getId());
         		query2.setMarkerId(marker.getId());
         		marker.setMarkedCount(libraryService.countByQuery(query2));
         		marker.setMarkedCount(libraryService.countByQuery(query2));
@@ -489,6 +486,7 @@ public class ExamMarkerController extends BaseParameterController {
             Map<String, Marker> saveMap = new HashMap<String, Marker>();
             Map<String, Marker> saveMap = new HashMap<String, Marker>();
             Map<String, ExamSubject> current = new HashMap<String, ExamSubject>();
             Map<String, ExamSubject> current = new HashMap<String, ExamSubject>();
             for (Marker marker : list) {
             for (Marker marker : list) {
+            	marker.setLoginName(marker.getLoginName().trim());
             	ExamSubject examSubject = current.get(marker.getSubjectCode());
             	ExamSubject examSubject = current.get(marker.getSubjectCode());
             	if(examSubject == null){
             	if(examSubject == null){
             		examSubject = subjectService.find(examId, marker.getSubjectCode());
             		examSubject = subjectService.find(examId, marker.getSubjectCode());
@@ -582,6 +580,7 @@ public class ExamMarkerController extends BaseParameterController {
                         || StringUtils.isBlank(markerDTO.getPassword())) {
                         || StringUtils.isBlank(markerDTO.getPassword())) {
                     continue;
                     continue;
                 }
                 }
+                markerDTO.setLoginName(markerDTO.getLoginName().trim());
                 MarkerExcelError markerExcelError = checkExcelData(markerDTO, current);
                 MarkerExcelError markerExcelError = checkExcelData(markerDTO, current);
                 if (markerExcelError.equals(MarkerExcelError.MARKER)) {
                 if (markerExcelError.equals(MarkerExcelError.MARKER)) {
                     Marker marker = null;
                     Marker marker = null;