派生自 projectDept/qhighschool

EricsHu
2022-12-05 068fc7f2e81178e55fa191a13709af64b1a163f6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
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);
    }
 
}