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<String, Object> param) {
|
// TODO Auto-generated method stub
|
return 0;
|
}
|
|
@Override
|
public List<ExamBatchInfo> queryExamBatchList(Map<String, Object> param,Pager page) {
|
// TODO Auto-generated method stub
|
return null;
|
}
|
|
@Override
|
public List<Map<String,Object>> 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<ExamBatchClassRe> examResults = this.find(hql, CollectionUtils.newList(new Date()), ExamBatchClassRe.class);
|
List<Map<String,Object>> list=new ArrayList<>();
|
for (ExamBatchClassRe examResult : examResults) {
|
//封装成前端要用的数据
|
Map<String,Object> 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<String> 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<String> 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<ExamBatchClassRe> 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<ExamBatchClassRe> 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);
|
}
|
|
}
|