From e04ce40a547fb63dc9c9f101902fad9952396f37 Mon Sep 17 00:00:00 2001 From: Crunchy <3114200645@qq.com> Date: 星期五, 12 七月 2024 16:53:34 +0800 Subject: [PATCH] 检验项目的导入添加支持多个sheet与三级检测项目添加 --- cnas-server/src/main/java/com/yuanchu/mom/controller/CapacityScopeController.java | 47 +++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 41 insertions(+), 6 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 0bcb4ac..878ddeb 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; @@ -172,11 +175,11 @@ InputStream inputStream = file.getInputStream(); List<StructureItemParameter> lists = new ArrayList<>(); AtomicReference<String> sample = new AtomicReference<>(); - ExcelUtil.readBySax(inputStream, 0, (i, l, list1) -> { - if (i == 0 && l == 1) { + ExcelUtil.readBySax(inputStream, -1, (i, l, list1) -> { + if (l == 1) { sample.set(list1.get(1) + ""); } - if (i == 0 && l >= 1) { + if (l >= 1) { StructureItemParameter str = new StructureItemParameter(); if (list1.get(1) == null) { str.setSample(null); @@ -223,6 +226,7 @@ db_str = structureItemParameterService.getOne(Wrappers.lambdaQuery(StructureItemParameter.class) .eq(StructureItemParameter::getInspectionItem, str.getInspectionItem()) .eq(StructureItemParameter::getSample, str.getSample()) + .last("limit 1") ); } catch (Exception e) { throw new ErrorException("閲嶅鏌ヨ锛�" + str.getInspectionItem()); @@ -233,6 +237,7 @@ .eq(StructureItemParameter::getInspectionItem, str.getInspectionItem()) .eq(StructureItemParameter::getSample, str.getSample()) .eq(StructureItemParameter::getInspectionItemSubclass, str.getInspectionItemSubclass()) + .last("limit 1") ); } catch (Exception e) { throw new ErrorException("閲嶅鏌ヨ锛�" + str.getInspectionItem() + " " + str.getInspectionItemSubclass()); @@ -282,7 +287,7 @@ if (list1.get(13) == null) { str.setPrice(null); } else { - str.setPrice(BigDecimal.valueOf(Long.parseLong((list1.get(13).toString())))); + str.setPrice(list1.get(13) + ""); } if (list1.get(14) == null) { @@ -334,17 +339,47 @@ } else { str.setTemplateId(null); } + try { + if (list1.get(22) != null) { + str.setInspectionItemClass(list1.get(22) + ""); + } + } catch (Exception e) { + } + try { + if (list1.get(23) != null) { + str.setInspectionItemClassEn(list1.get(23) + ""); + } + } catch (Exception e) { + } + try { + if (list1.get(24) != null) { + str.setLaboratory(list1.get(24) + ""); + } + } catch (Exception e) { + } lists.add(str); } }); structureItemParameterService.removeNoSample(sample.get()); // 濡傛灉鏁版嵁搴撻噷闈㈢殑鏁版嵁瀛樺湪閭d箞灏辨墽琛屾洿鏂版嫹璐濇搷浣� try { - structureItemParameterService.saveBatch(lists); + structureItemParameterService.saveOrUpdateBatch(lists); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException("鏈嶅姟绔姤閿欏暒!!!"); } 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 -- Gitblit v1.9.3