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调试优化

---
 cnas-server/src/main/java/com/yuanchu/mom/service/impl/PkMasterServiceImpl.java |  659 ++++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 374 insertions(+), 285 deletions(-)

diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/PkMasterServiceImpl.java b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/PkMasterServiceImpl.java
index abd6f47..9bd92be 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/PkMasterServiceImpl.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/PkMasterServiceImpl.java
@@ -23,6 +23,7 @@
 import java.math.RoundingMode;
 import java.time.LocalDateTime;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -76,13 +77,362 @@
                 .eq(PkMaster::getSampleCode, pkMaster.getSampleCode())
                 .eq(PkMaster::getModel, pkMaster.getModel())
                 .eq(PkMaster::getTemperature, pkMaster.getTemperature()));
-        if (ObjectUtils.isEmpty(master)) {
-            throw new ErrorException("娌℃湁鎵惧埌瀵瑰簲濮旀墭鍗�" + pkMaster.getEntrustCode() + "鐨勬暟閲囨暟鎹�");
+        if (ObjectUtils.isNotEmpty(master)) {
+            //throw new ErrorException("娌℃湁鎵惧埌瀵瑰簲濮旀墭鍗�" + pkMaster.getEntrustCode() + "鐨勬暟閲囨暟鎹�");
+            List<PkSlave> pkSlaves = pkSlaveMapper.selectList1(master.getIsid());
+            if (CollectionUtils.isEmpty(pkSlaves)) {
+                throw new ErrorException("娌℃湁鎵惧埌瀵瑰簲濮旀墭鍗�" + pkMaster.getEntrustCode() + "鐨勬暟閲囧瓙鏁版嵁");
+            }
+            //鏌ヨ瀵瑰簲鐨勬楠屽崟琛�
+            InsOrder insOrder = insOrderMapper.selectOne(Wrappers.<InsOrder>lambdaQuery().eq(InsOrder::getState, 1).eq(InsOrder::getEntrustCode, pkMaster.getEntrustCode()));
+            if (ObjectUtils.isEmpty(insOrder)) {
+                throw new ErrorException("娌℃湁鎵惧埌瀵瑰簲濮旀墭鍗�" + pkMaster.getEntrustCode());
+            }
+            //鏌ヨ瀵瑰簲妫�楠屾牱鍝乮d
+            InsSample insSample = insSampleMapper.selectOne(Wrappers.<InsSample>lambdaQuery()
+                    .eq(InsSample::getInsOrderId, insOrder.getId())
+                    .eq(InsSample::getSampleCode, pkMaster.getSampleCode())
+                    .eq(InsSample::getModel, pkMaster.getModel()));
+            if (ObjectUtils.isEmpty(insSample)) {
+                throw new ErrorException("娌℃湁鎵惧埌瀵瑰簲濮旀墭鍗曚笅鐨勮鏍峰搧" + pkMaster.getSampleCode());
+            }
+            //鏌ヨ瀵瑰簲妫�楠岄」鐩�
+            Map<String, Object> map = insOrderPlanService.temCycle(insSample.getId(), pkMaster.getCycles(), pkMaster.getTemperature());
+            List<ProductVo> productVos = (List<ProductVo>) map.get("productVos");
+            if (CollectionUtils.isNotEmpty(productVos)) {
+                //todo 濡傛灉娓╁害寰幆鐨勯」鐩畁m鏈夋敼鍔ㄨ繖閲岄渶瑕佹敼鍔� @zss
+                for (PkSlave pkSlave : pkSlaves) {
+                    for (ProductVo productVo : productVos) {
+                        if (pkSlave.getInsBushingId().equals(productVo.getBushColor()) &&
+                                pkSlave.getInsFibersId().equals(productVo.getCode()) &&
+                                pkSlave.getInsFiberId().equals(productVo.getColor())) {
+                            //鎵惧埌瀵瑰簲鐨勬暟鎹�(瀵瑰簲濂楃鍏夌氦鐨勬暟鎹�)
+                            List<InsProductResult> results = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, productVo.getInsProduct().getId()));
+                            InsProductResult result;
+                            if (CollectionUtils.isEmpty(results)) {
+                                result = new InsProductResult();
+                            } else {
+                                result = results.get(0);
+                            }
+                            result.setInsProductId(productVo.getInsProduct().getId());//妫�楠岄」鐩甶d
+                            List<Map<String, Object>> iv = new ArrayList<>();
+                            List<Map<String, Object>> cv = new ArrayList<>();
+                            if (productVo.getInsProduct().getInspectionItemClass().equals("1310nm")) {
+                                //1310nm澶栫
+                                Map<String, Object> map1 = new HashMap<>();
+                                map1.put("u", userId + "");
+                                map1.put("v", ObjectUtils.isNotEmpty(pkSlave.getWeaken1310A()) ? pkSlave.getWeaken1310A().toString() : null);
+                                iv.add(map1);
+                                //1310nm鍐呯
+                                Map<String, Object> map2 = new HashMap<>();
+                                map2.put("u", userId + "");
+                                map2.put("v", ObjectUtils.isNotEmpty(pkSlave.getWeaken1310B()) ? pkSlave.getWeaken1310B().toString() : null);
+                                iv.add(map2);
+                                //1310nm琛板噺绯绘暟
+                                Map<String, Object> map3 = new HashMap<>();
+                                double v = 0.0;
+                                if (ObjectUtils.isNotEmpty(pkSlave.getWeaken1310A()) && ObjectUtils.isNotEmpty(pkSlave.getWeaken1310B())) {
+                                    v = (pkSlave.getWeaken1310A() + pkSlave.getWeaken1310B()) / 2;
+                                } else if (ObjectUtils.isNotEmpty(pkSlave.getWeaken1310A()) && ObjectUtils.isEmpty(pkSlave.getWeaken1310B())) {
+                                    v = pkSlave.getWeaken1310A();
+                                } else if (ObjectUtils.isNotEmpty(pkSlave.getWeaken1310B()) && ObjectUtils.isEmpty(pkSlave.getWeaken1310A())) {
+                                    v = pkSlave.getWeaken1310B();
+                                } else {
+                                    throw new ErrorException("1310鐨勪袱绔兘娌℃湁鏁版嵁!!!");
+                                }
+                                BigDecimal decimal = BigDecimal.valueOf(v).setScale(3, RoundingMode.HALF_UP);
+                                map3.put("v", String.valueOf(decimal));
+                                cv.add(map3);
+                            } else if (productVo.getInsProduct().getInspectionItemClass().equals("1550nm")) {
+                                //1550nm澶栫
+                                Map<String, Object> map1 = new HashMap<>();
+                                map1.put("u", userId + "");
+                                map1.put("v", ObjectUtils.isNotEmpty(pkSlave.getWeaken1550A()) ? pkSlave.getWeaken1550A().toString() : null);
+                                iv.add(map1);
+                                //1550nm鍐呯
+                                Map<String, Object> map2 = new HashMap<>();
+                                map2.put("u", userId + "");
+                                map2.put("v", ObjectUtils.isNotEmpty(pkSlave.getWeaken1550B()) ? pkSlave.getWeaken1550B().toString() : null);
+                                iv.add(map2);
+                                //1550nm琛板噺绯绘暟
+                                Map<String, Object> map3 = new HashMap<>();
+                                double v = 0.0;
+                                if (ObjectUtils.isNotEmpty(pkSlave.getWeaken1550A()) && ObjectUtils.isNotEmpty(pkSlave.getWeaken1550B())) {
+                                    v = (pkSlave.getWeaken1550A() + pkSlave.getWeaken1550B()) / 2;
+                                } else if (ObjectUtils.isNotEmpty(pkSlave.getWeaken1550A()) && ObjectUtils.isEmpty(pkSlave.getWeaken1550B())) {
+                                    v = pkSlave.getWeaken1550A();
+                                } else if (ObjectUtils.isNotEmpty(pkSlave.getWeaken1550B()) && ObjectUtils.isEmpty(pkSlave.getWeaken1550A())) {
+                                    v = pkSlave.getWeaken1550B();
+                                } else {
+                                    throw new ErrorException("1550鐨勪袱绔兘娌℃湁鏁版嵁!!!");
+                                }
+                                BigDecimal decimal = BigDecimal.valueOf(v).setScale(3, RoundingMode.HALF_UP);
+                                map3.put("v", String.valueOf(decimal));
+                                cv.add(map3);
+                            } else if (productVo.getInsProduct().getInspectionItemClass().equals("1625nm")) {
+                                //1625nm澶栫
+                                Map<String, Object> map1 = new HashMap<>();
+                                map1.put("u", userId + "");
+                                map1.put("v", ObjectUtils.isNotEmpty(pkSlave.getWeaken1625A()) ? pkSlave.getWeaken1625A().toString() : null);
+                                iv.add(map1);
+                                //1625nm鍐呯
+                                Map<String, Object> map2 = new HashMap<>();
+                                map2.put("u", userId + "");
+                                map2.put("v", ObjectUtils.isNotEmpty(pkSlave.getWeaken1625B()) ? pkSlave.getWeaken1625B().toString() : null);
+                                iv.add(map2);
+                                //1625nm琛板噺绯绘暟
+                                Map<String, Object> map3 = new HashMap<>();
+                                double v = 0.0;
+                                if (ObjectUtils.isNotEmpty(pkSlave.getWeaken1625A()) && ObjectUtils.isNotEmpty(pkSlave.getWeaken1625B())) {
+                                    v = (pkSlave.getWeaken1625A() + pkSlave.getWeaken1625B()) / 2;
+                                } else if (ObjectUtils.isNotEmpty(pkSlave.getWeaken1625A()) && ObjectUtils.isEmpty(pkSlave.getWeaken1625B())) {
+                                    v = pkSlave.getWeaken1625A();
+                                } else if (ObjectUtils.isNotEmpty(pkSlave.getWeaken1625B()) && ObjectUtils.isEmpty(pkSlave.getWeaken1625A())) {
+                                    v = pkSlave.getWeaken1625B();
+                                } else {
+                                    throw new ErrorException("1625鐨勪袱绔兘娌℃湁鏁版嵁!!!");
+                                }
+                                BigDecimal decimal = BigDecimal.valueOf(v).setScale(3, RoundingMode.HALF_UP);
+                                map3.put("v", String.valueOf(decimal));
+                                cv.add(map3);
+                            } else if (productVo.getInsProduct().getInspectionItemClass().equals("1383nm")) {
+                                //1383nm澶栫
+                                Map<String, Object> map1 = new HashMap<>();
+                                map1.put("u", userId + "");
+                                map1.put("v", ObjectUtils.isNotEmpty(pkSlave.getWeaken1383A()) ? pkSlave.getWeaken1383A().toString() : null);
+                                iv.add(map1);
+                                //1383nm鍐呯
+                                Map<String, Object> map2 = new HashMap<>();
+                                map2.put("u", userId + "");
+                                map2.put("v", ObjectUtils.isNotEmpty(pkSlave.getWeaken1383B()) ? pkSlave.getWeaken1383B().toString() : null);
+                                iv.add(map2);
+                                //1383nm琛板噺绯绘暟
+                                Map<String, Object> map3 = new HashMap<>();
+                                double v = 0.0;
+                                if (ObjectUtils.isNotEmpty(pkSlave.getWeaken1383A()) && ObjectUtils.isNotEmpty(pkSlave.getWeaken1383B())) {
+                                    v = (pkSlave.getWeaken1383A() + pkSlave.getWeaken1310B()) / 2;
+                                } else if (ObjectUtils.isNotEmpty(pkSlave.getWeaken1383A()) && ObjectUtils.isEmpty(pkSlave.getWeaken1383B())) {
+                                    v = pkSlave.getWeaken1383A();
+                                } else if (ObjectUtils.isNotEmpty(pkSlave.getWeaken1383B()) && ObjectUtils.isEmpty(pkSlave.getWeaken1383A())) {
+                                    v = pkSlave.getWeaken1383B();
+                                } else {
+                                    throw new ErrorException("1383鐨勪袱绔兘娌℃湁鏁版嵁!!!");
+                                }
+                                BigDecimal decimal = BigDecimal.valueOf(v).setScale(3, RoundingMode.HALF_UP);
+                                map3.put("v", String.valueOf(decimal));
+                                cv.add(map3);
+                            } else if (productVo.getInsProduct().getInspectionItemClass().equals("1490nm")) {
+                                //1490nm澶栫
+                                Map<String, Object> map1 = new HashMap<>();
+                                map1.put("u", userId + "");
+                                map1.put("v", ObjectUtils.isNotEmpty(pkSlave.getWeaken1490A()) ? pkSlave.getWeaken1490A().toString() : null);
+                                iv.add(map1);
+                                //1490nm鍐呯
+                                Map<String, Object> map2 = new HashMap<>();
+                                map2.put("u", userId + "");
+                                map2.put("v", ObjectUtils.isNotEmpty(pkSlave.getWeaken1490B()) ? pkSlave.getWeaken1490B().toString() : null);
+                                iv.add(map2);
+                                //1490nm琛板噺绯绘暟
+                                Map<String, Object> map3 = new HashMap<>();
+                                double v = 0.0;
+                                if (ObjectUtils.isNotEmpty(pkSlave.getWeaken1490A()) && ObjectUtils.isNotEmpty(pkSlave.getWeaken1490B())) {
+                                    v = (pkSlave.getWeaken1490A() + pkSlave.getWeaken1310B()) / 2;
+                                } else if (ObjectUtils.isNotEmpty(pkSlave.getWeaken1490A()) && ObjectUtils.isEmpty(pkSlave.getWeaken1490B())) {
+                                    v = pkSlave.getWeaken1490A();
+                                } else if (ObjectUtils.isNotEmpty(pkSlave.getWeaken1490B()) && ObjectUtils.isEmpty(pkSlave.getWeaken1490A())) {
+                                    v = pkSlave.getWeaken1490B();
+                                } else {
+                                    throw new ErrorException("1490鐨勪袱绔兘娌℃湁鏁版嵁!!!");
+                                }
+                                BigDecimal decimal = BigDecimal.valueOf(v).setScale(3, RoundingMode.HALF_UP);
+                                map3.put("v", String.valueOf(decimal));
+                                cv.add(map3);
+                            } else {
+                                throw new ErrorException("娌℃湁鎵惧埌璇ユ俯搴︾殑妫�楠岄」鐩�" + productVo.getInsProduct().getInspectionItemClass());
+                            }
+                            result.setInsValue(JSON.toJSONString(iv));//妫�楠屽��
+                            result.setComValue(JSON.toJSONString(cv));//璁$畻鍊�
+                            if (BeanUtil.isEmpty(result.getId())) {
+                                result.setCreateUser(userId);
+                                result.setUpdateUser(userId);
+                                insProductResultMapper.insert(result);
+                            } else {
+                                result.setUpdateUser(userId);
+                                result.setUpdateTime(LocalDateTime.now());
+                                insProductResultMapper.updateById(result);
+                            }
+
+                            InsProduct insProduct = productVo.getInsProduct();
+                            InsProductResult insProductResult = insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, insProduct.getId()));
+                            String comple = insProductResult.getComValue().split(":")[1].split("\"")[1];
+                            //棣栧厛鏌ョ湅娓╁害鏄惁鏄�20搴﹀父娓�
+                            if (!pkMaster.getTemperature().equals("20鈩�(甯告俯)")) {
+                                //濡傛灉涓嶆槸鍏堟煡璇㈡槸鍚︽湁鍊�
+                                int a = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
+                                        .eq(InsProduct::getInsSampleId, insSample.getId())
+                                        .eq(InsProduct::getInspectionItem, "1")
+                                        .eq(InsProduct::getInspectionItemSubclass, "20鈩�(甯告俯)")).stream().map(InsProduct::getInsResult).anyMatch(ObjectUtils::isEmpty) ? 1 : 0;
+                                if (a == 1) {
+                                    throw new ErrorException("鍏堣幏鍙�20鈩�(甯告俯)鐨勬楠屽��,鍐嶈幏鍙栧叾浠栨俯搴�" + pkMaster.getSampleCode());
+                                } else {
+                                    //璁$畻琛板噺宸�
+                                    InsProduct insPro = null;
+                                    switch (insProduct.getInspectionItemClass()) {
+                                        case "1310nm":
+                                            //鏌ヨ20鈩�(甯告俯)1310nm鐨勮“鍑忕郴鏁�
+                                            try {
+                                                insPro = insProductMapper.selectOne(Wrappers.<InsProduct>lambdaQuery()
+                                                        .eq(InsProduct::getInsSampleId, insSample.getId())
+                                                        .eq(InsProduct::getInspectionItem, "1")
+                                                        .eq(InsProduct::getInspectionItemSubclass, "20鈩�(甯告俯)")
+                                                        .eq(InsProduct::getInspectionItemClass, "1310nm")
+                                                        .eq(InsProduct::getInsFiberId, productVo.getInsProduct().getInsFiberId()));
+                                            } catch (Exception e) {
+                                                throw new ErrorException("娌℃湁鏌ュ埌20鈩�(甯告俯),1310nm椤圭洰" + productVo.getInsProduct().getInsFiberId() + "鍏夌氦鐨勬楠岄」鐩�");
+                                            }
+                                            break;
+                                        case "1550nm":
+                                            //鏌ヨ20鈩�(甯告俯)1550nm鐨勮“鍑忕郴鏁�
+                                            try {
+                                                insPro = insProductMapper.selectOne(Wrappers.<InsProduct>lambdaQuery()
+                                                        .eq(InsProduct::getInsSampleId, insSample.getId())
+                                                        .eq(InsProduct::getInspectionItem, "1")
+                                                        .eq(InsProduct::getInspectionItemSubclass, "20鈩�(甯告俯)")
+                                                        .eq(InsProduct::getInspectionItemClass, "1550nm")
+                                                        .eq(InsProduct::getInsFiberId, productVo.getInsProduct().getInsFiberId()));
+                                            } catch (Exception e) {
+                                                throw new ErrorException("娌℃湁鏌ュ埌20鈩�(甯告俯),1625nm椤圭洰" + productVo.getInsProduct().getInsFiberId() + "鍏夌氦鐨勬楠岄」鐩�");
+                                            }
+                                            break;
+                                        case "1625nm":
+                                            //鏌ヨ20鈩�(甯告俯)1625nm鐨勮“鍑忕郴鏁�
+                                            try {
+                                                insPro = insProductMapper.selectOne(Wrappers.<InsProduct>lambdaQuery()
+                                                        .eq(InsProduct::getInsSampleId, insSample.getId())
+                                                        .eq(InsProduct::getInspectionItem, "1")
+                                                        .eq(InsProduct::getInspectionItemSubclass, "20鈩�(甯告俯)")
+                                                        .eq(InsProduct::getInspectionItemClass, "1625nm")
+                                                        .eq(InsProduct::getInsFiberId, productVo.getInsProduct().getInsFiberId()));
+                                            } catch (Exception e) {
+                                                throw new ErrorException("娌℃湁鏌ュ埌20鈩�(甯告俯),1625nm椤圭洰" + productVo.getInsProduct().getInsFiberId() + "鍏夌氦鐨勬楠岄」鐩�");
+                                            }
+                                            break;
+                                        case "1383nm":
+                                            //鏌ヨ20鈩�(甯告俯)1383nm鐨勮“鍑忕郴鏁�
+                                            try {
+                                                insPro = insProductMapper.selectOne(Wrappers.<InsProduct>lambdaQuery()
+                                                        .eq(InsProduct::getInsSampleId, insSample.getId())
+                                                        .eq(InsProduct::getInspectionItem, "1")
+                                                        .eq(InsProduct::getInspectionItemSubclass, "20鈩�(甯告俯)")
+                                                        .eq(InsProduct::getInspectionItemClass, "1383nm")
+                                                        .eq(InsProduct::getInsFiberId, productVo.getInsProduct().getInsFiberId()));
+                                            } catch (Exception e) {
+                                                throw new ErrorException("娌℃湁鏌ュ埌20鈩�(甯告俯),1383nm椤圭洰" + productVo.getInsProduct().getInsFiberId() + "鍏夌氦鐨勬楠岄」鐩�");
+                                            }
+                                            break;
+                                        case "1490nm":
+                                            //鏌ヨ20鈩�(甯告俯)1490nm鐨勮“鍑忕郴鏁�
+                                            try {
+                                                insPro = insProductMapper.selectOne(Wrappers.<InsProduct>lambdaQuery()
+                                                        .eq(InsProduct::getInsSampleId, insSample.getId())
+                                                        .eq(InsProduct::getInspectionItem, "1")
+                                                        .eq(InsProduct::getInspectionItemSubclass, "20鈩�(甯告俯)")
+                                                        .eq(InsProduct::getInspectionItemClass, "1490nm")
+                                                        .eq(InsProduct::getInsFiberId, productVo.getInsProduct().getInsFiberId()));
+                                            } catch (Exception e) {
+                                                throw new ErrorException("娌℃湁鏌ュ埌20鈩�(甯告俯),1490nm椤圭洰" + productVo.getInsProduct().getInsFiberId() + "鍏夌氦鐨勬楠岄」鐩�");
+                                            }
+                                            break;
+                                    }
+                                    InsProductResult insProductRes = insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, insPro.getId()));
+                                    double abs = Math.abs(Double.parseDouble(insProductRes.getComValue().split(":")[1].split("\"")[1]) - Double.parseDouble(comple));
+                                    BigDecimal scale = BigDecimal.valueOf(abs).setScale(3, RoundingMode.HALF_UP);
+                                    insProduct.setLastValue(String.valueOf(scale));
+                                    String ask = insProduct.getAsk();
+                                    int insResult = 1;
+                                    switch (ask.charAt(0)) {
+                                        case '<':
+                                            insResult = Double.parseDouble(insProduct.getLastValue()) < Double.parseDouble(ask.substring(1)) ? 1 : 0;
+                                            break;
+                                        case '>':
+                                            insResult = Double.parseDouble(insProduct.getLastValue()) > Double.parseDouble(ask.substring(1)) ? 1 : 0;
+                                            break;
+                                        case '=':
+                                            insResult = Double.parseDouble(insProduct.getLastValue()) == Double.parseDouble(ask.substring(1)) ? 1 : 0;
+                                            break;
+                                        case '鈮�':
+                                            insResult = Double.parseDouble(insProduct.getLastValue()) <= Double.parseDouble(ask.substring(1)) ? 1 : 0;
+                                            break;
+                                        case '鈮�':
+                                            insResult = Double.parseDouble(insProduct.getLastValue()) >= Double.parseDouble(ask.substring(1)) ? 1 : 0;
+                                            break;
+                                    }
+                                    insProduct.setInsResult(insResult);
+                                }
+                            } else {
+                                //濡傛灉鏄�20搴﹀父娓�,闇�瑕佺粰鍑哄悎鏍肩殑缁撹
+                                insProduct.setInsResult(1);//20搴﹀父娓╃殑妫�楠岄」榛樿涓哄悎鏍�
+                            }
+                            insProduct.setUpdateUser(userId);
+                            insProductMapper.updateById(insProduct);
+                            User user = userMapper.selectOne(Wrappers.<User>lambdaQuery().eq(User::getAccount, master.getDetectionPeople()));
+                            if (ObjectUtils.isEmpty(user)) {
+                                throw new ErrorException("lims绯荤粺娌℃湁鎵惧埌璇ョ敤鎴�" + master.getDetectionPeople());
+                            }
+                            insProductUserMapper.insert(new InsProductUser(null, user.getId(), master.getDetectionDate(), insProduct.getId()));
+                        }
+                    }
+                }
+            }
+            //缁欐俯搴﹀惊鐜殑妫�楠岄」鐩粦瀹氳澶�
+            InsProduct product = insProductMapper.selectOne(Wrappers.<InsProduct>lambdaQuery()
+                    .eq(InsProduct::getState, 1)
+                    .eq(InsProduct::getInsSampleId, insSample.getId())
+                    .eq(InsProduct::getInspectionItem, "娓╁害寰幆"));
+            if (ObjectUtils.isEmpty(product)) {
+                throw new ErrorException("娌℃湁鎵惧埌瀵瑰簲濮旀墭鍗曚笅璇ユ牱鍝佺殑鐩稿叧娓╁害寰幆妫�楠岄」鐩�");
+            }
+            InsProductResult insProductResult = insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, product.getId()));
+            if (ObjectUtils.isEmpty(insProductResult)) {
+                insProductResult = new InsProductResult();
+                insProductResult.setInsProductId(product.getId());
+            }
+            if (ObjectUtils.isEmpty(insProductResult.getEquipValue())) {
+                List<Map<String, Object>> dv = new ArrayList<>();
+                Map<String, Object> map4 = new HashMap<>();
+                map4.put("v", "JCZX-TX-TT02006");
+                dv.add(map4);
+                Map<String, Object> map5 = new HashMap<>();
+                map5.put("v", "JCZX-TX-TT02001");
+                dv.add(map5);
+                insProductResult.setEquipValue(JSON.toJSONString(dv));
+                List<Map<String, Object>> dn = new ArrayList<>();
+                Map<String, Object> map6 = new HashMap<>();
+                map6.put("v", "姝ュ叆寮忛珮浣庢俯婀跨儹璇曢獙绠�");
+                dn.add(map6);
+                Map<String, Object> map7 = new HashMap<>();
+                map7.put("v", "姝ュ叆寮忛珮浣庢俯璇曢獙绠�");
+                dn.add(map7);
+                insProductResult.setEquipName(JSON.toJSONString(dn));
+                if (BeanUtil.isEmpty(insProductResult.getId())) {
+                    insProductResult.setCreateUser(userId);
+                    insProductResult.setUpdateUser(userId);
+                    insProductResultMapper.insert(insProductResult);
+                } else {
+                    insProductResult.setUpdateUser(userId);
+                    insProductResult.setUpdateTime(LocalDateTime.now());
+                    insProductResultMapper.updateById(insProductResult);
+                }
+            }
         }
