Selaa lähdekoodia

Merge remote-tracking branch 'origin/20250211csbushu' into 20250211csbushu

yuanjunhao 1 päivä sitten
vanhempi
commit
512b5d5b82
22 muutettua tiedostoa jossa 1030 lisäystä ja 0 poistoa
  1. 141 0
      web/src/main/java/com/ynfy/buss/exam/chouqian/controller/CqXxxqController.java
  2. 70 0
      web/src/main/java/com/ynfy/buss/exam/chouqian/entity/CqCqbjxx.java
  3. 80 0
      web/src/main/java/com/ynfy/buss/exam/chouqian/entity/CqCqks.java
  4. 51 0
      web/src/main/java/com/ynfy/buss/exam/chouqian/entity/CqKsxx.java
  5. 58 0
      web/src/main/java/com/ynfy/buss/exam/chouqian/entity/CqXxxq.java
  6. 78 0
      web/src/main/java/com/ynfy/buss/exam/chouqian/entity/CqYcqxx.java
  7. 14 0
      web/src/main/java/com/ynfy/buss/exam/chouqian/mapper/CqCqbjxxMapper.java
  8. 9 0
      web/src/main/java/com/ynfy/buss/exam/chouqian/mapper/CqCqksMapper.java
  9. 16 0
      web/src/main/java/com/ynfy/buss/exam/chouqian/mapper/CqKsxxMapper.java
  10. 13 0
      web/src/main/java/com/ynfy/buss/exam/chouqian/mapper/CqXxxqMapper.java
  11. 14 0
      web/src/main/java/com/ynfy/buss/exam/chouqian/mapper/CqYcqxxMapper.java
  12. 5 0
      web/src/main/java/com/ynfy/buss/exam/chouqian/mapper/xml/CqCqbjxxMapper.xml
  13. 5 0
      web/src/main/java/com/ynfy/buss/exam/chouqian/mapper/xml/CqCqksMapper.xml
  14. 18 0
      web/src/main/java/com/ynfy/buss/exam/chouqian/mapper/xml/CqKsxxMapper.xml
  15. 8 0
      web/src/main/java/com/ynfy/buss/exam/chouqian/mapper/xml/CqXxxqMapper.xml
  16. 14 0
      web/src/main/java/com/ynfy/buss/exam/chouqian/mapper/xml/CqYcqxxMapper.xml
  17. 9 0
      web/src/main/java/com/ynfy/buss/exam/chouqian/service/ICqCqksService.java
  18. 15 0
      web/src/main/java/com/ynfy/buss/exam/chouqian/service/ICqXxxqService.java
  19. 9 0
      web/src/main/java/com/ynfy/buss/exam/chouqian/service/ICqYcqxxService.java
  20. 20 0
      web/src/main/java/com/ynfy/buss/exam/chouqian/service/impl/CqCqksServiceImpl.java
  21. 358 0
      web/src/main/java/com/ynfy/buss/exam/chouqian/service/impl/CqXxxqServiceImpl.java
  22. 25 0
      web/src/main/java/com/ynfy/buss/exam/chouqian/service/impl/CqYcqxxServiceImpl.java

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

