|
@@ -7,8 +7,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.ynfy.buss.exam.chouqian.entity.*;
|
|
|
import com.ynfy.buss.exam.chouqian.mapper.*;
|
|
|
import com.ynfy.buss.exam.chouqian.service.ICqXxxqService;
|
|
|
-import org.jeecg.common.api.vo.Result;
|
|
|
-import org.jeecg.modules.system.entity.SysDepart;
|
|
|
+import org.jeecg.common.exception.JeecgBootException;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
@@ -34,6 +33,8 @@ public class CqXxxqServiceImpl extends ServiceImpl<CqXxxqMapper, CqXxxq> impleme
|
|
|
@Autowired
|
|
|
private CqCqbjxxMapper cqCqbjxxMapper ;
|
|
|
@Autowired
|
|
|
+ private CqCqbjxqMapper cqCqbjxqMapper ;
|
|
|
+ @Autowired
|
|
|
|
|
|
//指定区间内抽取随机数
|
|
|
public static int getRandomNumber(int min, int max) {
|
|
@@ -108,25 +109,25 @@ public class CqXxxqServiceImpl extends ServiceImpl<CqXxxqMapper, CqXxxq> impleme
|
|
|
|
|
|
return winners;
|
|
|
}
|
|
|
+ //学校抽签
|
|
|
@Override
|
|
|
- public String cqxx(CqXxxq cqXxxq) {
|
|
|
- int studentamount=Integer.parseInt(cqXxxq.getStudentamount());
|
|
|
- //根据县区名称、年级、层次获取符合的学校
|
|
|
- List<CqXxxq> cqXxxqList=cqXxxqMapper.cqxxxq(cqXxxq);
|
|
|
-// System.out.println("显示要抽签的学校。");
|
|
|
+ public List<CqXxxq> cqxx(CqXxxq cqXxxq) {
|
|
|
List<CqXxxq> cqXxList=new ArrayList<>();//被抽签到到学校
|
|
|
- if(cqXxxqList.isEmpty()){
|
|
|
- return "没有可抽签的学校";
|
|
|
- }else if(cqXxxqList.size()<Integer.parseInt(cqXxxq.getSchooamount())) {
|
|
|
- return "可抽签的学数量不能大于以抽签学校数量";
|
|
|
- }else {
|
|
|
- cqXxList=chouschool(cqXxxqList, Integer.parseInt(cqXxxq.getSchooamount()));
|
|
|
- CqYcqxx cqYcqxx=new CqYcqxx();//添加抽取记录的对象
|
|
|
-
|
|
|
+ List<CqXxxq> cqXxxqList=new ArrayList<>();
|
|
|
+ CqYcqxx cqYcqxx=new CqYcqxx();//添加抽取记录的对象
|
|
|
+ //判断是否是市直属学校
|
|
|
+ if (cqXxxq.getDistrictname().equals("市直属")) {
|
|
|
+ cqXxList=cqXxxqMapper.cqxxxqszs(cqXxxq);
|
|
|
+ if(cqXxList.isEmpty()){
|
|
|
+ throw new JeecgBootException("没有可抽签的学校!");
|
|
|
+ }else {
|
|
|
+ //保存被抽签的学校
|
|
|
for (CqXxxq xxxq : cqXxList) {
|
|
|
cqYcqxx.setId(null);
|
|
|
cqYcqxx.setDistrictname(xxxq.getDistrictname());
|
|
|
cqYcqxx.setSchoolname(xxxq.getSchoolname());
|
|
|
+ cqYcqxx.setSchoolcode(xxxq.getSchoolcode());
|
|
|
+ cqYcqxx.setClasscode(xxxq.getClasscode());
|
|
|
cqYcqxx.setNianji(xxxq.getNianji());
|
|
|
cqYcqxx.setEstate(xxxq.getEstate());
|
|
|
//获取抽签学校的考生数
|
|
@@ -135,45 +136,33 @@ public class CqXxxqServiceImpl extends ServiceImpl<CqXxxqMapper, CqXxxq> impleme
|
|
|
.eq(CqKsxx::getSchoolname, xxxq.getSchoolname());
|
|
|
cqYcqxx.setSchoolpopulation(Math.toIntExact(cqKsxxMapper.selectCount(query1)));
|
|
|
cqYcqxxMapper.insert(cqYcqxx);
|
|
|
- //抽签班级
|
|
|
- this.cqbanji(cqYcqxx,xxxq.getSchoolname(),studentamount);
|
|
|
}
|
|
|
-// //正常情况抽取完成,开始抽取学校不足指定人数的规则
|
|
|
- this.bcxxbanjiry(cqXxxq.getDistrictname(),cqXxxq.getEstate(),studentamount);
|
|
|
- return "抽签完成!";
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- //抽签不允许抽已经抽取的区
|
|
|
- @Override
|
|
|
- public String cqxxbcf(CqXxxq cqXxxq) {
|
|
|
- int studentamount=Integer.parseInt(cqXxxq.getStudentamount());
|
|
|
+ return cqXxList;
|
|
|
+ }
|
|
|
+ }else {
|
|
|
//根据县区名称、年级、层次获取符合的学校
|
|
|
- List<CqXxxq> cqXxxqList=cqXxxqMapper.cqxxxq(cqXxxq);
|
|
|
-
|
|
|
+ cqXxxqList=cqXxxqMapper.cqxxxq(cqXxxq);
|
|
|
if(cqXxxqList.isEmpty()){
|
|
|
- return "没有可抽签的学校";
|
|
|
+ throw new JeecgBootException("没有可抽签的学校!");
|
|
|
}else if(cqXxxqList.size()<Integer.parseInt(cqXxxq.getSchooamount())) {
|
|
|
- return "可抽签的学数量不能大于以抽签学校数量";
|
|
|
- }else{
|
|
|
- // System.out.println("显示要抽签的学校。");
|
|
|
- List<CqXxxq> cqXxList=new ArrayList<>();//被抽签到到学校
|
|
|
- cqXxList=chouschool(cqXxxqList, Integer.parseInt(cqXxxq.getSchooamount()));
|
|
|
-// System.out.println("抽取到的学校"+cqXxList);
|
|
|
- CqYcqxx cqYcqxx=new CqYcqxx();//添加抽取记录的对象
|
|
|
+ throw new JeecgBootException("可抽签的学数量不能大于以抽签学校数量!");
|
|
|
+ }else {
|
|
|
//检查当前区是否已经抽签
|
|
|
LambdaQueryWrapper<CqYcqxx> query = new LambdaQueryWrapper<>();
|
|
|
- query.eq(CqYcqxx::getDistrictname, cqXxxq.getDistrictname());
|
|
|
+ query.eq(CqYcqxx::getDistrictname, cqXxxq.getDistrictname())
|
|
|
+ .eq(CqYcqxx::getEstate, cqXxxq.getEstate());
|
|
|
Long count = cqYcqxxMapper.selectCount(query);
|
|
|
-// System.out.println("显示count:"+count);
|
|
|
if (Integer.parseInt(count+"") >0) {
|
|
|
- System.out.println("该区已经有抽签记录无法重复抽签");
|
|
|
+ throw new JeecgBootException("该区当前等级已经有抽签记录无法重复抽签!");
|
|
|
}else if(Integer.parseInt(count+"") ==0){
|
|
|
+ cqXxList=chouschool(cqXxxqList, Integer.parseInt(cqXxxq.getSchooamount()));
|
|
|
//保存被抽签的学校
|
|
|
for (CqXxxq xxxq : cqXxList) {
|
|
|
cqYcqxx.setId(null);
|
|
|
cqYcqxx.setDistrictname(xxxq.getDistrictname());
|
|
|
cqYcqxx.setSchoolname(xxxq.getSchoolname());
|
|
|
+ cqYcqxx.setSchoolcode(xxxq.getSchoolcode());
|
|
|
+ cqYcqxx.setClasscode(xxxq.getClasscode());
|
|
|
cqYcqxx.setNianji(xxxq.getNianji());
|
|
|
cqYcqxx.setEstate(xxxq.getEstate());
|
|
|
//获取抽签学校的考生数
|
|
@@ -182,94 +171,182 @@ public class CqXxxqServiceImpl extends ServiceImpl<CqXxxqMapper, CqXxxq> impleme
|
|
|
.eq(CqKsxx::getSchoolname, xxxq.getSchoolname());
|
|
|
cqYcqxx.setSchoolpopulation(Math.toIntExact(cqKsxxMapper.selectCount(query1)));
|
|
|
cqYcqxxMapper.insert(cqYcqxx);
|
|
|
- //抽签班级
|
|
|
- this.cqbanji(cqYcqxx,xxxq.getSchoolname(),studentamount);
|
|
|
}
|
|
|
-// //正常情况抽取完成,开始抽取学校不足指定人数的规则
|
|
|
- this.bcxxbanjiry(cqXxxq.getDistrictname(),cqXxxq.getEstate(),studentamount);
|
|
|
}else {
|
|
|
System.out.println("异常");
|
|
|
}
|
|
|
- return "抽签完成!";
|
|
|
+ return cqXxList;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<String> huoquds() {
|
|
|
- return cqXxxqMapper.huoquds();
|
|
|
+ public List<CqXxxq> hqxx(CqXxxq cqXxxq) {
|
|
|
+ LambdaQueryWrapper<CqXxxq> query = new LambdaQueryWrapper<>();
|
|
|
+ query.eq(CqXxxq::getDistrictname, cqXxxq.getDistrictname())
|
|
|
+ .eq(CqXxxq::getEstate, cqXxxq.getEstate())
|
|
|
+ .eq(CqXxxq::getNianji, cqXxxq.getNianji());
|
|
|
+ List<CqXxxq> cqXxxqList=cqXxxqMapper.selectList(query);
|
|
|
+ return cqXxxqList;
|
|
|
}
|
|
|
|
|
|
+ // //抽签不允许抽已经抽取的区
|
|
|
+// @Override
|
|
|
+// public String cqxxbcf(CqXxxq cqXxxq) {
|
|
|
+// int studentamount=Integer.parseInt(cqXxxq.getStudentamount());
|
|
|
+// //根据县区名称、年级、层次获取符合的学校
|
|
|
+// List<CqXxxq> cqXxxqList=cqXxxqMapper.cqxxxq(cqXxxq);
|
|
|
+//
|
|
|
+// if(cqXxxqList.isEmpty()){
|
|
|
+// return "没有可抽签的学校";
|
|
|
+// }else if(cqXxxqList.size()<Integer.parseInt(cqXxxq.getSchooamount())) {
|
|
|
+// return "可抽签的学数量不能大于以抽签学校数量";
|
|
|
+// }else{
|
|
|
+// // System.out.println("显示要抽签的学校。");
|
|
|
+// List<CqXxxq> cqXxList=new ArrayList<>();//被抽签到到学校
|
|
|
+// cqXxList=chouschool(cqXxxqList, Integer.parseInt(cqXxxq.getSchooamount()));
|
|
|
+//// System.out.println("抽取到的学校"+cqXxList);
|
|
|
+// CqYcqxx cqYcqxx=new CqYcqxx();//添加抽取记录的对象
|
|
|
+// //检查当前区是否已经抽签
|
|
|
+// LambdaQueryWrapper<CqYcqxx> query = new LambdaQueryWrapper<>();
|
|
|
+// query.eq(CqYcqxx::getDistrictname, cqXxxq.getDistrictname());
|
|
|
+// Long count = cqYcqxxMapper.selectCount(query);
|
|
|
+//// System.out.println("显示count:"+count);
|
|
|
+// if (Integer.parseInt(count+"") >0) {
|
|
|
+// System.out.println("该区已经有抽签记录无法重复抽签");
|
|
|
+// }else if(Integer.parseInt(count+"") ==0){
|
|
|
+// //保存被抽签的学校
|
|
|
+// for (CqXxxq xxxq : cqXxList) {
|
|
|
+// cqYcqxx.setId(null);
|
|
|
+// cqYcqxx.setDistrictname(xxxq.getDistrictname());
|
|
|
+// cqYcqxx.setSchoolname(xxxq.getSchoolname());
|
|
|
+// cqYcqxx.setNianji(xxxq.getNianji());
|
|
|
+// cqYcqxx.setEstate(xxxq.getEstate());
|
|
|
+// //获取抽签学校的考生数
|
|
|
+// LambdaQueryWrapper<CqKsxx> query1 = new LambdaQueryWrapper<>();
|
|
|
+// query1.eq(CqKsxx::getDistrictname, xxxq.getDistrictname())
|
|
|
+// .eq(CqKsxx::getSchoolname, xxxq.getSchoolname());
|
|
|
+// cqYcqxx.setSchoolpopulation(Math.toIntExact(cqKsxxMapper.selectCount(query1)));
|
|
|
+// cqYcqxxMapper.insert(cqYcqxx);
|
|
|
+// //抽签班级
|
|
|
+//// this.cqbanji(cqYcqxx,xxxq.getSchoolname(),studentamount);
|
|
|
+// }
|
|
|
+//// //正常情况抽取完成,开始抽取学校不足指定人数的规则
|
|
|
+//// this.bcxxbanjiry(cqXxxq.getDistrictname(),cqXxxq.getEstate(),studentamount);
|
|
|
+// }else {
|
|
|
+// System.out.println("异常");
|
|
|
+// }
|
|
|
+// return "抽签完成!";
|
|
|
+// }
|
|
|
+// }
|
|
|
+ //班级抽签
|
|
|
@Override
|
|
|
- public List<String> huoqudsxxdj(String districtname) {
|
|
|
- return cqXxxqMapper.huoqudsxxdj(districtname);
|
|
|
+ public String bjcq(String districtname) {
|
|
|
+ String banji="";
|
|
|
+// 判断是否抽班级
|
|
|
+ LambdaQueryWrapper<CqCqbjxx> query = new LambdaQueryWrapper<>();
|
|
|
+ query.eq(CqCqbjxx::getDistrictname, districtname);
|
|
|
+ Long count = cqCqbjxxMapper.selectCount(query);
|
|
|
+ if (Integer.parseInt(count+"") >0) {
|
|
|
+// throw new JeecgBootException("该区已经有抽签班级记录无法重复抽签!");
|
|
|
+ System.out.println("该区已经有抽签班级记录无法重复抽签");
|
|
|
+ }else if(Integer.parseInt(count+"") ==0){
|
|
|
+ //获取当前区内班级数量最大的学校的班级数量
|
|
|
+ String zuidashuliang =cqYcqxxMapper.chabanjishu(districtname);
|
|
|
+ int sjs =getRandomNumber(Integer.parseInt(zuidashuliang));
|
|
|
+ banji=convertNumberToChinese(sjs)+"班";
|
|
|
+ System.out.println(banji);
|
|
|
+ //添加到数据库
|
|
|
+ CqCqbjxx cqCqbjxx= new CqCqbjxx();
|
|
|
+ cqCqbjxx.setDistrictname(districtname);
|
|
|
+ cqCqbjxx.setClassname(banji);
|
|
|
+ cqCqbjxx.setBz(sjs+"");
|
|
|
+ cqCqbjxxMapper.insert(cqCqbjxx);
|
|
|
+ }
|
|
|
+ return banji;
|
|
|
}
|
|
|
-
|
|
|
+//人员抽签
|
|
|
@Override
|
|
|
- public List<String> huoqudsxxnj(String districtname) {
|
|
|
- return cqXxxqMapper.huoqudsxxnj(districtname);
|
|
|
+ public String rycq(CqXxxq cqXxxq) {
|
|
|
+ //获取地市抽取的随机数
|
|
|
+ LambdaQueryWrapper<CqCqbjxx> query1 = new LambdaQueryWrapper<>();
|
|
|
+ query1.eq(CqCqbjxx::getDistrictname, cqXxxq.getDistrictname());
|
|
|
+ CqCqbjxx cqCqbjxx=cqCqbjxxMapper.selectOne(query1);
|
|
|
+ System.out.println("----------------------");
|
|
|
+// System.out.println(cqCqbjxx);
|
|
|
+ //获取需要抽签的学校
|
|
|
+ LambdaQueryWrapper<CqYcqxx> query = new LambdaQueryWrapper<>();
|
|
|
+ query.eq(CqYcqxx::getDistrictname, cqXxxq.getDistrictname())
|
|
|
+ .eq(CqYcqxx::getEstate, cqXxxq.getEstate());
|
|
|
+ List<CqYcqxx> cqYcqxxList=cqYcqxxMapper.selectList(query);
|
|
|
+ int studentamount = 45;//抽取人数
|
|
|
+ for (CqYcqxx cqYcqxx : cqYcqxxList) {
|
|
|
+ //调用抽班级方法
|
|
|
+ rycqsjsbj(cqYcqxx,cqCqbjxx,studentamount);
|
|
|
+ System.out.println(cqYcqxx);
|
|
|
+ }
|
|
|
+ return null;
|
|
|
}
|
|
|
+ public String rycqsjsbj(CqYcqxx cqYcqxx,CqCqbjxx cqCqbjxx,int studentamount) {
|
|
|
+ List<CqCqks> cqCqksList=new ArrayList<>();//学校抽取考生集合
|
|
|
+ int remainder = 0;//随机数取余的值
|
|
|
+ String banji="";//班级
|
|
|
+ if(cqYcqxx.getSchoolpopulation()>45){
|
|
|
+ System.out.println("够45人开始从班级里抽取人员");
|
|
|
+ //判断抽到的班级是否够45人
|
|
|
+ //判断当前学校的班级数量是否在抽取的随机数中
|
|
|
+ if(Integer.parseInt(cqYcqxx.getClasscode())>=Integer.parseInt(cqCqbjxx.getBz())){
|
|
|
+ //获取抽到的班级是几班
|
|
|
+ banji=cqYcqxx.getNianji()+convertNumberToChinese(Integer.parseInt(cqCqbjxx.getBz()))+"班";
|
|
|
+ //获取班级里面的人
|
|
|
+ System.out.println("banji1:"+banji);
|
|
|
+ cqbanxs(cqYcqxx,banji,Integer.parseInt(cqCqbjxx.getBz()),studentamount);
|
|
|
+ }else {
|
|
|
+ //小于则随机数除以班级数量取余获取抽到的班级
|
|
|
+ remainder=Integer.parseInt(cqCqbjxx.getBz())%Integer.parseInt(cqYcqxx.getClasscode());
|
|
|
+ if (remainder==0){
|
|
|
+ remainder=remainder+1;
|
|
|
+ }
|
|
|
+ banji=cqYcqxx.getNianji()+convertNumberToChinese(remainder)+"班";
|
|
|
+ System.out.println("banji2:"+banji);
|
|
|
|
|
|
- public boolean cqbanji(CqYcqxx cqYcqxx,String Schoolname,int studentamount) {
|
|
|
- //校验当前学校是否进行班级抽取
|
|
|
-// System.out.println("yyz显示cqYcqxx:"+cqYcqxx);
|
|
|
-// System.out.println("yyz显示xxxq:"+xxxq);
|
|
|
-// LambdaQueryWrapper<CqCqbjxx> query1 = new LambdaQueryWrapper<>();
|
|
|
-// query1.eq(CqCqbjxx::getYcqxxId, cqYcqxx.getId());
|
|
|
-// Long count1 = cqCqbjxxMapper.selectCount(query1);
|
|
|
-// if (Integer.parseInt(count1+"") >0) {
|
|
|
-// System.out.println("该学校以抽签班级");
|
|
|
-// }else if(Integer.parseInt(count1+"") ==0){
|
|
|
- //学校抽签完毕抽取学校班级
|
|
|
- //查询当前学校有多少个班级
|
|
|
- List<String> bjlist=cqKsxxMapper.chaclassname(Schoolname);
|
|
|
- //抽签班级
|
|
|
- System.out.println(bjlist);
|
|
|
- List<String> chouqianclass=chouclass(bjlist,1);
|
|
|
- CqCqbjxx cqCqbjxx= new CqCqbjxx();
|
|
|
- cqCqbjxx.setYcqxxId(cqYcqxx.getId());
|
|
|
- cqCqbjxx.setClassname(chouqianclass.get(0));
|
|
|
- cqCqbjxxMapper.insert(cqCqbjxx);
|
|
|
- //调用抽人方法
|
|
|
- this.cqbanjiry(cqYcqxx,Schoolname,cqCqbjxx,studentamount);
|
|
|
-// }
|
|
|
-
|
|
|
- return true;
|
|
|
- }
|
|
|
- //补学校抽签班级
|
|
|
- public boolean cqbanjibxx(CqYcqxx cqYcqxx,String Schoolname,int studentamount) {
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+ System.out.println("学校人数不足抽签人数全部参加,都抽签完毕后,去别的学校里补");
|
|
|
+ //获取人员不够的学校进行补充
|
|
|
|
|
|
- //查询当前学校有多少个班级
|
|
|
- List<String> bjlist=cqKsxxMapper.chaclassname(Schoolname);
|
|
|
- //抽签班级
|
|
|
- System.out.println(bjlist);
|
|
|
- List<String> chouqianclass=chouclass(bjlist,1);
|
|
|
- CqCqbjxx cqCqbjxx= new CqCqbjxx();
|
|
|
- cqCqbjxx.setYcqxxId(cqYcqxx.getId());
|
|
|
- cqCqbjxx.setClassname(chouqianclass.get(0));
|
|
|
- cqCqbjxx.setClasssjs("补给"+cqYcqxx.getSchoolname()+studentamount+"人");
|
|
|
- cqCqbjxxMapper.insert(cqCqbjxx);
|
|
|
- //调用抽人方法
|
|
|
- this.cqbanjiry(cqYcqxx,Schoolname,cqCqbjxx,studentamount);
|
|
|
- return true;
|
|
|
+ }
|
|
|
+ return null;
|
|
|
}
|
|
|
- public boolean cqbanjiry(CqYcqxx cqYcqxx,String Schoolname,CqCqbjxx cqCqbjxx,int studentamount) {
|
|
|
- //班级抽取完毕开始抽取学生
|
|
|
- //获取班级考试人数
|
|
|
- System.out.println("开始抽人数");
|
|
|
+ //根据班级抽学生
|
|
|
+ public void cqbanxs(CqYcqxx cqYcqxx, String banji, int sjs, int studentamount) {
|
|
|
+ CqCqbjxq cqCqbjxq= new CqCqbjxq();
|
|
|
//获取考生详情
|
|
|
- List<CqKsxx> cqKsxxList =cqKsxxMapper.chacqksxx(Schoolname,cqCqbjxx.getClassname());
|
|
|
-// System.out.println("抽签班级学生详情"+cqKsxxList);
|
|
|
- System.out.println("抽签班级学生数量"+cqKsxxList.size());
|
|
|
+ List<CqKsxx> cqKsxxList =cqKsxxMapper.chacqksxx(cqYcqxx.getSchoolname(),banji);
|
|
|
+ System.out.println("抽签班级学生数量:"+cqKsxxList.size());
|
|
|
+ System.out.println("抽签数量:"+studentamount);
|
|
|
List<CqCqks> cqCqksList=new ArrayList<>();//抽中学生保存集合
|
|
|
List<CqKsxx> cqKsxxListcz=new ArrayList<>();//抽中学生集合
|
|
|
- //判断抽到的学校人数是否大于指定人数
|
|
|
- if(Integer.parseInt(String.valueOf(cqYcqxx.getSchoolpopulation()))>studentamount){
|
|
|
//判断班级是否抽签
|
|
|
LambdaQueryWrapper<CqCqks> query = new LambdaQueryWrapper<>();
|
|
|
- query.eq(CqCqks::getSchoolname, Schoolname)
|
|
|
- .eq(CqCqks::getClassname, cqCqbjxx.getClassname());
|
|
|
+ query.eq(CqCqks::getSchoolname, cqYcqxx.getSchoolname())
|
|
|
+ .eq(CqCqks::getClassname, banji);
|
|
|
Long count = cqCqksMapper.selectCount(query);
|
|
|
if (Integer.parseInt(count+"")==0){
|
|
|
+ //抽签班级信息保存入库
|
|
|
+ cqCqbjxq.setYcqxxId(cqYcqxx.getId());
|
|
|
+ cqCqbjxq.setClassname(banji);
|
|
|
+ if (studentamount<=cqKsxxList.size()) {
|
|
|
+ cqCqbjxq.setBz(studentamount+"");
|
|
|
+ }else {
|
|
|
+ cqCqbjxq.setBz(cqKsxxList.size()+"");
|
|
|
+ }
|
|
|
+ cqCqbjxqMapper.insert(cqCqbjxq);
|
|
|
//判断班级人数是否符合抽签人数
|
|
|
if(cqKsxxList.size()>studentamount){
|
|
|
System.out.println("大于45,随机抽人");
|
|
@@ -297,36 +374,175 @@ public class CqXxxqServiceImpl extends ServiceImpl<CqXxxqMapper, CqXxxq> impleme
|
|
|
cqCqks.setId(null);
|
|
|
cqCqksMapper.insert(cqCqks);
|
|
|
}
|
|
|
- //在本校中重新抽班级补人
|
|
|
-// this.cqbanji(cqYcqxx,xxxq,studentamount-cqKsxxList.size());
|
|
|
- //查询当前学校剩余多少个班级
|
|
|
- List<String> bjlist=cqKsxxMapper.chaclassname(Schoolname);
|
|
|
- //抽签班级
|
|
|
- System.out.println(bjlist);
|
|
|
- List<String> chouqianclass=chouclass(bjlist,1);
|
|
|
- CqCqbjxx cqCqbjxx1= new CqCqbjxx();
|
|
|
- cqCqbjxx1.setYcqxxId(cqYcqxx.getId());
|
|
|
- cqCqbjxx1.setClassname(chouqianclass.get(0));
|
|
|
- cqCqbjxx1.setClasssjs("补");
|
|
|
- cqCqbjxxMapper.insert(cqCqbjxx1);
|
|
|
- //调用抽人方法 只抽取缺的人数
|
|
|
- this.cqbanjiry(cqYcqxx,Schoolname,cqCqbjxx1,studentamount-cqKsxxList.size());
|
|
|
+ //顺序抽取下一个班
|
|
|
+ sjs=sjs+1;
|
|
|
+ CqCqbjxx cqCqbjxx=new CqCqbjxx();
|
|
|
+ cqCqbjxx.setBz(sjs+"");
|
|
|
+ rycqsjsbj(cqYcqxx,cqCqbjxx,studentamount-cqKsxxList.size());
|
|
|
}
|
|
|
}else {
|
|
|
System.out.println("该班级以抽签");
|
|
|
}
|
|
|
+ }
|
|
|
+ // 生成抽签班级随机数
|
|
|
+ public static int getRandomNumber(int zuidashuliang) {
|
|
|
+ Random random = new Random();
|
|
|
+ return random.nextInt(zuidashuliang) + 1; // nextInt(x)生成0-x,加1后变为1-x
|
|
|
+ }
|
|
|
+ // 将数字转换为中文大写形式
|
|
|
+ public static String convertNumberToChinese(int number) {
|
|
|
+ String[] chineseNumbers = {
|
|
|
+ "一", "二", "三", "四", "五",
|
|
|
+ "六", "七", "八", "九", "十",
|
|
|
+ "十一", "十二", "十三", "十四", "十五",
|
|
|
+ "十六", "十七", "十八", "十九", "二十"
|
|
|
+ };
|
|
|
|
|
|
- }else {
|
|
|
- cqCqksList=this.cqbanji(cqKsxxList);
|
|
|
- for (CqCqks cqCqks : cqCqksList) {
|
|
|
- cqCqksMapper.insert(cqCqks);
|
|
|
- }
|
|
|
- System.out.println("学校人数不足抽签人数全部参加,都抽签完毕后,去别的学校里补");
|
|
|
-
|
|
|
+ if (number >= 1 && number <= 20) {
|
|
|
+ return chineseNumbers[number - 1]; // 数组索引从0开始
|
|
|
+ } else {
|
|
|
+ return "未知";
|
|
|
}
|
|
|
- return true;
|
|
|
}
|
|
|
- //循环赋值
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<String> huoquds() {
|
|
|
+ return cqXxxqMapper.huoquds();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<String> huoqudsxxdj(String districtname) {
|
|
|
+ return cqXxxqMapper.huoqudsxxdj(districtname);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<String> huoqudsxxnj(String districtname) {
|
|
|
+ return cqXxxqMapper.huoqudsxxnj(districtname);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String qccqxx() {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ // public boolean cqbanji(CqYcqxx cqYcqxx,String Schoolname,int studentamount) {
|
|
|
+// //校验当前学校是否进行班级抽取
|
|
|
+//// System.out.println("yyz显示cqYcqxx:"+cqYcqxx);
|
|
|
+//// System.out.println("yyz显示xxxq:"+xxxq);
|
|
|
+//// LambdaQueryWrapper<CqCqbjxx> query1 = new LambdaQueryWrapper<>();
|
|
|
+//// query1.eq(CqCqbjxx::getYcqxxId, cqYcqxx.getId());
|
|
|
+//// Long count1 = cqCqbjxxMapper.selectCount(query1);
|
|
|
+//// if (Integer.parseInt(count1+"") >0) {
|
|
|
+//// System.out.println("该学校以抽签班级");
|
|
|
+//// }else if(Integer.parseInt(count1+"") ==0){
|
|
|
+// //学校抽签完毕抽取学校班级
|
|
|
+// //查询当前学校有多少个班级
|
|
|
+// List<String> bjlist=cqKsxxMapper.chaclassname(Schoolname);
|
|
|
+// //抽签班级
|
|
|
+// System.out.println(bjlist);
|
|
|
+// List<String> chouqianclass=chouclass(bjlist,1);
|
|
|
+// CqCqbjxx cqCqbjxx= new CqCqbjxx();
|
|
|
+// cqCqbjxx.setYcqxxId(cqYcqxx.getId());
|
|
|
+// cqCqbjxx.setClassname(chouqianclass.get(0));
|
|
|
+// cqCqbjxxMapper.insert(cqCqbjxx);
|
|
|
+// //调用抽人方法
|
|
|
+// this.cqbanjiry(cqYcqxx,Schoolname,cqCqbjxx,studentamount);
|
|
|
+//// }
|
|
|
+//
|
|
|
+// return true;
|
|
|
+// }
|
|
|
+ //补学校抽签班级
|
|
|
+// public boolean cqbanjibxx(CqYcqxx cqYcqxx,String Schoolname,int studentamount) {
|
|
|
+//
|
|
|
+// //查询当前学校有多少个班级
|
|
|
+// List<String> bjlist=cqKsxxMapper.chaclassname(Schoolname);
|
|
|
+// //抽签班级
|
|
|
+// System.out.println(bjlist);
|
|
|
+// List<String> chouqianclass=chouclass(bjlist,1);
|
|
|
+// CqCqbjxx cqCqbjxx= new CqCqbjxx();
|
|
|
+// cqCqbjxx.setYcqxxId(cqYcqxx.getId());
|
|
|
+// cqCqbjxx.setClassname(chouqianclass.get(0));
|
|
|
+// cqCqbjxx.setClasssjs("补给"+cqYcqxx.getSchoolname()+studentamount+"人");
|
|
|
+// cqCqbjxxMapper.insert(cqCqbjxx);
|
|
|
+// //调用抽人方法
|
|
|
+// this.cqbanjiry(cqYcqxx,Schoolname,cqCqbjxx,studentamount);
|
|
|
+// return true;
|
|
|
+// }
|
|
|
+// public boolean cqbanjiry(CqYcqxx cqYcqxx,String Schoolname,CqCqbjxx cqCqbjxx,int studentamount) {
|
|
|
+// //班级抽取完毕开始抽取学生
|
|
|
+// //获取班级考试人数
|
|
|
+// System.out.println("开始抽人数");
|
|
|
+// //获取考生详情
|
|
|
+// List<CqKsxx> cqKsxxList =cqKsxxMapper.chacqksxx(Schoolname,cqCqbjxx.getClassname());
|
|
|
+//// System.out.println("抽签班级学生详情"+cqKsxxList);
|
|
|
+// System.out.println("抽签班级学生数量"+cqKsxxList.size());
|
|
|
+// List<CqCqks> cqCqksList=new ArrayList<>();//抽中学生保存集合
|
|
|
+// List<CqKsxx> cqKsxxListcz=new ArrayList<>();//抽中学生集合
|
|
|
+// //判断抽到的学校人数是否大于指定人数
|
|
|
+// if(Integer.parseInt(String.valueOf(cqYcqxx.getSchoolpopulation()))>studentamount){
|
|
|
+// //判断班级是否抽签
|
|
|
+// LambdaQueryWrapper<CqCqks> query = new LambdaQueryWrapper<>();
|
|
|
+// query.eq(CqCqks::getSchoolname, Schoolname)
|
|
|
+// .eq(CqCqks::getClassname, cqCqbjxx.getClassname());
|
|
|
+// Long count = cqCqksMapper.selectCount(query);
|
|
|
+// if (Integer.parseInt(count+"")==0){
|
|
|
+// //判断班级人数是否符合抽签人数
|
|
|
+// if(cqKsxxList.size()>studentamount){
|
|
|
+// System.out.println("大于45,随机抽人");
|
|
|
+// //班级人数大于抽签人数时随机抽取考试人员
|
|
|
+// cqKsxxListcz= choustudent(cqKsxxList,studentamount);
|
|
|
+// System.out.println(cqKsxxListcz);
|
|
|
+// System.out.println(cqKsxxListcz.size());
|
|
|
+// cqCqksList=this.cqbanji(cqKsxxListcz);
|
|
|
+// for (CqCqks cqCqks : cqCqksList) {
|
|
|
+// cqCqks.setId(null);
|
|
|
+// cqCqksMapper.insert(cqCqks);
|
|
|
+// }
|
|
|
+// }else if(cqKsxxList.size()==studentamount){
|
|
|
+// System.out.println("=45");
|
|
|
+// cqCqksList=this.cqbanji(cqKsxxList);
|
|
|
+// for (CqCqks cqCqks : cqCqksList) {
|
|
|
+// cqCqks.setId(null);
|
|
|
+// cqCqksMapper.insert(cqCqks);
|
|
|
+// }
|
|
|
+// }else{
|
|
|
+// System.out.println("小于45");
|
|
|
+// //若抽中班级的学生数量少于当前学段需要参加考试的学生数量,当前班级人员全部参加
|
|
|
+// cqCqksList=this.cqbanji(cqKsxxList);
|
|
|
+// for (CqCqks cqCqks : cqCqksList) {
|
|
|
+// cqCqks.setId(null);
|
|
|
+// cqCqksMapper.insert(cqCqks);
|
|
|
+// }
|
|
|
+// //在本校中重新抽班级补人
|
|
|
+//// this.cqbanji(cqYcqxx,xxxq,studentamount-cqKsxxList.size());
|
|
|
+// //查询当前学校剩余多少个班级
|
|
|
+// List<String> bjlist=cqKsxxMapper.chaclassname(Schoolname);
|
|
|
+// //抽签班级
|
|
|
+// System.out.println(bjlist);
|
|
|
+// List<String> chouqianclass=chouclass(bjlist,1);
|
|
|
+// CqCqbjxx cqCqbjxx1= new CqCqbjxx();
|
|
|
+//// cqCqbjxx1.setYcqxxId(cqYcqxx.getId());
|
|
|
+// cqCqbjxx1.setClassname(chouqianclass.get(0));
|
|
|
+//// cqCqbjxx1.setClasssjs("补");
|
|
|
+// cqCqbjxxMapper.insert(cqCqbjxx1);
|
|
|
+// //调用抽人方法 只抽取缺的人数
|
|
|
+// this.cqbanjiry(cqYcqxx,Schoolname,cqCqbjxx1,studentamount-cqKsxxList.size());
|
|
|
+// }
|
|
|
+// }else {
|
|
|
+// System.out.println("该班级以抽签");
|
|
|
+// }
|
|
|
+//
|
|
|
+// }else {
|
|
|
+// cqCqksList=this.cqbanji(cqKsxxList);
|
|
|
+// for (CqCqks cqCqks : cqCqksList) {
|
|
|
+// cqCqksMapper.insert(cqCqks);
|
|
|
+// }
|
|
|
+// System.out.println("学校人数不足抽签人数全部参加,都抽签完毕后,去别的学校里补");
|
|
|
+//
|
|
|
+// }
|
|
|
+// return true;
|
|
|
+// }
|
|
|
+// //循环赋值
|
|
|
public List<CqCqks> cqbanji(List<CqKsxx> cqKsxxList) {
|
|
|
List<CqCqks> cqCqksList=new ArrayList<>();
|
|
|
CqCqks cqCqks=new CqCqks();
|
|
@@ -364,12 +580,11 @@ public class CqXxxqServiceImpl extends ServiceImpl<CqXxxqMapper, CqXxxq> impleme
|
|
|
//判断剩余人数是否狗
|
|
|
if(cqKsxxMapper.chaclassrs(cqYcqxxbc.getSchoolname())>chouqurenshu){
|
|
|
System.out.println("执行");
|
|
|
- this.cqbanjibxx(cqYcqxxbc,cqYcqxxbc.getSchoolname(),chouqurenshu);
|
|
|
+// this.cqbanjibxx(cqYcqxxbc,cqYcqxxbc.getSchoolname(),chouqurenshu);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
return true;
|
|
|
}
|
|
|
}
|