Explorar o código

抽签接口添加(未完成,20250227代码)

yuanjunhao hai 1 semana
pai
achega
eea6aabb97

+ 55 - 0
web/src/main/java/com/ynfy/buss/exam/chouqian/controller/CqXxxqController.java

@@ -0,0 +1,55 @@
+package com.ynfy.buss.exam.chouqian.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ynfy.buss.exam.chouqian.entity.CqXxxq;
+import com.ynfy.buss.exam.chouqian.service.ICqXxxqService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Objects;
+
+
+@Api(tags = "抽签")
+@RestController
+@RequestMapping("/chouqian")
+@Slf4j
+public class CqXxxqController extends JeecgController<CqXxxq, ICqXxxqService> {
+    @Autowired
+    private ICqXxxqService cqXxxqService;
+
+    /**
+     * 学校抽签
+     *
+     * @param cqXxxq
+     * @return
+     */
+    @AutoLog(value = "抽签")
+    @ApiOperation(value = "抽签", notes = "抽签")
+    @GetMapping(value = "/cqxx")
+    public Result<String> cqxx(CqXxxq cqXxxq) {
+        //先自己赋值
+        cqXxxq.setDistrictname("市中区");
+        cqXxxq.setNianji("五年级");
+        cqXxxq.setEstate("优");
+        cqXxxq.setSchooamount("2");
+        cqXxxq.setStudentamount("45");
+        cqXxxqService.cqxx(cqXxxq);
+        return Result.OK("添加成功!");
+    }
+
+
+}

+ 70 - 0
web/src/main/java/com/ynfy/buss/exam/chouqian/entity/CqCqbjxx.java

@@ -0,0 +1,70 @@
+package com.ynfy.buss.exam.chouqian.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@TableName("cq_cqbjxx")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value = "cq_cqbjxx对象", description = "cq_cqbjxx")
+public class CqCqbjxx implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "id")
+    private String id;
+
+    @Excel(name = "抽取学校id", width = 15)
+    @ApiModelProperty(value = "抽取学校id")
+    private String ycqxxId;
+
+    @Excel(name = "班级", width = 15)
+    @ApiModelProperty(value = "班级")
+    private String classname;
+
+    @Excel(name = "班级随机数", width = 15)
+    @ApiModelProperty(value = "班级随机数")
+    private String classsjs;
+
+    /**
+     * createTime
+     */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "createTime")
+    private Date createTime;
+    /**
+     * createBy
+     */
+    @ApiModelProperty(value = "createBy")
+    private String createBy;
+    /**
+     * updateTime
+     */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "updateTime")
+    private Date updateTime;
+    /**
+     * updateBy
+     */
+    @ApiModelProperty(value = "updateBy")
+    private String updateBy;
+
+}

+ 80 - 0
web/src/main/java/com/ynfy/buss/exam/chouqian/entity/CqCqks.java

@@ -0,0 +1,80 @@
+package com.ynfy.buss.exam.chouqian.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@TableName("cq_cqks")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value = "cq_cqks对象", description = "cq_cqks")
+public class CqCqks implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /**
+     * id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "id")
+    private String id;
+
+    @Excel(name = "username", width = 15)
+    @ApiModelProperty(value = "username")
+    private String username;
+
+    @Excel(name = "realname", width = 15)
+    @ApiModelProperty(value = "realname")
+    private String realname;
+
+    @Excel(name = "区名称", width = 15)
+    @ApiModelProperty(value = "区名称")
+    private String districtname;
+
+    @Excel(name = "学校名称", width = 15)
+    @ApiModelProperty(value = "学校名称")
+    private String schoolname;
+
+    @Excel(name = "年级", width = 15)
+    @ApiModelProperty(value = "年级")
+    private String nianji;
+
+    @Excel(name = "班级", width = 15)
+    @ApiModelProperty(value = "班级")
+    private String classname;
+
+    /**
+     * createTime
+     */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "createTime")
+    private Date createTime;
+    /**
+     * createBy
+     */
+    @ApiModelProperty(value = "createBy")
+    private String createBy;
+    /**
+     * updateTime
+     */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "updateTime")
+    private Date updateTime;
+    /**
+     * updateBy
+     */
+    @ApiModelProperty(value = "updateBy")
+    private String updateBy;
+}