-        List<PkSlave> pkSlaves = pkSlaveMapper.selectList1(master.getIsid());
-        if (CollectionUtils.isEmpty(pkSlaves)) {
-            throw new ErrorException("娌℃湁鎵惧埌瀵瑰簲濮旀墭鍗�" + pkMaster.getEntrustCode() + "鐨勬暟閲囧瓙鏁版嵁");
-        }
+        return 0;
+    }
+
+    //娓╁害寰幆鏁伴噰鎬讳綋
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int temDataAcquisition2(PkMaster pkMaster) {
+        //鏌ヨ鍑烘墍鏈夊惊鐜鏁板拰娓╁害,鐒跺悗寰幆璋冪敤temDataAcquisition鎺ュ彛
         //鏌ヨ瀵瑰簲鐨勬楠屽崟琛�
         InsOrder insOrder = insOrderMapper.selectOne(Wrappers.<InsOrder>lambdaQuery().eq(InsOrder::getState, 1).eq(InsOrder::getEntrustCode, pkMaster.getEntrustCode()));
         if (ObjectUtils.isEmpty(insOrder)) {
@@ -96,287 +446,26 @@
         if (ObjectUtils.isEmpty(insSample)) {
             throw new ErrorException("娌℃湁鎵惧埌瀵瑰簲濮旀墭鍗曚笅鐨勮鏍峰搧" + pkMaster.getSampleCode());
         }
-        //鏌ヨ瀵瑰簲妫�楠岄」鐩�
-        Map<String, Object> map = insOrderPlanService.temCycle(insSample.getId(), pkMaster.getCycles(), pkMaster.getTemperature());
-        List<ProductVo> productVos = (List<ProductVo>) map.get("productVos");
-        if (CollectionUtils.isEmpty(map)) {
-            throw new ErrorException("娌℃湁鎵惧埌瀵瑰簲濮旀墭鍗曚笅璇ユ牱鍝佺殑鐩稿叧娓╁害寰幆妫�楠岄」鐩殑寰幆" + pkMaster.getCycles() + "娆�+娓╁害" + pkMaster.getTemperature());
-        }
-
-        //todo 濡傛灉娓╁害寰幆鐨勯」鐩畁m鏈夋敼鍔ㄨ繖閲岄渶瑕佹敼鍔� @zss
-        for (PkSlave pkSlave : pkSlaves) {
-            for (ProductVo productVo : productVos) {
-                if (pkSlave.getInsBushingId().equals(productVo.getBushColor()) &&
-                        pkSlave.getInsFibersId().equals(productVo.getCode()) &&
-                        pkSlave.getInsFiberId().equals(productVo.getColor())) {
-                    //鎵惧埌瀵瑰簲鐨勬暟鎹�(瀵瑰簲濂楃鍏夌氦鐨勬暟鎹�)
-                    List<InsProductResult> results = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, productVo.getInsProduct().getId()));
-                    InsProductResult result;
-                    if (CollectionUtils.isEmpty(results)) {
-                        result = new InsProductResult();
-                    } else {
-                        result = results.get(0);
-                    }
-                    result.setInsProductId(productVo.getInsProduct().getId());//妫�楠岄」鐩甶d
-                    List<Map<String, Object>> iv = new ArrayList<>();
-                    List<Map<String, Object>> cv = new ArrayList<>();
-                    if (productVo.getInsProduct().getInspectionItemClass().equals("1310nm")) {
-                        //1310nm澶栫
-                        Map<String, Object> map1 = new HashMap<>();
-                        map1.put("u", userId + "");
-                        map1.put("v", pkSlave.getWeaken1310A().toString());
-                        iv.add(map1);
-                        //1310nm鍐呯
-                        Map<String, Object> map2 = new HashMap<>();
-                        map2.put("u", userId + "");
-                        map2.put("v", pkSlave.getWeaken1310B().toString());
-                        iv.add(map2);
-                        //1310nm琛板噺绯绘暟
-                        Map<String, Object> map3 = new HashMap<>();
-                        double v = (pkSlave.getWeaken1310A() + pkSlave.getWeaken1310B()) / 2;
-                        BigDecimal decimal = BigDecimal.valueOf(v).setScale(3, RoundingMode.HALF_UP);
-                        map3.put("v", String.valueOf(decimal));
-                        cv.add(map3);
-                    } else if (productVo.getInsProduct().getInspectionItemClass().equals("1550nm")) {
-                        //1550nm澶栫
-                        Map<String, Object> map1 = new HashMap<>();
-                        map1.put("u", userId + "");
-                        map1.put("v", pkSlave.getWeaken1550A().toString());
-                        iv.add(map1);
-                        //1550nm鍐呯
-                        Map<String, Object> map2 = new HashMap<>();
-                        map2.put("u", userId + "");
-                        map2.put("v", pkSlave.getWeaken1550B().toString());
-                        iv.add(map2);
-                        //1550nm琛板噺绯绘暟
-                        Map<String, Object> map3 = new HashMap<>();
-                        double v = (pkSlave.getWeaken1550A() + pkSlave.getWeaken1550B()) / 2;
-                        BigDecimal decimal = BigDecimal.valueOf(v).setScale(3, RoundingMode.HALF_UP);
-                        map3.put("v", String.valueOf(decimal));
-                        cv.add(map3);
-                    } else if (productVo.getInsProduct().getInspectionItemClass().equals("1625nm")) {
-                        //1625nm澶栫
-                        Map<String, Object> map1 = new HashMap<>();
-                        map1.put("u", userId + "");
-                        map1.put("v", pkSlave.getWeaken1625A().toString());
-                        iv.add(map1);
-                        //1625nm鍐呯
-                        Map<String, Object> map2 = new HashMap<>();
-                        map2.put("u", userId + "");
-                        map2.put("v", pkSlave.getWeaken1625B().toString());
-                        iv.add(map2);
-                        //1625nm琛板噺绯绘暟
-                        Map<String, Object> map3 = new HashMap<>();
-                        double v = (pkSlave.getWeaken1625A() + pkSlave.getWeaken1625B()) / 2;
-                        BigDecimal decimal = BigDecimal.valueOf(v).setScale(3, RoundingMode.HALF_UP);
-                        map3.put("v", String.valueOf(decimal));
-                        cv.add(map3);
-                    } else if (productVo.getInsProduct().getInspectionItemClass().equals("1383nm")) {
-                        //1383nm澶栫
-                        Map<String, Object> map1 = new HashMap<>();
-                        map1.put("u", userId + "");
-                        map1.put("v", pkSlave.getWeaken1383A().toString());
-                        iv.add(map1);
-                        //1383nm鍐呯
-                        Map<String, Object> map2 = new HashMap<>();
-                        map2.put("u", userId + "");
-                        map2.put("v", pkSlave.getWeaken1383B().toString());
-                        iv.add(map2);
-                        //1383nm琛板噺绯绘暟
-                        Map<String, Object> map3 = new HashMap<>();
-                        double v = (pkSlave.getWeaken1383A() + pkSlave.getWeaken1383B()) / 2;
-                        BigDecimal decimal = BigDecimal.valueOf(v).setScale(3, RoundingMode.HALF_UP);
-                        map3.put("v", String.valueOf(decimal));
-                        cv.add(map3);
-                    } else if (productVo.getInsProduct().getInspectionItemClass().equals("1490nm")) {
-                        //1490nm澶栫
-                        Map<String, Object> map1 = new HashMap<>();
-                        map1.put("u", userId + "");
-                        map1.put("v", pkSlave.getWeaken1490A().toString());
-                        iv.add(map1);
-                        //1490nm鍐呯
-                        Map<String, Object> map2 = new HashMap<>();
-                        map2.put("u", userId + "");
-                        map2.put("v", pkSlave.getWeaken1490B().toString());
-                        iv.add(map2);
-                        //1490nm琛板噺绯绘暟
-                        Map<String, Object> map3 = new HashMap<>();
-                        double v = (pkSlave.getWeaken1490A() + pkSlave.getWeaken1490B()) / 2;
-                        BigDecimal decimal = BigDecimal.valueOf(v).setScale(3, RoundingMode.HALF_UP);
-                        map3.put("v", String.valueOf(decimal));
-                        cv.add(map3);
-                    } else {
-                        throw new ErrorException("娌℃湁鎵惧埌璇ユ俯搴︾殑妫�楠岄」鐩�" + productVo.getInsProduct().getInspectionItemClass());
-                    }
-                    result.setInsValue(JSON.toJSONString(iv));//妫�楠屽��
-                    result.setComValue(JSON.toJSONString(cv));//璁$畻鍊�
-                    if (BeanUtil.isEmpty(result.getId())) {
-                        result.setCreateUser(userId);
-                        result.setUpdateUser(userId);
-                        insProductResultMapper.insert(result);
-                    } else {
-                        result.setUpdateUser(userId);
-                        result.setUpdateTime(LocalDateTime.now());
-                        insProductResultMapper.updateById(result);
-                    }
-
-                    InsProduct insProduct = productVo.getInsProduct();
-                    InsProductResult insProductResult = insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, insProduct.getId()));
-                    String comple = insProductResult.getComValue().split(":")[1].split("\"")[1];
-                    //棣栧厛鏌ョ湅娓╁害鏄惁鏄�20搴﹀父娓�
-                    if (!pkMaster.getTemperature().equals("20鈩�(甯告俯)")) {
-                        //濡傛灉涓嶆槸鍏堟煡璇㈡槸鍚︽湁鍊�
-                        int a = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
-                                .eq(InsProduct::getInsSampleId, insSample.getId())
-                                .eq(InsProduct::getInspectionItem, "1")
-                                .eq(InsProduct::getInspectionItemSubclass, "20鈩�(甯告俯)")).stream().map(InsProduct::getInsResult).anyMatch(ObjectUtils::isEmpty) ? 1 : 0;
-                        if (a == 1) {
-                            throw new ErrorException("鍏堣幏鍙�20鈩�(甯告俯)鐨勬楠屽��,鍐嶈幏鍙栧叾浠栨俯搴�" + pkMaster.getSampleCode());
-                        } else {
-                            //璁$畻琛板噺宸�
-                            InsProduct insPro = null;
-                            switch (insProduct.getInspectionItemClass()) {
-                                case "1310nm":
-                                    //鏌ヨ20鈩�(甯告俯)1310nm鐨勮“鍑忕郴鏁�
-                                    try {
-                                        insPro = insProductMapper.selectOne(Wrappers.<InsProduct>lambdaQuery()
-                                                .eq(InsProduct::getInsSampleId, insSample.getId())
-                                                .eq(InsProduct::getInspectionItem, "1")
-                                                .eq(InsProduct::getInspectionItemSubclass, "20鈩�(甯告俯)")
-                                                .eq(InsProduct::getInspectionItemClass, "1310nm")
-                                                .eq(InsProduct::getInsFiberId, productVo.getInsProduct().getInsFiberId()));
-                                    } catch (Exception e) {
-                                        throw new ErrorException("娌℃湁鏌ュ埌20鈩�(甯告俯),1310nm椤圭洰" + productVo.getInsProduct().getInsFiberId() + "鍏夌氦鐨勬楠岄」鐩�");
-                                    }
-                                    break;
-                                case "1550nm":
-                                    //鏌ヨ20鈩�(甯告俯)1550nm鐨勮“鍑忕郴鏁�
-                                    try {
-                                        insPro = insProductMapper.selectOne(Wrappers.<InsProduct>lambdaQuery()
-                                                .eq(InsProduct::getInsSampleId, insSample.getId())
-                                                .eq(InsProduct::getInspectionItem, "1")
-                                                .eq(InsProduct::getInspectionItemSubclass, "20鈩�(甯告俯)")
-                                                .eq(InsProduct::getInspectionItemClass, "1550nm")
-                                                .eq(InsProduct::getInsFiberId, productVo.getInsProduct().getInsFiberId()));
-                                    } catch (Exception e) {
-                                        throw new ErrorException("娌℃湁鏌ュ埌20鈩�(甯告俯),1625nm椤圭洰" + productVo.getInsProduct().getInsFiberId() + "鍏夌氦鐨勬楠岄」鐩�");
-                                    }
-                                    break;
-                                case "1625nm":
-                                    //鏌ヨ20鈩�(甯告俯)1625nm鐨勮“鍑忕郴鏁�
-                                    try {
-                                        insPro = insProductMapper.selectOne(Wrappers.<InsProduct>lambdaQuery()
-                                                .eq(InsProduct::getInsSampleId, insSample.getId())
-                                                .eq(InsProduct::getInspectionItem, "1")
-                                                .eq(InsProduct::getInspectionItemSubclass, "20鈩�(甯告俯)")
-                                                .eq(InsProduct::getInspectionItemClass, "1625nm")
-                                                .eq(InsProduct::getInsFiberId, productVo.getInsProduct().getInsFiberId()));
-                                    } catch (Exception e) {
-                                        throw new ErrorException("娌℃湁鏌ュ埌20鈩�(甯告俯),1625nm椤圭洰" + productVo.getInsProduct().getInsFiberId() + "鍏夌氦鐨勬楠岄」鐩�");
-                                    }
-                                    break;
-                                case "1383nm":
-                                    //鏌ヨ20鈩�(甯告俯)1383nm鐨勮“鍑忕郴鏁�
-                                    try {
-                                        insPro = insProductMapper.selectOne(Wrappers.<InsProduct>lambdaQuery()
-                                                .eq(InsProduct::getInsSampleId, insSample.getId())
-                                                .eq(InsProduct::getInspectionItem, "1")
-                                                .eq(InsProduct::getInspectionItemSubclass, "20鈩�(甯告俯)")
-                                                .eq(InsProduct::getInspectionItemClass, "1383nm")
-                                                .eq(InsProduct::getInsFiberId, productVo.getInsProduct().getInsFiberId()));
-                                    } catch (Exception e) {
-                                        throw new ErrorException("娌℃湁鏌ュ埌20鈩�(甯告俯),1383nm椤圭洰" + productVo.getInsProduct().getInsFiberId() + "鍏夌氦鐨勬楠岄」鐩�");
-                                    }
-                                    break;
-                                case "1490nm":
-                                    //鏌ヨ20鈩�(甯告俯)1490nm鐨勮“鍑忕郴鏁�
-                                    try {
-                                        insPro = insProductMapper.selectOne(Wrappers.<InsProduct>lambdaQuery()
-                                                .eq(InsProduct::getInsSampleId, insSample.getId())
-                                                .eq(InsProduct::getInspectionItem, "1")
-                                                .eq(InsProduct::getInspectionItemSubclass, "20鈩�(甯告俯)")
-                                                .eq(InsProduct::getInspectionItemClass, "1490nm")
-                                                .eq(InsProduct::getInsFiberId, productVo.getInsProduct().getInsFiberId()));
-                                    } catch (Exception e) {
-                                        throw new ErrorException("娌℃湁鏌ュ埌20鈩�(甯告俯),1490nm椤圭洰" + productVo.getInsProduct().getInsFiberId() + "鍏夌氦鐨勬楠岄」鐩�");
-                                    }
-                                    break;
-                            }
-                            InsProductResult insProductRes = insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, insPro.getId()));
-                            double abs = Math.abs(Double.parseDouble(insProductRes.getComValue().split(":")[1].split("\"")[1]) - Double.parseDouble(comple));
-                            BigDecimal scale = BigDecimal.valueOf(abs).setScale(3, RoundingMode.HALF_UP);
-                            insProduct.setLastValue(String.valueOf(scale));
-                            String ask = insProduct.getAsk();
-                            int insResult = 1;
-                            switch (ask.charAt(0)) {
-                                case '<':
-                                    insResult = Double.parseDouble(insProduct.getLastValue()) < Double.parseDouble(ask.substring(1)) ? 1 : 0;
-                                    break;
-                                case '>':
-                                    insResult = Double.parseDouble(insProduct.getLastValue()) > Double.parseDouble(ask.substring(1)) ? 1 : 0;
-                                    break;
-                                case '=':
-                                    insResult = Double.parseDouble(insProduct.getLastValue()) == Double.parseDouble(ask.substring(1)) ? 1 : 0;
-                                    break;
-                                case '鈮�':
-                                    insResult = Double.parseDouble(insProduct.getLastValue()) <= Double.parseDouble(ask.substring(1)) ? 1 : 0;
-                                    break;
-                                case '鈮�':
-                                    insResult = Double.parseDouble(insProduct.getLastValue()) >= Double.parseDouble(ask.substring(1)) ? 1 : 0;
-                                    break;
-                            }
-                            insProduct.setInsResult(insResult);
-                        }
-                    } else {
-                        //濡傛灉鏄�20搴﹀父娓�,闇�瑕佺粰鍑哄悎鏍肩殑缁撹
-                        insProduct.setInsResult(1);//20搴﹀父娓╃殑妫�楠岄」榛樿涓哄悎鏍�
-                    }
-                    insProduct.setUpdateUser(userId);
-                    insProductMapper.updateById(insProduct);
-                    User user = userMapper.selectOne(Wrappers.<User>lambdaQuery().eq(User::getAccount, master.getDetectionPeople()));
-                    if (ObjectUtils.isEmpty(user)) {
-                        throw new ErrorException("lims绯荤粺娌℃湁鎵惧埌璇ョ敤鎴�" + master.getDetectionPeople());
-                    }
-                    insProductUserMapper.insert(new InsProductUser(null, user.getId(), master.getDetectionDate(), insProduct.getId()));
-                }
+        //鏌ユ壘鏍峰搧涓嬫墍鏈夋俯搴﹀惊鐜殑椤圭洰
+        List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
+                .eq(InsProduct::getInsSampleId, insSample.getId())
+                .eq(InsProduct::getState, 1)
+                .isNull(InsProduct::getTemplateId)
+                .isNotNull(InsProduct::getInspectionItemClass));
+        //杩囨护鍑烘墍鏈夊惊鐜鏁板拰娓╁害
+        List<String> collect1 = insProducts.stream().map(InsProduct::getInspectionItem).distinct().collect(Collectors.toList());
+        List<String> collect2 = insProducts.stream().map(InsProduct::getInspectionItemSubclass).distinct().collect(Collectors.toList());
+        for (String s : collect1) {
+            for (String s1 : collect2) {
+                PkMaster master = new PkMaster();
+                master.setEntrustCode(pkMaster.getEntrustCode());
+                master.setSampleCode(pkMaster.getSampleCode());
+                master.setModel(pkMaster.getModel());
+                master.setCycles(s);
+                master.setTemperature(s1);
+                temDataAcquisition(master);
             }
         }
