From 4eab53b44135f6381a7f2011ac17066412297f43 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期五, 11 十月 2024 11:15:35 +0800 Subject: [PATCH] 电路试验的站点报告1.0 --- cnas-server/src/main/java/com/yuanchu/mom/controller/CapacityScopeController.java | 383 +++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 317 insertions(+), 66 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 bb3b20a..744c936 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 @@ -1,21 +1,17 @@ package com.yuanchu.mom.controller; -import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.lang.Console; import cn.hutool.core.util.ObjectUtil; -import cn.hutool.json.JSONUtil; -import cn.hutool.poi.excel.ExcelReader; import cn.hutool.poi.excel.ExcelUtil; -import cn.hutool.poi.excel.sax.handler.RowHandler; +import com.alibaba.excel.EasyExcel; import com.alibaba.excel.util.StringUtils; -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONObject; 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; @@ -31,13 +27,11 @@ import java.io.IOException; import java.io.InputStream; -import java.math.BigDecimal; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import java.time.format.DateTimeParseException; -import java.util.*; -import java.util.function.Predicate; -import java.util.stream.Collectors; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.concurrent.atomic.AtomicReference; /** * 妫�楠岄」鐩弬鏁�(StructureItemParameter)琛ㄦ帶鍒跺眰 @@ -126,7 +120,7 @@ return Result.success(capacityScopeService.selectTestObjectByName()); } - @ValueClassify("璁惧") + @ValueAuth @ApiOperation(value = "璁惧閲岄潰閫夋嫨妫�楠岄」鐩�(鏍戝舰缁撴瀯)") @PostMapping("/getInsProduction") public Result getInsProduction() { @@ -174,13 +168,18 @@ private EnumService enumService; @ValueClassify(value = "鑳藉姏鑼冨洿") - @ApiOperation(value = "瀵煎叆") + @ApiOperation(value = "瀵煎叆妫�楠岄」鐩�") @PostMapping("/importData") @Transactional public Result importData(@RequestParam("file") MultipartFile file) throws Exception { InputStream inputStream = file.getInputStream(); - ExcelUtil.readBySax(inputStream, 0, (i, l, list1) -> { - if (i == 0 && l >= 1) { + List<StructureItemParameter> lists = new ArrayList<>(); + AtomicReference<String> sample = new AtomicReference<>(); + ExcelUtil.readBySax(inputStream, -1, (i, l, list1) -> { + if (l == 1) { + sample.set(list1.get(1) + ""); + } + if (l >= 1) { StructureItemParameter str = new StructureItemParameter(); if (list1.get(1) == null) { str.setSample(null); @@ -188,53 +187,65 @@ 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()); - + if (list1.get(5) != null) { + str.setInspectionItemEn(list1.get(5).toString()); + } if (list1.get(6) == null) { str.setInspectionItemSubclass(null); } else { str.setInspectionItemSubclass(list1.get(6).toString()); } - StructureItemParameter db_str = null; - 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()) - ); - } - str.setInspectionItemEn(list1.get(5).toString()); - if (list1.get(7) == null) { str.setInspectionItemSubclassEn(null); } else { str.setInspectionItemSubclassEn(String.valueOf(list1.get(7).toString())); } - + StructureItemParameter db_str; + if (StringUtils.isEmpty(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)) { + str.setId(db_str.getId()); + } if (list1.get(8) == null) { str.setMethod(null); } else { @@ -243,7 +254,7 @@ buffer.append("["); String[] values = input.split("銆�"); for (String value : values) { - buffer.append("[\"").append(value.trim()).append("\"],"); + buffer.append("\"").append(value.trim()).append("\","); } buffer.deleteCharAt(buffer.length() - 1); buffer.append("]"); @@ -251,9 +262,9 @@ } if (list1.get(9) == null) { - str.setLaboratory(null); + str.setSonLaboratory(null); } else { - str.setLaboratory(list1.get(9).toString()); + str.setSonLaboratory(list1.get(9).toString()); } if (list1.get(10) == null) { str.setUnit(null); @@ -276,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) { @@ -296,7 +307,7 @@ } else { str.setManDay(Integer.valueOf(list1.get(16).toString())); } - String jy = "0"; + String jy; if (list1.get(17).toString().equals("闈為噰闆嗙被鍨�")) { jy = "0"; } else { @@ -304,43 +315,283 @@ } 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)); str.setInspectionValueType(enums.getValue()); } - int bsm = 0; + int bsm; if (list1.get(19).toString().equals("鍚�")) { bsm = 0; } else { bsm = 1; } str.setBsm(bsm + ""); - StandardTemplate standTempIdByName = standardTemplateService.getStandTempIdByName(String.valueOf(list1.get(20))); + if (list1.get(20) != null) { + str.setDic(list1.get(20) + ""); + } else { + str.setDic(null); + } + StandardTemplate standTempIdByName = standardTemplateService.getStandTempIdByName(String.valueOf(list1.get(21))); if (standTempIdByName != null) { str.setTemplateId(standTempIdByName.getId()); } else { str.setTemplateId(null); } - str.setSonLaboratory(list1.get(21).toString()); - structureItemParameterService.removeNoSample(JSON.toJSONString(list1.get(1))); - System.out.println(JSON.toJSONString(list1.get(1))); - // 濡傛灉鏁版嵁搴撻噷闈㈢殑鏁版嵁瀛樺湪閭d箞灏辨墽琛屾洿鏂版嫹璐濇搷浣� try { - if (ObjectUtils.isNotEmpty(db_str)){ - str.setId(db_str.getId()); - // 灏� str 杩涜鏇存柊 - structureItemParameterService.updateById(str); - }else{ - structureItemParameterService.save(str); + if (list1.get(22) != null && list1.get(22) != "") { + str.setInspectionItemClass(list1.get(22) + ""); + } else { + str.setInspectionItemClass(null); } } catch (Exception e) { - e.printStackTrace(); - throw new RuntimeException("鏈嶅姟绔姤閿欏暒!!!"); } + 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.saveOrUpdateBatch(lists); + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException("鏈嶅姟绔姤閿欏暒!!!"); + } return Result.success(); } -} \ No newline at end of file + + @ValueClassify(value = "鑳藉姏鑼冨洿") + @ApiOperation(value = "瑁呭瀵煎叆妫�楠岄」鐩�") + @PostMapping("/importEquipData") + @Transactional + public Result importEquipData(@RequestParam("file") MultipartFile file) throws Exception { + InputStream inputStream = file.getInputStream(); + List<StructureItemParameter> lists = new ArrayList<>(); + AtomicReference<String> sample = new AtomicReference<>(); + ExcelUtil.readBySax(inputStream, -1, (i, l, list1) -> { + if (l == 1) { + sample.set(list1.get(1) + ""); + } + if (l >= 1) { + StructureItemParameter str = new StructureItemParameter(); + if (list1.get(1) == null) { + str.setSample(null); + } else { + String brand = (String) list1.get(1); + StringBuilder builder = new StringBuilder(); + builder.append("["); + 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)); + }); + builder.deleteCharAt(builder.length() - 1); + } + } else { + builder.append("["); + builder.append(String.format("\"%s\"", brand)); + builder.append("]"); + } + builder.append("]"); + str.setSample(builder.toString()); + } + str.setInspectionItem(list1.get(4).toString()); + if (list1.get(5) != null) { + str.setInspectionItemEn(list1.get(5).toString()); + } + if (list1.get(6) == null) { + str.setInspectionItemSubclass(null); + } else { + str.setInspectionItemSubclass(list1.get(6).toString()); + } + if (list1.get(7) == null) { + str.setInspectionItemSubclassEn(null); + } else { + str.setInspectionItemSubclassEn(String.valueOf(list1.get(7).toString())); + } + StructureItemParameter db_str; + if (StringUtils.isEmpty(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)) { + str.setId(db_str.getId()); + } + if (list1.get(8) == null) { + str.setMethod(null); + } else { + StringBuffer buffer = new StringBuffer(); + String input = list1.get(8).toString(); + buffer.append("["); + String[] values = input.split("锛�"); + for (String value : values) { + buffer.append("\"").append(value.trim()).append("\","); + } + buffer.deleteCharAt(buffer.length() - 1); + buffer.append("]"); + str.setMethod(buffer.toString()); + } + + if (list1.get(9) == null) { + str.setSonLaboratory(null); + } else { + str.setSonLaboratory(list1.get(9).toString()); + } + if (list1.get(10) == null) { + str.setUnit(null); + } else { + str.setUnit(list1.get(10).toString()); + } + + if (list1.get(11) == null) { + str.setAskTell(null); + } else { + str.setAskTell(list1.get(11).toString()); + } + + if (list1.get(12) == null) { + str.setAsk(null); + } else { + str.setAsk(list1.get(12).toString()); + } + + if (list1.get(13) == null) { + str.setPrice(null); + } else { + str.setPrice(list1.get(13) + ""); + } + + if (list1.get(14) == null) { + str.setManHour(null); + } else { + str.setManHour(Double.valueOf(list1.get(14).toString())); + } + + if (list1.get(15) == null) { + str.setManHourGroup(null); + } else { + str.setManHourGroup(list1.get(15).toString()); + } + + if (list1.get(16) == null) { + str.setManDay(null); + } else { + str.setManDay(Integer.valueOf(list1.get(16).toString())); + } + String jy; + if (list1.get(17).toString().equals("闈為噰闆嗙被鍨�")) { + jy = "0"; + } else { + jy = "1"; + } + str.setInspectionItemType(jy); + String validateValueType = list1.get(18).toString(); + if (StringUtils.isNotBlank(validateValueType)) { + Enums enums = enumService.getOne(Wrappers.lambdaQuery(Enums.class) + .eq(Enums::getCategory, "妫�楠屽�肩被鍨�") + .eq(Enums::getLabel, validateValueType)); + str.setInspectionValueType(enums.getValue()); + } + int bsm; + if (list1.get(19).toString().equals("鍚�")) { + bsm = 0; + } else { + bsm = 1; + } + str.setBsm(bsm + ""); + if (list1.get(20) != null) { + str.setDic(list1.get(20) + ""); + } else { + str.setDic(null); + } + StandardTemplate standTempIdByName = standardTemplateService.getStandTempIdByName(String.valueOf(list1.get(21))); + if (standTempIdByName != null) { + str.setTemplateId(standTempIdByName.getId()); + } 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.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(); + } +} -- Gitblit v1.9.3