|
@@ -30,12 +30,15 @@ import cn.com.qmth.stmms.biz.exam.model.ExamPackage;
|
|
import cn.com.qmth.stmms.biz.exam.model.ExamQuestion;
|
|
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.ExamStudent;
|
|
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.query.ExamStudentSearchQuery;
|
|
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.ExamPackageService;
|
|
import cn.com.qmth.stmms.biz.exam.service.ExamQuestionService;
|
|
import cn.com.qmth.stmms.biz.exam.service.ExamQuestionService;
|
|
import cn.com.qmth.stmms.biz.exam.service.ExamStudentService;
|
|
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.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.ScoreRateService;
|
|
|
|
+import cn.com.qmth.stmms.biz.mark.model.MarkLibrary;
|
|
import cn.com.qmth.stmms.biz.mark.service.MarkLibraryService;
|
|
import cn.com.qmth.stmms.biz.mark.service.MarkLibraryService;
|
|
import cn.com.qmth.stmms.biz.utils.ScoreItem;
|
|
import cn.com.qmth.stmms.biz.utils.ScoreItem;
|
|
import cn.com.qmth.stmms.common.auth.annotation.RoleRequire;
|
|
import cn.com.qmth.stmms.common.auth.annotation.RoleRequire;
|
|
@@ -78,6 +81,9 @@ public class ScoreController extends BaseExamController {
|
|
|
|
|
|
@Value("${card.server}")
|
|
@Value("${card.server}")
|
|
private String cardServer;
|
|
private String cardServer;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private MarkerService markerService;
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private AsyncTaskExecutor taskExecutor;
|
|
private AsyncTaskExecutor taskExecutor;
|
|
@@ -95,8 +101,8 @@ public class ScoreController extends BaseExamController {
|
|
query.setSubjectCode(subjectCode);
|
|
query.setSubjectCode(subjectCode);
|
|
}
|
|
}
|
|
query.setExamId(examId);
|
|
query.setExamId(examId);
|
|
- query.setUpload(true);
|
|
|
|
- query.setAbsent(false);
|
|
|
|
|
|
+ // query.setUpload(true);
|
|
|
|
+ // query.setAbsent(false);
|
|
query.orderByExamNumber();
|
|
query.orderByExamNumber();
|
|
if (filter == 1) {
|
|
if (filter == 1) {
|
|
query.setObjectiveScore(0d);
|
|
query.setObjectiveScore(0d);
|
|
@@ -105,6 +111,10 @@ public class ScoreController extends BaseExamController {
|
|
query.setObjectiveScoreGt(0d);
|
|
query.setObjectiveScoreGt(0d);
|
|
query.setSubjectiveScore(0d);
|
|
query.setSubjectiveScore(0d);
|
|
}
|
|
}
|
|
|
|
+ String ids = getStudentIdsByMarkLoginAndMarkName(query.getMarkLogin(),query.getMarkName());
|
|
|
|
+ if(StringUtils.isNotBlank(ids)){
|
|
|
|
+ query.setIds(ids);
|
|
|
|
+ }
|
|
subjectFilter(query, wu);
|
|
subjectFilter(query, wu);
|
|
query = studentService.findByQuery(query);
|
|
query = studentService.findByQuery(query);
|
|
for (ExamStudent student : query.getResult()) {
|
|
for (ExamStudent student : query.getResult()) {
|
|
@@ -112,6 +122,26 @@ public class ScoreController extends BaseExamController {
|
|
buildPackageUrl(student);
|
|
buildPackageUrl(student);
|
|
buildAnswerUrl(student);
|
|
buildAnswerUrl(student);
|
|
student.setSubjectRemark(subjectService.find(student.getExamId(), student.getSubjectCode()).getRemark());
|
|
student.setSubjectRemark(subjectService.find(student.getExamId(), student.getSubjectCode()).getRemark());
|
|
|
|
+ List<Marker> markers = markerService.findByStudentId(student.getId());
|
|
|
|
+ if(!markers.isEmpty()){
|
|
|
|
+ String loginNames = "";
|
|
|
|
+ String names = "";
|
|
|
|
+ for (Marker marker : markers) {
|
|
|
|
+ loginNames = loginNames.equals("")?marker.getLoginName():loginNames+","+marker.getLoginName();
|
|
|
|
+ names = names.equals("")?marker.getName():names +","+marker.getName();
|
|
|
|
+ }
|
|
|
|
+ student.setMarkLogin(loginNames);
|
|
|
|
+ student.setMarkName(names);
|
|
|
|
+ }
|
|
|
|
+ List<MarkLibrary> markLibrarys = markLibraryService.findByStudentId(student.getId());
|
|
|
|
+ if(!markLibrarys.isEmpty()){
|
|
|
|
+ for (MarkLibrary markLibrary : markLibrarys) {
|
|
|
|
+ if(markLibrary.getTags()!=null){
|
|
|
|
+ student.setTagValue(markLibrary.getTags());
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
view.addObject("query", query);
|
|
view.addObject("query", query);
|
|
view.addObject("filter", filter);
|
|
view.addObject("filter", filter);
|
|
@@ -196,11 +226,15 @@ public class ScoreController extends BaseExamController {
|
|
int examId = getSessionExamId(request);
|
|
int examId = getSessionExamId(request);
|
|
String subjectCode = RequestUtils.getSession(request).getParameter("subjectCode");
|
|
String subjectCode = RequestUtils.getSession(request).getParameter("subjectCode");
|
|
query.setExamId(examId);
|
|
query.setExamId(examId);
|
|
- query.setUpload(true);
|
|
|
|
- query.setAbsent(false);
|
|
|
|
|
|
+// query.setUpload(true);
|
|
|
|
+// query.setAbsent(false);
|
|
query.setPageNumber(1);
|
|
query.setPageNumber(1);
|
|
query.setPageSize(Integer.MAX_VALUE);
|
|
query.setPageSize(Integer.MAX_VALUE);
|
|
subjectFilter(query, wu);
|
|
subjectFilter(query, wu);
|
|
|
|
+ String ids = getStudentIdsByMarkLoginAndMarkName(query.getMarkLogin(),query.getMarkName());
|
|
|
|
+ if(StringUtils.isNotBlank(ids)){
|
|
|
|
+ query.setIds(ids);
|
|
|
|
+ }
|
|
query = studentService.findByQuery(query);
|
|
query = studentService.findByQuery(query);
|
|
String fileName = "成绩单.xlsx";
|
|
String fileName = "成绩单.xlsx";
|
|
try {
|
|
try {
|
|
@@ -208,6 +242,10 @@ public class ScoreController extends BaseExamController {
|
|
fileName = subjectService.find(examId, subjectCode).getName() + "-机阅考试成绩表";
|
|
fileName = subjectService.find(examId, subjectCode).getName() + "-机阅考试成绩表";
|
|
List<ScoreExportDTO> list = new LinkedList<ScoreExportDTO>();
|
|
List<ScoreExportDTO> list = new LinkedList<ScoreExportDTO>();
|
|
for (ExamStudent student : query.getResult()) {
|
|
for (ExamStudent student : query.getResult()) {
|
|
|
|
+ if(student.isBreach() || student.isAbsent()){
|
|
|
|
+ student.setObjectiveScore(0d);
|
|
|
|
+ student.setSubjectiveScore(0d);
|
|
|
|
+ }
|
|
list.add(new ScoreExportDTO(student));
|
|
list.add(new ScoreExportDTO(student));
|
|
}
|
|
}
|
|
new ExportExcel(subjectCode + "-" + subjectService.find(examId, subjectCode).getName(),
|
|
new ExportExcel(subjectCode + "-" + subjectService.find(examId, subjectCode).getName(),
|
|
@@ -216,6 +254,10 @@ public class ScoreController extends BaseExamController {
|
|
}
|
|
}
|
|
List<ExamStudentDTO> list = new LinkedList<ExamStudentDTO>();
|
|
List<ExamStudentDTO> list = new LinkedList<ExamStudentDTO>();
|
|
for (ExamStudent student : query.getResult()) {
|
|
for (ExamStudent student : query.getResult()) {
|
|
|
|
+ if(student.isBreach() || student.isAbsent()){
|
|
|
|
+ student.setObjectiveScore(0d);
|
|
|
|
+ student.setSubjectiveScore(0d);
|
|
|
|
+ }
|
|
list.add(new ExamStudentDTO(student));
|
|
list.add(new ExamStudentDTO(student));
|
|
}
|
|
}
|
|
new ExportExcel("成绩单", ExamStudentDTO.class).setDataList(list).write(response, fileName).dispose();
|
|
new ExportExcel("成绩单", ExamStudentDTO.class).setDataList(list).write(response, fileName).dispose();
|
|
@@ -286,4 +328,31 @@ public class ScoreController extends BaseExamController {
|
|
student.setAnswerUrl(subject.getAnswerUrl());
|
|
student.setAnswerUrl(subject.getAnswerUrl());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ public String getStudentIdsByMarkLoginAndMarkName(String markLogin,String markName){
|
|
|
|
+ String ids = "";
|
|
|
|
+ if(StringUtils.isNotBlank(markLogin)){
|
|
|
|
+ ids += studentService.findIdsByMarkLogin(markLogin);
|
|
|
|
+ if(ids.equals("")){
|
|
|
|
+ ids = "-1";
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(StringUtils.isNotBlank(markName)){
|
|
|
|
+ String s = studentService.findIdsByMarkName(markName);
|
|
|
|
+ if(StringUtils.isBlank(ids)){
|
|
|
|
+ if(s.equals("")){
|
|
|
|
+ ids = "-1";
|
|
|
|
+ }else{
|
|
|
|
+ ids += s;
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ if(!ids.equals("-1")){
|
|
|
|
+ if(StringUtils.isBlank(s)){
|
|
|
|
+ ids = "-1";
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return ids;
|
|
|
|
+ }
|
|
}
|
|
}
|