From a53eeb74cd5d79dca8c975f7ac0de01f68cb1ada Mon Sep 17 00:00:00 2001 From: sunyugang Date: Fri, 18 Jul 2025 17:36:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E5=85=A5=E4=BF=A1=E6=81=AF=E9=87=87?= =?UTF-8?q?=E9=9B=86=E6=95=B0=E6=8D=AE=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dw/controller/CjStudentController.java | 18 ++++ .../java/com/ruoyi/dw/domain/CjStudent.java | 19 +---- .../com/ruoyi/dw/mapper/CjStudentMapper.java | 7 ++ .../ruoyi/dw/service/ICjStudentService.java | 8 ++ .../dw/service/impl/CjStudentServiceImpl.java | 82 +++++++++++++++++++ .../resources/mapper/dw/CjStudentMapper.xml | 35 ++++++-- 6 files changed, 149 insertions(+), 20 deletions(-) diff --git a/ruoyi-dw/src/main/java/com/ruoyi/dw/controller/CjStudentController.java b/ruoyi-dw/src/main/java/com/ruoyi/dw/controller/CjStudentController.java index ec8815c..060729d 100644 --- a/ruoyi-dw/src/main/java/com/ruoyi/dw/controller/CjStudentController.java +++ b/ruoyi-dw/src/main/java/com/ruoyi/dw/controller/CjStudentController.java @@ -9,10 +9,12 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.dw.domain.CjStudent; +import com.ruoyi.dw.domain.DwInfo; import com.ruoyi.dw.service.ICjStudentService; import com.ruoyi.system.service.ISysDeptService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; @@ -110,4 +112,20 @@ public class CjStudentController extends BaseController public AjaxResult confirmStudent(@PathVariable Long[] ids) { return toAjax(cjStudentService.confirmCjStudent(ids)); } + + /** + * 导入调查问卷数据 + * @param file + * @throws Exception + */ + @PostMapping("/import") + public AjaxResult importData(MultipartFile file) throws Exception{ + int successNum = cjStudentService.importData(file); + if (successNum > 0) { + return AjaxResult.success(); + }else { + return AjaxResult.error("导入失败,请检查信息采集内容是否正确"); + } + } + } diff --git a/ruoyi-dw/src/main/java/com/ruoyi/dw/domain/CjStudent.java b/ruoyi-dw/src/main/java/com/ruoyi/dw/domain/CjStudent.java index 75fded1..bbaf6f9 100644 --- a/ruoyi-dw/src/main/java/com/ruoyi/dw/domain/CjStudent.java +++ b/ruoyi-dw/src/main/java/com/ruoyi/dw/domain/CjStudent.java @@ -11,7 +11,7 @@ import com.ruoyi.common.core.domain.BaseEntity; * @author sunyg * @date 2025-06-26 */ -public class CjStudent extends BaseEntity +public class CjStudent { private static final long serialVersionUID = 1L; @@ -42,7 +42,7 @@ public class CjStudent extends BaseEntity /** 毕业年份 */ @Excel(name = "毕业年份") - private Long bynf; + private int bynf; /** 最高学历 */ @Excel(name = "最高学历") @@ -76,9 +76,6 @@ public class CjStudent extends BaseEntity @Excel(name = "荣誉是否展示") private Long rysfzs; - /** 荣誉 */ - private String ry; - /** 手机 */ @Excel(name = "手机") private String sj; @@ -135,12 +132,12 @@ public class CjStudent extends BaseEntity return zy; } - public void setBynf(Long bynf) + public void setBynf(int bynf) { this.bynf = bynf; } - public Long getBynf() + public int getBynf() { return bynf; } @@ -281,14 +278,6 @@ public class CjStudent extends BaseEntity this.sydshi = sydshi; } - public String getRy() { - return ry; - } - - public void setRy(String ry) { - this.ry = ry; - } - public String getXy() { return xy; } diff --git a/ruoyi-dw/src/main/java/com/ruoyi/dw/mapper/CjStudentMapper.java b/ruoyi-dw/src/main/java/com/ruoyi/dw/mapper/CjStudentMapper.java index 2183822..d45b21f 100644 --- a/ruoyi-dw/src/main/java/com/ruoyi/dw/mapper/CjStudentMapper.java +++ b/ruoyi-dw/src/main/java/com/ruoyi/dw/mapper/CjStudentMapper.java @@ -35,6 +35,13 @@ public interface CjStudentMapper */ public int insertCjStudent(CjStudent cjStudent); + /** + * 批量插入 + * @param cjStudents + * @return + */ + public int insertCjStudentBatch(List cjStudents); + /** * 修改采集学生信息 * diff --git a/ruoyi-dw/src/main/java/com/ruoyi/dw/service/ICjStudentService.java b/ruoyi-dw/src/main/java/com/ruoyi/dw/service/ICjStudentService.java index a6be4ce..1abff5c 100644 --- a/ruoyi-dw/src/main/java/com/ruoyi/dw/service/ICjStudentService.java +++ b/ruoyi-dw/src/main/java/com/ruoyi/dw/service/ICjStudentService.java @@ -2,6 +2,7 @@ package com.ruoyi.dw.service; import java.util.List; import com.ruoyi.dw.domain.CjStudent; +import org.springframework.web.multipart.MultipartFile; /** * 采集学生信息Service接口 @@ -65,4 +66,11 @@ public interface ICjStudentService * @return */ public int confirmCjStudent(Long[] ids); + + /** + * 导入调查问卷数据 + * @param file + * @return + */ + public int importData(MultipartFile file); } diff --git a/ruoyi-dw/src/main/java/com/ruoyi/dw/service/impl/CjStudentServiceImpl.java b/ruoyi-dw/src/main/java/com/ruoyi/dw/service/impl/CjStudentServiceImpl.java index 5b2d4ec..d9fc2e9 100644 --- a/ruoyi-dw/src/main/java/com/ruoyi/dw/service/impl/CjStudentServiceImpl.java +++ b/ruoyi-dw/src/main/java/com/ruoyi/dw/service/impl/CjStudentServiceImpl.java @@ -1,11 +1,18 @@ package com.ruoyi.dw.service.impl; +import java.util.ArrayList; import java.util.List; + +import com.ruoyi.common.core.redis.RedisCache; +import org.apache.poi.ss.usermodel.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.dw.mapper.CjStudentMapper; import com.ruoyi.dw.domain.CjStudent; import com.ruoyi.dw.service.ICjStudentService; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; /** * 采集学生信息Service业务层处理 @@ -19,6 +26,9 @@ public class CjStudentServiceImpl implements ICjStudentService @Autowired private CjStudentMapper cjStudentMapper; + @Resource + private RedisCache redisCache; + /** * 查询采集学生信息 * @@ -96,4 +106,76 @@ public class CjStudentServiceImpl implements ICjStudentService return cjStudentMapper.confirmCjStudentByIds(ids); } + @Override + public int importData(MultipartFile file) { + try { + Workbook workbook = WorkbookFactory.create(file.getInputStream()); + Sheet sheet = workbook.getSheetAt(0); + int rows = sheet.getLastRowNum(); + if (rows <= 0){ + return -1; + } + List list = new ArrayList<>(); + for (int i = 1; i <= rows; i++) { + //第一个调查问卷问题 + Row row = sheet.getRow(i); + String id = row.getCell(0).getStringCellValue(); + if (redisCache.hasKey(id)){ + continue; + } + CjStudent cjStudent = new CjStudent(); + Cell cell15 = row.getCell(15); + cjStudent.setXm(cell15.getStringCellValue()); + Cell cell16 = row.getCell(16); + cjStudent.setXb(cell16.getStringCellValue()); + Cell cell17 = row.getCell(17); + cjStudent.setZy(cell17.getStringCellValue()); + Cell cell18 = row.getCell(18); + cjStudent.setXy(cell18.getStringCellValue()); + Cell cell19 = row.getCell(19); + cjStudent.setSydsh(cell19.getStringCellValue()); + Cell cell20 = row.getCell(20); + cjStudent.setSydshi(cell20.getStringCellValue()); + Cell cell21 = row.getCell(21); + cjStudent.setBynf(Integer.valueOf(cell21.getStringCellValue())); + Cell cell22 = row.getCell(22); + cjStudent.setZgyl(cell22.getStringCellValue()); + Cell cell23 = row.getCell(23); + cjStudent.setGzdw(cell23.getStringCellValue()); + Cell cell24 = row.getCell(24); + cjStudent.setDwxz(cell24.getStringCellValue()); + Cell cell25 = row.getCell(25); + cjStudent.setDwdz(cell25.getStringCellValue()); + Cell cell26 = row.getCell(26); + cjStudent.setZwjb(cell26.getStringCellValue()); + Cell cell27 = row.getCell(27); + cjStudent.setShjz(cell27.getStringCellValue()); + Cell cell28 = row.getCell(28); + cjStudent.setDbry(cell28.getStringCellValue()); + Cell cell29 = row.getCell(29); + String sfzs = cell29.getStringCellValue(); + if (sfzs.equals("是")){ + cjStudent.setRysfzs(1L); + }else { + cjStudent.setRysfzs(0L); + } + Cell cell30 = row.getCell(30); + cjStudent.setSj(cell30.getStringCellValue()); + Cell cell31 = row.getCell(31); + cjStudent.setYx(cell31.getStringCellValue()); + cjStudent.setSfqr(1L); + cjStudent.setQt(""); + list.add(cjStudent); + redisCache.setCacheObject(id, true); + } + if (list.isEmpty()){ + return 0; + } + cjStudentMapper.insertCjStudentBatch(list); + return rows; + }catch (Exception e) { + return -1; + } + } + } diff --git a/ruoyi-dw/src/main/resources/mapper/dw/CjStudentMapper.xml b/ruoyi-dw/src/main/resources/mapper/dw/CjStudentMapper.xml index 1c762aa..aa8eb7b 100644 --- a/ruoyi-dw/src/main/resources/mapper/dw/CjStudentMapper.xml +++ b/ruoyi-dw/src/main/resources/mapper/dw/CjStudentMapper.xml @@ -21,7 +21,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - @@ -29,7 +28,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, xm,sydsh, sydshi, xb, zy,xy, bynf, zgyl, gzdw, dwxz, dwdz, zwjb, shjz, dbry, rysfzs, ry,sj, yx, qt, sfqr from cj_student + select id, xm, xb, zy,xy,sydsh, sydshi, bynf, zgyl, gzdw, dwxz, dwdz, zwjb, shjz, dbry, rysfzs,sj, yx, qt, sfqr from cj_student