|
@@ -8,9 +8,11 @@ import cn.com.qmth.stmms.biz.exam.query.ExamStudentSearchQuery;
|
|
import cn.com.qmth.stmms.biz.exam.service.*;
|
|
import cn.com.qmth.stmms.biz.exam.service.*;
|
|
import cn.com.qmth.stmms.biz.file.service.FileService;
|
|
import cn.com.qmth.stmms.biz.file.service.FileService;
|
|
import cn.com.qmth.stmms.biz.mark.model.MarkLibrary;
|
|
import cn.com.qmth.stmms.biz.mark.model.MarkLibrary;
|
|
|
|
+import cn.com.qmth.stmms.biz.mark.model.TrialLibrary;
|
|
import cn.com.qmth.stmms.biz.mark.service.MarkLibraryService;
|
|
import cn.com.qmth.stmms.biz.mark.service.MarkLibraryService;
|
|
import cn.com.qmth.stmms.biz.user.model.User;
|
|
import cn.com.qmth.stmms.biz.user.model.User;
|
|
import cn.com.qmth.stmms.biz.user.service.UserService;
|
|
import cn.com.qmth.stmms.biz.user.service.UserService;
|
|
|
|
+import cn.com.qmth.stmms.biz.utils.BatchGetDataUtil;
|
|
import cn.com.qmth.stmms.biz.utils.ScoreItem;
|
|
import cn.com.qmth.stmms.biz.utils.ScoreItem;
|
|
import cn.com.qmth.stmms.common.annotation.Logging;
|
|
import cn.com.qmth.stmms.common.annotation.Logging;
|
|
import cn.com.qmth.stmms.common.annotation.RoleRequire;
|
|
import cn.com.qmth.stmms.common.annotation.RoleRequire;
|
|
@@ -23,15 +25,18 @@ import com.google.common.base.Strings;
|
|
import net.sf.json.JSONArray;
|
|
import net.sf.json.JSONArray;
|
|
import net.sf.json.JSONObject;
|
|
import net.sf.json.JSONObject;
|
|
|
|
|
|
|
|
+import org.apache.commons.io.IOUtils;
|
|
import org.apache.commons.lang.StringUtils;
|
|
import org.apache.commons.lang.StringUtils;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Controller;
|
|
import org.springframework.stereotype.Controller;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
|
|
|
+import java.io.IOException;
|
|
import java.text.DecimalFormat;
|
|
import java.text.DecimalFormat;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.LinkedList;
|
|
import java.util.LinkedList;
|
|
@@ -61,6 +66,7 @@ public class ExamStudentController extends BaseApiController {
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private FileService fileService;
|
|
private FileService fileService;
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private ExamSubjectService examSubjectService;
|
|
private ExamSubjectService examSubjectService;
|
|
|
|
|
|
@@ -252,9 +258,9 @@ public class ExamStudentController extends BaseApiController {
|
|
private JSONArray getInspector(Integer studentId) {
|
|
private JSONArray getInspector(Integer studentId) {
|
|
List<InspectHistory> historyList = inspectHistoryService.findByStudentId(studentId);
|
|
List<InspectHistory> historyList = inspectHistoryService.findByStudentId(studentId);
|
|
JSONArray array = new JSONArray();
|
|
JSONArray array = new JSONArray();
|
|
- if(!historyList.isEmpty()){
|
|
|
|
- for (InspectHistory h: historyList) {
|
|
|
|
- User u= userService.findById(h.getInspectorId());
|
|
|
|
|
|
+ if (!historyList.isEmpty()) {
|
|
|
|
+ for (InspectHistory h : historyList) {
|
|
|
|
+ User u = userService.findById(h.getInspectorId());
|
|
JSONObject obj = new JSONObject();
|
|
JSONObject obj = new JSONObject();
|
|
obj.accumulate("loginName", u.getLoginName());
|
|
obj.accumulate("loginName", u.getLoginName());
|
|
obj.accumulate("name", u.getName());
|
|
obj.accumulate("name", u.getName());
|
|
@@ -306,7 +312,7 @@ public class ExamStudentController extends BaseApiController {
|
|
student = studentService.findBySchoolIdAndSubjectCodeAndStudentCodeAndRemark(schoolId, subjectCode,
|
|
student = studentService.findBySchoolIdAndSubjectCodeAndStudentCodeAndRemark(schoolId, subjectCode,
|
|
studentCode, examSeqCode);
|
|
studentCode, examSeqCode);
|
|
} else if (examId != null) {
|
|
} else if (examId != null) {
|
|
- student = studentService.findBySchoolIdAndExamIdAndSubjectCodeAndStudentCode( schoolId,examId,
|
|
|
|
|
|
+ student = studentService.findBySchoolIdAndExamIdAndSubjectCodeAndStudentCode(schoolId, examId,
|
|
subjectCode, studentCode);
|
|
subjectCode, studentCode);
|
|
} else {
|
|
} else {
|
|
student = studentService.findBySchoolIdAndSubjectCodeAndStudentCode(schoolId, subjectCode, studentCode);
|
|
student = studentService.findBySchoolIdAndSubjectCodeAndStudentCode(schoolId, subjectCode, studentCode);
|
|
@@ -527,7 +533,7 @@ public class ExamStudentController extends BaseApiController {
|
|
@RequestMapping(value = "/student/manualAbsent/{examId}", method = RequestMethod.POST)
|
|
@RequestMapping(value = "/student/manualAbsent/{examId}", method = RequestMethod.POST)
|
|
@ResponseBody
|
|
@ResponseBody
|
|
public Object updateManualAbsent(HttpServletRequest request, @PathVariable Integer examId,
|
|
public Object updateManualAbsent(HttpServletRequest request, @PathVariable Integer examId,
|
|
- @RequestBody MenualAbsentDTO[] datas) {
|
|
|
|
|
|
+ @RequestParam MultipartFile file) {
|
|
ApiUser user = RequestUtils.getApiUser(request);
|
|
ApiUser user = RequestUtils.getApiUser(request);
|
|
Exam exam = examService.findById(examId);
|
|
Exam exam = examService.findById(examId);
|
|
JSONArray array = new JSONArray();
|
|
JSONArray array = new JSONArray();
|
|
@@ -537,22 +543,27 @@ public class ExamStudentController extends BaseApiController {
|
|
throw ApiException.EXAM_NOT_ACCESSIBLED;
|
|
throw ApiException.EXAM_NOT_ACCESSIBLED;
|
|
}
|
|
}
|
|
studentService.clearManualAbsent(examId);
|
|
studentService.clearManualAbsent(examId);
|
|
- if (datas != null && datas.length > 0) {
|
|
|
|
- List<String> examNumberIn = new ArrayList<>();
|
|
|
|
- for (MenualAbsentDTO dto : datas) {
|
|
|
|
- examNumberIn.add(dto.getExamNumber());
|
|
|
|
- }
|
|
|
|
- ExamStudentSearchQuery query =new ExamStudentSearchQuery();
|
|
|
|
- query.setExamId(examId);
|
|
|
|
- query.setExamNumberIn(StringUtils.join(examNumberIn, ","));
|
|
|
|
- query.setPageSize(Integer.MAX_VALUE);
|
|
|
|
- query = studentService.findByQuery(query);
|
|
|
|
- studentService.updateManualAbsent(examId, examNumberIn, true);
|
|
|
|
- for (ExamStudent student :query.getResult()){
|
|
|
|
- JSONObject obj = new JSONObject();
|
|
|
|
- obj.accumulate("examNumber", student.getExamNumber());
|
|
|
|
- array.add(obj);
|
|
|
|
|
|
+ List<String> lineList = null;
|
|
|
|
+ try {
|
|
|
|
+ lineList = IOUtils.readLines(file.getInputStream(), "UTF-8");
|
|
|
|
+ if (lineList != null && lineList.size() > 0) {
|
|
|
|
+ List<ExamStudent> studentList = new BatchGetDataUtil<ExamStudent, String>() {
|
|
|
|
+ @Override
|
|
|
|
+ protected List<ExamStudent> getData(List<String> dataList) {
|
|
|
|
+ List<ExamStudent> list = studentService.findByExamIdAndExamNumberIn(examId, dataList);
|
|
|
|
+ List<Integer> studentIds = list.stream().map(ExamStudent::getId).collect(Collectors.toList());
|
|
|
|
+ studentService.updateManualAbsent(studentIds, true);
|
|
|
|
+ return list;
|
|
|
|
+ }
|
|
|
|
+ }.getDataForBatch(lineList, 500);
|
|
|
|
+ for (ExamStudent student : studentList) {
|
|
|
|
+ JSONObject obj = new JSONObject();
|
|
|
|
+ obj.accumulate("examNumber", student.getExamNumber());
|
|
|
|
+ array.add(obj);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
+ } catch (IOException e) {
|
|
|
|
+ e.printStackTrace();
|
|
}
|
|
}
|
|
return array;
|
|
return array;
|
|
}
|
|
}
|