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