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/pojo/excel/ImportTenantTemplate.java | 20 ++++++
consum-base/src/main/java/com/consum/base/controller/FinSysTenantController.java | 101 ++++++++++++++++++---------------
2 files changed, 75 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);
}
diff --git a/consum-base/src/main/java/com/consum/base/pojo/excel/ImportTenantTemplate.java b/consum-base/src/main/java/com/consum/base/pojo/excel/ImportTenantTemplate.java
new file mode 100644
index 0000000..e8b5b7b
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/pojo/excel/ImportTenantTemplate.java
@@ -0,0 +1,20 @@
+package com.consum.base.pojo.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import lombok.Data;
+
+/**
+ * @author asus
+ * @version 1.0
+ * @description: 鏈烘瀯瀵煎叆妯℃澘
+ * @date 2023/12/21 13:27
+ */
+@Data
+public class ImportTenantTemplate {
+ @ExcelProperty("鏈烘瀯缂栧彿")
+ private String code;
+ @ExcelProperty("鏈烘瀯鍚嶇О")
+ private String tenantName;
+
+}
--
Gitblit v1.9.1