|
@@ -42,7 +42,7 @@ public class InspectedServiceImpl extends BaseQueryService<ExamStudent> implemen
|
|
|
|
|
|
@Autowired
|
|
|
private ExamStudentService studentService;
|
|
|
-
|
|
|
+
|
|
|
@Autowired
|
|
|
private ExamSubjectService examSubjectService;
|
|
|
|
|
@@ -53,7 +53,7 @@ public class InspectedServiceImpl extends BaseQueryService<ExamStudent> implemen
|
|
|
@Override
|
|
|
public List<ExamStudentVo> findByQuery(InspectQuery query, SubjectiveStatus status, Integer mainNumber,
|
|
|
Double mainStartScore, Double mainEndScore, SelectiveStatus selectiveStatus) {
|
|
|
- int offset=(query.getPageNumber() - 1) * query.getPageSize();
|
|
|
+ int offset = (query.getPageNumber() - 1) * query.getPageSize();
|
|
|
StringBuilder sql = new StringBuilder();
|
|
|
sql.append(" select s.id,s.exam_id examId,s.school_id schoolId,s.subject_code subjectCode,");
|
|
|
sql.append(" s.subject_name subjectName,s.paper_type paperType,s.exam_number examNumber,s.secret_number secretNumber,");
|
|
@@ -67,10 +67,10 @@ public class InspectedServiceImpl extends BaseQueryService<ExamStudent> implemen
|
|
|
sql.append(" s.score_verify_time scoreVerifyTime,s.score_verify_flagged scoreVerifyFlagged,s.inspect_time inspectTime,");
|
|
|
sql.append(" s.inspector_id inspectorId,s.inspected ");
|
|
|
sql.append(" from eb_exam_student s left join eb_exam_subject es on s.exam_id=es.exam_id and s.subject_code=es.code ");
|
|
|
- String whereSql = getWhereSql(query, status, mainNumber, mainStartScore, mainEndScore,selectiveStatus);
|
|
|
+ String whereSql = getWhereSql(query, status, mainNumber, mainStartScore, mainEndScore, selectiveStatus);
|
|
|
sql.append(whereSql).append(" order by s.inspect_time desc ");
|
|
|
- if(!query.isExport()) {
|
|
|
- sql.append(" limit "+offset+","+query.getPageSize());
|
|
|
+ if (!query.isExport()) {
|
|
|
+ sql.append(" limit " + offset + "," + query.getPageSize());
|
|
|
}
|
|
|
Query dataQuery = entityManager.createNativeQuery(sql.toString());
|
|
|
dataQuery.unwrap(SQLQuery.class).setResultTransformer(Transformers.aliasToBean(ExamStudentVo.class));
|
|
@@ -79,25 +79,27 @@ public class InspectedServiceImpl extends BaseQueryService<ExamStudent> implemen
|
|
|
|
|
|
}
|
|
|
|
|
|
- private String getWhereSql(InspectQuery query, SubjectiveStatus status, Integer mainNumber,
|
|
|
- Double mainStartScore, Double mainEndScore, SelectiveStatus selectiveStatus) {
|
|
|
+ private String getWhereSql(InspectQuery query, SubjectiveStatus status, Integer mainNumber, Double mainStartScore,
|
|
|
+ Double mainEndScore, SelectiveStatus selectiveStatus) {
|
|
|
StringBuilder whereSql = new StringBuilder(" WHERE s.is_upload = 1 and s.is_absent = 0 and s.is_breach = 0 ");
|
|
|
if (query.getExamId() != null) {
|
|
|
- whereSql.append(" and s.exam_id ="+query.getExamId());
|
|
|
+ whereSql.append(" and s.exam_id =" + query.getExamId());
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(query.getSubjectCode())) {
|
|
|
- whereSql.append(" and s.subject_code ='"+query.getSubjectCode()+"'");
|
|
|
+ whereSql.append(" and s.subject_code ='" + query.getSubjectCode() + "'");
|
|
|
}
|
|
|
if (query.getSelective() != null) {
|
|
|
- whereSql.append(" and es.selective ="+(query.getSelective()?1:0));
|
|
|
+ whereSql.append(" and es.selective =" + (query.getSelective() ? 1 : 0));
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(query.getInspectorName())) {
|
|
|
whereSql.append(" and exists (select 1 from eb_inspect_history ei left join b_user bu on ei.inspector_id=bu.id "
|
|
|
- +" where ei.student_id = s.id and (bu.login_name like '"+query.getInspectorName()+"%' or bu.name like '"+
|
|
|
- query.getInspectorName()+"%'))");
|
|
|
+ + " where ei.student_id = s.id and (bu.login_name like '"
|
|
|
+ + query.getInspectorName()
|
|
|
+ + "%' or bu.name like '" + query.getInspectorName() + "%'))");
|
|
|
}
|
|
|
- if (query.getInspectUnrepeated()!=null&&query.getInspectUnrepeated()) {
|
|
|
- whereSql.append(" and not exists (select 1 from eb_inspect_history ei where ei.student_id = s.id and ei.inspector_id="+query.getInspectorId()+")");
|
|
|
+ if (query.getInspectUnrepeated() != null && query.getInspectUnrepeated()) {
|
|
|
+ whereSql.append(" and not exists (select 1 from eb_inspect_history ei where ei.student_id = s.id and ei.inspector_id="
|
|
|
+ + query.getInspectorId() + ")");
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(query.getSubjectCodeIn())) {
|
|
|
String[] subjectCodeIn = query.getSubjectCodeIn().split(",");
|
|
@@ -105,96 +107,101 @@ public class InspectedServiceImpl extends BaseQueryService<ExamStudent> implemen
|
|
|
for (String code : subjectCodeIn) {
|
|
|
in.add(code);
|
|
|
}
|
|
|
- whereSql.append(" and s.subject_code in ('"+StringUtils.join(in, "','")+"') ");
|
|
|
+ whereSql.append(" and s.subject_code in ('" + StringUtils.join(in, "','") + "') ");
|
|
|
}
|
|
|
- whereSql.append(" and s.subjective_status ='MARKED'");
|
|
|
+ whereSql.append(" and s.subjective_status ='MARKED'");
|
|
|
if (query.getInspected() != null) {
|
|
|
- whereSql.append(" and s.inspected ="+(query.getInspected()?1:0));
|
|
|
+ whereSql.append(" and s.inspected =" + (query.getInspected() ? 1 : 0));
|
|
|
}
|
|
|
if (query.getStartScore() != null) {
|
|
|
- whereSql.append(
|
|
|
- " and (cast(s.objective_score as decimal(10,3))+cast(s.subjective_score as decimal(10,3))) >="+query.getStartScore());
|
|
|
+ whereSql.append(" and (cast(s.objective_score as decimal(10,3))+cast(s.subjective_score as decimal(10,3))) >="
|
|
|
+ + query.getStartScore());
|
|
|
}
|
|
|
if (query.getEndScore() != null) {
|
|
|
- whereSql.append(
|
|
|
- " and (cast(s.objective_score as decimal(10,3))+cast(s.subjective_score as decimal(10,3))) <="+query.getEndScore());
|
|
|
+ whereSql.append(" and (cast(s.objective_score as decimal(10,3))+cast(s.subjective_score as decimal(10,3))) <="
|
|
|
+ + query.getEndScore());
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(query.getSecretNumber())) {
|
|
|
- whereSql.append(" and s.secret_number ='"+query.getSecretNumber()+"'");
|
|
|
+ whereSql.append(" and s.secret_number ='" + query.getSecretNumber() + "'");
|
|
|
}
|
|
|
- Double questionScore=query.getQuestionScore();
|
|
|
+ Double questionScore = query.getQuestionScore();
|
|
|
if (mainNumber != null || mainStartScore != null || mainEndScore != null || questionScore != null) {
|
|
|
whereSql.append(" and exists (select e.student_id from eb_subjective_score e where e.student_id = s.id ");
|
|
|
if (mainNumber != null) {
|
|
|
- whereSql.append(" and e.main_number ="+mainNumber);
|
|
|
+ whereSql.append(" and e.main_number =" + mainNumber);
|
|
|
}
|
|
|
if (mainStartScore != null) {
|
|
|
- whereSql.append(" and e.main_score >="+mainStartScore);
|
|
|
+ whereSql.append(" and e.main_score >=" + mainStartScore);
|
|
|
}
|
|
|
if (mainEndScore != null) {
|
|
|
- whereSql.append(" and e.main_score <="+mainEndScore);
|
|
|
+ whereSql.append(" and e.main_score <=" + mainEndScore);
|
|
|
}
|
|
|
if (questionScore != null) {
|
|
|
- if(questionScore!=0) {
|
|
|
- whereSql.append(" and e.score ="+questionScore);
|
|
|
- }else {
|
|
|
- if(query.getQuestionScoreEmpty()!=null) {
|
|
|
- if(query.getQuestionScoreEmpty()) {
|
|
|
- whereSql.append(" and e.score =0 and e.unanswered_count >0");
|
|
|
- }else {
|
|
|
- whereSql.append(" and e.score =0 and (e.unanswered_count is null or e.unanswered_count =0)");
|
|
|
- }
|
|
|
- }else {
|
|
|
- whereSql.append(" and e.score =0");
|
|
|
- }
|
|
|
+ if (questionScore != 0) {
|
|
|
+ whereSql.append(" and e.score =" + questionScore);
|
|
|
+ } else {
|
|
|
+ if (query.getQuestionScoreEmpty() != null) {
|
|
|
+ if (query.getQuestionScoreEmpty()) {
|
|
|
+ whereSql.append(" and e.score =0 and e.unanswered_count >0");
|
|
|
+ } else {
|
|
|
+ whereSql.append(" and e.score =0 and (e.unanswered_count is null or e.unanswered_count =0)");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ whereSql.append(" and e.score =0");
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
whereSql.append(" ) ");
|
|
|
}
|
|
|
// 全部选做题为未选做
|
|
|
-// List<MarkGroup> groups = groupService
|
|
|
-// .findByExamAndSubjectAndSelective(query.getExamId(), query.getSubjectCode(), true);
|
|
|
-// List<SelectiveGroup> selectiveGroups = selectiveGroupService
|
|
|
-// .findByExamIdAndSubjectCode(query.getExamId(), query.getSubjectCode());
|
|
|
-// if (selectiveStatus != null && SelectiveStatus.UN_SELECTIVE.equals(selectiveStatus) && !groups.isEmpty()
|
|
|
-// && !selectiveGroups.isEmpty()) {
|
|
|
-// List<Integer> groupNumbers = new ArrayList<Integer>();
|
|
|
-// for (int i = 0; i < groups.size(); i++) {
|
|
|
-// groupNumbers.add(groups.get(i).getNumber());
|
|
|
-// }
|
|
|
-// whereSql.append(
|
|
|
-// " and not exists (select e.student_id from eb_subjective_score e where e.student_id = s.id and e.group_number in ("
|
|
|
-// +StringUtils.join(groupNumbers,",")+") and e.group_score != -1 )");
|
|
|
-// }
|
|
|
+ // List<MarkGroup> groups = groupService
|
|
|
+ // .findByExamAndSubjectAndSelective(query.getExamId(),
|
|
|
+ // query.getSubjectCode(), true);
|
|
|
+ // List<SelectiveGroup> selectiveGroups = selectiveGroupService
|
|
|
+ // .findByExamIdAndSubjectCode(query.getExamId(),
|
|
|
+ // query.getSubjectCode());
|
|
|
+ // if (selectiveStatus != null &&
|
|
|
+ // SelectiveStatus.UN_SELECTIVE.equals(selectiveStatus) &&
|
|
|
+ // !groups.isEmpty()
|
|
|
+ // && !selectiveGroups.isEmpty()) {
|
|
|
+ // List<Integer> groupNumbers = new ArrayList<Integer>();
|
|
|
+ // for (int i = 0; i < groups.size(); i++) {
|
|
|
+ // groupNumbers.add(groups.get(i).getNumber());
|
|
|
+ // }
|
|
|
+ // whereSql.append(
|
|
|
+ // " and not exists (select e.student_id from eb_subjective_score e where e.student_id = s.id and e.group_number in ("
|
|
|
+ // +StringUtils.join(groupNumbers,",")+") and e.group_score != -1 )");
|
|
|
+ // }
|
|
|
if (SelectiveStatus.UN_SELECTIVE.equals(selectiveStatus)) {
|
|
|
- whereSql.append(
|
|
|
- " and not exists (select 1 from eb_subjective_score e left join eb_mark_group mg "
|
|
|
- + " on e.exam_id=mg.exam_id and e.subject_code=mg.subject_code and e.group_number=mg.number"
|
|
|
- + " where e.student_id = s.id and e.group_score != -1 and mg.is_selective=1)"
|
|
|
- +" and es.selective=1");
|
|
|
+ whereSql.append(" and not exists (select 1 from eb_subjective_score e left join eb_mark_group mg "
|
|
|
+ + " on e.exam_id=mg.exam_id and e.subject_code=mg.subject_code and e.group_number=mg.number"
|
|
|
+ + " where e.student_id = s.id and e.group_score != -1 and mg.is_selective=1)"
|
|
|
+ + " and es.selective=1");
|
|
|
}
|
|
|
// 选做题多选做
|
|
|
-// if (selectiveStatus != null && SelectiveStatus.MUTI_SELECTIVE.equals(selectiveStatus) && !groups.isEmpty()
|
|
|
-// && !selectiveGroups.isEmpty()) {
|
|
|
+ // if (selectiveStatus != null &&
|
|
|
+ // SelectiveStatus.MUTI_SELECTIVE.equals(selectiveStatus) &&
|
|
|
+ // !groups.isEmpty()
|
|
|
+ // && !selectiveGroups.isEmpty()) {
|
|
|
if (SelectiveStatus.MUTI_SELECTIVE.equals(selectiveStatus)) {
|
|
|
- whereSql.append(
|
|
|
- " and exists (select ss.student_id from eb_selective_student ss where ss.student_id = s.id and ss.muti_selective=1)");
|
|
|
+ whereSql.append(" and exists (select ss.student_id from eb_selective_student ss where ss.student_id = s.id and ss.muti_selective=1)");
|
|
|
}
|
|
|
// 选做题少选做
|
|
|
-// if (selectiveStatus != null && SelectiveStatus.LESS_SELECTIVE.equals(selectiveStatus) && !groups.isEmpty()
|
|
|
-// && !selectiveGroups.isEmpty()) {
|
|
|
+ // if (selectiveStatus != null &&
|
|
|
+ // SelectiveStatus.LESS_SELECTIVE.equals(selectiveStatus) &&
|
|
|
+ // !groups.isEmpty()
|
|
|
+ // && !selectiveGroups.isEmpty()) {
|
|
|
if (SelectiveStatus.LESS_SELECTIVE.equals(selectiveStatus)) {
|
|
|
- whereSql.append(
|
|
|
- " and exists (select ss.student_id from eb_selective_student ss where ss.student_id = s.id and ss.less_selective=1) ");
|
|
|
+ whereSql.append(" and exists (select ss.student_id from eb_selective_student ss where ss.student_id = s.id and ss.less_selective=1) ");
|
|
|
}
|
|
|
return whereSql.toString();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public Integer countByQuery(InspectQuery query, SubjectiveStatus status, Integer mainNumber,
|
|
|
- Double mainStartScore, Double mainEndScore,SelectiveStatus selectiveStatus) {
|
|
|
+ public Integer countByQuery(InspectQuery query, SubjectiveStatus status, Integer mainNumber, Double mainStartScore,
|
|
|
+ Double mainEndScore, SelectiveStatus selectiveStatus) {
|
|
|
StringBuilder countSql = new StringBuilder("select count(s.id) from eb_exam_student s "
|
|
|
- +" left join eb_exam_subject es on s.exam_id=es.exam_id and s.subject_code=es.code ");
|
|
|
+ + " left join eb_exam_subject es on s.exam_id=es.exam_id and s.subject_code=es.code ");
|
|
|
String whereSql = getWhereSql(query, status, mainNumber, mainStartScore, mainEndScore, selectiveStatus);
|
|
|
countSql.append(whereSql);
|
|
|
Query countQuery = entityManager.createNativeQuery(countSql.toString());
|
|
@@ -202,15 +209,16 @@ public class InspectedServiceImpl extends BaseQueryService<ExamStudent> implemen
|
|
|
Integer count = singleResult == null ? 0 : Integer.valueOf(singleResult.toString());
|
|
|
return count;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
@Override
|
|
|
- public Integer needInspectCount(InspectQuery query, Integer mainNumber,
|
|
|
- Double mainStartScore, Double mainEndScore,SelectiveStatus selectiveStatus) {
|
|
|
- Boolean inspected=query.getInspected();
|
|
|
- query.setInspected(false);
|
|
|
- StringBuilder countSql = new StringBuilder("select count(s.id) from eb_exam_student s "
|
|
|
- +" left join eb_exam_subject es on s.exam_id=es.exam_id and s.subject_code=es.code ");
|
|
|
- String whereSql = getWhereSql(query, SubjectiveStatus.MARKED, mainNumber, mainStartScore, mainEndScore,selectiveStatus);
|
|
|
+ public Integer needInspectCount(InspectQuery query, Integer mainNumber, Double mainStartScore, Double mainEndScore,
|
|
|
+ SelectiveStatus selectiveStatus) {
|
|
|
+ Boolean inspected = query.getInspected();
|
|
|
+ query.setInspected(false);
|
|
|
+ StringBuilder countSql = new StringBuilder("select count(s.id) from eb_exam_student s "
|
|
|
+ + " left join eb_exam_subject es on s.exam_id=es.exam_id and s.subject_code=es.code ");
|
|
|
+ String whereSql = getWhereSql(query, SubjectiveStatus.MARKED, mainNumber, mainStartScore, mainEndScore,
|
|
|
+ selectiveStatus);
|
|
|
countSql.append(whereSql);
|
|
|
Query countQuery = entityManager.createNativeQuery(countSql.toString());
|
|
|
Object singleResult = countQuery.getResultList().get(0);
|
|
@@ -254,10 +262,11 @@ public class InspectedServiceImpl extends BaseQueryService<ExamStudent> implemen
|
|
|
TaskLock taskLock = TaskLockUtil.getInspectedStudentTask(getKey(student));
|
|
|
return taskLock.exist(student.getId(), 1, userId);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
private String getKey(ExamStudentVo student) {
|
|
|
return student.getExamId() + "_" + student.getSubjectCode();
|
|
|
}
|
|
|
+
|
|
|
private String getKey(ExamStudent student) {
|
|
|
return student.getExamId() + "_" + student.getSubjectCode();
|
|
|
}
|
|
@@ -266,17 +275,17 @@ public class InspectedServiceImpl extends BaseQueryService<ExamStudent> implemen
|
|
|
@Override
|
|
|
public boolean inspect(ExamStudent student, Integer userId) {
|
|
|
if (this.hasApplied(student, userId) && SubjectiveStatus.MARKED.equals(student.getSubjectiveStatus())) {
|
|
|
- if (!SubjectiveStatus.MARKED.equals(student.getSubjectiveStatus())
|
|
|
- ||student.getInspected()) {
|
|
|
- return false;
|
|
|
- }
|
|
|
- ExamSubject subject=examSubjectService.find(student.getExamId(), student.getSubjectCode());
|
|
|
- InspectHistory old=inspectHistoryService.findByStudentIdAndInspectRound(student.getId(),subject.getInspectRound());
|
|
|
- if(old!=null) {
|
|
|
- return false;
|
|
|
- }
|
|
|
+ if (!SubjectiveStatus.MARKED.equals(student.getSubjectiveStatus()) || student.getInspected()) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ ExamSubject subject = examSubjectService.find(student.getExamId(), student.getSubjectCode());
|
|
|
+ InspectHistory old = inspectHistoryService.findByStudentIdAndInspectRound(student.getId(),
|
|
|
+ subject.getInspectRound());
|
|
|
+ if (old != null) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
Date now = new Date();
|
|
|
- studentService.inspect(student.getId(), now,userId);
|
|
|
+ studentService.inspect(student.getId(), now, userId);
|
|
|
InspectHistory i = new InspectHistory();
|
|
|
i.setExamId(student.getExamId());
|
|
|
i.setStudentId(student.getId());
|
|
@@ -286,62 +295,59 @@ public class InspectedServiceImpl extends BaseQueryService<ExamStudent> implemen
|
|
|
i.setInspectRound(subject.getInspectRound());
|
|
|
inspectHistoryService.save(i);
|
|
|
studentService.updateInspectCount(student.getId(), inspectHistoryService.countByStudentId(student.getId()));
|
|
|
- //this.releaseByStudent(student);
|
|
|
+ // this.releaseByStudent(student);
|
|
|
return true;
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- *清除当前轮的复核,以及复核状态
|
|
|
+ * 清除当前轮的复核,以及复核状态
|
|
|
*/
|
|
|
@Transactional
|
|
|
@Override
|
|
|
public boolean cancel(Integer studentId) {
|
|
|
ExamStudent student = studentService.findById(studentId);
|
|
|
- ExamSubject sub=examSubjectService.find(student.getExamId(), student.getSubjectCode());
|
|
|
+ ExamSubject sub = examSubjectService.find(student.getExamId(), student.getSubjectCode());
|
|
|
if (student.getInspected()) {
|
|
|
studentService.cancelInspect(studentId);
|
|
|
- inspectHistoryService.deleteByStudentIdAndInspectRound(studentId,sub.getInspectRound());
|
|
|
+ inspectHistoryService.deleteByStudentIdAndInspectRound(studentId, sub.getInspectRound());
|
|
|
return true;
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
@Transactional
|
|
|
@Override
|
|
|
public void clear(Integer studentId) {
|
|
|
- ExamStudent student = studentService.findById(studentId);
|
|
|
- if (student.getInspected()) {
|
|
|
- studentService.cancelInspect(studentId);
|
|
|
- inspectHistoryService.deleteByStudentId(studentId);
|
|
|
- }
|
|
|
+ studentService.cancelInspect(studentId);
|
|
|
+ inspectHistoryService.deleteByStudentId(studentId);
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public void fillInspectHistoryMap(List<ExamStudentVo> list, int maxInspectRound) {
|
|
|
- List<Integer> sids=list.stream().map(e->e.getId()).collect(Collectors.toList());
|
|
|
- List<InspectHistory> ihs=inspectHistoryService.findByStudentIdIn(sids);
|
|
|
- if(ihs==null||ihs.size()==0) {
|
|
|
- return;
|
|
|
- }
|
|
|
- Map<Integer,Map<String,InspectHistory>> map=new HashMap<>();
|
|
|
- for(InspectHistory ih:ihs) {
|
|
|
- Map<String,InspectHistory> tem=map.get(ih.getStudentId());
|
|
|
- if(tem==null) {
|
|
|
- tem=new HashMap<>();
|
|
|
- map.put(ih.getStudentId(),tem);
|
|
|
- }
|
|
|
- tem.put(ih.getInspectRound().toString(),ih);
|
|
|
- }
|
|
|
- for(ExamStudentVo es:list) {
|
|
|
- es.setInspectHistoryMap(map.get(es.getId()));
|
|
|
- }
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public void fillInspectHistoryMap(List<ExamStudentVo> list, int maxInspectRound) {
|
|
|
+ List<Integer> sids = list.stream().map(e -> e.getId()).collect(Collectors.toList());
|
|
|
+ List<InspectHistory> ihs = inspectHistoryService.findByStudentIdIn(sids);
|
|
|
+ if (ihs == null || ihs.size() == 0) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ Map<Integer, Map<String, InspectHistory>> map = new HashMap<>();
|
|
|
+ for (InspectHistory ih : ihs) {
|
|
|
+ Map<String, InspectHistory> tem = map.get(ih.getStudentId());
|
|
|
+ if (tem == null) {
|
|
|
+ tem = new HashMap<>();
|
|
|
+ map.put(ih.getStudentId(), tem);
|
|
|
+ }
|
|
|
+ tem.put(ih.getInspectRound().toString(), ih);
|
|
|
+ }
|
|
|
+ for (ExamStudentVo es : list) {
|
|
|
+ es.setInspectHistoryMap(map.get(es.getId()));
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public boolean inspectFinish(Integer examId, String subjectCode, Integer inspectRound) {
|
|
|
- ExamStudentSearchQuery sQuery = new ExamStudentSearchQuery();
|
|
|
+ @Override
|
|
|
+ public boolean inspectFinish(Integer examId, String subjectCode, Integer inspectRound) {
|
|
|
+ ExamStudentSearchQuery sQuery = new ExamStudentSearchQuery();
|
|
|
sQuery.setExamId(examId);
|
|
|
sQuery.setUpload(true);
|
|
|
sQuery.setAbsent(false);
|
|
@@ -349,14 +355,14 @@ public class InspectedServiceImpl extends BaseQueryService<ExamStudent> implemen
|
|
|
sQuery.setSubjectCode(subjectCode);
|
|
|
long totalPaperCount = studentService.countByQuery(sQuery);
|
|
|
StringBuilder countSql = new StringBuilder("select count(s.id) from eb_exam_student s where s.exam_id ="
|
|
|
- +examId+" and s.subject_code ='"+subjectCode+"'");
|
|
|
+ + examId + " and s.subject_code ='" + subjectCode + "'");
|
|
|
countSql.append(" and s.inspected=1");
|
|
|
-// countSql.append(" and exists(select 1 from eb_inspect_history h "
|
|
|
-// +" left join eb_exam_subject sub on h.exam_id=sub.exam_id and h.subject_code=sub.code "
|
|
|
-// +" where s.id=h.student_id and h.inspect_round="+inspectRound+") ");
|
|
|
+ // countSql.append(" and exists(select 1 from eb_inspect_history h "
|
|
|
+ // +" left join eb_exam_subject sub on h.exam_id=sub.exam_id and h.subject_code=sub.code "
|
|
|
+ // +" where s.id=h.student_id and h.inspect_round="+inspectRound+") ");
|
|
|
Query countQuery = entityManager.createNativeQuery(countSql.toString());
|
|
|
Object singleResult = countQuery.getResultList().get(0);
|
|
|
Integer count = singleResult == null ? 0 : Integer.valueOf(singleResult.toString());
|
|
|
- return totalPaperCount==count;
|
|
|
- }
|
|
|
+ return totalPaperCount == count;
|
|
|
+ }
|
|
|
}
|