From c5410b2cb68fbff85530b00385ecf82c6607937c Mon Sep 17 00:00:00 2001 From: chenrui <1187576398@qq.com> Date: 星期一, 24 三月 2025 17:35:01 +0800 Subject: [PATCH] 远场表单居中 --- inspect-server/src/main/java/com/yuanchu/mom/utils/DianLuUtils.java | 204 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 189 insertions(+), 15 deletions(-) diff --git a/inspect-server/src/main/java/com/yuanchu/mom/utils/DianLuUtils.java b/inspect-server/src/main/java/com/yuanchu/mom/utils/DianLuUtils.java index 868718e..dbc463b 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/utils/DianLuUtils.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/utils/DianLuUtils.java @@ -28,6 +28,8 @@ import javax.servlet.http.HttpServletRequest; import java.io.*; import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.util.stream.Collectors; @Component @@ -69,7 +71,6 @@ List<InsProductResult2> result2s = insProductResult2Mapper.selectList(Wrappers.<InsProductResult2>lambdaQuery() .eq(InsProductResult2::getNum, orderStates.get(0).getNum()) .in(InsProductResult2::getInsProductId, insProducts.stream().distinct().map(InsProduct::getId).collect(Collectors.toList()))); - //List<InsProduct> productList = getInsProduct(sampleId, "鐢佃矾璇曢獙"); //鏍规嵁棰戠偣鍒嗙被 Map<String, List<HuTiaoData>> collect = huTiaoData.stream() .collect(Collectors.groupingBy(HuTiaoData::getOften, LinkedHashMap::new, Collectors.toList())); @@ -141,7 +142,7 @@ //鏌ヨ璇ユ牱鍝佺殑鍚屾瀬鍖栭殧绂诲害椤圭洰id List<InsProduct> products2 = products.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("鍚屾瀬鍖栭殧绂诲害")).collect(Collectors.toList()); //鏌ヨ璇ユ牱鍝佺殑闅旂搴﹂」鐩甶d - List<InsProduct> products6 = products.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("闅旂搴�")).collect(Collectors.toList()); + List<InsProduct> products6 = products.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("鍚屽垪闅旂搴�")).collect(Collectors.toList()); //鏌ヨ璇ユ牱鍝佺殑绔彛闂撮殧绂诲害椤圭洰id List<InsProduct> products7 = products.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("绔彛闂撮殧绂诲害")).collect(Collectors.toList()); //鏌ヨ璇ユ牱鍝佺殑寮傛瀬鍖栭殧绂诲害椤圭洰id @@ -159,7 +160,7 @@ InsProductResult2 insProductResult2 = new InsProductResult2(); if (entry.getKey().contains("椹绘尝")) { if (products1.size() <= 0) { - throw new ErrorException("鐢靛帇椹绘尝姣旈」鐩湭鎵惧埌"); + continue; } insProductResult2.setInsProductId(products1.get(0).getId());//鐢靛帇椹绘尝姣� insProductResult2.setFrequency(listEntry.getKey());//棰戞 @@ -172,11 +173,12 @@ String value = entry.getValue().stream().map(tianXianData1 -> "\"" + tianXianData1.getValue() + "\"").collect(Collectors.joining(",")); insProductResult2.setValue("[[" + value + "]]");//鍊� insProductResult2s.add(insProductResult2); - } else if (entry.getKey().contains("鍚屽垪闅旂")) { + } + else if (entry.getKey().contains("鍚屽垪闅旂")) { if (products6.size() <= 0) { - throw new ErrorException("闅旂搴﹂」鐩湭鎵惧埌"); + continue; } - insProductResult2.setInsProductId(products6.get(0).getId());//鍚屾瀬鍖栭殧绂� + insProductResult2.setInsProductId(products6.get(0).getId());//鍚屽垪闅旂 insProductResult2.setFrequency(listEntry.getKey());//棰戞 insProductResult2.setAngle("0掳");//瑙掑害 insProductResult2.setNum(orderStates.get(0).getNum());//娆℃暟 @@ -187,11 +189,12 @@ String value = entry.getValue().stream().map(tianXianData1 -> "\"" + tianXianData1.getValue() + "\"").collect(Collectors.joining(",")); insProductResult2.setValue("[[" + value + "]]");//鍊� insProductResult2s.add(insProductResult2); - } else if (entry.getKey().contains("绔彛闂撮殧绂�")) { + } + else if (entry.getKey().contains("绔彛闂撮殧绂�")) { if (products7.size() <= 0) { - throw new ErrorException("绔彛闂撮殧绂婚」鐩湭鎵惧埌"); + continue; } - insProductResult2.setInsProductId(products7.get(0).getId());//鍚屾瀬鍖栭殧绂� + insProductResult2.setInsProductId(products7.get(0).getId());//绔彛闂撮殧绂� insProductResult2.setFrequency(listEntry.getKey());//棰戞 insProductResult2.setAngle("0掳");//瑙掑害 insProductResult2.setNum(orderStates.get(0).getNum());//娆℃暟 @@ -205,7 +208,7 @@ } else if (entry.getKey().contains("鍚屾瀬鍖栭殧绂�")) { if (products2.size() <= 0) { - throw new ErrorException("鍚屾瀬鍖栭殧绂婚」鐩湭鎵惧埌"); + continue; } insProductResult2.setInsProductId(products2.get(0).getId());//鍚屾瀬鍖栭殧绂� insProductResult2.setFrequency(listEntry.getKey());//棰戞 @@ -218,9 +221,10 @@ String value = entry.getValue().stream().map(tianXianData1 -> "\"" + tianXianData1.getValue() + "\"").collect(Collectors.joining(",")); insProductResult2.setValue("[[" + value + "]]");//鍊� insProductResult2s.add(insProductResult2); - } else if (entry.getKey().contains("寮傛瀬鍖栭殧绂�")) { + } + else if (entry.getKey().contains("寮傛瀬鍖栭殧绂�")) { if (products3.size() <= 0) { - throw new ErrorException("寮傛瀬鍖栭殧绂婚」鐩湭鎵惧埌"); + continue; } insProductResult2.setInsProductId(products3.get(0).getId());//寮傛瀬鍖栭殧绂� insProductResult2.setFrequency(listEntry.getKey());//棰戞 @@ -244,7 +248,7 @@ for (Map.Entry<String, List<TianXianData>> entry : collect.entrySet()) { if (entry.getKey().contains("骞呭害")) { if (products4.size() <= 0) { - throw new ErrorException("骞呭害鍋忓樊椤圭洰鏈壘鍒�"); + continue; } Map<String, List<TianXianData>> listHashMap = new HashMap<>(); for (TianXianData xianData : entry.getValue()) { @@ -280,9 +284,10 @@ insProductResult2.setValue("[[" + value + "]]");//鍊� insProductResult2s.add(insProductResult2); } - } else if (entry.getKey().contains("鐩镐綅")) { + } + else if (entry.getKey().contains("鐩镐綅")) { if (products5.size() <= 0) { - throw new ErrorException("鏈�澶х浉浣嶅亸宸」鐩湭鎵惧埌"); + continue; } Map<String, List<TianXianData>> listHashMap = new HashMap<>(); for (TianXianData xianData : entry.getValue()) { @@ -339,6 +344,175 @@ result2.setValue("[[" + value + "]]"); result2.setAngle("0掳"); result2.setOften(entry.getValue().stream().map(InsProductResult2::getOften).collect(Collectors.joining(","))); + result2.setNum(orderStates.get(0).getNum()); + filteredList.add(result2); + } + } + insProductResult2Service.saveBatch(filteredList); + } + + //璇诲彇csv鐨勬枃浠�(鏃犳簮鍣ㄤ欢) + public void readDianLuFile3(Integer sampleId, InsOrderFile insOrderFile) { + List<InsProductResult2> insProductResult2s = new ArrayList<>(); + String excelFilePath = wordUrl + "/" + insOrderFile.getFileUrl(); // 鏇存柊涓轰綘鐨勬枃浠惰矾寰� + List<TianXianData> tianXianData = readExcelData2(excelFilePath); + //鏌ヨ妫�楠屼换鍔d + List<InsOrderState> orderStates = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery() + .eq(InsOrderState::getInsSampleId, sampleId) + .eq(InsOrderState::getLaboratory, "鐢佃矾璇曢獙")); + List<InsProduct> products = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() + .eq(InsProduct::getState, 1) + .eq(InsProduct::getInsSampleId, sampleId)); + //鏌ヨ璇ユ牱鍝佺殑鐢靛帇椹绘尝姣旈」鐩甶d + List<InsProduct> products1 = products.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("鐢靛帇椹绘尝姣�")).collect(Collectors.toList()); + //鏌ヨ璇ユ牱鍝佺殑鏃犳簮鍣ㄤ欢闅旂搴﹂」鐩甶d + List<InsProduct> products2 = products.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("鏃犳簮鍣ㄤ欢闅旂搴�")).collect(Collectors.toList()); + //鏌ヨ璇ユ牱鍝佺殑鎻掑叆鎹熻�楅」鐩甶d + List<InsProduct> products3 = products.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("鎻掑叆鎹熻��")).collect(Collectors.toList()); + //鏌ヨ璇ユ牱鍝佺殑甯﹀唴娉㈠姩椤圭洰id + List<InsProduct> products4 = products.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("甯﹀唴娉㈠姩")).collect(Collectors.toList()); + //鏌ヨ璇ユ牱鍝佺殑甯﹀鎶戝埗椤圭洰id + List<InsProduct> products5 = products.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("甯﹀鎶戝埗")).collect(Collectors.toList()); + //鏌ヨ璇ユ牱鍝佺殑鏈�澶ц�﹀悎搴﹂」鐩甶d + List<InsProduct> products6 = products.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("鏈�澶ц�﹀悎搴�")).collect(Collectors.toList()); + //鏌ヨ璇ユ牱鍝佺殑鏈�灏忚�﹀悎搴﹂」鐩甶d + List<InsProduct> products7 = products.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("鏈�灏忚�﹀悎搴�")).collect(Collectors.toList()); + //鑾峰彇鎵�鏈夐娈�,鏍规嵁棰戞杩涜鍒嗙被 + Map<String, List<TianXianData>> map = tianXianData.stream().collect(Collectors.groupingBy(TianXianData::frequency, LinkedHashMap::new, Collectors.toList())); + for (Map.Entry<String, List<TianXianData>> listEntry : map.entrySet()) { + //鑾峰彇淇℃伅,鏍规嵁妫�楠岄」鐩繘琛屽垎绫� + Map<String, List<TianXianData>> collect = listEntry.getValue().stream().collect(Collectors.groupingBy(TianXianData::getName, LinkedHashMap::new, Collectors.toList())); + for (Map.Entry<String, List<TianXianData>> entry : collect.entrySet()) { + InsProductResult2 insProductResult2 = new InsProductResult2(); + if (entry.getKey().contains("椹绘尝")) { + if (products1.size() <= 0) { + continue; + } + insProductResult2.setInsProductId(products1.get(0).getId());//鐢靛帇椹绘尝姣� + insProductResult2.setFrequency(listEntry.getKey());//棰戞 + insProductResult2.setNum(orderStates.get(0).getNum());//娆℃暟 + //鑾峰彇绔彛 + String port = entry.getValue().stream().map(TianXianData::getPort).collect(Collectors.joining(",")); + insProductResult2.setPort(port);//绔彛 + //鑾峰彇妫�楠屽�� + String value = entry.getValue().stream().map(tianXianData1 -> "\"" + tianXianData1.getValue() + "\"").collect(Collectors.joining(",")); + insProductResult2.setValue("[[" + value + "]]");//鍊� + insProductResult2s.add(insProductResult2); + } + else if (entry.getKey().contains("闅旂搴�")) { + if (products2.size() <= 0) { + continue; + } + insProductResult2.setInsProductId(products2.get(0).getId());//鏃犳簮鍣ㄤ欢闅旂搴� + insProductResult2.setFrequency(listEntry.getKey());//棰戞 + insProductResult2.setNum(orderStates.get(0).getNum());//娆℃暟 + //鑾峰彇绔彛 + String port = entry.getValue().stream().map(TianXianData::getPort).collect(Collectors.joining(",")); + insProductResult2.setPort(port);//绔彛 + //鑾峰彇妫�楠屽�� + String value = entry.getValue().stream().map(tianXianData1 -> "\"" + tianXianData1.getValue() + "\"").collect(Collectors.joining(",")); + insProductResult2.setValue("[[" + value + "]]");//鍊� + insProductResult2s.add(insProductResult2); + } + else if (entry.getKey().contains("鎻掑叆鎹熻��")) { + if (products3.size() <= 0) { + continue; + } + insProductResult2.setInsProductId(products3.get(0).getId());//鎻掑叆鎹熻�� + insProductResult2.setFrequency(listEntry.getKey());//棰戞 + insProductResult2.setNum(orderStates.get(0).getNum());//娆℃暟 + //鑾峰彇绔彛 + String port = entry.getValue().stream().map(TianXianData::getPort).collect(Collectors.joining(",")); + insProductResult2.setPort(port);//绔彛 + //鑾峰彇妫�楠屽�� + String value = entry.getValue().stream().map(tianXianData1 -> "\"" + tianXianData1.getValue() + "\"").collect(Collectors.joining(",")); + insProductResult2.setValue("[[" + value + "]]");//鍊� + insProductResult2s.add(insProductResult2); + } + else if (entry.getKey().contains("甯﹀唴娉㈠姩")) { + if (products4.size() <= 0) { + continue; + } + insProductResult2.setInsProductId(products4.get(0).getId());//甯﹀唴娉㈠姩 + insProductResult2.setFrequency(listEntry.getKey());//棰戞 + insProductResult2.setNum(orderStates.get(0).getNum());//娆℃暟 + //鑾峰彇绔彛 + String port = entry.getValue().stream().map(TianXianData::getPort).collect(Collectors.joining(",")); + insProductResult2.setPort(port);//绔彛 + //鑾峰彇妫�楠屽�� + String value = entry.getValue().stream().map(tianXianData1 -> "\"" + tianXianData1.getValue() + "\"").collect(Collectors.joining(",")); + insProductResult2.setValue("[[" + value + "]]");//鍊� + insProductResult2s.add(insProductResult2); + } + else if (entry.getKey().contains("甯﹀鎶戝埗")) { + if (products5.size() <= 0) { + continue; + } + insProductResult2.setInsProductId(products5.get(0).getId());//甯﹀鎶戝埗 + insProductResult2.setFrequency(listEntry.getKey());//棰戞 + insProductResult2.setNum(orderStates.get(0).getNum());//娆℃暟 + //鑾峰彇绔彛 + String port = entry.getValue().stream().map(TianXianData::getPort).collect(Collectors.joining(",")); + insProductResult2.setPort(port);//绔彛 + //鑾峰彇妫�楠屽�� + String value = entry.getValue().stream().map(tianXianData1 -> "\"" + tianXianData1.getValue() + "\"").collect(Collectors.joining(",")); + insProductResult2.setValue("[[" + value + "]]");//鍊� + insProductResult2s.add(insProductResult2); + } + else if (entry.getKey().contains("鑰﹀悎搴�")) { + if (products6.size() <= 0 || products7.size()<=0) { + continue; + } + /*鏈�澶ц�﹀悎搴�*/ + insProductResult2.setFrequency(listEntry.getKey());//棰戞 + insProductResult2.setNum(orderStates.get(0).getNum());//娆℃暟 + //鑾峰彇绔彛 + String port = entry.getValue().stream().map(TianXianData::getPort).collect(Collectors.joining(",")); + insProductResult2.setPort(port);//绔彛 + insProductResult2.setInsProductId(products6.get(0).getId());//鏈�澶ц�﹀悎搴� + //鑾峰彇妫�楠屽�� + String value = entry.getValue().stream().map(tianXianData1 -> { + String input = tianXianData1.getValue().replace("[", "").replace("]", ""); + String[] parts = input.split("--"); + return "\"" + "-"+parts[1] + "\"" ; }).collect(Collectors.joining(",")); + insProductResult2.setValue("[[" + value + "]]");//鍊� + insProductResult2s.add(insProductResult2); + /*鏈�灏忚�﹀悎搴�*/ + InsProductResult2 insProductResult22 = new InsProductResult2(); + insProductResult22.setFrequency(listEntry.getKey());//棰戞 + insProductResult22.setNum(orderStates.get(0).getNum());//娆℃暟 + //鑾峰彇绔彛 + insProductResult22.setPort(port);//绔彛 + insProductResult22.setInsProductId(products7.get(0).getId());//鏈�灏忚�﹀悎搴� + String value1 = entry.getValue().stream().map(tianXianData1 -> { + String input = tianXianData1.getValue().replace("[", "").replace("]", ""); + String[] parts = input.split("--"); + return "\"" +parts[0] + "\"" ; }).collect(Collectors.joining(",")); + insProductResult22.setValue("[[" + value1 + "]]");//鍊� + insProductResult2s.add(insProductResult22); + } + } + } + + Map<String, List<InsProductResult2>> groupedMap = insProductResult2s.stream() + .collect(Collectors.groupingBy(item -> item.getInsProductId() + "_" + item.getFrequency())); + // 杩囨护鍑哄垎缁勫悗鏁伴噺绛変簬1鐨勭粍 + List<InsProductResult2> filteredList = groupedMap.values().stream() + .filter(list -> list.size() == 1) + .flatMap(List::stream) + .collect(Collectors.toList()); + for (Map.Entry<String, List<InsProductResult2>> entry : groupedMap.entrySet()) { + if (entry.getValue().size() > 1) { + InsProductResult2 result2 = new InsProductResult2(); + result2.setInsProductId(Integer.parseInt(entry.getKey().split("_")[0])); + result2.setFrequency(entry.getKey().split("_")[1]); + result2.setPort(entry.getValue().stream().map(InsProductResult2::getPort).collect(Collectors.joining(","))); + String value = entry.getValue().stream().map(insProductResult2 -> { + return insProductResult2.getValue().replace("[[", "").replace("]]", ""); + }).collect(Collectors.joining(",")); + result2.setValue("[[" + value + "]]"); + result2.setOften(entry.getValue().stream().map(InsProductResult2::getOften).collect(Collectors.joining(","))); + result2.setNum(orderStates.get(0).getNum()); filteredList.add(result2); } } -- Gitblit v1.9.3