From d17bfc830729d53d0ca3ccdb9160e0145479cdcf Mon Sep 17 00:00:00 2001 From: Crunchy <3114200645@qq.com> Date: 星期六, 13 七月 2024 15:10:49 +0800 Subject: [PATCH] 数采配置添加完成 --- cnas-server/src/main/java/com/yuanchu/mom/controller/CapacityScopeController.java | 108 +++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 79 insertions(+), 29 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 fe1dd1b..dda239a 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,16 @@ 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.*; import com.yuanchu.mom.utils.JackSonUtil; @@ -21,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; @@ -171,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){ - sample.set(list1.get(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); @@ -183,26 +187,28 @@ String brand = (String) list1.get(1); StringBuilder builder = new StringBuilder(); builder.append("["); - if (ObjectUtil.isNotEmpty(list1.get(2))){ + if (ObjectUtil.isNotEmpty(list1.get(2))) { String production = (String) list1.get(2); - if (!production.contains("銆�")){ - builder.append(String.format("[\"%s\",\"%s\"]",brand,production)); - }else{ - Arrays.stream(production.split("銆�")).forEach(item->{ - builder.append(String.format("[\"%s\",\"%s\"],",brand,item)); + if (!production.contains("銆�")) { + builder.append(String.format("[\"%s\",\"%s\"]", brand, production)); + } else { + Arrays.stream(production.split("銆�")).forEach(item -> { + builder.append(String.format("[\"%s\",\"%s\"],", brand, item)); }); builder.deleteCharAt(builder.length() - 1); } - }else{ + } else { builder.append("["); - builder.append(String.format("\"%s\"",brand)); + builder.append(String.format("\"%s\"", brand)); builder.append("]"); } builder.append("]"); str.setSample(builder.toString()); } str.setInspectionItem(list1.get(4).toString()); - str.setInspectionItemEn(list1.get(5).toString()); + if (list1.get(5) != null) { + str.setInspectionItemEn(list1.get(5).toString()); + } if (list1.get(6) == null) { str.setInspectionItemSubclass(null); } else { @@ -214,20 +220,30 @@ str.setInspectionItemSubclassEn(String.valueOf(list1.get(7).toString())); } StructureItemParameter db_str; - if (StringUtils.isEmpty(str.getInspectionItemSubclass())){ + if (StringUtils.isEmpty(str.getInspectionItemSubclass())) { // 姣旇緝涓や釜鏉′欢 - db_str = structureItemParameterService.getOne(Wrappers.lambdaQuery(StructureItemParameter.class) - .eq(StructureItemParameter::getInspectionItem, str.getInspectionItem()) - .eq(StructureItemParameter::getSample, str.getSample()) - ); - }else{ - db_str = structureItemParameterService.getOne(Wrappers.lambdaQuery(StructureItemParameter.class) - .eq(StructureItemParameter::getInspectionItem, str.getInspectionItem()) - .eq(StructureItemParameter::getSample, str.getSample()) - .eq(StructureItemParameter::getInspectionItemSubclass,str.getInspectionItemSubclass()) - ); + try { + 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()); + } + } else { + try { + db_str = structureItemParameterService.getOne(Wrappers.lambdaQuery(StructureItemParameter.class) + .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()); + } } - if (ObjectUtils.isNotEmpty(db_str)){ + if (ObjectUtils.isNotEmpty(db_str)) { str.setId(db_str.getId()); } if (list1.get(8) == null) { @@ -271,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) { @@ -299,7 +315,7 @@ } str.setInspectionItemType(jy); String validateValueType = list1.get(18).toString(); - if (StringUtils.isNotBlank(validateValueType)){ + if (StringUtils.isNotBlank(validateValueType)) { Enums enums = enumService.getOne(Wrappers.lambdaQuery(Enums.class) .eq(Enums::getCategory, "妫�楠屽�肩被鍨�") .eq(Enums::getLabel, validateValueType)); @@ -323,17 +339,51 @@ } else { str.setTemplateId(null); } + try { + if (list1.get(22) != null && list1.get(22) != "") { + str.setInspectionItemClass(list1.get(22) + ""); + } else { + str.setInspectionItemClass(null); + } + } catch (Exception e) { + } + try { + if (list1.get(23) != null && list1.get(23) != "") { + str.setInspectionItemClassEn(list1.get(23) + ""); + } else { + str.setInspectionItemClassEn(null); + } + } 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