@@ -0,0 +1,141 @@
+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.CqCqks;
+import com.ynfy.buss.exam.chouqian.entity.CqXxxq;
+import com.ynfy.buss.exam.chouqian.entity.CqYcqxx;
+import com.ynfy.buss.exam.chouqian.service.ICqCqksService;
+import com.ynfy.buss.exam.chouqian.service.ICqXxxqService;
+import com.ynfy.buss.exam.chouqian.service.ICqYcqxxService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.SecurityUtils;
+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.jeecg.common.system.vo.LoginUser;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+
+@Api(tags = "抽签")
+@RestController
+@RequestMapping("/chouqian")
+@Slf4j
+public class CqXxxqController extends JeecgController<CqXxxq, ICqXxxqService> {
+    @Autowired
+    private ICqXxxqService cqXxxqService;
+    @Autowired
+    private ICqYcqxxService cqYcqxxService;
+    @Autowired
+    private ICqCqksService cqCqksService;
+    /**
+     * 学校抽签
+     *
+     * @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");
+
+        return Result.OK(cqXxxqService.cqxx(cqXxxq));
+    }
+    /**
+     * 分页以抽签学校查询
+     *
+     * @param cqYcqxx
+     * @param pageNo
+     * @param pageSize
+     * @param req
+     * @return
+     */
+    @ApiOperation(value = "分页以抽签学校查询", notes = "分页以抽签学校查询")
+    @GetMapping(value = "/xxlist")
+    public Result<IPage<CqYcqxx>> xxPageList(CqYcqxx cqYcqxx,
+                                             @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+                                             @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+                                             HttpServletRequest req) {
+        QueryWrapper<CqYcqxx> queryWrapper = QueryGenerator.initQueryWrapper(cqYcqxx, req.getParameterMap());
+        Page<CqYcqxx> page = new Page<CqYcqxx>(pageNo, pageSize);
+        IPage<CqYcqxx> pageList = cqYcqxxService.page(page, queryWrapper);
+        return Result.OK(pageList);
+    }
+    /**
+     * 分页以抽签学校查询
+     *
+     * @param cqCqks
+     * @param pageNo
+     * @param pageSize
+     * @param req
+     * @return
+     */
+    @ApiOperation(value = "分页以抽签学校查询", notes = "分页以抽签学校查询")
+    @GetMapping(value = "/kslist")
+    public Result<IPage<CqCqks>> ksList(CqCqks cqCqks,
+                                         @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+                                         @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+                                         HttpServletRequest req) {
+        QueryWrapper<CqCqks> queryWrapper = QueryGenerator.initQueryWrapper(cqCqks, req.getParameterMap());
+        Page<CqCqks> page = new Page<CqCqks>(pageNo, pageSize);
+        IPage<CqCqks> pageList = cqCqksService.page(page, queryWrapper);
+        return Result.OK(pageList);
+    }
+    /**
+     * 导出excel
+     * @param request
+     */
+    @RequestMapping(value = "/xxexportXls")
+    public ModelAndView xxexportXls(CqYcqxx cqYcqxx, HttpServletRequest request) {
+
+        // Step.1 组装查询条件
+        QueryWrapper<CqYcqxx> queryWrapper = QueryGenerator.initQueryWrapper(cqYcqxx, request.getParameterMap());
+        //Step.2 AutoPoi 导出Excel
+        ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+        List<CqYcqxx> pageList = cqYcqxxService.list(queryWrapper);
+        //导出文件名称
+        mv.addObject(NormalExcelConstants.FILE_NAME,"抽签学校列表");
+        mv.addObject(NormalExcelConstants.CLASS,CqYcqxx.class);
+        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        mv.addObject(NormalExcelConstants.PARAMS,new ExportParams("抽签学校列表数据","导出人:"+user.getRealname(),"导出信息"));
+        mv.addObject(NormalExcelConstants.DATA_LIST,pageList);
+        return mv;
+    }
+    /**
+     * 导出excel
+     * @param request
+     */
+    @RequestMapping(value = "/ksexportXls")
+    public ModelAndView ksexportXls(CqCqks cqCqks, HttpServletRequest request) {
+        // Step.1 组装查询条件
+        QueryWrapper<CqCqks> queryWrapper = QueryGenerator.initQueryWrapper(cqCqks, request.getParameterMap());
+        //Step.2 AutoPoi 导出Excel
+        ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+        List<CqCqks> pageList = cqCqksService.list(queryWrapper);
+        //导出文件名称
+        mv.addObject(NormalExcelConstants.FILE_NAME,"抽签人员列表");
+        mv.addObject(NormalExcelConstants.CLASS,CqCqks.class);
+        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        mv.addObject(NormalExcelConstants.PARAMS,new ExportParams("抽签人员数据","导出人:"+user.getRealname(),"导出信息"));
+        mv.addObject(NormalExcelConstants.DATA_LIST,pageList);
+        return mv;
+    }
+}