+ 51 - 0
web/src/main/java/com/ynfy/buss/exam/chouqian/entity/CqKsxx.java

@@ -0,0 +1,51 @@
+package com.ynfy.buss.exam.chouqian.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+import java.io.Serializable;
+
+@Data
+@TableName("cq_ksxx")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value = "cq_ksxx对象", description = "cq_ksxx")
+public class CqKsxx implements Serializable {
+    /**
+     * id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "id")
+    private String id;
+
+    @Excel(name = "区名称", width = 15)
+    @ApiModelProperty(value = "区名称")
+    private String districtname;
+
+    @Excel(name = "学校名称", width = 15)
+    @ApiModelProperty(value = "学校名称")
+    private String schoolname;
+
+    @Excel(name = "年级", width = 15)
+    @ApiModelProperty(value = "年级")
+    private String nianji;
+
+    @Excel(name = "班级", width = 15)
+    @ApiModelProperty(value = "班级")
+    private String classname;
+
+    @Excel(name = "考生账号", width = 15)
+    @ApiModelProperty(value = "考生账号")
+    private String username;
+
+    @Excel(name = "考生姓名", width = 15)
+    @ApiModelProperty(value = "考生姓名")
+    private String realname;
+}

+ 58 - 0
web/src/main/java/com/ynfy/buss/exam/chouqian/entity/CqXxxq.java

@@ -0,0 +1,58 @@
+package com.ynfy.buss.exam.chouqian.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+import java.io.Serializable;
+
+@Data
+@TableName("cq_xxxq")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value = "cq_xxxq对象", description = "cq_xxxq")
+public class CqXxxq implements Serializable {
+    /**
+     * id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "id")
+    private String id;
+
+    @Excel(name = "区名称", width = 15)
+    @ApiModelProperty(value = "区名称")
+    private String districtname;
+
+    @Excel(name = "学校名称", width = 15)
+    @ApiModelProperty(value = "学校名称")
+    private String schoolname;
+
+    @Excel(name = "年级", width = 15)
+    @ApiModelProperty(value = "年级")
+    private String nianji;
+
+    @Excel(name = "等级", width = 15)
+    @ApiModelProperty(value = "等级")
+    private String estate;
+
+    @Excel(name = "状态", width = 15)
+    @ApiModelProperty(value = "状态")
+    private String status;
+    /**
+     * 抽签学校数量
+     */
+    @TableField(exist = false,select = false)
+    private String schooamount;
+    /**
+     * 抽签人数数量
+     */
+    @TableField(exist = false,select = false)
+    private String studentamount;
+}

+ 74 - 0
web/src/main/java/com/ynfy/buss/exam/chouqian/entity/CqYcqxx.java

@@ -0,0 +1,74 @@
+package com.ynfy.buss.exam.chouqian.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@TableName("cq_ycqxx")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value = "cq_ycqxx对象", description = "cq_ycqxx")
+public class CqYcqxx implements Serializable {
+    /**
+     * id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "id")
+    private String id;
+
+    @Excel(name = "区名称", width = 15)
+    @ApiModelProperty(value = "区名称")
+    private String districtname;
+
+    @Excel(name = "学校名称", width = 15)
+    @ApiModelProperty(value = "学校名称")
+    private String schoolname;
+
+    @Excel(name = "年级", width = 15)
+    @ApiModelProperty(value = "年级")
+    private String nianji;
+
+    @Excel(name = "等级", width = 15)
+    @ApiModelProperty(value = "等级")
+    private String estate;
+
+    @Excel(name = "学校人数", width = 15)
+    @ApiModelProperty(value = "学校人数")
+    private String schoolpopulation;
+    /**
+     * createTime
+     */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "createTime")
+    private Date createTime;
+    /**
+     * createBy
+     */
+    @ApiModelProperty(value = "createBy")
+    private String createBy;
+    /**
+     * updateTime
+     */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "updateTime")
+    private Date updateTime;
+    /**
+     * updateBy
+     */
+    @ApiModelProperty(value = "updateBy")
+    private String updateBy;
+}

