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