ソースを参照

last获取当前数据时加判断,超过5分钟则为无效数据。
当天累计产量为0,则稼动率和生产时间都为0

wukai 4 ヶ月 前
コミット
40afaa037b

+ 11 - 0
ruoyi-admin/src/main/java/com/ruoyi/biz/service/impl/ApiServiceImpl.java

@@ -76,6 +76,17 @@ public class ApiServiceImpl implements IApiService {
         efficiency.setBWeight(bw.floatValue());
         efficiency.setATime(calcDay.getOpenTimeA().divide(BigDecimal.valueOf(3600), 2, BigDecimal.ROUND_HALF_UP).floatValue());
         efficiency.setBTime(calcDay.getOpenTimeB().divide(BigDecimal.valueOf(3600), 2, BigDecimal.ROUND_HALF_UP).floatValue());
+        //如果产量累计产量为0,则稼动和生产时间都为0
+        if (efficiency.getALength() == 0f) {
+            efficiency.setAEfficiency(0f);
+            efficiency.setATime(0f);
+        }
+        //如果产量累计产量为0,则稼动和生产时间都为0
+        if (efficiency.getBLength() == 0f) {
+            efficiency.setBEfficiency(0f);
+            efficiency.setBTime(0f);
+        }
+
         indexData.setEfficiency(efficiency);
 
         /*

+ 9 - 2
ruoyi-admin/src/main/java/com/ruoyi/biz/service/impl/AsyncServiceImpl.java

@@ -37,9 +37,16 @@ public class AsyncServiceImpl {
         JSONObject data = jsonObject.getJSONObject("data");
         JSONArray values = data.getJSONArray("values");
 
-        Map<String, Object> dataMap = Tools.json2Map(values, table);
+        JSONArray timestamps = data.getJSONArray("timestamps");
+        Map<String, Object> dataMap = new HashMap<>();
         dataMap.put("device", twinDevice);
-        dataMap.put("total", values.size());
+        if (timestamps.size() > 0 && (System.currentTimeMillis() - new Date(timestamps.getLong(0)).getTime()) > 5 * 60 * 100) {
+            //如果最后一条记录 超过5分钟,则视为无效记录
+            dataMap.put("total", 0);
+        } else {
+            dataMap.put("total", values.size());
+            dataMap.putAll(Tools.json2Map(values, table));
+        }
         return new AsyncResult<>(dataMap);
     }
 

+ 15 - 15
ruoyi-admin/src/main/java/com/ruoyi/order/mapper/TwinOrderMapper.java

@@ -1,20 +1,20 @@
 package com.ruoyi.order.mapper;
 
-import java.util.List;
 import com.ruoyi.order.domain.TwinOrder;
 import com.ruoyi.order.domain.TwinOrderDetail;
 
+import java.util.List;
+
 /**
  * 销售订单信息Mapper接口
- * 
+ *
  * @author ruoyi
  * @date 2024-12-30
  */
-public interface TwinOrderMapper 
-{
+public interface TwinOrderMapper {
     /**
      * 查询销售订单信息
-     * 
+     *
      * @param oderId 销售订单信息主键
      * @return 销售订单信息
      */
@@ -22,7 +22,7 @@ public interface TwinOrderMapper
 
     /**
      * 查询销售订单信息列表
-     * 
+     *
      * @param twinOrder 销售订单信息
      * @return 销售订单信息集合
      */
@@ -30,7 +30,7 @@ public interface TwinOrderMapper
 
     /**
      * 新增销售订单信息
-     * 
+     *
      * @param twinOrder 销售订单信息
      * @return 结果
      */
@@ -38,7 +38,7 @@ public interface TwinOrderMapper
 
     /**
      * 修改销售订单信息
-     * 
+     *
      * @param twinOrder 销售订单信息
      * @return 结果
      */
@@ -46,7 +46,7 @@ public interface TwinOrderMapper
 
     /**
      * 删除销售订单信息
-     * 
+     *
      * @param oderId 销售订单信息主键
      * @return 结果
      */
@@ -54,7 +54,7 @@ public interface TwinOrderMapper
 
     /**
      * 批量删除销售订单信息
-     * 
+     *
      * @param oderIds 需要删除的数据主键集合
      * @return 结果
      */
@@ -62,24 +62,24 @@ public interface TwinOrderMapper
 
     /**
      * 批量删除销售订单明细信息
-     * 
+     *
      * @param oderIds 需要删除的数据主键集合
      * @return 结果
      */
     public int deleteTwinOrderDetailByOderIds(String[] oderIds);
-    
+
     /**
      * 批量新增销售订单明细信息
-     * 
+     *
      * @param twinOrderDetailList 销售订单明细信息列表
      * @return 结果
      */
     public int batchTwinOrderDetail(List<TwinOrderDetail> twinOrderDetailList);
-    
+
 
     /**
      * 通过销售订单信息主键删除销售订单明细信息信息
-     * 
+     *
      * @param oderId 销售订单信息ID
      * @return 结果
      */

BIN
ruoyi-admin/src/main/resources/tpl/tmp.xlsx