From fcfbaa84f1fef87a958452ef83d82e140d8ddb59 Mon Sep 17 00:00:00 2001
From: Crunchy <3114200645@qq.com>
Date: 星期三, 03 七月 2024 17:58:09 +0800
Subject: [PATCH] 2024-7-3 检验对象导入 40%
---
cnas-server/src/main/java/com/yuanchu/mom/excel/StructureTestObjectData.java | 25 ++++++++++++
cnas-server/src/main/java/com/yuanchu/mom/service/impl/ProductServiceImpl.java | 7 +++
cnas-server/src/main/java/com/yuanchu/mom/controller/CapacityScopeController.java | 17 ++++++++
cnas-server/src/main/java/com/yuanchu/mom/excel/StructureTestObjectListener.java | 38 +++++++++++++++++++
cnas-server/src/main/java/com/yuanchu/mom/service/ProductService.java | 3 +
5 files changed, 89 insertions(+), 1 deletions(-)
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/controller/CapacityScopeController.java b/cnas-server/src/main/java/com/yuanchu/mom/controller/CapacityScopeController.java
index 7be141e..4020ab9 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/controller/CapacityScopeController.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/controller/CapacityScopeController.java
@@ -2,12 +2,15 @@
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.poi.excel.ExcelUtil;
+import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.util.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.annotation.ValueAuth;
import com.yuanchu.mom.annotation.ValueClassify;
import com.yuanchu.mom.dto.PageTestObjectDto;
+import com.yuanchu.mom.excel.StructureTestObjectData;
+import com.yuanchu.mom.excel.StructureTestObjectListener;
import com.yuanchu.mom.exception.ErrorException;
import com.yuanchu.mom.pojo.*;
import com.yuanchu.mom.service.*;
@@ -22,8 +25,8 @@
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
+import java.io.IOException;
import java.io.InputStream;
-import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -367,4 +370,16 @@
}
return Result.success();
}
+
+ @ValueClassify(value = "鑳藉姏鑼冨洿")
+ @ApiOperation(value = "瀵煎叆妫�楠屽璞�")
+ @PostMapping("/importExcel")
+ public Result importExcel(@RequestParam("file") MultipartFile file) {
+ try {
+ EasyExcel.read(file.getInputStream(), StructureTestObjectData.class, new StructureTestObjectListener(productService)).sheet().doRead();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return Result.success();
+ }
}
\ No newline at end of file
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/excel/StructureTestObjectData.java b/cnas-server/src/main/java/com/yuanchu/mom/excel/StructureTestObjectData.java
new file mode 100644
index 0000000..b891531
--- /dev/null
+++ b/cnas-server/src/main/java/com/yuanchu/mom/excel/StructureTestObjectData.java
@@ -0,0 +1,25 @@
+package com.yuanchu.mom.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+@Data
+public class StructureTestObjectData {
+ @ExcelProperty(value = "鍦烘墍")
+ private String laboratoryId;
+
+ @ExcelProperty(value = "妫�楠屽璞�")
+ private String specimenName;
+
+ @ExcelProperty(value = "妫�楠屽璞�(EN)")
+ private String specimenNameEn;
+
+ @ExcelProperty(value = "瀵硅薄浠e彿")
+ private String code;
+
+ @ExcelProperty(value = "浜у搧鍚嶇О")
+ private String name;
+
+ @ExcelProperty(value = "浜у搧鍚嶇О(EN)")
+ private String nameEn;
+}
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/excel/StructureTestObjectListener.java b/cnas-server/src/main/java/com/yuanchu/mom/excel/StructureTestObjectListener.java
new file mode 100644
index 0000000..b83665d
--- /dev/null
+++ b/cnas-server/src/main/java/com/yuanchu/mom/excel/StructureTestObjectListener.java
@@ -0,0 +1,38 @@
+package com.yuanchu.mom.excel;
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.yuanchu.mom.service.ProductService;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class StructureTestObjectListener extends AnalysisEventListener<StructureTestObjectData> {
+ private static final int BATCH_COUNT = 1000;
+ List<StructureTestObjectData> list = new ArrayList<>();
+
+ private ProductService productService;
+
+ public StructureTestObjectListener(ProductService productService) {
+ this.productService = productService;
+ }
+
+ @Override
+ public void invoke(StructureTestObjectData data, AnalysisContext analysisContext) {
+ list.add(data);
+ if (list.size() >= BATCH_COUNT) {
+ save();
+ list.clear();
+ }
+ }
+
+ @Override
+ public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+ save();
+ }
+
+
+ private void save() {
+ productService.importPartExcel(list);
+ }
+}
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/ProductService.java b/cnas-server/src/main/java/com/yuanchu/mom/service/ProductService.java
index a654735..21d7695 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/service/ProductService.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/service/ProductService.java
@@ -2,8 +2,10 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.yuanchu.mom.excel.StructureTestObjectData;
import com.yuanchu.mom.pojo.Product;
+import java.util.List;
import java.util.Map;
/**
@@ -21,4 +23,5 @@
int delProduct(Integer id);
+ void importPartExcel(List<StructureTestObjectData> list);
}
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/ProductServiceImpl.java b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/ProductServiceImpl.java
index 6949320..37e6f93 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/ProductServiceImpl.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/ProductServiceImpl.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.common.PrintChina;
+import com.yuanchu.mom.excel.StructureTestObjectData;
import com.yuanchu.mom.mapper.ProductMapper;
import com.yuanchu.mom.pojo.Product;
import com.yuanchu.mom.service.ProductService;
@@ -12,6 +13,7 @@
import org.springframework.stereotype.Service;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
/**
@@ -52,6 +54,11 @@
public int delProduct(Integer id) {
return productMapper.deleteById(id);
}
+
+ @Override
+ public void importPartExcel(List<StructureTestObjectData> list) {
+ System.out.println(list);
+ }
}
--
Gitblit v1.9.3