From 0e2e829f10a5e5b239d6583d6be3afbcaed0dcc0 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期三, 31 七月 2024 17:58:30 +0800
Subject: [PATCH] PK8000处理调试+各种bug调试优化

---
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java |  173 +++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 117 insertions(+), 56 deletions(-)

diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java
index 1b61451..e1c3b43 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java
@@ -41,6 +41,8 @@
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.Function;
 import java.util.function.Predicate;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
 /**
@@ -122,7 +124,7 @@
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public int upInsOrder(Integer orderId, Integer sampleId, String appointed, Integer userId,String sonLaboratory) {
+    public int upInsOrder(Integer orderId, Integer sampleId, String appointed, Integer userId, String sonLaboratory) {
         InsOrder insOrder = new InsOrder();
         insOrder.setId(orderId);
         insOrder.setAppointed(LocalDate.parse(appointed));
@@ -283,64 +285,62 @@
             if (product.getState() == 1 && !product.getInspectionItem().equals("鍏夌氦鎺ュご鎹熻��")) {
                 //鍒ゆ柇鍏夌紗鐨勬俯搴﹀惊鐜」鐩坊鍔�
                 if (insOrder.getSampleType().equals("鍏夌紗") && product.getInspectionItem().equals("娓╁害寰幆") && type != 0) {
-                    List<InsProduct> insProductes = new ArrayList<>();
-                    List<InsProduct> insProducts = new ArrayList<>();
-                    String[] strings = product.getAsk().split(";");
-
-                    for (int i = 0; i < strings.length; i++) {
-                        int count = Integer.parseInt(strings[strings.length - 1]);
-                        if (i != strings.length - 1) {
-                            InsProduct insProduct = new InsProduct();
-                            switch (type) {
-                                case 1:
-                                    insProduct.setInsFibersId(id);
-                                    break;
-                                case 2:
-                                    insProduct.setInsFiberId(id);
-                                    break;
-                            }
-                            String[] split = strings[i].split(",");
-                            if (split[0].equals("20鈩�")) {
-                                insProduct.setInspectionItem(count + "");//妫�楠岄」--寰幆娆℃暟
-                            } else {
-                                insProduct.setInspectionItem("1");//妫�楠岄」--寰幆娆℃暟
-                            }
-                            insProduct.setInspectionItemSubclass(split[0]);//妫�楠岄」--娓╁害
-                            insProduct.setInspectionItemClass(split[1]);//妫�楠岄」--鍏夌氦椤圭洰
-                            insProduct.setAsk(split[2]);//妫�楠岃姹�
-                            insProduct.setTell(strings[i]);//妫�楠屾弿杩�
-                            insProduct.setInsSampleId(sampleId);
-                            insProduct.setState(1);
-                            insProduct.setFactory(product.getFactory());
-                            insProduct.setLaboratory(product.getLaboratory());
-                            insProduct.setSampleType(product.getSampleType());
-                            insProduct.setSample(product.getSample());
-                            insProduct.setModel(product.getModel());
-                            insProduct.setSonLaboratory(product.getSonLaboratory());
-                            insProduct.setUnit(product.getUnit());
-                            insProduct.setManHourGroup(product.getManHourGroup());
-                            insProduct.setInspectionItemType("0");
-                            insProduct.setInspectionValueType("1");
-                            insProducts.add(insProduct);
-                            insProductes.add(insProduct);
+                    //鍒ゆ柇閫夋嫨鐨勬爣鍑嗘柟娉曟槸濮旀墭瑕佹眰杩樻槸鍏朵粬鏍囧噯鏂规硶
+                    String name = insSampleMapper.selMethodById(sampleId);
+                    if (!name.equals("濮旀墭瑕佹眰")) {
+                        //鍒ゆ柇鏍囧噯鏂规硶鐨勬俯搴﹀惊鐜殑瑕佹眰鎻忚堪鏄惁鏈夊~鍐�
+                        if (ObjectUtils.isEmpty(product.getTell()) || product.getTell().equals("")) {
+                            throw new ErrorException("鍏夌紗鐨勬俯搴﹀惊鐜殑瑕佹眰鎻忚堪涓虹┖,闇�瑕佸湪鏍囧噯搴撻厤缃姹傛弿杩�!!!");
                         } else {
-                            //鏈�鍚庝竴涓暟鎹槸璇存槑浼氬惊鐜灏戞
-                            if (count > 1) {
-                                //寰幆瓒呰繃1娆�
-                                for (int j = 2; j <= count; j++) {
-                                    for (InsProduct insProduct : insProducts) {
-                                        if (!insProduct.getInspectionItemSubclass().equals("20鈩�") && !insProduct.getInspectionItemSubclass().equals("20鈩�(甯告俯)")) {
-                                            InsProduct insProduct1 = new InsProduct();
-                                            BeanUtils.copyProperties(insProduct, insProduct1);
-                                            insProduct1.setInspectionItem(j + "");
-                                            insProductes.add(insProduct1);
-                                        }
-                                    }
+                            //瑙f瀽(娓╁害鑼冨洿锛�20鈩冿紝-40鈩冿紝65鈩冿紱淇濇俯鏃堕棿锛�12h锛� 寰幆娆℃暟锛�2娆★紱 鍏夌氦锛�1310nm锛�1550nm锛夐檮鍔犺“鍑忎笉澶т簬0.03dB/km)
+                            String tell = product.getTell().replace("锛�", ")")
+                                    .replace("(", "锛�")
+                                    .replace(")", "锛�")
+                                    .replace("锛�", ",")
+                                    .replace("锛�", ":")
+                                    .replace("锛�", ";")
+                                    .replace("涓嶅ぇ浜�", "鈮�")
+                                    .replace("涓嶅皬浜�", "鈮�")
+                                    .replace("澶т簬", ">")
+                                    .replace("灏忎簬", "<")
+                                    .replace("绛変簬", "=");
+                            String[] message=null;
+                            String[] nm=null;
+                            String ask=null;
+                            String count=null;
+                            try {
+                                String[] strings = tell.split(";");
+                                //娓╁害
+                                String temperature = strings[0];
+                                String[] split = temperature.split(":");
+                                 message = split[1].split(",");
+                                //寰幆娆℃暟
+                                 count = strings[2].split(":")[1].split("娆�")[0];
+                                //鍏夌氦椤圭洰鍜岃姹傚��
+                                String string = strings[3];
+                                 nm = string.split("锛�")[1].split("锛�")[0].split(",");
+                                 ask = string.split("琛板噺")[1].split("dB")[0];
+                            }catch (Exception e){
+                                throw new ErrorException("娓╁害寰幆鐨勮姹傛弿杩版牸寮忓紓甯�,璇峰弬鐓ф俯搴﹁寖鍥达細20鈩冿紝-40鈩冿紝65鈩冿紱淇濇俯鏃堕棿锛�12h锛� 寰幆娆℃暟锛�2娆★紱 鍏夌氦锛�1310nm锛�1550nm锛夐檮鍔犺“鍑忎笉澶т簬0.03dB/km");
+                            }
+                            //鎷兼帴
+                            String s=null;
+                            for (int i = 0; i < nm.length; i++) {
+                                 s+= "20鈩�(甯告俯)," + nm[i] + ",null;";
+                                for (int j = 0; j < message.length; j++) {
+                                    s+= message[j] + "," + nm[i] + "," + ask + ";" ;
                                 }
                             }
+                            s+=count;
+                            product.setAsk(s);
+                            insProductMapper.updateById(product);
+                            dealWithTemperatureLoop(type,id,sampleId,product);
                         }
                     }
-                    insProductService.saveBatch(insProductes);
+                    else {
+                        //20鈩�(甯告俯),1310nm,null;-40鈩�,1310nm,鈮�0.2;75鈩�,1310nm,<0.3;20鈩�,1310nm,鈮�0.1;20鈩�(甯告俯),1550nm,null;-40鈩�,1550nm,鈮�0.2;75鈩�,1550nm,<0.3;20鈩�,1550nm,鈮�0.1;3
+                        dealWithTemperatureLoop(type,id,sampleId,product);
+                    }
                 }
                 //鍒ゆ柇鐑惊鐜」鐩殑娣诲姞鍜屾俯鍗囪瘯楠岄」鐩殑娣诲姞
                 else if (product.getInspectionItem().equals("鐑惊鐜�") || product.getInspectionItem().equals("娓╁崌璇曢獙")) {
@@ -419,6 +419,67 @@
                 }
             }
         }
+    }
+
+    //娓╁害寰幆鐨勫鐞�
+    private void dealWithTemperatureLoop(Integer type, Integer id,Integer sampleId,InsProduct product) {
+        List<InsProduct> insProductes = new ArrayList<>();
+        List<InsProduct> insProducts = new ArrayList<>();
+        String[] strings = product.getAsk().split(";");
+        for (int i = 0; i < strings.length; i++) {
+            int count = Integer.parseInt(strings[strings.length - 1]);
+            if (i != strings.length - 1) {
+                InsProduct insProduct = new InsProduct();
+                switch (type) {
+                    case 1:
+                        insProduct.setInsFibersId(id);
+                        break;
+                    case 2:
+                        insProduct.setInsFiberId(id);
+                        break;
+                }
+                String[] split = strings[i].split(",");
+                if (split[0].equals("20鈩�")) {
+                    insProduct.setInspectionItem(count + "");//妫�楠岄」--寰幆娆℃暟
+                } else {
+                    insProduct.setInspectionItem("1");//妫�楠岄」--寰幆娆℃暟
+                }
+                insProduct.setInspectionItemSubclass(split[0]);//妫�楠岄」--娓╁害
+                insProduct.setInspectionItemClass(split[1]);//妫�楠岄」--鍏夌氦椤圭洰
+                insProduct.setAsk(split[2]);//妫�楠岃姹�
+                insProduct.setTell(strings[i]);//妫�楠屾弿杩�
+                insProduct.setInsSampleId(sampleId);
+                insProduct.setState(1);
+                insProduct.setFactory(product.getFactory());
+                insProduct.setLaboratory(product.getLaboratory());
+                insProduct.setSampleType(product.getSampleType());
+                insProduct.setSample(product.getSample());
+                insProduct.setModel(product.getModel());
+                insProduct.setSonLaboratory(product.getSonLaboratory());
+                insProduct.setUnit(product.getUnit());
+                insProduct.setManHourGroup(product.getManHourGroup());
+                insProduct.setInspectionItemType("0");
+                insProduct.setInspectionValueType("1");
+                insProducts.add(insProduct);
+                insProductes.add(insProduct);
+            } else {
+                //鏈�鍚庝竴涓暟鎹槸璇存槑浼氬惊鐜灏戞
+                if (count > 1) {
+                    //寰幆瓒呰繃1娆�
+                    for (int j = 2; j <= count; j++) {
+                        for (InsProduct insProduct : insProducts) {
+                            if (!insProduct.getInspectionItemSubclass().equals("20鈩�") && !insProduct.getInspectionItemSubclass().equals("20鈩�(甯告俯)")) {
+                                InsProduct insProduct1 = new InsProduct();
+                                BeanUtils.copyProperties(insProduct, insProduct1);
+                                insProduct1.setInspectionItem(j + "");
+                                insProductes.add(insProduct1);
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        insProductService.saveBatch(insProductes);
     }
 
     @Override
@@ -546,7 +607,7 @@
     }
 
     @Override
-    public void export(CostStatisticsDto costStatisticsDto,HttpServletResponse response) throws IOException {
+    public void export(CostStatisticsDto costStatisticsDto, HttpServletResponse response) throws IOException {
         //鏌ヨ瀵煎嚭鐨勮垂鐢ㄧ粺璁℃暟鎹�
         String dates = costStatisticsDto.getDates();
         String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(",");
@@ -574,7 +635,7 @@
             // 鏂板缓ExcelWriter
             ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
 
-            WriteSheet mainSheet = EasyExcel.writerSheet( "鏍峰搧璐圭敤缁熻瀵煎嚭").head(CostStatisticsDto.class).build();
+            WriteSheet mainSheet = EasyExcel.writerSheet("鏍峰搧璐圭敤缁熻瀵煎嚭").head(CostStatisticsDto.class).build();
             excelWriter.write(costStatisticsDtos, mainSheet);
 
             // 鍏抽棴娴�

--
Gitblit v1.9.3