From e2a02c09b9d087a49ae5dd9f70856967390237de Mon Sep 17 00:00:00 2001 From: bsw215583320 <baoshiwei121@163.com> Date: 星期五, 01 十一月 2024 16:54:23 +0800 Subject: [PATCH] 兼容机台自建配方,实时数据通过mqtt转发 --- jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java | 111 ++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 68 insertions(+), 43 deletions(-) diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java index 5a5b52f..5c6d723 100644 --- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java +++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java @@ -49,6 +49,9 @@ private IDryHerbService herbService; @Autowired + private IDryHerbFormulaService dryHerbFormulaService; + + @Autowired private IDryEquipmentService equipmentService; @Autowired @@ -57,8 +60,6 @@ @Autowired private IDryProdRecordService prodRecordService; - @Autowired - private CommonAPI commonAPI; private String token; @@ -96,6 +97,10 @@ // 鏍规嵁绉熸埛id鍜屽伐鍗曞彿鏌ヨ鏁版嵁搴撴槸鍚︽湁璁板綍锛屾湁鍒欒繑鍥烇紝娌℃湁鍒欐柊澧炰竴鏉″啀杩斿洖 orderVo = getOrSaveDryOrderVoDB(realTimeDataVo); } + if (orderVo == null) { + log.error("宸ュ崟涓嶅瓨鍦紝宸ュ崟鍙凤細"+realTimeDataVo.getWorkorder()+",璁惧锛�" + realTimeDataVo.getMachineid() +",鑽潗锛�" + realTimeDataVo.getName()); + return Result.error("宸ュ崟涓嶅瓨鍦�"); + } // 2 鏇存柊宸ュ崟瀹炴椂鏁版嵁 // 2.1 灏嗗伐鍗曚腑鐨勬暟鎹浛鎹负鏈�鏂版暟鎹� @@ -125,7 +130,7 @@ orderVo.setState_valve(realTimeDataVo.getState_valve()); orderVo.setOrderStatus(realTimeDataVo.getWorkorder_status()); orderVo.setEqp_status(realTimeDataVo.getEqp_status()); - orderVo.setEqp_state(realTimeDataVo.getEqp_state()); +// orderVo.setEqp_state(realTimeDataVo.getEqp_state()); orderVo.setWarning(realTimeDataVo.getEqp_warning()); orderVo.setFault(realTimeDataVo.getEqp_fault()); orderVo.setLevel(realTimeDataVo.getLevel()); @@ -231,17 +236,20 @@ * @param realTimeDataVo * @return */ - @NotNull private DryOrderVo saveNewOrder(RealTimeDataVo realTimeDataVo) { DryOrderVo orderVo; // 鏌ヨ鑽潗 - DryHerb herb = queryHerbByIndexTenant(realTimeDataVo); + DryHerbFormula herbFormula = queryHerbByIndexTenant(realTimeDataVo); // 鏌ヨ璁惧 DryEquipment equ = queryEquipmentByCodeTenant(realTimeDataVo); // 鍒涘缓鏂板伐鍗� orderVo = new DryOrderVo(realTimeDataVo); - orderVo.setHerbId(herb.getId()); + if (herbFormula == null) { + log.error("鏈壘鍒拌嵂鏉愶細"+realTimeDataVo.getIndex() +","+realTimeDataVo.getName() +",鏈哄彴锛�" + realTimeDataVo.getMachineid()); + return null; + } + orderVo.setHerbId(herbFormula.getId()); orderVo.setEquId(equ.getId()); DryOrder dryOrder = BeanUtil.toBean(orderVo, DryOrder.class); boolean save = dryOrderService.save(dryOrder); @@ -271,14 +279,16 @@ * @param realTimeDataVo * @return */ - private DryHerb queryHerbByIndexTenant(RealTimeDataVo realTimeDataVo) { - LambdaQueryWrapper<DryHerb> queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(DryHerb::getTenantId, realTimeDataVo.getTenantid()); - queryWrapper.eq(DryHerb::getCode, realTimeDataVo.getIndex()); - DryHerb one = herbService.getOne(queryWrapper); + private DryHerbFormula queryHerbByIndexTenant(RealTimeDataVo realTimeDataVo) { + LambdaQueryWrapper<DryHerbFormula> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(DryHerbFormula::getTenantId, realTimeDataVo.getTenantid()); + queryWrapper.eq(DryHerbFormula::getName, realTimeDataVo.getName()); + DryHerbFormula one = dryHerbFormulaService.getOne(queryWrapper); if (one == null) { - one = new DryHerb(realTimeDataVo); - herbService.save(one); + one = new DryHerbFormula(realTimeDataVo); + DryEquipment dryEquipment = equipmentService.selectByTenantIdEquipmentId(realTimeDataVo.getTenantid() + "", realTimeDataVo.getMachineid()); + one.setEqpType(dryEquipment.getType()); + dryHerbFormulaService.save(one); } return one; } @@ -317,47 +327,57 @@ public Result<?> queryMachineRealTImeData(RealTimeDataVo realTimeDataVo) { TenantContext.setTenant(realTimeDataVo.getTenantid()+""); - + // 鏌ヨ鎵�鏈夋満鍙�,鏌ヨ璇彞缁勮 LambdaQueryWrapper<DryEquipment> queryWrapper = new LambdaQueryWrapper<>(); - - queryWrapper.eq(DryEquipment::getTenantId, realTimeDataVo.getTenantid()); + queryWrapper.eq(DryEquipment::getTenantId, realTimeDataVo.getTenantid()); queryWrapper.eq(DryEquipment::getEnable, "Y"); queryWrapper.orderByAsc(DryEquipment::getCode); - + // 鏌ヨ鎵�鏈夋満鍙� List<DryEquipment> dryEquipments = equipmentService.list(queryWrapper); + // 鏈哄彴鍒楄〃锛岀敤浜庢晥鐜囧姣� List<String> list = new ArrayList<>(); - + // 鏁堢巼鍒楄〃锛岀敤浜庢晥鐜囧姣� List<Double> dList = new ArrayList<>(); + // 鏌ヨ褰撳墠鏈哄彴宸ュ崟 DryOrderVo orderVo = (DryOrderVo) redisUtil.hget(CacheConstants.RedisKeyEnum.WORK_ORDER.getCode(), realTimeDataVo.getTenantid() + "_" + realTimeDataVo.getMachineid()); - try { + try { + // 濡傛灉鏈夊彲鐢ㄦ満鍙� + if (dryEquipments != null && dryEquipments.size() > 0) { + // 鏌ヨ鍏跺畠鏈哄彴宸ュ崟 + dryEquipments.stream().forEach(item -> { + // 鑾峰彇宸ュ崟 + DryOrderVo order = (DryOrderVo) redisUtil.hget(CacheConstants.RedisKeyEnum.WORK_ORDER.getCode(), realTimeDataVo.getTenantid() + "_" + item.getCode()); + list.add(item.getName().substring(0, item.getName().indexOf('#')+1)); + if (order != null) { + // 璁$畻骞茬嚗鏁堢巼锛岀敤浜庡姣� + DryOrderTrendVo dryOrderTrendVo = order.getDetailList().get(order.getDetailList().size() - 1); + double v = order.getOriginWeight() - dryOrderTrendVo.getWeight(); - - if (dryEquipments != null && dryEquipments.size() > 0) { - dryEquipments.stream().forEach(item -> { - DryOrderVo order = (DryOrderVo) redisUtil.hget(CacheConstants.RedisKeyEnum.WORK_ORDER.getCode(), realTimeDataVo.getTenantid() + "_" + item.getCode()); - list.add(item.getName().substring(0, item.getName().indexOf('#')+1)); - if (order != null) { - DryOrderTrendVo dryOrderTrendVo = order.getDetailList().get(order.getDetailList().size() - 1); - double v = order.getOriginWeight() - dryOrderTrendVo.getWeight(); - - if (v > 0 && dryOrderTrendVo.getTotalTime()>0) { - DecimalFormat df = new DecimalFormat("#.00"); - dList.add(Double.valueOf(df.format(v / dryOrderTrendVo.getTotalTime() * 60))); - } else { - dList.add(50d); - } - + if (v > 0 && dryOrderTrendVo.getTotalTime()>0) { + DecimalFormat df = new DecimalFormat("#.00"); + dList.add(Double.valueOf(df.format(v / dryOrderTrendVo.getTotalTime() * 60))); + } else { + dList.add(50d); } + + } else { + // 濡傛灉娌℃湁鐢熶骇锛屾晥鐜囩疆0 dList.add(0d); - }); - } - if (orderVo != null) { - orderVo.setCompEqpNum(list); - orderVo.setCompEqpEffic(dList); - } - }catch (Exception e) { - e.printStackTrace(); + } + + }); } + + if (orderVo != null) { + // 灏嗘晥鐜囧姣旀暟鎹斁鍏ュ綋鍓嶆満鍙板疄鏃舵暟鎹腑杩斿洖 + orderVo.setCompEqpNum(list); + orderVo.setCompEqpEffic(dList); + // 鏌ヨ杩戝崄娆℃晥鐜囧拰鑳借兘鑰楀钩鍧� + dryOrderService.queryRecentOrderAvg(orderVo); + } + }catch (Exception e) { + e.printStackTrace(); + } return Result.ok(orderVo); } @@ -425,4 +445,9 @@ //redisUtil.get(CacheConstants.RedisKeyEnum.WORK_ORDER.getCode() return Result.OK(orderVo); } + + @Override + public Result<?> statisticsDataHandle(StatisticsDataVo statsDataVo) { + return null; + } } -- Gitblit v1.9.3