فهرست منبع

修改分数批量插入

superb 1 سال پیش
والد
کامیت
72eb43eef6

+ 1 - 1
controller/src/main/java/com/koobietech/eas/controller/EasArcTlsScoresController.java

@@ -85,7 +85,7 @@ public class EasArcTlsScoresController {
     @Operation(summary = "Excel导入学生成绩信息",description = "用于Excel导入学生成绩信息")
     public JsonResult importExcelScores(MultipartFile excelFile) {
         InputStream inputStream = null;
-        Boolean aBoolean = null;
+        Boolean aBoolean;
         try {
             inputStream = excelFile.getInputStream();
             aBoolean = easArcTlsScoresService.importExcelScores(inputStream);

+ 1 - 1
controller/src/main/resources/application-local.yaml

@@ -4,7 +4,7 @@ spring:
   datasource:
     url: jdbc:mysql://127.0.0.1:3306/eas?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=true&tinyInt1isBit=false
     username: root
-    password: 1234
+    password: 123456
     driver-class-name: com.mysql.cj.jdbc.Driver
   redis:
     host: localhost

+ 1 - 1
controller/src/main/resources/application.yaml

@@ -2,7 +2,7 @@ server:
   port: 8081
 spring:
   profiles:
-    active: wheng
+    active: local
   main:
     allow-circular-references: true
   servlet:

+ 4 - 0
dao/pom.xml

@@ -8,6 +8,10 @@
     <description>dao</description>
 
     <dependencies>
+        <dependency>
+            <groupId>cn.afterturn</groupId>
+            <artifactId>easypoi-wps</artifactId>
+        </dependency>
         <dependency>
             <groupId>com.github.xiaoymin</groupId>
             <artifactId>knife4j-openapi3-spring-boot-starter</artifactId>

+ 41 - 0
dao/src/main/java/com/koobietech/eas/dao/Pojo/EasArcTlsScoresPojo.java

@@ -0,0 +1,41 @@
+package com.koobietech.eas.dao.Pojo;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class EasArcTlsScoresPojo implements Serializable {
+    @Excel(name = "学员档案")
+    private String studentNumber;
+
+    @Excel(name = "类目ID" )
+    private Integer categoryId;
+
+    @Excel(name = "科目ID" )
+    private Integer subjectId;
+
+    @Excel(name = "考试时间" )
+    private Date testDate;
+
+    @Excel(name = "分数")
+    private BigDecimal score;
+
+    @Excel(name = "通过率")
+    private BigDecimal passRate;
+
+    @Excel(name = "及格率")
+    private BigDecimal excelRate;
+
+    @Excel(name = "创建时间", format = "yyyy-MM-dd")
+    private Date createTime;
+
+    @Excel(name = "考试备注信息")
+    private String comment;
+
+    private static final long serialVersionUID = 1L;
+
+}

+ 20 - 122
service/src/main/java/com/koobietech/eas/service/impl/EasArcTlsScoresServiceImpl.java

@@ -2,28 +2,21 @@ package com.koobietech.eas.service.impl;
 
 import cn.afterturn.easypoi.excel.ExcelImportUtil;
 import cn.afterturn.easypoi.excel.entity.ImportParams;
-import cn.afterturn.easypoi.excel.imports.ExcelImportService;
-import cn.afterturn.easypoi.handler.inter.IReadHandler;
+import cn.hutool.core.bean.BeanUtil;
 import com.koobietech.eas.common.result.PageData;
+import com.koobietech.eas.dao.Pojo.EasArcTlsScoresPojo;
 import com.koobietech.eas.mbg.mapper.EasArcTlsScoresMapper;
 import com.koobietech.eas.mbg.model.EasArcTlsScores;
 import com.koobietech.eas.mbg.model.EasArcTlsScoresExample;
 import com.koobietech.eas.service.EasArcTlsScoresService;
-import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
-import org.apache.poi.ss.usermodel.CellType;
-import org.apache.poi.ss.usermodel.DateUtil;
-import org.apache.poi.xssf.usermodel.XSSFRow;
-import org.apache.poi.xssf.usermodel.XSSFSheet;
-import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 
 import javax.annotation.Resource;
-import java.io.*;
-import java.math.BigDecimal;
+import java.io.FileNotFoundException;
+import java.io.InputStream;
 import java.util.Date;
 import java.util.List;
-import java.util.Map;
 import java.util.Objects;
 
 @Service
@@ -94,122 +87,27 @@ public class EasArcTlsScoresServiceImpl implements EasArcTlsScoresService {
         @Override
     public Boolean importExcelScores(InputStream inputStream) {
             ImportParams params = new ImportParams();
+            params.setTitleRows(1);
+            params.setHeadRows(1);
             try {
-                ExcelImportUtil.importExcelBySax(
-                        new FileInputStream("C:\\Users\\常忠宇\\Desktop\\新建XLSX工作表.xlsx"),
-                        Map.class, params,
-                        new IReadHandler<Map>() {
-                            @Override
-                            public void handler(Map o) {
-                                System.out.println(o);
-                            }
-                            @Override
-                            public void doAfterAll() {
-                                System.out.println("全部执行完毕了--------------------------------");
-                            }
-                        });
+                List<EasArcTlsScoresPojo> score = ExcelImportUtil.importExcel(
+                        inputStream, EasArcTlsScoresPojo.class, params);
+                for ( EasArcTlsScoresPojo easArcTlsScoresPojo : score) {
+                    if ( easArcTlsScoresPojo.getScore() == null
+                            || easArcTlsScoresPojo.getScore().equals("") ) {
+                        continue;
+                    }
+                    easArcTlsScoresPojo.setCreateTime(new Date());
+                    EasArcTlsScores easArcTlsScores = new EasArcTlsScores();
+                    BeanUtil.copyProperties(easArcTlsScoresPojo, easArcTlsScores);
+                    easArcTlsScoresMapper.insert(easArcTlsScores);
+                }
             } catch (FileNotFoundException e) {
                 e.printStackTrace();
+            } catch (Exception e) {
+                throw new RuntimeException(e);
             }
-//            ImportParams params = new ImportParams();
-//            params.setTitleRows(0);
-//            try {
-//                List<EasArcTlsScores> list = new ExcelImportService().importExcelByIs(inputStream,
-//                        EasArcTlsScores.class, params, false).getList();
-//                for ( EasArcTlsScores eas : list) {
-//                    System.out.println( eas );
-//                }
-//            } catch (Exception e) {
-//                e.printStackTrace();
-//            }
             return true;
     }
 
-//    @Override
-//    public Boolean importExcelScores(InputStream inputStream) {
-//        try {
-////            创建一个Excel实体
-//            XSSFWorkbook workbook = new XSSFWorkbook(inputStream);
-////            获取第一个表格页面
-//            XSSFSheet sheetAt = workbook.getSheetAt(0);
-////            获取第一个表格页面共有多少行
-//            int lastRowNum = sheetAt.getLastRowNum();
-////            遍历表格行数
-//            for (int rowNum = 0; rowNum < lastRowNum; rowNum++) {
-////                取表格中的每一行
-//                XSSFRow row = sheetAt.getRow(rowNum);
-////                取每一行共有多少列
-//                short lastCellNum = row.getLastCellNum();
-////                创建一个对象准备填入数据
-//                EasArcTlsScores easArcTlsScores = new EasArcTlsScores();
-////                循环表格列数
-//                for (int cellNum = 0; cellNum < lastCellNum; cellNum++) {
-//                    CellType cellType = CellType.forInt(row.getCell(cellNum).getCellType());
-//                    switch (cellType) {
-//                        case _NONE:break;
-//                        case STRING:
-//                            row.getCell(cellNum).getStringCellValue();
-//                            break;
-//                        case NUMERIC:
-////                            判断是否是日期类型
-//                            if (DateUtil.isCellDateFormatted(row.getCell(rowNum))){
-////                                如果是日期类型将其转变为JavaDate格式
-//                                Date javaDate = DateUtil.getJavaDate(row.getCell(cellNum).getNumericCellValue());
-//                                if (cellNum == 5){
-////                                    若是第五列将其设置为考试时间
-//                                    easArcTlsScores.setTestDate( javaDate );
-////                                    第九列设置为创建时间
-//                                }else if (cellNum == 9) {
-//                                    easArcTlsScores.setCreateTime( javaDate );
-////                                    第十列设置为modifyTime
-//                                }else if (cellNum == 10) {
-//                                    easArcTlsScores.setModifyTime( javaDate );
-//                                }
-//                            }else {
-//                                if (cellNum == 1) {
-//                                    easArcTlsScores.setId((int)row.getCell(cellNum).getNumericCellValue());
-//                                }
-//                                if (cellNum == 2) {
-//                                    easArcTlsScores.setStudentNumber(String.valueOf(row.getCell(cellNum).getNumericCellValue()));
-//                                }
-//                                if (cellNum == 3) {
-//                                    easArcTlsScores.setCategoryId((int) row.getCell(cellNum).getNumericCellValue());
-//                                }
-//                                if (cellNum == 4) {
-//                                    easArcTlsScores.setSubjectId((int) row.getCell(cellNum).getNumericCellValue());
-//                                }
-//                                if (cellNum == 6){
-//                                    easArcTlsScores.setScore(BigDecimal.valueOf(row.getCell(cellNum).getNumericCellValue()));
-//                                }
-//                                if (cellNum == 7){
-//                                    easArcTlsScores.setPassRate(BigDecimal.valueOf(row.getCell(cellNum).getNumericCellValue()));
-//                                }
-//                                if (cellNum == 8){
-//                                    easArcTlsScores.setExcelRate(BigDecimal.valueOf(row.getCell(cellNum).getNumericCellValue()));
-//                                }
-//                                if (cellNum == 11){
-//                                    easArcTlsScores.setCreateUid((int) row.getCell(cellNum).getNumericCellValue());
-//                                }
-//                            }
-//                                break;
-//                        case FORMULA:
-//                            break;
-//
-//                        case BLANK:
-//                            break;
-//
-//                        case BOOLEAN:
-//                            break;
-//
-//                        case ERROR:
-//                            break;
-//                    }
-//                }
-//                easArcTlsScoresMapper.insert(easArcTlsScores);
-//            }
-//        } catch (IOException e) {
-//            e.printStackTrace();
-//        }
-//        return true;
-//    }
 }