Crunchy
2024-07-03 fcfbaa84f1fef87a958452ef83d82e140d8ddb59
2024-7-3 检验对象导入 40%
已修改3个文件
已添加2个文件
90 ■■■■■ 文件已修改
cnas-server/src/main/java/com/yuanchu/mom/controller/CapacityScopeController.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/excel/StructureTestObjectData.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/excel/StructureTestObjectListener.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/ProductService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/ProductServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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();
    }
}
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 = "对象代号")
    private String code;
    @ExcelProperty(value = "产品名称")
    private String name;
    @ExcelProperty(value = "产品名称(EN)")
    private String nameEn;
}
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);
    }
}
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);
}
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);
    }
}