From ba1c0d0b6ca41d10ab22f4acd1ce04da46e282a2 Mon Sep 17 00:00:00 2001 From: Cool <747682928@qq.com> Date: Thu, 24 Oct 2024 18:33:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=9B=E5=85=AD=E7=BA=A7=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=90=8C=E6=AD=A5,=E4=BF=AE=E6=94=B9=E4=BA=86=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E5=AD=97=E6=AE=B5=EF=BC=8C=E5=B0=86=E5=AD=A6?= =?UTF-8?q?=E5=8F=B7=E4=BB=8Eid=E6=94=B9=E4=B8=BAcode=EF=BC=8C=E7=8E=B0id?= =?UTF-8?q?=E4=B8=BA=E8=A1=A8=E5=86=85=E8=87=AA=E5=A2=9E=E4=B8=BB=E9=94=AE?= =?UTF-8?q?id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/CetDataImportController.java | 2 +- .../org/jeecg/modules/entity/Cet4_major.java | 2 +- .../java/org/jeecg/modules/entity/Cet_4.java | 8 ++- .../org/jeecg/modules/entity/Cet_4old.java | 9 ++- .../java/org/jeecg/modules/entity/Cet_6.java | 8 ++- .../org/jeecg/modules/pojo/CetStudent.java | 4 +- .../jeecg/modules/runnable/CetDataAsync.java | 60 ++++++++++++++----- .../service/impl/CenterServiceImpl.java | 24 ++++---- .../service/impl/Cet4MajorServiceImpl.java | 12 +--- .../service/impl/Cet_4ServiceImpl.java | 24 ++++---- .../service/impl/Cet_6ServiceImpl.java | 52 ++++++++-------- 11 files changed, 118 insertions(+), 87 deletions(-) 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/entity/Cet4_major.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/Cet4_major.java index fa95f7b9..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 @@ -30,7 +30,7 @@ public class Cet4_major implements Serializable { @TableId(type = IdType.ASSIGN_ID) @Excel(name = "学号", width = 15) @ApiModelProperty(value = "id") - private String id; + private String code; /**name*/ @Excel(name = "姓名", width = 15) @ApiModelProperty(value = "name") 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 index 153d4eca..f9eeb8bf 100644 --- 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 @@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import org.jeecgframework.poi.excel.annotation.Excel; /** * Created with IntelliJ IDEA. @@ -20,10 +19,9 @@ public class CetStudent { /** * id */ - @TableId(type = IdType.ASSIGN_ID) @ExcelProperty("学号") @ApiModelProperty(value = "id") - private String id; + private String code; /** * name */ 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 index 54909ece..0aa68e24 100644 --- 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 @@ -1,6 +1,7 @@ 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; @@ -9,8 +10,10 @@ 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.List; +import java.util.*; +import java.util.stream.Collectors; /** * Created with IntelliJ IDEA. @@ -19,7 +22,7 @@ import java.util.List; * @Date: 2024/10/24/14:38 * @Description: */ -@Component +@Slf4j public class CetDataAsync implements Runnable { private final ICet_6Service cet6Service; @@ -27,7 +30,6 @@ public class CetDataAsync implements Runnable { private final ICet4MajorService cet4MajorService; // 构造函数注入 - @Autowired public CetDataAsync(ICet_6Service cet6Service, ICet_4Service cet4Service, ICet4MajorService cet4MajorService) { this.cet6Service = cet6Service; this.cet4Service = cet4Service; @@ -35,21 +37,49 @@ public class CetDataAsync implements Runnable { } @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 -> { - LambdaUpdateWrapper cet4Wrapper = new LambdaUpdateWrapper<>(); - LambdaUpdateWrapper cet6Wrapper = new LambdaUpdateWrapper<>(); - cet4Wrapper.eq(Cet_4::getId, e.getId()) - .set(Cet_4::getMajorname, e.getMajorname()) - .set(Cet_4::getState, e.getState()) - .set(Cet_4::getLevel, e.getLevel()); - cet6Wrapper.eq(Cet_6::getId, e.getId()) - .set(Cet_6::getMajorname, e.getMajorname()) - .set(Cet_6::getState, e.getState()) - .set(Cet_6::getLevel, e.getLevel()); - cet4Service.update(cet4Wrapper); - cet6Service.update(cet6Wrapper); + 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/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 index 4a75b2cc..d9e04809 100644 --- 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 @@ -5,17 +5,10 @@ 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.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; -import org.checkerframework.checker.units.qual.A; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.config.ThreadPoolManager; -import org.jeecg.modules.controller.Cet4MajorController; 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.mapper.Cet4_majorMapper; import org.jeecg.modules.pojo.CetStudent; import org.jeecg.modules.runnable.CetDataAsync; @@ -25,7 +18,6 @@ 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.Component; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -37,9 +29,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.sql.Timestamp; import java.util.*; -import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; /** @@ -125,7 +115,7 @@ public class Cet4MajorServiceImpl 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"))); @@ -257,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 { @@ -341,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)) { @@ -354,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 { @@ -442,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 { @@ -507,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 { @@ -593,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) { @@ -657,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 832a0039..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 @@ -14,6 +14,7 @@ import org.jeecg.modules.service.CenterService; import org.jeecg.modules.service.ICet4MajorService; import org.jeecg.modules.service.ICet_6Service; 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; @@ -34,8 +35,9 @@ public class Cet_6ServiceImpl extends ServiceImpl implements @Resource Cet_6Mapper cet6Mapper; // -// @Autowired -// ICet4MajorService cet4MajorService; + @Autowired + @Lazy + ICet4MajorService cet4MajorService; @Autowired Cet_4ServiceImpl cet4Service; @Autowired @@ -79,29 +81,29 @@ public class Cet_6ServiceImpl extends ServiceImpl implements @Override public Result getGrateRate() { -// 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()); -// 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()); -// log.info("六级通过人数,{}", passStudent.size()); -// LambdaQueryWrapper majorWrapper = new LambdaQueryWrapper<>(); -// majorWrapper.eq(Cet4_major::getEntrydate, "2020").eq(Cet4_major::getState, "在校"); -// List majorList = cet4MajorService.list(majorWrapper); -// Set allStudent = majorList.stream().map(Cet4_major::getId).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); -// List cet4PassedStudent = cet4Service.list(cet4Wrapper); -// Set cet4AllPassedStudent = cet4PassedStudent.stream().map(Cet_4::getId).collect(Collectors.toSet()); -// log.info("四级通过人数,{}", cet4AllPassedStudent.size()); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(Cet_6::getEntrydate, "2020"); + List list1 = list(wrapper); + 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::getCode).collect(Collectors.toSet()); + log.info("六级通过人数,{}", passStudent.size()); + LambdaQueryWrapper majorWrapper = new LambdaQueryWrapper<>(); + 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); + List cet4PassedStudent = cet4Service.list(cet4Wrapper); + Set cet4AllPassedStudent = cet4PassedStudent.stream().map(Cet_4::getCode).collect(Collectors.toSet()); + log.info("四级通过人数,{}", cet4AllPassedStudent.size()); return null; }