|
@@ -105,40 +105,39 @@ public class MarkQualityController extends BaseExamController {
|
|
|
List<MarkGroup> groupList = groupService.findByExamAndSubject(examId, query.getSubjectCode());
|
|
|
if (query.getSubjectCode() != null) {
|
|
|
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())));
|
|
|
for (Marker marker : query.getResult()) {
|
|
|
marker.setUser(userService.findById(marker.getUserId()));
|
|
|
MarkGroup group = groupService.findOne(examId, marker.getSubjectCode(), marker.getGroupNumber());
|
|
|
group.setQuestionList(questionService.findByExamAndSubjectAndObjectiveAndGroupNumber(examId,
|
|
|
marker.getSubjectCode(), false, group.getNumber()));
|
|
|
marker.setGroup(group);
|
|
|
- if(marker.getFinishCount()==null) {
|
|
|
- marker.setFinishCount(0);
|
|
|
+ if (marker.getFinishCount() == null) {
|
|
|
+ marker.setFinishCount(0);
|
|
|
}
|
|
|
- if(marker.getFinishCountNa()==null) {
|
|
|
- marker.setFinishCountNa(0);
|
|
|
+ if (marker.getFinishCountNa() == null) {
|
|
|
+ marker.setFinishCountNa(0);
|
|
|
}
|
|
|
- if(marker.getRejectCount()==null) {
|
|
|
- marker.setRejectCount(0);
|
|
|
+ if (marker.getRejectCount() == null) {
|
|
|
+ marker.setRejectCount(0);
|
|
|
}
|
|
|
- if(query.getNoArbitrate()!=null&&query.getNoArbitrate()) {
|
|
|
- marker.setFinishCount(marker.getFinishCountNa());
|
|
|
- marker.setValidCount(marker.getValidCountNa());
|
|
|
- marker.setAvgScore(marker.getAvgScoreNa());
|
|
|
- marker.setAvgSpeed(marker.getAvgSpeedNa());
|
|
|
- marker.setStdevScore(marker.getStdevScoreNa());
|
|
|
- marker.setArbitrateCount(0);
|
|
|
- marker.setArbitrateRatio("0%");
|
|
|
- }else {
|
|
|
- marker.setArbitrateCount(marker.getFinishCount()-marker.getFinishCountNa());
|
|
|
- if(marker.getFinishCount()==0) {
|
|
|
- marker.setArbitrateRatio("0%");
|
|
|
- }else {
|
|
|
- marker.setArbitrateRatio(Calculator.percentage(marker.getArbitrateCount(), marker.getFinishCount(), 2));
|
|
|
- }
|
|
|
+ if (query.getNoArbitrate() != null && query.getNoArbitrate()) {
|
|
|
+ marker.setFinishCount(marker.getFinishCountNa());
|
|
|
+ marker.setValidCount(marker.getValidCountNa());
|
|
|
+ marker.setAvgScore(marker.getAvgScoreNa());
|
|
|
+ marker.setAvgSpeed(marker.getAvgSpeedNa());
|
|
|
+ marker.setStdevScore(marker.getStdevScoreNa());
|
|
|
+ marker.setArbitrateCount(0);
|
|
|
+ marker.setArbitrateRatio("0%");
|
|
|
+ } else {
|
|
|
+ marker.setArbitrateCount(marker.getFinishCount() - marker.getFinishCountNa());
|
|
|
+ if (marker.getFinishCount() == 0) {
|
|
|
+ marker.setArbitrateRatio("0%");
|
|
|
+ } else {
|
|
|
+ marker.setArbitrateRatio(
|
|
|
+ Calculator.percentage(marker.getArbitrateCount(), marker.getFinishCount(), 2));
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -157,8 +156,8 @@ public class MarkQualityController extends BaseExamController {
|
|
|
if (group != null) {
|
|
|
final String lockKey = getLockKey(examId, subjectCode, groupNumber);
|
|
|
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);
|
|
|
}
|
|
@@ -173,17 +172,35 @@ public class MarkQualityController extends BaseExamController {
|
|
|
@Logging(menu = "查询给分曲线", type = LogType.QUERY)
|
|
|
@RequestMapping("/chart")
|
|
|
public String chart(HttpServletRequest request, Model model, @RequestParam String subjectCode,
|
|
|
- @RequestParam Integer groupNumber) {
|
|
|
+ @RequestParam Integer groupNumber, @RequestParam(required = false) Boolean marked,
|
|
|
+ @RequestParam(required = false) Boolean noArbitrate) {
|
|
|
int examId = getSessionExamId(request);
|
|
|
MarkGroup group = groupService.findOne(examId, subjectCode, groupNumber);
|
|
|
if (group != null) {
|
|
|
List<MarkerVO> list = new ArrayList<MarkerVO>();
|
|
|
- List<Marker> markers = markerService.findByExamAndSubjectAndGroup(examId, subjectCode, groupNumber);
|
|
|
- List<Double> scores = libraryService.findScore(examId, subjectCode, groupNumber, LibraryStatus.MARKED,
|
|
|
- LibraryStatus.INSPECTED);
|
|
|
+ List<Marker> markers = null;
|
|
|
+ if (marked != null && marked) {
|
|
|
+ markers = markerService.findByExamAndSubjectAndGroupMarked(examId, subjectCode, groupNumber);
|
|
|
+ } else {
|
|
|
+ markers = markerService.findByExamAndSubjectAndGroup(examId, subjectCode, groupNumber);
|
|
|
+ }
|
|
|
+ List<Double> scores = null;
|
|
|
+ if (noArbitrate != null && noArbitrate) {
|
|
|
+ scores = libraryService.findScore(examId, subjectCode, groupNumber, LibraryStatus.MARKED,
|
|
|
+ LibraryStatus.INSPECTED);
|
|
|
+ } else {
|
|
|
+ scores = libraryService.findScore(examId, subjectCode, groupNumber, LibraryStatus.MARKED,
|
|
|
+ LibraryStatus.INSPECTED, LibraryStatus.ARBITRATED);
|
|
|
+ }
|
|
|
for (Marker marker : markers) {
|
|
|
- List<Object[]> libraries = libraryService.findScoreCount(examId, subjectCode, groupNumber,
|
|
|
- marker.getId(), LibraryStatus.MARKED, LibraryStatus.INSPECTED);
|
|
|
+ List<Object[]> libraries = null;
|
|
|
+ if (noArbitrate != null && noArbitrate) {
|
|
|
+ libraries = libraryService.findScoreCount(examId, subjectCode, groupNumber, marker.getId(),
|
|
|
+ LibraryStatus.MARKED, LibraryStatus.INSPECTED);
|
|
|
+ } else {
|
|
|
+ libraries = libraryService.findScoreCount(examId, subjectCode, groupNumber, marker.getId(),
|
|
|
+ LibraryStatus.MARKED, LibraryStatus.INSPECTED, LibraryStatus.ARBITRATED);
|
|
|
+ }
|
|
|
Map<Double, Long> scoreCount = new HashMap<Double, Long>();
|
|
|
for (Object[] array : libraries) {
|
|
|
Double score = (Double) array[0];
|
|
@@ -198,8 +215,9 @@ public class MarkQualityController extends BaseExamController {
|
|
|
vo.setScoreCount(scoreCount);
|
|
|
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("markers", list);
|
|
|
model.addAttribute("group", group);
|
|
@@ -207,23 +225,40 @@ public class MarkQualityController extends BaseExamController {
|
|
|
model.addAttribute("subject", subjectService.find(examId, subjectCode));
|
|
|
model.addAttribute("subjectCode", subjectCode);
|
|
|
model.addAttribute("groupNumber", groupNumber);
|
|
|
+ model.addAttribute("marked", marked);
|
|
|
+ model.addAttribute("noArbitrate", noArbitrate);
|
|
|
return "modules/exam/qualityChart";
|
|
|
}
|
|
|
|
|
|
@RequestMapping("/getChart")
|
|
|
@ResponseBody
|
|
|
public List<MarkerVO> getChart(HttpServletRequest request, @RequestParam String subjectCode,
|
|
|
- @RequestParam Integer groupNumber) {
|
|
|
+ @RequestParam Integer groupNumber, @RequestParam(required = false) Boolean marked,
|
|
|
+ @RequestParam(required = false) Boolean noArbitrate) {
|
|
|
int examId = getSessionExamId(request);
|
|
|
List<MarkerVO> list = new ArrayList<MarkerVO>();
|
|
|
- List<Marker> markers = markerService.findByExamAndSubjectAndGroup(examId, subjectCode, groupNumber);
|
|
|
+ List<Marker> markers = null;
|
|
|
+ if (marked != null && marked) {
|
|
|
+ markers = markerService.findByExamAndSubjectAndGroupMarked(examId, subjectCode, groupNumber);
|
|
|
+ } else {
|
|
|
+ markers = markerService.findByExamAndSubjectAndGroup(examId, subjectCode, groupNumber);
|
|
|
+ }
|
|
|
for (Marker marker : markers) {
|
|
|
- List<Object[]> libraries = libraryService.findScoreCount(examId, subjectCode, groupNumber, marker.getId(),
|
|
|
- LibraryStatus.MARKED, LibraryStatus.INSPECTED);
|
|
|
+ List<Object[]> libraries = null;
|
|
|
+ if (noArbitrate != null && noArbitrate) {
|
|
|
+ libraries = libraryService.findScoreCount(examId, subjectCode, groupNumber, marker.getId(),
|
|
|
+ LibraryStatus.MARKED, LibraryStatus.INSPECTED);
|
|
|
+ } else {
|
|
|
+ libraries = libraryService.findScoreCount(examId, subjectCode, groupNumber, marker.getId(),
|
|
|
+ LibraryStatus.MARKED, LibraryStatus.INSPECTED, LibraryStatus.ARBITRATED);
|
|
|
+ }
|
|
|
MarkLibrarySearchQuery query = new MarkLibrarySearchQuery();
|
|
|
query.setMarkerId(marker.getId());
|
|
|
query.addStatus(LibraryStatus.MARKED);
|
|
|
query.addStatus(LibraryStatus.INSPECTED);
|
|
|
+ if (noArbitrate == null || !noArbitrate) {
|
|
|
+ query.addStatus(LibraryStatus.ARBITRATED);
|
|
|
+ }
|
|
|
long totalCount = libraryService.countByQuery(query);
|
|
|
Map<Double, Double> scorePercent = new HashMap<Double, Double>();
|
|
|
for (Object[] array : libraries) {
|
|
@@ -252,7 +287,7 @@ public class MarkQualityController extends BaseExamController {
|
|
|
@RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER, Role.COLLEGE_ADMIN })
|
|
|
public List<Task> getTask(HttpServletRequest request, @RequestParam Integer markerId,
|
|
|
@RequestParam Double markerScore, @RequestParam(required = false) Integer pageNumber,
|
|
|
- @RequestParam(required = false) Integer pageSize) {
|
|
|
+ @RequestParam(required = false) Integer pageSize, @RequestParam(required = false) Boolean noArbitrate) {
|
|
|
Marker marker = markerService.findById(markerId);
|
|
|
List<Task> list = new ArrayList<>();
|
|
|
MarkGroup group = groupService.findOne(marker.getExamId(), marker.getSubjectCode(), marker.getGroupNumber());
|
|
@@ -264,6 +299,9 @@ public class MarkQualityController extends BaseExamController {
|
|
|
query.setMarkerId(marker.getId());
|
|
|
query.addStatus(LibraryStatus.MARKED);
|
|
|
query.addStatus(LibraryStatus.INSPECTED);
|
|
|
+ if (noArbitrate == null || !noArbitrate) {
|
|
|
+ query.addStatus(LibraryStatus.ARBITRATED);
|
|
|
+ }
|
|
|
query.setGroupNumber(marker.getGroupNumber());
|
|
|
query.setMarkerScore(markerScore);
|
|
|
if (pageNumber != null) {
|
|
@@ -278,8 +316,8 @@ public class MarkQualityController extends BaseExamController {
|
|
|
} else if (group != null && group.getStatus() == MarkStatus.TRIAL) {
|
|
|
// 试评查找给分历史记录
|
|
|
List<TrialLibrary> historyList = new ArrayList<TrialLibrary>();
|
|
|
- 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 (TrialLibrary library : historyList) {
|
|
|
Task task = taskService.build(library);
|
|
|
list.add(task);
|