+ 9 - 0
web/src/main/java/com/ynfy/buss/exam/chouqian/mapper/CqCqksMapper.java

@@ -0,0 +1,9 @@
+package com.ynfy.buss.exam.chouqian.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ynfy.buss.exam.chouqian.entity.CqCqks;
+
+
+public interface CqCqksMapper extends BaseMapper<CqCqks> {
+
+}

+ 15 - 0
web/src/main/java/com/ynfy/buss/exam/chouqian/mapper/CqKsxxMapper.java

@@ -0,0 +1,15 @@
+package com.ynfy.buss.exam.chouqian.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ynfy.buss.exam.chouqian.entity.CqKsxx;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+
+public interface CqKsxxMapper extends BaseMapper<CqKsxx> {
+//    获取学校内所有班级
+    List<String> chaclassname(String schoolname);
+    //获取指定学校指定班级的人数
+    List<CqKsxx> chacqksxx(@Param("schoolname")String schoolname, @Param("classname")String classname);
+}

+ 13 - 0
web/src/main/java/com/ynfy/buss/exam/chouqian/mapper/CqXxxqMapper.java

@@ -0,0 +1,13 @@
+package com.ynfy.buss.exam.chouqian.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ynfy.buss.exam.chouqian.entity.CqXxxq;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+
+public interface CqXxxqMapper extends BaseMapper<CqXxxq> {
+    //获取抽签学校详情
+    List<CqXxxq> cqxxxq(@Param("cqXxxq")CqXxxq cqXxxq);
+}

+ 9 - 0
web/src/main/java/com/ynfy/buss/exam/chouqian/mapper/CqYcqxxMapper.java

@@ -0,0 +1,9 @@
+package com.ynfy.buss.exam.chouqian.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ynfy.buss.exam.chouqian.entity.CqYcqxx;
+
+
+public interface CqYcqxxMapper extends BaseMapper<CqYcqxx> {
+
+}

+ 5 - 0
web/src/main/java/com/ynfy/buss/exam/chouqian/mapper/xml/CqCqbjxxMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ynfy.buss.exam.chouqian.mapper.CqCqbjxxMapper">
+
+</mapper>

+ 5 - 0
web/src/main/java/com/ynfy/buss/exam/chouqian/mapper/xml/CqCqksMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ynfy.buss.exam.chouqian.mapper.CqCqksMapper">
+
+</mapper>

+ 11 - 0
web/src/main/java/com/ynfy/buss/exam/chouqian/mapper/xml/CqKsxxMapper.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ynfy.buss.exam.chouqian.mapper.CqKsxxMapper">
+
+    <select id="chaclassname" resultType="java.lang.String">
+        select distinct classname from cq_ksxx where schoolname=#{schoolname}
+    </select>
+    <select id="chacqksxx" resultType="com.ynfy.buss.exam.chouqian.entity.CqKsxx">
+        select * from cq_ksxx where schoolname=#{schoolname} and classname=#{classname}
+    </select>
+</mapper>

+ 7 - 0
web/src/main/java/com/ynfy/buss/exam/chouqian/mapper/xml/CqXxxqMapper.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ynfy.buss.exam.chouqian.mapper.CqXxxqMapper">
+    <select id="cqxxxq" resultType="com.ynfy.buss.exam.chouqian.entity.CqXxxq">
+    select * from cq_xxxq where districtname=#{cqXxxq.districtname} and nianji=#{cqXxxq.nianji} and estate=#{cqXxxq.estate}
+    </select>
+</mapper>

