From 4dbab0c9584c923f12c7478131f0996dbb3bb7fe Mon Sep 17 00:00:00 2001 From: zhuguifei <zhuguifei@zhuguifeideiMac.local> Date: 星期一, 25 八月 2025 13:45:31 +0800 Subject: [PATCH] Merge branch 'master' of http://lanpucloud.cn:1111/r/herb --- jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java | 47 ++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 44 insertions(+), 3 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 abf5f3d..17a0360 100755 --- 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 @@ -35,6 +35,8 @@ import org.springframework.transaction.annotation.Transactional; import java.text.DecimalFormat; +import java.time.LocalDateTime; +import java.time.ZoneId; import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.locks.ReentrantLock; @@ -216,8 +218,12 @@ orderVo.setOrderStatus(realTimeDataVo.getWorkorder_status()); orderVo.setEqp_status(realTimeDataVo.getEqp_status()); // orderVo.setEqp_state(realTimeDataVo.getEqp_state()); - orderVo.setWarning(realTimeDataVo.getEqp_warning()); - orderVo.setFault(realTimeDataVo.getEqp_fault()); + if(realTimeDataParentVo.getFault()!=null && StringUtils.isNotEmpty(realTimeDataParentVo.getFault().getWarning())){ + orderVo.setWarning(realTimeDataParentVo.getFault().getWarning()); + } + if(realTimeDataParentVo.getFault()!=null && StringUtils.isNotEmpty(realTimeDataParentVo.getFault().getError())){ + orderVo.setFault(realTimeDataParentVo.getFault().getError()); + } orderVo.setLevel(realTimeDataVo.getLevel()); DryOrderTrendVo trendVo = new DryOrderTrendVo(realTimeDataVo); // 2.2 淇濆瓨宸ュ崟鍚按鐜囧彉鍖� 鎴� 閲嶉噺鍙樺寲 @@ -225,6 +231,15 @@ saveOrderTrendVo(trendVo, orderVo); orderVo.setTrendVo(trendVo); orderVo.getBellowsTemp().put(realTimeDataVo.getTime3(), realTimeDataVo.getTemp2()); + + if (realTimeDataParentVo.getFault() != null) { + if (realTimeDataParentVo.getFault().getError() != null) { + orderVo.setFault(realTimeDataParentVo.getFault().getError()); + } + if (realTimeDataParentVo.getFault().getWarning() != null) { + orderVo.setWarning(realTimeDataParentVo.getFault().getWarning()); + } + } // 2.3 鏇存柊鍒皉edis缂撳瓨 redisUtil.hset(CacheConstants.RedisKeyEnum.WORK_ORDER.getCode(), @@ -414,6 +429,29 @@ ReentrantLock orderLock = getLock(realTimeDataVo.getTenantid() + "", "order"); orderLock.lock(); try { + //鏍规嵁绉熸埛id 鍜� 鑽潗id 妫�鏌ユ渶杩戞槸鍚﹀瓨鍦ㄥ伐鍗� TODO 楠岃瘉 + LambdaQueryWrapper<DryOrder> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(DryOrder::getHerbId, herbFormula.getId()); + queryWrapper.eq(DryOrder::getTenantId, realTimeDataVo.getTenantid()); + queryWrapper.orderByDesc(DryOrder::getOrderTime); + queryWrapper.last("LIMIT 1"); + // 1 鏌ヨ鏁版嵁搴� + DryOrder one = dryOrderService.getOne(queryWrapper); + if(one!=null){ + Date orderDate = one.getOrderTime(); + //30S鍐呬笉鍏佽鏂板缓宸ュ崟锛岄伩鍏嶉噸澶� + LocalDateTime orderTime = orderDate.toInstant() + .atZone(ZoneId.systemDefault()) + .toLocalDateTime(); + + LocalDateTime now = LocalDateTime.now(); + long secondsBetween = java.time.Duration.between(orderTime, now).getSeconds(); + boolean b = secondsBetween <= 30; + if(b){ + return BeanUtil.toBean(one, DryOrderVo.class); + } + } + // 鍒涘缓鏂板伐鍗� orderVo = new DryOrderVo(realTimeDataVo); orderVo.setHerbId(herbFormula.getId()); @@ -478,7 +516,10 @@ LambdaQueryWrapper<DryHerbFormula> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(DryHerbFormula::getTenantId, realTimeDataVo.getTenantid()); queryWrapper.eq(DryHerbFormula::getName, realTimeDataVo.getName()); + queryWrapper.orderByDesc(DryHerbFormula::getCreateTime); + queryWrapper.last("LIMIT 1"); DryHerbFormula one = dryHerbFormulaService.getOne(queryWrapper); + if (one == null) { one = new DryHerbFormula(realTimeDataVo); DryEquipment dryEquipment = equipmentService.selectByTenantIdEquipmentId(realTimeDataVo.getTenantid() + "", realTimeDataVo.getMachineid()); @@ -548,7 +589,7 @@ // 鑾峰彇宸ュ崟 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) { + if (order != null && order.getDetailList()!=null && !order.getDetailList().isEmpty()) { // 璁$畻骞茬嚗鏁堢巼锛岀敤浜庡姣� DryOrderTrendVo dryOrderTrendVo = order.getDetailList().get(order.getDetailList().size() - 1); double v = order.getOriginWeight() - dryOrderTrendVo.getWeight(); -- Gitblit v1.9.3