From 1a4f00e0b4d24ae72c7d95e31e685d9a2be0aa62 Mon Sep 17 00:00:00 2001 From: futian.liu <liufutianyoo@163.com> Date: 星期四, 21 十二月 2023 13:46:29 +0800 Subject: [PATCH] 机构导入 --- consum-base/src/main/java/com/consum/base/controller/FinSysTenantController.java | 101 +++++++++++++++++++++++++++----------------------- 1 files changed, 55 insertions(+), 46 deletions(-) diff --git a/consum-base/src/main/java/com/consum/base/controller/FinSysTenantController.java b/consum-base/src/main/java/com/consum/base/controller/FinSysTenantController.java index 9489c09..963bfc0 100644 --- a/consum-base/src/main/java/com/consum/base/controller/FinSysTenantController.java +++ b/consum-base/src/main/java/com/consum/base/controller/FinSysTenantController.java @@ -32,11 +32,13 @@ import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import com.alibaba.excel.exception.ExcelDataConvertException; +import com.alibaba.excel.read.metadata.holder.ReadSheetHolder; import com.consum.base.BaseController; import com.consum.base.core.utils.CommonUtil; import com.consum.base.core.utils.FinSysTenantUtils; import com.consum.base.pojo.FinSysTenantParam; import com.consum.base.pojo.FinSysTenantSearchParam; +import com.consum.base.pojo.excel.ImportTenantTemplate; import com.consum.base.service.FinSysTenantService; import com.consum.base.service.FinSysTenantUserService; import com.consum.model.po.FinSysTenant; @@ -422,7 +424,7 @@ @PostMapping("import") public ResponseValue upload(@RequestParam Long pid, MultipartFile file) throws IOException { String originalFilename = file.getOriginalFilename(); - if (!"xls".equals(originalFilename.substring(originalFilename.lastIndexOf(".") + 1))) { + if (!originalFilename.endsWith("xls")) { return ResponseValue.error("鏂囦欢鏍煎紡鏈夎!"); } FinSysTenantUser sysInfo = this.getSysInfo(); @@ -435,55 +437,62 @@ return ResponseValue.error("涓嶈兘鍒涘缓鍘匡紙鍖猴級绾т互涓嬫満鏋�"); } - EasyExcel.read(file.getInputStream(), FinSysTenantParam.class, new AnalysisEventListener<FinSysTenantParam>() { - LinkedList<FinSysTenantParam> finSysTenantParams = new LinkedList<>(); + EasyExcel + .read(file.getInputStream(), ImportTenantTemplate.class, new AnalysisEventListener<ImportTenantTemplate>() { + LinkedList<FinSysTenantParam> finSysTenantParams = new LinkedList<>(); - @Override - public void invoke(FinSysTenantParam finSysTenantParam, AnalysisContext analysisContext) { - if (StringUtils.isEmpty(finSysTenantParam.getCode()) || finSysTenantParam.getCode().length() > 20) { - IllegalStateException exception = new IllegalStateException( - "绗�" + analysisContext.readSheetHolder().getRowIndex() + "琛�,鏈烘瀯缂栧彿涓嶈兘涓虹┖鎴栭暱搴﹀ぇ浜�20"); - throw exception; - } - if (null != finSysTenantService.queryOneByCode(finSysTenantParam.getCode())) { - throw new IllegalStateException( - "绗�" + analysisContext.readSheetHolder().getRowIndex() + "琛�,鏈烘瀯缂栧彿宸插瓨鍦�"); - } - if (StringUtils.isEmpty(finSysTenantParam.getName()) || finSysTenantParam.getName().length() > 100) { - IllegalStateException exception = new IllegalStateException( - "绗�" + analysisContext.readSheetHolder().getRowIndex() + "琛�,鏈烘瀯鍚嶇О涓嶈兘涓虹┖鎴栭暱搴﹀ぇ浜�100"); - throw exception; - } - finSysTenantParam.setParentId(pid); - finSysTenantParam.setStatus(1); - finSysTenantParam.setSummary("绯荤粺瀵煎叆"); - finSysTenantParams.add(finSysTenantParam); - } - - @Override - public void doAfterAllAnalysed(AnalysisContext analysisContext) { - finSysTenantService.insertFinSysTenantBatch(finSysTenantParams, sysInfo, lv); - } - - @Override - public void onException(Exception exception, AnalysisContext context) { - // 濡傛灉鏄煇涓�涓崟鍏冩牸鐨勮浆鎹㈠紓甯� 鑳借幏鍙栧埌鍏蜂綋琛屽彿 - if (exception instanceof ExcelDataConvertException) { - ExcelDataConvertException excelDataConvertException = (ExcelDataConvertException)exception; - logger.error("绗瑊}琛岋紝绗瑊}鍒楄В鏋愬紓甯革紝鏁版嵁涓�:{}", excelDataConvertException.getRowIndex(), - excelDataConvertException.getColumnIndex() + 1, - excelDataConvertException.getCellData().getStringValue()); - throw new IllegalStateException("绗�" + (excelDataConvertException.getRowIndex() + 1) + "琛岋紝绗�" - + (excelDataConvertException.getColumnIndex() + 1) + "鍒楄В鏋愬紓甯�,寮傚父鏁版嵁涓�:[ " - + excelDataConvertException.getCellData().getStringValue() + " ]"); - } - if (exception instanceof IllegalStateException) { - throw (IllegalStateException)exception; + @Override + public void invoke(ImportTenantTemplate finSysTenantParam, AnalysisContext analysisContext) { + String code = finSysTenantParam.getCode(); + String tenantName = finSysTenantParam.getTenantName(); + ReadSheetHolder readSheetHolder = analysisContext.readSheetHolder(); + Integer rowIndex = readSheetHolder.getRowIndex() + 1; + if (StringUtils.isEmpty(code) || code.length() > 20) { + IllegalStateException exception = + new IllegalStateException("绗�" + rowIndex + "琛�,鏈烘瀯缂栧彿涓嶈兘涓虹┖鎴栭暱搴﹀ぇ浜�20"); + throw exception; + } + if (null != finSysTenantService.queryOneByCode(code)) { + throw new IllegalStateException("绗�" + rowIndex + "琛�,鏈烘瀯缂栧彿宸插瓨鍦�"); + } + if (StringUtils.isEmpty(tenantName) || tenantName.length() > 100) { + IllegalStateException exception = + new IllegalStateException("绗�" + rowIndex + "琛�,鏈烘瀯鍚嶇О涓嶈兘涓虹┖鎴栭暱搴﹀ぇ浜�100"); + throw exception; + } + FinSysTenantParam tenantParam = new FinSysTenantParam(); + tenantParam.setParentId(pid); + tenantParam.setStatus(1); + tenantParam.setSummary("绯荤粺瀵煎叆"); + tenantParam.setCode(code); + tenantParam.setName(tenantName); + finSysTenantParams.add(tenantParam); } - } + @Override + public void doAfterAllAnalysed(AnalysisContext analysisContext) { + finSysTenantService.insertFinSysTenantBatch(finSysTenantParams, sysInfo, lv); + } - }).doReadAll(); + @Override + public void onException(Exception exception, AnalysisContext context) { + // 濡傛灉鏄煇涓�涓崟鍏冩牸鐨勮浆鎹㈠紓甯� 鑳借幏鍙栧埌鍏蜂綋琛屽彿 + if (exception instanceof ExcelDataConvertException) { + ExcelDataConvertException excelDataConvertException = (ExcelDataConvertException)exception; + Integer rowIndex = excelDataConvertException.getRowIndex() + 1; + Integer columnIndex = excelDataConvertException.getColumnIndex(); + String stringValue = excelDataConvertException.getCellData().getStringValue(); + logger.error("绗瑊}琛岋紝绗瑊}鍒楄В鏋愬紓甯革紝鏁版嵁涓�:{}", rowIndex, columnIndex, stringValue); + throw new IllegalStateException( + "绗�" + rowIndex + "琛岋紝绗�" + columnIndex + "鍒楄В鏋愬紓甯�,寮傚父鏁版嵁涓�:[ " + stringValue + " ]"); + } + if (exception instanceof IllegalStateException) { + throw (IllegalStateException)exception; + } + + } + + }).doReadAll(); return ResponseValue.success("瀵煎叆鎴愬姛!", 1); } -- Gitblit v1.9.1