|
@@ -22,11 +22,13 @@ import org.springframework.web.bind.annotation.ResponseBody;
|
|
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
|
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
|
|
|
|
|
import cn.com.qmth.stmms.admin.vo.MarkerVO;
|
|
import cn.com.qmth.stmms.admin.vo.MarkerVO;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.model.Exam;
|
|
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.MarkGroup;
|
|
import cn.com.qmth.stmms.biz.exam.model.MarkGroup;
|
|
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.query.MarkerSearchQuery;
|
|
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.ExamService;
|
|
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.MarkGroupService;
|
|
import cn.com.qmth.stmms.biz.exam.service.MarkGroupService;
|
|
@@ -42,6 +44,7 @@ import cn.com.qmth.stmms.biz.mark.service.TrialService;
|
|
import cn.com.qmth.stmms.biz.mark.thread.MarkQualityThread;
|
|
import cn.com.qmth.stmms.biz.mark.thread.MarkQualityThread;
|
|
import cn.com.qmth.stmms.common.auth.annotation.RoleRequire;
|
|
import cn.com.qmth.stmms.common.auth.annotation.RoleRequire;
|
|
import cn.com.qmth.stmms.common.domain.WebUser;
|
|
import cn.com.qmth.stmms.common.domain.WebUser;
|
|
|
|
+import cn.com.qmth.stmms.common.enums.ExamType;
|
|
import cn.com.qmth.stmms.common.enums.LibraryStatus;
|
|
import cn.com.qmth.stmms.common.enums.LibraryStatus;
|
|
import cn.com.qmth.stmms.common.enums.LockType;
|
|
import cn.com.qmth.stmms.common.enums.LockType;
|
|
import cn.com.qmth.stmms.common.enums.MarkStatus;
|
|
import cn.com.qmth.stmms.common.enums.MarkStatus;
|
|
@@ -85,6 +88,9 @@ public class MarkQualityController extends BaseExamController {
|
|
@Autowired
|
|
@Autowired
|
|
private ExamStudentService studentService;
|
|
private ExamStudentService studentService;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private ExamService examService;
|
|
|
|
+
|
|
@Value("${slice.image.server}")
|
|
@Value("${slice.image.server}")
|
|
private String sliceServer;
|
|
private String sliceServer;
|
|
|
|
|
|
@@ -94,6 +100,9 @@ public class MarkQualityController extends BaseExamController {
|
|
@Value("${card.server}")
|
|
@Value("${card.server}")
|
|
private String cardServer;
|
|
private String cardServer;
|
|
|
|
|
|
|
|
+ @Value("${json.server}")
|
|
|
|
+ private String jsonServer;
|
|
|
|
+
|
|
@RequestMapping
|
|
@RequestMapping
|
|
public String list(Model model, HttpServletRequest request, MarkerSearchQuery query) {
|
|
public String list(Model model, HttpServletRequest request, MarkerSearchQuery query) {
|
|
int examId = getSessionExamId(request);
|
|
int examId = getSessionExamId(request);
|
|
@@ -114,8 +123,10 @@ public class MarkQualityController extends BaseExamController {
|
|
}
|
|
}
|
|
if (query.getSubjectCode() != null && query.getGroupNumber() != null) {
|
|
if (query.getSubjectCode() != null && query.getGroupNumber() != null) {
|
|
query = markerService.findByQuery(query);
|
|
query = markerService.findByQuery(query);
|
|
- model.addAttribute("running",
|
|
|
|
- lockService.isLocked(LockType.BATCH_QUALITY, getLockKey(examId, query.getSubjectCode(), query.getGroupNumber())));
|
|
|
|
|
|
+ model.addAttribute(
|
|
|
|
+ "running",
|
|
|
|
+ lockService.isLocked(LockType.BATCH_QUALITY,
|
|
|
|
+ getLockKey(examId, query.getSubjectCode(), query.getGroupNumber())));
|
|
}
|
|
}
|
|
model.addAttribute("query", query);
|
|
model.addAttribute("query", query);
|
|
model.addAttribute("subjectList", subjectList);
|
|
model.addAttribute("subjectList", subjectList);
|
|
@@ -124,15 +135,15 @@ public class MarkQualityController extends BaseExamController {
|
|
}
|
|
}
|
|
|
|
|
|
@RequestMapping("/update")
|
|
@RequestMapping("/update")
|
|
- public String update(HttpServletRequest request, RedirectAttributes redirectAttributes, @RequestParam String subjectCode,
|
|
|
|
- @RequestParam Integer groupNumber) {
|
|
|
|
|
|
+ public String update(HttpServletRequest request, RedirectAttributes redirectAttributes,
|
|
|
|
+ @RequestParam String subjectCode, @RequestParam Integer groupNumber) {
|
|
int examId = getSessionExamId(request);
|
|
int examId = getSessionExamId(request);
|
|
MarkGroup group = groupService.findOne(examId, subjectCode, groupNumber);
|
|
MarkGroup group = groupService.findOne(examId, subjectCode, groupNumber);
|
|
if (group != null) {
|
|
if (group != null) {
|
|
final String lockKey = getLockKey(examId, subjectCode, groupNumber);
|
|
final String lockKey = getLockKey(examId, subjectCode, groupNumber);
|
|
if (lockService.trylock(LockType.BATCH_QUALITY, lockKey)) {
|
|
if (lockService.trylock(LockType.BATCH_QUALITY, lockKey)) {
|
|
- taskExecutor.submit(new MarkQualityThread(markerService.findByExamAndSubjectAndGroup(examId, subjectCode, groupNumber),
|
|
|
|
- lockKey));
|
|
|
|
|
|
+ taskExecutor.submit(new MarkQualityThread(markerService.findByExamAndSubjectAndGroup(examId,
|
|
|
|
+ subjectCode, groupNumber), lockKey));
|
|
}
|
|
}
|
|
redirectAttributes.addAttribute("groupNumber", groupNumber);
|
|
redirectAttributes.addAttribute("groupNumber", groupNumber);
|
|
}
|
|
}
|
|
@@ -145,16 +156,18 @@ public class MarkQualityController extends BaseExamController {
|
|
}
|
|
}
|
|
|
|
|
|
@RequestMapping("/chart")
|
|
@RequestMapping("/chart")
|
|
- public String chart(HttpServletRequest request, Model model, @RequestParam String subjectCode, @RequestParam Integer groupNumber) {
|
|
|
|
|
|
+ public String chart(HttpServletRequest request, Model model, @RequestParam String subjectCode,
|
|
|
|
+ @RequestParam Integer groupNumber) {
|
|
int examId = getSessionExamId(request);
|
|
int examId = getSessionExamId(request);
|
|
MarkGroup group = groupService.findOne(examId, subjectCode, groupNumber);
|
|
MarkGroup group = groupService.findOne(examId, subjectCode, groupNumber);
|
|
if (group != null) {
|
|
if (group != null) {
|
|
List<MarkerVO> list = new ArrayList<MarkerVO>();
|
|
List<MarkerVO> list = new ArrayList<MarkerVO>();
|
|
List<Marker> markers = markerService.findByExamAndSubjectAndGroup(examId, subjectCode, groupNumber);
|
|
List<Marker> markers = markerService.findByExamAndSubjectAndGroup(examId, subjectCode, groupNumber);
|
|
- List<Double> scores = libraryService.findScore(examId, subjectCode, groupNumber, LibraryStatus.MARKED, LibraryStatus.INSPECTED);
|
|
|
|
|
|
+ List<Double> scores = libraryService.findScore(examId, subjectCode, groupNumber, LibraryStatus.MARKED,
|
|
|
|
+ LibraryStatus.INSPECTED);
|
|
for (Marker marker : markers) {
|
|
for (Marker marker : markers) {
|
|
- List<Object[]> libraries = libraryService
|
|
|
|
- .findScoreCount(examId, subjectCode, groupNumber, marker.getId(), LibraryStatus.MARKED, LibraryStatus.INSPECTED);
|
|
|
|
|
|
+ List<Object[]> libraries = libraryService.findScoreCount(examId, subjectCode, groupNumber,
|
|
|
|
+ marker.getId(), LibraryStatus.MARKED, LibraryStatus.INSPECTED);
|
|
Map<Double, Long> scoreCount = new HashMap<Double, Long>();
|
|
Map<Double, Long> scoreCount = new HashMap<Double, Long>();
|
|
for (Object[] array : libraries) {
|
|
for (Object[] array : libraries) {
|
|
Double score = (Double) array[0];
|
|
Double score = (Double) array[0];
|
|
@@ -168,8 +181,8 @@ public class MarkQualityController extends BaseExamController {
|
|
vo.setScoreCount(scoreCount);
|
|
vo.setScoreCount(scoreCount);
|
|
list.add(vo);
|
|
list.add(vo);
|
|
}
|
|
}
|
|
- group.setQuestionList(
|
|
|
|
- questionService.findByExamAndSubjectAndObjectiveAndGroupNumber(examId, subjectCode, false, group.getNumber()));
|
|
|
|
|
|
+ group.setQuestionList(questionService.findByExamAndSubjectAndObjectiveAndGroupNumber(examId, subjectCode,
|
|
|
|
+ false, group.getNumber()));
|
|
model.addAttribute("scores", scores);
|
|
model.addAttribute("scores", scores);
|
|
model.addAttribute("markers", list);
|
|
model.addAttribute("markers", list);
|
|
model.addAttribute("group", group);
|
|
model.addAttribute("group", group);
|
|
@@ -182,13 +195,14 @@ public class MarkQualityController extends BaseExamController {
|
|
|
|
|
|
@RequestMapping("/getChart")
|
|
@RequestMapping("/getChart")
|
|
@ResponseBody
|
|
@ResponseBody
|
|
- public List<MarkerVO> getChart(HttpServletRequest request, @RequestParam String subjectCode, @RequestParam Integer groupNumber) {
|
|
|
|
|
|
+ public List<MarkerVO> getChart(HttpServletRequest request, @RequestParam String subjectCode,
|
|
|
|
+ @RequestParam Integer groupNumber) {
|
|
int examId = getSessionExamId(request);
|
|
int examId = getSessionExamId(request);
|
|
List<MarkerVO> list = new ArrayList<MarkerVO>();
|
|
List<MarkerVO> list = new ArrayList<MarkerVO>();
|
|
List<Marker> markers = markerService.findByExamAndSubjectAndGroup(examId, subjectCode, groupNumber);
|
|
List<Marker> markers = markerService.findByExamAndSubjectAndGroup(examId, subjectCode, groupNumber);
|
|
for (Marker marker : markers) {
|
|
for (Marker marker : markers) {
|
|
- List<Object[]> libraries = libraryService
|
|
|
|
- .findScoreCount(examId, subjectCode, groupNumber, marker.getId(), LibraryStatus.MARKED, LibraryStatus.INSPECTED);
|
|
|
|
|
|
+ List<Object[]> libraries = libraryService.findScoreCount(examId, subjectCode, groupNumber, marker.getId(),
|
|
|
|
+ LibraryStatus.MARKED, LibraryStatus.INSPECTED);
|
|
MarkLibrarySearchQuery query = new MarkLibrarySearchQuery();
|
|
MarkLibrarySearchQuery query = new MarkLibrarySearchQuery();
|
|
query.setMarkerId(marker.getId());
|
|
query.setMarkerId(marker.getId());
|
|
query.addStatus(LibraryStatus.MARKED);
|
|
query.addStatus(LibraryStatus.MARKED);
|
|
@@ -216,7 +230,8 @@ public class MarkQualityController extends BaseExamController {
|
|
|
|
|
|
@RequestMapping("/batchProcess")
|
|
@RequestMapping("/batchProcess")
|
|
@RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER })
|
|
@RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER })
|
|
- public String batchProcess(Model model, HttpServletRequest request, @RequestParam Integer markerId, @RequestParam Double markerScore) {
|
|
|
|
|
|
+ public String batchProcess(Model model, HttpServletRequest request, @RequestParam Integer markerId,
|
|
|
|
+ @RequestParam Double markerScore) {
|
|
int examId = getSessionExamId(request);
|
|
int examId = getSessionExamId(request);
|
|
Marker marker = markerService.findById(markerId);
|
|
Marker marker = markerService.findById(markerId);
|
|
WebUser wu = RequestUtils.getWebUser(request);
|
|
WebUser wu = RequestUtils.getWebUser(request);
|
|
@@ -230,18 +245,24 @@ public class MarkQualityController extends BaseExamController {
|
|
model.addAttribute("sheetServer", sheetServer);
|
|
model.addAttribute("sheetServer", sheetServer);
|
|
model.addAttribute("sliceServer", sliceServer);
|
|
model.addAttribute("sliceServer", sliceServer);
|
|
model.addAttribute("cardServer", cardServer);
|
|
model.addAttribute("cardServer", cardServer);
|
|
|
|
+ model.addAttribute("jsonServer", jsonServer);
|
|
model.addAttribute("subject", subjectService.find(group.getExamId(), group.getSubjectCode()));
|
|
model.addAttribute("subject", subjectService.find(group.getExamId(), group.getSubjectCode()));
|
|
model.addAttribute("group", group);
|
|
model.addAttribute("group", group);
|
|
model.addAttribute("markerId", markerId);
|
|
model.addAttribute("markerId", markerId);
|
|
model.addAttribute("markerScore", markerScore);
|
|
model.addAttribute("markerScore", markerScore);
|
|
|
|
+ Exam exam = examService.findById(examId);
|
|
|
|
+ if (ExamType.MULTI_MEDIA.equals(exam.getType())) {
|
|
|
|
+ return "modules/exam/qualityProcessJson";
|
|
|
|
+ }
|
|
return "modules/exam/qualityProcess";
|
|
return "modules/exam/qualityProcess";
|
|
}
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "/history", method = RequestMethod.POST)
|
|
@RequestMapping(value = "/history", method = RequestMethod.POST)
|
|
@ResponseBody
|
|
@ResponseBody
|
|
@RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER })
|
|
@RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER })
|
|
- public List<Task> getTask(HttpServletRequest request, @RequestParam Integer markerId, @RequestParam Double markerScore,
|
|
|
|
- @RequestParam(required = false) Integer pageNumber, @RequestParam(required = false) Integer pageSize) {
|
|
|
|
|
|
+ public List<Task> getTask(HttpServletRequest request, @RequestParam Integer markerId,
|
|
|
|
+ @RequestParam Double markerScore, @RequestParam(required = false) Integer pageNumber,
|
|
|
|
+ @RequestParam(required = false) Integer pageSize) {
|
|
Marker marker = markerService.findById(markerId);
|
|
Marker marker = markerService.findById(markerId);
|
|
List<Task> list = new ArrayList<>();
|
|
List<Task> list = new ArrayList<>();
|
|
MarkGroup group = groupService.findOne(marker.getExamId(), marker.getSubjectCode(), marker.getGroupNumber());
|
|
MarkGroup group = groupService.findOne(marker.getExamId(), marker.getSubjectCode(), marker.getGroupNumber());
|
|
@@ -272,9 +293,8 @@ public class MarkQualityController extends BaseExamController {
|
|
} else if (group != null && group.getStatus() == MarkStatus.TRIAL) {
|
|
} else if (group != null && group.getStatus() == MarkStatus.TRIAL) {
|
|
// 试评查找给分历史记录
|
|
// 试评查找给分历史记录
|
|
List<TrialHistory> historyList = new ArrayList<TrialHistory>();
|
|
List<TrialHistory> historyList = new ArrayList<TrialHistory>();
|
|
- historyList = trialService
|
|
|
|
- .findHistory(marker.getExamId(), marker.getSubjectCode(), marker.getGroupNumber(), marker.getId(), pageNumber, pageSize,
|
|
|
|
- null, markerScore);
|
|
|
|
|
|
+ historyList = trialService.findHistory(marker.getExamId(), marker.getSubjectCode(),
|
|
|
|
+ marker.getGroupNumber(), marker.getId(), pageNumber, pageSize, null, markerScore);
|
|
for (TrialHistory history : historyList) {
|
|
for (TrialHistory history : historyList) {
|
|
TrialLibrary library = trialService.findLibrary(history.getLibraryId());
|
|
TrialLibrary library = trialService.findLibrary(history.getLibraryId());
|
|
if (library != null) {
|
|
if (library != null) {
|