From 53234d6959c5fdeb4dec544ad32158b65a6d685e Mon Sep 17 00:00:00 2001
From: bsw215583320 <baoshiwei121@163.com>
Date: 星期一, 27 五月 2024 14:45:28 +0800
Subject: [PATCH] 机台监控界面效率能消耗对比的标准值,取近十次平均
---
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryOrderService.java | 2
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java | 72 +++++++++++++-----------
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryRecentOrderAvg.java | 10 +++
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/common/CacheConstants.java | 4 +
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/xml/DryOrderMapper.xml | 9 +++
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/DryOrderMapper.java | 3 +
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryOrderVo.java | 4 +
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryOrderServiceImpl.java | 31 +++++++++
8 files changed, 99 insertions(+), 36 deletions(-)
diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/common/CacheConstants.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/common/CacheConstants.java
index 8175a1d..2aa4209 100644
--- a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/common/CacheConstants.java
+++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/common/CacheConstants.java
@@ -12,7 +12,9 @@
WORK_ORDER("workOrder","宸ュ崟MAP"),
- EQP_MAP("eqpMap", "璁惧MAP,key:tenantId+equipmentId");
+ EQP_MAP("eqpMap", "璁惧MAP,key:tenantId+equipmentId"),
+
+ NEAR_TEN("nearTen", "鏈�杩戝崄娆℃晥鐜囧拰娑堣�楀钩鍧�,key:tenantId+orderCode+equipmentId");
private String code;
private String text;
diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryOrderVo.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryOrderVo.java
index 42fb313..b7d2b23 100644
--- a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryOrderVo.java
+++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryOrderVo.java
@@ -175,6 +175,10 @@
*/
private Double reduce;
+
+ /**骞冲潎鏁堢巼**/
+ private Double efficAvg;
+
/**骞冲潎姹借��**/
private Double steamAvg;
diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryRecentOrderAvg.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryRecentOrderAvg.java
new file mode 100644
index 0000000..b2400d5
--- /dev/null
+++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryRecentOrderAvg.java
@@ -0,0 +1,10 @@
+package org.jeecg.modules.dry.vo;
+
+import lombok.Data;
+
+@Data
+public class DryRecentOrderAvg {
+ private Double efficAvg;
+ private Double steamAvg;
+ private Double wattAvg;
+}
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/DryOrderMapper.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/DryOrderMapper.java
index 5edd90c..2fd7212 100644
--- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/DryOrderMapper.java
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/DryOrderMapper.java
@@ -3,6 +3,7 @@
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.dry.entity.DryOrder;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.dry.vo.DryRecentOrderAvg;
import java.util.List;
@@ -15,4 +16,6 @@
public interface DryOrderMapper extends BaseMapper<DryOrder> {
List<String> queryMonthOverview(@Param("month") String month, @Param("tenantId") int tenantId);
+
+ DryRecentOrderAvg queryRecentOrderAvg(@Param("tenantId") Integer tenantId, @Param("herbName") String herbName);
}
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/xml/DryOrderMapper.xml b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/xml/DryOrderMapper.xml
index ce47adb..64f8841 100644
--- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/xml/DryOrderMapper.xml
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/xml/DryOrderMapper.xml
@@ -8,4 +8,13 @@
and tenant_id = #{tenantId} group by orderTime order by orderTime desc
</select>
+ <select id="queryRecentOrderAvg" resultType="org.jeecg.modules.dry.vo.DryRecentOrderAvg">
+ select avg(a.xiaolv) efficAvg,avg(a.zq) steamAvg,avg(a.dn) wattAvg from (
+ select (origin_weight-yield)/dry_time*60 xiaolv,
+ steam/(origin_weight-yield) zq,
+ watt/(origin_weight-yield) dn
+ from dry_order where tenant_id = #{tenantId} and herb_name = #{herbName}
+ and dry_time > 0 order by order_time desc limit 10
+ ) a
+ </select>
</mapper>
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryOrderService.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryOrderService.java
index 6fc915a..455da56 100644
--- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryOrderService.java
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryOrderService.java
@@ -19,4 +19,6 @@
void saveRealTimeData(DryOrderVo orderVo);
List<String> queryMonthOverview(String month, int tenantId);
+
+ void queryRecentOrderAvg(DryOrderVo orderVo);
}
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryOrderServiceImpl.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryOrderServiceImpl.java
index d2badb2..a14f1e9 100644
--- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryOrderServiceImpl.java
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryOrderServiceImpl.java
@@ -1,15 +1,20 @@
package org.jeecg.modules.dry.service.impl;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.util.RedisUtil;
+import org.jeecg.modules.dry.common.CacheConstants;
import org.jeecg.modules.dry.entity.DryOrder;
import org.jeecg.modules.dry.mapper.DryOrderMapper;
import org.jeecg.modules.dry.service.IDryOrderService;
import org.jeecg.modules.dry.vo.DryOrderVo;
+import org.jeecg.modules.dry.vo.DryRecentOrderAvg;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-
import java.util.List;
+
+
/**
* @Description: 骞茬嚗宸ュ崟
@@ -21,6 +26,8 @@
@Service
public class DryOrderServiceImpl extends ServiceImpl<DryOrderMapper, DryOrder> implements IDryOrderService {
+ @Autowired
+ private RedisUtil redisUtil;
@Override
public void saveRealTimeData(DryOrderVo orderVo) {
log.info("淇濆瓨瀹炴椂鏁版嵁锛�" + orderVo.toString());
@@ -31,4 +38,24 @@
public List<String> queryMonthOverview(String month, int tenantId) {
return baseMapper.queryMonthOverview(month, tenantId);
}
+
+ @Override
+ public void queryRecentOrderAvg(DryOrderVo orderVo) {
+ DryRecentOrderAvg recentOrderAvg = (DryRecentOrderAvg) redisUtil.hget(CacheConstants.RedisKeyEnum.NEAR_TEN.getCode(), orderVo.getTenantId() + "_" + orderVo.getCode() + "_" + orderVo.getEquId());
+ if (recentOrderAvg != null) {
+ orderVo.setEfficAvg(recentOrderAvg.getEfficAvg());
+ orderVo.setSteamAvg(recentOrderAvg.getSteamAvg());
+ orderVo.setWattAvg(recentOrderAvg.getWattAvg());
+ } else {
+ DryRecentOrderAvg orderAvg = baseMapper.queryRecentOrderAvg(orderVo.getTenantId(), orderVo.getHerbName());
+ if(orderAvg != null) {
+ redisUtil.hset(CacheConstants.RedisKeyEnum.NEAR_TEN.getCode(), orderVo.getTenantId() + "_" + orderVo.getCode() + "_" + orderVo.getEquId(),orderAvg,60*10);
+ orderVo.setEfficAvg(orderAvg.getEfficAvg());
+ orderVo.setSteamAvg(orderAvg.getSteamAvg());
+ orderVo.setWattAvg(orderAvg.getWattAvg());
+ }
+
+ }
+
+ }
}
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..fa4ac48 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
@@ -57,8 +57,6 @@
@Autowired
private IDryProdRecordService prodRecordService;
- @Autowired
- private CommonAPI commonAPI;
private String token;
@@ -317,47 +315,55 @@
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);
}
- dList.add(0d);
- });
- }
- if (orderVo != null) {
- orderVo.setCompEqpNum(list);
- orderVo.setCompEqpEffic(dList);
- }
- }catch (Exception e) {
- e.printStackTrace();
+
+ }
+ // 濡傛灉娌℃湁鐢熶骇锛屾晥鐜囩疆0
+ dList.add(0d);
+ });
}
+
+ if (orderVo != null) {
+ // 灏嗘晥鐜囧姣旀暟鎹斁鍏ュ綋鍓嶆満鍙板疄鏃舵暟鎹腑杩斿洖
+ orderVo.setCompEqpNum(list);
+ orderVo.setCompEqpEffic(dList);
+ // 鏌ヨ杩戝崄娆℃晥鐜囧拰鑳借兘鑰楀钩鍧�
+ dryOrderService.queryRecentOrderAvg(orderVo);
+ }
+ }catch (Exception e) {
+ e.printStackTrace();
+ }
return Result.ok(orderVo);
}
--
Gitblit v1.9.3