diff --git a/jeecg-module-system/jeecg-system-start/pom.xml b/jeecg-module-system/jeecg-system-start/pom.xml index a7a7026a..d34bbda2 100644 --- a/jeecg-module-system/jeecg-system-start/pom.xml +++ b/jeecg-module-system/jeecg-system-start/pom.xml @@ -32,6 +32,11 @@ runtime --> + + com.alibaba + easyexcel + 3.1.0 + com.dameng Dm8JdbcDriver18 diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/config/ThreadPoolManager.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/config/ThreadPoolManager.java new file mode 100644 index 00000000..171995de --- /dev/null +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/config/ThreadPoolManager.java @@ -0,0 +1,39 @@ +package org.jeecg.modules.config; + +import java.util.concurrent.Executors; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +/** + * Created with IntelliJ IDEA. + * + * @Author: Cool + * @Date: 2024/10/24/13:54 + * @Description: 线程池管理 + */ +public class ThreadPoolManager { + // 单例实例,使用 volatile 关键字 + private static volatile ThreadPoolExecutor executor; + + private ThreadPoolManager() {} + + public static ThreadPoolExecutor getExecutor() { + if (executor == null) { + synchronized (ThreadPoolManager.class) { + if (executor == null) { + executor = new ThreadPoolExecutor( + 10, + 20, + 60L, + TimeUnit.SECONDS, + new LinkedBlockingQueue<>(100), + Executors.defaultThreadFactory(), + new ThreadPoolExecutor.AbortPolicy() + ); + } + } + } + return executor; + } +} diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/controller/Cet4MajorController.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/controller/Cet4MajorController.java new file mode 100644 index 00000000..6fcbf672 --- /dev/null +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/controller/Cet4MajorController.java @@ -0,0 +1,182 @@ +package org.jeecg.modules.controller; + + +import java.util.Arrays; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.system.query.QueryGenerator; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; + +import org.jeecg.modules.entity.Cet4_major; +import org.jeecg.modules.service.ICet4MajorService; +import org.jeecg.common.system.base.controller.JeecgController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.jeecg.common.aspect.annotation.AutoLog; +import org.apache.shiro.authz.annotation.RequiresPermissions; + +/** + * @Description: cet4_major + * @Author: jeecg-boot + * @Date: 2024-10-23 + * @Version: V1.0 + */ +@Api(tags = "cet4_major") +@RestController +@RequestMapping("/com/cet4Major") +@Slf4j +public class Cet4MajorController extends JeecgController { + @Autowired + private ICet4MajorService cet4MajorService; + + /** + * 分页列表查询 + * + * @param cet4Major + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "cet4_major-分页列表查询") + @ApiOperation(value = "cet4_major-分页列表查询", notes = "cet4_major-分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(Cet4_major cet4Major, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(cet4Major, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = cet4MajorService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param cet4Major + * @return + */ + @AutoLog(value = "cet4_major-添加") + @ApiOperation(value = "cet4_major-添加", notes = "cet4_major-添加") + @RequiresPermissions("com:cet4_major:add") + @PostMapping(value = "/add") + public Result add(@RequestBody Cet4_major cet4Major) { + cet4MajorService.save(cet4Major); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param cet4Major + * @return + */ + @AutoLog(value = "cet4_major-编辑") + @ApiOperation(value = "cet4_major-编辑", notes = "cet4_major-编辑") + @RequiresPermissions("com:cet4_major:edit") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) + public Result edit(@RequestBody Cet4_major cet4Major) { + cet4MajorService.updateById(cet4Major); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "cet4_major-通过id删除") + @ApiOperation(value = "cet4_major-通过id删除", notes = "cet4_major-通过id删除") + @RequiresPermissions("com:cet4_major:delete") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name = "id", required = true) String id) { + cet4MajorService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "cet4_major-批量删除") + @ApiOperation(value = "cet4_major-批量删除", notes = "cet4_major-批量删除") + @RequiresPermissions("com:cet4_major:deleteBatch") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name = "ids", required = true) String ids) { + this.cet4MajorService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "cet4_major-通过id查询") + @ApiOperation(value = "cet4_major-通过id查询", notes = "cet4_major-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name = "id", required = true) String id) { + Cet4_major cet4Major = cet4MajorService.getById(id); + if (cet4Major == null) { + return Result.error("未找到对应数据"); + } + return Result.OK(cet4Major); + } + + /** + * 导出excel + * + * @param request + * @param cet4Major + */ +// @RequiresPermissions("com:cet4_major:exportXls") + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, Cet4_major cet4Major) { + return super.exportXls(request, cet4Major, Cet4_major.class, "cet4_major"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ +// @RequiresPermissions("com:cet4_major:importExcel") + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return cet4MajorService.importStudentData(request); + } + + @RequestMapping("downloadTemplate") + @ApiOperation("四六级导入数据文件模版") + public Result downloadTemplate(HttpServletResponse response) { + return cet4MajorService.downloadTemplate(response); + } + + @RequestMapping("loadTable") + @ApiOperation("加载表格") + public Result loadTable() { + return cet4MajorService.loadTable(); + } + + @RequestMapping("asyncData") + @ApiOperation("同步数据") + public Result asyncData() { + return cet4MajorService.asyncData(); + } +} diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/controller/CetDataImportController.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/controller/CetDataImportController.java index ab80a41f..c0e1ebd5 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/controller/CetDataImportController.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/controller/CetDataImportController.java @@ -35,7 +35,7 @@ public class CetDataImportController { /** - * @param file dbf文件 + * @param fileContent dbf文件 * @param batch 考试批次 * @param level cet等级(cet4/cet6) * @Author Cool diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/controller/CetStudentController.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/controller/CetStudentController.java deleted file mode 100644 index 83fb15a4..00000000 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/controller/CetStudentController.java +++ /dev/null @@ -1,67 +0,0 @@ -package org.jeecg.modules.controller; - -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.system.base.controller.JeecgController; -import org.jeecg.modules.entity.Cet4_major; -import org.jeecg.modules.entity.Cet_4; -import org.jeecg.modules.service.impl.CetMajorServiceImpl; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.servlet.ModelAndView; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -/** - * Created with IntelliJ IDEA. - * - * @Author: Cool - * @Date: 2024/10/16/17:58 - * @Description: 学生信息Controller - */ -@Api(tags = "cetStudent") -@RestController -@RequestMapping("/cetStudent") -@Slf4j -public class CetStudentController extends JeecgController { - - @Autowired - private CetMajorServiceImpl cetMajorService; - - /** - * 导出excel - * - * @param request - * @param - */ - @RequiresPermissions("cet:cetStudent:exportXls") - @RequestMapping(value = "/exportXls") - public ModelAndView exportXls(HttpServletRequest request, Cet4_major major) { - return super.exportXls(request, major, Cet4_major.class, "cet_4"); - } - - /** - * 通过excel导入数据 - * - * @param request - * @param response - * @return - */ - @RequiresPermissions("cet:cetStudent:importExcel") - @RequestMapping(value = "/importExcel", method = RequestMethod.POST) - public Result importExcel(HttpServletRequest request, HttpServletResponse response) { - return super.importExcel(request, response, Cet4_major.class); - } - - @RequestMapping("downloadTemplate") - @ApiOperation("四六级导入数据文件模版") - public Result downloadTemplate(HttpServletResponse response) { - return cetMajorService.downloadTemplate(response); - } -} diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/Cet4_major.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/Cet4_major.java index aa411815..f052c969 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/Cet4_major.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/Cet4_major.java @@ -1,22 +1,78 @@ package org.jeecg.modules.entity; +import java.io.Serializable; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +/** + * @Description: cet4_major + * @Author: jeecg-boot + * @Date: 2024-10-23 + * @Version: V1.0 + */ @Data @TableName("cet4_major") -public class Cet4_major { - private String id; +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="cet4_major对象", description="cet4_major") +public class Cet4_major implements Serializable { + private static final long serialVersionUID = 1L; + + /**id*/ + @TableId(type = IdType.ASSIGN_ID) + @Excel(name = "学号", width = 15) + @ApiModelProperty(value = "id") + private String code; + /**name*/ + @Excel(name = "姓名", width = 15) + @ApiModelProperty(value = "name") private String name; + /**college*/ + @Excel(name = "上课院系", width = 15) + @ApiModelProperty(value = "college") private String college; - private String major_id; + /**majorId*/ + @Excel(name = "专业号", width = 15) + @ApiModelProperty(value = "majorId") + private String majorId; + /**majorname*/ + @Excel(name = "专业名称", width = 15) + @ApiModelProperty(value = "majorname") private String majorname; - private String class_name; + /**className*/ + @Excel(name = "班级", width = 15) + @ApiModelProperty(value = "className") + private String className; + /**educate*/ + @Excel(name = "学制", width = 15) + @ApiModelProperty(value = "educate") private String educate; + /**entrydate*/ + @Excel(name = "当前所在级", width = 15) + @ApiModelProperty(value = "entrydate") private String entrydate; + /**campus*/ + @Excel(name = "校区", width = 15) + @ApiModelProperty(value = "campus") private String campus; + /**state*/ + @Excel(name = "在校状态", width = 15) + @ApiModelProperty(value = "state") private String state; + /**level*/ + @Excel(name = "培养层次", width = 15) + @ApiModelProperty(value = "level") private String level; + /**category*/ + @Excel(name = "学生类别", width = 15) + @ApiModelProperty(value = "category") private String category; } diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/Cet_4.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/Cet_4.java index 156b16e5..82b1b657 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/Cet_4.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/Cet_4.java @@ -4,7 +4,6 @@ import java.io.Serializable; import java.util.Date; 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 lombok.Data; @@ -31,6 +30,10 @@ import lombok.experimental.Accessors; public class Cet_4 implements Serializable { private static final long serialVersionUID = 1L; + @ApiModelProperty(value = "主键id") + @TableId(type = IdType.AUTO) + private Integer id; + /**学生姓名*/ @Excel(name = "学生姓名", width = 15) @AttributeName(4) @@ -48,9 +51,8 @@ public class Cet_4 implements Serializable { private Integer result; /**学生学号*/ @AttributeName(19) - @TableId(type = IdType.ASSIGN_ID) @ApiModelProperty(value = "学生学号") - private String id; + private String code; /**考试批次*/ @Excel(name = "考试批次", width = 15, format = "yyyy-MM-dd") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/Cet_4old.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/Cet_4old.java index 952090ab..863d8b62 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/Cet_4old.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/Cet_4old.java @@ -14,6 +14,12 @@ import java.util.Date; @Data @TableName("cet_4old") public class Cet_4old { + + + @ApiModelProperty(value = "主键id") + @TableId(type = IdType.AUTO) + private Integer id; + /** * 学生姓名 */ @@ -35,9 +41,8 @@ public class Cet_4old { /** * 学生学号 */ - @TableId(type = IdType.ASSIGN_ID) @ApiModelProperty(value = "学生学号") - private String id; + private String code; /** * 考试批次 */ diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/Cet_6.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/Cet_6.java index 879c0771..08cc7655 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/Cet_6.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/Cet_6.java @@ -30,6 +30,11 @@ import lombok.experimental.Accessors; public class Cet_6 implements Serializable { private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键id") + @TableId(type = IdType.AUTO) + private Integer id; + /** * 学生姓名 */ @@ -55,9 +60,8 @@ public class Cet_6 implements Serializable { * 学生学号 */ @AttributeName(19) - @TableId(type = IdType.ASSIGN_ID) @ApiModelProperty(value = "学生学号") - private String id; + private String code; /** * 考试批次 */ diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/pojo/CetStudent.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/pojo/CetStudent.java new file mode 100644 index 00000000..f9eeb8bf --- /dev/null +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/pojo/CetStudent.java @@ -0,0 +1,91 @@ +package org.jeecg.modules.pojo; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Created with IntelliJ IDEA. + * + * @Author: Cool + * @Date: 2024/10/23/20:35 + * @Description: + */ +@Data +public class CetStudent { + + /** + * id + */ + @ExcelProperty("学号") + @ApiModelProperty(value = "id") + private String code; + /** + * name + */ + @ExcelProperty("姓名") + @ApiModelProperty(value = "name") + private String name; + /** + * college + */ + @ExcelProperty("上课院系") + @ApiModelProperty(value = "college") + private String college; + /** + * majorId + */ + @ExcelProperty("专业号") + @ApiModelProperty(value = "majorId") + private String majorId; + /** + * majorname + */ + @ExcelProperty("专业名称") + @ApiModelProperty(value = "majorname") + private String majorname; + /** + * className + */ + @ExcelProperty("班级") + @ApiModelProperty(value = "className") + private String className; + /** + * educate + */ + @ExcelProperty("学制") + @ApiModelProperty(value = "educate") + private String educate; + /** + * entrydate + */ + @ExcelProperty("当前所在级") + @ApiModelProperty(value = "entrydate") + private String entrydate; + /** + * campus + */ + @ExcelProperty("校区") + @ApiModelProperty(value = "campus") + private String campus; + /** + * state + */ + @ExcelProperty("在校状态") + @ApiModelProperty(value = "state") + private String state; + /** + * level + */ + @ExcelProperty("培养层次") + @ApiModelProperty(value = "level") + private String level; + /** + * category + */ + @ExcelProperty("学生类别") + @ApiModelProperty(value = "category") + private String category; +} diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/runnable/CetDataAsync.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/runnable/CetDataAsync.java new file mode 100644 index 00000000..0aa68e24 --- /dev/null +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/runnable/CetDataAsync.java @@ -0,0 +1,85 @@ +package org.jeecg.modules.runnable; + +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.modules.entity.Cet4_major; +import org.jeecg.modules.entity.Cet_4; +import org.jeecg.modules.entity.Cet_6; +import org.jeecg.modules.service.ICet4MajorService; +import org.jeecg.modules.service.ICet_4Service; +import org.jeecg.modules.service.ICet_6Service; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * Created with IntelliJ IDEA. + * + * @Author: Cool + * @Date: 2024/10/24/14:38 + * @Description: + */ +@Slf4j +public class CetDataAsync implements Runnable { + + private final ICet_6Service cet6Service; + private final ICet_4Service cet4Service; + private final ICet4MajorService cet4MajorService; + + // 构造函数注入 + public CetDataAsync(ICet_6Service cet6Service, ICet_4Service cet4Service, ICet4MajorService cet4MajorService) { + this.cet6Service = cet6Service; + this.cet4Service = cet4Service; + this.cet4MajorService = cet4MajorService; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void run() { + long start = System.currentTimeMillis(); + List majorList = cet4MajorService.list(); + List allCet4 = cet4Service.list(); + List allCet6 = cet6Service.list(); + List cet4List = new ArrayList<>(); + List cet6List = new ArrayList<>(); + Map> cet4Map = allCet4.stream().collect(Collectors.groupingBy(Cet_4::getCode)); + Map> cet6Map = allCet6.stream().collect(Collectors.groupingBy(Cet_6::getCode)); + majorList.forEach(e -> { + List cet4Collect = cet4Map.getOrDefault(e.getCode(), Collections.emptyList()); + List cet6Collect = cet6Map.getOrDefault(e.getCode(), Collections.emptyList()); + cet4Collect.forEach(c -> { + //填充数据 + c.setMajorname(e.getMajorname()); + c.setLevel(e.getLevel()); + c.setState(e.getState()); + }); + cet6Collect.forEach(c -> { + //填充数据 + c.setMajorname(e.getMajorname()); + c.setLevel(e.getLevel()); + c.setState(e.getState()); + }); + cet4List.addAll(cet4Collect); + cet6List.addAll(cet6Collect); + if (cet4List.size() >= 500) { + cet4Service.updateBatchById(cet4List); + cet4List.clear(); + } + if (cet6List.size() >= 500) { + cet6Service.updateBatchById(cet6List); + cet6List.clear(); + } + }); + //将剩下的不足500的提交 + if (!cet4List.isEmpty()) { + cet4Service.updateBatchById(cet4List); + } + if (!cet6List.isEmpty()) { + cet6Service.updateBatchById(cet6List); + } + log.info("同步数据用时:{}",System.currentTimeMillis()-start); + } +} diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/ICet4MajorService.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/ICet4MajorService.java new file mode 100644 index 00000000..5e55ef81 --- /dev/null +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/ICet4MajorService.java @@ -0,0 +1,25 @@ +package org.jeecg.modules.service; + +import org.jeecg.common.api.vo.Result; +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.entity.Cet4_major; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * @Description: cet4_major + * @Author: jeecg-boot + * @Date: 2024-10-23 + * @Version: V1.0 + */ +public interface ICet4MajorService extends IService { + + Result downloadTemplate(HttpServletResponse response); + + Result loadTable(); + + Result importStudentData(HttpServletRequest request); + + Result asyncData(); +} diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/ICet_6Service.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/ICet_6Service.java index 3b2f13c2..232402af 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/ICet_6Service.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/ICet_6Service.java @@ -16,6 +16,7 @@ public interface ICet_6Service extends IService { Result getRate(Cet_6 data); Result getGrateRate(); + Result loadImportDataList(); } diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CenterServiceImpl.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CenterServiceImpl.java index e4a8efd1..dc6b5ada 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CenterServiceImpl.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CenterServiceImpl.java @@ -260,35 +260,35 @@ public class CenterServiceImpl extends ServiceImpl implement Cet_4QW.eq(Cet_4::getEntrydate, entryDate).eq(Cet_4::getBatch, batchList.get(i)); //查询该年级的全校在籍学生 Cet4_majorQW.clear(); - Cet4_majorQW.select(Cet4_major::getId).eq(Cet4_major::getEntrydate, entryDate).eq(Cet4_major::getState, "在校"); + Cet4_majorQW.select(Cet4_major::getCode).eq(Cet4_major::getEntrydate, entryDate).eq(Cet4_major::getState, "在校"); allStudent = cet4_majorMapper.selectCount(Cet4_majorQW); } else if (college.equals("专升本")) { totalName = "全校"; Cet_4QW.eq(Cet_4::getLevel, college).eq(Cet_4::getEntrydate, entryDate).eq(Cet_4::getBatch, batchList.get(i)); //查询该年级的专升本在籍学生 Cet4_majorQW.clear(); - Cet4_majorQW.select(Cet4_major::getId).eq(Cet4_major::getLevel, college).eq(Cet4_major::getState, "在校").eq(Cet4_major::getEntrydate, entryDate); + Cet4_majorQW.select(Cet4_major::getCode).eq(Cet4_major::getLevel, college).eq(Cet4_major::getState, "在校").eq(Cet4_major::getEntrydate, entryDate); allStudent = cet4_majorMapper.selectCount(Cet4_majorQW); } else if (major.equals("")) { totalName = "学院"; Cet_4QW.eq(Cet_4::getCollege, college).eq(Cet_4::getEntrydate, entryDate).eq(Cet_4::getBatch, batchList.get(i)); //查询该年级的学院在籍学生 Cet4_majorQW.clear(); - Cet4_majorQW.select(Cet4_major::getId).eq(Cet4_major::getCollege, college).eq(Cet4_major::getState, "在校").eq(Cet4_major::getEntrydate, entryDate); + Cet4_majorQW.select(Cet4_major::getCode).eq(Cet4_major::getCollege, college).eq(Cet4_major::getState, "在校").eq(Cet4_major::getEntrydate, entryDate); allStudent = cet4_majorMapper.selectCount(Cet4_majorQW); } else { totalName = "专业"; //查询该年级的学院专业在籍学生 Cet_4QW.eq(Cet_4::getCollege, college).eq(Cet_4::getMajorname, major).eq(Cet_4::getEntrydate, entryDate).eq(Cet_4::getBatch, batchList.get(i)); Cet4_majorQW.clear(); - Cet4_majorQW.select(Cet4_major::getId).eq(Cet4_major::getCollege, college).eq(Cet4_major::getState, "在校").eq(Cet4_major::getMajorname, major).eq(Cet4_major::getEntrydate, entryDate); + Cet4_majorQW.select(Cet4_major::getCode).eq(Cet4_major::getCollege, college).eq(Cet4_major::getState, "在校").eq(Cet4_major::getMajorname, major).eq(Cet4_major::getEntrydate, entryDate); allStudent = cet4_majorMapper.selectCount(Cet4_majorQW); } List> Cet_4eEntrydate = cet4Mapper.selectMaps(Cet_4QW); if (!Cet_4eEntrydate.isEmpty()) { for (Map map : Cet_4eEntrydate) { - String str = (String) map.get("id"); + String str = (String) map.get("code"); if ((int) map.get("result") >= 425) { attendMap4.put(str, 1); } else { @@ -366,25 +366,25 @@ public class CenterServiceImpl extends ServiceImpl implement List list = cet4oldMapper.selectList(null); // 准备id列表,用于批量查询 - List idList = list.stream().map(Cet_4old::getId).collect(Collectors.toList()); + List idList = list.stream().map(Cet_4old::getCode).collect(Collectors.toList()); // 批量查询专业信息 - cet4_majorQW.in(Cet4_major::getId, idList); - cet4_majorQW.select(Cet4_major::getId, Cet4_major::getMajorname, Cet4_major::getLevel, Cet4_major::getState, Cet4_major::getEntrydate); + cet4_majorQW.in(Cet4_major::getCode, idList); + cet4_majorQW.select(Cet4_major::getCode, Cet4_major::getMajorname, Cet4_major::getLevel, Cet4_major::getState, Cet4_major::getEntrydate); List> mapList = cet4_majorMapper.selectMaps(cet4_majorQW); // 将专业信息写入学生对象 Map> idToMap = mapList.stream().collect(Collectors.toMap( - map -> map.get("id"), + map -> map.get("code"), Function.identity() )); int temp = 0; List cet4List = new ArrayList<>(); //以当前所在年级为入学年份 for (Cet_4old cet4old : list) { - Map map_major = idToMap.get(cet4old.getId()); + Map map_major = idToMap.get(cet4old.getCode()); Cet_4 cet4 = new Cet_4(); - cet4.setId(cet4old.getId()); + cet4.setCode(cet4old.getCode()); cet4.setName(cet4old.getName()); cet4.setCollege(cet4old.getCollege()); cet4.setResult(cet4old.getResult()); @@ -397,7 +397,7 @@ public class CenterServiceImpl extends ServiceImpl implement cet4.setLevel((String) map_major.get("level")); cet4.setState((String) map_major.get("state")); cet4List.add(cet4); - System.out.println(temp++ + ",id:" + cet4.getId() + " ,majorname:" + cet4.getMajorname() + " ,level:" + cet4.getLevel() + " ,state:" + cet4.getState()); + System.out.println(temp++ + ",id:" + cet4.getCode() + " ,majorname:" + cet4.getMajorname() + " ,level:" + cet4.getLevel() + " ,state:" + cet4.getState()); } System.out.println(cet4List.size()); // 批量更新 diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/Cet4MajorServiceImpl.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/Cet4MajorServiceImpl.java new file mode 100644 index 00000000..d9e04809 --- /dev/null +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/Cet4MajorServiceImpl.java @@ -0,0 +1,172 @@ +package org.jeecg.modules.service.impl; + +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.event.AnalysisEventListener; +import com.alibaba.excel.support.ExcelTypeEnum; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.config.ThreadPoolManager; +import org.jeecg.modules.entity.Cet4_major; +import org.jeecg.modules.mapper.Cet4_majorMapper; +import org.jeecg.modules.pojo.CetStudent; +import org.jeecg.modules.runnable.CetDataAsync; +import org.jeecg.modules.service.ICet4MajorService; +import org.jeecg.modules.service.ICet_4Service; +import org.jeecg.modules.service.ICet_6Service; +import org.jeecg.modules.utils.ExportUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.sql.Timestamp; +import java.util.*; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.stream.Collectors; + +/** + * @Description: cet4_major + * @Author: jeecg-boot + * @Date: 2024-10-23 + * @Version: V1.0 + */ +@Service +public class Cet4MajorServiceImpl extends ServiceImpl implements ICet4MajorService { + private final String CET_STUDENT_IMPORT_TEMPLATE = "template/cetStudentImportTemplate.xls"; + private final String CET_STUDENT_FILE_TEMPLATE_NAME = "四六级学生信息导入模版.xlsx"; + + @Autowired + private ICet_6Service cet6Service; + @Autowired + ICet_4Service cet4Service; + @Autowired + @Lazy + private ICet4MajorService cet4MajorService; + + @Override + public Result downloadTemplate(HttpServletResponse response) { + try { + ExportUtil.downloadExcelTemplate(response, CET_STUDENT_FILE_TEMPLATE_NAME, CET_STUDENT_IMPORT_TEMPLATE); + } catch (IOException e) { + e.printStackTrace(); + } + return null; + } + + @Override + public Result loadTable() { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.select("entrydate", "count(*) as studentNumber") + .groupBy("entrydate"); + List> list = this.listMaps(wrapper); + // 倒序排序 + list = list.stream().filter(e -> e.get("entrydate") != null).collect(Collectors.toList()); + list.sort(Comparator.comparing((Map o) -> ((String) o.get("entrydate"))).reversed()); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("data", list); + return Result.OK(jsonObject); + } + + @Override + public Result importStudentData(HttpServletRequest request) { + MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; + Map fileMap = multipartRequest.getFileMap(); + for (Map.Entry entity : fileMap.entrySet()) { + // 获取上传文件对象 + MultipartFile file = entity.getValue(); + if (file.isEmpty()) { + // 文件为空,进行处理(例如,返回错误信息) + return Result.error("上传的文件为空!"); + } + try { + /**' + * 1. 读取表格 + */ + ArrayList furnitureArrayList = new ArrayList<>(); + //使用EasyExcel读取excel文件 + EasyExcel.read(file.getInputStream(), CetStudent.class, new AnalysisEventListener() { + @Override + public void invoke(CetStudent furniture, AnalysisContext analysisContext) { + System.out.println(furniture); + // 将读取到的数据存储到 list 集合里 + furnitureArrayList.add(furniture); + } + + @Override + public void doAfterAllAnalysed(AnalysisContext analysisContext) { + // 读取完后的操作 + } + }).excelType(ExcelTypeEnum.XLS).sheet().doRead(); + System.out.println(furnitureArrayList); + /** + * 将表格list用set为实体类 + */ + ArrayList rmsFurnitureArrayList = new ArrayList<>(); + Timestamp timestamp = new Timestamp(System.currentTimeMillis()); + for (CetStudent cetStudent : furnitureArrayList) { + Cet4_major cet4Major = new Cet4_major(); + cet4Major.setMajorId(cetStudent.getMajorId()); + cet4Major.setMajorname(cetStudent.getMajorname()); + cet4Major.setCode(cetStudent.getCode()); + cet4Major.setName(cetStudent.getName()); + cet4Major.setCollege(cetStudent.getCollege()); + cet4Major.setClassName(cetStudent.getClassName()); + cet4Major.setEducate(cetStudent.getEducate()); + cet4Major.setEntrydate(cetStudent.getEntrydate()); + cet4Major.setCampus(cetStudent.getCampus()); + cet4Major.setState(cetStudent.getState()); + cet4Major.setLevel(cetStudent.getLevel()); + cet4Major.setCategory(cetStudent.getCategory()); + + rmsFurnitureArrayList.add(cet4Major); + } + System.out.println(rmsFurnitureArrayList.size()); + /** + * 遍历list save + */ + saveBatch(rmsFurnitureArrayList, 10000); + System.out.println("插入成功"); + Timestamp timestamp2 = new Timestamp(System.currentTimeMillis()); + long millisecondsDiff = timestamp2.getTime() - timestamp.getTime(); + long secondsDiff = millisecondsDiff / 1000; + System.out.println("时间差为:" + secondsDiff + " 秒"); + return Result.ok("文件导入成功!数据行数:" + rmsFurnitureArrayList.size()); + } catch (Exception e) { + //update-begin-author:taoyan date:20211124 for: 导入数据重复增加提示 + String msg = e.getMessage(); + log.error(msg, e); + if (msg != null && msg.indexOf("Duplicate entry") >= 0) { + return Result.error("文件导入失败:有重复数据!"); + } else { + return Result.error("文件导入失败:" + e.getMessage()); + } + //update-end-author:taoyan date:20211124 for: 导入数据重复增加提示 + } finally { + try { + file.getInputStream().close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + return Result.error("文件导入失败!"); + } + + @Override + public Result asyncData() { + //异步同步数据 + ThreadPoolExecutor executor = ThreadPoolManager.getExecutor(); + executor.execute(new CetDataAsync(cet6Service,cet4Service,cet4MajorService)); + return Result.ok(); + } +} + + diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CetMajorServiceImpl.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CetMajorServiceImpl.java deleted file mode 100644 index b307c4a8..00000000 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CetMajorServiceImpl.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.jeecg.modules.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import lombok.extern.slf4j.Slf4j; -import org.jeecg.common.api.vo.Result; -import org.jeecg.modules.entity.Cet4_major; -import org.jeecg.modules.mapper.Cet4_majorMapper; -import org.jeecg.modules.utils.ExportUtil; -import org.springframework.stereotype.Service; - -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * Created with IntelliJ IDEA. - * - * @Author: Cool - * @Date: 2024/10/11/15:52 - * @Description: - */ -@Service -@Slf4j -public class CetMajorServiceImpl extends ServiceImpl { - private final String CET_STUDENT_IMPORT_TEMPLATE = "template/cetStudentImportTemplate.xls"; - private final String CET_STUDENT_FILE_TEMPLATE_NAME = "四六级学生信息导入模版.xlsx"; - - public Result downloadTemplate(HttpServletResponse response) { - try { - ExportUtil.downloadExcelTemplate(response, CET_STUDENT_FILE_TEMPLATE_NAME, CET_STUDENT_IMPORT_TEMPLATE); - } catch (IOException e) { - e.printStackTrace(); - } - return null; - } -} diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/Cet_4ServiceImpl.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/Cet_4ServiceImpl.java index 19c35fe8..5006e47b 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/Cet_4ServiceImpl.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/Cet_4ServiceImpl.java @@ -18,7 +18,6 @@ import org.jeecg.modules.mapper.Cet_4Mapper; import org.jeecg.modules.service.CenterService; import org.jeecg.modules.service.CetCleanService; import org.jeecg.modules.service.ICet_4Service; -import org.jeecg.modules.utils.DateUtil; import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; @@ -237,13 +236,13 @@ public class Cet_4ServiceImpl extends ServiceImpl implements // 在循环开始之前,获取所有学院的在籍学生数量 LambdaQueryWrapper allStudentQW = new LambdaQueryWrapper<>(); - allStudentQW.select(Cet4_major::getCollege, Cet4_major::getId).eq(Cet4_major::getState, "在校").eq(Cet4_major::getEntrydate, entryDate); + allStudentQW.select(Cet4_major::getCollege, Cet4_major::getCode).eq(Cet4_major::getState, "在校").eq(Cet4_major::getEntrydate, entryDate); List> allStudentList = cet4_majorMapper.selectMaps(allStudentQW); Map allStudentMap = allStudentList.stream().collect(Collectors.groupingBy(map -> (String) map.get("college"), Collectors.counting())); // 在循环开始之前,获取所有批次的数据 LambdaQueryWrapper allBatchQW = new LambdaQueryWrapper<>(); - allBatchQW.select(Cet_4::getCollege, Cet_4::getId, Cet_4::getResult).eq(Cet_4::getEntrydate, entryDate).in(Cet_4::getBatch, batchList); + allBatchQW.select(Cet_4::getCollege, Cet_4::getCode, Cet_4::getResult).eq(Cet_4::getEntrydate, entryDate).in(Cet_4::getBatch, batchList); List> allBatchList = cet4Mapper.selectMaps(allBatchQW); Map>> allBatchMap = allBatchList.stream().collect(Collectors.groupingBy(map -> (String) map.get("college"))); @@ -258,7 +257,7 @@ public class Cet_4ServiceImpl extends ServiceImpl implements //一次性获取所有批次的数据 List> Cet_4eEntrydate = allBatchMap.get(collegeName); for (Map map : Cet_4eEntrydate) { - String str = (String) map.get("id"); + String str = (String) map.get("code"); if ((int) map.get("result") >= 425) { attendMap4.put(str, 1); } else { @@ -342,12 +341,12 @@ public class Cet_4ServiceImpl extends ServiceImpl implements List collegeSet = cet4_MajorMapper.selectObjs(cet4MajorQW); // 在循环开始之前,获取该学院该年级的学生数量 LambdaQueryWrapper allStudentQW = new LambdaQueryWrapper<>(); - allStudentQW.select(Cet4_major::getId).eq(Cet4_major::getState, "在校").eq(Cet4_major::getEntrydate, entryDate).eq(Cet4_major::getCollege, collegeName); + allStudentQW.select(Cet4_major::getCode).eq(Cet4_major::getState, "在校").eq(Cet4_major::getEntrydate, entryDate).eq(Cet4_major::getCollege, collegeName); //获取该学院在籍学生数量 long allStudent = cet4_majorMapper.selectCount(allStudentQW); // 在循环开始之前,获取该年级,学院所有批次的数据 LambdaQueryWrapper allBatchQW = new LambdaQueryWrapper<>(); - allBatchQW.select(Cet_4::getCollege, Cet_4::getId, Cet_4::getResult).eq(Cet_4::getEntrydate, entryDate).eq(Cet_4::getCollege, collegeName).in(Cet_4::getBatch, batchList); + allBatchQW.select(Cet_4::getCollege, Cet_4::getCode, Cet_4::getResult).eq(Cet_4::getEntrydate, entryDate).eq(Cet_4::getCollege, collegeName).in(Cet_4::getBatch, batchList); //获取该学院该年级所有批次的数据 List> Cet_4eEntrydate = cet4Mapper.selectMaps(allBatchQW); if (collegeSet.contains(collegeName)) { @@ -355,7 +354,7 @@ public class Cet_4ServiceImpl extends ServiceImpl implements Map attendMap4 = new HashMap<>(); JSONObject json = new JSONObject(); for (Map map : Cet_4eEntrydate) { - String str = (String) map.get("id"); + String str = (String) map.get("code"); if ((int) map.get("result") >= 425) { attendMap4.put(str, 1); } else { @@ -443,7 +442,7 @@ public class Cet_4ServiceImpl extends ServiceImpl implements Cet_4QW.eq(Cet_4::getCollege, colleges.get(0)).eq(Cet_4::getMajorname, major).eq(Cet_4::getEntrydate, entryDate).in(Cet_4::getBatch, batchList); List> Cet_4eEntrydate = cet4Mapper.selectMaps(Cet_4QW); for (Map map : Cet_4eEntrydate) { - String str = (String) map.get("id"); + String str = (String) map.get("code"); if ((int) map.get("result") >= 425) { attendMap4.put(str, 1); } else { @@ -508,7 +507,7 @@ public class Cet_4ServiceImpl extends ServiceImpl implements Cet_4QW.eq(Cet_4::getCollege, colleges.get(0)).eq(Cet_4::getMajorname, major).eq(Cet_4::getEntrydate, entryDate).in(Cet_4::getBatch, batchList); List> Cet_4eEntrydate = cet4Mapper.selectMaps(Cet_4QW); for (Map map : Cet_4eEntrydate) { - String str = (String) map.get("id"); + String str = (String) map.get("code"); if ((int) map.get("result") >= 425) { attendMap4.put(str, 1); } else { @@ -594,7 +593,7 @@ public class Cet_4ServiceImpl extends ServiceImpl implements String currentEntryDate = (String) Date.get("entrydate"); for (Map map : maps) { String studentEntryDate = (String) map.get("entrydate"); - String str = (String) map.get("id"); + String str = (String) map.get("code"); // 仅处理当前 entryDate 下的学生数据 if (currentEntryDate.equals(studentEntryDate)) { if ((int) map.get("result") >= 425) { @@ -658,14 +657,14 @@ public class Cet_4ServiceImpl extends ServiceImpl implements @Override public Result getDataByStudent(JSONObject jsonObject) { String name = jsonObject.getString("name"); - Integer id = jsonObject.getInteger("id"); - if (name == null || id == null) { + Integer code = jsonObject.getInteger("code"); + if (name == null || code == null) { return Result.error("请填写完整的参数"); } JSONObject result = new JSONObject(); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(Cet_4::getName, name) - .eq(Cet_4::getId, id); + .eq(Cet_4::getCode, code); List list = list(wrapper); result.put("results", list); return Result.ok(result); diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/Cet_6ServiceImpl.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/Cet_6ServiceImpl.java index 7a2cdc22..1982e2b7 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/Cet_6ServiceImpl.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/Cet_6ServiceImpl.java @@ -1,6 +1,5 @@ package org.jeecg.modules.service.impl; -import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -12,15 +11,15 @@ import org.jeecg.modules.entity.Cet_4; import org.jeecg.modules.entity.Cet_6; import org.jeecg.modules.mapper.Cet_6Mapper; import org.jeecg.modules.service.CenterService; +import org.jeecg.modules.service.ICet4MajorService; import org.jeecg.modules.service.ICet_6Service; -import org.jeecg.modules.utils.DateUtil; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import javax.annotation.Resource; -import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -35,14 +34,14 @@ import java.util.stream.Collectors; public class Cet_6ServiceImpl extends ServiceImpl implements ICet_6Service { @Resource Cet_6Mapper cet6Mapper; - - +// + @Autowired + @Lazy + ICet4MajorService cet4MajorService; @Autowired Cet_4ServiceImpl cet4Service; @Autowired CenterService centerService; - @Autowired - CetMajorServiceImpl cetMajorService; @Override public Result getRate(Cet_6 cet) { @@ -85,27 +84,26 @@ public class Cet_6ServiceImpl extends ServiceImpl implements LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(Cet_6::getEntrydate, "2020"); List list1 = list(wrapper); - Set allStudent1 = list1.stream().map(Cet_6::getId).collect(Collectors.toSet()); - log.info("六级总考试人数,{}",allStudent1.size()); + Set allStudent1 = list1.stream().map(Cet_6::getCode).collect(Collectors.toSet()); + log.info("六级总考试人数,{}", allStudent1.size()); wrapper.ge(Cet_6::getResult, 425); List list = list(wrapper); log.info("六级总通过人数,{}", list.size()); - Set passStudent = list.stream().map(Cet_6::getId).collect(Collectors.toSet()); + Set passStudent = list.stream().map(Cet_6::getCode).collect(Collectors.toSet()); log.info("六级通过人数,{}", passStudent.size()); LambdaQueryWrapper majorWrapper = new LambdaQueryWrapper<>(); - majorWrapper.eq(Cet4_major::getEntrydate, "2020") - .eq(Cet4_major::getState, "在校"); - List majorList = cetMajorService.list(majorWrapper); - Set allStudent = majorList.stream().map(Cet4_major::getId).collect(Collectors.toSet()); + majorWrapper.eq(Cet4_major::getEntrydate, "2020").eq(Cet4_major::getState, "在校"); + List majorList = cet4MajorService.list(majorWrapper); + Set allStudent = majorList.stream().map(Cet4_major::getCode).collect(Collectors.toSet()); log.info("所有学生人数{}", allStudent.size()); log.info("通过率,{}", (double) passStudent.size() / allStudent.size()); - LambdaQueryWrapper cet4Wrapper=new LambdaQueryWrapper<>(); - cet4Wrapper.eq(Cet_4::getEntrydate,"2020"); - cet4Wrapper.ge(Cet_4::getResult,425); + LambdaQueryWrapper cet4Wrapper = new LambdaQueryWrapper<>(); + cet4Wrapper.eq(Cet_4::getEntrydate, "2020"); + cet4Wrapper.ge(Cet_4::getResult, 425); List cet4PassedStudent = cet4Service.list(cet4Wrapper); - Set cet4AllPassedStudent = cet4PassedStudent.stream().map(Cet_4::getId).collect(Collectors.toSet()); - log.info("四级通过人数,{}",cet4AllPassedStudent.size()); + Set cet4AllPassedStudent = cet4PassedStudent.stream().map(Cet_4::getCode).collect(Collectors.toSet()); + log.info("四级通过人数,{}", cet4AllPassedStudent.size()); return null; } @@ -113,8 +111,7 @@ public class Cet_6ServiceImpl extends ServiceImpl implements public Result loadImportDataList() { // 创建 QueryWrapper QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.select("batch", "COUNT(*) AS count") - .groupBy("batch"); + queryWrapper.select("batch", "COUNT(*) AS count").groupBy("batch"); // 执行查询,获取结果列表 List> list = this.listMaps(queryWrapper); diff --git a/jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml b/jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml index a7f926c2..33a80ad2 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml +++ b/jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml @@ -45,8 +45,8 @@ spring: clean-disabled: true servlet: multipart: - max-file-size: 10MB - max-request-size: 10MB + max-file-size: 50MB + max-request-size: 50MB mail: host: smtp.163.com username: jeecgos@163.com diff --git a/jeecg-module-system/jeecg-system-start/src/main/resources/application-prod.yml b/jeecg-module-system/jeecg-system-start/src/main/resources/application-prod.yml index b106b26f..49fb5486 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/resources/application-prod.yml +++ b/jeecg-module-system/jeecg-system-start/src/main/resources/application-prod.yml @@ -45,8 +45,8 @@ spring: clean-disabled: true servlet: multipart: - max-file-size: 10MB - max-request-size: 10MB + max-file-size: 50MB + max-request-size: 50MB mail: host: smtp.163.com username: jeecgos@163.com