|
@@ -29,10 +29,14 @@ import cn.com.qmth.stmms.biz.campus.service.CampusService;
|
|
|
import cn.com.qmth.stmms.biz.exam.model.Exam;
|
|
|
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.Marker;
|
|
|
import cn.com.qmth.stmms.biz.exam.query.ExamStudentSearchQuery;
|
|
|
import cn.com.qmth.stmms.biz.exam.service.ExamQuestionService;
|
|
|
import cn.com.qmth.stmms.biz.exam.service.ExamService;
|
|
|
import cn.com.qmth.stmms.biz.exam.service.ExamStudentService;
|
|
|
+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.service.MarkLibraryService;
|
|
|
import cn.com.qmth.stmms.biz.user.model.User;
|
|
|
import cn.com.qmth.stmms.biz.utils.ScoreItem;
|
|
|
import cn.com.qmth.stmms.common.utils.RequestUtils;
|
|
@@ -46,7 +50,7 @@ public class ExamStudentController extends BaseApiController {
|
|
|
protected static Logger logger = LoggerFactory.getLogger(ExamStudentController.class);
|
|
|
|
|
|
@Autowired
|
|
|
- private ExamStudentService examStudentService;
|
|
|
+ private ExamStudentService studentService;
|
|
|
|
|
|
@Autowired
|
|
|
private ExamService examService;
|
|
@@ -57,6 +61,12 @@ public class ExamStudentController extends BaseApiController {
|
|
|
@Autowired
|
|
|
private ExamQuestionService questionService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private MarkLibraryService libraryService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private MarkerService markerService;
|
|
|
+
|
|
|
@AuthValidate("adminUser")
|
|
|
@RequestMapping(value = "/student/manualAbsent/{examId}", method = RequestMethod.POST)
|
|
|
@ResponseBody
|
|
@@ -66,7 +76,7 @@ public class ExamStudentController extends BaseApiController {
|
|
|
Exam exam = examService.findById(examId);
|
|
|
if (exam != null && exam.getSchoolId().equals(user.getSchoolId())) {
|
|
|
for (MenualAbsentDTO dto : datas) {
|
|
|
- examStudentService.updateManualAbsent(examId, dto.getExamNumber(), dto.isAbsent());
|
|
|
+ studentService.updateManualAbsent(examId, dto.getExamNumber(), dto.isAbsent());
|
|
|
}
|
|
|
return true;
|
|
|
} else {
|
|
@@ -81,7 +91,7 @@ public class ExamStudentController extends BaseApiController {
|
|
|
User user = RequestUtils.getApiUser(request);
|
|
|
Exam exam = examService.findById(examId);
|
|
|
if (exam != null && exam.getSchoolId().equals(user.getSchoolId())) {
|
|
|
- examStudentService.clearManualAbsent(examId);
|
|
|
+ studentService.clearManualAbsent(examId);
|
|
|
return true;
|
|
|
} else {
|
|
|
throw ApiException.EXAM_NOT_ACCESSIBLED;
|
|
@@ -96,7 +106,7 @@ public class ExamStudentController extends BaseApiController {
|
|
|
List<ExamStudent> esList = new LinkedList<ExamStudent>();
|
|
|
Exam exam = examService.findById(examId);
|
|
|
if (exam != null) {
|
|
|
- esList = examStudentService.findByExamId(examId);
|
|
|
+ esList = studentService.findByExamId(examId);
|
|
|
}
|
|
|
for (ExamStudent student : esList) {
|
|
|
JSONObject obj = new JSONObject();
|
|
@@ -138,7 +148,7 @@ public class ExamStudentController extends BaseApiController {
|
|
|
query.setPageNumber(1);
|
|
|
query.setPageSize(Integer.MAX_VALUE);
|
|
|
}
|
|
|
- examStudentService.findByQuery(query);
|
|
|
+ studentService.findByQuery(query);
|
|
|
for (ExamStudent student : query.getResult()) {
|
|
|
JSONObject obj = new JSONObject();
|
|
|
obj.accumulate("id", student.getId());
|
|
@@ -162,7 +172,7 @@ public class ExamStudentController extends BaseApiController {
|
|
|
public JSONObject checkStudent(HttpServletRequest request, @RequestBody ExamStudent examStudent) {
|
|
|
JSONObject obj = new JSONObject();
|
|
|
Exam exam = examService.findById(examStudent.getExamId());
|
|
|
- ExamStudent student = examStudentService.findByExamIdAndExamNumber(examStudent.getExamId(),
|
|
|
+ ExamStudent student = studentService.findByExamIdAndExamNumber(examStudent.getExamId(),
|
|
|
examStudent.getExamNumber());
|
|
|
if (student != null) {
|
|
|
obj.accumulate("examId", examStudent.getExamId());
|
|
@@ -200,7 +210,7 @@ public class ExamStudentController extends BaseApiController {
|
|
|
query.setExamId(examId);
|
|
|
query.setUpload(upload);
|
|
|
query.setAbsent(absent);
|
|
|
- return examStudentService.countByQuery(query);
|
|
|
+ return studentService.countByQuery(query);
|
|
|
}
|
|
|
return 0;
|
|
|
}
|
|
@@ -209,7 +219,8 @@ public class ExamStudentController extends BaseApiController {
|
|
|
@RequestMapping("/exam/students")
|
|
|
@ResponseBody
|
|
|
public JSONArray getStudent(HttpServletRequest request, ExamStudentSearchQuery query,
|
|
|
- @RequestParam(required = false) Boolean withScoreDetail) {
|
|
|
+ @RequestParam(required = false) Boolean withScoreDetail,
|
|
|
+ @RequestParam(required = false) Boolean withMarkTrack) {
|
|
|
User user = RequestUtils.getApiUser(request);
|
|
|
JSONArray array = new JSONArray();
|
|
|
if (query.getExamId() == null) {
|
|
@@ -218,7 +229,7 @@ public class ExamStudentController extends BaseApiController {
|
|
|
Exam exam = examService.findById(query.getExamId());
|
|
|
if (exam != null && exam.getSchoolId().equals(user.getSchoolId())) {
|
|
|
DecimalFormat format = new DecimalFormat("####.##");
|
|
|
- examStudentService.findByQuery(query);
|
|
|
+ studentService.findByQuery(query);
|
|
|
for (ExamStudent student : query.getResult()) {
|
|
|
JSONObject obj = new JSONObject();
|
|
|
obj.accumulate("id", student.getId());
|
|
@@ -293,10 +304,15 @@ public class ExamStudentController extends BaseApiController {
|
|
|
detail.accumulate("mainNumber", question.getMainNumber());
|
|
|
detail.accumulate("subNumber", question.getSubNumber());
|
|
|
detail.accumulate("score", item.getScore());
|
|
|
+ detail.accumulate("marker", getMarkerNames(student, question.getMainNumber()));
|
|
|
subjective.add(detail);
|
|
|
}
|
|
|
obj.accumulate("subjectiveScoreDetail", subjective);
|
|
|
}
|
|
|
+ // 返回评卷标记
|
|
|
+ if (withMarkTrack != null && withMarkTrack.booleanValue()) {
|
|
|
+ obj.accumulate("tags", studentService.buildSheetTags(student));
|
|
|
+ }
|
|
|
array.add(obj);
|
|
|
} catch (Exception e) {
|
|
|
logger.error("student api error", e);
|
|
@@ -306,6 +322,18 @@ public class ExamStudentController extends BaseApiController {
|
|
|
return array;
|
|
|
}
|
|
|
|
|
|
+ private List<String> getMarkerNames(ExamStudent student, Integer groupNumber) {
|
|
|
+ List<String> names = new LinkedList<>();
|
|
|
+ List<MarkLibrary> list = libraryService.findByStudentAndGroup(student.getId(), groupNumber);
|
|
|
+ for (MarkLibrary library : list) {
|
|
|
+ Marker marker = markerService.findById(library.getMarkerId());
|
|
|
+ if (marker != null) {
|
|
|
+ names.add(marker.getName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return names;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
*
|
|
|
* @param s
|
|
@@ -369,10 +397,9 @@ public class ExamStudentController extends BaseApiController {
|
|
|
ExamStudent student = null;
|
|
|
try {
|
|
|
if (Strings.isNullOrEmpty(examSeqCode)) {
|
|
|
- student = examStudentService.findBySchoolIdAndSubjectCodeAndStudentCode(schoolId, subjectCode,
|
|
|
- studentCode);
|
|
|
+ student = studentService.findBySchoolIdAndSubjectCodeAndStudentCode(schoolId, subjectCode, studentCode);
|
|
|
} else {
|
|
|
- student = examStudentService.findBySchoolIdAndSubjectCodeAndStudentCodeAndRemark(schoolId, subjectCode,
|
|
|
+ student = studentService.findBySchoolIdAndSubjectCodeAndStudentCodeAndRemark(schoolId, subjectCode,
|
|
|
studentCode, examSeqCode);
|
|
|
}
|
|
|
if (student != null) {
|