|
@@ -17,17 +17,14 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
-import com.google.gson.Gson;
|
|
|
|
-
|
|
|
|
import cn.com.qmth.stmms.biz.common.BaseQueryService;
|
|
import cn.com.qmth.stmms.biz.common.BaseQueryService;
|
|
import cn.com.qmth.stmms.biz.exam.bean.ScoreVerifyVo;
|
|
import cn.com.qmth.stmms.biz.exam.bean.ScoreVerifyVo;
|
|
import cn.com.qmth.stmms.biz.exam.dao.ScoreVerifyDao;
|
|
import cn.com.qmth.stmms.biz.exam.dao.ScoreVerifyDao;
|
|
-import cn.com.qmth.stmms.biz.exam.dao.ScoreVerifyDetailDao;
|
|
|
|
import cn.com.qmth.stmms.biz.exam.enums.ScoreVerifyRule;
|
|
import cn.com.qmth.stmms.biz.exam.enums.ScoreVerifyRule;
|
|
import cn.com.qmth.stmms.biz.exam.enums.ScoreVerifyRuleCompare;
|
|
import cn.com.qmth.stmms.biz.exam.enums.ScoreVerifyRuleCompare;
|
|
import cn.com.qmth.stmms.biz.exam.model.ScoreVerify;
|
|
import cn.com.qmth.stmms.biz.exam.model.ScoreVerify;
|
|
-import cn.com.qmth.stmms.biz.exam.model.ScoreVerifyDetail;
|
|
|
|
import cn.com.qmth.stmms.biz.exam.query.ScoreVerifyQuery;
|
|
import cn.com.qmth.stmms.biz.exam.query.ScoreVerifyQuery;
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.service.ExamStudentService;
|
|
import cn.com.qmth.stmms.biz.exam.service.ScoreVerifyService;
|
|
import cn.com.qmth.stmms.biz.exam.service.ScoreVerifyService;
|
|
import cn.com.qmth.stmms.biz.exception.StatusException;
|
|
import cn.com.qmth.stmms.biz.exception.StatusException;
|
|
import cn.com.qmth.stmms.biz.file.service.FileService;
|
|
import cn.com.qmth.stmms.biz.file.service.FileService;
|
|
@@ -41,9 +38,9 @@ public class ScoreVerifyServiceImpl extends BaseQueryService<ScoreVerify> implem
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private ScoreVerifyDao scoreVerifyDao;
|
|
private ScoreVerifyDao scoreVerifyDao;
|
|
-
|
|
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
- private ScoreVerifyDetailDao scoreVerifyDetailDao;
|
|
|
|
|
|
+ private ExamStudentService examStudentService;
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private FileService fileService;
|
|
private FileService fileService;
|
|
@@ -63,8 +60,8 @@ public class ScoreVerifyServiceImpl extends BaseQueryService<ScoreVerify> implem
|
|
sql.append(
|
|
sql.append(
|
|
" t.is_upload upload,t.is_breach breach,t.is_absent absent,t.subjective_score subjectiveScore,t.subjective_score_list subjectiveScoreList,t.objective_score objectiveScore, ");
|
|
" t.is_upload upload,t.is_breach breach,t.is_absent absent,t.subjective_score subjectiveScore,t.subjective_score_list subjectiveScoreList,t.objective_score objectiveScore, ");
|
|
sql.append(" u.name scoreVerifyUserName,t.score_verify_time scoreVerifyTime ");
|
|
sql.append(" u.name scoreVerifyUserName,t.score_verify_time scoreVerifyTime ");
|
|
- sql.append(" from eb_score_verify_detail r left join eb_exam_student t on r.student_id=t.id ");
|
|
|
|
- sql.append(" left join b_user u on t.score_verify_user=u.id where r.score_verify_id="+ req.getScoreVerifyId());
|
|
|
|
|
|
+ sql.append(" from eb_score_verify r left join eb_exam_student t on r.student_id=t.id ");
|
|
|
|
+ sql.append(" left join b_user u on t.score_verify_user=u.id where r.exam_id=" + req.getExamId()+" and r.user_id="+req.getUserId());
|
|
sql.append(" order by t.student_code,t.subject_code ");
|
|
sql.append(" order by t.student_code,t.subject_code ");
|
|
sql.append(" limit " + offset + "," + req.getPageSize());
|
|
sql.append(" limit " + offset + "," + req.getPageSize());
|
|
Query query = entityManager.createNativeQuery(sql.toString());
|
|
Query query = entityManager.createNativeQuery(sql.toString());
|
|
@@ -79,61 +76,63 @@ public class ScoreVerifyServiceImpl extends BaseQueryService<ScoreVerify> implem
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public Integer needVerifyCount(Integer scoreVerifyId) {
|
|
|
|
|
|
+ public Integer needVerifyCount(Integer examId, Integer userId) {
|
|
StringBuilder sql = new StringBuilder();
|
|
StringBuilder sql = new StringBuilder();
|
|
sql.append("select count(1) ");
|
|
sql.append("select count(1) ");
|
|
- sql.append("from eb_score_verify_detail t where t.score_verify_id=" + scoreVerifyId+" and t.flagged is null ");
|
|
|
|
|
|
+ sql.append(
|
|
|
|
+ "from eb_score_verify t where t.exam_id=" + examId+" and t.user_id="+userId + " and t.flagged is null ");
|
|
Query query = entityManager.createNativeQuery(sql.toString());
|
|
Query query = entityManager.createNativeQuery(sql.toString());
|
|
return Integer.valueOf(query.getResultList().get(0).toString());
|
|
return Integer.valueOf(query.getResultList().get(0).toString());
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
- public Integer countByQuery(Integer scoreVerifyId) {
|
|
|
|
|
|
+ public Integer countByQuery(Integer examId, Integer userId) {
|
|
StringBuilder sql = new StringBuilder();
|
|
StringBuilder sql = new StringBuilder();
|
|
sql.append("select count(1) ");
|
|
sql.append("select count(1) ");
|
|
- sql.append("from eb_score_verify_detail t where t.score_verify_id=" + scoreVerifyId);
|
|
|
|
|
|
+ sql.append("from eb_score_verify t where t.exam_id=" + examId+" and t.user_id="+userId);
|
|
Query query = entityManager.createNativeQuery(sql.toString());
|
|
Query query = entityManager.createNativeQuery(sql.toString());
|
|
return Integer.valueOf(query.getResultList().get(0).toString());
|
|
return Integer.valueOf(query.getResultList().get(0).toString());
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @SuppressWarnings("unchecked")
|
|
@Override
|
|
@Override
|
|
- public ScoreVerify findByExamIdAndUserId(Integer examId, Integer id) {
|
|
|
|
- return scoreVerifyDao.findByExamIdAndUserId(examId, id);
|
|
|
|
|
|
+ public Boolean existByExamIdAndUserId(Integer examId, Integer userId) {
|
|
|
|
+ StringBuilder sql = new StringBuilder();
|
|
|
|
+ sql.append(" select r.id from eb_score_verify r where r.exam_id=" + examId+" and r.user_id="+userId);
|
|
|
|
+ sql.append(" limit 1");
|
|
|
|
+ Query query = entityManager.createNativeQuery(sql.toString());
|
|
|
|
+ List<ScoreVerify> ret = query.getResultList();
|
|
|
|
+ if(ret!=null&&ret.size()>0) {
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+ return false;
|
|
}
|
|
}
|
|
|
|
|
|
@Transactional
|
|
@Transactional
|
|
@Override
|
|
@Override
|
|
- public Integer createQuery(ScoreVerifyQuery req) {
|
|
|
|
- if (req.getParam() == null || (StringUtils.isBlank(req.getParam().getStudentCode())
|
|
|
|
- && StringUtils.isBlank(req.getParam().getStudentName()) && req.getParam().getRule() == null)) {
|
|
|
|
|
|
+ public void createQuery(ScoreVerifyQuery req) {
|
|
|
|
+ if (StringUtils.isBlank(req.getStudentCode())
|
|
|
|
+ && StringUtils.isBlank(req.getStudentName()) && req.getRule() == null) {
|
|
throw new StatusException("请选择至少一个条件");
|
|
throw new StatusException("请选择至少一个条件");
|
|
}
|
|
}
|
|
- if (ScoreVerifyRule.RULE2.equals(req.getParam().getRule())
|
|
|
|
- || ScoreVerifyRule.RULE3.equals(req.getParam().getRule())) {
|
|
|
|
- if (req.getParam().getRuleCompare() == null) {
|
|
|
|
|
|
+ if (ScoreVerifyRule.RULE2.equals(req.getRule())
|
|
|
|
+ || ScoreVerifyRule.RULE3.equals(req.getRule())) {
|
|
|
|
+ if (req.getRuleCompare() == null) {
|
|
throw new StatusException("请选择分数匹配条件");
|
|
throw new StatusException("请选择分数匹配条件");
|
|
}
|
|
}
|
|
- if (req.getParam().getCompareScore() == null) {
|
|
|
|
|
|
+ if (req.getCompareScore() == null) {
|
|
throw new StatusException("请填写匹配分值");
|
|
throw new StatusException("请填写匹配分值");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- ScoreVerify sv = new ScoreVerify();
|
|
|
|
- sv.setCreateTime(new Date());
|
|
|
|
- sv.setExamId(req.getExamId());
|
|
|
|
- sv.setUserId(req.getUserId());
|
|
|
|
- Gson gson = new Gson();
|
|
|
|
- sv.setParams(gson.toJson(req.getParam()));
|
|
|
|
- scoreVerifyDao.save(sv);
|
|
|
|
- List<ScoreVerifyVo> allStudents=getAllStudent(req);
|
|
|
|
- if(allStudents==null||allStudents.size()==0) {
|
|
|
|
|
|
+ List<ScoreVerifyVo> allStudents = getAllStudent(req);
|
|
|
|
+ if (allStudents == null || allStudents.size() == 0) {
|
|
throw new StatusException("没有满足条件的数据");
|
|
throw new StatusException("没有满足条件的数据");
|
|
}
|
|
}
|
|
- List<ScoreVerifyDetail> details=createDetailByQuery(sv.getId(), allStudents, req);
|
|
|
|
- if(details==null||details.size()==0) {
|
|
|
|
|
|
+ List<ScoreVerify> details = createByQuery(allStudents, req);
|
|
|
|
+ if (details == null || details.size() == 0) {
|
|
throw new StatusException("没有满足条件的数据");
|
|
throw new StatusException("没有满足条件的数据");
|
|
}
|
|
}
|
|
- scoreVerifyDetailDao.save(details);
|
|
|
|
- return sv.getId();
|
|
|
|
|
|
+ scoreVerifyDao.save(details);
|
|
}
|
|
}
|
|
|
|
|
|
@SuppressWarnings("unchecked")
|
|
@SuppressWarnings("unchecked")
|
|
@@ -142,11 +141,11 @@ public class ScoreVerifyServiceImpl extends BaseQueryService<ScoreVerify> implem
|
|
sql.append(
|
|
sql.append(
|
|
"select t.id studentId,t.student_code studentCode,t.subjective_score subjectiveScore,t.objective_score objectiveScore from eb_exam_student t ");
|
|
"select t.id studentId,t.student_code studentCode,t.subjective_score subjectiveScore,t.objective_score objectiveScore from eb_exam_student t ");
|
|
sql.append("where exam_id=" + req.getExamId());
|
|
sql.append("where exam_id=" + req.getExamId());
|
|
- if (StringUtils.isNotBlank(req.getParam().getStudentCode())) {
|
|
|
|
- sql.append(" and t.student_code='" + req.getParam().getStudentCode() + "'");
|
|
|
|
|
|
+ if (StringUtils.isNotBlank(req.getStudentCode())) {
|
|
|
|
+ sql.append(" and t.student_code='" + req.getStudentCode() + "'");
|
|
}
|
|
}
|
|
- if (StringUtils.isNotBlank(req.getParam().getStudentName())) {
|
|
|
|
- sql.append(" and t.name='" + req.getParam().getStudentName() + "'");
|
|
|
|
|
|
+ if (StringUtils.isNotBlank(req.getStudentName())) {
|
|
|
|
+ sql.append(" and t.name='" + req.getStudentName() + "'");
|
|
}
|
|
}
|
|
Query query = entityManager.createNativeQuery(sql.toString());
|
|
Query query = entityManager.createNativeQuery(sql.toString());
|
|
query.unwrap(SQLQuery.class).setResultTransformer(Transformers.aliasToBean(ScoreVerifyVo.class));
|
|
query.unwrap(SQLQuery.class).setResultTransformer(Transformers.aliasToBean(ScoreVerifyVo.class));
|
|
@@ -154,9 +153,8 @@ public class ScoreVerifyServiceImpl extends BaseQueryService<ScoreVerify> implem
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|
|
|
|
|
|
- private List<ScoreVerifyDetail> createDetailByQuery(Integer scoreVerifyId, List<ScoreVerifyVo> vos,
|
|
|
|
- ScoreVerifyQuery req) {
|
|
|
|
- List<ScoreVerifyDetail> ret = new ArrayList<>();
|
|
|
|
|
|
+ private List<ScoreVerify> createByQuery(List<ScoreVerifyVo> vos, ScoreVerifyQuery req) {
|
|
|
|
+ List<ScoreVerify> ret = new ArrayList<>();
|
|
if (vos != null & vos.size() > 0) {
|
|
if (vos != null & vos.size() > 0) {
|
|
Map<String, List<ScoreVerifyVo>> voMap = new HashMap<>();
|
|
Map<String, List<ScoreVerifyVo>> voMap = new HashMap<>();
|
|
for (ScoreVerifyVo vo : vos) {
|
|
for (ScoreVerifyVo vo : vos) {
|
|
@@ -169,18 +167,20 @@ public class ScoreVerifyServiceImpl extends BaseQueryService<ScoreVerify> implem
|
|
}
|
|
}
|
|
for (List<ScoreVerifyVo> temVos : voMap.values()) {
|
|
for (List<ScoreVerifyVo> temVos : voMap.values()) {
|
|
if (checkInQuery(temVos, req)) {
|
|
if (checkInQuery(temVos, req)) {
|
|
- ret.addAll(of(scoreVerifyId, temVos));
|
|
|
|
|
|
+ ret.addAll(of(req, temVos));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|
|
|
|
|
|
- private List<ScoreVerifyDetail> of(Integer scoreVerifyId, List<ScoreVerifyVo> vos) {
|
|
|
|
- List<ScoreVerifyDetail> ret = new ArrayList<>();
|
|
|
|
|
|
+ private List<ScoreVerify> of(ScoreVerifyQuery req, List<ScoreVerifyVo> vos) {
|
|
|
|
+ List<ScoreVerify> ret = new ArrayList<>();
|
|
for (ScoreVerifyVo vo : vos) {
|
|
for (ScoreVerifyVo vo : vos) {
|
|
- ScoreVerifyDetail sv = new ScoreVerifyDetail();
|
|
|
|
- sv.setScoreVerifyId(scoreVerifyId);
|
|
|
|
|
|
+ ScoreVerify sv = new ScoreVerify();
|
|
|
|
+ sv.setExamId(req.getExamId());
|
|
|
|
+ sv.setUserId(req.getUserId());
|
|
|
|
+ sv.setCreateTime(new Date());
|
|
sv.setStudentId(vo.getStudentId());
|
|
sv.setStudentId(vo.getStudentId());
|
|
ret.add(sv);
|
|
ret.add(sv);
|
|
}
|
|
}
|
|
@@ -188,70 +188,70 @@ public class ScoreVerifyServiceImpl extends BaseQueryService<ScoreVerify> implem
|
|
}
|
|
}
|
|
|
|
|
|
private boolean checkInQuery(List<ScoreVerifyVo> vos, ScoreVerifyQuery req) {
|
|
private boolean checkInQuery(List<ScoreVerifyVo> vos, ScoreVerifyQuery req) {
|
|
- ScoreVerifyRule rule = req.getParam().getRule();
|
|
|
|
|
|
+ ScoreVerifyRule rule = req.getRule();
|
|
if (rule == null) {
|
|
if (rule == null) {
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
- if (rule != null&&vos.size()==1) {
|
|
|
|
|
|
+ if (rule != null && vos.size() == 1) {
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
- //两个条件,满足各自条件的list
|
|
|
|
- List<ScoreVerifyVo> group1=new ArrayList<>();
|
|
|
|
- List<ScoreVerifyVo> group2=new ArrayList<>();
|
|
|
|
|
|
+ // 两个条件,满足各自条件的list
|
|
|
|
+ List<ScoreVerifyVo> group1 = new ArrayList<>();
|
|
|
|
+ List<ScoreVerifyVo> group2 = new ArrayList<>();
|
|
if (ScoreVerifyRule.RULE1.equals(rule)) {
|
|
if (ScoreVerifyRule.RULE1.equals(rule)) {
|
|
for (ScoreVerifyVo vo : vos) {
|
|
for (ScoreVerifyVo vo : vos) {
|
|
- double totalScore=Calculator.add(vo.getObjectiveScore(),vo.getSubjectiveScore());
|
|
|
|
- if(totalScore>0) {
|
|
|
|
|
|
+ double totalScore = Calculator.add(vo.getObjectiveScore(), vo.getSubjectiveScore());
|
|
|
|
+ if (totalScore > 0) {
|
|
group1.add(vo);
|
|
group1.add(vo);
|
|
}
|
|
}
|
|
- if(totalScore==0) {
|
|
|
|
|
|
+ if (totalScore == 0) {
|
|
group2.add(vo);
|
|
group2.add(vo);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else if (ScoreVerifyRule.RULE2.equals(rule)) {
|
|
} else if (ScoreVerifyRule.RULE2.equals(rule)) {
|
|
for (ScoreVerifyVo vo : vos) {
|
|
for (ScoreVerifyVo vo : vos) {
|
|
- double totalScore=Calculator.add(vo.getObjectiveScore(),vo.getSubjectiveScore());
|
|
|
|
- if(totalScore<=5) {
|
|
|
|
|
|
+ double totalScore = Calculator.add(vo.getObjectiveScore(), vo.getSubjectiveScore());
|
|
|
|
+ if (totalScore <= 5) {
|
|
group1.add(vo);
|
|
group1.add(vo);
|
|
}
|
|
}
|
|
- if(ScoreVerifyRuleCompare.EQUALS.equals(req.getParam().getRuleCompare())
|
|
|
|
- &&totalScore==req.getParam().getCompareScore()) {
|
|
|
|
|
|
+ if (ScoreVerifyRuleCompare.EQUALS.equals(req.getRuleCompare())
|
|
|
|
+ && totalScore == req.getCompareScore()) {
|
|
group2.add(vo);
|
|
group2.add(vo);
|
|
- }else if(ScoreVerifyRuleCompare.GT.equals(req.getParam().getRuleCompare())
|
|
|
|
- &&totalScore>req.getParam().getCompareScore()) {
|
|
|
|
|
|
+ } else if (ScoreVerifyRuleCompare.GT.equals(req.getRuleCompare())
|
|
|
|
+ && totalScore > req.getCompareScore()) {
|
|
group2.add(vo);
|
|
group2.add(vo);
|
|
- }else if(ScoreVerifyRuleCompare.LT.equals(req.getParam().getRuleCompare())
|
|
|
|
- &&totalScore<req.getParam().getCompareScore()) {
|
|
|
|
|
|
+ } else if (ScoreVerifyRuleCompare.LT.equals(req.getRuleCompare())
|
|
|
|
+ && totalScore < req.getCompareScore()) {
|
|
group2.add(vo);
|
|
group2.add(vo);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else if (ScoreVerifyRule.RULE3.equals(rule)) {
|
|
} else if (ScoreVerifyRule.RULE3.equals(rule)) {
|
|
for (ScoreVerifyVo vo : vos) {
|
|
for (ScoreVerifyVo vo : vos) {
|
|
- double totalScore=Calculator.add(vo.getObjectiveScore(),vo.getSubjectiveScore());
|
|
|
|
- if(totalScore<=10) {
|
|
|
|
|
|
+ double totalScore = Calculator.add(vo.getObjectiveScore(), vo.getSubjectiveScore());
|
|
|
|
+ if (totalScore <= 10) {
|
|
group1.add(vo);
|
|
group1.add(vo);
|
|
}
|
|
}
|
|
- if(ScoreVerifyRuleCompare.EQUALS.equals(req.getParam().getRuleCompare())
|
|
|
|
- &&totalScore==req.getParam().getCompareScore()) {
|
|
|
|
|
|
+ if (ScoreVerifyRuleCompare.EQUALS.equals(req.getRuleCompare())
|
|
|
|
+ && totalScore == req.getCompareScore()) {
|
|
group2.add(vo);
|
|
group2.add(vo);
|
|
- }else if(ScoreVerifyRuleCompare.GT.equals(req.getParam().getRuleCompare())
|
|
|
|
- &&totalScore>req.getParam().getCompareScore()) {
|
|
|
|
|
|
+ } else if (ScoreVerifyRuleCompare.GT.equals(req.getRuleCompare())
|
|
|
|
+ && totalScore > req.getCompareScore()) {
|
|
group2.add(vo);
|
|
group2.add(vo);
|
|
- }else if(ScoreVerifyRuleCompare.LT.equals(req.getParam().getRuleCompare())
|
|
|
|
- &&totalScore<req.getParam().getCompareScore()) {
|
|
|
|
|
|
+ } else if (ScoreVerifyRuleCompare.LT.equals(req.getRuleCompare())
|
|
|
|
+ && totalScore < req.getCompareScore()) {
|
|
group2.add(vo);
|
|
group2.add(vo);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
- if(group1.size()>0&&group2.size()>0) {
|
|
|
|
- if(group1.size()>=2||group2.size()>=2) {
|
|
|
|
- //两个list都有值,且至少有一个数量大于2的一定满足
|
|
|
|
|
|
+
|
|
|
|
+ if (group1.size() > 0 && group2.size() > 0) {
|
|
|
|
+ if (group1.size() >= 2 || group2.size() >= 2) {
|
|
|
|
+ // 两个list都有值,且至少有一个数量大于2的一定满足
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
- if(group1.size()==1&&group2.size()==1
|
|
|
|
- &&!group1.get(0).getStudentId().equals(group2.get(0).getStudentId())) {
|
|
|
|
- //都只有一条的时候,id不同则通过
|
|
|
|
|
|
+ if (group1.size() == 1 && group2.size() == 1
|
|
|
|
+ && !group1.get(0).getStudentId().equals(group2.get(0).getStudentId())) {
|
|
|
|
+ // 都只有一条的时候,id不同则通过
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -260,22 +260,22 @@ public class ScoreVerifyServiceImpl extends BaseQueryService<ScoreVerify> implem
|
|
|
|
|
|
@Transactional
|
|
@Transactional
|
|
@Override
|
|
@Override
|
|
- public void reset(Integer scoreVerifyId) {
|
|
|
|
- scoreVerifyDao.delete(scoreVerifyId);
|
|
|
|
- scoreVerifyDetailDao.deleteByScoreVerifyId(scoreVerifyId);
|
|
|
|
|
|
+ public void reset(Integer examId, Integer userId) {
|
|
|
|
+ scoreVerifyDao.deleteByExamIdAndUserId(examId, userId);
|
|
}
|
|
}
|
|
|
|
|
|
@SuppressWarnings("unchecked")
|
|
@SuppressWarnings("unchecked")
|
|
@Override
|
|
@Override
|
|
- public List<ScoreVerifyVo> findFlagged(Integer scoreVerifyId) {
|
|
|
|
|
|
+ public List<ScoreVerifyVo> findFlagged(Integer examId, Integer userId) {
|
|
StringBuilder sql = new StringBuilder();
|
|
StringBuilder sql = new StringBuilder();
|
|
sql.append(
|
|
sql.append(
|
|
" select t.sheet_count sheetCount,t.exam_number examNumber,t.exam_id examId,t.id studentId,t.student_code studentCode,t.name studentName,t.subject_code subjectCode,t.subject_name subjectName, ");
|
|
" select t.sheet_count sheetCount,t.exam_number examNumber,t.exam_id examId,t.id studentId,t.student_code studentCode,t.name studentName,t.subject_code subjectCode,t.subject_name subjectName, ");
|
|
sql.append(
|
|
sql.append(
|
|
" t.is_upload upload,t.is_absent absent,t.subjective_score subjectiveScore,t.subjective_score_list subjectiveScoreList,t.objective_score objectiveScore, ");
|
|
" t.is_upload upload,t.is_absent absent,t.subjective_score subjectiveScore,t.subjective_score_list subjectiveScoreList,t.objective_score objectiveScore, ");
|
|
sql.append(" u.name scoreVerifyUserName,t.score_verify_time scoreVerifyTime ");
|
|
sql.append(" u.name scoreVerifyUserName,t.score_verify_time scoreVerifyTime ");
|
|
- sql.append(" from eb_score_verify_detail r left join eb_exam_student t on r.student_id=t.id ");
|
|
|
|
- sql.append(" left join b_user u on t.score_verify_user=u.id where r.score_verify_id="+ scoreVerifyId+" and t.score_verify_flagged =1 ");
|
|
|
|
|
|
+ sql.append(" from eb_score_verify r left join eb_exam_student t on r.student_id=t.id ");
|
|
|
|
+ sql.append(" left join b_user u on t.score_verify_user=u.id where r.exam_id=" + examId+" and r.user_id="+userId
|
|
|
|
+ + " and t.score_verify_flagged =1 ");
|
|
sql.append(" order by t.student_code,t.subject_code ");
|
|
sql.append(" order by t.student_code,t.subject_code ");
|
|
Query query = entityManager.createNativeQuery(sql.toString());
|
|
Query query = entityManager.createNativeQuery(sql.toString());
|
|
query.unwrap(SQLQuery.class).setResultTransformer(Transformers.aliasToBean(ScoreVerifyVo.class));
|
|
query.unwrap(SQLQuery.class).setResultTransformer(Transformers.aliasToBean(ScoreVerifyVo.class));
|
|
@@ -287,18 +287,19 @@ public class ScoreVerifyServiceImpl extends BaseQueryService<ScoreVerify> implem
|
|
}
|
|
}
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
@SuppressWarnings("unchecked")
|
|
@SuppressWarnings("unchecked")
|
|
@Override
|
|
@Override
|
|
- public List<ScoreVerifyVo> needVerify(Integer scoreVerifyId) {
|
|
|
|
|
|
+ public List<ScoreVerifyVo> needVerify(Integer examId, Integer userId) {
|
|
StringBuilder sql = new StringBuilder();
|
|
StringBuilder sql = new StringBuilder();
|
|
sql.append(
|
|
sql.append(
|
|
" select t.sheet_count sheetCount,t.exam_number examNumber,t.exam_id examId,t.id studentId,t.student_code studentCode,t.name studentName,t.subject_code subjectCode,t.subject_name subjectName, ");
|
|
" select t.sheet_count sheetCount,t.exam_number examNumber,t.exam_id examId,t.id studentId,t.student_code studentCode,t.name studentName,t.subject_code subjectCode,t.subject_name subjectName, ");
|
|
sql.append(
|
|
sql.append(
|
|
" t.is_upload upload,t.is_absent absent,t.subjective_score subjectiveScore,t.subjective_score_list subjectiveScoreList,t.objective_score objectiveScore, ");
|
|
" t.is_upload upload,t.is_absent absent,t.subjective_score subjectiveScore,t.subjective_score_list subjectiveScoreList,t.objective_score objectiveScore, ");
|
|
sql.append(" u.name scoreVerifyUserName,t.score_verify_time scoreVerifyTime ");
|
|
sql.append(" u.name scoreVerifyUserName,t.score_verify_time scoreVerifyTime ");
|
|
- sql.append(" from eb_score_verify_detail r left join eb_exam_student t on r.student_id=t.id ");
|
|
|
|
- sql.append(" left join b_user u on t.score_verify_user=u.id where r.score_verify_id="+ scoreVerifyId+" and r.flagged is null ");
|
|
|
|
|
|
+ sql.append(" from eb_score_verify r left join eb_exam_student t on r.student_id=t.id ");
|
|
|
|
+ sql.append(" left join b_user u on t.score_verify_user=u.id where r.exam_id=" + examId+" and r.user_id="+userId
|
|
|
|
+ + " and r.flagged is null ");
|
|
sql.append(" order by t.student_code,t.subject_code ");
|
|
sql.append(" order by t.student_code,t.subject_code ");
|
|
Query query = entityManager.createNativeQuery(sql.toString());
|
|
Query query = entityManager.createNativeQuery(sql.toString());
|
|
query.unwrap(SQLQuery.class).setResultTransformer(Transformers.aliasToBean(ScoreVerifyVo.class));
|
|
query.unwrap(SQLQuery.class).setResultTransformer(Transformers.aliasToBean(ScoreVerifyVo.class));
|
|
@@ -310,4 +311,19 @@ public class ScoreVerifyServiceImpl extends BaseQueryService<ScoreVerify> implem
|
|
}
|
|
}
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @Transactional
|
|
|
|
+ @Override
|
|
|
|
+ public void tag(Integer examId, Integer userId, Integer studentId, boolean isTag) {
|
|
|
|
+ ScoreVerify sd = scoreVerifyDao.findByExamIdAndUserIdAndStudentId(examId, userId, studentId);
|
|
|
|
+ sd.setFlagged(isTag);
|
|
|
|
+ sd.setVerifyTime(new Date());
|
|
|
|
+ scoreVerifyDao.save(sd);
|
|
|
|
+ examStudentService.scoreVerifyTag(userId, studentId, isTag);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public ScoreVerify findByExamIdAndUserIdAndStudentId(Integer examId, Integer userId, Integer studentId) {
|
|
|
|
+ return scoreVerifyDao.findByExamIdAndUserIdAndStudentId(examId, userId, studentId);
|
|
|
|
+ }
|
|
}
|
|
}
|