|
@@ -96,9 +96,7 @@ public class ExamMarkerController extends BaseParameterController {
|
|
|
query = markerService.findByQuery(query);
|
|
|
if (query.getCurrentCount() > 0) {
|
|
|
for (Marker marker : query.getResult()) {
|
|
|
- if (!marker.isCommon()) {
|
|
|
- marker.setSubject(subjectService.find(marker.getExamId(), marker.getSubjectCode()));
|
|
|
- }
|
|
|
+ marker.setSubject(subjectService.find(marker.getExamId(), marker.getSubjectCode()));
|
|
|
}
|
|
|
}
|
|
|
model.addAttribute("query", query);
|
|
@@ -123,32 +121,20 @@ public class ExamMarkerController extends BaseParameterController {
|
|
|
subject = subjectService.find(examId, query.getSubjectCode());
|
|
|
} else if (subjectList.size() > 0) {
|
|
|
subject = subjectList.get(0);
|
|
|
- query.setSubjectCode(subject.getCode());
|
|
|
- }
|
|
|
- List<Marker> markers = markerService.findByExamAndSubject(examId, subject.getCode());
|
|
|
- List<Marker> commonMarkers = markerService.findExamAndCommon(examId, true);
|
|
|
- List<MarkerVO> markerVOs = new ArrayList<MarkerVO>();
|
|
|
- Set<Integer> set = new HashSet<>();
|
|
|
- for (Marker marker : commonMarkers) {
|
|
|
- set.add(marker.getId());
|
|
|
- }
|
|
|
- for (Marker marker : markers) {
|
|
|
- set.add(marker.getId());
|
|
|
}
|
|
|
- for (Integer id : set) {
|
|
|
- Marker marker = markerService.findById(id);
|
|
|
- marker.setSubject(subject);
|
|
|
- MarkLibrarySearchQuery query2 = new MarkLibrarySearchQuery();
|
|
|
- query2.setExamId(examId);
|
|
|
- query2.setSubjectCode(
|
|
|
- query.getSubjectCode() != null ? query.getSubjectCode() : marker.getSubjectCode());
|
|
|
- query2.setMarkerId(marker.getId());
|
|
|
- query2.setStatus(LibraryStatus.MARKED);
|
|
|
- marker.setMarkedCount(libraryService.countByQuery(query2));
|
|
|
- marker.setCurrentCount(taskService.countCurrent(marker));
|
|
|
- MarkerVO markerVO = new MarkerVO(marker);
|
|
|
- markerVO = getMarkerInfo(markerVO, query2.getSubjectCode());
|
|
|
- markerVOs.add(markerVO);
|
|
|
+ Set<MarkerVO> markerVOs = new HashSet<MarkerVO>();
|
|
|
+ MarkLibrarySearchQuery query2 = new MarkLibrarySearchQuery();
|
|
|
+ query2.setExamId(examId);
|
|
|
+ query2.setSubjectCode(subjectCode);
|
|
|
+ query2.setStatus(LibraryStatus.MARKED);
|
|
|
+ for (Marker marker : subject.getMarkers()) {
|
|
|
+ marker.setSubject(subject);
|
|
|
+ query2.setMarkerId(marker.getId());
|
|
|
+ marker.setMarkedCount(libraryService.countByQuery(query2));
|
|
|
+ marker.setCurrentCount(taskService.countCurrent(marker));
|
|
|
+ MarkerVO markerVO = new MarkerVO(marker);
|
|
|
+ markerVO = getMarkerInfo(markerVO, query2.getSubjectCode());
|
|
|
+ markerVOs.add(markerVO);
|
|
|
}
|
|
|
model.addAttribute("markerVOs", markerVOs);
|
|
|
model.addAttribute("query", query);
|
|
@@ -212,7 +198,7 @@ public class ExamMarkerController extends BaseParameterController {
|
|
|
public String createInit(Model model, HttpServletRequest request) {
|
|
|
int examId = getSessionExamId(request);
|
|
|
if (examId > 0) {
|
|
|
- model.addAttribute("subjectList", getMarkExamSubject(examId));
|
|
|
+// model.addAttribute("subjectList", getMarkExamSubject(examId));
|
|
|
return "modules/exam/param/markerCreate";
|
|
|
} else {
|
|
|
return "redirect:/admin/exam/list";
|
|
@@ -221,14 +207,11 @@ public class ExamMarkerController extends BaseParameterController {
|
|
|
|
|
|
@RequestMapping(value = "/batch-create", method = RequestMethod.POST)
|
|
|
public ModelAndView create(HttpServletRequest request, @RequestParam String subjectCode,
|
|
|
- @RequestParam Integer count, @RequestParam(required = false) String password,
|
|
|
- @RequestParam Boolean common) {
|
|
|
+ @RequestParam Integer count, @RequestParam(required = false) String password) {
|
|
|
int examId = getSessionExamId(request);
|
|
|
ModelAndView view = new ModelAndView("redirect:/admin/exam-param/marker");
|
|
|
if (examId > 0 && count > 0) {
|
|
|
- if (common.booleanValue()) {
|
|
|
- markerService.batchCreateCommon(examId, count, password);
|
|
|
- } else if (!"all".equals(subjectCode)) {
|
|
|
+ if (!"all".equals(subjectCode)) {
|
|
|
markerService.batchCreate(subjectService.find(examId, subjectCode), count, password);
|
|
|
} else {
|
|
|
List<ExamSubject> subjectList = getMarkExamSubject(examId);
|
|
@@ -244,11 +227,11 @@ public class ExamMarkerController extends BaseParameterController {
|
|
|
public String delete(@RequestParam Integer id) {
|
|
|
Marker marker = markerService.findById(id);
|
|
|
if (marker != null) {
|
|
|
- if (!marker.isCommon() && isMarking(marker.getExamId(), marker.getSubjectCode())) {
|
|
|
- } else {
|
|
|
+// if (!marker.isCommon() && isMarking(marker.getExamId(), marker.getSubjectCode())) {
|
|
|
+// } else {
|
|
|
libraryService.resetByMarker(marker);
|
|
|
markerService.deleteById(id);
|
|
|
- }
|
|
|
+// }
|
|
|
}
|
|
|
return "redirect:/admin/exam-param/marker?repage";
|
|
|
}
|
|
@@ -259,7 +242,8 @@ public class ExamMarkerController extends BaseParameterController {
|
|
|
Marker marker = markerService.findById(id);
|
|
|
JSONObject obj = new JSONObject();
|
|
|
if (marker != null) {
|
|
|
- if (!marker.isCommon() && isMarking(marker.getExamId(), marker.getSubjectCode())) {
|
|
|
+// if (!marker.isCommon() && isMarking(marker.getExamId(), marker.getSubjectCode())) {
|
|
|
+ if (isMarking(marker.getExamId(), marker.getSubjectCode())) {
|
|
|
obj.accumulate("success", false);
|
|
|
obj.accumulate("message", "评卷已开始,不能进行修改");
|
|
|
} else {
|
|
@@ -457,6 +441,27 @@ public class ExamMarkerController extends BaseParameterController {
|
|
|
}
|
|
|
return obj;
|
|
|
}
|
|
|
+
|
|
|
+ @RequestMapping(value = "/show", method = RequestMethod.POST)
|
|
|
+ @ResponseBody
|
|
|
+ public JSONObject show(@RequestParam Integer id) {
|
|
|
+ Marker marker = markerService.findById(id);
|
|
|
+ JSONObject obj = new JSONObject();
|
|
|
+ if (marker != null) {
|
|
|
+ StringBuilder content = new StringBuilder();
|
|
|
+ for (ExamSubject subject : marker.getExamSubjects()) {
|
|
|
+ content.append(subject.getCode()).append("-");
|
|
|
+ content.append(subject.getName());
|
|
|
+ content.append(" ");
|
|
|
+ }
|
|
|
+ obj.accumulate("content", content.toString());
|
|
|
+ obj.accumulate("success", true);
|
|
|
+ } else {
|
|
|
+ obj.accumulate("success", false);
|
|
|
+ obj.accumulate("message", "该评卷员不存在");
|
|
|
+ }
|
|
|
+ return obj;
|
|
|
+ }
|
|
|
|
|
|
@RequestMapping(value = "/template")
|
|
|
public String importFileTemplate(HttpServletResponse response, RedirectAttributes redirectAttributes) {
|
|
@@ -489,7 +494,6 @@ public class ExamMarkerController extends BaseParameterController {
|
|
|
@RequestMapping(value = "/import", method = RequestMethod.POST)
|
|
|
public String importFile(HttpServletRequest request, MultipartFile file, RedirectAttributes redirectAttributes) {
|
|
|
int examId = getSessionExamId(request);
|
|
|
- // Exam exam = examService.findById(examId);
|
|
|
try {
|
|
|
int successNum = 0;
|
|
|
int failureNum = 0;
|
|
@@ -498,42 +502,58 @@ public class ExamMarkerController extends BaseParameterController {
|
|
|
List<Marker> list = ei.getDataList(Marker.class);
|
|
|
List<Marker> saveList = new LinkedList<Marker>();
|
|
|
Map<String, Marker> saveMap = new HashMap<String, Marker>();
|
|
|
- Map<String, ExamSubject> current = null;
|
|
|
- current = new HashMap<String, ExamSubject>();
|
|
|
- List<ExamSubject> list2 = subjectService.list(examId);
|
|
|
- for (ExamSubject s : list2) {
|
|
|
- current.put(s.getCode(), s);
|
|
|
- }
|
|
|
+ Map<String, ExamSubject> current = new HashMap<String, ExamSubject>();
|
|
|
for (Marker marker : list) {
|
|
|
- String password = "";
|
|
|
- if (StringUtils.isBlank(marker.getSubjectCode()) || StringUtils.isBlank(marker.getLoginName())) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- marker.setExamId(examId);
|
|
|
- marker.setName(marker.getLoginName());
|
|
|
- marker.setEnable(true);
|
|
|
- marker.setCommon(false);
|
|
|
- if (StringUtils.isBlank(marker.getPassword())) {
|
|
|
- Random random = new Random();
|
|
|
- for (int i = 0; i < 6; i++) {
|
|
|
- password += random.nextInt(10);
|
|
|
+ ExamSubject examSubject = current.get(marker.getSubjectCode());
|
|
|
+ if(examSubject == null){
|
|
|
+ examSubject = subjectService.find(examId, marker.getSubjectCode());
|
|
|
+ if(examSubject == null){
|
|
|
+ failureMsg.append("<br/>评卷员 " + marker.getLoginName() + "," + MarkerExcelError.MARKERNOTCODE.getName());
|
|
|
+ failureNum++;
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ examSubject.setMarkers(new HashSet<Marker>());
|
|
|
+ }
|
|
|
+ Set<Marker> markers = examSubject.getMarkers();
|
|
|
+ Marker old = markerService.findByLoginName(marker.getLoginName());
|
|
|
+ if(old!=null){
|
|
|
+ markers.add(old);
|
|
|
+ }else{
|
|
|
+ String password = "";
|
|
|
+ if (StringUtils.isBlank(marker.getSubjectCode()) || StringUtils.isBlank(marker.getLoginName())) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ marker.setExamId(examId);
|
|
|
+ marker.setName(marker.getLoginName());
|
|
|
+ marker.setEnable(true);
|
|
|
+ if (StringUtils.isBlank(marker.getPassword())) {
|
|
|
+ Random random = new Random();
|
|
|
+ for (int i = 0; i < 6; i++) {
|
|
|
+ password += random.nextInt(10);
|
|
|
+ }
|
|
|
+ marker.setPassword(password);
|
|
|
+ }
|
|
|
+ if (marker.getPassword().length() > 0 && marker.getPassword().length() < 4) {
|
|
|
+ failureMsg.append("<br/>评卷员 " + marker.getLoginName() + "," + MarkerExcelError.MARKERPWERROR.getName());
|
|
|
+ failureNum++;
|
|
|
}
|
|
|
- marker.setPassword(password);
|
|
|
- }
|
|
|
- MarkerExcelError markerExcelError = checkLongNameAndPassword(marker, current, saveMap);
|
|
|
- if (markerExcelError.equals(MarkerExcelError.MARKER)) {
|
|
|
- saveList.add(marker);
|
|
|
- saveMap.put(marker.getLoginName(), marker);
|
|
|
- } else {
|
|
|
- failureMsg.append("<br/>评卷员 " + marker.getLoginName() + "," + markerExcelError.getName());
|
|
|
- failureNum++;
|
|
|
- }
|
|
|
+ saveMap.put(marker.getLoginName(), marker);
|
|
|
+ markers.add(marker);
|
|
|
+ }
|
|
|
+ examSubject.setMarkers(markers);
|
|
|
+ current.put(examSubject.getCode(), examSubject);
|
|
|
+ }
|
|
|
+ for (Marker m : saveMap.values()) {
|
|
|
+ saveList.add(m);
|
|
|
}
|
|
|
successNum = markerService.batchSave(saveList);
|
|
|
+ for (ExamSubject s : current.values()) {
|
|
|
+ subjectService.save(s);
|
|
|
+ }
|
|
|
if (failureNum > 0) {
|
|
|
failureMsg.insert(0, ",失败 " + failureNum + " 条记录!");
|
|
|
}
|
|
|
- addMessage(redirectAttributes, "已成功导入 " + successNum + " 条评卷员" + failureMsg);
|
|
|
+ addMessage(redirectAttributes, "已成功导入 " + current.size() + " 条科目,新增 " + successNum + " 条评卷员 " + failureMsg);
|
|
|
} catch (Exception e) {
|
|
|
log.error("Batch import marker error!", e);
|
|
|
addMessage(redirectAttributes, "导入评卷员失败!失败信息:" + e.getMessage());
|
|
@@ -554,10 +574,12 @@ public class ExamMarkerController extends BaseParameterController {
|
|
|
List<MarkerDTO> list = ei.getDataList(MarkerDTO.class);
|
|
|
List<Marker> saveList = new LinkedList<Marker>();
|
|
|
Map<String, Marker> current = null;
|
|
|
- List<Marker> list2 = markerService.findCommon(false);
|
|
|
- if (list2.size() < 10000) {
|
|
|
+ MarkerSearchQuery query = new MarkerSearchQuery();
|
|
|
+ query.setPageSize(Integer.MAX_VALUE);
|
|
|
+ query = markerService.findByQuery(query);
|
|
|
+ if (query.getCurrentCount() > 0 && query.getCurrentCount() <10000) {
|
|
|
current = new HashMap<String, Marker>();
|
|
|
- for (Marker s : list2) {
|
|
|
+ for (Marker s : query.getResult()) {
|
|
|
current.put(s.getLoginName(), s);
|
|
|
}
|
|
|
}
|
|
@@ -597,33 +619,6 @@ public class ExamMarkerController extends BaseParameterController {
|
|
|
return "redirect:" + "/admin/exam-param/marker";
|
|
|
}
|
|
|
|
|
|
- private MarkerExcelError checkLongNameAndPassword(Marker marker, Map<String, ExamSubject> current,
|
|
|
- Map<String, Marker> saveMap) {
|
|
|
- Marker previous = null;
|
|
|
-
|
|
|
- if (current != null && current.get(marker.getSubjectCode()) == null) {
|
|
|
- return MarkerExcelError.MARKERNOTCODE;
|
|
|
- }
|
|
|
- if (saveMap != null) {
|
|
|
- previous = saveMap.get(marker.getLoginName());
|
|
|
- }
|
|
|
-
|
|
|
- if (previous != null) {
|
|
|
- return MarkerExcelError.MARKERED;
|
|
|
- }
|
|
|
-
|
|
|
- previous = markerService.findByLoginName(marker.getLoginName());
|
|
|
-
|
|
|
- if (marker.getPassword().length() > 0 && marker.getPassword().length() < 4) {
|
|
|
- return MarkerExcelError.MARKERPWERROR;
|
|
|
- }
|
|
|
-
|
|
|
- if (previous == null) {
|
|
|
- return MarkerExcelError.MARKER;
|
|
|
- }
|
|
|
- return MarkerExcelError.MARKERED;
|
|
|
- }
|
|
|
-
|
|
|
// 校验excel中数据
|
|
|
public MarkerExcelError checkExcelData(MarkerDTO markerDTO, Map<String, Marker> current) {
|
|
|
if (markerDTO != null) {
|