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