+ 5 - 0
web/src/main/java/com/ynfy/buss/exam/chouqian/mapper/xml/CqYcqxxMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ynfy.buss.exam.chouqian.mapper.CqYcqxxMapper">
+
+</mapper>

+ 242 - 0
web/src/main/java/com/ynfy/buss/exam/chouqian/service/impl/CqXxxqServiceImpl.java

@@ -0,0 +1,242 @@
+package com.ynfy.buss.exam.chouqian.service.impl;
+
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.modules.system.entity.SysDepart;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+
+
+/**
+ * @Description: exam
+ * @Author: jeecg-boot
+ * @Date: 2023-02-23
+ * @Version: V1.0
+ */
+@Service
+public class CqXxxqServiceImpl extends ServiceImpl<CqXxxqMapper, CqXxxq> implements ICqXxxqService {
+    @Autowired
+    private CqXxxqMapper cqXxxqMapper ;
+    @Autowired
+    private CqYcqxxMapper cqYcqxxMapper ;
+    @Autowired
+    private CqKsxxMapper cqKsxxMapper ;
+    @Autowired
+    private CqCqksMapper cqCqksMapper ;
+    @Autowired
+    private CqCqbjxxMapper cqCqbjxxMapper ;
+    @Autowired
+  
+    //指定区间内抽取随机数
+    public static int getRandomNumber(int min, int max) {
+        if (min > max) {
+            throw new IllegalArgumentException("最小值不能大于最大值");
+        }
+        Random random = new Random();
+        return random.nextInt((max - min) + 1) + min;
+    }
+    // 抽学校
+    public static List<CqXxxq> chouschool(List<CqXxxq> candidates, int numberOfWinners) {
+        if (candidates == null || candidates.isEmpty()) {
+            throw new IllegalArgumentException("候选学校列表不能为空");
+        }
+        if (numberOfWinners <= 0 || numberOfWinners > candidates.size()) {
+            throw new IllegalArgumentException("中签学校必须大于0且不超过候选学校数量");
+        }
+
+        Random random = new Random();
+        Set<Integer> selectedIndices = new HashSet<>(); // 用于存储已选中的索引
+        List<CqXxxq> winners = new ArrayList<>(); // 存储中签者
+
+        while (winners.size() < numberOfWinners) {
+            int randomIndex = random.nextInt(candidates.size()); // 生成随机索引
+            if (selectedIndices.add(randomIndex)) { // 如果索引未被选中过
+                winners.add(candidates.get(randomIndex)); // 添加到中签者列表
+            }
+        }
+
+        return winners;
+    }// 抽学生
+    public static List<CqKsxx> choustudent(List<CqKsxx> candidates, int numberOfWinners) {
+        if (candidates == null || candidates.isEmpty()) {
+            throw new IllegalArgumentException("候选学校列表不能为空");
+        }
+        if (numberOfWinners <= 0 || numberOfWinners > candidates.size()) {
+            throw new IllegalArgumentException("中签学校必须大于0且不超过候选学校数量");
+        }
+
+        Random random = new Random();
+        Set<Integer> selectedIndices = new HashSet<>(); // 用于存储已选中的索引
+        List<CqKsxx> winners = new ArrayList<>(); // 存储中签者
+
+        while (winners.size() < numberOfWinners) {
+            int randomIndex = random.nextInt(candidates.size()); // 生成随机索引
+            if (selectedIndices.add(randomIndex)) { // 如果索引未被选中过
+                winners.add(candidates.get(randomIndex)); // 添加到中签者列表
+            }
+        }
+
+        return winners;
+    }
+    // 从集合中抽取多个学校
+    public static List<String> chouclass(List<String> candidates, int numberOfWinners) {
+        if (candidates == null || candidates.isEmpty()) {
+            throw new IllegalArgumentException("候选列表不能为空");
+        }
+        if (numberOfWinners <= 0 || numberOfWinners > candidates.size()) {
+            throw new IllegalArgumentException("中签人数必须大于0且不超过候选人数");
+        }
+
+        Random random = new Random();
+        Set<Integer> selectedIndices = new HashSet<>(); // 用于存储已选中的索引
+        List<String> winners = new ArrayList<>(); // 存储中签者
+
+        while (winners.size() < numberOfWinners) {
+            int randomIndex = random.nextInt(candidates.size()); // 生成随机索引
+            if (selectedIndices.add(randomIndex)) { // 如果索引未被选中过
+                winners.add(candidates.get(randomIndex)); // 添加到中签者列表
+            }
+        }
+
+        return winners;
+    }
+    @Override
+    public List<CqXxxq> cqxx(CqXxxq cqXxxq) {
+        int studentamount=Integer.parseInt(cqXxxq.getStudentamount());
+        //根据县区名称、年级、层次获取符合的学校
+        List<CqXxxq> cqXxxqList=cqXxxqMapper.cqxxxq(cqXxxq);
+        System.out.println("显示要抽签的学校。");
+        System.out.println(cqXxxqList);
+        System.out.println(cqXxxqList.size());
+        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(String.valueOf(cqKsxxMapper.selectCount(query1)));
+                cqYcqxxMapper.insert(cqYcqxx);
+                //抽签班级
+                this.cqbanji(cqYcqxx,xxxq,studentamount);
+            }
+        }else {
+            System.out.println("异常");
+        }
+        //正常情况抽取完成,开始抽取学校不足指定人数的规则
+
+
+        return null;
+    }
+
+    public boolean cqbanji(CqYcqxx cqYcqxx,CqXxxq xxxq,int studentamount) {
+        //学校抽签完毕抽取学校班级
+        //查询当前学校有多少个班级
+        List<String> bjlist=cqKsxxMapper.chaclassname(xxxq.getSchoolname());
+        //抽签班级
+        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);
+        //班级抽取完毕开始抽取学生
+        //判断抽到的学校人数是否大于指定人数
+        if(Integer.parseInt(cqYcqxx.getSchoolpopulation())>studentamount){
+            //获取班级考试人数
+            System.out.println("开始抽人数");
+            //获取考生详情
+            List<CqKsxx> cqKsxxList =cqKsxxMapper.chacqksxx(xxxq.getSchoolname(),cqCqbjxx.getClassname());
+            System.out.println("抽签班级学生详情"+cqKsxxList);
+            System.out.println("抽签班级学生数量"+cqKsxxList.size());
+            List<CqCqks>  cqCqksList=new ArrayList<>();//抽中学生保存集合
+            List<CqKsxx>  cqKsxxListcz=new ArrayList<>();//抽中学生集合
+            //判断班级是否抽签
+            LambdaQueryWrapper<CqCqks> query = new LambdaQueryWrapper<>();
+            query.eq(CqCqks::getSchoolname, xxxq.getSchoolname())
+                 .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);
+                }
+                //在本校中重新抽班级补人
+
+            }
+            }else {
+                System.out.println("该班级以抽签");
+            }
+
+        }else {
+            System.out.println("学校人数不足抽签人数全部参加,都抽签完毕后,去别的学校里补");
+        }
+        //
+        //
+        return true;
+    }
+    //循环赋值
+    public List<CqCqks> cqbanji(List<CqKsxx> cqKsxxList) {
+        List<CqCqks> cqCqksList=new ArrayList<>();
+        CqCqks cqCqks=new CqCqks();
+        for (CqKsxx cqKsxx : cqKsxxList) {
+            cqCqks.setUsername(cqKsxx.getUsername());
+            cqCqks.setRealname(cqKsxx.getRealname());
+            cqCqks.setDistrictname(cqKsxx.getDistrictname());
+            cqCqks.setSchoolname(cqKsxx.getSchoolname());
+            cqCqks.setNianji(cqKsxx.getNianji());
+            cqCqks.setClassname(cqKsxx.getClassname());
+            cqCqksList.add(cqCqks);
+            cqCqks=new CqCqks();
+        }
+        return cqCqksList;
+
+    }
+}