DdexamServiceImpl.java
5.91 KB
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
package com.bsth.service.ddexam.impl;
import com.bsth.entity.Line;
import com.bsth.entity.LineInformation;
import com.bsth.entity.LineInformationSt;
import com.bsth.entity.LineSt;
import com.bsth.entity.sys.BsthCSysUserRoles;
import com.bsth.entity.sys.RealControAuthority;
import com.bsth.entity.sys.SysUser;
import com.bsth.repository.LineInformationRepository;
import com.bsth.repository.LineInformationStRepository;
import com.bsth.repository.LineRepository;
import com.bsth.repository.LineStRepository;
import com.bsth.repository.sys.BsthCSysUserRolesRepository;
import com.bsth.repository.sys.RealControAuthorityRepository;
import com.bsth.repository.sys.SysUserRepository;
import com.bsth.service.ddexam.DdexamService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
@Service
public class DdexamServiceImpl implements DdexamService {
Logger log = LoggerFactory.getLogger(this.getClass());
@Autowired
SysUserRepository sysUserRepository;
@Autowired
RealControAuthorityRepository realControAuthorityRepository;
@Autowired
BsthCSysUserRolesRepository bsthCSysUserRolesRepository;
@Autowired
LineRepository lineRepository;
@Autowired
LineStRepository lineStRepository;
@Autowired
LineInformationStRepository LineInformationStRepository;
@Autowired
LineInformationRepository lineInformationRepository;
//考生人初始化
@Override
@Transactional //事务
public int initializationAll(Integer rs) {
try {
List<SysUser> userList = sysUserRepository.findBySusUser(); //已有的用户 不考虑用户角色表 正常情况下创建必分配
if (userList.size() >= rs) { //满足考试人数 检查是否分配线路
for (SysUser user : userList) {
if (realControAuthorityRepository.findByUserId(user.getId()) == null) { //检查未分配线路
}
}
} else {
if (userList.size() == 0) { //考试人数 全部重新创建
} else { //已有的人检查分配线路 不够的创建
for (SysUser user : userList) {
if (realControAuthorityRepository.findByUserId(8) == null) { //检查未分配线路
//未分配的创建线路并分配
System.out.println("1");
} else { //已分配线路的分配班次
System.out.println("分配班次...");
}
}
int st = rs - userList.size(); //未创建考试人数
if(usercreateType(st)){
log.info("考试初始化创建成功");
}else{
log.error("-------------1.模板线路大于6条"); //如果情况多了 可以switch
return 0;
}
}
}
}catch (Exception e){
log.error("-----考试初始化失败------",e);
return 1;
}
return 0;
}
//创建考试人数 并分配线路信息
public Boolean usercreateType(int st){
int usernum = sysUserRepository.findAll_distinct().size();
SysUser user = new SysUser();//总人数
for (int i = 0; i < st; i++) { //创建考试人数
int username = usernum++;
user = new SysUser();
user.setCreateDate(new Date());
user.setEnabled(true);
user.setName("ks00"+username);
user.setPassword(new BCryptPasswordEncoder(4).encode("Aa123456"));
user.setUserName("ks00"+username);
// sysUserRepository.save(user);添加 -------**--
user.setId(2); //------暂用
BsthCSysUserRoles userRoles = new BsthCSysUserRoles();
userRoles.setUsers(user.getId());
userRoles.setRoles(73); //统一用73考生
// bsthCSysUserRolesRepository.save(userRoles);添加 -------**--
//List<LineSt> lineStList = lineStRepository.findStAll();//所有模板线路
Integer linebumber = lineRepository.findAll().size(); //线路数量 线路code
String [] mtline = {"A线","B线","C线","D线","E线","F线"}; //对应模板6条线 换成线路name
List<LineInformationSt> litst = (List<LineInformationSt>) LineInformationStRepository.findAll(); //所有模板线路标准和线路
if(litst.size() != 6){
return false;
}
for(int j = 0 ; j <= litst.size() ; j++){
LineSt linest = litst.get(j).getLine();
LineInformationSt Limst = litst.get(j);
Line line = new Line();
BeanUtils.copyProperties(linest,line); //copy
Integer linecodeId = linebumber++ ;
line.setId(linecodeId);
line.setLineCode(linecodeId.toString());
line.setName(mtline[j]+"+"+user.getName());
line.setCoLineCode(linest.getLineCode());
lineRepository.save(line); //线路添加
LineInformation lifat = new LineInformation(); //线路标准
BeanUtils.copyProperties(Limst,lifat);
lifat.setLine(line);
lineInformationRepository.save(lifat); //线路标准信息条件
inforealType(linest.getLineCode());
}
}
return true;
}
public void inforealType(String lineCode){
}
}