-
-        //缁欐俯搴﹀惊鐜殑妫�楠岄」鐩粦瀹氳澶�
-        InsProduct product = insProductMapper.selectOne(Wrappers.<InsProduct>lambdaQuery()
-                .eq(InsProduct::getState, 1)
-                .eq(InsProduct::getInsSampleId, insSample.getId())
-                .eq(InsProduct::getInspectionItem, "娓╁害寰幆"));
-        if (ObjectUtils.isEmpty(map)) {
-            throw new ErrorException("娌℃湁鎵惧埌瀵瑰簲濮旀墭鍗曚笅璇ユ牱鍝佺殑鐩稿叧娓╁害寰幆妫�楠岄」鐩�");
-        }
-        InsProductResult insProductResult = insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, product.getId()));
-        if(ObjectUtils.isEmpty(insProductResult.getEquipValue())) {
-            List<Map<String, Object>> dv = new ArrayList<>();
-            Map<String, Object> map4 = new HashMap<>();
-            map4.put("v", "JCZX-TX-TT02006");
-            dv.add(map4);
-            Map<String, Object> map5 = new HashMap<>();
-            map5.put("v", "JCZX-TX-TT02001");
-            dv.add(map5);
-            insProductResult.setEquipValue(JSON.toJSONString(dv));
-            List<Map<String, Object>> dn = new ArrayList<>();
-            Map<String, Object> map6 = new HashMap<>();
-            map6.put("v", "姝ュ叆寮忛珮浣庢俯婀跨儹璇曢獙绠�");
-            dn.add(map6);
-            Map<String, Object> map7 = new HashMap<>();
-            map7.put("v", "姝ュ叆寮忛珮浣庢俯璇曢獙绠�");
-            dn.add(map7);
-            insProductResult.setEquipName(JSON.toJSONString(dn));
-            insProductResultMapper.updateById(insProductResult);
-        }
-        return 0;
-    }
-
-    //娓╁害寰幆鏁伴噰鎬讳綋
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public int temDataAcquisition2(PkMaster pkMaster) {
         return 0;
     }
 }

--
Gitblit v1.9.3