+ 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;
+}

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

@@ -0,0 +1,78 @@
+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 state;
+
+    @Excel(name = "学校人数", width = 15)
+    @ApiModelProperty(value = "学校人数")
+    private Integer 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;
+}

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

@@ -0,0 +1,14 @@
+package com.ynfy.buss.exam.chouqian.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import com.ynfy.buss.exam.chouqian.entity.CqCqbjxx;
+
+import java.util.List;
+
+
+public interface CqCqbjxxMapper extends BaseMapper<CqCqbjxx> {
+
+
+
+}

+ 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> {
+
+}

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

@@ -0,0 +1,16 @@
+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);
+    Integer chaclassrs(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);
+}

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

@@ -0,0 +1,14 @@
+package com.ynfy.buss.exam.chouqian.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ynfy.buss.exam.chouqian.entity.CqYcqxx;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+
+public interface CqYcqxxMapper extends BaseMapper<CqYcqxx> {
+    //获取抽取不足指定人数的院校
+    List<CqYcqxx> chabzrsxx(@Param("districtname")String districtname ,@Param("estate")String estate ,@Param("studentamount")int studentamount);
+    List<CqYcqxx> chabzrsxxbz(@Param("districtname")String districtname ,@Param("estate")String estate ,@Param("studentamount")int studentamount,@Param("schoolname")String schoolname);
+}

+ 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>

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

