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/StandardProductListServiceImpl.java | 5 inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java | 2 inspect-server/src/main/resources/mapper/InsOrderMapper.xml | 6 inspect-server/src/main/resources/mapper/InsSampleMapper.xml | 58 -- cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java | 1 cnas-server/src/main/java/com/yuanchu/mom/service/impl/PkMasterServiceImpl.java | 659 +++++++++++++++++++++++----------------- inspect-server/src/main/java/com/yuanchu/mom/dto/SampleProductDto2.java | 2 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java | 5 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java | 173 +++++++--- inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java | 4 inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java | 2 11 files changed, 526 insertions(+), 391 deletions(-) diff --git a/cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java b/cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java index af19300..3b65002 100644 --- a/cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java +++ b/cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java @@ -283,6 +283,7 @@ @ApiOperation(value = "娓╁害寰幆鏁伴噰鎬讳綋") @PostMapping("/temDataAcquisition2") + @ValueAuth public Result<?> temDataAcquisition2(@RequestBody PkMaster pkMaster) { return Result.success(pkMasterService.temDataAcquisition2(pkMaster)); } 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; } } diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java index f6f0ab1..c325808 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java @@ -116,8 +116,8 @@ @ValueClassify("妫�楠屼换鍔�") @ApiOperation(value = "妫�楠屼换鍔℃彁浜�") @PostMapping("/submitPlan") - public Result<?> submitPlan(Integer orderId, String laboratory, Integer verifyUser, String entrustCode, String sampleCode) { - int num = insOrderPlanService.submitPlan(orderId, laboratory, verifyUser, entrustCode, sampleCode); + public Result<?> submitPlan(Integer orderId, String laboratory, Integer verifyUser, String entrustCode) { + int num = insOrderPlanService.submitPlan(orderId, laboratory, verifyUser, entrustCode); return num == 1 ? Result.success() : Result.fail("鎻愪氦澶辫触锛岄儴鍒嗛」鐩繕鏈繘琛屾楠�"); } diff --git a/inspect-server/src/main/java/com/yuanchu/mom/dto/SampleProductDto2.java b/inspect-server/src/main/java/com/yuanchu/mom/dto/SampleProductDto2.java index df0c1ae..d39ae4f 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/dto/SampleProductDto2.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/dto/SampleProductDto2.java @@ -41,7 +41,7 @@ private String inspectionValueType; @ValueTableShow(value = 12, name = "璇曢獙瑕佹眰") - private String ask; + private String tell; @ValueTableShow(value = 13, name = "妫�楠岀粨鏋�") private String lastValue; diff --git a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java index 011666d..7576790 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java @@ -48,6 +48,8 @@ List<Map<String, Object>> getReportModel(@Param("orderId") Integer orderId, @Param("id") Integer id, @Param("laboratory") String laboratory); SampleVo getDetailById(Integer sampleId); + + String selMethodById(Integer sampleId); } diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java b/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java index ba0ffcd..88c2c4a 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java @@ -28,7 +28,7 @@ int verifyPlan(Integer orderId, String laboratory, Integer type, String tell); - int submitPlan(Integer orderId, String laboratory, Integer verifyUser, String entrustCode, String sampleCode); + int submitPlan(Integer orderId, String laboratory, Integer verifyUser, String entrustCode); List<InsProduct> getInsProduct(Integer id, Integer type, String laboratory, HttpServletRequest request); diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java index b7c7873..4d0eb38 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java @@ -3447,6 +3447,11 @@ throw new RuntimeException(e); } } + else { + //澶嶆牳涓嶉�氳繃灏嗘妸澶嶆牳鐨勮礋璐d汉鍘绘帀 + Integer id = insSampleUserMapper.selectOne(Wrappers.<InsSampleUser>lambdaQuery().eq(InsSampleUser::getInsSampleId, orderId).orderByDesc(InsSampleUser::getId).last("limit 1")).getId(); + insSampleUserMapper.deleteById(id); + } return 1; } 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); // 鍏抽棴娴� diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardProductListServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardProductListServiceImpl.java index 92214b4..348afe6 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardProductListServiceImpl.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardProductListServiceImpl.java @@ -1,5 +1,6 @@ package com.yuanchu.mom.service.impl; +import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -20,6 +21,7 @@ import com.yuanchu.mom.service.StandardProductListService2; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.*; @@ -72,6 +74,8 @@ list = standardProductListMapper.selectDetail2(insSample.getStandardMethodListId(), 1, tree1); } } + String[] split1 = insSample.getFactory().split(" - "); + list = list.stream().filter(list1 -> list1.getSample().equals(split1[3])).collect(Collectors.toList()); list = list.stream().filter(a -> { try { if (a.getSection() != null && !Objects.equals(a.getSection(), "")) { @@ -138,6 +142,7 @@ } @Override + @Transactional(rollbackFor = Exception.class) public Map<String, Object> selectStandardProductListByMethodId(Integer id, String tree, Integer page) { String[] trees = tree.split(" - "); try{ diff --git a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml index 70c2bbf..9aa7a27 100644 --- a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml +++ b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml @@ -133,7 +133,7 @@ from ( select i.id,isa.sample_code,isa.sample,isa.model,isa.ins_state,ip.state,ip.unit,ip.inspection_item,ip.inspection_item_subclass, - ip.son_laboratory,ip.inspection_item_type,ip.inspection_value_type,ip.ask,ip.`last_value`,ip.ins_result,ipr.equip_value + ip.son_laboratory,ip.inspection_item_type,ip.inspection_value_type,ip.tell,ip.`last_value`,ip.ins_result,ipr.equip_value from ins_sample isa left join ins_order i on isa.ins_order_id = i.id left join ins_product ip on isa.id = ip.ins_sample_id @@ -193,7 +193,7 @@ c.price, c.cost, c.inspection_item, - cus.company, + i.company, u.`name`, i.create_user, c.ins_sample_id @@ -406,7 +406,7 @@ c.price, c.cost, c.inspection_item, - cus.company, + i.company, u.`name`, i.create_user, c.ins_sample_id, diff --git a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml index 6686c39..ade36d6 100644 --- a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml +++ b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml @@ -56,7 +56,7 @@ ORDER BY ins_sample_id, id ) isu ON isu.ins_sample_id = io.id LEFT JOIN ins_product ip ON ip.ins_sample_id = isa.id - LEFT JOIN user ON isu.user_id = user.id + LEFT JOIN user ON isu.user_id = user.id WHERE io.state = 1 # AND io.ins_state != 5 @@ -94,41 +94,6 @@ select * from( SELECT a.*,ios.ins_state,ios.verify_tell,isu2.order_user_id,<!--(ios.verify_user = #{userId})--> verify_user - <!--FROM - ( - SELECT - io.id, - io.entrust_code, - io.type, - io.appointed, - io.send_time, - io.sample_type, - isu.user_id, - ip.son_laboratory, - io.ins_time - FROM - ins_order io - LEFT JOIN ins_sample isa ON isa.ins_order_id = io.id - LEFT JOIN ( SELECT * FROM ins_sample_user GROUP BY ins_sample_id, user_id ) isu ON isu.ins_sample_id = io.id - LEFT JOIN ins_product ip ON ip.ins_sample_id = isa.id - WHERE - io.state = 1 - # AND io.ins_state != 5 - and send_time is not null - and (isu.user_id = #{userId} OR isu.user_id is NULL) - GROUP BY - ip.son_laboratory, - io.id - ) a - LEFT JOIN ins_order_state ios ON ios.ins_order_id = a.id AND ios.laboratory = a.son_laboratory - left join (SELECT td.user_id order_user_id, td.ins_sample_id FROM ins_sample_user td,(SELECT max(id) id FROM - ins_sample_user GROUP BY ins_sample_id) md where td.id = md.id and user_id = #{userId}) isu2 on - isu2.ins_sample_id = a.id - ORDER BY - a.user_id DESC, - a.type DESC, - a.id - ) b--> FROM ( SELECT @@ -157,7 +122,7 @@ ORDER BY ins_sample_id, id ) isu ON isu.ins_sample_id = io.id LEFT JOIN ins_product ip ON ip.ins_sample_id = isa.id - LEFT JOIN user ON isu.user_id = user.id + LEFT JOIN user ON isu.user_id = user.id WHERE io.state = 1 # AND io.ins_state != 5 @@ -185,7 +150,7 @@ a.type DESC, a.id ) b - where ins_state is not null)A + where ins_state is not null )A <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> ${ew.customSqlSegment} </if> @@ -241,7 +206,7 @@ and state = 1 and ins_fiber_id is null and ins_fibers_id is null - and isa.sample_code NOT REGEXP '/' + and isa.sample_code NOT REGEXP '/' </select> <select id="getInsOrderAndSample" resultMap="sampleDto"> select isa.*, @@ -332,7 +297,8 @@ method, man_day, bsm, - tell as ask, + ask, + tell , `last_value`, ip.ins_result ip_ins_result, state, @@ -350,7 +316,7 @@ left join ins_product ip on isa.id = ip.ins_sample_id left join ins_product_result ipr on ip.id = ipr.ins_product_id where ins_order_id = #{id} - and ip.standard_method_list_id is not null + and ip.standard_method_list_id is not null and state = 1 </select> @@ -431,7 +397,7 @@ and ip.son_laboratory = #{laboratory} and ins_fiber_id is null and ins_fibers_id is null - and standard_method_list_id is not null + and standard_method_list_id is not null </select> <select id="getInsProduct2" resultMap="product"> select ip.id ip_id, @@ -671,6 +637,12 @@ code methodName from ins_sample is2 inner join standard_method sm on standard_method_list_id = sm.id - where is2.id=#{sampleId} + where is2.id = #{sampleId} + </select> + + <select id="selMethodById" resultType="java.lang.String"> + select code + from standard_method + where id = (select standard_method_list_id from ins_sample where id = #{sampleId}) </select> </mapper> -- Gitblit v1.9.3