|
@@ -246,6 +246,9 @@ public class CqXxxqServiceImpl extends ServiceImpl<CqXxxqMapper, CqXxxq> impleme
|
|
|
//班级抽签
|
|
|
@Override
|
|
|
public String bjcq(String districtname) {
|
|
|
+ if (districtname.isEmpty()){
|
|
|
+ return "数据为空";
|
|
|
+ }
|
|
|
String banji="";
|
|
|
// 判断是否抽班级
|
|
|
LambdaQueryWrapper<CqCqbjxx> query = new LambdaQueryWrapper<>();
|
|
@@ -277,13 +280,13 @@ public class CqXxxqServiceImpl extends ServiceImpl<CqXxxqMapper, CqXxxq> impleme
|
|
|
query1.eq(CqCqbjxx::getDistrictname, cqXxxq.getDistrictname());
|
|
|
CqCqbjxx cqCqbjxx=cqCqbjxxMapper.selectOne(query1);
|
|
|
int studentamount = 45;//抽取人数
|
|
|
+ List<String> dengji=cqXxxqMapper.huoqudsxxdj(cqXxxq.getDistrictname());
|
|
|
//判断是否是市直属学校
|
|
|
if (cqXxxq.getDistrictname().equals("市直属")) {
|
|
|
//获取需要抽签的学校
|
|
|
LambdaQueryWrapper<CqYcqxx> query = new LambdaQueryWrapper<>();
|
|
|
query.eq(CqYcqxx::getDistrictname, cqXxxq.getDistrictname());
|
|
|
List<CqYcqxx> cqYcqxxList=cqYcqxxMapper.selectList(query);
|
|
|
-
|
|
|
for (CqYcqxx cqYcqxx : cqYcqxxList) {
|
|
|
//调用抽班级方法
|
|
|
rycqsjsbj(cqYcqxx,cqCqbjxx,studentamount);
|
|
@@ -291,10 +294,10 @@ public class CqXxxqServiceImpl extends ServiceImpl<CqXxxqMapper, CqXxxq> impleme
|
|
|
}
|
|
|
}else {
|
|
|
//获取当前地市有多少个等级
|
|
|
- List<String> dengji=cqXxxqMapper.huoqudsxxdj(cqXxxq.getDistrictname());
|
|
|
for (String estate : dengji) {
|
|
|
cqXxxq.setEstate(estate);
|
|
|
- System.out.println("显示cqXxxq:"+cqXxxq);
|
|
|
+ System.out.println("-------------------------------------");
|
|
|
+// System.out.println("显示cqXxxq:"+cqXxxq);
|
|
|
//获取需要抽签的学校
|
|
|
LambdaQueryWrapper<CqYcqxx> query = new LambdaQueryWrapper<>();
|
|
|
query.eq(CqYcqxx::getDistrictname, cqXxxq.getDistrictname())
|
|
@@ -309,18 +312,24 @@ public class CqXxxqServiceImpl extends ServiceImpl<CqXxxqMapper, CqXxxq> impleme
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
+ System.out.println("获取学校人数不足抽签人数的学校,都抽签完毕后,去别的学校里补");
|
|
|
+ //获取人员不够的学校进行补充
|
|
|
+ for (String estate : dengji) {
|
|
|
+ bcxxbanjiry(cqXxxq.getDistrictname(),estate,studentamount);
|
|
|
|
|
|
+ }
|
|
|
return null;
|
|
|
}
|
|
|
public void rycqsjsbj(CqYcqxx cqYcqxx, CqCqbjxx cqCqbjxx, int studentamount) {
|
|
|
List<CqCqks> cqCqksList=new ArrayList<>();//学校抽取考生集合
|
|
|
int remainder = 0;//随机数取余的值
|
|
|
String banji="";//班级
|
|
|
- System.out.println("cqYcqxx详情:"+cqYcqxx);
|
|
|
- System.out.println("班级随机数:"+cqCqbjxx.getBz());
|
|
|
+// System.out.println("cqYcqxx详情:"+cqYcqxx);
|
|
|
+// System.out.println("班级随机数:"+cqCqbjxx.getBz());
|
|
|
if(cqYcqxx.getSchoolpopulation()>45){
|
|
|
- System.out.println("够45人开始从班级里抽取人员");
|
|
|
+// System.out.println("够45人开始从班级里抽取人员");
|
|
|
//判断抽到的班级是否够45人
|
|
|
//判断当前学校的班级数量是否在抽取的随机数中
|
|
|
if(Integer.parseInt(cqYcqxx.getClasscode())>=Integer.parseInt(cqCqbjxx.getBz())){
|
|
@@ -341,12 +350,33 @@ public class CqXxxqServiceImpl extends ServiceImpl<CqXxxqMapper, CqXxxq> impleme
|
|
|
cqbanxs(cqYcqxx,banji,Integer.parseInt(cqCqbjxx.getBz()),studentamount);
|
|
|
}
|
|
|
}else {
|
|
|
- cqCqksList=this.cqbanji(cqKsxxMapper.chaxxksxx(cqYcqxx.getDistrictname(),cqYcqxx.getSchoolname()));
|
|
|
- for (CqCqks cqCqks : cqCqksList) {
|
|
|
- cqCqksMapper.insert(cqCqks);
|
|
|
+ LambdaQueryWrapper<CqCqks> query = new LambdaQueryWrapper<>();
|
|
|
+ query.eq(CqCqks::getSchoolname, cqYcqxx.getSchoolname());
|
|
|
+ Long count = cqCqksMapper.selectCount(query);
|
|
|
+ if (Integer.parseInt(count+"")==0) {//有记录时不重复添加数据
|
|
|
+ cqCqksList = this.cqbanji(cqKsxxMapper.chaxxksxx(cqYcqxx.getDistrictname(), cqYcqxx.getSchoolname()));
|
|
|
+ //保存班级记录
|
|
|
+ CqCqbjxq cqCqbjxq = new CqCqbjxq();
|
|
|
+ cqCqbjxq.setYcqxxId(cqYcqxx.getId());
|
|
|
+ cqCqbjxq.setClassname(banji);
|
|
|
+ if (studentamount <= cqCqksList.size()) {
|
|
|
+ cqCqbjxq.setBz(studentamount + "");
|
|
|
+ } else {
|
|
|
+ cqCqbjxq.setBz(cqCqksList.size() + "");
|
|
|
+ }
|
|
|
+ cqCqbjxqMapper.insert(cqCqbjxq);
|
|
|
+ //保存抽签学生
|
|
|
+ for (CqCqks cqCqks : cqCqksList) {
|
|
|
+ cqCqksMapper.insert(cqCqks);
|
|
|
+ }
|
|
|
+ System.out.println("------------------------------------------");
|
|
|
+// System.out.println(cqCqksList);
|
|
|
+ System.out.println("学校人数不足抽签人数全部参加,都抽签完毕后,去别的学校里补");
|
|
|
+
|
|
|
+ }else {
|
|
|
+ System.out.println("不重复添加记录");
|
|
|
}
|
|
|
- System.out.println("学校人数不足抽签人数全部参加,都抽签完毕后,去别的学校里补");
|
|
|
- //获取人员不够的学校进行补充
|
|
|
+
|
|
|
|
|
|
}
|
|
|
}
|
|
@@ -355,8 +385,8 @@ public class CqXxxqServiceImpl extends ServiceImpl<CqXxxqMapper, CqXxxq> impleme
|
|
|
CqCqbjxq cqCqbjxq= new CqCqbjxq();
|
|
|
//获取考生详情
|
|
|
List<CqKsxx> cqKsxxList =cqKsxxMapper.chacqksxx(cqYcqxx.getSchoolname(),banji);
|
|
|
- System.out.println("抽签班级学生数量:"+cqKsxxList.size());
|
|
|
- System.out.println("抽签数量:"+studentamount);
|
|
|
+// System.out.println("抽签班级学生数量:"+cqKsxxList.size());
|
|
|
+// System.out.println("抽签数量:"+studentamount);
|
|
|
List<CqCqks> cqCqksList=new ArrayList<>();//抽中学生保存集合
|
|
|
List<CqKsxx> cqKsxxListcz=new ArrayList<>();//抽中学生集合
|
|
|
//判断班级是否抽签
|
|
@@ -589,8 +619,13 @@ public class CqXxxqServiceImpl extends ServiceImpl<CqXxxqMapper, CqXxxq> impleme
|
|
|
}
|
|
|
//学校人数不够是补充别的学校里的人
|
|
|
public boolean bcxxbanjiry(String districtname,String estate,int studentamount) {
|
|
|
+ //获取地市抽取的随机数
|
|
|
+ LambdaQueryWrapper<CqCqbjxx> query1 = new LambdaQueryWrapper<>();
|
|
|
+ query1.eq(CqCqbjxx::getDistrictname, districtname);
|
|
|
+ CqCqbjxx cqCqbjxx=cqCqbjxxMapper.selectOne(query1);
|
|
|
int chouqurenshu=0;
|
|
|
- int schoolcode=0;
|
|
|
+ int schoolcodewz=0;
|
|
|
+ CqYcqxx cqYcqxxb=new CqYcqxx();
|
|
|
//获取需要补足的学校
|
|
|
List<CqYcqxx> cqYcqxxList= cqYcqxxMapper.chabzrsxx(districtname,estate,studentamount);
|
|
|
System.out.println("显示不够抽签人数的学校");
|
|
@@ -600,7 +635,38 @@ public class CqXxxqServiceImpl extends ServiceImpl<CqXxxqMapper, CqXxxq> impleme
|
|
|
chouqurenshu=studentamount-cqYcqxx.getSchoolpopulation();
|
|
|
//获取当前学校序号,去他邻近的下一所学校去补人
|
|
|
// schoolcode=Integer.parseInt(cqYcqxx.getSchoolcode());
|
|
|
+ //获取当前区下面的所有学校,按getSchoolcode排序
|
|
|
+ List<CqYcqxx> cqycqxxbcList= cqYcqxxMapper.chaqxdjpx(districtname,estate,studentamount);
|
|
|
+ schoolcodewz=cqycqxxbcList.indexOf(cqYcqxx);
|
|
|
+ System.out.println("第几个"+cqycqxxbcList.indexOf(cqYcqxx));
|
|
|
+ System.out.println("共几个"+cqycqxxbcList.size());
|
|
|
+ int code=0;
|
|
|
+ int biaozhi=0;
|
|
|
+ while (code!=cqycqxxbcList.size()){
|
|
|
+ if (schoolcodewz==cqycqxxbcList.size()){
|
|
|
+ schoolcodewz=0;
|
|
|
+ }else {
|
|
|
+ schoolcodewz=schoolcodewz+1;
|
|
|
+ }
|
|
|
+ cqYcqxxb=cqycqxxbcList.get(schoolcodewz);
|
|
|
+ //判断剩余学校人数是否大于需要抽签的人数
|
|
|
+ if (cqKsxxMapper.chaclassrs(cqYcqxxb.getSchoolname()) >chouqurenshu) {
|
|
|
+ biaozhi=1;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ code++;
|
|
|
+ }
|
|
|
+ //判断是否有合适的学校
|
|
|
+ if (biaozhi == 1) {
|
|
|
+ //抽人补
|
|
|
+ System.out.println("显示补足的学校"+cqYcqxxb);
|
|
|
+ //获取剩余班级
|
|
|
|
|
|
+ }else {
|
|
|
+ System.out.println("该区以抽签的学校中无法进行补足。");
|
|
|
+ }
|
|
|
+ ;
|
|
|
+ //获取他之后的学校去补人
|
|
|
// //获取的学校剩余班级人数需要大于需抽签人数
|
|
|
// List<CqYcqxx> cqycqxxbc= cqYcqxxMapper.chabzrsxxbz(districtname,estate,studentamount,cqYcqxx.getSchoolname());
|
|
|
// //获取能够补足的学校
|