From 2871d648f1b89453e88eb9180f45fde124ff0391 Mon Sep 17 00:00:00 2001
From: zhuguifei <zhuguifei@zhuguifeideiMac.local>
Date: 星期四, 17 七月 2025 16:37:40 +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 | 226 +++++++++++++++++++------
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryEquipmentServiceImpl.java | 14 +
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/RealTimeDataParentVo.java | 16 +
jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/CommonCacheConstant.java | 3
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryRealTimeDataService.java | 8
jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/MqttConstant.java | 1
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/RealTimeDataVo.java | 71 -------
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/RealTimeFaultVo.java | 11 +
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/RealTimeProdVo.java | 68 +++++++
jeecg-server-cloud/jeecg-cloud-nacos/src/main/resources/application.yml | 4
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryEquipmentService.java | 2
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mqtt/MqttSampleCallback.java | 16 +
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/RealTimeReportVo.java | 56 ++++++
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java | 33 +++
14 files changed, 394 insertions(+), 135 deletions(-)
diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/CommonCacheConstant.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/CommonCacheConstant.java
index 9858fa0..9009e28 100644
--- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/CommonCacheConstant.java
+++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/CommonCacheConstant.java
@@ -5,4 +5,7 @@
String SYS_CACHE_TENANT = "sys:cache:tenant";
//redis缂撳瓨鍚勭鎴蜂笅璁惧淇℃伅
String DRY_CACHE_TENANT_EQUS = "dry:cache:tenant::equs";
+
+ // redis缂撳瓨鍚勭鎴蜂笅璁惧淇℃伅鍒楄〃
+ String DRY_CACHE_TENANT_EQUS_LIST = "dry:cache:tenant:equsList";
}
diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/MqttConstant.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/MqttConstant.java
index f4c85dd..6aa48fe 100644
--- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/MqttConstant.java
+++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/MqttConstant.java
@@ -77,6 +77,7 @@
String TENANT_UP_PREFIX = "tenant/up";
String TENANT_UP_PREFIX_REALTIME_DATA = TENANT_UP_PREFIX + "/realTime/data";
+ String TENANT_UP_PREFIX_REALTIME_DATA_EQP = TENANT_UP_PREFIX + "/realTime/data/eqp";
String TENANT_UP_PREFIX_FAULT_DATA = TENANT_UP_PREFIX + "/fault/data";
String TENANT_UP_PREFIX_REAL_FAULT_DATA = TENANT_UP_PREFIX + "/real/fault/data";
diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/RealTimeDataParentVo.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/RealTimeDataParentVo.java
new file mode 100644
index 0000000..dc82272
--- /dev/null
+++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/RealTimeDataParentVo.java
@@ -0,0 +1,16 @@
+package org.jeecg.modules.dry.vo;
+
+import lombok.Data;
+
+@Data
+public class RealTimeDataParentVo {
+ private RealTimeDataVo realTime;
+ private RealTimeReportVo report;
+ private RealTimeFaultVo fault;
+ /**宸ュ崟鍙�*/
+ private String workorder;
+ /**绉熸埛ID*/
+ private Integer tenantid;
+ /**璁惧缂栧彿*/
+ private String machineid;
+}
diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/RealTimeDataVo.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/RealTimeDataVo.java
index 18aece4..72046db 100755
--- a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/RealTimeDataVo.java
+++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/RealTimeDataVo.java
@@ -94,23 +94,6 @@
private Integer ai_time;
- // private List<DryEquipment> eqpCodes;
-
-
- /**鎺ョ鐘舵�� 0锛氳嚜鍔� 1锛氭墜鍔� */
- private Integer state_auto;
-
- /**椋庣鐘舵�� 0锛氫綆浣嶉潤姝� 1锛氶珮浣嶉潤姝� 2锛氭鍦ㄤ笂鍗� 3锛氭鍦ㄤ笅闄�*/
- private Integer state_windbox;
-
- /**婊氱瓛鐘舵�� 0锛氶珮浣嶉潤姝� 1锛氫綆浣嶉潤姝� 2锛氭鍦ㄤ笂鍗� 3锛氭鍦ㄤ笅闄� 4锛氭杞� 5锛氬弽杞�*/
- private Integer state_roller;
-
- /**椋庢満鐘舵�� 0锛氬叧闂� 1锛氬紑鍚�*/
- private Integer state_fan;
-
- /**钂告苯闃�鐘舵�� 0锛氬叧闂� 1锛氬紑鍚�*/
- private Integer state_valve;
/**宸ュ崟鐘舵��*/
private Integer workorder_status;
@@ -128,61 +111,7 @@
private String level;
- /**璁惧鏁呴殰**/
- // private String fault;
- /**---------------------鐢熶骇璁板綍鐩稿叧瀛楁瀹氫箟---s-------------------------*/
-
- private Boolean report_flag; // 鎻愪氦鏍囧織
-
- private String report_head_name; // 鍝佸悕
- private String report_head_batch ; //鎵规
- private String report_head_num ; //鏁伴噺--16妗�/355.8Kg
- private String report_head_machine ; //璁惧
- private String report_head_accepter; //鎺ユ枡浜�
- @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
- private Date report_head_date ; //鐢熶骇鏃ユ湡
- private String report_head_leader ; //鐝粍闀�
- private String report_head_techer ; //宸ヨ壓鍛�
- //妫�鏌�
- private Boolean report_check_field ; //鐢熶骇鐜板満
- private Boolean report_check_file ; //鎵ц鏂囦欢
- private Boolean report_check_tag ; //鐗╂枡鏍囩ず
- private Boolean report_check_tool ; //绉伴噺鍣ㄥ叿
- private String report_check_man ; //妫�鏌ヤ汉
- private Boolean report_check_status; //妫�鏌ユ儏鍐�
- private String report_check_qa ; //QA
- private String report_check_record ; //寮傚父璁板綍
- //鐢熶骇
- private Boolean report_product_view ; //澶栬妫�鏌�
- private Boolean report_product_wind ; //鍚归
- private Boolean report_product_sun ; //鏅�
- private Boolean report_product_low_dry ; //浣庢俯骞茬嚗
- private Boolean report_product_dry ; //骞茬嚗
- private String report_product_start ; //寮�濮嬫椂闂�
- private String report_product_end ; //缁撴潫鏃堕棿
- private Integer report_product_total ; //骞茬嚗鎬绘椂闂�
- private Boolean report_product_check ; //骞茬嚗妫�鏌�
- private String report_product_man1 ; //鎿嶄綔浜�
- private String report_product_man2 ; //澶嶆牳浜�
- private Double report_product_weight ; //鎿嶄綔鍚庨噸閲�
- private Double report_product_waste ; //搴熸枡鏁伴噺
- private Double report_product_use ; //鏀剁巼
- private String report_product_qa ; //QA
- //娓呭満
- private Boolean report_clean_machine ; //璁惧娓呯悊
- private Boolean report_clean_waste ; //搴熸枡娓呯悊
- private Boolean report_clean_tool ; //宸ュ叿娓呯悊
- private Boolean report_clean_door ; //闂ㄧ獥娓呯悊
- private Boolean report_clean_box ; //绠变綋娓呯悊
- private Boolean report_clean_record ; //鐢熶骇璁板綍娓呯悊
- @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
- private Date report_clean_date ; //娓呭満鏃ユ湡
- private String report_clean_man ; //娓呭満浜�
- private Boolean report_clean_confirm ; //娓呭満纭
- private String report_clean_qa ; //QA
-
- /**---------------------鐢熶骇璁板綍鐩稿叧瀛楁瀹氫箟---e-------------------------*/
}
diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/RealTimeFaultVo.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/RealTimeFaultVo.java
new file mode 100644
index 0000000..7dae163
--- /dev/null
+++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/RealTimeFaultVo.java
@@ -0,0 +1,11 @@
+package org.jeecg.modules.dry.vo;
+
+import lombok.Data;
+
+@Data
+public class RealTimeFaultVo {
+ private String error;
+ private String warning;
+ private String info;
+
+}
diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/RealTimeProdVo.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/RealTimeProdVo.java
new file mode 100644
index 0000000..9409994
--- /dev/null
+++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/RealTimeProdVo.java
@@ -0,0 +1,68 @@
+package org.jeecg.modules.dry.vo;
+
+import lombok.Data;
+
+@Data
+public class RealTimeProdVo {
+ private Integer ai_time;
+ private Integer ai_total_time;
+ /**鑷姩 true/鎵嬪姩 false*/
+ private Boolean auto;
+ /**鑽℃枡寤舵椂*/
+ private Integer delay;
+ /**鐜婀垮害*/
+ private Double envhum;
+ /**鐜娓╁害*/
+ private Double envtemp;
+ /**椋庢満棰戠巼*/
+ private Double fanfrq;
+ /**閰嶆柟绱㈠紩*/
+ private Integer index;
+ private String level;
+ /**娓╁害杩囦綆 true/姝e父 false*/
+ private Boolean lowalarm;
+
+ /**鍒濆鍚按鐜囷紙璁惧畾鍊硷級*/
+ private Double moisture1;
+ /**瀹炴椂鍚按鐜�*/
+ private Double moisture2;
+ /**鐩爣鍚按鐜�*/
+ private Double moisture3;
+ /**鑽潗鍚嶇О*/
+ private String name;
+ /**涓婁綅鏈� true/PLC false*/
+ private Boolean plcdisable;
+ /**寮�濮嬪共鐖�*/
+ private Boolean start;
+ /**钂告苯娑堣��**/
+ private Double steam;
+ /**鏆傚仠鏍囧織 true/false*/
+ private Boolean stop;
+ /**椋庢満娓╁害*/
+ private Double temp1;
+ /**椋庣娓╁害*/
+ private Double temp2;
+ /**娓╁害璁惧畾鍊�*/
+ private Double temp3;
+
+ /**鏃堕棿璁惧畾鍊�*/
+ private Integer time1;
+ /**鏃堕棿璁℃暟*/
+ private Integer time2;
+ /**鎬绘椂闂�*/
+ private Integer time3;
+ /**缈绘枡娆℃暟*/
+ private Integer turntime;
+ /**鐢佃兘娑堣��**/
+ private Double watt;
+ /**鎶曟枡閲忥紙绛愶級*/
+ private Integer weight1;
+ /**鍒濆閲嶉噺*/
+ private Double weight2;
+ /**杩囩▼瀹炴椂閲嶉噺*/
+ private Double weight3;
+ /**鐑 true/鍐烽 false*/
+ private Boolean wind;
+ /**宸ュ崟鐘舵��*/
+ private Integer workorder_status;
+}
diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/RealTimeReportVo.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/RealTimeReportVo.java
new file mode 100644
index 0000000..cc8f51a
--- /dev/null
+++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/RealTimeReportVo.java
@@ -0,0 +1,56 @@
+package org.jeecg.modules.dry.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+@Data
+public class RealTimeReportVo {
+ private Boolean report_flag; // 鎻愪氦鏍囧織
+ private String report_head_name; // 鍝佸悕
+ private String report_head_batch ; //鎵规
+ private String report_head_num ; //鏁伴噺--16妗�/355.8Kg
+ private String report_head_machine ; //璁惧
+ private String report_head_accepter; //鎺ユ枡浜�
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+ private Date report_head_date ; //鐢熶骇鏃ユ湡
+ private String report_head_leader ; //鐝粍闀�
+ private String report_head_techer ; //宸ヨ壓鍛�
+ //妫�鏌�
+ private Boolean report_check_field ; //鐢熶骇鐜板満
+ private Boolean report_check_file ; //鎵ц鏂囦欢
+ private Boolean report_check_tag ; //鐗╂枡鏍囩ず
+ private Boolean report_check_tool ; //绉伴噺鍣ㄥ叿
+ private String report_check_man ; //妫�鏌ヤ汉
+ private Boolean report_check_status; //妫�鏌ユ儏鍐�
+ private String report_check_qa ; //QA
+ private String report_check_record ; //寮傚父璁板綍
+ //鐢熶骇
+ private Boolean report_product_view ; //澶栬妫�鏌�
+ private Boolean report_product_wind ; //鍚归
+ private Boolean report_product_sun ; //鏅�
+ private Boolean report_product_low_dry ; //浣庢俯骞茬嚗
+ private Boolean report_product_dry ; //骞茬嚗
+ private String report_product_start ; //寮�濮嬫椂闂�
+ private String report_product_end ; //缁撴潫鏃堕棿
+ private Integer report_product_total ; //骞茬嚗鎬绘椂闂�
+ private Boolean report_product_check ; //骞茬嚗妫�鏌�
+ private String report_product_man1 ; //鎿嶄綔浜�
+ private String report_product_man2 ; //澶嶆牳浜�
+ private Double report_product_weight ; //鎿嶄綔鍚庨噸閲�
+ private Double report_product_waste ; //搴熸枡鏁伴噺
+ private Double report_product_use ; //鏀剁巼
+ private String report_product_qa ; //QA
+ //娓呭満
+ private Boolean report_clean_machine ; //璁惧娓呯悊
+ private Boolean report_clean_waste ; //搴熸枡娓呯悊
+ private Boolean report_clean_tool ; //宸ュ叿娓呯悊
+ private Boolean report_clean_door ; //闂ㄧ獥娓呯悊
+ private Boolean report_clean_box ; //绠变綋娓呯悊
+ private Boolean report_clean_record ; //鐢熶骇璁板綍娓呯悊
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+ private Date report_clean_date ; //娓呭満鏃ユ湡
+ private String report_clean_man ; //娓呭満浜�
+ private Boolean report_clean_confirm ; //娓呭満纭
+ private String report_clean_qa ; //QA
+}
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java
index e92e401..3344466 100644
--- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java
@@ -100,6 +100,31 @@
return dryRealTimeDataService.realTimeDataHandle(realTimeDataVo);
}
+ @ApiOperation(value="鎺ユ敹瀹炴椂鏁版嵁Json", notes="璁惧瀹炴椂鏁版嵁涓婁紶")
+ @PostMapping("/sendRealTimeDataJson2")
+ public Result<?> realTimeDataJson2(@RequestBody RealTimeDataParentVo realTimeDataParentVo) {
+ try {
+ if (mqttConfig.isEnable() && "user".equals(mqttConfig.getRole())){
+ MqttMessage mqttMessage = new MqttMessage();
+ mqttMessage.setQos(0);
+ mqttMessage.setPayload(JSONObject.toJSONString(realTimeDataParentVo).getBytes());
+ mqttUtil.getMqttClient().publish(MqttConstant.TENANT_UP_PREFIX_REALTIME_DATA,mqttMessage);
+ //澶勭悊鏁呴殰淇℃伅
+ dryRealTimeDataService.fitFaultRecord(realTimeDataParentVo);
+ }
+
+ if ("user".equals(mqttConfig.getRole()) && realTimeDataParentVo.getFault() != null){
+ //澶勭悊鏁呴殰淇℃伅
+ dryRealTimeDataService.fitFaultRecord(realTimeDataParentVo);
+ }
+
+ } catch (MqttException e) {
+ e.printStackTrace();
+ }
+
+ return dryRealTimeDataService.realTimeDataHandle(realTimeDataParentVo);
+ }
+
@ApiOperation(value="鑾峰彇璁惧瀹炴椂鏁版嵁", notes="閫氳繃绉熸埛ID鍜岃澶囩紪鐮佽幏鍙栧疄鏃舵暟鎹�")
@@ -115,6 +140,14 @@
}
+ @ApiOperation(value="鑾峰彇鎵�鏈夋満鍙�", notes="閫氳繃绉熸埛ID鑾峰彇鎵�鏈夋満鍙版暟鎹�")
+ @GetMapping("/queryAllEqps")
+ public Result<?> queryAllEqps(DryEquipment equipment) {
+ List<DryEquipment> dryEquipments = dryEquipmentService.queryEqusByTenantId(equipment);
+ return Result.OK(dryEquipments);
+ }
+
+
/**
* 1001 椋庣鍗� 1002 椋庣闄�
* 1003 婊氱瓛鍗� 1004 婊氱瓛闄�
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mqtt/MqttSampleCallback.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mqtt/MqttSampleCallback.java
index e835376..b381df7 100644
--- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mqtt/MqttSampleCallback.java
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mqtt/MqttSampleCallback.java
@@ -24,6 +24,7 @@
import org.jeecg.modules.dry.service.*;
import org.jeecg.modules.dry.vo.DryEquipmentVo;
import org.jeecg.modules.dry.vo.DryFaultRecordVo;
+import org.jeecg.modules.dry.vo.RealTimeDataParentVo;
import org.jeecg.modules.dry.vo.RealTimeDataVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -215,6 +216,17 @@
});
break;
+ // 鎺ユ敹璁惧瀹炴椂鏁版嵁-鏈哄彴
+ case MqttConstant.TENANT_UP_PREFIX_REALTIME_DATA_EQP:
+ ThreadUtil.execute(() -> {
+ try {
+ RealTimeDataParentVo vo = JSON.parseObject(message, RealTimeDataParentVo.class);
+ realTimeDataService.realTimeDataHandle(vo);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ });
+ break;
//鍚勭鎴蜂笂浼犵殑瀹炴椂鎶ヨ鏁版嵁
case MqttConstant.TENANT_UP_PREFIX_REAL_FAULT_DATA: {
@@ -243,8 +255,6 @@
//鍙戦�佸箍鎾�
System.err.println("骞挎挱缁欙細" + recTopic);
sendMqttMessage(MqttConstant.SERVICE_BROADCAST_TENANT_REAL_FAULT, mqMessage, 1);
-
-
}
break;
//绉诲姩绔富鍔ㄨ姹傝澶囧疄鏃舵晠闅滄暟鎹紙鐢ㄤ簬椤甸潰鍒氭墦寮�鏃舵媺鍙栦竴娆℃暟鎹級
@@ -260,8 +270,6 @@
entry -> entry.getKey().toString(),
entry -> (DryFaultRecordVo) entry.getValue()
));
-
-
if (dryFaultMap.isEmpty()) {
return;
}
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryEquipmentService.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryEquipmentService.java
index 6e39cbd..67a72ee 100755
--- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryEquipmentService.java
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryEquipmentService.java
@@ -1,5 +1,6 @@
package org.jeecg.modules.dry.service;
+import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.dry.entity.DryEquipment;
import com.baomidou.mybatisplus.extension.service.IService;
@@ -24,4 +25,5 @@
*/
Map<String,DryEquipment> queryEquByTenantId(Integer tenantId);
+ List<DryEquipment> queryEqusByTenantId(DryEquipment dryEquipment);
}
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryRealTimeDataService.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryRealTimeDataService.java
index 8c64d5c..0efdafb 100755
--- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryRealTimeDataService.java
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryRealTimeDataService.java
@@ -1,9 +1,7 @@
package org.jeecg.modules.dry.service;
import org.jeecg.common.api.vo.Result;
-import org.jeecg.modules.dry.vo.CommandMessageVo;
-import org.jeecg.modules.dry.vo.RealTimeDataVo;
-import org.jeecg.modules.dry.vo.StatisticsDataVo;
+import org.jeecg.modules.dry.vo.*;
public interface IDryRealTimeDataService {
Result<?> realTimeDataHandle(RealTimeDataVo realTimeDataVo);
@@ -22,4 +20,8 @@
* @return
*/
Result<?> fitFaultRecord(RealTimeDataVo realTimeDataVo);
+
+ void fitFaultRecord(RealTimeDataParentVo realTimeDataParentVo);
+
+ Result<?> realTimeDataHandle(RealTimeDataParentVo realTimeDataParentVo);
}
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryEquipmentServiceImpl.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryEquipmentServiceImpl.java
index 93ff976..0f4fb91 100755
--- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryEquipmentServiceImpl.java
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryEquipmentServiceImpl.java
@@ -1,6 +1,7 @@
package org.jeecg.modules.dry.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.jeecg.common.api.vo.Result;
import org.jeecg.common.config.TenantContext;
import org.jeecg.common.constant.CommonCacheConstant;
import org.jeecg.common.util.RedisUtil;
@@ -63,4 +64,17 @@
));
return userMap;
}
+
+ @Override
+ @Cacheable(cacheNames = CommonCacheConstant.DRY_CACHE_TENANT_EQUS_LIST, key = "#dryEquipment.tenantId+':'+#dryEquipment.enable" , unless = "#result == null " )
+ public List<DryEquipment> queryEqusByTenantId(DryEquipment dryEquipment) {
+ TenantContext.setTenant(dryEquipment.getTenantId() +"");
+ QueryWrapper<DryEquipment> queryWrapper = new QueryWrapper<>();
+ queryWrapper.lambda().eq(DryEquipment::getTenantId,dryEquipment.getTenantId());
+ if (dryEquipment.getEnable()!=null){
+ queryWrapper.lambda().eq(DryEquipment::getEnable,dryEquipment.getEnable());
+ }
+ List<DryEquipment> equipmentList = this.list(queryWrapper);
+ return equipmentList;
+ }
}
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 74d1590..58b10ca 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
@@ -91,7 +91,7 @@
@Transactional
public Result<?> realTimeDataHandle(RealTimeDataVo realTimeDataVo) {
TenantContext.setTenant(realTimeDataVo.getTenantid()+"");
- // log.info("瀹炴椂鏁版嵁锛�"+realTimeDataVo.toString());
+ log.info("瀹炴椂鏁版嵁锛�"+realTimeDataVo.toString());
// 1 鏌ヨ鎴栧垱寤哄伐鍗�
@@ -132,11 +132,6 @@
orderVo.setEnvTemp(realTimeDataVo.getEnvtemp());
orderVo.setRemain(realTimeDataVo.getAi_total_time());
orderVo.setCurRemain(realTimeDataVo.getAi_time());
- orderVo.setState_fan(realTimeDataVo.getState_fan());
- orderVo.setState_roller(realTimeDataVo.getState_roller());
- orderVo.setState_auto(realTimeDataVo.getState_auto());
- orderVo.setState_windbox(realTimeDataVo.getState_windbox());
- orderVo.setState_valve(realTimeDataVo.getState_valve());
orderVo.setOrderStatus(realTimeDataVo.getWorkorder_status());
orderVo.setEqp_status(realTimeDataVo.getEqp_status());
// orderVo.setEqp_state(realTimeDataVo.getEqp_state());
@@ -147,55 +142,6 @@
DryOrderTrendVo trendVo = new DryOrderTrendVo(realTimeDataVo);
// 2.2 淇濆瓨宸ュ崟鍚按鐜囧彉鍖� 鎴� 閲嶉噺鍙樺寲
-
- if(realTimeDataVo.getReport_flag()) {
- DryProdRecord prodRecord = new DryProdRecord();
- prodRecord.setReportHeadName(realTimeDataVo.getReport_head_name());
- prodRecord.setReportHeadBatch(realTimeDataVo.getReport_head_batch());
- prodRecord.setReportHeadNum(realTimeDataVo.getReport_head_num());
- prodRecord.setReportHeadMachine(realTimeDataVo.getReport_head_machine());
- prodRecord.setReportHeadAccepter(realTimeDataVo.getReport_head_accepter());
- prodRecord.setReportHeadDate(realTimeDataVo.getReport_head_date());
- prodRecord.setReportHeadLeader(realTimeDataVo.getReport_head_leader());
- prodRecord.setReportHeadTecher(realTimeDataVo.getReport_head_techer());
-
- prodRecord.setReportCheckField(realTimeDataVo.getReport_check_field()?1:0);
- prodRecord.setReportCheckFile(realTimeDataVo.getReport_check_file()?1:0);
- prodRecord.setReportCheckTag(realTimeDataVo.getReport_check_tag()?1:0);
- prodRecord.setReportCheckTool(realTimeDataVo.getReport_check_tool()?1:0);
- prodRecord.setReportCheckMan(realTimeDataVo.getReport_check_man());
- prodRecord.setReportCheckStatus(realTimeDataVo.getReport_check_status()?1:0);
- prodRecord.setReportCheckQa(realTimeDataVo.getReport_check_qa());
- prodRecord.setReportCheckRecord(realTimeDataVo.getReport_check_record());
-
- prodRecord.setReportProductView(realTimeDataVo.getReport_product_view()?1:0);
- prodRecord.setReportProductWind(realTimeDataVo.getReport_product_wind()?1:0);
- prodRecord.setReportProductSun(realTimeDataVo.getReport_product_sun()?1:0);
- prodRecord.setReportProductLowDry(realTimeDataVo.getReport_product_low_dry()?1:0);
- prodRecord.setReportProductDry(realTimeDataVo.getReport_product_dry()?1:0);
- prodRecord.setReportProductStart(realTimeDataVo.getReport_product_start());
- prodRecord.setReportProductEnd(realTimeDataVo.getReport_product_end());
- prodRecord.setReportProductTotal(realTimeDataVo.getReport_product_total());
- prodRecord.setReportProductCheck(realTimeDataVo.getReport_product_check()?1:0);
- prodRecord.setReportProductMan1(realTimeDataVo.getReport_product_man1());
- prodRecord.setReportProductMan2(realTimeDataVo.getReport_product_man2());
- prodRecord.setReportProductWeight(realTimeDataVo.getReport_product_weight());
- prodRecord.setReportProductWaste(realTimeDataVo.getReport_product_waste());
- prodRecord.setReportProductUse(realTimeDataVo.getReport_product_use());
- prodRecord.setReportProductQa(realTimeDataVo.getReport_product_qa());
-
- prodRecord.setReportCleanMachine(realTimeDataVo.getReport_clean_machine()?1:0);
- prodRecord.setReportCleanWaste(realTimeDataVo.getReport_clean_waste()?1:0);
- prodRecord.setReportCleanTool(realTimeDataVo.getReport_clean_tool()?1:0);
- prodRecord.setReportCleanDoor(realTimeDataVo.getReport_clean_door()?1:0);
- prodRecord.setReportCleanBox(realTimeDataVo.getReport_clean_box()?1:0);
- prodRecord.setReportCleanRecord(realTimeDataVo.getReport_clean_record()?1:0);
- prodRecord.setReportCleanDate(realTimeDataVo.getReport_clean_date());
- prodRecord.setReportCleanMan(realTimeDataVo.getReport_clean_man());
- prodRecord.setReportCleanConfirm(realTimeDataVo.getReport_clean_confirm()?1:0);
- prodRecord.setReportCleanQa(realTimeDataVo.getReport_clean_qa());
- prodRecordService.save(prodRecord);
- }
saveOrderTrendVo(trendVo, orderVo);
orderVo.setTrendVo(trendVo);
orderVo.getBellowsTemp().put(realTimeDataVo.getTime3(), realTimeDataVo.getTemp2());
@@ -204,6 +150,131 @@
realTimeDataVo.getTenantid()+"_"+realTimeDataVo.getMachineid(),orderVo, 60*60);
return Result.ok();
}
+
+
+
+
+ @Override
+ @Transactional
+ public Result<?> realTimeDataHandle(RealTimeDataParentVo realTimeDataParentVo) {
+ TenantContext.setTenant(realTimeDataParentVo.getTenantid()+"");
+ log.info("瀹炴椂鏁版嵁锛�"+realTimeDataParentVo.toString());
+ if (realTimeDataParentVo.getRealTime() != null) {
+ RealTimeDataVo realTimeDataVo = realTimeDataParentVo.getRealTime();
+
+ // 1 鏌ヨ鎴栧垱寤哄伐鍗�
+ // 1.1 浠巖edis鍙栧嚭宸ュ崟缂撳瓨
+ DryOrderVo orderVo = (DryOrderVo) redisUtil.hget(CacheConstants.RedisKeyEnum.WORK_ORDER.getCode(),
+ realTimeDataParentVo.getTenantid()+"_"+realTimeDataParentVo.getMachineid());
+ // 1.2 濡傛灉鏈夌紦瀛樿褰�
+ if(orderVo != null && orderVo.getCode().equals(realTimeDataParentVo.getWorkorder())) {
+
+ // 1.3 娌℃湁缂撳瓨璁板綍鍐嶆煡璇㈡暟鎹簱
+ } else {
+ // 鏍规嵁绉熸埛id鍜屽伐鍗曞彿鏌ヨ鏁版嵁搴撴槸鍚︽湁璁板綍锛屾湁鍒欒繑鍥烇紝娌℃湁鍒欐柊澧炰竴鏉″啀杩斿洖
+ orderVo = getOrSaveDryOrderVoDB(realTimeDataVo);
+ }
+ if (orderVo == null) {
+ log.error("宸ュ崟涓嶅瓨鍦紝宸ュ崟鍙凤細"+realTimeDataParentVo.getWorkorder()+",璁惧锛�" + realTimeDataParentVo.getMachineid() +",鑽潗锛�" + realTimeDataVo.getName());
+ return Result.error("宸ュ崟涓嶅瓨鍦�");
+ }
+
+ // 2 鏇存柊宸ュ崟瀹炴椂鏁版嵁
+ // 2.1 灏嗗伐鍗曚腑鐨勬暟鎹浛鎹负鏈�鏂版暟鎹�
+ realTimeDataVo.setOrderId(orderVo.getId());
+ orderVo.setInitial(realTimeDataVo.getMoisture1());
+ orderVo.setDryTime(realTimeDataVo.getTime3());
+ orderVo.setDelay(realTimeDataVo.getDelay());
+ orderVo.setTurn(realTimeDataVo.getTurntime());
+ orderVo.setYield(realTimeDataVo.getWeight3());
+ orderVo.setStart(realTimeDataVo.getStart());
+ orderVo.setAuto(realTimeDataVo.getAuto());
+ orderVo.setPlcdisable(realTimeDataVo.getPlcdisable());
+ orderVo.setLowalarm(realTimeDataVo.getLowalarm());
+ orderVo.setWind(realTimeDataVo.getWind());
+ orderVo.setOriginWeight(realTimeDataVo.getWeight2());
+ orderVo.setWatt(realTimeDataVo.getWatt());
+ orderVo.setSteam(realTimeDataVo.getSteam());
+ orderVo.setEnvHum(realTimeDataVo.getEnvhum());
+ orderVo.setEnvTemp(realTimeDataVo.getEnvtemp());
+ orderVo.setRemain(realTimeDataVo.getAi_total_time());
+ orderVo.setCurRemain(realTimeDataVo.getAi_time());
+ 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());
+ orderVo.setLevel(realTimeDataVo.getLevel());
+ DryOrderTrendVo trendVo = new DryOrderTrendVo(realTimeDataVo);
+ // 2.2 淇濆瓨宸ュ崟鍚按鐜囧彉鍖� 鎴� 閲嶉噺鍙樺寲
+
+ saveOrderTrendVo(trendVo, orderVo);
+ orderVo.setTrendVo(trendVo);
+ orderVo.getBellowsTemp().put(realTimeDataVo.getTime3(), realTimeDataVo.getTemp2());
+
+ // 2.3 鏇存柊鍒皉edis缂撳瓨
+ redisUtil.hset(CacheConstants.RedisKeyEnum.WORK_ORDER.getCode(),
+ realTimeDataVo.getTenantid()+"_"+realTimeDataVo.getMachineid(),orderVo, 60*60);
+ }
+
+ if (realTimeDataParentVo.getReport() != null) {
+ saveReport(realTimeDataParentVo);
+ }
+ return Result.ok();
+ }
+
+ private void saveReport(RealTimeDataParentVo realTimeDataParentVo) {
+ RealTimeReportVo report = realTimeDataParentVo.getReport();
+ if(report.getReport_flag()) {
+ DryProdRecord prodRecord = new DryProdRecord();
+ prodRecord.setReportHeadName(report.getReport_head_name());
+ prodRecord.setReportHeadBatch(report.getReport_head_batch());
+ prodRecord.setReportHeadNum(report.getReport_head_num());
+ prodRecord.setReportHeadMachine(report.getReport_head_machine());
+ prodRecord.setReportHeadAccepter(report.getReport_head_accepter());
+ prodRecord.setReportHeadDate(report.getReport_head_date());
+ prodRecord.setReportHeadLeader(report.getReport_head_leader());
+ prodRecord.setReportHeadTecher(report.getReport_head_techer());
+
+ prodRecord.setReportCheckField(report.getReport_check_field()?1:0);
+ prodRecord.setReportCheckFile(report.getReport_check_file()?1:0);
+ prodRecord.setReportCheckTag(report.getReport_check_tag()?1:0);
+ prodRecord.setReportCheckTool(report.getReport_check_tool()?1:0);
+ prodRecord.setReportCheckMan(report.getReport_check_man());
+ prodRecord.setReportCheckStatus(report.getReport_check_status()?1:0);
+ prodRecord.setReportCheckQa(report.getReport_check_qa());
+ prodRecord.setReportCheckRecord(report.getReport_check_record());
+
+ prodRecord.setReportProductView(report.getReport_product_view()?1:0);
+ prodRecord.setReportProductWind(report.getReport_product_wind()?1:0);
+ prodRecord.setReportProductSun(report.getReport_product_sun()?1:0);
+ prodRecord.setReportProductLowDry(report.getReport_product_low_dry()?1:0);
+ prodRecord.setReportProductDry(report.getReport_product_dry()?1:0);
+ prodRecord.setReportProductStart(report.getReport_product_start());
+ prodRecord.setReportProductEnd(report.getReport_product_end());
+ prodRecord.setReportProductTotal(report.getReport_product_total());
+ prodRecord.setReportProductCheck(report.getReport_product_check()?1:0);
+ prodRecord.setReportProductMan1(report.getReport_product_man1());
+ prodRecord.setReportProductMan2(report.getReport_product_man2());
+ prodRecord.setReportProductWeight(report.getReport_product_weight());
+ prodRecord.setReportProductWaste(report.getReport_product_waste());
+ prodRecord.setReportProductUse(report.getReport_product_use());
+ prodRecord.setReportProductQa(report.getReport_product_qa());
+
+ prodRecord.setReportCleanMachine(report.getReport_clean_machine()?1:0);
+ prodRecord.setReportCleanWaste(report.getReport_clean_waste()?1:0);
+ prodRecord.setReportCleanTool(report.getReport_clean_tool()?1:0);
+ prodRecord.setReportCleanDoor(report.getReport_clean_door()?1:0);
+ prodRecord.setReportCleanBox(report.getReport_clean_box()?1:0);
+ prodRecord.setReportCleanRecord(report.getReport_clean_record()?1:0);
+ prodRecord.setReportCleanDate(report.getReport_clean_date());
+ prodRecord.setReportCleanMan(report.getReport_clean_man());
+ prodRecord.setReportCleanConfirm(report.getReport_clean_confirm()?1:0);
+ prodRecord.setReportCleanQa(report.getReport_clean_qa());
+ prodRecordService.save(prodRecord);
+ }
+ }
+
/**
* 鏍规嵁绉熸埛id鍜屽伐鍗曞彿鏌ヨ鏁版嵁搴撴槸鍚︽湁璁板綍锛屾湁鍒欒繑鍥烇紝娌℃湁鍒欐柊澧炰竴鏉�
@@ -528,6 +599,51 @@
return null;
}
+ @Override
+ public void fitFaultRecord(RealTimeDataParentVo vo) {
+ TenantContext.setTenant(vo.getTenantid()+"");
+ ThreadUtil.execute(() -> {
+ try {
+ //瑙f瀽瀛樺偍鎶ヨ鏁版嵁
+ List<DryFaultRecord> faultRecords1 = fitFault(vo.getFault().getError(), vo.getWorkorder(), vo.getTenantid(), vo.getMachineid(), 1);
+ List<DryFaultRecord> faultRecords2 = fitFault(vo.getFault().getWarning(), vo.getWorkorder(), vo.getTenantid(), vo.getMachineid(), 2);
+ faultRecords1.addAll(faultRecords2);
+
+
+ //澶勭悊缁撴潫鍚庯紝灏唕edis涓疄鏃舵暟鎹彂閫佽嚦浜戞湇鍔″櫒
+ Map<Object, Object> toCloudFaultMap = redisUtil.hmget(MqttConstant.MQTT_REAL_FAULT);
+ if(mqttEnable && !toCloudFaultMap.isEmpty()){
+ MqMessage< Map<Object, Object>> message = new MqMessage<>();
+ message.setData(toCloudFaultMap);
+ message.setTentId(vo.getTenantid()+"");
+ MqttMessage mqttMessage = new MqttMessage();
+ mqttMessage.setQos(0);
+ mqttMessage.setPayload(JSON.toJSONString(message).getBytes());
+ mqttUtil.getMqttClient().publish(MqttConstant.TENANT_UP_PREFIX_REAL_FAULT_DATA,mqttMessage);
+ }
+
+
+ //瑕佷繚瀛樼殑鍘嗗彶鏁呴殰
+ if(!faultRecords1.isEmpty()){
+ MqMessage<List<DryFaultRecord>> message = new MqMessage<>();
+ message.setData(faultRecords1);
+ message.setTentId(vo.getTenantid()+"");
+ MqttMessage mqttMessage = new MqttMessage();
+ mqttMessage.setQos(0);
+ mqttMessage.setPayload((JSON.toJSONString(message).getBytes()));
+ mqttUtil.getMqttClient().publish(MqttConstant.TENANT_UP_PREFIX_FAULT_DATA,mqttMessage);
+ }
+
+
+
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ });
+
+ }
+
/**
* 瑙f瀽瀛樺偍鏁呴殰鏁版嵁
diff --git a/jeecg-server-cloud/jeecg-cloud-nacos/src/main/resources/application.yml b/jeecg-server-cloud/jeecg-cloud-nacos/src/main/resources/application.yml
index bbd97d8..8ffe3bc 100755
--- a/jeecg-server-cloud/jeecg-cloud-nacos/src/main/resources/application.yml
+++ b/jeecg-server-cloud/jeecg-cloud-nacos/src/main/resources/application.yml
@@ -12,9 +12,9 @@
db:
num: 1
password:
- '0': ${MYSQL-PWD:root}
+ '0': ${MYSQL-PWD:123456}
url:
- '0': jdbc:mysql://${MYSQL-HOST:localhost}:${MYSQL-PORT:3306}/${MYSQL-DB:nacos-herb}?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
+ '0': jdbc:mysql://${MYSQL-HOST:localhost}:${MYSQL-PORT:3306}/${MYSQL-DB:nacos}?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
user:
'0': ${MYSQL-USER:root}
management:
--
Gitblit v1.9.3