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