@@ -0,0 +1,18 @@
+<?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} and classname  not in (select a.classname from cq_cqbjxx a,cq_ycqxx b where a.ycqxx_id=b.id and schoolname=#{schoolname})
+    </select>
+    <select id="chaclassnameqc" 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>
+    <select id="chaclassrs" resultType="java.lang.Integer">
+        select count(0) from cq_ksxx where schoolname=#{schoolname} and classname  not in (select a.classname from cq_cqbjxx a,cq_ycqxx b where a.ycqxx_id=b.id and schoolname=#{schoolname})
+    </select>
+
+</mapper>

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

@@ -0,0 +1,8 @@
+<?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} and
+                                schoolname not in(select schoolname from cq_ycqxx where districtname=#{cqXxxq.districtname} )
+    </select>
+</mapper>

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

@@ -0,0 +1,14 @@
+<?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">
+
+<!--    <select id="chabzrsxx" resultType="java.lang.String">-->
+<!--        select * from cq_ycqxx where districtname=#{districtname} and schoolpopulation &lt; #{studentamount}-->
+<!--    </select>-->
+    <select id="chabzrsxx" resultType="com.ynfy.buss.exam.chouqian.entity.CqYcqxx">
+            select * from cq_ycqxx where districtname=#{districtname} and schoolpopulation &lt; #{studentamount}
+    </select>
+    <select id="chabzrsxxbz" resultType="com.ynfy.buss.exam.chouqian.entity.CqYcqxx">
+        select * from cq_ycqxx where districtname=#{districtname} and schoolpopulation &gt; #{studentamount} and schoolname!=#{schoolname} and state="0"
+    </select>
+</mapper>

+ 9 - 0
web/src/main/java/com/ynfy/buss/exam/chouqian/service/ICqCqksService.java

@@ -0,0 +1,9 @@
+package com.ynfy.buss.exam.chouqian.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ynfy.buss.exam.chouqian.entity.CqCqks;
+
+
+public interface ICqCqksService extends IService<CqCqks> {
+
+}

+ 15 - 0
web/src/main/java/com/ynfy/buss/exam/chouqian/service/ICqXxxqService.java

@@ -0,0 +1,15 @@
+package com.ynfy.buss.exam.chouqian.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ynfy.buss.exam.chouqian.entity.CqXxxq;
+import com.ynfy.buss.exam.exam.entity.ExamPapers;
+
+import java.util.List;
+
+
+public interface ICqXxxqService extends IService<CqXxxq> {
+   //学校抽签
+    String cqxx(CqXxxq cqXxxq);
+    String cqxxbcf(CqXxxq cqXxxq);
+
+}

+ 9 - 0
web/src/main/java/com/ynfy/buss/exam/chouqian/service/ICqYcqxxService.java

@@ -0,0 +1,9 @@
+package com.ynfy.buss.exam.chouqian.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ynfy.buss.exam.chouqian.entity.CqYcqxx;
+
+
+public interface ICqYcqxxService extends IService<CqYcqxx> {
+
+}

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

@@ -0,0 +1,20 @@
+package com.ynfy.buss.exam.chouqian.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ynfy.buss.exam.chouqian.entity.CqCqks;
+import com.ynfy.buss.exam.chouqian.mapper.CqCqksMapper;
+import com.ynfy.buss.exam.chouqian.service.ICqCqksService;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * @Description: exam
+ * @Author: jeecg-boot
+ * @Date: 2023-02-23
+ * @Version: V1.0
+ */
+@Service
+public class CqCqksServiceImpl extends ServiceImpl<CqCqksMapper, CqCqks> implements ICqCqksService {
+
+}

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

@@ -0,0 +1,358 @@
+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.common.api.vo.Result;
+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 String cqxx(CqXxxq cqXxxq) {
+        int studentamount=Integer.parseInt(cqXxxq.getStudentamount());
+        //根据县区名称、年级、层次获取符合的学校
+        List<CqXxxq> cqXxxqList=cqXxxqMapper.cqxxxq(cqXxxq);
+//        System.out.println("显示要抽签的学校。");
+        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();//添加抽取记录的对象
+
+            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);
+            return "抽签完成!";
+        }
+
+    }
+    //抽签不允许抽已经抽取的区
+    @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 "抽签完成!";
+        }
+    }
+    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();
+        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;
+
+    }
+    //学校人数不够是补充别的学校里的人
+    public boolean bcxxbanjiry(String districtname,String estate,int studentamount) {
+        int chouqurenshu=0;
+        //获取需要补足的学校
+       List<CqYcqxx> cqycqxx= cqYcqxxMapper.chabzrsxx(districtname,estate,studentamount);
+        System.out.println("显示不够抽签人数的学校");
+        System.out.println(cqycqxx);
+        System.out.println(cqycqxx.size());
+        for (CqYcqxx cqYcqxx : cqycqxx) {
+            chouqurenshu=studentamount-cqYcqxx.getSchoolpopulation();
+            //获取的学校剩余班级人数需要大于需抽签人数
+            List<CqYcqxx> cqycqxxbc= cqYcqxxMapper.chabzrsxxbz(districtname,estate,studentamount,cqYcqxx.getSchoolname());
+            //获取能够补足的学校
+            System.out.println("cqycqxxbc"+cqycqxxbc);
+            //学校剩余班级人数是否够抽取的
+            for (CqYcqxx cqYcqxxbc : cqycqxxbc) {
+                System.out.println(chouqurenshu);
+                //判断剩余人数是否狗
+                if(cqKsxxMapper.chaclassrs(cqYcqxxbc.getSchoolname())>chouqurenshu){
+                    System.out.println("执行");
+                    this.cqbanjibxx(cqYcqxxbc,cqYcqxxbc.getSchoolname(),chouqurenshu);
+                    break;
+                }
+            }
+        }
+
+        return true;
+    }
+}

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

@@ -0,0 +1,25 @@
+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.ICqYcqxxService;
+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 CqYcqxxServiceImpl extends ServiceImpl<CqYcqxxMapper, CqYcqxx> implements ICqYcqxxService {
+
+}