package com.qxueyou.scc.exam.service.impl; import java.text.SimpleDateFormat; import java.util.*; import com.qxueyou.scc.exam.model.ExamResultV; import org.springframework.stereotype.Service; import com.qxueyou.scc.base.model.Pager; import com.qxueyou.scc.base.model.Result; import com.qxueyou.scc.base.service.impl.CommonAppService; import com.qxueyou.scc.base.util.CollectionUtils; import com.qxueyou.scc.base.util.TraceUtils; import com.qxueyou.scc.exam.model.ExamBatchClassRe; import com.qxueyou.scc.exam.model.ExamBatchInfo; import com.qxueyou.scc.exam.service.IExamBatchService; /** * ÊÔ¾íÅú´Î¹ÜÀí·þÎñ²ã * * @author kevin * @createTime 2017-11-1 */ @Service public class ExamBatchService extends CommonAppService implements IExamBatchService { @Override public int queryExamBatchCount(Map param) { // TODO Auto-generated method stub return 0; } @Override public List queryExamBatchList(Map param,Pager page) { // TODO Auto-generated method stub return null; } @Override public List> queryListForIdName() { // String hql="select v from ExamResultV v where v.startTime >? "; //¸ù¾Ý¿¼ÊÔ»ñÈ¡ËùÓÐÅú´ÎÐÅÏ¢ String hql="select r from ExamBatchInfo i , ExamBatchClassRe r where i.examId in (SELECT e.examId from ExamInfo e where e.deleteFlag is false )" + " and i.deleteFlag is false and i.startTime>? and r.examBatchId=i.examBatchId "; //»ñÈ¡ÁÐ±í£¬¿ªÊ¼Ê±¼ä´óÓÚµ±Ç°Ê±¼ä£¬Ò²¾ÍÊÇ»¹Î´¿ªÊ¼ List examResults = this.find(hql, CollectionUtils.newList(new Date()), ExamBatchClassRe.class); List> list=new ArrayList<>(); for (ExamBatchClassRe examResult : examResults) { //·â×°³Éǰ¶ËÒªÓõÄÊý¾Ý Map map=new HashMap<>(); //»ñÈ¡¿¼ÊÔÃû³Æ¼ÓÅú´ÎÐÅÏ¢ String ql="SELECT e.examName from ExamInfo e where e.deleteFlag is false and e.examId=?"; //»ñÈ¡¿¼ÊÔÃû³Æ String s = this.findUnique(ql, CollectionUtils.newList(examResult.getExamId()), String.class); String q="SELECT e from ExamBatchInfo e where e.deleteFlag is false and e.examBatchId=?"; //Åú´ÎÐÅÏ¢ ExamBatchInfo examBatchInfo = this.findUnique(q, CollectionUtils.newList(examResult.getExamBatchId()), ExamBatchInfo.class); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //²âÊÔ¿¼ÊÔ(¿¼³¡Ò»_2020-06-16 9:00 ~ 06-16 12:00) s+="("+examBatchInfo.getExamRoomName()+"_"+format.format(examBatchInfo.getStartTime())+" ~ "+new SimpleDateFormat("MM-dd HH:mm:ss").format(examBatchInfo.getEndTime())+")"; map.put("batchName",s); map.put("batchId",examResult.getExamBatchId()); map.put("classId",examResult.getClassId()); list.add(map); } return list; } @Override public List queryComNameByBatchId(String classId) { //¸ù¾ÝËùÔÚ×éid String hql="select f.subjectId from StuStudent f where f.subjectId is not null and f.classId =? and f.deleteFlag is false group by f.subjectId"; //»ñÈ¡¹«Ë¾Ãû³ÆÁбí return this.find(hql, CollectionUtils.newList(classId), String.class); } @Override public List queryStudentNoByComNameAndBatch(String subjectId,String classId) { //¸ù¾ÝËùÔÚ×éid // String hql="select f.studentNo from StuStudent f where f.subjectId=? and f.classId =? and f.deleteFlag is false "; String hql="select f.studentNo from StuStudent f where f.classId =? and f.deleteFlag is false "; //»ñÈ¡Áбí // return this.find(hql, CollectionUtils.newList(subjectId,classId), String.class); return this.find(hql, CollectionUtils.newList(classId), String.class); } @Override public String addExamBatch(ExamBatchInfo examBatchInfo) { //²éѯ×î´óÅú´ÎºÅ Short maxBatchNo = this.findUnique("select max(f.examBatchNo) from ExamBatchInfo f where f.examId =? and f.deleteFlag is false", CollectionUtils.newList(examBatchInfo.getExamId()), Short.class); maxBatchNo = maxBatchNo==null?0:maxBatchNo; examBatchInfo.setExamBatchNo(++maxBatchNo); TraceUtils.setCreateTrace(examBatchInfo); this.insert(examBatchInfo); List lstExamBatchClassRe = examBatchInfo.getReClasses(); if(lstExamBatchClassRe!=null &&lstExamBatchClassRe.size()>0){ for(ExamBatchClassRe examBatchClassRe :lstExamBatchClassRe){ TraceUtils.setCreateTrace(examBatchClassRe); examBatchClassRe.setExamBatchId(examBatchInfo.getExamBatchId()); examBatchClassRe.setExamId(examBatchInfo.getExamId()); this.insert(examBatchClassRe); } } return examBatchInfo.getExamBatchId(); } @Override public Result deleteExamBatch(String[] elxamBatchIds) { Result result = new Result(true) ; if(elxamBatchIds!=null && elxamBatchIds.length>0 ){ String hql = "update ExamBatchInfo set deleteFlag = true where examBatchId=?"; result = bulkUpdateInLoop(hql, elxamBatchIds); } return result; } @Override public Result updateExamBatch(ExamBatchInfo param) { ExamBatchInfo examBatchInfo = read(ExamBatchInfo.class, param.getExamBatchId()); if(examBatchInfo!=null){ TraceUtils.setUpdateTrace(examBatchInfo); examBatchInfo.setStartTime(param.getStartTime()); examBatchInfo.setEndTime(param.getEndTime()); List lstExamBatchClassRe = param.getReClasses(); //ɾ³ýÔ­À´µÄ¹ØÁª¹ØÏµ String hql="update ExamBatchClassRe set deleteFlag = true where examBatchId=? "; this.bulkUpdate(hql, new Object[]{ param.getExamBatchId()}); if(lstExamBatchClassRe!=null &&lstExamBatchClassRe.size()>0){ for(ExamBatchClassRe examBatchClassRe :lstExamBatchClassRe){ TraceUtils.setCreateTrace(examBatchClassRe); examBatchClassRe.setExamBatchId(examBatchInfo.getExamBatchId()); examBatchClassRe.setExamId(examBatchInfo.getExamId()); this.insert(examBatchClassRe); } } } return save(examBatchInfo); } @Override public ExamBatchInfo queryExamBatchDetail(String examBatchId) { return this.read(ExamBatchInfo.class, examBatchId); } @Override public ExamBatchClassRe queryExamBatchByClassId(String examBatchId) { String hql="select f from ExamBatchClassRe f where f.examBatchId =? and f.deleteFlag is false"; return this.findUnique(hql, CollectionUtils.newList(examBatchId), ExamBatchClassRe.class); } }