diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/controller/YxHistoryMajorEnrollController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/controller/YxHistoryMajorEnrollController.java index b27dd20..7bec1c9 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/controller/YxHistoryMajorEnrollController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/controller/YxHistoryMajorEnrollController.java @@ -31,10 +31,13 @@ import lombok.extern.slf4j.Slf4j; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.modules.yx.service.IYxHistoryScoreControlLineService; import org.jeecg.modules.yx.service.IYxMajorService; +import org.jeecg.modules.yx.service.IYxSchoolService; import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.entity.ImportParams; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.servlet.ModelAndView; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -55,6 +58,8 @@ public class YxHistoryMajorEnrollController extends JeecgController saveBatch(@RequestBody List yxHistoryMajorEnrollList) { - String id=null; + String id = null; String majorCode = null; String majorName = null; String schoolCode = null; String enrollmentCode = null; - int i=0; + int i = 0; for (YxHistoryMajorEnroll yxHistoryMajorEnroll : yxHistoryMajorEnrollList) { i++; id = yxHistoryMajorEnroll.getId(); @@ -148,10 +153,10 @@ public class YxHistoryMajorEnrollController extends JeecgController importExcel(HttpServletRequest request, HttpServletResponse response) { - return super.importExcel(request, response, YxHistoryMajorEnroll.class); + MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; + Map fileMap = multipartRequest.getFileMap(); + for (Map.Entry entity : fileMap.entrySet()) { + // 获取上传文件对象 + MultipartFile file = entity.getValue(); + ImportParams params = new ImportParams(); + params.setTitleRows(2); + params.setHeadRows(1); + params.setNeedSave(true); + long start = System.currentTimeMillis(); + int index = 0; + try { + Map schoolNameMap = yxSchoolService.mapsForSchoolName(); + Collection schoolCodeList = schoolNameMap.values(); + String schoolCode = null; + String schoolName = null; + List list = ExcelImportUtil.importExcel(file.getInputStream(), YxHistoryMajorEnroll.class, params); + for (YxHistoryMajorEnroll yxHistoryMajorEnroll : list) { + index++; + schoolCode = yxHistoryMajorEnroll.getSchoolCode(); + schoolName = yxHistoryMajorEnroll.getSchoolName(); + AssertUtils.isTrue(schoolCodeList.contains(schoolCode),String.format("行[%s],学校代码[%s]未在系统找到",index,schoolCode)); + } + log.info("消耗时间" + (System.currentTimeMillis() - start) + "毫秒"); + return Result.ok("文件导入成功!数据行数:" + list.size()); + } catch (Exception e) { + 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()); + } + } finally { + try { + file.getInputStream().close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + return Result.error("文件导入失败!"); } @@ -518,13 +564,13 @@ public class YxHistoryMajorEnrollController extends JeecgController notMajorList = new ArrayList<>(); List notHistoryList = new ArrayList<>(); List historyMajorEnrollList = new ArrayList<>(); - LambdaQueryWrapper yxHistoryMajorEnrollLambdaQueryWrapper =new LambdaQueryWrapper<>(); - if(true){ + LambdaQueryWrapper yxHistoryMajorEnrollLambdaQueryWrapper = new LambdaQueryWrapper<>(); + if (true) { String majorType = ""; String majorTypeChild = ""; String fileName = file.getName(); @@ -927,7 +973,7 @@ public class YxHistoryMajorEnrollController extends JeecgController