From 62afcbeaa5cc328bff01ae1facb18a6b8c03c5bc Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期二, 24 六月 2025 16:57:18 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV
---
pipIrr-platform/文档/SaaS/端口、IP、标签配置.docx | 0
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd5C/CdCtrl.java | 19
pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardCtrl.java | 88 +
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java | 12
pipIrr-platform/pipIrr-global/src/main/resources/application-global(166web文件花生壳).yml | 2
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdDto.java | 16
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_26_Down.java | 4
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java | 12
pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/qo/QoLostCards.java | 28
pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/java/com/dy/pipIrrParamSet/paramSet/ParamSetMw.java | 24
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStWeatherMapper.xml | 25
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/resources/application(121服务器).yml | 2
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdParam.java | 23
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrStManure.java | 6
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TkMqttData.java | 4
pipIrr-platform/pipIrr-global/src/main/resources/init-config(121服务器).xml | 63 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/WeatherVo.java | 48
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.properties | 13
pipIrr-platform/文档/水肥气象墒情/MQTT指令不执行.docx | 0
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd65/CdCtrl.java | 16
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/PipIrrRemoteApplication.java | 19
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml | 29
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmCommandHistoryMapper.java | 8
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/ComSv.java | 16
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml | 14
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdDto.java | 18
pipIrr-platform/pipIrr-global/src/main/resources/application-common-mw.yml | 2
pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml | 13
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/resources/application(121服务器).yml | 2
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStManureMapper.xml | 25
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdCtrl.java | 121 ++
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttMsgParser.java | 6
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/ManureVo.java | 92 +
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttUnitConfigVo.java | 8
pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/java/com/dy/pipIrrParamSet/console/Command.java | 4
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdDto.java | 25
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandResultCtrl.java | 4
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttSubMsg.java | 61 +
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdParam.java | 23
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/resources/application(121服务器).yml | 2
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdCtrl.java | 123 ++
pipIrr-platform/文档/水肥气象墒情/FlexManager软件配置参数.docx | 0
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStSoilMapper.xml | 25
pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/dto/DtoReissue.java | 1
pipIrr-platform/pipIrr-global/src/main/resources/application-common-web(121服务器).yml | 4
pipIrr-platform/pipIrr-web/pipIrr-web-gis/src/main/resources/application(121服务器).yml | 2
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdSv.java | 15
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdParam.java | 23
pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/resources/application(121服务器).yml | 2
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdSv.java | 15
pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/resources/application-params.yml | 93 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttPubMsg.java | 18
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/ProtocolParserSdV1.java | 88 +
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoCardByClientNum.java | 46
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdSv.java | 15
pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/resources/application(121服务器).yml | 2
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/Com4MqttSv.java | 50 +
pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/resources/application(121服务器).yml | 2
pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/resources/application(121服务器).yml | 2
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrStWeather.java | 6
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdSv.java | 15
pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/resources/application(121服务器).yml | 2
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdCtrl.java | 142 ++
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/DevStatusDealer.java | 10
pipIrr-platform/文档/SaaS/增加一个单位(orgTag).docx | 0
pipIrr-platform/文档/水肥气象墒情/MQTT设定时间参数.docx | 0
pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/java/com/dy/pipIrrParamSet/paramSet/ParamKey.java | 8
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/Com4MqttCtrl.java | 194 +++
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/SoilVo.java | 28
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/Command4MqttSv.java | 137 ++
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdSv.java | 6
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java | 21
README.md | 124 ++
pipIrr-platform/pipIrr-web/pipIrr-web-file/src/main/resources/application(121服务器).yml | 2
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdParam.java | 25
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/MqttResultCtrl.java | 40
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttPubMsgNode.java | 32
pipIrr-platform/pipIrr-web/pipIrr-web-temp/src/main/resources/application(121服务器).yml | 2
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/resources/application(121服务器).yml | 2
pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/qo/QoCards.java | 31
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdDto.java | 16
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdCtrl.java | 147 +++
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Command.java | 9
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrStSoil.java | 6
pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardSv.java | 67 +
pipIrr-platform/pipIrr-global/src/main/resources/application-database-jyg.yml | 69 +
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml | 56 +
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd55/CdCtrl.java | 20
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdParam.java | 16
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/Cd4MqttParameter.java | 15
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdCtrl.java | 145 ++
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttTopic.java | 2
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/ParamSetVo.java | 6
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/ProtocolConstantSdV1.java | 1
pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/resources/application(121服务器).yml | 2
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/Web2RtuMw.java | 18
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdDto.java | 6
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/dto/Dto4MqttBase.java | 33
/dev/null | 9
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/resources/application(121服务器).yml | 2
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/CodeSdV1.java | 15
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkFindPSdV1.java | 4
102 files changed, 2,693 insertions(+), 221 deletions(-)
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..8797567
--- /dev/null
+++ b/README.md
@@ -0,0 +1,124 @@
+# pipIrr 鏅鸿兘鐏屾簤绯荤粺
+
+## 椤圭洰姒傝堪
+
+pipIrr鏄竴濂楀熀浜嶫ava鐨勬櫤鑳界閬撶亴婧夌郴缁熻В鍐虫柟妗堬紝鐢ㄤ簬瀹炵幇姘磋祫婧愮殑鏅鸿兘鍖栫鐞嗕笌鐏屾簤鎺у埗銆傜郴缁熼泦鎴愪簡杩滅▼缁堢鎺у埗銆丟IS鍦扮悊淇℃伅銆佹按璧勬簮鐩戞祴涓庡垎鏋愩�佸井淇℃帴鍏ョ瓑澶氱鍔熻兘锛屼负鏅烘収鍐滀笟鍜屾按鍒╁伐绋嬫彁渚涘叏闈㈢殑鎶�鏈敮鎸併��
+
+## 绯荤粺鏋舵瀯
+
+绯荤粺閲囩敤寰湇鍔℃灦鏋勶紝鍩轰簬Spring Boot 3鏋勫缓锛屼富瑕佸寘鎷互涓嬪嚑涓牳蹇冮儴鍒嗭細
+
+- **鍓嶇搴旂敤灞�**锛氭彁渚沇eb鐣岄潰銆佺Щ鍔ㄥ簲鐢ㄣ�佸井淇″叕浼楀彿绛夊绉嶄氦浜掓柟寮�
+- **涓氬姟鏈嶅姟灞�**锛氬鐞嗘牳蹇冧笟鍔¢�昏緫锛屽寘鎷亴婧夌鐞嗐�侀」鐩鐞嗐�佹暟鎹粺璁$瓑
+- **涓棿浠跺眰**锛氭彁渚汻TU(杩滅▼缁堢鍗曞厓)閫氫俊銆佺涓夋柟绯荤粺闆嗘垚绛夊姛鑳�
+- **鍩虹璁炬柦灞�**锛氭彁渚涙暟鎹瓨鍌ㄣ�佺紦瀛樸�佹秷鎭槦鍒楃瓑鍩虹鏈嶅姟
+
+## 妯″潡璇存槑
+
+### 鐖舵ā鍧� (pipIrr-platform)
+
+浣滀负鏁翠釜椤圭洰鐨勭埗妯″潡锛岀鐞嗕緷璧栫増鏈拰鏋勫缓閰嶇疆銆�
+
+### 鏍稿績瀛愭ā鍧�
+
+- **pipIrr-common**: 鍏叡缁勪欢锛屾彁渚涘伐鍏风被銆侀�氱敤閰嶇疆绛�
+- **pipIrr-global**: 鍏ㄥ眬閰嶇疆鍜屾湇鍔�
+- **pipIrr-web**: Web搴旂敤妯″潡闆嗗悎
+ - pipIrr-web-base: 鍩虹鏁版嵁鏈嶅姟
+ - pipIrr-web-sso: 鍗曠偣鐧诲綍鏈嶅姟
+ - pipIrr-web-irrigate: 鐏屾簤绠$悊
+ - pipIrr-web-gis: GIS鍦扮悊淇℃伅鏈嶅姟
+ - pipIrr-web-project: 椤圭洰绠$悊
+ - pipIrr-web-statistics: 鏁版嵁缁熻鍒嗘瀽
+ - pipIrr-web-remote: 杩滅▼鎺у埗
+ - pipIrr-web-wechat: 寰俊闆嗘垚
+ - pipIrr-web-app: 绉诲姩搴旂敤鏈嶅姟
+ - pipIrr-web-file: 鏂囦欢绠$悊
+ - pipIrr-web-operation: 杩愮淮绠$悊
+ - pipIrr-web-sell: 閿�鍞鐞�
+ - pipIrr-web-temp: 涓存椂妯″潡
+- **pipIrr-mw**: 涓棿浠舵湇鍔�
+ - pipIrr-mw-rtu: RTU璁惧閫氫俊
+ - pipIrr-mw-rtu3rd: 绗笁鏂筊TU闆嗘垚
+ - pipIrr-mw-simulate-rtu: RTU妯℃嫙鍣�
+ - pipIrr-mwTest-server: 娴嬭瘯鏈嶅姟鍣�
+ - pipIrr-mwTest-client: 娴嬭瘯瀹㈡埛绔�
+
+## 鎶�鏈爤
+
+- **鍩虹妗嗘灦**: Spring Boot 3.1.3
+- **JDK鐗堟湰**: Java 20
+- **Web鏈嶅姟**: Tomcat 10.1.12
+- **鏁版嵁搴�**: MySQL 8.0.33
+- **ORM妗嗘灦**: MyBatis-Plus 3.5.3.2
+- **鏁版嵁搴撹繛鎺ユ睜**: Druid 1.2.20
+- **API鏂囨。**: SpringDoc OpenAPI 2.2.0
+- **JSON澶勭悊**: FastJSON 2.0.40
+- **瀵硅薄鏄犲皠**: MapStruct 1.5.5.Final
+- **宸ュ叿闆�**: Hutool 5.8.22
+- **鏃ュ織妗嗘灦**: Log4j2 2.20.0
+
+## 寮�鍙戠幆澧冩惌寤�
+
+### 鍓嶇疆鏉′欢
+
+- JDK 20
+- Maven 3.8+
+- MySQL 8.0+
+- IDE鎺ㄨ崘: IntelliJ IDEA
+
+### 鏋勫缓姝ラ
+
+1. 鍏嬮殕浠g爜搴�
+ ```bash
+ git clone <repository-url>
+ ```
+
+2. 瀵煎叆椤圭洰鍒癐DE
+ 浣跨敤IDEA瀵煎叆Maven椤圭洰
+
+3. 閰嶇疆鏁版嵁搴�
+ 鍦ㄧ浉搴旈厤缃枃浠朵腑璁剧疆鏁版嵁搴撹繛鎺ヤ俊鎭�
+
+4. 缂栬瘧椤圭洰
+ ```bash
+ mvn clean package
+ ```
+
+## 閮ㄧ讲璇存槑
+
+### 寮�鍙戠幆澧�
+```bash
+mvn spring-boot:run -Dspring.profiles.active=dev
+```
+
+### 鐢熶骇鐜
+1. 鎵撳寘搴旂敤
+ ```bash
+ mvn clean package -Dspring.profiles.active=prod
+ ```
+
+2. 杩愯jar鍖�
+ ```bash
+ java -jar <妯″潡鍚�>-<鐗堟湰鍙�>.jar
+ ```
+
+## 椤圭洰鏂囨。
+
+璇︾粏鐨勯」鐩枃妗d綅浜� `pipIrr-platform/鏂囨。/` 鐩綍涓嬶紝鍖呮嫭锛�
+- API鎺ュ彛鏂囨。
+- 鏁版嵁搴撹璁�
+- 閮ㄧ讲鎸囧崡
+- 缂栫爜瑙勮寖
+
+## 鐗堟湰淇℃伅
+
+褰撳墠鐗堟湰: 1.0.0
+
+## 璐$尞鎸囧崡
+
+1. Fork 鏈粨搴�
+2. 鍒涘缓鍔熻兘鍒嗘敮 (`git checkout -b feature/AmazingFeature`)
+3. 鎻愪氦鍙樻洿 (`git commit -m 'Add some AmazingFeature'`)
+4. 鎺ㄩ�佸埌鍒嗘敮 (`git push origin feature/AmazingFeature`)
+5. 鍒涘缓Pull Request
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Command.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Command.java
index 59b6ec0..f7b490a 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Command.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Command.java
@@ -41,7 +41,7 @@
public Short protocolVersion;
/**
- * RTU 鍦板潃
+ * RTU鍦板潃 鍜� FBox璁惧鍙�
*/
public String rtuAddr ;
@@ -76,7 +76,12 @@
s += (protocol == null ? "" : ("鍗忚=" + protocol + "\n"));
s += (protocolVersion == null ? "" : ("鍗忚鐗堟湰鍙�=" + protocolVersion + "\n"));
s += (rtuAddr == null ? "" : ("Rtu鍦板潃=" + rtuAddr + "\n"));
- s += "鍛戒护绫诲瀷=" + (type.equals(CommandType.innerCommand)?"鍐呴儴鍛戒护":(type.equals(CommandType.outerCommand)?"RTU鍛戒护":"閫忎紶鍛戒护")) + "\n" ;
+ s += "鍛戒护绫诲瀷=" + (
+ type.equals(CommandType.innerCommand)?"鍐呴儴鍛戒护":(
+ type.equals(CommandType.outerCommand)?"RTU鍛戒护":(
+ type.equals(CommandType.mqttCommand)?"MQTT鍛戒护":(
+ type.equals(CommandType.outerTransCommand)?"閫忎紶鍛戒护":
+ "")))) + "\n" ;
s += (code == null ? "" : ("鍔熻兘鐮�=" + code + "\n")) ;
s += (rtuResultSendWebUrl == null ? "" : ("鍥炶皟缃戝潃=" + rtuResultSendWebUrl + "\n"));
if(param != null){
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_26_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_26_Down.java
index 29eff46..807ec32 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_26_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_26_Down.java
@@ -61,7 +61,7 @@
throw new Exception("璁惧缁堢骞寸敤姘撮噺蹇呴』鏄�0~99999999鑼冨洿鍐呯殑鏁存暟") ;
}
- byte[] bs = new byte[14] ;
+ byte[] bs = new byte[13] ;
int index = 0 ;
bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
@@ -84,7 +84,6 @@
bs[index++] = 0 ;
}
- index ++ ;
GlCreate.createPw(bs, index);
index += 2 ;
@@ -105,6 +104,5 @@
return bytes ;
}
-
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttMsgParser.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttMsgParser.java
index 8389f8e..5114ad8 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttMsgParser.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttMsgParser.java
@@ -18,7 +18,7 @@
if(topicGrp.length != 5){
throw new Exception("鎺ユ敹鐨刴qtt娑堟伅涓婚涓嶅彲璇嗗埆") ;
}else{
- if(NumUtil.isPlusIntNumber(topicGrp[4])){
+ if(!NumUtil.isPlusIntNumber(topicGrp[4])){
throw new Exception("鎺ユ敹鐨刴qtt娑堟伅涓婚涓嶅彲璇嗗埆") ;
}
if(Integer.parseInt(topicGrp[4]) <= 0){
@@ -57,7 +57,7 @@
if(com.protocolVersion == null){
throw new Exception("鎺ユ敹鍒癕QTT鍛戒护锛屼絾鏈彁渚涘崗璁増鏈彿") ;
}
- if(com.code != null && com.code.trim().length() != 0){
+ if(com.code == null || com.code.trim().length() == 0){
throw new Exception("鎺ユ敹鍒癕QTT鍛戒护锛屼絾鏈彁渚涘姛鑳界爜") ;
}
if(com.protocol.equals(ProtocolConstantSdV1.protocolName)){
@@ -73,7 +73,7 @@
public static void main(String[] args) {
- String s = "ym/sd1/10000/control/m1" ;
+ String s = "jyg/sd1/2430002404000840/weather/1" ;
String[] ss = s.split("/") ;
for (String s1 : ss) {
System.out.println(s1);
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttPubMsg.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttPubMsg.java
index eba4ecf..2c1c6f1 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttPubMsg.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttPubMsg.java
@@ -1,12 +1,18 @@
package com.dy.common.mw.protocol4Mqtt;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
/**
* @Author: liurunyu
* @Date: 2025/6/5 11:44
* @Description
*/
-public abstract class MqttPubMsg {
+@Data
+public class MqttPubMsg {
public String commandId ;//鍛戒护ID
+
+ public String cd ;//鍔熻兘鐮�
public String deviceId ;//璁惧ID
@@ -18,6 +24,14 @@
public boolean isCacheForOffLine ;//涓嬭鍛戒护鎺у埗锛屾秷鎭腑闂翠欢涓嶅湪绾挎槸鍚︾紦瀛樺懡浠�
public boolean hasResponse ;//涓嬭鍛戒护鎺у埗锛屽懡浠ゆ槸鍚︽湁搴旂瓟
- public abstract boolean valid();
+ public boolean valid(){
+ if (topic == null || topic.isEmpty()) {
+ return false;
+ }
+ if (msg == null || msg.isEmpty()) {
+ return false;
+ }
+ return true;
+ }
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttSubMsg.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttSubMsg.java
index 8226de7..7577e67 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttSubMsg.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttSubMsg.java
@@ -1,14 +1,16 @@
package com.dy.common.mw.protocol4Mqtt;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.ManureVo;
import com.dy.common.util.Callback;
+import lombok.Data;
/**
* @Author: liurunyu
* @Date: 2025/6/5 11:44
* @Description
*/
-
-public abstract class MqttSubMsg {
+@Data
+public class MqttSubMsg {
public String commandId ;//鍛戒护ID
public String mqttResultSendWebUrl ;//Mtt杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
@@ -18,9 +20,58 @@
public MqttTopic topic ;//娑堟伅涓婚
public String metaData;//MQTT鎺ㄩ�佹潵鐨勫厓鏁版嵁
- public abstract boolean valid();
+ public Vo4Up vo4Up;//璁㈤槄鐨勬秷鎭暟鎹�煎璞�
+ public MqttSubMsg() {
+ }
+ public MqttSubMsg(MqttTopic subTopic, String msg) {
+ this.deviceId = subTopic.devId ;
+ this.protocol = subTopic.protocol ;
+ this.topic = subTopic ;
+ this.metaData = msg ;
+ }
- public abstract boolean subMsgMatchPubMsg(MqttPubMsg pubMsg);
+ public boolean valid() {
+ if (topic == null || topic.isEmpty()) {
+ return false;
+ }
+ if (metaData == null || metaData.isEmpty()) {
+ return false;
+ }
+ return true;
+ }
- public abstract void action(Callback callback);
+ public boolean subMsgMatchPubMsg(MqttPubMsg pubMsg){
+ if(this.vo4Up != null && this.vo4Up instanceof ManureVo){
+ //鍙涓婃姤鐨勬槸鐘舵�佹暟鎹紝璇存槑璁惧鍝嶅簲浜嗗懡浠�
+ return true ;
+ }
+ return false ;
+ }
+
+ public void action(Callback callback){
+ callback.call(this) ;
+ }
+
+
+ public String toString(){
+ StringBuilder sb = new StringBuilder();
+ if(commandId != null){
+ sb.append("commandId:")
+ .append(commandId)
+ .append("\n") ;
+ }
+ sb.append("涓婚:")
+ .append(topic.longName())
+ .append("\n") ;
+ if(vo4Up != null){
+ sb.append("鏁版嵁:")
+ .append(vo4Up.toString())
+ .append("\n") ;
+ }else{
+ sb.append("鍏冩暟鎹�:")
+ .append(metaData)
+ .append("\n") ;
+ }
+ return sb.toString() ;
+ }
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttTopic.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttTopic.java
index da40d12..5bc518e 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttTopic.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttTopic.java
@@ -16,7 +16,7 @@
public String orgTag ;//缁勭粐鏍囪瘑
public String protocol ;//鍗忚鍚嶇О
public String devId ;//璁惧锛團Box锛塈D
- public String type;//娴嬬珯绫诲瀷
+ public String type;//鏁版嵁锛堝懡浠わ級绫诲瀷
public Integer no;//娴嬬珯缂栧彿
public boolean isEmpty(){
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/CodeSdV1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/CodeSdV1.java
index a78f8b0..a029596 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/CodeSdV1.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/CodeSdV1.java
@@ -10,5 +10,18 @@
public static final String cd_Stir = "01" ;//鎼呮媽鍚仠鍛戒护
public static final String cd_Inject = "02" ;//娉ㄨ偉鍚仠鍛戒护
public static final String cd_Irr = "03" ;//鐏屾簤鍚仠鍛戒护
- public static final String cd_Param = "10" ;//璁惧畾鍙傛暟
+ public static final String cd_Param = "10" ;//璁剧疆鍙傛暟
+
+ public static String getCodeName(String code) {
+ String name = (code.equals(cd_Fault) ? "鏁呴殰瑙i櫎" :
+ (code.equals(cd_Stir) ? "鎼呮媽鍚仠" :
+ (code.equals(cd_Inject) ? "娉ㄨ偉鍚仠" :
+ (code.equals(cd_Irr) ? "鐏屾簤鍚仠" :
+ (code.equals(cd_Param) ? "璁剧疆鍙傛暟" :
+ ""))))) ;
+ if(name == null || name.equals("")){
+ name = code ;
+ }
+ return name ;
+ }
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/MqttPubMsgSdV1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/MqttPubMsgSdV1.java
deleted file mode 100644
index 6193843..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/MqttPubMsgSdV1.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.dy.common.mw.protocol4Mqtt.pSdV1;
-
-import com.dy.common.mw.protocol4Mqtt.MqttPubMsg;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * @Author: liurunyu
- * @Date: 2025/6/4 18:00
- * @Description 涓嬪彂鐨勫彂甯冩秷鎭紙鍗充笅琛屽懡浠わ級
- */
-@Data
-@EqualsAndHashCode(callSuper=false)
-public class MqttPubMsgSdV1 extends MqttPubMsg {
-
- public String cd ;//鍔熻兘鐮�
-
- @Override
- public boolean valid() {
- if (topic == null || topic.isEmpty()) {
- return false;
- }
- if (msg == null || msg.isEmpty()) {
- return false;
- }
- return true;
- }
-}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/MqttSubMsgSdV1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/MqttSubMsgSdV1.java
deleted file mode 100644
index c654c22..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/MqttSubMsgSdV1.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package com.dy.common.mw.protocol4Mqtt.pSdV1;
-
-import com.dy.common.mw.protocol4Mqtt.MqttPubMsg;
-import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
-import com.dy.common.mw.protocol4Mqtt.MqttTopic;
-import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.StateVo;
-import com.dy.common.mw.protocol4Mqtt.Vo4Up;
-import com.dy.common.util.Callback;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * @Author: liurunyu
- * @Date: 2025/6/4 16:58
- * @Description 鏀跺埌鐨勮闃呮秷鎭�
- */
-@Data
-@EqualsAndHashCode(callSuper=false)
-public class MqttSubMsgSdV1 extends MqttSubMsg {
- public Vo4Up vo4Up;//璁㈤槄鐨勬秷鎭暟鎹�煎璞�
-
- public MqttSubMsgSdV1(){}
-
- public MqttSubMsgSdV1(MqttTopic subTopic, String msg) {
- this.deviceId = subTopic.devId ;
- this.protocol = subTopic.protocol ;
- this.topic = subTopic ;
- this.metaData = msg ;
- }
- public String toString(){
- StringBuilder sb = new StringBuilder();
- if(commandId != null){
- sb.append("commandId:")
- .append(commandId)
- .append("\n") ;
- }
- sb.append("涓婚:")
- .append(topic.longName())
- .append("\n") ;
- if(vo4Up != null){
- sb.append("鏁版嵁:")
- .append(vo4Up.toString())
- .append("\n") ;
- }else{
- sb.append("鍏冩暟鎹�:")
- .append(metaData)
- .append("\n") ;
- }
- return sb.toString() ;
- }
-
- public boolean subMsgMatchPubMsg(MqttPubMsg pubMsg){
- if (pubMsg instanceof MqttPubMsgSdV1) {
- //MqttPubMsgSdV1 pubMsgSdV1 = (MqttPubMsgSdV1) pubMsg;
- if(this.vo4Up != null && this.vo4Up instanceof StateVo){
- //鍙涓婃姤鐨勬槸鐘舵�佹暟鎹紝璇存槑璁惧鍝嶅簲浜嗗懡浠�
- return true ;
- }
- }
- return false ;
- }
-
- @Override
- public boolean valid() {
- if (topic == null || topic.isEmpty()) {
- return false;
- }
- if (metaData == null || metaData.isEmpty()) {
- return false;
- }
- return true;
- }
-
- @Override
- public void action(Callback callback){
- callback.call(this) ;
- }
-
-}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/ProtocolConstantSdV1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/ProtocolConstantSdV1.java
index 8961281..df832f1 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/ProtocolConstantSdV1.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/ProtocolConstantSdV1.java
@@ -13,7 +13,6 @@
public static final String SubTopicWeather = "weather" ;//姘旇薄
public static final String SubTopicSoil = "soil" ;//鍦熷¥澧掓儏
public static final String SubTopicManure = "manure" ;//姘磋偉
- public static final String SubTopicState = "state" ;//鐘舵��
//鍙戝竷鐨勪富棰�
public static final String PubTopicFault = "ctrlFault" ;//鏁呴殰瑙i櫎
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/ProtocolParserSdV1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/ProtocolParserSdV1.java
index 77c38d8..7ba7e80 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/ProtocolParserSdV1.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/ProtocolParserSdV1.java
@@ -3,9 +3,7 @@
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.dy.common.mw.protocol.Command;
-import com.dy.common.mw.protocol4Mqtt.MqttCallback;
-import com.dy.common.mw.protocol4Mqtt.MqttTopic;
-import com.dy.common.mw.protocol4Mqtt.Vo4Up;
+import com.dy.common.mw.protocol4Mqtt.*;
import com.dy.common.mw.protocol4Mqtt.pSdV1.comParam.ComCtrlVo;
import com.dy.common.mw.protocol4Mqtt.pSdV1.comParam.ComSetParamVo;
import com.dy.common.mw.protocol4Mqtt.pSdV1.downVos.FaultClearVo;
@@ -22,37 +20,53 @@
* @Description
*/
public class ProtocolParserSdV1 {
- public MqttSubMsgSdV1 parseSubMsg(MqttTopic subTopic, MqttMessage mqttMsg, MqttCallback callback) throws Exception {
+ public MqttSubMsg parseSubMsg(MqttTopic subTopic, MqttMessage mqttMsg, MqttCallback callback) throws Exception {
String strTxt = new String(mqttMsg.getPayload(), "UTF-8");
if(!JSON.isValid(strTxt)){
throw new Exception("鎺ユ敹鍒癕QTT娑堟伅锛屽崗璁�" + subTopic.protocol + "锛岃澶嘔D" + subTopic.devId + "锛屼富棰�" + subTopic.longName() + "娑堟伅鏍煎紡闈瀓son鏁版嵁(" + strTxt + ")") ;
}
- MqttSubMsgSdV1 msg = new MqttSubMsgSdV1(subTopic, strTxt);
+ MqttSubMsg msg = new MqttSubMsg(subTopic, strTxt);
Vo4Up vo ;
DevRunInfo stInfo = null ;
switch (subTopic.type) {
case ProtocolConstantSdV1.SubTopicWeather -> {
- vo = JSON.parseObject(strTxt, WeatherVo.class);
+ WeatherVo wvo = JSON.parseObject(strTxt, WeatherVo.class);
+ //璋冩暣灏忔暟
+ wvo.airTemperature = (wvo.airTemperature == null ? null: (wvo.airTemperature / 10.0F)) ;
+ wvo.airHumidity = (wvo.airHumidity == null ? null: (wvo.airHumidity / 10.0F)) ;
+ wvo.rainfall = (wvo.rainfall == null ? null: (wvo.rainfall / 10.0F)) ;
+ wvo.windSpeed = (wvo.windSpeed == null ? null: (wvo.windSpeed / 10.0F)) ;
+ vo = wvo ;
break;
}
case ProtocolConstantSdV1.SubTopicSoil -> {
- vo = JSON.parseObject(strTxt, SoilVo.class);
+ SoilVo svo = JSON.parseObject(strTxt, SoilVo.class);
+ //璋冩暣灏忔暟
+ svo.soilHumidity1 = (svo.soilHumidity1 == null ? null: (svo.soilHumidity1 / 10.0F)) ;
+ svo.soilHumidity2 = (svo.soilHumidity2 == null ? null: (svo.soilHumidity2 / 10.0F)) ;
+ svo.soilHumidity3 = (svo.soilHumidity3 == null ? null: (svo.soilHumidity3 / 10.0F)) ;
+ svo.soilHumidity4 = (svo.soilHumidity4 == null ? null: (svo.soilHumidity4 / 10.0F)) ;
+ svo.soilHumidity5 = (svo.soilHumidity5 == null ? null: (svo.soilHumidity5 / 10.0F)) ;
+ svo.soilTemperature1 = (svo.soilTemperature1 == null ? null: (svo.soilTemperature1 / 10.0F)) ;
+ svo.soilTemperature2 = (svo.soilTemperature2 == null ? null: (svo.soilTemperature2 / 10.0F)) ;
+ svo.soilTemperature3 = (svo.soilTemperature3 == null ? null: (svo.soilTemperature3 / 10.0F)) ;
+ svo.soilTemperature4 = (svo.soilTemperature4 == null ? null: (svo.soilTemperature4 / 10.0F)) ;
+ svo.soilTemperature5 = (svo.soilTemperature5 == null ? null: (svo.soilTemperature5 / 10.0F)) ;
+ vo = svo ;
break;
}
case ProtocolConstantSdV1.SubTopicManure -> {
- vo = JSON.parseObject(strTxt, ManureVo.class);
- break;
- }
- case ProtocolConstantSdV1.SubTopicState -> {
- //姝ゅ鏈畬鎴愶紝搴旇浜х敓涓�浜涢�氫俊鐨刬nfo锛屼緵涓嬮潰callback.notify(objs)閫氱煡鍑哄幓
- vo = JSON.parseObject(strTxt, StateVo.class);
- StateVo stVo = (StateVo)vo ;
+ ManureVo mvo = JSON.parseObject(strTxt, ManureVo.class);
+ //璋冩暣灏忔暟
+ mvo.manureFlow = (mvo.manureFlow == null ? null: (mvo.manureFlow / 10.0F)) ;
+ vo = mvo ;
+
stInfo = new DevRunInfo() ;
stInfo.devId = msg.deviceId ;
- stInfo.stirRunning = (stVo.stirRunning==null?false:(stVo.stirRunning.byteValue()==1?true:false)) ; //鎼呮媽杩愯 true鏄� false鍚�
- stInfo.injectRunning = (stVo.injectRunning==null?false:(stVo.injectRunning.byteValue()==1?true:false)) ; //娉ㄨ偉杩愯 true鏄� false鍚�
- stInfo.irrRunning = (stVo.irrRunning==null?false:(stVo.irrRunning.byteValue()==1?true:false)) ; //鐏屾簤杩愯 true鏄� false鍚�
- stInfo.alarm = (stVo.alarm==null?false:(stVo.alarm.byteValue()==1?true:false)) ; //鎶ヨ true鏄� false鍚�
+ stInfo.stirRunning = (mvo.stirRunning1 ==null?false:(mvo.stirRunning1.byteValue()==1?true:false)) ; //鎼呮媽杩愯 true鏄� false鍚�
+ stInfo.injectRunning = (mvo.injectRunning==null?false:(mvo.injectRunning.byteValue()==1?true:false)) ; //娉ㄨ偉杩愯 true鏄� false鍚�
+ stInfo.irrRunning = (mvo.irrRunning==null?false:(mvo.irrRunning.byteValue()==1?true:false)) ; //鐏屾簤杩愯 true鏄� false鍚�
+ stInfo.alarm = (mvo.alarm==null?false:(mvo.alarm.byteValue()==1?true:false)) ; //鎶ヨ true鏄� false鍚�
break;
}
default -> {
@@ -66,8 +80,8 @@
return msg;
}
- public MqttPubMsgSdV1 createPubMsg(String orgTag, Command com) throws Exception {
- MqttPubMsgSdV1 msg ;
+ public MqttPubMsg createPubMsg(String orgTag, Command com) throws Exception {
+ MqttPubMsg msg ;
switch (com.code) {
case CodeSdV1.cd_Fault -> {
//鏁呴殰瑙i櫎鍛戒护
@@ -120,89 +134,89 @@
throw new Exception("鎺ユ敹鍒癕QTT鍛戒护锛屽崗璁�" + com.protocol + "鐗堟湰" + com.protocolVersion + "鍔熻兘鐮�" + com.code + "鍛戒护缁撴灉鍥炴敹URL涓虹┖") ;
}
}
- private MqttPubMsgSdV1 createPubMsgOfFault(String orgTag, Command com) throws Exception {
+ private MqttPubMsg createPubMsgOfFault(String orgTag, Command com) throws Exception {
JSONObject obj = (JSONObject) com.param;
String json = obj.toJSONString();
ComCtrlVo cvo = JSON.parseObject(json, ComCtrlVo.class);
if(cvo == null){
throw new Exception("json杞珻omCtrlVo涓簄ull") ;
}
- MqttPubMsgSdV1 msg = new MqttPubMsgSdV1() ;
+ MqttPubMsg msg = new MqttPubMsg() ;
this.setPubMsgBase(com, msg);
msg.isCacheForOffLine = false ;
msg.hasResponse = true ;
msg.cd = CodeSdV1.cd_Fault ;
- msg.topic = new MqttTopic(orgTag, com.protocol, com.rtuAddr, ProtocolConstantSdV1.PubTopicFault, cvo.no) ;
+ msg.topic = new MqttTopic(orgTag, com.protocol + com.protocolVersion, com.rtuAddr, ProtocolConstantSdV1.PubTopicFault, cvo.no) ;
msg.msg = JSON.toJSONString(new FaultClearVo(cvo.startTrueStopFalse ?(byte)1:0)) ;
return msg ;
}
- private MqttPubMsgSdV1 createPubMsgOfStir(String orgTag, Command com) throws Exception {
+ private MqttPubMsg createPubMsgOfStir(String orgTag, Command com) throws Exception {
JSONObject obj = (JSONObject) com.param;
String json = obj.toJSONString();
ComCtrlVo cvo = JSON.parseObject(json, ComCtrlVo.class);
if(cvo == null){
throw new Exception("json杞珻omCtrlVo涓簄ull") ;
}
- MqttPubMsgSdV1 msg = new MqttPubMsgSdV1() ;
+ MqttPubMsg msg = new MqttPubMsg() ;
this.setPubMsgBase(com, msg);
msg.isCacheForOffLine = false ;
msg.hasResponse = true ;
msg.cd = CodeSdV1.cd_Fault ;
- msg.topic = new MqttTopic(orgTag, com.protocol, com.rtuAddr, ProtocolConstantSdV1.PubTopicStir, cvo.no) ;
+ msg.topic = new MqttTopic(orgTag, com.protocol + com.protocolVersion, com.rtuAddr, ProtocolConstantSdV1.PubTopicStir, cvo.no) ;
msg.msg = JSON.toJSONString(new StirStartVo(cvo.startTrueStopFalse ?(byte)1:0)) ;
return msg ;
}
- private MqttPubMsgSdV1 createPubMsgOfInject(String orgTag, Command com) throws Exception {
+ private MqttPubMsg createPubMsgOfInject(String orgTag, Command com) throws Exception {
JSONObject obj = (JSONObject) com.param;
String json = obj.toJSONString();
ComCtrlVo cvo = JSON.parseObject(json, ComCtrlVo.class);
if(cvo == null){
throw new Exception("json杞珻omCtrlVo涓簄ull") ;
}
- MqttPubMsgSdV1 msg = new MqttPubMsgSdV1() ;
+ MqttPubMsg msg = new MqttPubMsg() ;
this.setPubMsgBase(com, msg);
msg.isCacheForOffLine = false ;
msg.hasResponse = true ;
msg.cd = CodeSdV1.cd_Fault ;
- msg.topic = new MqttTopic(orgTag, com.protocol, com.rtuAddr, ProtocolConstantSdV1.PubTopicInject, cvo.no) ;
+ msg.topic = new MqttTopic(orgTag, com.protocol + com.protocolVersion, com.rtuAddr, ProtocolConstantSdV1.PubTopicInject, cvo.no) ;
msg.msg = JSON.toJSONString(new InjectStartVo(cvo.startTrueStopFalse ?(byte)1:0)) ;
return msg ;
}
- private MqttPubMsgSdV1 createPubMsgOfIrr(String orgTag, Command com) throws Exception {
+ private MqttPubMsg createPubMsgOfIrr(String orgTag, Command com) throws Exception {
JSONObject obj = (JSONObject) com.param;
String json = obj.toJSONString();
ComCtrlVo cvo = JSON.parseObject(json, ComCtrlVo.class);
if(cvo == null){
throw new Exception("json杞珻omCtrlVo涓簄ull") ;
}
- MqttPubMsgSdV1 msg = new MqttPubMsgSdV1() ;
+ MqttPubMsg msg = new MqttPubMsg() ;
this.setPubMsgBase(com, msg);
msg.isCacheForOffLine = false ;
msg.hasResponse = true ;
msg.cd = CodeSdV1.cd_Fault ;
- msg.topic = new MqttTopic(orgTag, com.protocol, com.rtuAddr, ProtocolConstantSdV1.PubTopicIrr, cvo.no) ;
+ msg.topic = new MqttTopic(orgTag, com.protocol + com.protocolVersion, com.rtuAddr, ProtocolConstantSdV1.PubTopicIrr, cvo.no) ;
msg.msg = JSON.toJSONString(new StirStartVo(cvo.startTrueStopFalse ?(byte)1:0)) ;
return msg ;
}
- private MqttPubMsgSdV1 createPubMsgOfParam(String orgTag, Command com) throws Exception {
+ private MqttPubMsg createPubMsgOfParam(String orgTag, Command com) throws Exception {
JSONObject obj = (JSONObject) com.param;
String json = obj.toJSONString();
ComSetParamVo cvo = JSON.parseObject(json, ComSetParamVo.class);
if(cvo == null){
throw new Exception("json杞珻omSetParamVo涓簄ull") ;
}
- MqttPubMsgSdV1 msg = new MqttPubMsgSdV1() ;
+ MqttPubMsg msg = new MqttPubMsg() ;
this.setPubMsgBase(com, msg);
msg.isCacheForOffLine = false ;
- msg.hasResponse = false ;
+ msg.hasResponse = true ;
msg.cd = CodeSdV1.cd_Param ;
- msg.topic = new MqttTopic(orgTag, com.protocol, com.rtuAddr, ProtocolConstantSdV1.PubTopicParam, cvo.no) ;
+ msg.topic = new MqttTopic(orgTag, com.protocol + com.protocolVersion, com.rtuAddr, ProtocolConstantSdV1.PubTopicParam, cvo.no) ;
msg.msg = JSON.toJSONString(new ParamSetVo(cvo.stirDuration, cvo.injectDuration)) ;
return msg ;
}
- private void setPubMsgBase(Command com, MqttPubMsgSdV1 msg){
+ private void setPubMsgBase(Command com, MqttPubMsg msg){
msg.commandId = com.id ;
msg.deviceId = com.rtuAddr ;
msg.mqttResultSendWebUrl = com.rtuResultSendWebUrl ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/ParamSetVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/ParamSetVo.java
index 48ecd14..4b421d9 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/ParamSetVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/ParamSetVo.java
@@ -15,9 +15,15 @@
@NoArgsConstructor
@AllArgsConstructor
public class ParamSetVo implements Vo4Down {
+ /**
+ * 鍗曚綅绉�
+ */
@JSONField(name = "鎼呮媽璁惧畾鏃堕棿")
public Integer stirDuration ;
+ /**
+ * 鍗曚綅绉�
+ */
@JSONField(name = "娉ㄨ偉璁惧畾鏃堕棿")
public Integer injectDuration ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/ManureVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/ManureVo.java
index 9244e7f..98acc81 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/ManureVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/ManureVo.java
@@ -15,16 +15,77 @@
@JSONField(name = "flexem_message_id")
public Integer messageId ;//娑堟伅ID
- public Integer no ;//娴嬬珯缂栧彿锛屽叾涓嶅湪JSON鏁版嵁涓紝鍏朵腑涓婚涓�
+ public Integer no ;//娴嬬珯缂栧彿锛屽叾涓嶅湪JSON鏁版嵁涓紝鍏跺湪涓婚涓�
- @JSONField(name = "鑲ユ枡娴侀噺")
- public Float manureFlow ;//鑲ユ枡娴侀噺
+ /**
+ * 鎼呮媽鏈�1鏄惁杩愯锛涳紙姘磋偉鏈鸿繕鍙瓨鍦ㄦ悈鎷屾満2銆佹悈鎷屾満3銆佹悈鎷屾満4 ......锛� 杩愯鏃�1锛屽仠姝�0.
+ */
+ @JSONField(alternateNames = {"鎼呮媽杩愯1", "stirRunning1"})
+ public Byte stirRunning1;//鎼呮媽1杩愯鐘舵��
+ /**
+ * 鎼呮媽鏈�2鏄惁杩愯锛涳紙姘磋偉鏈鸿繕鍙瓨鍦ㄦ悈鎷屾満2銆佹悈鎷屾満3銆佹悈鎷屾満4 ......锛� 杩愯鏃�1锛屽仠姝�0.
+ * (褰撳墠澶х搴旂敤涓嶅瓨鍦�)
+ */
+ @JSONField(alternateNames = {"鎼呮媽杩愯2", "stirRunning2"})
+ public Byte stirRunning2;//鎼呮媽2杩愯鐘舵��
+ /**
+ * 鎼呮媽鏈�3鏄惁杩愯锛涳紙姘磋偉鏈鸿繕鍙瓨鍦ㄦ悈鎷屾満2銆佹悈鎷屾満3銆佹悈鎷屾満4 ......锛� 杩愯鏃�1锛屽仠姝�0.
+ * (褰撳墠澶х搴旂敤涓嶅瓨鍦�)
+ */
+ @JSONField(alternateNames = {"鎼呮媽杩愯3", "stirRunning3"})
+ public Byte stirRunning3;//鎼呮媽3杩愯鐘舵��
+ /**
+ * 鎼呮媽鏈�4鏄惁杩愯锛涳紙姘磋偉鏈鸿繕鍙瓨鍦ㄦ悈鎷屾満2銆佹悈鎷屾満3銆佹悈鎷屾満4 ......锛� 杩愯鏃�1锛屽仠姝�0.
+ * (褰撳墠澶х搴旂敤涓嶅瓨鍦�)
+ */
+ @JSONField(alternateNames = {"鎼呮媽杩愯4", "stirRunning4"})
+ public Byte stirRunning4;//鎼呮媽4杩愯鐘舵��
- @JSONField(name = "娉ㄨ偉鏃堕暱")
- public Integer manureTime ;//娉ㄨ偉鏃堕暱
+ /**
+ * 涓�涓按鑲ユ満鍙湁涓�涓敞鑲ユ车
+ */
+ @JSONField(alternateNames = {"娉ㄨ偉杩愯", "injectRunning"})
+ public Byte injectRunning ;//娉ㄨ偉杩愯鐘舵��
- @JSONField(name = "鎼呮媽鏃堕暱")
- public Integer stirTime ;//鎼呮媽鏃堕暱
+
+ @JSONField(alternateNames = {"鐏屾簤杩愯", "irrRunning"})
+ public Byte irrRunning ;//鐏屾簤杩愯鐘舵��
+
+ /**
+ * 1:娉ㄨ偉娉垫湁鏁呴殰銆�0:娉ㄨ偉娉垫病鏈夋晠闅�
+ */
+ @JSONField(alternateNames = {"鎶ヨ", "alarm"})
+ public Byte alarm ;//娉ㄨ偉娉垫晠闅�
+
+ /**
+ * 鑲ユ枡娴侀噺锛屽崟浣嶅崌
+ */
+ @JSONField(alternateNames = {"鑲ユ枡娴侀噺", "manureFlow"})
+ public Float manureFlow ;
+
+ /**
+ * 鍗曚綅绉�
+ */
+ @JSONField(alternateNames = {"娉ㄨ偉缁忚繃鏃堕棿", "manureTime"})
+ public Integer manureTime ;
+
+ /**
+ * 鍗曚綅绉�
+ */
+ @JSONField(alternateNames = {"鎼呮媽缁忚繃鏃堕棿", "stirTime"})
+ public Integer stirTime ;
+
+ /**
+ * 鍗曚綅绉�
+ */
+ @JSONField(alternateNames = {"鎼呮媽璁惧畾鏃堕棿", "stirDuration"})
+ public Integer stirDuration ;
+
+ /**
+ * 鍗曚綅绉�
+ */
+ @JSONField(alternateNames = {"娉ㄨ偉璁惧畾鏃堕棿", "injectDuration"})
+ public Integer injectDuration ;
@JSONField(name = "flexem_timestamp")
public Long devDt ;//璁惧鏃堕棿
@@ -37,7 +98,7 @@
}
public String getDevDtStr() {
- if(devDt == null){
+ if(devDt != null){
return DateTime.yyyy_MM_dd_HH_mm_ss(DateTime.getDate(devDt)) ;
}else{
return "" ;
@@ -49,11 +110,20 @@
StringBuilder sb = new StringBuilder();
sb.append("姘磋偉鏁版嵁=>") ;
sb.append(" 娑堟伅ID锛�" + messageId + ", ") ;
+ sb.append(" 鎼呮媽杩愯1锛�" + stirRunning1 + ", ") ;
+ sb.append(" 鎼呮媽杩愯2锛�" + stirRunning2 + ", ") ;
+ sb.append(" 鎼呮媽杩愯3锛�" + stirRunning3 + ", ") ;
+ sb.append(" 鎼呮媽杩愯4锛�" + stirRunning4 + ", ") ;
+ sb.append(" 娉ㄨ偉杩愯锛�" + injectRunning + ", ") ;
+ sb.append(" 鐏屾簤杩愯锛�" + irrRunning + ", ") ;
+ sb.append(" 鎶ヨ锛�" + alarm + ", ") ;
sb.append(" 鑲ユ枡娴侀噺锛�" + manureFlow + ", ") ;
- sb.append(" 娉ㄨ偉鏃堕暱锛�" + manureTime + ", ") ;
- sb.append(" 鎼呮媽鏃堕暱锛�" + stirTime + ", ") ;
+ sb.append(" 娉ㄨ偉缁忚繃鏃堕棿锛�" + manureTime + ", ") ;
+ sb.append(" 鎼呮媽缁忚繃鏃堕棿锛�" + stirTime + ", ") ;
+ sb.append(" 娉ㄨ偉璁惧畾鏃堕棿锛�" + injectDuration + ", ") ;
+ sb.append(" 鎼呮媽璁惧畾鏃堕棿锛�" + stirDuration + ", ") ;
sb.append(" 璁惧鏃堕棿锛�" + devDt + ", ") ;
- sb.append(" 璁惧鏃堕棿锛�" + this.getDevDtStr() + ", ") ;
+ sb.append(" 璁惧鏃堕棿锛�" + this.getDevDtStr()) ;
sb.append("\n") ;
return sb.toString() ;
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/SoilVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/SoilVo.java
index b4f8d7a..7a01088 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/SoilVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/SoilVo.java
@@ -15,31 +15,37 @@
@JSONField(name = "flexem_message_id")
public Integer messageId ;//娑堟伅ID
- public Integer no ;//娴嬬珯缂栧彿锛屽叾涓嶅湪JSON鏁版嵁涓紝鍏朵腑涓婚涓�
+ public Integer no ;//娴嬬珯缂栧彿锛屽叾涓嶅湪JSON鏁版嵁涓紝鍏跺湪涓婚涓�
@JSONField(name = "鍦熷¥婀垮害1")
- public Float soilHumidity1 ;//鍦熷¥婀垮害1
+ public Float soilHumidity1 ;
@JSONField(name = "鍦熷¥婀垮害2")
- public Float soilHumidity2 ;//鍦熷¥婀垮害2
+ public Float soilHumidity2 ;
@JSONField(name = "鍦熷¥婀垮害3")
- public Float soilHumidity3 ;//鍦熷¥婀垮害3
+ public Float soilHumidity3 ;
@JSONField(name = "鍦熷¥婀垮害4")
- public Float soilHumidity4 ;//鍦熷¥婀垮害4
+ public Float soilHumidity4 ;
+
+ @JSONField(name = "鍦熷¥婀垮害5")
+ public Float soilHumidity5 ;
@JSONField(name = "鍦熷¥婀垮害1")
- public Float soilTemperature1 ;//鍦熷¥娓╁害1
+ public Float soilTemperature1 ;
@JSONField(name = "鍦熷¥娓╁害2")
- public Float soilTemperature2 ;//鍦熷¥娓╁害2
+ public Float soilTemperature2 ;
@JSONField(name = "鍦熷¥娓╁害3")
- public Float soilTemperature3 ;//鍦熷¥娓╁害3
+ public Float soilTemperature3 ;
@JSONField(name = "鍦熷¥娓╁害4")
- public Float soilTemperature4 ;//鍦熷¥娓╁害4
+ public Float soilTemperature4 ;
+
+ @JSONField(name = "鍦熷¥娓╁害5")
+ public Float soilTemperature5 ;
@JSONField(name = "flexem_timestamp")
public Long devDt ;//璁惧鏃堕棿
@@ -52,7 +58,7 @@
}
public String getDevDtStr() {
- if(devDt == null){
+ if(devDt != null){
return DateTime.yyyy_MM_dd_HH_mm_ss(DateTime.getDate(devDt)) ;
}else{
return "" ;
@@ -73,7 +79,7 @@
sb.append(" 鍦熷¥娓╁害3锛�" + soilTemperature3 + ", ") ;
sb.append(" 鍦熷¥娓╁害4锛�" + soilTemperature4 + ", ") ;
sb.append(" 璁惧鏃堕棿锛�" + devDt + ", ") ;
- sb.append(" 璁惧鏃堕棿锛�" + this.getDevDtStr() + ", ") ;
+ sb.append(" 璁惧鏃堕棿锛�" + this.getDevDtStr()) ;
sb.append("\n") ;
return sb.toString() ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/StateVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/StateVo.java
deleted file mode 100644
index da78e62..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/StateVo.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package com.dy.common.mw.protocol4Mqtt.pSdV1.upVos;
-
-import com.alibaba.fastjson2.annotation.JSONField;
-import com.dy.common.mw.protocol4Mqtt.Vo4Up;
-import com.dy.common.util.DateTime;
-import lombok.Data;
-
-/**
- * @Author: liurunyu
- * @Date: 2025/6/10 10:05
- * @Description
- */
-@Data
-public class StateVo implements Vo4Up {
- @JSONField(name = "flexem_message_id")
- public Integer messageId ;//娑堟伅ID
-
- public Integer no ;//娴嬬珯缂栧彿锛屽叾涓嶅湪JSON鏁版嵁涓紝鍏朵腑涓婚涓�
-
- @JSONField(name = "鎼呮媽杩愯")
- public Byte stirRunning ;//鎼呮媽杩愯
-
- @JSONField(name = "娉ㄨ偉杩愯")
- public Byte injectRunning ;//娉ㄨ偉杩愯
-
- @JSONField(name = "鐏屾簤杩愯")
- public Byte irrRunning ;//鐏屾簤杩愯
-
- @JSONField(name = "鎶ヨ")
- public Byte alarm ;//鎶ヨ
-
- @JSONField(name = "flexem_timestamp")
- public Long devDt ;//璁惧鏃堕棿
-
- public String devDtStr ;//璁惧鏃堕棿
-
- @Override
- public void setNo(Integer no ){
- this.no = no ;
- }
-
- public String getDevDtStr() {
- if(devDt == null){
- return DateTime.yyyy_MM_dd_HH_mm_ss(DateTime.getDate(devDt)) ;
- }else{
- return "" ;
- }
- }
-
- @Override
- public String toString(){
- StringBuilder sb = new StringBuilder();
- sb.append("鐘舵�佹暟鎹�=>") ;
- sb.append(" 娑堟伅ID锛�" + messageId + ", ") ;
- sb.append(" 鎼呮媽杩愯锛�" + stirRunning + ", ") ;
- sb.append(" 娉ㄨ偉杩愯锛�" + injectRunning + ", ") ;
- sb.append(" 鐏屾簤杩愯锛�" + irrRunning + ", ") ;
- sb.append(" 鎶ヨ锛�" + alarm + ", ") ;
- sb.append(" 璁惧鏃堕棿锛�" + devDt + ", ") ;
- sb.append(" 璁惧鏃堕棿锛�" + this.getDevDtStr() + ", ") ;
- sb.append("\n") ;
- return sb.toString() ;
- }
-}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/WeatherVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/WeatherVo.java
index 1b2b510..573e631 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/WeatherVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/WeatherVo.java
@@ -16,28 +16,34 @@
@JSONField(name = "flexem_message_id")
public Integer messageId ;//娑堟伅ID
- public Integer no ;//娴嬬珯缂栧彿锛屽叾涓嶅湪JSON鏁版嵁涓紝鍏朵腑涓婚涓�
+ public Integer no ;//娴嬬珯缂栧彿锛屽叾涓嶅湪JSON鏁版嵁涓紝鍏跺湪涓婚涓�
- @JSONField(name = "浜屾哀鍖栫⒊")
- public Integer carbonDioxide ;//浜屾哀鍖栫⒊
+ //@JSONField(name = "浜屾哀鍖栫⒊")
+ //public Integer carbonDioxide ;
- @JSONField(name = "鍏夌収寮哄害")
- public Integer lightIntensity ;//鍏夌収寮哄害
-
- @JSONField(name = "澶ф皵鍘嬪姏")
- public Integer atmosphericPressure ;//澶ф皵鍘嬪姏
+ //@JSONField(name = "澶ф皵鍘嬪姏")
+ //public Integer atmosphericPressure ;
@JSONField(name = "绌烘皵娓╁害")
- public Integer airTemperature ;//绌烘皵娓╁害
+ public Float airTemperature ;
@JSONField(name = "绌烘皵婀垮害")
- public Integer airHumidity ;//绌烘皵婀垮害
+ public Float airHumidity ;
- @JSONField(name = "PM2.5")
- public Integer pm25 ;//PM2.5
+ @JSONField(name = "绱绾�")
+ public Integer ultraviolet ;
- @JSONField(name = "PM10")
- public Integer pm10 ;//PM10
+ @JSONField(name = "鍏夌収寮哄害")
+ public Integer lightIntensity ;
+
+ @JSONField(name = "闆ㄩ噺")
+ public Float rainfall ;
+
+ @JSONField(name = "椋庨��")
+ public Float windSpeed ;
+
+ @JSONField(name = "椋庡悜")
+ public Integer windDirection ;
@JSONField(name = "flexem_timestamp")
@@ -62,16 +68,18 @@
public String toString(){
StringBuilder sb = new StringBuilder();
sb.append("姘旇薄鏁版嵁=>") ;
+ //sb.append(" 浜屾哀鍖栫⒊锛�" + carbonDioxide + ", ") ;
+ //sb.append(" 澶ф皵鍘嬪姏锛�" + atmosphericPressure + ", ") ;
sb.append(" 娑堟伅ID锛�" + messageId + ", ") ;
- sb.append(" 浜屾哀鍖栫⒊锛�" + carbonDioxide + ", ") ;
- sb.append(" 鍏夌収寮哄害锛�" + lightIntensity + ", ") ;
- sb.append(" 澶ф皵鍘嬪姏锛�" + atmosphericPressure + ", ") ;
sb.append(" 绌烘皵娓╁害锛�" + airTemperature + ", ") ;
sb.append(" 绌烘皵婀垮害锛�" + airHumidity + ", ") ;
- sb.append(" PM2.5锛�" + pm25 + ", ") ;
- sb.append(" PM10锛�" + pm10 + ", ") ;
+ sb.append(" 绱绾匡細" + ultraviolet + ", ") ;
+ sb.append(" 鍏夌収寮哄害锛�" + lightIntensity + ", ") ;
+ sb.append(" 闆ㄩ噺锛�" + rainfall + ", ") ;
+ sb.append(" 椋庨�燂細" + windSpeed + ", ") ;
+ sb.append(" 椋庡悜锛�" + windDirection + ", ") ;
sb.append(" 璁惧鏃堕棿锛�" + devDt + ", ") ;
- sb.append(" 璁惧鏃堕棿锛�" + this.getDevDtStr() + ", ") ;
+ sb.append(" 璁惧鏃堕棿锛�" + this.getDevDtStr() ) ;
sb.append("\n") ;
return sb.toString() ;
}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/Command4MqttSv.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/Command4MqttSv.java
new file mode 100644
index 0000000..a292a01
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/Command4MqttSv.java
@@ -0,0 +1,137 @@
+package com.dy.pipIrrGlobal.command;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.mw.protocol.Command;
+import com.dy.common.mw.protocol.CommandBackParam;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.CodeSdV1;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.ProtocolConstantSdV1;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.pipIrrGlobal.daoPr.PrStManureMapper;
+import com.dy.pipIrrGlobal.daoRm.RmCommandHistoryMapper;
+import com.dy.pipIrrGlobal.pojoPr.PrStManure;
+import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory;
+import com.dy.pipIrrGlobal.rtuMw.Web2RtuMw;
+
+import java.util.Date;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/6 11:41
+ * @Description
+ */
+public class Command4MqttSv extends Web2RtuMw {
+
+
+ /**
+ * 浠庢暟鎹簱涓煡璇㈡按鑲ユ満瀵硅薄
+ * @param prStManureDao
+ * @param manureId
+ * @return
+ */
+ public PrStManure getManure(PrStManureMapper prStManureDao, Long manureId){
+ return prStManureDao.selectByPrimaryKey(manureId);
+ }
+
+ /**
+ * 妫�鏌ュ崗璁槸鍚︽敮鎸�
+ * @param ctrlPo
+ * @return
+ */
+ public String checkProtocol(PrStManure ctrlPo){
+ return null ;
+ }
+
+ /**
+ * 鏍规嵁鍗忚鑾峰彇鍛戒护鍚嶇О
+ * @param nowComCode
+ * @param protocol
+ * @return
+ */
+ public String getCommandName(String nowComCode, String protocol, Short protocolVer){
+ if(protocol.equals(ProtocolConstantSdV1.protocolName)
+ && protocolVer.equals(ProtocolConstantSdV1.protocolVer)) {
+ return CodeSdV1.getCodeName(nowComCode) ;
+ }
+ return null ;
+ }
+
+ /**
+ * 淇濆瓨鍛戒护鍘嗗彶璁板綍
+ * @param rmCommandHistoryDao
+ * @param comId
+ * @param protocol
+ * @param commandCode
+ * @param commandName
+ * @param manureId
+ * @param rtuAddr
+ * @param param
+ * @param operator
+ * @return
+ */
+ public RmCommandHistory saveComHistoryPo(RmCommandHistoryMapper rmCommandHistoryDao,
+ Long comId,
+ String protocol,
+ String commandCode,
+ String commandName,
+ Long manureId,
+ String rtuAddr,
+ Object param,
+ Long operator) {
+ RmCommandHistory po = new RmCommandHistory();
+ po.setComId(comId);
+ po.setCommandCode(commandCode);
+ po.setCommandName(commandName);
+ po.setIntakeId(manureId);
+ po.setRtuAddr(rtuAddr);
+ po.setProtocol(protocol);
+ po.setParam((JSONObject) JSON.toJSON(param));
+ po.setSendTime(new Date());
+ po.setOperator(operator);
+ int count = rmCommandHistoryDao.insertSelective(po) ;
+ if(count == 0){
+ po = null ;
+ }
+ return po;
+ }
+
+ /**
+ * 澶勭悊閫氫俊涓棿浠惰繑鍥炵殑鍛戒护澶勭悊缁撴灉
+ * @param res
+ * @return
+ */
+ public String dealMwDealResponse(BaseResponse res){
+ if(res != null){
+ Command reCom = JSON.parseObject(res.getContent() == null ? null : JSON.toJSONString(res.getContent()), Command.class) ;
+ CommandBackParam bakParam = JSON.parseObject((reCom== null || reCom.param == null) ? null : JSON.toJSONString(reCom.param), CommandBackParam.class) ;
+ if(res.isSuccess()){
+ if(bakParam != null){
+ if(bakParam.getSuccess().booleanValue()){
+ //閫氫俊涓棿浠舵垚鍔熷鐞嗕簡鍛戒护
+ //绛夊緟鎺у埗鍣ㄦ帴鏀跺苟鎵ц鍛戒护鍚庣殑搴旂瓟锛岀劧鍚庨�氫俊涓棿浠堕�氱煡鏈ā鍧�
+ return null ;
+ }else{
+ return "閫氫俊涓棿浠跺鐞嗗懡浠ゅけ璐ワ紝澶辫触淇℃伅锛�" + bakParam.getMessage();
+ }
+ }else{
+ return "閫氫俊涓棿浠惰繑鍥炲懡浠ょ粨鏋滀腑涓嶅寘鍚獵ommandBackParam绫诲瀷鍙傛暟";
+ }
+ }else{
+ if(bakParam != null){
+ if(bakParam.getSuccess().booleanValue()){
+ //閫氫俊涓棿浠舵垚鍔熷鐞嗕簡鍛戒护
+ //绛夊緟鎺у埗鍣ㄦ帴鏀跺苟鎵ц鍛戒护鍚庣殑搴旂瓟锛岀劧鍚庨�氫俊涓棿浠堕�氱煡鏈ā鍧�
+ return "閫氫俊涓棿浠跺鐞嗗懡浠ゅけ璐ワ紝澶辫触淇℃伅锛�" + (res.getMsg() == null? "" : ("锛�" + res.getMsg())) ;
+ }else{
+ return "閫氫俊涓棿浠跺鐞嗗懡浠ゅけ璐ワ紝澶辫触淇℃伅锛�" + bakParam.getMessage();
+ }
+ }else{
+ return "閫氫俊涓棿浠跺鐞嗗懡浠ゅけ璐ワ紝澶辫触淇℃伅锛�" + (res.getMsg() == null? "" : ("锛�" + res.getMsg())) ;
+ }
+ }
+ }else{
+ return "閫氫俊涓棿浠惰繑鍥炲懡浠ょ粨鏋滀负null";
+ }
+ }
+
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmCommandHistoryMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmCommandHistoryMapper.java
index d3a0a60..0e02366 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmCommandHistoryMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmCommandHistoryMapper.java
@@ -61,6 +61,14 @@
*/
VoUnclosedParam getUncloseParam(@Param("onLineMap") String onLineMap, @Param("intakeId")Long intakeId);
+
+ /**
+ * 鏍规嵁鍙栨按鍙D鑾峰彇璇ュ彇姘村彛鏈叧闃�鍙傛暟锛屽钩鍙伴�夋嫨鍙栨按鍙e叧闃�浣跨敤
+ * @param intakeId
+ * @return
+ */
+ VoUnclosedParam getUncloseParamByCd(@Param("onLineMap") String onLineMap, @Param("intakeId")Long intakeId, @Param("code")String code);
+
/**
* 鏍规嵁鎸囧畾鏉′欢鑾峰彇鍛戒护鏃ュ織鍘嗗彶璁板綍鎬绘暟
* @param params
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java
index 0773dfd..1029716 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java
@@ -268,4 +268,25 @@
* @return
*/
VoTermCard getTermCardInfo(@Param("cardAddr")String cardAddr);
+
+ /**
+ * 鑾峰彇宸叉寕澶辨按鍗″垪琛ㄨ褰曟暟閲�
+ * @param params
+ * @return
+ */
+ Long getLostCardsCount(Map<?, ?> params);
+
+ /**
+ * 鑾峰彇宸叉寕澶辨按鍗″垪琛�
+ * @param params
+ * @return
+ */
+ List<VoCards> getLostCards(Map<?, ?> params);
+
+ /**
+ * 鏍规嵁姘村崱缂栧彿鑾峰彇鍗′俊鎭�
+ * @param cardNum
+ * @return
+ */
+ VoCardByClientNum getCardByCardNum(@Param("cardNum") String cardNum);
}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrStManure.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrStManure.java
index ce4d50f..d8ea7a5 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrStManure.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrStManure.java
@@ -37,6 +37,12 @@
public Long id;
/**
+ * FBox搴忓垪鍙�
+ */
+ @Schema(description = "FBox搴忓垪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public String fboxId ;
+
+ /**
* 姘磋偉绔欑紪鍙�
*/
@Schema(description = "姘磋偉绔欑紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrStSoil.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrStSoil.java
index 56ad0c7..c0a4814 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrStSoil.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrStSoil.java
@@ -37,6 +37,12 @@
public Long id;
/**
+ * FBox搴忓垪鍙�
+ */
+ @Schema(description = "FBox搴忓垪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public String fboxId ;
+
+ /**
* 澧掓儏绔欑紪鍙�
*/
@Schema(description = "澧掓儏绔欑紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrStWeather.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrStWeather.java
index 77db182..46b38cb 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrStWeather.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrStWeather.java
@@ -37,6 +37,12 @@
public Long id;
/**
+ * FBox搴忓垪鍙�
+ */
+ @Schema(description = "FBox搴忓垪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+ public String fboxId ;
+
+ /**
* 姘旇薄绔欑紪鍙�
*/
@Schema(description = "姘旇薄绔欑紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/Web2RtuMw.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/Web2RtuMw.java
index 118b150..23b2675 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/Web2RtuMw.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/Web2RtuMw.java
@@ -214,6 +214,24 @@
}
/**
+ * 鍒涘缓澶栭儴鍛戒护锛堝彂缁欐帶鍒跺櫒锛�
+ * @param fboxId FBox璁惧搴忓垪鍙�
+ * @param comId 鍛戒护ID
+ * @param code 鍛戒护code
+ * @return
+ */
+ public Command createMQTTCommand(String fboxId, String comId, String protocol, Short protocolVer, String code) {
+ Command com = new Command();
+ com.id = comId;
+ com.rtuAddr = fboxId;
+ com.code = code ;
+ com.protocol = protocol ;
+ com.protocolVersion = protocolVer ;
+ com.type = CommandType.mqttCommand;
+ return com ;
+ }
+
+ /**
* 鍒涘缓澶栭儴閫忎紶鍛戒护锛堝彂缁欐帶鍒跺櫒锛�
* @param comId 鍛戒护ID
* @param code 鍛戒护code
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoCardByClientNum.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoCardByClientNum.java
new file mode 100644
index 0000000..381edff
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoCardByClientNum.java
@@ -0,0 +1,46 @@
+package com.dy.pipIrrGlobal.voSe;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2025-01-15
+ * @LastEditTime 2025-01-15
+ * @Description 鏍规嵁鍐滄埛缂栧彿鑾峰彇鍗′俊鎭繑鍥炲璞�
+ */
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+@Schema(name = "鏍规嵁鍐滄埛缂栧彿鑾峰彇鍗′俊鎭繑鍥炲璞�")
+public class VoCardByClientNum {
+
+ @Schema(description = "姘村崱缂栧彿")
+ private String cardNum;
+
+ @Schema(description = "鍗$姸鎬佺爜")
+ private Integer cardState;
+
+ @Schema(description = "鍗$被鍨�")
+ private String cardType;
+
+ @Schema(description = "鍐滄埛濮撳悕")
+ private String clientName;
+
+ @Schema(description = "鍐滄埛缂栧彿")
+ private String clientNum;
+
+ @Schema(description = "韬唤璇佸彿")
+ private Long idCard;
+
+ @Schema(description = "浣欓")
+ private String money;
+
+ @Schema(description = "鎵嬫満鍙�")
+ private Long phone;
+
+ @Schema(description = "鐘舵�佸悕绉�")
+ private String stateName;
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-common-mw.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-common-mw.yml
index 2e29db9..8ae873a 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/application-common-mw.yml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-common-mw.yml
@@ -11,6 +11,7 @@
# gz: 8103 9103
# lz: 8104 9104
# jc: 8105 9105
+ # jyg: 8106 9106
pipIrr_mw_webPort: 8070 #閫氫俊涓棿浠朵腑搴旂敤锛屼笉鑳藉湪web妯″潡绯荤粺涓簲鐢�
pipIrr_mw_actutorPort: 9070 #閫氫俊涓棿浠朵腑搴旂敤锛屼笉鑳藉湪web妯″潡绯荤粺涓簲鐢�
@@ -26,4 +27,5 @@
# gz: pipIrr_gz
# lz: pipIrr_lz
# jc: pipIrr_jc
+ # jyg: pipIrr_jyg
spring_datasource_url_dbname: pipIrr_ym #鏁版嵁搴撳悕绉�
diff --git "a/pipIrr-platform/pipIrr-global/src/main/resources/application-common-web\050121\346\234\215\345\212\241\345\231\250\051.yml" "b/pipIrr-platform/pipIrr-global/src/main/resources/application-common-web\050121\346\234\215\345\212\241\345\231\250\051.yml"
index 1fa5dc0..abcb38c 100644
--- "a/pipIrr-platform/pipIrr-global/src/main/resources/application-common-web\050121\346\234\215\345\212\241\345\231\250\051.yml"
+++ "b/pipIrr-platform/pipIrr-global/src/main/resources/application-common-web\050121\346\234\215\345\212\241\345\231\250\051.yml"
@@ -1,7 +1,7 @@
common:
# 233鏈嶅姟鍣細ym,mj,sp,test
- # 121鏈嶅姟鍣細mq,yq,hlj,gz,lz,jc
- spring_main_datasource_names: mq,yq,hlj,gz,lz,jc
+ # 121鏈嶅姟鍣細mq,yq,hlj,gz,lz,jc,jyg
+ spring_main_datasource_names: mq,yq,hlj,gz,lz,jc,jyg
# 铏氭嫙鍗¤〃:
# 瀛楁in_use鎰忎负鍗犵敤鐘舵�侊紝褰撲负true鏃剁粺涓�璁剧疆鍊间负0
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-jyg.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-jyg.yml
new file mode 100644
index 0000000..61218aa
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-jyg.yml
@@ -0,0 +1,69 @@
+# 鏁版嵁婧愰厤缃�
+spring:
+ datasource: #閰嶇疆鏁版嵁婧�
+ jyg:
+ #name: ym
+ type: com.alibaba.druid.pool.DruidDataSource
+ driverClassName: com.mysql.cj.jdbc.Driver
+# url: jdbc:mysql://192.168.40.166:3306/pipIrr_jyg?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
+# url: jdbc:mysql://8.130.130.233:3306/pipIrr_jyg?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
+ url: jdbc:mysql://127.0.0.1:3306/pipIrr_jyg?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
+ username: root
+ password: dysql,;.abc!@#
+ druid:
+ # 鏁版嵁婧愬悕绉帮細褰撳瓨鍦ㄥ涓暟鎹簮鏃讹紝璁剧疆鍚嶅瓧鍙互寰堟柟渚跨殑鏉ヨ繘琛屽尯鍒�,榛樿鑷姩鐢熸垚鍚嶇О锛屾牸寮忔槸锛�"DataSource-" + System.identityHashCode(this)
+ name: druid-mysql-jyg
+ #閰嶇疆鍒濆鍖栧ぇ灏忋�佹渶灏忋�佹渶澶�
+ initialSize: 10
+ minIdle: 10
+ maxActive: 100
+ # 鑾峰彇杩炴帴鏃舵渶澶х瓑寰呮椂闂�,鍗曚綅姣銆傞厤缃簡maxWait涔嬪悗,缂虹渷鍚敤鍏钩閿�,骞跺彂鏁堢巼浼氭湁鎵�涓嬮檷,濡傛灉闇�瑕佸彲浠ラ�氳繃閰嶇疆useUnfairLock灞炴�т负true浣跨敤闈炲叕骞抽攣
+ maxWait: 60000
+ #閰嶇疆闂撮殧澶氫箙杩涜涓�娆℃娴嬶紝妫�娴嬮渶瑕佸叧闂殑绌洪棽杩炴帴锛屽崟浣嶆绉掋�� 榛樿鏄�60s锛屽お闀垮彲鑳戒細瀵艰嚧鏃犳硶鍙婃椂妫�娴嬪埌杩炴帴涓柇
+ timeBetweenEvictionRunsMillis: 60000
+ #閰嶇疆涓�涓繛鎺ュ湪杩炴帴姹犱腑鐨勬渶灏忕敓瀛樻椂闂淬�佹渶澶х敓瀛樻椂闂达紝瓒呰繃鏈�澶х敓瀛樻椂闂翠細琚Щ闄わ紝鍗曚綅姣銆�
+ minEvictableIdleTimeMillis: 300000
+ maxEvictableIdleTimeMillis: 900000
+ #鎺㈡椿銆侀獙璇侀摼鎺ユ湁鏁堟�х殑鏌ヨ锛屾柊鐗堟湰榛樿浣跨敤mysqlPing浠f浛
+ #validation-query: select 1 #娉ㄩ噴鎺夛紝閲囩敤榛樿鐨刴ysqlPing
+ #閰嶇疆浠庤繛鎺ユ睜鑾峰彇杩炴帴鏃讹紝褰撹繛鎺ョ┖闂叉椂闂村ぇ浜巘imeBetweenEvictionRunsMillis鏃舵槸鍚︽鏌ヨ繛鎺ユ湁鏁堟�э紝true姣忔閮芥鏌ワ紱false涓嶆鏌ャ��
+ testWhileIdle: true
+ #閰嶇疆浠庤繛鎺ユ睜鑾峰彇杩炴帴鏃跺拰鍚戣繛鎺ユ睜褰掕繕杩炴帴鏃讹紝鏄惁妫�鏌ヨ繛鎺ユ湁鏁堟��
+ #姣忔鑾峰彇鎴栧綊杩樿繛鎺ラ兘妫�娴嬪お棰戠箒锛岄櫎闈炵壒鍒噸瑕佹垨缃戠粶鐗瑰埆涓嶅彲闈犵瓑鎯呭喌锛屽缓璁敤testWhileIdle + timeBetweenEvictionRunsMillis浠f浛銆�-->
+ testOnBorrow: false
+ testOnReturn: false
+ #閰嶇疆鏄惁瀹氭湡鎺㈡椿銆佹帰娲婚棿闅�, 榛樿120s
+ keepAlive: true
+ #keepAliveBetweenTimeMillis must be greater than timeBetweenEvictionRunsMillis
+ keepAliveBetweenTimeMillis: 1200000
+ #閰嶇疆涓�涓繛鎺ユ渶澶т娇鐢ㄦ鏁帮紝閬垮厤闀挎椂闂翠娇鐢ㄧ浉鍚岃繛鎺ラ�犳垚鏈嶅姟鍣ㄧ璐熻浇涓嶅潎琛°��
+ phyMaxUseCount: 1000
+ #鏄惁缂撳瓨preparedStatement锛屼篃灏辨槸PSCache銆侾SCache瀵规敮鎸佹父鏍囩殑鏁版嵁搴撴�ц兘鎻愬崌宸ㄥぇ锛屾瘮濡傝oracle銆傚湪mysql涓嬪缓璁叧闂��
+ poolPreparedStatements: false
+ #瑕佸惎鐢≒SCache锛屽繀椤婚厤缃ぇ浜�0锛屽綋澶т簬0鏃讹紝poolPreparedStatements鑷姩瑙﹀彂淇敼涓簍rue銆傚湪Druid涓紝涓嶄細瀛樺湪Oracle涓婸SCache鍗犵敤鍐呭瓨杩囧鐨勯棶棰橈紝鍙互鎶婅繖涓暟鍊奸厤缃ぇ涓�浜涳紝姣斿璇�100
+ maxOpenPreparedStatements: -1
+ #鎸囧畾姣忎釜杩炴帴涓奝SCache鐨勫ぇ灏�
+ maxPoolPreparedStatementPerConnectionSize: 20
+ #灞炴�х被鍨嬫槸瀛楃涓诧紝閫氳繃鍒悕鐨勬柟寮忛厤缃墿灞曟彃浠讹紝甯哥敤鐨勬彃浠舵湁锛�
+ #鐩戞帶缁熻鐢ㄧ殑filter:stat锛屾棩蹇楃敤鐨刦ilter:log4j锛岄槻寰ql娉ㄥ叆鐨刦ilter:wall
+ #filters: stat,wall,config
+ filters: wall,config
+ webStatFilter:
+ # 娣诲姞杩囨护瑙勫垯
+ urlPattern: /*
+ # 蹇界暐杩囨护鏍煎紡
+ exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
+ statViewServlet:
+ # 璁剧疆ip鐧藉悕鍗�
+ # allow: 127.0.0.1
+ # 璁剧疆ip榛戝悕鍗曪紝浼樺厛绾ч珮浜庣櫧鍚嶅崟
+ deny:
+ # 璁剧疆鎺у埗鍙扮鐞嗙敤鎴�
+ # loginUsername: root
+ # loginPassword: root
+ # 鏄惁鍙互閲嶇疆鏁版嵁
+ resetEnable: false
+ # 寮�鍚痙ruid鐩戞帶椤甸潰
+ #enabled: true
+ enabled: false
+
diff --git "a/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050166web\346\226\207\344\273\266\350\212\261\347\224\237\345\243\263\051.yml" "b/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050166web\346\226\207\344\273\266\350\212\261\347\224\237\345\243\263\051.yml"
index b4f1c39..808d0b3 100644
--- "a/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050166web\346\226\207\344\273\266\350\212\261\347\224\237\345\243\263\051.yml"
+++ "b/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050166web\346\226\207\344\273\266\350\212\261\347\224\237\345\243\263\051.yml"
@@ -363,6 +363,8 @@
comSendUrl: "http://127.0.0.1:8105/rtuMw/com/send"
#Rtu杩滅▼鍛戒护缁撴灉鍥炶皟鍦板潃
rtuCallbackUrl_rm: "http://127.0.0.1:8081/remote/comRes/receive"
+ #MQTT杩滅▼鍛戒护缁撴灉鍥炶皟鍦板潃
+ mqttCallbackUrl_rm: "http://127.0.0.1:8081/remote/mqttRes/receive"
#鎺ユ敹閫氫俊涓棿浠舵秷鎭腑蹇冩秷鎭殑鍦板潃
mwMsCenterReceiveUrl_rm: "http://127.0.0.1:8081/remote/msCenter/receive"
#rtu杩滅▼鍗囩骇鐘舵�佷俊鎭洖璋冨湴鍧�
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
index cd1e11e..5109cd1 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
@@ -361,8 +361,13 @@
jc:
url: "http://127.0.0.1:8105"
comSendUrl: "http://127.0.0.1:8105/rtuMw/com/send"
+ jyg:
+ url: "http://127.0.0.1:8106"
+ comSendUrl: "http://127.0.0.1:8106/rtuMw/com/send"
#Rtu杩滅▼鍛戒护缁撴灉鍥炶皟鍦板潃
rtuCallbackUrl_rm: "http://127.0.0.1:8081/remote/comRes/receive"
+ #MQTT杩滅▼鍛戒护缁撴灉鍥炶皟鍦板潃
+ mqttCallbackUrl_rm: "http://127.0.0.1:8081/remote/mqttRes/receive"
#鎺ユ敹閫氫俊涓棿浠舵秷鎭腑蹇冩秷鎭殑鍦板潃
mwMsCenterReceiveUrl_rm: "http://127.0.0.1:8081/remote/msCenter/receive"
#rtu杩滅▼鍗囩骇鐘舵�佷俊鎭洖璋冨湴鍧�
@@ -471,6 +476,14 @@
secret: SEC6042bc964d08899a5853eb321eb5a4d842a395982777f815bd07451c879228b7
at-all: true
mobile: 18602657034
+ jyg:
+ enable: false #鏄惁鍚敤
+ robot:
+ url: https://oapi.dingtalk.com/robot/send
+ access-token: fecef8e7725998f8912af05419580861aafc73413c4920036c07c050fa33055f
+ secret: SEC6042bc964d08899a5853eb321eb5a4d842a395982777f815bd07451c879228b7
+ at-all: true
+ mobile: 18602657034
#瑙嗛鐩戞帶鐩稿叧
video:
diff --git "a/pipIrr-platform/pipIrr-global/src/main/resources/init-config\050121\346\234\215\345\212\241\345\231\250\051.xml" "b/pipIrr-platform/pipIrr-global/src/main/resources/init-config\050121\346\234\215\345\212\241\345\231\250\051.xml"
index 9cca4e1..3e7a3c6 100644
--- "a/pipIrr-platform/pipIrr-global/src/main/resources/init-config\050121\346\234\215\345\212\241\345\231\250\051.xml"
+++ "b/pipIrr-platform/pipIrr-global/src/main/resources/init-config\050121\346\234\215\345\212\241\345\231\250\051.xml"
@@ -380,5 +380,68 @@
<item3 typeName="璁惧淇濆吇"/>
</taskType>
</org6>
+ <org7 tag="jyg" name="鍢夊唱鍏�" enable="true">
+ <districts>
+ <province name="鐢樿們鐪�" num="62" level="0">
+ <city name="鍢夊唱鍏冲競" num="02" level="1">
+ <country name="鏂板煄闀�" num="01" level="2" />
+ </city>
+ </province>
+ </districts>
+ <dictionaries>
+ <dict code="icProtocol" title="IC鍗″崗璁�" valueType="2">
+ <dictItem>
+ <!-- 闈冲缓浼熺増鏈琁C鍗″崗璁� 鍗′腑缂栧彿宸茬粡鍔犻暱锛堜笌鐜嬫睙娴风増鏈竴鑷达級锛屼笌绾�佺増鏈崗璁笉鍚� -->
+ <item1 dictCode="icProtocol" value="icP202203" name="鑰佸崱鍗忚" status="1" sort="0" />
+ <!-- 鐜嬫睙娴风増鏈琁C鍗″崗璁� -->
+ <item2 dictCode="icProtocol" value="icP202404" name="鏂板崱鍗忚" status="0" sort="1" />
+ </dictItem>
+ </dict>
+ </dictionaries>
+ <user name="瓒呯骇绠$悊鍛�" phone="admin" password="dyyjy" supperAdmin="1" />
+ <payments>
+ <item1 name="鐜伴噾"/>
+ <item2 name="POS鏈�"/>
+ <item3 name="閾惰杞处"/>
+ </payments>
+ <settings>
+ <item1 item_name="lng" item_value="98.28875541687012" remarks="缁忓害"/>
+ <item2 item_name="lat" item_value="39.77140971937612" remarks="绾害"/>
+ <item3 item_name="zoomMp" item_value="12" remarks="鎵嬫満鍦板浘缂╂斁绾у埆"/>
+ <item4 item_name="zoomPc" item_value="19" remarks="PC鏈哄湴鍥剧缉鏀剧骇鍒�"/>
+ <item5 item_name="projectName" item_value="楂樻晥鏅烘収绠$亴寰亴浜戞湇鍔$鐞嗗钩鍙�" remarks="椤圭洰鍚嶇О"/>
+ </settings>
+ <waterTypes>
+ <item1 typeName="鐏屾簤鐢ㄦ按"/>
+ <item2 typeName="宸ヤ笟鐢ㄦ按"/>
+ <item3 typeName="鐢熸椿鐢ㄦ按"/>
+ <item4 typeName="鍏绘畺鐢ㄦ按"/>
+ <item5 typeName="缁垮寲鐢ㄦ按"/>
+ </waterTypes>
+ <waterPrice price="0.90" />
+ <irrigateProfile>
+ <item1 defaultValue = "10" unit = "2" sort = "1" type = "1"/>
+ <item2 defaultValue = "20" unit = "2" sort = "2" type = "1" />
+ <item3 defaultValue = "1" unit = "1" sort = "3" type = "1"/>
+ <item4 defaultValue = "2" unit = "1" sort = "4" type = "1"/>
+ <item5 defaultValue = "20" unit = "3" sort = "1" type = "2"/>
+ <item6 defaultValue = "30" unit = "3" sort = "2" type = "2"/>
+ <item7 defaultValue = "50" unit = "3" sort = "3" type = "2"/>
+ <item8 defaultValue = "80" unit = "3" sort = "4" type = "2"/>
+ </irrigateProfile>
+ <rechargeProfile>
+ <item1 rechargeAmount = "50" sort = "1"/>
+ <item2 rechargeAmount = "100" sort = "2" />
+ <item3 rechargeAmount = "200" sort = "3"/>
+ <item4 rechargeAmount = "300" sort = "4"/>
+ <item5 rechargeAmount = "500" sort = "5"/>
+ <item6 rechargeAmount = "1000" sort = "6"/>
+ </rechargeProfile>
+ <taskType>
+ <item1 typeName="璁惧瀹夎"/>
+ <item2 typeName="璁惧缁翠慨"/>
+ <item3 typeName="璁惧淇濆吇"/>
+ </taskType>
+ </org7>
</orgs>
</config>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStManureMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStManureMapper.xml
index c16fe8a..a70239a 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStManureMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStManureMapper.xml
@@ -6,6 +6,7 @@
<!--@Table pr_st_manure-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="no" jdbcType="INTEGER" property="no" />
+ <result column="fbox_id" jdbcType="VARCHAR" property="fboxId" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="lng" jdbcType="DOUBLE" property="lng" />
<result column="lat" jdbcType="DOUBLE" property="lat" />
@@ -14,11 +15,11 @@
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
- id, `no`, `name`, lng, lat, remark, deleted
+ id, fbox_id,`no`, `name`, lng, lat, remark, deleted
</sql>
<sql id="part_Column_List">
<!--@mbg.generated-->
- id, `no`, `name`, lng, lat, remark
+ id, fbox_id, `no`, `name`, lng, lat, remark
</sql>
<sql id="simple_Column_List">
<!--@mbg.generated-->
@@ -50,11 +51,11 @@
</delete>
<insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoPr.PrStManure">
<!--@mbg.generated-->
- insert into pr_st_manure (id, `no`, `name`, lng,
+ insert into pr_st_manure (id, fbox_id, `no`, `name`, lng,
lat, remark, deleted)
- values (#{id,jdbcType=BIGINT}, #{no,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR},
- #{lng,jdbcType=DOUBLE}, #{lat,jdbcType=DOUBLE}, #{remark,jdbcType=VARCHAR},
- #{deleted,jdbcType=TINYINT})
+ values (#{id,jdbcType=BIGINT}, #{fboxId,jdbcType=BIGINT}, #{no,jdbcType=INTEGER},
+ #{name,jdbcType=VARCHAR}, #{lng,jdbcType=DOUBLE}, #{lat,jdbcType=DOUBLE},
+ #{remark,jdbcType=VARCHAR},#{deleted,jdbcType=TINYINT})
</insert>
<insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoPr.PrStManure">
<!--@mbg.generated-->
@@ -62,6 +63,9 @@
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
+ </if>
+ <if test="fboxId != null">
+ fbox_id,
</if>
<if test="no != null">
`no`,
@@ -85,6 +89,9 @@
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=BIGINT},
+ </if>
+ <if test="fboxId != null">
+ #{fboxId,jdbcType=BIGINT},
</if>
<if test="no != null">
#{no,jdbcType=INTEGER},
@@ -110,6 +117,9 @@
<!--@mbg.generated-->
update pr_st_manure
<set>
+ <if test="fboxId != null">
+ fbox_id = #{fboxId,jdbcType=BIGINT},
+ </if>
<if test="no != null">
`no` = #{no,jdbcType=INTEGER},
</if>
@@ -134,7 +144,8 @@
<update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoPr.PrStManure">
<!--@mbg.generated-->
update pr_st_manure
- set `no` = #{no,jdbcType=INTEGER},
+ set fbox_id = #{fboxId,jdbcType=INTEGER},
+ `no` = #{no,jdbcType=INTEGER},
`name` = #{name,jdbcType=VARCHAR},
lng = #{lng,jdbcType=DOUBLE},
lat = #{lat,jdbcType=DOUBLE},
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStSoilMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStSoilMapper.xml
index 682efa1..598436b 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStSoilMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStSoilMapper.xml
@@ -6,6 +6,7 @@
<!--@Table pr_st_soil-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="no" jdbcType="INTEGER" property="no" />
+ <result column="fbox_id" jdbcType="VARCHAR" property="fboxId" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="lng" jdbcType="DOUBLE" property="lng" />
<result column="lat" jdbcType="DOUBLE" property="lat" />
@@ -14,11 +15,11 @@
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
- id, `no`, `name`, lng, lat, remark, deleted
+ id, fbox_id,`no`, `name`, lng, lat, remark, deleted
</sql>
<sql id="part_Column_List">
<!--@mbg.generated-->
- id, `no`, `name`, lng, lat, remark
+ id, fbox_id, `no`, `name`, lng, lat, remark
</sql>
<sql id="simple_Column_List">
<!--@mbg.generated-->
@@ -50,11 +51,11 @@
</delete>
<insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoPr.PrStSoil">
<!--@mbg.generated-->
- insert into pr_st_soil (id, `no`, `name`, lng,
+ insert into pr_st_soil (id, fbox_id, `no`, `name`, lng,
lat, remark, deleted)
- values (#{id,jdbcType=BIGINT}, #{no,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR},
- #{lng,jdbcType=DOUBLE}, #{lat,jdbcType=DOUBLE}, #{remark,jdbcType=VARCHAR},
- #{deleted,jdbcType=TINYINT})
+ values (#{id,jdbcType=BIGINT}, #{fboxId,jdbcType=BIGINT}, #{no,jdbcType=INTEGER},
+ #{name,jdbcType=VARCHAR}, #{lng,jdbcType=DOUBLE}, #{lat,jdbcType=DOUBLE},
+ #{remark,jdbcType=VARCHAR},#{deleted,jdbcType=TINYINT})
</insert>
<insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoPr.PrStSoil">
<!--@mbg.generated-->
@@ -62,6 +63,9 @@
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
+ </if>
+ <if test="fboxId != null">
+ fbox_id,
</if>
<if test="no != null">
`no`,
@@ -85,6 +89,9 @@
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=BIGINT},
+ </if>
+ <if test="fboxId != null">
+ #{fboxId,jdbcType=BIGINT},
</if>
<if test="no != null">
#{no,jdbcType=INTEGER},
@@ -110,6 +117,9 @@
<!--@mbg.generated-->
update pr_st_soil
<set>
+ <if test="fboxId != null">
+ fbox_id = #{fboxId,jdbcType=BIGINT},
+ </if>
<if test="no != null">
`no` = #{no,jdbcType=INTEGER},
</if>
@@ -134,7 +144,8 @@
<update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoPr.PrStSoil">
<!--@mbg.generated-->
update pr_st_soil
- set `no` = #{no,jdbcType=INTEGER},
+ set fbox_id = #{fboxId,jdbcType=INTEGER},
+ `no` = #{no,jdbcType=INTEGER},
`name` = #{name,jdbcType=VARCHAR},
lng = #{lng,jdbcType=DOUBLE},
lat = #{lat,jdbcType=DOUBLE},
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStWeatherMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStWeatherMapper.xml
index e971ed2..ade2d3c 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStWeatherMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrStWeatherMapper.xml
@@ -6,6 +6,7 @@
<!--@Table pr_st_weather-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="no" jdbcType="INTEGER" property="no" />
+ <result column="fbox_id" jdbcType="VARCHAR" property="fboxId" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="lng" jdbcType="DOUBLE" property="lng" />
<result column="lat" jdbcType="DOUBLE" property="lat" />
@@ -14,11 +15,11 @@
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
- id, `no`, `name`, lng, lat, remark, deleted
+ id, fbox_id,`no`, `name`, lng, lat, remark, deleted
</sql>
<sql id="part_Column_List">
<!--@mbg.generated-->
- id, `no`, `name`, lng, lat, remark
+ id, fbox_id, `no`, `name`, lng, lat, remark
</sql>
<sql id="simple_Column_List">
<!--@mbg.generated-->
@@ -50,11 +51,11 @@
</delete>
<insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoPr.PrStWeather">
<!--@mbg.generated-->
- insert into pr_st_weather (id, `no`, `name`, lng,
+ insert into pr_st_weather (id, fbox_id, `no`, `name`, lng,
lat, remark, deleted)
- values (#{id,jdbcType=BIGINT}, #{no,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR},
- #{lng,jdbcType=DOUBLE}, #{lat,jdbcType=DOUBLE}, #{remark,jdbcType=VARCHAR},
- #{deleted,jdbcType=TINYINT})
+ values (#{id,jdbcType=BIGINT}, #{fboxId,jdbcType=BIGINT}, #{no,jdbcType=INTEGER},
+ #{name,jdbcType=VARCHAR}, #{lng,jdbcType=DOUBLE}, #{lat,jdbcType=DOUBLE},
+ #{remark,jdbcType=VARCHAR},#{deleted,jdbcType=TINYINT})
</insert>
<insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoPr.PrStWeather">
<!--@mbg.generated-->
@@ -62,6 +63,9 @@
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
+ </if>
+ <if test="fboxId != null">
+ fbox_id,
</if>
<if test="no != null">
`no`,
@@ -85,6 +89,9 @@
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=BIGINT},
+ </if>
+ <if test="fboxId != null">
+ #{fboxId,jdbcType=BIGINT},
</if>
<if test="no != null">
#{no,jdbcType=INTEGER},
@@ -110,6 +117,9 @@
<!--@mbg.generated-->
update pr_st_weather
<set>
+ <if test="fboxId != null">
+ fbox_id = #{fboxId,jdbcType=BIGINT},
+ </if>
<if test="no != null">
`no` = #{no,jdbcType=INTEGER},
</if>
@@ -134,7 +144,8 @@
<update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoPr.PrStWeather">
<!--@mbg.generated-->
update pr_st_weather
- set `no` = #{no,jdbcType=INTEGER},
+ set fbox_id = #{fboxId,jdbcType=INTEGER},
+ `no` = #{no,jdbcType=INTEGER},
`name` = #{name,jdbcType=VARCHAR},
lng = #{lng,jdbcType=DOUBLE},
lat = #{lat,jdbcType=DOUBLE},
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml
index 25c58bc..7cd3168 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml
@@ -323,6 +323,35 @@
LIMIT 0,1
</select>
+ <!--鏍规嵁鍙栨按鍙D鑾峰彇璇ュ彇姘村彛鏈叧闃�鍙傛暟-->
+ <select id="getUncloseParamByCd" resultType="com.dy.pipIrrGlobal.voRm.VoUnclosedParam">
+ SELECT com.rtu_addr AS rtuAddr,
+ com.param ->> '$.orderNo' AS orderNo,
+ com.param ->> '$.icCardNo' AS vcNum
+ FROM rm_command_history com
+ INNER JOIN pr_controller con ON com.rtu_addr = con.rtuAddr
+ INNER JOIN pr_intake inta ON con.intakeId = inta.id
+ INNER JOIN JSON_TABLE(
+ <!-- '[{"rtuAddr":"620201000029","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',-->
+ #{onLineMap},
+ '$[*]' COLUMNS (
+ rtuAddr VARCHAR(20) PATH '$.rtuAddr',
+ isOnLine BOOLEAN PATH '$.isOnLine'
+ )
+ ) rtus ON com.rtu_addr = rtus.rtuAddr
+ WHERE com.command_code = #{code}
+ AND con.intakeId = #{intakeId}
+ AND NOT EXISTS(
+ SELECT *
+ FROM rm_command_history
+ WHERE (result IS NULL OR result = 1)
+ AND (command_code = '93' OR command_code = 'A3' OR command_code = '98')
+ AND param ->> '$.orderNo' = com.param ->> '$.orderNo'
+ )
+ ORDER BY com.send_time DESC
+ LIMIT 0,1
+ </select>
+
<!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍛戒护鏃ュ織鍘嗗彶璁板綍鎬绘暟-->
<select id="getCommandHistoriesCount" resultType="java.lang.Long">
SELECT COUNT(*) AS recordCount
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
index 3714787..f00cfd5 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
@@ -808,4 +808,60 @@
ORDER BY card.createDt DESC
LIMIT 1
</select>
+
+ <!--鑾峰彇宸叉寕澶辨按鍗″垪琛ㄨ褰曟暟閲�-->
+ <select id="getLostCardsCount" parameterType="java.util.Map" resultType="java.lang.Long">
+ SELECT COUNT(*) AS recordCount
+ FROM se_client_card card
+ LEFT JOIN se_client cli ON card.clientId = cli.id
+ WHERE card.state = 3
+ </select>
+
+ <!--鑾峰彇宸叉寕澶辨按鍗″垪琛�-->
+ <select id="getLostCards" resultType="com.dy.pipIrrGlobal.voSe.VoCards">
+ SELECT cli.clientNum,
+ cli.name AS clientName,
+ card.cardNum,
+ cli.phone,
+ cli.idCard,
+ card.state AS cardState,
+ '宸叉寕澶�' AS stateName,
+ '鍐滄埛鍗�' AS cardType,
+ FORMAT(card.money, 2) AS money
+ FROM se_client_card card
+ LEFT JOIN se_client cli ON card.clientId = cli.id
+ WHERE card.state = 3
+ ORDER BY card.lossDtDt DESC
+ <trim prefix="limit ">
+ <if test="start != null and count != null">
+ #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+ </if>
+ </trim>
+ </select>
+
+ <!--鏍规嵁姘村崱缂栧彿鑾峰彇鍗′俊鎭�-->
+ <select id="getCardByCardNum" resultType="com.dy.pipIrrGlobal.voSe.VoCardByClientNum">
+ SELECT
+ card.cardNum,
+ card.state AS cardState,
+ '鍐滄埛鍗�' AS cardType,
+ cli.name AS clientName,
+ cli.clientNum,
+ cli.idCard,
+ FORMAT(card.money, 1) AS money,
+ cli.phone,
+ (CASE
+ WHEN card.state = 1 THEN '姝e父'
+ WHEN card.state = 2 THEN '宸叉敞閿�'
+ WHEN card.state = 3 THEN '宸叉寕澶�'
+ WHEN card.state = 4 THEN '鏃犳晥'
+ ELSE '鏈煡'
+ END) AS stateName
+ FROM se_client_card card
+ INNER JOIN se_client cli ON card.clientId = cli.id
+ WHERE card.cardNum = #{cardNum}
+ AND card.state != 4
+ ORDER BY card.createDt DESC
+ LIMIT 1
+ </select>
</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
index e823bbd..13c0ca2 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
@@ -470,10 +470,14 @@
}else{
mqVo.svUserPassword = mqVo.svUserPassword.trim() ;
}
- mqVo.poolMaxSize = conf.getSetAttrPlusInt(doc, "config.mqtt", "poolMaxSize", null, 5, 360000, null);
- if(mqVo.poolMaxSize <= 1 || mqVo.poolMaxSize > 1000){
- throw new Exception("config.mqtt.poolMaxSize閰嶇疆鐨勮繛鎺ユ睜杩炴帴鏈�澶ф暟閲忎笉鍚堟硶") ;
- }
+ mqVo.poolMaxSize = conf.getSetAttrPlusInt(doc, "config.mqtt", "poolMaxSize", null, 1, 1000, null);
+
+ mqVo.sendInterval = conf.getSetAttrPlusInt(doc, "config.mqtt", "sendInterval", null, 1, 3600, null) * 1000L ;
+
+ mqVo.reSendTimesByNoResult = conf.getSetAttrPlusInt(doc, "config.mqtt", "reSendTimesByNoResult", null, 0, 100, null);
+
+ mqVo.comCacheTimeout = conf.getSetAttrPlusInt(doc, "config.mqtt", "comCacheTimeout", null, 1, 3600, null) * 1000L ;
+
mqVo.useMemoryPersistence = conf.getSetAttrBoolean(doc, "config.mqtt", "useMemoryPersistence", null, null) ;
String proAndDevIds = conf.getSetAttrTxt(doc, "config.mqtt", "protocolAndDeviceIds", null, false, null) ;
if(proAndDevIds == null || proAndDevIds.trim().equals("")){
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/DevStatusDealer.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/DevStatusDealer.java
index d3b2f2b..35f3c71 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/DevStatusDealer.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/DevStatusDealer.java
@@ -43,6 +43,16 @@
return rsMap ;
}
}
+
+ public static Boolean oneOnLine(String devId){
+ synchronized (map){
+ DevStatus st = map.get(devId) ;
+ if(st != null){
+ return st.onLine ;
+ }
+ return false ;
+ }
+ }
/**
* 缁熻鍦ㄧ嚎涓庝笉鍦ㄧ嚎鎯呭喌
*/
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttPubMsgNode.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttPubMsgNode.java
index 504ee3f..1bfd24e 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttPubMsgNode.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttPubMsgNode.java
@@ -20,12 +20,16 @@
public MqttPubMsg result ;//涓嬭鍛戒护
public Long cachTime ;//缂撳瓨鏃跺埢
public boolean onceReceivedResult ;//宸茬粡鏀跺埌鍛戒护搴旂瓟
+ public long lastSendTime = 0 ;//涓婃鍙戦�佹椂闂�
+ public int sendTimes = 0 ;//鍙戦�佹鏁�
public MqttPubMsgNode(MqttPubMsg result){
this.result = result ;
this.cachTime = System.currentTimeMillis() ;
this.onceReceivedResult = false ;
+ this.lastSendTime = 0L ;
+ this.sendTimes = 0 ;
}
/**
@@ -36,9 +40,13 @@
public boolean dealSelf(Long now){
if(this.onceReceivedResult){
//宸茬粡鏀跺埌鍛戒护缁撴灉
- //璁板綍鐘舵��
- //RtuStatusDealer.commandSuccess(this.result.rtuAddr, this.result.downCode, this.result.downCodeName);
return true ;
+ }
+ if(this.sendTimes >= (1 + MqttUnit.confVo.reSendTimesByNoResult)){
+ return this.decideRemoveNodeFromCach(now, null) ;
+ }
+ if(this.lastSendTime != 0 && now - this.lastSendTime >= MqttUnit.confVo.sendInterval){
+ return this.decideRemoveNodeFromCach(now, null) ;
}
boolean noConnect2MqSv = false ;
MqttManager mqttManager = MqttManager.getInstance() ;
@@ -47,7 +55,7 @@
noConnect2MqSv = mqttManager.poolIsClose() ;
if(noConnect2MqSv){
//鏈浘杩炴帴MQTT鏈嶅姟鍣�
- return this.decideRemoveNodeFromCach(now) ;
+ return this.decideRemoveNodeFromCach(now, null) ;
}else{
try {
//濡傛灉缃戠粶涓嶅ソ鎴栨柇缃戯紝姝ゅ鐢ㄦ椂杈冮暱
@@ -61,16 +69,18 @@
}
if(noConnect2MqSv){
//鏈浘杩炴帴MQTT鏈嶅姟鍣�
- return this.decideRemoveNodeFromCach(now) ;
+ return this.decideRemoveNodeFromCach(now, null) ;
}else{
if(mqttClient != null && mqttClient.isConnected()){
try {
mqttManager.publishMsg(mqttClient, this.result.topic.longName(), this.result.msg);
+ this.sendTimes ++ ;
+ this.lastSendTime = System.currentTimeMillis() ;
DevStatusDealer.afterSendPubMessage(this.result.deviceId);
- RtuLogDealer.log4Mqtt(this.result.deviceId, "鍙戝竷娑堟伅 涓婚锛�" + this.result.topic + " 娑堟伅锛�" + this.result.msg);
- log.info("鍙戝竷MQTT娑堟伅锛堜富棰�=" + this.result.topic + "锛�" + this.result.msg);
+ RtuLogDealer.log4Mqtt(this.result.deviceId, "鍙戝竷娑堟伅 涓婚锛�" + this.result.topic.longName() + " 娑堟伅锛�" + this.result.msg);
+ log.info("鍙戝竷MQTT娑堟伅锛堜富棰�=" + this.result.topic.longName() + "锛�" + this.result.msg);
}catch (Exception e){
- log.error("MQTT鍙戝竷娑堟伅澶辫触锛堜富棰�=" + this.result.topic + "锛�" , e);
+ log.error("MQTT鍙戝竷娑堟伅澶辫触锛堜富棰�=" + this.result.topic.longName() + "锛�" , e);
}finally {
mqttManager.pushMqttClient(mqttClient);
}
@@ -81,18 +91,18 @@
}
}else{
//鏈浘杩炴帴MQTT鏈嶅姟鍣�
- return this.decideRemoveNodeFromCach(now) ;
+ return this.decideRemoveNodeFromCach(now, false) ;
}
}
}
- private boolean decideRemoveNodeFromCach(Long now){
- if(!this.result.isCacheForOffLine){
+ private boolean decideRemoveNodeFromCach(Long now, Boolean isOffLine){
+ if(isOffLine != null && isOffLine.booleanValue() && !this.result.isCacheForOffLine){
//涓嶅湪绾垮懡浠や笉缂撳瓨
return true ;
}else{
//涓嶅湪绾垮懡浠ょ紦瀛�
- if(now - this.cachTime >= ServerProperties.offLineCacheTimeout){
+ if(now - this.cachTime >= MqttUnit.confVo.comCacheTimeout){
//缂撳瓨瓒呮椂
return true ;
}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttUnitConfigVo.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttUnitConfigVo.java
index e2cad34..92f347a 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttUnitConfigVo.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttUnitConfigVo.java
@@ -13,6 +13,9 @@
public String svUserName ;//
public String svUserPassword ;//
public Integer poolMaxSize ;//
+ public Long sendInterval ;//
+ public Integer reSendTimesByNoResult ;//
+ public Long comCacheTimeout ;//
public Boolean useMemoryPersistence ;
public String[] protocolAndDeviceIds ;//璁惧鍗忚涓嶪D锛團Box锛塱d
public String[] deviceIds ;//璁惧锛團Box锛塱d
@@ -28,7 +31,10 @@
this.svUserName = "dyyjy" ;
this.svUserPassword = "Dyyjy2025,;.abc!@#" ;
this.poolMaxSize = 10 ;
- useMemoryPersistence = true ;
+ this.sendInterval = 60000L ;
+ this.reSendTimesByNoResult = 0 ;
+ this.comCacheTimeout = 60000L ;
+ this.useMemoryPersistence = true ;
this.pubTopicQos = 1 ;
this.noSubThenOff = 10 * 60 * 10000L ;
}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TkMqttData.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TkMqttData.java
index 918f363..6139870 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TkMqttData.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TkMqttData.java
@@ -1,6 +1,6 @@
package com.dy.rtuMw.server.rtuData;
-import com.dy.common.mw.protocol4Mqtt.pSdV1.MqttSubMsgSdV1;
+import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
import com.dy.rtuMw.server.rtuData.pSdV1.TkFindPSdV1;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -26,7 +26,7 @@
if(data == null){
log.error("涓ラ噸閿欒锛孧qtt璁㈤槄娑堟伅鏁版嵁涓虹┖锛�" );
}else{
- if(data instanceof MqttSubMsgSdV1){
+ if(data instanceof MqttSubMsg){
this.toNextOneTask(data, TkFindPSdV1.taskId);
}else{
log.error("涓ラ噸閿欒锛岃鏁版嵁绫诲瀷锛�" + data.getClass().getName() + "锛夛紝鎺ユ敹鏁版嵁浠诲姟杩樻湭瀹炵幇锛�" );
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkFindPSdV1.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkFindPSdV1.java
index eec2554..ce5def5 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkFindPSdV1.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/pSdV1/TkFindPSdV1.java
@@ -1,6 +1,6 @@
package com.dy.rtuMw.server.rtuData.pSdV1;
-import com.dy.common.mw.protocol4Mqtt.pSdV1.MqttSubMsgSdV1;
+import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
import com.dy.rtuMw.server.rtuData.TaskSurpport;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -24,7 +24,7 @@
@Override
public void execute(Object data) {
//鍓嶉潰鐨勪换鍔″凡缁忓垽鏂簡data涓嶄负绌�
- MqttSubMsgSdV1 msg = (MqttSubMsgSdV1)data ;
+ MqttSubMsg msg = (MqttSubMsg)data ;
log.info(msg.toString());
}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java
index a53defb..196b13c 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java
@@ -7,6 +7,7 @@
import com.dy.rtuMw.server.forTcp.TcpSessionCache;
import com.dy.rtuMw.server.local.CommandInnerDeaLer;
import com.dy.rtuMw.server.local.ReturnCommand;
+import com.dy.rtuMw.server.mqtt.DevStatusDealer;
import com.dy.rtuMw.server.mqtt.MqttManager;
import com.dy.rtuMw.server.msCenter.MsCenterUnit;
import com.dy.rtuMw.server.tasks.WebDownCom4MqttTask;
@@ -375,15 +376,18 @@
* @return 缁撴灉
*/
private BaseResponse<Command> dealMqttCommand(Command command){
- String rtuAddr = command.getRtuAddr() ;
- if(rtuAddr == null || rtuAddr.trim().equals("")){
- return BaseResponseUtils.buildError(ReturnCommand.errored("鍑洪敊锛岃澶嘔D涓虹┖锛�", command.getId(), command.getCode())) ;
+ String mqttDevId = command.getRtuAddr() ;//FBox璁惧鍙�
+ if(mqttDevId == null || mqttDevId.trim().equals("")){
+ return BaseResponseUtils.buildError(ReturnCommand.errored("鍑洪敊锛孎Box璁惧ID涓虹┖锛�", command.getId(), command.getCode())) ;
}
if(!ServerProperties.mqttUnitEnable.booleanValue()){
return BaseResponseUtils.buildError(ReturnCommand.errored("鍑洪敊锛孧QTT杩炴帴妯″潡閰嶇疆鏈惎鍔紒", command.getId(), command.getCode())) ;
}
if(MqttManager.getInstance().poolIsClose()){
- return BaseResponseUtils.buildError(ReturnCommand.errored("鍑洪敊锛孧QTT杩炴帴姹犳按鍒涘缓鎴愬姛锛�", command.getId(), command.getCode())) ;
+ return BaseResponseUtils.buildError(ReturnCommand.errored("鍑洪敊锛孧QTT杩炴帴姹犳湭鍒涘缓鎴愬姛锛�", command.getId(), command.getCode())) ;
+ }
+ if(!DevStatusDealer.oneOnLine(mqttDevId)){
+ return BaseResponseUtils.buildError(ReturnCommand.errored("鍑洪敊锛孎Box璁惧鏈湪绾匡紒", command.getId(), command.getCode())) ;
}
//鐢熸垚寮傛浠诲姟
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.properties b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.properties
index 3d08c73..6b48b8c 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.properties
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.properties
@@ -10,6 +10,7 @@
# 鐢樺窞锛� gz
# 鍑夊窞锛� lz
# 閲戝窛锛� jc
+# 鍢夊唱鍏筹細 jyg
base.orgTag=ym
# 233鏈嶅姟鍣細
@@ -24,7 +25,8 @@
# 鐢樺窞锛� 60103
# 鍑夊窞锛� 60104
# 閲戝窛锛� 60105
-tcp.port=60000ba_divide
+# 鍢夊唱鍏筹細 60106
+tcp.port=60000
#RTU涓婅鏁版嵁鏈�灏忛棿闅旓紝澶т簬杩欎釜闂撮殧璁や负璁惧绂荤嚎浜嗭紝娴嬫帶涓�浣撻榾鏄�3锛岃〃闃�涓�浣撴満鏄�6锛岄粯璁ら噰鐢ㄦ椂闂存渶闀跨殑6
base.upData.min.interval=6
@@ -45,8 +47,13 @@
# 鐢樺窞锛� mqtt.enable=false mqtt.protocolAndDeviceIds= mqtt.topicAndQos=
# 鍑夊窞锛� mqtt.enable=false mqtt.protocolAndDeviceIds= mqtt.topicAndQos=
# 閲戝窛锛� mqtt.enable=true mqtt.protocolAndDeviceIds=? mqtt.topicAndQos=weather/1,1;soil/1,1;manure/1,1;state/1,1
+# 鍢夊唱鍏筹細 mqtt.enable=true mqtt.protocolAndDeviceIds=? mqtt.topicAndQos=weather/1,1;soil/1,1;manure/1,1;state/1,1
mqtt.enable=false
-mqtt.protocolAndDeviceIds=sd1/338220031439,sd1/338220031440
-mqtt.subTopicAndQos=weather/1,1;soil/1,1;manure/1,1;state/1,1
+mqtt.ip=127.0.0.1
+mqtt.port=1883
+mqtt.user=dyyjy
+mqtt.password=Dyyjy2025,;.abc!@#
+mqtt.protocolAndDeviceIds=
+mqtt.subTopicAndQos=
#MQtt璁惧鍦ㄤ竴瀹氭椂闂达紙鍒嗛挓锛夊悗鏈彂甯冩秷鎭紝璁や负璁惧绂荤嚎
mqtt.noSubThenOff=10
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml
index 50e5d2c..a9a11ed 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml
@@ -171,6 +171,9 @@
svUserName MQTT鏈嶅姟鍣ㄧ敤鎴峰悕
svUserPassword MQTT鏈嶅姟鍣ㄧ敤鎴峰瘑鐮�
poolMaxSize 杩炴帴姹犳渶澶ц繛鎺ユ暟
+ sendInterval 鍛戒护鍙戦�侀棿闅旓紙鍗曚綅绉掞級锛屽彇鍊艰寖鍥存槸1~3600
+ reSendTimesByNoResult 鏈敹鍒板懡浠ょ粨鏋滄椂锛屾渶澶ч噸澶嶅彂閫佹鏁帮紝鍙栧�艰寖鍥存槸0~100, 0鏃惰〃绀轰笉閲嶅鍙戦��
+ comCacheTimeout: 鍛戒护鏈�澶х紦瀛樻椂闀�(绉�)锛屽彇鍊艰寖鍥存槸1~3600
useMemoryPersistence 浣跨敤鍐呭瓨鎸佷箙鍖栬�岄潪榛樿鐨勬枃浠舵寔涔呭寲(true鏄� false鍚�)
protocolAndDeviceIds 鍦ㄥ瓙绯荤粺锛坥rgTag锛変腑鎺ュ叆鐨勮澶�(FBox)鎵�鐢ㄥ崗璁強璁惧id闆嗗悎,澶氫釜鐢ㄩ�楀彿闅斿紑锛屽崗璁笌ID鐢ㄦ鏂滄潬闅斿紑锛屼緥濡傦細sd1/338220031439,sd1/338220031440
subTopicAndQos: 璁㈤槄涓婚涓嶲os锛屼富棰樺悕涓庡叾Qos鐢ㄩ�楀彿闅斿紑锛屽涓富棰樺強Qos鐢ㄥ垎鍙烽殧寮�锛屼緥濡傦細ym/topic1,1;ym/topic2,1;ym/topic3,1锛屽鏋滄湁澶氫釜OrgTag锛屼富棰樺墠缂�鐢ㄥ叾OrgTag
@@ -181,11 +184,14 @@
noSubThenOff: MQtt璁惧鍦ㄤ竴瀹氭椂闂达紙鍒嗛挓锛夊悗鏈彂甯冩秷鎭紝璁や负璁惧绂荤嚎
-->
<mqtt enable="${mqtt.enable}"
- svIp="121.199.41.121"
- svPort="1883"
- svUserName="dyyjy"
- svUserPassword="Dyyjy2025,;.abc!@#"
+ svIp="${mqtt.ip}"
+ svPort="${mqtt.port}"
+ svUserName="${mqtt.user}"
+ svUserPassword="${mqtt.password}"
poolMaxSize="10"
+ sendInterval="60"
+ reSendTimesByNoResult="0"
+ comCacheTimeout="30"
useMemoryPersistence="true"
protocolAndDeviceIds="${mqtt.protocolAndDeviceIds}"
subTopicAndQos="${mqtt.subTopicAndQos}"
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/java/com/dy/pipIrrParamSet/console/Command.java b/pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/java/com/dy/pipIrrParamSet/console/Command.java
index c7d6981..ae2242f 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/java/com/dy/pipIrrParamSet/console/Command.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/java/com/dy/pipIrrParamSet/console/Command.java
@@ -21,8 +21,8 @@
static{
commands = new String[]{
"config 鏌ョ湅閰嶇疆淇℃伅",
- "mw 121 [tag] 鍛戒护鍚箟锛氶�氫俊涓棿浠跺湪浜戞湇鍔″櫒锛�121.199.41.121锛変笂鐨刐tag](鍏冭皨ym,娌欑洏sp娴嬭瘯test锛屾姹焟j锛屾皯鍕q锛屽欢搴唝q锛岄粦榫欐睙hlj锛岀敇宸瀏z锛屽噳宸瀕z锛岄噾宸漥c)绯荤粺閰嶇疆",
- "mw 233 [tag] 鍛戒护鍚箟锛氶�氫俊涓棿浠跺湪浜戞湇鍔″櫒锛�8.130.130.233锛変笂鐨刐tag](鍏冭皨ym,娌欑洏sp娴嬭瘯test锛屾姹焟j锛屾皯鍕q锛屽欢搴唝q锛岄粦榫欐睙hlj锛岀敇宸瀏z锛屽噳宸瀕z锛岄噾宸漥c)绯荤粺閰嶇疆",
+ "mw 121 [tag] 鍛戒护鍚箟锛氶�氫俊涓棿浠跺湪浜戞湇鍔″櫒锛�121.199.41.121锛変笂鐨刐tag](鍏冭皨ym,娌欑洏sp娴嬭瘯test锛屾姹焟j锛屾皯鍕q锛屽欢搴唝q锛岄粦榫欐睙hlj锛岀敇宸瀏z锛屽噳宸瀕z锛岄噾宸漥c锛屽槈宄叧jyg)绯荤粺閰嶇疆",
+ "mw 233 [tag] 鍛戒护鍚箟锛氶�氫俊涓棿浠跺湪浜戞湇鍔″櫒锛�8.130.130.233锛変笂鐨刐tag](鍏冭皨ym,娌欑洏sp娴嬭瘯test锛屾姹焟j锛屾皯鍕q锛屽欢搴唝q锛岄粦榫欐睙hlj锛岀敇宸瀏z锛屽噳宸瀕z锛岄噾宸漥c锛屽槈宄叧jyg)绯荤粺閰嶇疆",
"web 121 鍛戒护鍚箟锛歸eb妯″潡鍦ㄤ簯鏈嶅姟鍣紙121.199.41.121锛変笂鐨勯厤缃�",
"web 233 鍛戒护鍚箟锛歸eb妯″潡鍦ㄤ簯鏈嶅姟鍣紙8.130.130.233锛変笂鐨勯厤缃�",
"exit 閫�鍑�",
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/java/com/dy/pipIrrParamSet/paramSet/ParamKey.java b/pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/java/com/dy/pipIrrParamSet/paramSet/ParamKey.java
index 4f87723..76f5fd6 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/java/com/dy/pipIrrParamSet/paramSet/ParamKey.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/java/com/dy/pipIrrParamSet/paramSet/ParamKey.java
@@ -31,8 +31,12 @@
public static final String TcpPort = "tcpPort" ;
public static final String UpDataMinInterval = "upDataMinInterval" ;
public static final String WebPort = "webPort" ;
- public static final String MqttEnable = "mqttEnable" ;
- public static final String MqttNoSubThenOff = "noSubThenOff" ;
public static final String ActutorPort = "actutorPort" ;
public static final String DbName = "dbName" ;
+ public static final String MqttEnable = "mqttEnable" ;
+ public static final String MqttNoSubThenOff = "mqttNoSubThenOff" ;
+ public static final String mqttServerIp = "mqttServerIp" ;
+ public static final String mqttServerPort = "mqttServerPort" ;
+ public static final String mqttProtocolAndDeviceIds = "mqttProtocolAndDeviceIds" ;
+ public static final String mqttSubTopicAndQos = "mqttSubTopicAndQos" ;
}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/java/com/dy/pipIrrParamSet/paramSet/ParamSetMw.java b/pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/java/com/dy/pipIrrParamSet/paramSet/ParamSetMw.java
index b5234a5..18a1dc2 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/java/com/dy/pipIrrParamSet/paramSet/ParamSetMw.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/java/com/dy/pipIrrParamSet/paramSet/ParamSetMw.java
@@ -123,6 +123,14 @@
newLine = "base.upData.min.interval=" + paramMap.get(ParamKey.UpDataMinInterval);
}else if(newLine != null && newLine.trim().startsWith("mqtt.enable=")){
newLine = "mqtt.enable=" + paramMap.get(ParamKey.MqttEnable);
+ }else if(newLine != null && newLine.trim().startsWith("mqtt.ip=")){
+ newLine = "mqtt.ip=" + paramMap.get(ParamKey.mqttServerIp);
+ }else if(newLine != null && newLine.trim().startsWith("mqtt.port=")){
+ newLine = "mqtt.port=" + paramMap.get(ParamKey.mqttServerPort);
+ }else if(newLine != null && newLine.trim().startsWith("mqtt.protocolAndDeviceIds=")){
+ newLine = "mqtt.protocolAndDeviceIds=" + paramMap.get(ParamKey.mqttProtocolAndDeviceIds);
+ }else if(newLine != null && newLine.trim().startsWith("mqtt.subTopicAndQos=")){
+ newLine = "mqtt.subTopicAndQos=" + paramMap.get(ParamKey.mqttSubTopicAndQos);
}else if(newLine != null && newLine.trim().startsWith("mqtt.noSubThenOff=")){
newLine = "mqtt.noSubThenOff=" + paramMap.get(ParamKey.MqttNoSubThenOff);
}
@@ -154,16 +162,28 @@
key = ParamKey.WebPort;
this.getConfig(env, map, paramNamePre + key, key);
+ key = ParamKey.ActutorPort;
+ this.getConfig(env, map, paramNamePre + key, key);
+
+ key = ParamKey.DbName;
+ this.getConfig(env, map, paramNamePre + key, key);
+
key = ParamKey.MqttEnable;
this.getConfig(env, map, paramNamePre + key, key);
key = ParamKey.MqttNoSubThenOff;
this.getConfig(env, map, paramNamePre + key, key);
- key = ParamKey.ActutorPort;
+ key = ParamKey.mqttProtocolAndDeviceIds;
this.getConfig(env, map, paramNamePre + key, key);
- key = ParamKey.DbName;
+ key = ParamKey.mqttServerIp;
+ this.getConfig(env, map, paramNamePre + key, key);
+
+ key = ParamKey.mqttServerPort;
+ this.getConfig(env, map, paramNamePre + key, key);
+
+ key = ParamKey.mqttSubTopicAndQos;
this.getConfig(env, map, paramNamePre + key, key);
return map ;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/resources/application-params.yml b/pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/resources/application-params.yml
index de19a1c..d59660a 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/resources/application-params.yml
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/resources/application-params.yml
@@ -4,90 +4,143 @@
orgTag: ym
tcpPort: 60000
upDataMinInterval: 6
- mqttEnable: false
- noSubThenOff: 10
webPort: 8070
actutorPort: 9070
dbName: pipIrr_ym
+ mqttEnable: false
+ mqttNoSubThenOff: 10
+ mqttServerIp: 127.0.0.1
+ mqttServerPort: 1883
+ mqttProtocolAndDeviceIds:
+ mqttSubTopicAndQos:
sp:
orgTag: sp
tcpPort: 62000
upDataMinInterval: 6
- mqttEnable: false
- noSubThenOff: 10
webPort: 8073
actutorPort: 9073
dbName: pipIrr_sp
+ mqttEnable: false
+ mqttNoSubThenOff: 10
+ mqttServerIp: 127.0.0.1
+ mqttServerPort: 1883
+ mqttProtocolAndDeviceIds:
+ mqttSubTopicAndQos:
test:
orgTag: test
tcpPort: 65000
upDataMinInterval: 6
- mqttEnable: false
- noSubThenOff: 10
webPort: 8072
actutorPort: 9072
dbName: pipIrr_test
+ mqttEnable: false
+ mqttNoSubThenOff: 10
+ mqttServerIp: 127.0.0.1
+ mqttServerPort: 1883
+ mqttProtocolAndDeviceIds:
+ mqttSubTopicAndQos:
mj:
orgTag: mj
tcpPort: 61000
upDataMinInterval: 6
- mqttEnable: false
- noSubThenOff: 10
webPort: 8071
actutorPort: 9071
dbName: pipIrr_mj
+ mqttEnable: false
+ mqttNoSubThenOff: 10
+ mqttServerIp: 127.0.0.1
+ mqttServerPort: 1883
+ mqttProtocolAndDeviceIds:
+ mqttSubTopicAndQos:
sv121:
mq:
orgTag: mq
tcpPort: 60100
upDataMinInterval: 6
- mqttEnable: true
- noSubThenOff: 10
webPort: 8100
actutorPort: 9100
dbName: pipIrr_mq
+ mqttEnable: false
+ mqttNoSubThenOff: 10
+ mqttServerIp: 127.0.0.1
+ mqttServerPort: 1883
+ mqttProtocolAndDeviceIds:
+ mqttSubTopicAndQos:
yq:
orgTag: yq
tcpPort: 60101
upDataMinInterval: 6
- mqttEnable: false
- noSubThenOff: 10
webPort: 8101
actutorPort: 9101
dbName: pipIrr_yq
+ mqttEnable: false
+ mqttNoSubThenOff: 10
+ mqttServerIp: 127.0.0.1
+ mqttServerPort: 1883
+ mqttProtocolAndDeviceIds:
+ mqttSubTopicAndQos:
hlj:
orgTag: hlj
tcpPort: 60102
upDataMinInterval: 6
- mqttEnable: false
- noSubThenOff: 10
webPort: 8102
actutorPort: 9102
dbName: pipIrr_hlj
+ mqttEnable: false
+ mqttNoSubThenOff: 10
+ mqttServerIp: 127.0.0.1
+ mqttServerPort: 1883
+ mqttProtocolAndDeviceIds:
+ mqttSubTopicAndQos:
gz:
orgTag: gz
tcpPort: 60103
upDataMinInterval: 6
- mqttEnable: false
- noSubThenOff: 10
webPort: 8103
actutorPort: 9103
dbName: pipIrr_gz
+ mqttEnable: false
+ mqttNoSubThenOff: 10
+ mqttServerIp: 127.0.0.1
+ mqttServerPort: 1883
+ mqttProtocolAndDeviceIds:
+ mqttSubTopicAndQos:
lz:
orgTag: lz
tcpPort: 60104
upDataMinInterval: 6
- mqttEnable: false
- noSubThenOff: 10
webPort: 8104
actutorPort: 9104
dbName: pipIrr_lz
+ mqttEnable: false
+ mqttNoSubThenOff: 10
+ mqttServerIp: 127.0.0.1
+ mqttServerPort: 1883
+ mqttProtocolAndDeviceIds:
+ mqttSubTopicAndQos:
jc:
orgTag: jc
tcpPort: 60105
upDataMinInterval: 6
- mqttEnable: true
- noSubThenOff: 10
webPort: 8105
actutorPort: 9105
dbName: pipIrr_jc
+ mqttEnable: true
+ mqttNoSubThenOff: 10
+ mqttServerIp: 127.0.0.1
+ mqttServerPort: 1883
+ mqttProtocolAndDeviceIds:
+ mqttSubTopicAndQos:
+ jyg:
+ orgTag: jyg
+ tcpPort: 60106
+ upDataMinInterval: 6
+ webPort: 8106
+ actutorPort: 9106
+ dbName: pipIrr_jyg
+ mqttEnable: true
+ mqttNoSubThenOff: 10
+ mqttServerIp: 127.0.0.1
+ mqttServerPort: 1883
+ mqttProtocolAndDeviceIds: sd1/2430002404000840,sd1/2430002404000840
+ mqttSubTopicAndQos: weather/1,1;soil/1,1;manure/1,1
diff --git "a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml" "b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
index 0369073..20fc4d0 100644
--- "a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
+++ "b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
@@ -1,3 +1,3 @@
spring:
profiles:
- include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self
+ include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, database-jyg, self
diff --git "a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml" "b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
index 0369073..20fc4d0 100644
--- "a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
+++ "b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
@@ -1,3 +1,3 @@
spring:
profiles:
- include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self
+ include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, database-jyg, self
diff --git "a/pipIrr-platform/pipIrr-web/pipIrr-web-file/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml" "b/pipIrr-platform/pipIrr-web/pipIrr-web-file/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
index 0369073..20fc4d0 100644
--- "a/pipIrr-platform/pipIrr-web/pipIrr-web-file/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
+++ "b/pipIrr-platform/pipIrr-web/pipIrr-web-file/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
@@ -1,3 +1,3 @@
spring:
profiles:
- include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self
+ include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, database-jyg, self
diff --git "a/pipIrr-platform/pipIrr-web/pipIrr-web-gis/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml" "b/pipIrr-platform/pipIrr-web/pipIrr-web-gis/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
index 0369073..20fc4d0 100644
--- "a/pipIrr-platform/pipIrr-web/pipIrr-web-gis/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
+++ "b/pipIrr-platform/pipIrr-web/pipIrr-web-gis/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
@@ -1,3 +1,3 @@
spring:
profiles:
- include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self
+ include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, database-jyg, self
diff --git "a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml" "b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
index 0369073..20fc4d0 100644
--- "a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
+++ "b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
@@ -1,3 +1,3 @@
spring:
profiles:
- include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self
+ include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, database-jyg, self
diff --git "a/pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml" "b/pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
index 0369073..20fc4d0 100644
--- "a/pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
+++ "b/pipIrr-platform/pipIrr-web/pipIrr-web-operation/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
@@ -1,3 +1,3 @@
spring:
profiles:
- include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self
+ include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, database-jyg, self
diff --git "a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml" "b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
index 0369073..20fc4d0 100644
--- "a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
+++ "b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
@@ -1,3 +1,3 @@
spring:
profiles:
- include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self
+ include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, database-jyg, self
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/PipIrrRemoteApplication.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/PipIrrRemoteApplication.java
index 9ff5fe0..d65516d 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/PipIrrRemoteApplication.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/PipIrrRemoteApplication.java
@@ -1,7 +1,9 @@
package com.dy.pipIrrRemote;
import com.dy.common.multiDataSource.EnableMultiDataSource;
+import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
@@ -10,7 +12,7 @@
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.scheduling.annotation.EnableScheduling;
-
+@Slf4j
@SpringBootApplication
@EnableScheduling //鍚姩瀹氭椂浠诲姟锛屾湰妯″潡websocket鍙戦�佸績璺�
@ServletComponentScan //鎵弿servlet锛屾湰妯″潡涓惎鍔╳ebsocket
@@ -40,3 +42,18 @@
}
}
+//public class PipIrrRemoteApplication implements CommandLineRunner {
+//
+// public static void main(String[] args) {
+// SpringApplication.run(PipIrrRemoteApplication.class, args);
+// }
+// //楠岃瘉log鏄惁杈撳嚭
+// @Override
+// public void run(String... args) throws Exception {
+// log.trace("Trace level log");
+// log.debug("Debug level log");
+// log.info("Info level log");
+// log.warn("Warn level log");
+// log.error("Error level log");
+// }
+//}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandResultCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandResultCtrl.java
index 86f89d6..c03f7a0 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandResultCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandResultCtrl.java
@@ -35,9 +35,9 @@
if(codeDataObj != null){
if(codeDataObj instanceof JSONObject){
codeData = protocolData == null ? null : (protocolData.getJSONObject("subData")) ; //鍗忚鍔熻兘鐮佹暟鎹�
- }else if(codeDataObj instanceof JSONArray){{
+ }else if(codeDataObj instanceof JSONArray){
codeArrayData = protocolData == null ? null : (protocolData.getJSONArray("subData")) ; //鍗忚鍔熻兘鐮佹暟鎹�
- }}
+ }
}
JSONObject job_response = new JSONObject();
job_response.put("data", codeData!=null?codeData:(codeArrayData!=null?codeArrayData:null));
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/MqttResultCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/MqttResultCtrl.java
new file mode 100644
index 0000000..d4bb4ff
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/MqttResultCtrl.java
@@ -0,0 +1,40 @@
+package com.dy.pipIrrRemote.common;
+
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
+import com.dy.pipIrrGlobal.command.ComResultWait;
+import com.dy.pipIrrGlobal.command.ComSupport;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.concurrent.CompletableFuture;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-05-23 8:19
+ * @LastEditTime 2024-05-23 8:19
+ * @Description
+ */
+
+@Slf4j
+@RestController
+@RequestMapping(path="mqttRes")
+public class MqttResultCtrl extends ComSupport {
+ @PostMapping(path = "receive", consumes = MediaType.APPLICATION_JSON_VALUE)
+ public void receive(@RequestBody MqttSubMsg subMsg) {
+ if(subMsg != null){
+ CompletableFuture<MqttSubMsg> feature = (CompletableFuture<MqttSubMsg>) ComResultWait.get(Long.parseLong(subMsg.commandId));
+ if(feature != null) {
+ feature.complete(subMsg);
+ }else{
+ //瓒呮椂锛宖eature琚竻闄や簡
+ }
+ }else{
+ log.error("mqtt鍗忚娑堟伅涓虹┖");
+ }
+ }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/dto/Dto4MqttBase.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/dto/Dto4MqttBase.java
new file mode 100644
index 0000000..26586ad
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/dto/Dto4MqttBase.java
@@ -0,0 +1,33 @@
+package com.dy.pipIrrRemote.common.dto;
+
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-05-22 16:54
+ * @LastEditTime 2024-05-22 16:54
+ * @Description 璁剧疆鍛戒护鍩虹被
+ */
+
+@Data
+public class Dto4MqttBase {
+ public static final long serialVersionUID = 202506201459001L;
+
+ /**
+ * 姘磋偉鏈篒D
+ */
+ @NotNull(message = "姘磋偉鏈轰笉鑳戒负绌�")
+ public Long manureId;
+
+ /**
+ * 姘磋偉鏈哄悕绉�
+ */
+ public String manureName;
+
+ /**
+ * 鎿嶄綔浜�
+ */
+ @NotNull(message = "鎿嶄綔浜轰笉鑳戒负绌�")
+ public Long operator;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/Cd4MqttParameter.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/Cd4MqttParameter.java
new file mode 100644
index 0000000..76623df
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/Cd4MqttParameter.java
@@ -0,0 +1,15 @@
+package com.dy.pipIrrRemote.monitor.common;
+
+import lombok.Data;
+import lombok.experimental.SuperBuilder;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/9 16:11
+ * @Description
+ */
+@Data
+@SuperBuilder
+public class Cd4MqttParameter {
+ public Integer no ;//璁惧缂栧彿
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/Com4MqttCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/Com4MqttCtrl.java
new file mode 100644
index 0000000..9bae744
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/Com4MqttCtrl.java
@@ -0,0 +1,194 @@
+package com.dy.pipIrrRemote.monitor.common;
+
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.mw.protocol.Command;
+import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
+import com.dy.common.util.Callback;
+import com.dy.common.util.IDLongGenerator;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.pipIrrGlobal.command.ComResultWait;
+import com.dy.pipIrrGlobal.pojoPr.PrStManure;
+import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory;
+import com.dy.pipIrrRemote.common.dto.Dto4MqttBase;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.core.env.Environment;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.Objects;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/9 14:53
+ * @Description
+ */
+public abstract class Com4MqttCtrl {
+
+ @Autowired
+ protected Environment env ;
+
+ @Autowired
+ protected RestTemplate restTemplate ;
+
+ @Value("${mw.waitMwRtnResultTimeout}")
+ protected int waitMwRtnResultTimeout ;
+
+ @Value("${mw.mqttCallbackUrl_rm}")
+ protected String mqttResultSendWebUrl;
+
+ //姘磋偉鏈哄璞�
+ protected PrStManure ctrlPo ;
+ //寮傛绛夊緟鍣�
+ protected CompletableFuture<MqttSubMsg> feature;
+ //鍛戒护鍚嶇О
+ protected String comName ;
+ //鍛戒护鏃ュ織id
+ protected Long comId ;
+
+ /**
+ * 鍙戦�佸懡浠ゅ墠-1锛氶獙璇�
+ * @param comSv
+ * @param comCode
+ * @param dto
+ * @param bindingResult
+ * @return
+ */
+ public BaseResponse<Object> pre1(Com4MqttSv comSv, String comCode, Dto4MqttBase dto, BindingResult bindingResult) {
+ if (bindingResult != null && bindingResult.hasErrors()) {
+ return BaseResponseUtils.buildError(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+ }
+ String msg = this.checkDto(dto) ;
+ if(msg != null){
+ return BaseResponseUtils.buildError("鏈嶅姟绔嚭閿欙紝" + msg) ;
+ }
+ return null ;
+ }
+
+ /**
+ * 鍙戦�佸懡浠ゅ墠-2锛氳幏寰楁暟鎹�
+ * @param comSv
+ * @param protocol
+ * @param protocolVer
+ * @param comCode
+ * @param dto
+ * @param bindingResult
+ * @return
+ */
+ public BaseResponse<Object> pre2(Com4MqttSv comSv, String protocol, Short protocolVer, String comCode, Dto4MqttBase dto, BindingResult bindingResult) {
+ //寰楀埌姘磋偉鏈哄璞�
+ ctrlPo = comSv.getManure(dto.getManureId());
+ if (ctrlPo == null) {
+ return BaseResponseUtils.buildError("鏈嶅姟绔嚭閿欙紝浠庢暟鎹簱涓湭寰楀埌姘磋偉鏈烘暟鎹�") ;
+ }
+ //妫�鏌ュ崗璁�
+ String msg = comSv.checkProtocol(ctrlPo) ;
+ if(msg != null) {
+ return BaseResponseUtils.buildError("鏈嶅姟绔嚭閿欙紝" + msg) ;
+ }
+ //寰楀埌鍔熻兘鐮佸搴旂殑鍛戒护鍚嶇О
+ comName = comSv.getCommandName(comCode, protocol, protocolVer) ;
+ if(comName == null) {
+ return BaseResponseUtils.buildError("鏈嶅姟绔嚭閿欙紝鏈緱鍒板姛鑳界爜瀵瑰簲鍛戒护鍚嶇О") ;
+ }
+ return null ;
+ }
+ /**
+ * 鍙戦�佸懡浠ゅ墠-3锛氫繚瀛樺懡浠ゆ棩蹇�
+ * @param comSv sv瀵硅薄
+ * @param manureId 姘磋偉鏈篒D
+ * @param operator 褰撳墠鐢ㄧ櫥褰曠敤鎴穒d(鎿嶄綔浜�)
+ * @param protocol 鍗忚
+ * @param protocolVerion 鍗忚
+ * @param comCode 鍔熻兘鐮�
+ * @param param 鍛戒护鍙傛暟
+ * @return
+ */
+ public BaseResponse<Object> pre3(Com4MqttSv comSv, Long manureId, Long operator, String protocol, Short protocolVerion, String comCode, Cd4MqttParameter param) {
+ comId = new IDLongGenerator().generate();
+ //鐢熸垚骞朵繚瀛樺懡浠ゆ棩蹇�
+ RmCommandHistory po = comSv.saveComHistoryPo(comId,
+ protocol + protocolVerion ,
+ comCode,
+ comName,
+ manureId,
+ ctrlPo.fboxId ,
+ param,
+ operator);
+ if(po == null){
+ return BaseResponseUtils.buildError("鏈嶅姟绔嚭閿欙紝鏈兘鐢熸垚骞朵繚瀛樺懡浠ゆ棩蹇�") ;
+ }
+ return null ;
+ }
+ /**
+ * 鍙戦�佸懡浠ゅ墠-4锛氬噯澶嘑eature
+ * @return
+ */
+ public void pre4() {
+ feature = new CompletableFuture<>();
+ ComResultWait.put(comId, feature);
+ }
+
+ /**
+ * 鍙戦�佸懡浠�
+ * @param comSv
+ * @param com
+ * @return
+ */
+ public BaseResponse<Object> doSend(Com4MqttSv comSv, Command com){
+ //寰楀埌閫氫俊涓棿浠跺彂閫佸懡浠ょ殑web URL
+ String rqUrl = comSv.get2MwRequestUrl(env, comSv.ContextComSend) ;
+ //鍚戦�氫俊涓棿浠跺彂閫亀eb璇锋眰
+ BaseResponse res = comSv.sendPostRequest2Mw(restTemplate, rqUrl, com) ;
+ //澶勭悊閫氫俊涓棿浠跺web璇锋眰鐨勫搷搴�
+ String msg = comSv.dealMwDealResponse(res) ;
+ if(msg != null) {
+ return BaseResponseUtils.buildError(msg) ;
+ }else{
+ return null ;
+ }
+ }
+
+ /**
+ * 鍙戦�佸懡浠ゅ悗
+ * @return
+ */
+ public BaseResponse<Object> after(String comCode, Callback callback) {
+ try{
+ //绛夊緟閫氫俊涓棿浠堕�氱煡姘磋偉鏈烘墽琛屽懡浠や笂琛屾暟鎹紙鍛戒护缁撴灉锛�
+ MqttSubMsg subMsg = feature.get(waitMwRtnResultTimeout, TimeUnit.SECONDS);
+ return BaseResponseUtils.buildSuccess(this.dealComResult(comCode, subMsg, callback));
+ }catch (Exception e){
+ return BaseResponseUtils.buildFail("绛夊緟閫氫俊涓棿浠堕�氱煡鍛戒护缁撴灉瓒呮椂");
+ }
+ }
+
+ /**
+ * 鍙戦�佸懡浠ゆ渶鍚�
+ * @return
+ */
+ public void end(){
+ try {
+ //鏈�鍚庢竻闄ompletableFuture缂撳瓨
+ if(ComResultWait.contain(comId)){
+ ComResultWait.remove(comId);
+ }
+ }catch (Exception ee){}
+ }
+
+ /**
+ * 楠岃瘉
+ * @param dto
+ * @return
+ */
+ protected abstract String checkDto(Dto4MqttBase dto) ;
+
+
+ /**
+ * 鐢熸垚鍛戒护杩斿洖淇℃伅
+ */
+ protected abstract String dealComResult(String code, MqttSubMsg subMsg, Callback callback);
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/Com4MqttSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/Com4MqttSv.java
new file mode 100644
index 0000000..0b31743
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/Com4MqttSv.java
@@ -0,0 +1,50 @@
+package com.dy.pipIrrRemote.monitor.common;
+
+import com.dy.pipIrrGlobal.command.Command4MqttSv;
+import com.dy.pipIrrGlobal.daoPr.PrStManureMapper;
+import com.dy.pipIrrGlobal.daoRm.RmCommandHistoryMapper;
+import com.dy.pipIrrGlobal.pojoPr.PrStManure;
+import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/5/9 14:45
+ * @Description
+ */
+public class Com4MqttSv extends Command4MqttSv {
+
+ @Autowired
+ protected PrStManureMapper prStManureDao ;
+ @Autowired
+ protected RmCommandHistoryMapper rmCommandHistoryDao ;
+
+ public PrStManure getManure(Long manureId){
+ return this.getManure(prStManureDao, manureId);
+ }
+ /**
+ * 鍒涘缓鍛戒护鏃ュ織瀵硅薄
+ *
+ * @param comId 涓婚敭
+ * @param commandCode 鍔熻兘鐮�
+ * @param rtuAddr 闃�鎺у櫒鍦板潃
+ * @param protocol 閫氳鍗忚鍚嶇О
+ * @param param 鍙傛暟鏁版嵁
+ * @param operator 鎿嶄綔鍛�
+ * @return
+ */
+ @Transactional(rollbackFor = Exception.class)
+ public RmCommandHistory saveComHistoryPo(Long comId,
+ String protocol,
+ String commandCode,
+ String commandName,
+ Long manureId,
+ String rtuAddr,
+ Object param,
+ Long operator) {
+ return this.saveComHistoryPo(rmCommandHistoryDao, comId, protocol, commandCode, commandName, manureId, rtuAddr, param, operator) ;
+ }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/ComSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/ComSv.java
index c9fc53e..b2e5864 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/ComSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/common/ComSv.java
@@ -93,4 +93,20 @@
jsonArr.add(jsonObj);
return rmCommandHistoryDao.getUncloseParam(jsonArr.toJSONString(), intakeId);
}
+
+ /**
+ * 鏍规嵁鍙栨按鍙D鑾峰彇璇ュ彇姘村彛鏈叧闃�鍙傛暟锛屽钩鍙伴�夋嫨鍙栨按鍙e叧闃�浣跨敤
+ * @param intakeId
+ * @param rtuAddr
+ * @param code
+ * @return
+ */
+ public VoUnclosedParam selectUncloseParamByCd(Long intakeId, String rtuAddr, String code) {
+ JSONArray jsonArr = new JSONArray();
+ JSONObject jsonObj = new JSONObject();
+ jsonObj.put("rtuAddr", rtuAddr);
+ jsonObj.put("isOnLine", true);
+ jsonArr.add(jsonObj);
+ return rmCommandHistoryDao.getUncloseParamByCd(jsonArr.toJSONString(), intakeId, code);
+ }
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdCtrl.java
new file mode 100644
index 0000000..8d673ee
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdCtrl.java
@@ -0,0 +1,121 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.fault;
+
+import com.alibaba.fastjson2.JSON;
+import com.dy.common.aop.SsoAop;
+import com.dy.common.mw.protocol.Command;
+import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.CodeSdV1;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.ProtocolConstantSdV1;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.ManureVo;
+import com.dy.common.util.Callback;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.pipIrrRemote.common.dto.Dto4MqttBase;
+import com.dy.pipIrrRemote.monitor.common.Com4MqttCtrl;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.http.MediaType;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Proxy;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:35
+ * @Description
+ */
+
+@Slf4j
+@Tag(name = "杩滅▼鍛戒护", description = "娓呴櫎鏁呴殰")
+@RestController("mqttSd1FaultCtrl")
+@RequestMapping(path = "mqttSd1/fault")
+@RequiredArgsConstructor
+@Scope("prototype") //鍥犱负鏈夊璞$被灞炴�э紝鎵�浠ラ噰鐢ㄥ師鍨嬫ā寮忥紝姣忔璇锋眰鏂板缓涓�涓疄渚嬪璞�
+public class CdCtrl extends Com4MqttCtrl {
+
+ private static final String RtuSuccessMsg = "鎺у埗鍣ㄦ帴鏀跺苟鎵ц鍛戒护鎴愬姛锛屾棤杩斿洖鏁版嵁";
+
+ private static final String Protocol = ProtocolConstantSdV1.protocolName ;
+ private static final Short ProtocolVersion = ProtocolConstantSdV1.protocolVer ;
+ private static final String ComCode = CodeSdV1.cd_Fault ;
+
+ @Autowired
+ private CdSv sv ;
+ /**
+ * 鍚戣澶囷紙Mqtt涓棿浠�->FBox锛夊彂閫佸懡浠�
+ * @param dto 鍓嶇鍙戞潵鐨勫�煎璞�
+ * @param bindingResult 瀵筪to楠岃瘉鐨勭粨鏋�
+ * @return 杩斿洖鍓嶇
+ */
+ @PostMapping(path = "clear", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @SsoAop()
+ public BaseResponse<Object> send(@RequestBody @Valid CdDto dto, BindingResult bindingResult) {
+ BaseResponse<Object> res ;
+ //鍙戦�佸懡浠ゅ墠-1锛氶獙璇�
+ res = super.pre1(sv, ComCode, dto, bindingResult);
+ if(res == null) {
+ //鍙戦�佸懡浠ゅ墠-2锛氳幏寰楁暟鎹�
+ res = super.pre2(sv, Protocol, ProtocolVersion, ComCode, dto, bindingResult);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-3锛氫繚瀛樺懡浠ゆ棩蹇�
+ CdParam comParam = CdParam.builder().no(ctrlPo.no).startTrueStopFalse(true).build();
+ res = super.pre3(sv, dto.manureId, dto.getOperator(), Protocol, ProtocolVersion, ComCode, comParam);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-4锛氬噯澶嘑eature
+ super.pre4();
+ try {
+ //鍒涘缓澶栭儴鍛戒护锛堝彂缁橫QTT->FBox锛�
+ Command com = sv.createMQTTCommand(ctrlPo.fboxId, "" + comId, Protocol, ProtocolVersion, ComCode);
+ com.rtuResultSendWebUrl = mqttResultSendWebUrl;
+ com.param = comParam ;
+ //鍙戦�佸懡浠�
+ res = super.doSend(sv, com);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ悗
+ res = super.after(ComCode, null);
+ }
+ } catch (Exception e) {
+ res = BaseResponseUtils.buildFail("鏈嶅姟绔瀯閫犲苟鍚戦�氫俊涓棿浠跺彂閫佽姹傛椂寮傚父" + (e.getMessage() == null ? "" : e.getMessage()));
+ } finally {
+ //鏈�缁�
+ super.end();
+ }
+ }
+ }
+ }
+ return res ;
+ }
+
+ @Override
+ protected String checkDto(Dto4MqttBase dto) {
+ return null;
+ }
+
+ @Override
+ protected String dealComResult(String code, MqttSubMsg subMsg, Callback callback){
+ String msg;
+ if(subMsg != null){
+ if(subMsg.vo4Up != null && Proxy.isProxyClass(subMsg.vo4Up.getClass())){
+ // 鑾峰彇浠g悊鐨� InvocationHandler
+ InvocationHandler handler = Proxy.getInvocationHandler(subMsg.vo4Up);
+ String json = JSON.toJSONString(handler) ;
+ ManureVo vo = JSON.parseObject(json, ManureVo.class);
+ msg = vo.toString() ;
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ return msg;
+ }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdDto.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdDto.java
index 8d9b6f1..ab368e4 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdDto.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdDto.java
@@ -1,6 +1,6 @@
package com.dy.pipIrrRemote.monitor.mqttSd1.fault;
-import com.dy.pipIrrRemote.common.dto.DtoBase;
+import com.dy.pipIrrRemote.common.dto.Dto4MqttBase;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -11,6 +11,6 @@
*/
@Data
@EqualsAndHashCode(callSuper=true)
-public class CdDto extends DtoBase {
- public static final long serialVersionUID = 202506161739001L;
+public class CdDto extends Dto4MqttBase {
+ public static final long serialVersionUID = 202506501650001L;
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdParam.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdParam.java
index 6fde608..822e2d2 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdParam.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdParam.java
@@ -1,9 +1,23 @@
package com.dy.pipIrrRemote.monitor.mqttSd1.fault;
+import com.dy.pipIrrRemote.monitor.common.Cd4MqttParameter;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.SuperBuilder;
+
/**
* @Author: liurunyu
* @Date: 2025/6/16 17:36
* @Description
*/
-public class CdParam {
+@Data
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = true)
+@SuperBuilder
+public class CdParam extends Cd4MqttParameter {
+ //鍚仠鍔ㄤ綔锛宼rue鏄紝false鍚�
+ //鍙互鎵ц鍔熻兘鐮� 00锛�01锛�02锛�03鐨勫姩浣�
+ public boolean startTrueStopFalse;//
+
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdStartCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdStartCtrl.java
deleted file mode 100644
index 1a182a9..0000000
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdStartCtrl.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package com.dy.pipIrrRemote.monitor.mqttSd1.fault;
-
-import com.alibaba.fastjson2.JSONObject;
-import com.dy.common.util.Callback;
-import com.dy.pipIrrRemote.common.dto.DtoBase;
-import com.dy.pipIrrRemote.monitor.common.ComCtrl;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Scope;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * @Author: liurunyu
- * @Date: 2025/6/16 17:35
- * @Description
- */
-
-@Slf4j
-@Tag(name = "杩滅▼鍛戒护", description = "娓呴櫎鏁呴殰")
-@RestController("mqttSd1FaultStartCtrl")
-@RequestMapping(path = "mqttSd1/faultStartCtrl")
-@RequiredArgsConstructor
-@Scope("prototype") //鍥犱负鏈夊璞$被灞炴�э紝鎵�浠ラ噰鐢ㄥ師鍨嬫ā寮忥紝姣忔璇锋眰鏂板缓涓�涓疄渚嬪璞�
-public class CdStartCtrl extends ComCtrl {
-
- private static final String RtuSuccessMsg = "鎺у埗鍣ㄦ帴鏀跺苟鎵ц鍛戒护鎴愬姛锛屾棤杩斿洖鏁版嵁";
-
- private static final String ComCode = "5B" ;
-
- @Autowired
- private CdSv sv ;
-
- @Override
- protected String checkDto(DtoBase dto) {
- return null;
- }
-
- @Override
- protected String dealComResult(String code, JSONObject resultData, Callback callback) {
- return null;
- }
-}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdStopCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdStopCtrl.java
deleted file mode 100644
index e8e4617..0000000
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdStopCtrl.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.dy.pipIrrRemote.monitor.mqttSd1.fault;
-
-/**
- * @Author: liurunyu
- * @Date: 2025/6/16 17:35
- * @Description
- */
-public class CdStopCtrl {
-}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdSv.java
index e1a3f6d..d28981f 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/fault/CdSv.java
@@ -1,6 +1,6 @@
package com.dy.pipIrrRemote.monitor.mqttSd1.fault;
-import com.dy.pipIrrRemote.monitor.common.ComSv;
+import com.dy.pipIrrRemote.monitor.common.Com4MqttSv;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -10,6 +10,6 @@
* @Description
*/
@Slf4j
-@Service("faultSv")
-public class CdSv extends ComSv {
+@Service("mqttSd1FaultSv")
+public class CdSv extends Com4MqttSv {
}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdCtrl.java
new file mode 100644
index 0000000..1becb43
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdCtrl.java
@@ -0,0 +1,145 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.inject;
+
+import com.alibaba.fastjson2.JSON;
+import com.dy.common.aop.SsoAop;
+import com.dy.common.mw.protocol.Command;
+import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.CodeSdV1;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.ProtocolConstantSdV1;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.ManureVo;
+import com.dy.common.util.Callback;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.pipIrrRemote.common.dto.Dto4MqttBase;
+import com.dy.pipIrrRemote.monitor.common.Com4MqttCtrl;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.http.MediaType;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Proxy;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:35
+ * @Description
+ */
+
+@Slf4j
+@Tag(name = "杩滅▼鍛戒护", description = "娉ㄨ偉鍚仠")
+@RestController("mqttSd1InjectCtrl")
+@RequestMapping(path = "mqttSd1/inject")
+@RequiredArgsConstructor
+@Scope("prototype") //鍥犱负鏈夊璞$被灞炴�э紝鎵�浠ラ噰鐢ㄥ師鍨嬫ā寮忥紝姣忔璇锋眰鏂板缓涓�涓疄渚嬪璞�
+public class CdCtrl extends Com4MqttCtrl {
+
+ private static final String RtuSuccessMsg = "鎺у埗鍣ㄦ帴鏀跺苟鎵ц鍛戒护鎴愬姛锛屾棤杩斿洖鏁版嵁";
+
+ private static final String Protocol = ProtocolConstantSdV1.protocolName ;
+ private static final Short ProtocolVersion = ProtocolConstantSdV1.protocolVer ;
+ private static final String ComCode = CodeSdV1.cd_Inject ;
+
+
+ @Autowired
+ private CdSv sv ;
+
+ /**
+ * 鍚戣澶囷紙Mqtt涓棿浠�->FBox锛夊彂閫佸懡浠�
+ * @param dto 鍓嶇鍙戞潵鐨勫�煎璞�
+ * @param bindingResult 瀵筪to楠岃瘉鐨勭粨鏋�
+ * @return 杩斿洖鍓嶇
+ */
+ @PostMapping(path = "start", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @SsoAop()
+ public BaseResponse<Object> start(@RequestBody @Valid CdDto dto, BindingResult bindingResult) {
+ return this.send(dto, bindingResult, true) ;
+ }
+
+ /**
+ * 鍚戣澶囷紙Mqtt涓棿浠�->FBox锛夊彂閫佸懡浠�
+ * @param dto 鍓嶇鍙戞潵鐨勫�煎璞�
+ * @param bindingResult 瀵筪to楠岃瘉鐨勭粨鏋�
+ * @return 杩斿洖鍓嶇
+ */
+ @PostMapping(path = "stop", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @SsoAop()
+ public BaseResponse<Object> stop(@RequestBody @Valid CdDto dto, BindingResult bindingResult) {
+ return this.send(dto, bindingResult, false) ;
+ }
+
+ /**
+ * 鍚戣澶囷紙Mqtt涓棿浠�->FBox锛夊彂閫佸懡浠�
+ * @param dto 鍓嶇鍙戞潵鐨勫�煎璞�
+ * @param bindingResult 瀵筪to楠岃瘉鐨勭粨鏋�
+ * @return 杩斿洖鍓嶇
+ */
+ private BaseResponse<Object> send(CdDto dto, BindingResult bindingResult, boolean startTrueStopFalse) {
+ BaseResponse<Object> res ;
+ //鍙戦�佸懡浠ゅ墠-1锛氶獙璇�
+ res = super.pre1(sv, ComCode, dto, bindingResult);
+ if(res == null) {
+ //鍙戦�佸懡浠ゅ墠-2锛氳幏寰楁暟鎹�
+ res = super.pre2(sv, Protocol, ProtocolVersion, ComCode, dto, bindingResult);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-3锛氫繚瀛樺懡浠ゆ棩蹇�
+ CdParam comParam = CdParam.builder().no(ctrlPo.no).startTrueStopFalse(startTrueStopFalse).build();
+ res = super.pre3(sv, dto.manureId, dto.getOperator(), Protocol, ProtocolVersion, ComCode, comParam);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-4锛氬噯澶嘑eature
+ super.pre4();
+ try {
+ //鍒涘缓澶栭儴鍛戒护锛堝彂缁橫QTT->FBox锛�
+ Command com = sv.createMQTTCommand(ctrlPo.fboxId, "" + comId, Protocol, ProtocolVersion, ComCode);
+ com.rtuResultSendWebUrl = mqttResultSendWebUrl;
+ com.param = comParam ;
+ //鍙戦�佸懡浠�
+ res = super.doSend(sv, com);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ悗
+ res = super.after(ComCode, null);
+ }
+ } catch (Exception e) {
+ res = BaseResponseUtils.buildFail("鏈嶅姟绔瀯閫犲苟鍚戦�氫俊涓棿浠跺彂閫佽姹傛椂寮傚父" + (e.getMessage() == null ? "" : e.getMessage()));
+ } finally {
+ //鏈�缁�
+ super.end();
+ }
+ }
+ }
+ }
+ return res ;
+ }
+
+ @Override
+ protected String checkDto(Dto4MqttBase dto) {
+ return null;
+ }
+
+ @Override
+ protected String dealComResult(String code, MqttSubMsg subMsg, Callback callback){
+ String msg;
+ if(subMsg != null){
+ if(subMsg.vo4Up != null && Proxy.isProxyClass(subMsg.vo4Up.getClass())){
+ // 鑾峰彇浠g悊鐨� InvocationHandler
+ InvocationHandler handler = Proxy.getInvocationHandler(subMsg.vo4Up);
+ String json = JSON.toJSONString(handler) ;
+ ManureVo vo = JSON.parseObject(json, ManureVo.class);
+ msg = vo.toString() ;
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ return msg;
+ }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdDto.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdDto.java
new file mode 100644
index 0000000..2d8fef0
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdDto.java
@@ -0,0 +1,16 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.inject;
+
+import com.dy.pipIrrRemote.common.dto.Dto4MqttBase;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:36
+ * @Description
+ */
+@Data
+@EqualsAndHashCode(callSuper=true)
+public class CdDto extends Dto4MqttBase {
+ public static final long serialVersionUID = 202506201653001L;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdParam.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdParam.java
new file mode 100644
index 0000000..e0dff57
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdParam.java
@@ -0,0 +1,23 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.inject;
+
+import com.dy.pipIrrRemote.monitor.common.Cd4MqttParameter;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.SuperBuilder;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:36
+ * @Description
+ */
+@Data
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = true)
+@SuperBuilder
+public class CdParam extends Cd4MqttParameter {
+ //鍚仠鍔ㄤ綔锛宼rue鏄紝false鍚�
+ //鍙互鎵ц鍔熻兘鐮� 00锛�01锛�02锛�03鐨勫姩浣�
+ public boolean startTrueStopFalse;//
+
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdSv.java
new file mode 100644
index 0000000..c03f344
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/inject/CdSv.java
@@ -0,0 +1,15 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.inject;
+
+import com.dy.pipIrrRemote.monitor.common.Com4MqttSv;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:36
+ * @Description
+ */
+@Slf4j
+@Service("mqttSd1InjectSv")
+public class CdSv extends Com4MqttSv {
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdCtrl.java
new file mode 100644
index 0000000..a361d9a
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdCtrl.java
@@ -0,0 +1,147 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.irr;
+
+import com.alibaba.fastjson2.JSON;
+import com.dy.common.aop.SsoAop;
+import com.dy.common.mw.protocol.Command;
+import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.CodeSdV1;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.ProtocolConstantSdV1;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.ManureVo;
+import com.dy.common.util.Callback;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.pipIrrRemote.common.dto.Dto4MqttBase;
+import com.dy.pipIrrRemote.monitor.common.Com4MqttCtrl;
+import com.dy.pipIrrRemote.monitor.mqttSd1.stir.CdDto;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.http.MediaType;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Proxy;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:35
+ * @Description
+ * 澶х灏嗘按鑲ユ満搴旂敤浜庣鐏岀郴缁燂紝鎵�浠ユ按鑲ユ満涓婃湭瀹夎鐏屾簤闃�闂紝鐩稿簲姝ゅ姛鑳戒篃涓嶅簲鐢ㄤ簡
+ */
+
+@Slf4j
+@Tag(name = "杩滅▼鍛戒护", description = "鐏屾簤鍚仠")
+@RestController("mqttSd1IrrCtrl")
+@RequestMapping(path = "mqttSd1/irr")
+@RequiredArgsConstructor
+@Scope("prototype") //鍥犱负鏈夊璞$被灞炴�э紝鎵�浠ラ噰鐢ㄥ師鍨嬫ā寮忥紝姣忔璇锋眰鏂板缓涓�涓疄渚嬪璞�
+public class CdCtrl extends Com4MqttCtrl {
+
+ private static final String RtuSuccessMsg = "鎺у埗鍣ㄦ帴鏀跺苟鎵ц鍛戒护鎴愬姛锛屾棤杩斿洖鏁版嵁";
+
+ private static final String Protocol = ProtocolConstantSdV1.protocolName ;
+ private static final Short ProtocolVersion = ProtocolConstantSdV1.protocolVer ;
+ private static final String ComCode = CodeSdV1.cd_Irr ;
+
+
+ @Autowired
+ private CdSv sv ;
+
+ /**
+ * 鍚戣澶囷紙Mqtt涓棿浠�->FBox锛夊彂閫佸懡浠�
+ * @param dto 鍓嶇鍙戞潵鐨勫�煎璞�
+ * @param bindingResult 瀵筪to楠岃瘉鐨勭粨鏋�
+ * @return 杩斿洖鍓嶇
+ */
+ @PostMapping(path = "start", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @SsoAop()
+ public BaseResponse<Object> start(@RequestBody @Valid com.dy.pipIrrRemote.monitor.mqttSd1.stir.CdDto dto, BindingResult bindingResult) {
+ return this.send(dto, bindingResult, true) ;
+ }
+
+ /**
+ * 鍚戣澶囷紙Mqtt涓棿浠�->FBox锛夊彂閫佸懡浠�
+ * @param dto 鍓嶇鍙戞潵鐨勫�煎璞�
+ * @param bindingResult 瀵筪to楠岃瘉鐨勭粨鏋�
+ * @return 杩斿洖鍓嶇
+ */
+ @PostMapping(path = "stop", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @SsoAop()
+ public BaseResponse<Object> stop(@RequestBody @Valid com.dy.pipIrrRemote.monitor.mqttSd1.stir.CdDto dto, BindingResult bindingResult) {
+ return this.send(dto, bindingResult, false) ;
+ }
+
+ /**
+ * 鍚戣澶囷紙Mqtt涓棿浠�->FBox锛夊彂閫佸懡浠�
+ * @param dto 鍓嶇鍙戞潵鐨勫�煎璞�
+ * @param bindingResult 瀵筪to楠岃瘉鐨勭粨鏋�
+ * @return 杩斿洖鍓嶇
+ */
+ private BaseResponse<Object> send(CdDto dto, BindingResult bindingResult, boolean startTrueStopFalse) {
+ BaseResponse<Object> res ;
+ //鍙戦�佸懡浠ゅ墠-1锛氶獙璇�
+ res = super.pre1(sv, ComCode, dto, bindingResult);
+ if(res == null) {
+ //鍙戦�佸懡浠ゅ墠-2锛氳幏寰楁暟鎹�
+ res = super.pre2(sv, Protocol, ProtocolVersion, ComCode, dto, bindingResult);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-3锛氫繚瀛樺懡浠ゆ棩蹇�
+ CdParam comParam = CdParam.builder().no(ctrlPo.no).startTrueStopFalse(true).build();
+ res = super.pre3(sv, dto.manureId, dto.getOperator(), Protocol, ProtocolVersion, ComCode, comParam);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-4锛氬噯澶嘑eature
+ super.pre4();
+ try {
+ //鍒涘缓澶栭儴鍛戒护锛堝彂缁橫QTT->FBox锛�
+ Command com = sv.createMQTTCommand(ctrlPo.fboxId, "" + comId, Protocol, ProtocolVersion, ComCode);
+ com.rtuResultSendWebUrl = mqttResultSendWebUrl;
+ com.param = comParam ;
+ //鍙戦�佸懡浠�
+ res = super.doSend(sv, com);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ悗
+ res = super.after(ComCode, null);
+ }
+ } catch (Exception e) {
+ res = BaseResponseUtils.buildFail("鏈嶅姟绔瀯閫犲苟鍚戦�氫俊涓棿浠跺彂閫佽姹傛椂寮傚父" + (e.getMessage() == null ? "" : e.getMessage()));
+ } finally {
+ //鏈�缁�
+ super.end();
+ }
+ }
+ }
+ }
+ return res ;
+ }
+
+ @Override
+ protected String checkDto(Dto4MqttBase dto) {
+ return null;
+ }
+
+ @Override
+ protected String dealComResult(String code, MqttSubMsg subMsg, Callback callback){
+ String msg;
+ if(subMsg != null){
+ if(subMsg.vo4Up != null && Proxy.isProxyClass(subMsg.vo4Up.getClass())){
+ // 鑾峰彇浠g悊鐨� InvocationHandler
+ InvocationHandler handler = Proxy.getInvocationHandler(subMsg.vo4Up);
+ String json = JSON.toJSONString(handler) ;
+ ManureVo vo = JSON.parseObject(json, ManureVo.class);
+ msg = vo.toString() ;
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ return msg;
+ }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdDto.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdDto.java
new file mode 100644
index 0000000..466869e
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdDto.java
@@ -0,0 +1,16 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.irr;
+
+import com.dy.pipIrrRemote.common.dto.Dto4MqttBase;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:36
+ * @Description
+ */
+@Data
+@EqualsAndHashCode(callSuper=true)
+public class CdDto extends Dto4MqttBase {
+ public static final long serialVersionUID = 202506201654001L;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdParam.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdParam.java
new file mode 100644
index 0000000..07316a6
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdParam.java
@@ -0,0 +1,23 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.irr;
+
+import com.dy.pipIrrRemote.monitor.common.Cd4MqttParameter;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.SuperBuilder;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:36
+ * @Description
+ */
+@Data
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = true)
+@SuperBuilder
+public class CdParam extends Cd4MqttParameter {
+ //鍚仠鍔ㄤ綔锛宼rue鏄紝false鍚�
+ //鍙互鎵ц鍔熻兘鐮� 00锛�01锛�02锛�03鐨勫姩浣�
+ public boolean startTrueStopFalse;//
+
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdSv.java
new file mode 100644
index 0000000..ae5e083
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/irr/CdSv.java
@@ -0,0 +1,15 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.irr;
+
+import com.dy.pipIrrRemote.monitor.common.Com4MqttSv;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:36
+ * @Description
+ */
+@Slf4j
+@Service("mqttSd1IrrSv")
+public class CdSv extends Com4MqttSv {
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdCtrl.java
new file mode 100644
index 0000000..c3e8120
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdCtrl.java
@@ -0,0 +1,123 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.paramSet;
+
+import com.alibaba.fastjson2.JSON;
+import com.dy.common.aop.SsoAop;
+import com.dy.common.mw.protocol.Command;
+import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.CodeSdV1;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.ProtocolConstantSdV1;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.ManureVo;
+import com.dy.common.util.Callback;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.pipIrrRemote.common.dto.Dto4MqttBase;
+import com.dy.pipIrrRemote.monitor.common.Com4MqttCtrl;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.http.MediaType;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Proxy;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:35
+ * @Description
+ */
+
+@Slf4j
+@Tag(name = "杩滅▼鍛戒护", description = "璁剧疆鍙傛暟")
+@RestController("mqttSd1ParamCtrl")
+@RequestMapping(path = "mqttSd1/param")
+@RequiredArgsConstructor
+@Scope("prototype") //鍥犱负鏈夊璞$被灞炴�э紝鎵�浠ラ噰鐢ㄥ師鍨嬫ā寮忥紝姣忔璇锋眰鏂板缓涓�涓疄渚嬪璞�
+public class CdCtrl extends Com4MqttCtrl {
+
+ private static final String RtuSuccessMsg = "鎺у埗鍣ㄦ帴鏀跺苟鎵ц鍛戒护鎴愬姛锛屾棤杩斿洖鏁版嵁";
+
+ private static final String Protocol = ProtocolConstantSdV1.protocolName ;
+ private static final Short ProtocolVersion = ProtocolConstantSdV1.protocolVer ;
+ private static final String ComCode = CodeSdV1.cd_Param ;
+
+
+ @Autowired
+ private CdSv sv ;
+
+ /**
+ * 鍚戣澶囷紙Mqtt涓棿浠�->FBox锛夊彂閫佸懡浠�
+ * @param dto 鍓嶇鍙戞潵鐨勫�煎璞�
+ * @param bindingResult 瀵筪to楠岃瘉鐨勭粨鏋�
+ * @return 杩斿洖鍓嶇
+ */
+ @PostMapping(path = "set", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @SsoAop()
+ public BaseResponse<Object> set(@RequestBody @Valid CdDto dto, BindingResult bindingResult) {
+ BaseResponse<Object> res ;
+ //鍙戦�佸懡浠ゅ墠-1锛氶獙璇�
+ res = super.pre1(sv, ComCode, dto, bindingResult);
+ if(res == null) {
+ //鍙戦�佸懡浠ゅ墠-2锛氳幏寰楁暟鎹�
+ res = super.pre2(sv, Protocol, ProtocolVersion, ComCode, dto, bindingResult);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-3锛氫繚瀛樺懡浠ゆ棩蹇�
+ CdParam comParam = CdParam.builder().no(ctrlPo.no).injectDuration(dto.injectDuration).stirDuration(dto.stirDuration).build();
+ res = super.pre3(sv, dto.manureId, dto.getOperator(), Protocol, ProtocolVersion, ComCode, comParam);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-4锛氬噯澶嘑eature
+ super.pre4();
+ try {
+ //鍒涘缓澶栭儴鍛戒护锛堝彂缁橫QTT->FBox锛�
+ Command com = sv.createMQTTCommand(ctrlPo.fboxId, "" + comId, Protocol, ProtocolVersion, ComCode);
+ com.rtuResultSendWebUrl = mqttResultSendWebUrl;
+ com.param = comParam ;
+ //鍙戦�佸懡浠�
+ res = super.doSend(sv, com);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ悗
+ res = super.after(ComCode, null);
+ }
+ } catch (Exception e) {
+ res = BaseResponseUtils.buildFail("鏈嶅姟绔瀯閫犲苟鍚戦�氫俊涓棿浠跺彂閫佽姹傛椂寮傚父" + (e.getMessage() == null ? "" : e.getMessage()));
+ } finally {
+ //鏈�缁�
+ super.end();
+ }
+ }
+ }
+ }
+ return res ;
+ }
+
+ @Override
+ protected String checkDto(Dto4MqttBase dto) {
+ return null;
+ }
+
+ @Override
+ protected String dealComResult(String code, MqttSubMsg subMsg, Callback callback){
+ String msg;
+ if(subMsg != null){
+ if(subMsg.vo4Up != null && Proxy.isProxyClass(subMsg.vo4Up.getClass())){
+ // 鑾峰彇浠g悊鐨� InvocationHandler
+ InvocationHandler handler = Proxy.getInvocationHandler(subMsg.vo4Up);
+ String json = JSON.toJSONString(handler) ;
+ ManureVo vo = JSON.parseObject(json, ManureVo.class);
+ msg = vo.toString() ;
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ return msg;
+ }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdDto.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdDto.java
new file mode 100644
index 0000000..491dffd
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdDto.java
@@ -0,0 +1,25 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.paramSet;
+
+import com.dy.pipIrrRemote.common.dto.Dto4MqttBase;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:36
+ * @Description
+ */
+@Data
+@EqualsAndHashCode(callSuper=true)
+public class CdDto extends Dto4MqttBase {
+ public static final long serialVersionUID = 202506201656001L;
+
+ // 鎼呮媽璁惧畾鏃堕棿 鍗曚綅绉�
+ @NotNull(message = "鎼呮媽璁惧畾鏃堕棿涓嶈兘涓虹┖")
+ public Integer stirDuration ;
+
+ // 娉ㄨ偉璁惧畾鏃堕棿 鍗曚綅绉�
+ @NotNull(message = "娉ㄨ偉璁惧畾鏃堕棿涓嶈兘涓虹┖")
+ public Integer injectDuration ;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdParam.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdParam.java
new file mode 100644
index 0000000..d4721d8
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdParam.java
@@ -0,0 +1,25 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.paramSet;
+
+import com.dy.pipIrrRemote.monitor.common.Cd4MqttParameter;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.SuperBuilder;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:36
+ * @Description
+ */
+@Data
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = true)
+@SuperBuilder
+public class CdParam extends Cd4MqttParameter {
+
+ // 鎼呮媽璁惧畾鏃堕棿
+ public Integer stirDuration ;
+
+ // 娉ㄨ偉璁惧畾鏃堕棿
+ public Integer injectDuration ;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdSv.java
new file mode 100644
index 0000000..98f1e66
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/paramSet/CdSv.java
@@ -0,0 +1,15 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.paramSet;
+
+import com.dy.pipIrrRemote.monitor.common.Com4MqttSv;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:36
+ * @Description
+ */
+@Slf4j
+@Service("mqttSd1ParamSv")
+public class CdSv extends Com4MqttSv {
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdCtrl.java
new file mode 100644
index 0000000..698f108
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdCtrl.java
@@ -0,0 +1,142 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.stir;
+
+import com.alibaba.fastjson2.JSON;
+import com.dy.common.aop.SsoAop;
+import com.dy.common.mw.protocol.Command;
+import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.CodeSdV1;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.ProtocolConstantSdV1;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.ManureVo;
+import com.dy.common.util.Callback;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.pipIrrRemote.common.dto.Dto4MqttBase;
+import com.dy.pipIrrRemote.monitor.common.Com4MqttCtrl;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.http.MediaType;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Proxy;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:35
+ * @Description
+ */
+
+@Slf4j
+@Tag(name = "杩滅▼鍛戒护", description = "鎼呮媽鍚仠")
+@RestController("mqttSd1StirCtrl")
+@RequestMapping(path = "mqttSd1/stir")
+@RequiredArgsConstructor
+@Scope("prototype") //鍥犱负鏈夊璞$被灞炴�э紝鎵�浠ラ噰鐢ㄥ師鍨嬫ā寮忥紝姣忔璇锋眰鏂板缓涓�涓疄渚嬪璞�
+public class CdCtrl extends Com4MqttCtrl {
+
+ private static final String RtuSuccessMsg = "鎺у埗鍣ㄦ帴鏀跺苟鎵ц鍛戒护鎴愬姛锛屾棤杩斿洖鏁版嵁";
+
+ private static final String Protocol = ProtocolConstantSdV1.protocolName ;
+ private static final Short ProtocolVersion = ProtocolConstantSdV1.protocolVer ;
+ private static final String ComCode = CodeSdV1.cd_Stir ;
+
+
+ @Autowired
+ private CdSv sv ;
+ /**
+ * 鍚戣澶囷紙Mqtt涓棿浠�->FBox锛夊彂閫佸懡浠�
+ * @param dto 鍓嶇鍙戞潵鐨勫�煎璞�
+ * @param bindingResult 瀵筪to楠岃瘉鐨勭粨鏋�
+ * @return 杩斿洖鍓嶇
+ */
+ @PostMapping(path = "start", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @SsoAop()
+ public BaseResponse<Object> start(@RequestBody @Valid CdDto dto, BindingResult bindingResult) {
+ return this.send(dto, bindingResult, true) ;
+ }
+ /**
+ * 鍚戣澶囷紙Mqtt涓棿浠�->FBox锛夊彂閫佸懡浠�
+ * @param dto 鍓嶇鍙戞潵鐨勫�煎璞�
+ * @param bindingResult 瀵筪to楠岃瘉鐨勭粨鏋�
+ * @return 杩斿洖鍓嶇
+ */
+ @PostMapping(path = "stop", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @SsoAop()
+ public BaseResponse<Object> stop(@RequestBody @Valid CdDto dto, BindingResult bindingResult) {
+ return this.send(dto, bindingResult, false) ;
+ }
+ /**
+ * 鍚戣澶囷紙Mqtt涓棿浠�->FBox锛夊彂閫佸懡浠�
+ * @param dto 鍓嶇鍙戞潵鐨勫�煎璞�
+ * @param bindingResult 瀵筪to楠岃瘉鐨勭粨鏋�
+ * @return 杩斿洖鍓嶇
+ */
+ private BaseResponse<Object> send(CdDto dto, BindingResult bindingResult, boolean startTrueStopFalse) {
+ BaseResponse<Object> res ;
+ //鍙戦�佸懡浠ゅ墠-1锛氶獙璇�
+ res = super.pre1(sv, ComCode, dto, bindingResult);
+ if(res == null) {
+ //鍙戦�佸懡浠ゅ墠-2锛氳幏寰楁暟鎹�
+ res = super.pre2(sv, Protocol, ProtocolVersion, ComCode, dto, bindingResult);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-3锛氫繚瀛樺懡浠ゆ棩蹇�
+ CdParam comParam = CdParam.builder().no(ctrlPo.no).startTrueStopFalse(startTrueStopFalse).build();
+ res = super.pre3(sv, dto.manureId, dto.getOperator(), Protocol, ProtocolVersion, ComCode, comParam);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ墠-4锛氬噯澶嘑eature
+ super.pre4();
+ try {
+ //鍒涘缓澶栭儴鍛戒护锛堝彂缁橫QTT->FBox锛�
+ Command com = sv.createMQTTCommand(ctrlPo.fboxId, "" + comId, Protocol, ProtocolVersion, ComCode);
+ com.rtuResultSendWebUrl = mqttResultSendWebUrl;
+ com.param = comParam ;
+ //鍙戦�佸懡浠�
+ res = super.doSend(sv, com);
+ if (res == null) {
+ //鍙戦�佸懡浠ゅ悗
+ res = super.after(ComCode, null);
+ }
+ } catch (Exception e) {
+ res = BaseResponseUtils.buildFail("鏈嶅姟绔瀯閫犲苟鍚戦�氫俊涓棿浠跺彂閫佽姹傛椂寮傚父" + (e.getMessage() == null ? "" : e.getMessage()));
+ } finally {
+ //鏈�缁�
+ super.end();
+ }
+ }
+ }
+ }
+ return res ;
+ }
+
+ @Override
+ protected String checkDto(Dto4MqttBase dto) {
+ return null;
+ }
+
+ @Override
+ protected String dealComResult(String code, MqttSubMsg subMsg, Callback callback){
+ String msg;
+ if(subMsg != null){
+ if(subMsg.vo4Up != null && Proxy.isProxyClass(subMsg.vo4Up.getClass())){
+ // 鑾峰彇浠g悊鐨� InvocationHandler
+ InvocationHandler handler = Proxy.getInvocationHandler(subMsg.vo4Up);
+ String json = JSON.toJSONString(handler) ;
+ ManureVo vo = JSON.parseObject(json, ManureVo.class);
+ msg = vo.toString() ;
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ }else{
+ msg = RtuSuccessMsg ;
+ }
+ return msg;
+ }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdDto.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdDto.java
new file mode 100644
index 0000000..c447a8c
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdDto.java
@@ -0,0 +1,18 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.stir;
+
+import com.dy.pipIrrRemote.common.dto.Dto4MqttBase;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:36
+ * @Description
+ */
+@Data
+@EqualsAndHashCode(callSuper=true)
+public class CdDto extends Dto4MqttBase {
+ public static final long serialVersionUID = 202506201655001L;
+
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdParam.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdParam.java
new file mode 100644
index 0000000..26c353d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdParam.java
@@ -0,0 +1,23 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.stir;
+
+import com.dy.pipIrrRemote.monitor.common.Cd4MqttParameter;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.SuperBuilder;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:36
+ * @Description
+ */
+@Data
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = true)
+@SuperBuilder
+public class CdParam extends Cd4MqttParameter {
+ //鍚仠鍔ㄤ綔锛宼rue鏄紝false鍚�
+ //鍙互鎵ц鍔熻兘鐮� 00锛�01锛�02锛�03鐨勫姩浣�
+ public boolean startTrueStopFalse;//
+
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdSv.java
new file mode 100644
index 0000000..0587c4d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/mqttSd1/stir/CdSv.java
@@ -0,0 +1,15 @@
+package com.dy.pipIrrRemote.monitor.mqttSd1.stir;
+
+import com.dy.pipIrrRemote.monitor.common.Com4MqttSv;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/16 17:36
+ * @Description
+ */
+@Slf4j
+@Service("mqttSd1StirSv")
+public class CdSv extends Com4MqttSv {
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd55/CdCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd55/CdCtrl.java
index 25b7859..cf37ff5 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd55/CdCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd55/CdCtrl.java
@@ -6,6 +6,7 @@
import com.dy.common.aop.SsoAop;
import com.dy.common.mw.protocol.Command;
import com.dy.common.mw.protocol.p206V202404.upVos.DataCd55Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd65Vo;
import com.dy.common.util.Callback;
import com.dy.common.webUtil.BaseResponse;
import com.dy.common.webUtil.BaseResponseUtils;
@@ -100,16 +101,26 @@
protected String dealComResult(String code, JSONObject resultData, Callback callback){
String msg;
if(resultData != null){
- JSONArray codeData = resultData.getJSONArray("data") ;
+ JSONObject codeData = resultData.getJSONObject("data") ;
+ JSONArray codeDataArray = null ;
if(codeData == null){
+ codeDataArray = resultData.getJSONArray("data") ;
+ }
+ if(codeData == null && codeDataArray == null){
msg = RtuSuccessMsg ;
}else {
- String json = codeData.toJSONString();
+ String json = null ;
+ if(codeData != null){
+ json = codeData.toJSONString() ;
+ }else if(codeDataArray != null){
+ json = codeDataArray.toJSONString() ;
+ }
List<DataCd55Vo> list = JSON.parseArray(json, DataCd55Vo.class) ;
if(list != null && list.size() > 0){
- msg = "" ;
+ msg = "\n" ;
for(DataCd55Vo cvo : list){
- msg += cvo.toStr(false) + "\n";
+ msg += cvo.toStr(false) ;
+ msg += "\n" ;
}
}else{
msg = RtuSuccessMsg ;
@@ -120,4 +131,5 @@
}
return msg;
}
+
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd5C/CdCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd5C/CdCtrl.java
index 32aeccd..7fcf6c6 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd5C/CdCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd5C/CdCtrl.java
@@ -1,9 +1,11 @@
package com.dy.pipIrrRemote.monitor.p202404V201.cd5C;
import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.dy.common.aop.SsoAop;
import com.dy.common.mw.protocol.Command;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd55Vo;
import com.dy.common.mw.protocol.p206V202404.upVos.DataCd5CVo;
import com.dy.common.util.Callback;
import com.dy.common.webUtil.BaseResponse;
@@ -100,15 +102,25 @@
String msg;
if(resultData != null){
JSONObject codeData = resultData.getJSONObject("data") ;
+ JSONArray codeDataArray = null ;
if(codeData == null){
+ codeDataArray = resultData.getJSONArray("data") ;
+ }
+ if(codeData == null && codeDataArray == null){
msg = RtuSuccessMsg ;
}else {
- String json = codeData.toJSONString();
+ String json = null ;
+ if(codeData != null){
+ json = codeData.toJSONString() ;
+ }else if(codeDataArray != null){
+ json = codeDataArray.toJSONString() ;
+ }
List<DataCd5CVo> list = JSON.parseArray(json, DataCd5CVo.class) ;
if(list != null && list.size() > 0){
- msg = "" ;
+ msg = "\n" ;
for(DataCd5CVo cvo : list){
- msg += cvo.toStr(false) + "\n";
+ msg += cvo.toStr(false) ;
+ msg += "\n" ;
}
}else{
msg = RtuSuccessMsg ;
@@ -119,4 +131,5 @@
}
return msg;
}
+
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd65/CdCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd65/CdCtrl.java
index 2cc4b34..1b1a66f 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd65/CdCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/p202404V201/cd65/CdCtrl.java
@@ -1,6 +1,7 @@
package com.dy.pipIrrRemote.monitor.p202404V201.cd65;
import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.dy.common.aop.SsoAop;
import com.dy.common.mw.protocol.Command;
@@ -22,7 +23,6 @@
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-
import java.util.List;
/**
@@ -100,15 +100,25 @@
String msg;
if(resultData != null){
JSONObject codeData = resultData.getJSONObject("data") ;
+ JSONArray codeDataArray = null ;
if(codeData == null){
+ codeDataArray = resultData.getJSONArray("data") ;
+ }
+ if(codeData == null && codeDataArray == null){
msg = RtuSuccessMsg ;
}else {
- String json = codeData.toJSONString();
+ String json = null ;
+ if(codeData != null){
+ json = codeData.toJSONString() ;
+ }else if(codeDataArray != null){
+ json = codeDataArray.toJSONString() ;
+ }
List<DataCd65Vo> list = JSON.parseArray(json, DataCd65Vo.class) ;
if(list != null && list.size() > 0){
- msg = "" ;
+ msg = "\n" ;
for(DataCd65Vo cvo : list){
msg += cvo.toStr(false) ;
+ msg += "\n" ;
}
}else{
msg = RtuSuccessMsg ;
diff --git "a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml" "b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
index 0369073..20fc4d0 100644
--- "a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
+++ "b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
@@ -1,3 +1,3 @@
spring:
profiles:
- include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self
+ include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, database-jyg, self
diff --git "a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml" "b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
index 0369073..20fc4d0 100644
--- "a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
+++ "b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
@@ -1,3 +1,3 @@
spring:
profiles:
- include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self
+ include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, database-jyg, self
diff --git "a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml" "b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
index 0369073..20fc4d0 100644
--- "a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
+++ "b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
@@ -1,3 +1,3 @@
spring:
profiles:
- include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self
+ include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, database-jyg, self
diff --git "a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml" "b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
index 0369073..20fc4d0 100644
--- "a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
+++ "b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
@@ -1,3 +1,3 @@
spring:
profiles:
- include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self
+ include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, database-jyg, self
diff --git "a/pipIrr-platform/pipIrr-web/pipIrr-web-temp/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml" "b/pipIrr-platform/pipIrr-web/pipIrr-web-temp/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
index 0369073..20fc4d0 100644
--- "a/pipIrr-platform/pipIrr-web/pipIrr-web-temp/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
+++ "b/pipIrr-platform/pipIrr-web/pipIrr-web-temp/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
@@ -1,3 +1,3 @@
spring:
profiles:
- include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self
+ include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, database-jyg, self
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardCtrl.java
index 3eef618..6720c46 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardCtrl.java
@@ -4,8 +4,16 @@
import com.dy.common.webUtil.BaseResponse;
import com.dy.common.webUtil.BaseResponseUtils;
import com.dy.common.webUtil.QueryResultVo;
+import com.dy.common.webUtil.ResultCodeMsg;
import com.dy.pipIrrGlobal.voSe.*;
import com.dy.pipIrrTerminal.card.dto.*;
+import com.dy.pipIrrTerminal.card.qo.QoCards;
+import com.dy.pipIrrTerminal.card.qo.QoLostCards;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.responses.ApiResponses;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -256,4 +264,84 @@
}
}
+ /**
+ * 鏍规嵁鎸囧畾鏉′欢鑾峰彇姘村崱鍒楄〃锛岀粓绔簲鐢ㄧ▼搴忎娇鐢�
+ * @param vo
+ * @return
+ */
+ @Operation(summary = "鑾峰緱涓�椤垫按鍗¤褰�", description = "杩斿洖涓�椤垫按鍗℃暟鎹�")
+ @ApiResponses(value = {
+ @ApiResponse(
+ responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+ description = "杩斿洖涓�椤垫按鍗℃暟鎹紙BaseResponse.content:QueryResultVo[{}]锛�",
+ content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+ schema = @Schema(implementation = VoCards.class))}
+ )
+ })
+ @GetMapping(path = "getcards")
+ @SsoAop()
+ public BaseResponse<QueryResultVo<List<VoCards>>> getcards(QoCards vo){
+ try {
+ QueryResultVo<List<VoCards>> res = cardSv.getCards(vo);
+ return BaseResponseUtils.buildSuccess(res);
+ } catch (Exception e) {
+ log.error("鏌ヨ姘村崱寮傚父", e);
+ return BaseResponseUtils.buildException(e.getMessage()) ;
+ }
+ }
+
+ /**
+ * 鑾峰彇宸叉寕澶辩殑姘村崱鍒楄〃锛岀粓绔簲鐢ㄧ▼搴忎娇鐢�
+ * @param vo
+ * @return
+ */
+ @Operation(summary = "鑾峰緱涓�椤靛凡鎸傚け姘村崱璁板綍", description = "杩斿洖涓�椤靛凡鎸傚け姘村崱鏁版嵁")
+ @ApiResponses(value = {
+ @ApiResponse(
+ responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+ description = "杩斿洖涓�椤靛凡鎸傚け姘村崱鏁版嵁锛圔aseResponse.content:QueryResultVo[{}]锛�",
+ content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+ schema = @Schema(implementation = VoCards.class))}
+ )
+ })
+ @GetMapping(path = "getlostcards")
+ @SsoAop()
+ public BaseResponse<QueryResultVo<List<VoCards>>> getLostCards(QoLostCards vo){
+ try {
+ QueryResultVo<List<VoCards>> res = cardSv.getLostCards(vo);
+ return BaseResponseUtils.buildSuccess(res);
+ } catch (Exception e) {
+ log.error("鏌ヨ宸叉寕澶辨按鍗″紓甯�", e);
+ return BaseResponseUtils.buildException(e.getMessage()) ;
+ }
+ }
+
+ /**
+ * 鏍规嵁姘村崱缂栧彿鑾峰彇鍗′俊鎭�
+ * @param cardNum 姘村崱缂栧彿
+ * @return
+ */
+ @Operation(summary = "鏍规嵁姘村崱缂栧彿鑾峰彇鍗′俊鎭�", description = "鏍规嵁姘村崱缂栧彿鑾峰彇瀵瑰簲鐨勫崱淇℃伅")
+ @ApiResponses(value = {
+ @ApiResponse(
+ responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+ description = "杩斿洖鍗′俊鎭紙BaseResponse.content:VoCardByClientNum锛�",
+ content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+ schema = @Schema(implementation = VoCardByClientNum.class))}
+ )
+ })
+ @GetMapping(path = "getcardbycardnum")
+ @SsoAop()
+ public BaseResponse<VoCardByClientNum> getCardByCardNum(@RequestParam String cardNum){
+ try {
+ VoCardByClientNum res = cardSv.getCardByCardNum(cardNum);
+ if (res == null) {
+ return BaseResponseUtils.buildFail("鏈壘鍒板搴旂殑鍗′俊鎭�");
+ }
+ return BaseResponseUtils.buildSuccess(res);
+ } catch (Exception e) {
+ log.error("鏍规嵁姘村崱缂栧彿鏌ヨ鍗′俊鎭紓甯�", e);
+ return BaseResponseUtils.buildException(e.getMessage()) ;
+ }
+ }
}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardSv.java
index 8ef5072..0aeff56 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardSv.java
@@ -1,6 +1,7 @@
package com.dy.pipIrrTerminal.card;
import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.common.webUtil.QueryResultVo;
import com.dy.pipIrrGlobal.daoPr.PrWaterPriceMapper;
import com.dy.pipIrrGlobal.daoSe.*;
import com.dy.pipIrrGlobal.pojoSe.SeCardOperate;
@@ -8,11 +9,14 @@
import com.dy.pipIrrGlobal.pojoSe.SeRechargeHistory;
import com.dy.pipIrrGlobal.voSe.*;
import com.dy.pipIrrTerminal.card.dto.*;
+import com.dy.pipIrrTerminal.card.qo.QoCards;
+import com.dy.pipIrrTerminal.card.qo.QoLostCards;
import com.dy.pipIrrTerminal.card.enums.CardStateENUM;
import com.dy.pipIrrTerminal.card.enums.LastOperateENUM;
import com.dy.pipIrrTerminal.card.enums.OperateTypeENUM;
import com.dy.pipIrrTerminal.card.enums.RechargeTypeENUM;
import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.common.utils.PojoUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@@ -1182,4 +1186,67 @@
return null;
}
+
+ /**
+ * 鏍规嵁鎸囧畾鏉′欢鑾峰彇姘村崱鍒楄〃
+ * @param vo 鏌ヨ鏉′欢
+ * @return 姘村崱鍒楄〃
+ */
+ public QueryResultVo<List<VoCards>> getCards(QoCards vo) {
+ Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(vo);
+ Long itemTotal = seClientCardMapper.getCardsCount(params);
+
+ QueryResultVo<List<VoCards>> rsVo = new QueryResultVo<>();
+ rsVo.pageSize = vo.pageSize;
+ rsVo.pageCurr = vo.pageCurr;
+
+ if (itemTotal > 0) {
+ rsVo.calculateAndSet(itemTotal, params);
+ List<VoCards> list = seClientCardMapper.getCards(params);
+ rsVo.obj = list;
+ } else {
+ rsVo.obj = new ArrayList<>();
+ rsVo.itemTotal = 0L;
+ }
+
+ return rsVo;
+ }
+
+ /**
+ * 鑾峰彇宸叉寕澶辩殑姘村崱鍒楄〃
+ * @param vo 鏌ヨ鏉′欢
+ * @return 宸叉寕澶辩殑姘村崱鍒楄〃
+ */
+ public QueryResultVo<List<VoCards>> getLostCards(QoLostCards vo) {
+ Map<String, Object> params = new HashMap<>();
+ params.put("pageCurr", vo.pageCurr);
+ params.put("pageSize", vo.pageSize);
+ params.put("state", 2); // 鎸傚け鐘舵��
+
+ Long itemTotal = seClientCardMapper.getLostCardsCount(params);
+
+ QueryResultVo<List<VoCards>> rsVo = new QueryResultVo<>();
+ rsVo.pageSize = vo.pageSize;
+ rsVo.pageCurr = vo.pageCurr;
+
+ if (itemTotal > 0) {
+ rsVo.calculateAndSet(itemTotal, params);
+ List<VoCards> list = seClientCardMapper.getLostCards(params);
+ rsVo.obj = list;
+ } else {
+ rsVo.obj = new ArrayList<>();
+ rsVo.itemTotal = 0L;
+ }
+
+ return rsVo;
+ }
+
+ /**
+ * 鏍规嵁姘村崱缂栧彿鑾峰彇鍗′俊鎭�
+ * @param cardNum 姘村崱缂栧彿
+ * @return 鍗′俊鎭�
+ */
+ public VoCardByClientNum getCardByCardNum(String cardNum) {
+ return seClientCardMapper.getCardByCardNum(cardNum);
+ }
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/dto/DtoReissue.java b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/dto/DtoReissue.java
index fed7810..32c6c19 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/dto/DtoReissue.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/dto/DtoReissue.java
@@ -44,7 +44,6 @@
/**
* 鏀粯鏂瑰紡
*/
- @NotNull(message = "鏀粯鏂瑰紡涓嶈兘涓虹┖")
private Long paymentId;
/**
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/qo/QoCards.java b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/qo/QoCards.java
new file mode 100644
index 0000000..a816357
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/qo/QoCards.java
@@ -0,0 +1,31 @@
+package com.dy.pipIrrTerminal.card.qo;
+
+import com.dy.common.webUtil.QueryConditionVo;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2025-01-15
+ * @LastEditTime 2025-01-15
+ * @Description 缁堢妯″潡姘村崱璁板綍鏌ヨ鏉′欢
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ToString(callSuper = true)
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+@Schema(name = "姘村崱璁板綍鏌ヨ鏉′欢")
+public class QoCards extends QueryConditionVo {
+
+ @Schema(description = "鍐滄埛缂栧彿")
+ public Long clientNum;
+
+ @Schema(description = "鍐滄埛濮撳悕")
+ private String clientName;
+
+ @Schema(description = "姘村崱缂栧彿")
+ public Long cardNum;
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/qo/QoLostCards.java b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/qo/QoLostCards.java
new file mode 100644
index 0000000..342084a
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/qo/QoLostCards.java
@@ -0,0 +1,28 @@
+package com.dy.pipIrrTerminal.card.qo;
+
+import com.dy.common.webUtil.QueryConditionVo;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2025-01-15
+ * @LastEditTime 2025-01-15
+ * @Description 缁堢妯″潡宸叉寕澶辨按鍗℃煡璇㈡潯浠�
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ToString(callSuper = true)
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+@Schema(name = "宸叉寕澶辨按鍗℃煡璇㈡潯浠�")
+public class QoLostCards extends QueryConditionVo {
+
+ @Schema(description = "椤电爜", example = "1")
+ public Integer pageCurr;
+
+ @Schema(description = "姣忛〉鏁伴噺", example = "10")
+ public Integer pageSize;
+}
\ No newline at end of file
diff --git "a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml" "b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
index 0369073..20fc4d0 100644
--- "a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
+++ "b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
@@ -1,3 +1,3 @@
spring:
profiles:
- include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self
+ include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, database-jyg, self
diff --git "a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml" "b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
index 0369073..20fc4d0 100644
--- "a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
+++ "b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/resources/application\050121\346\234\215\345\212\241\345\231\250\051.yml"
@@ -1,3 +1,3 @@
spring:
profiles:
- include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, self
+ include: common-web, global, database, database-mq, database-yq, database-hlj, database-gz, database-lz, database-jc, database-jyg, self
diff --git "a/pipIrr-platform/\346\226\207\346\241\243/SaaS/\345\242\236\345\212\240\344\270\200\344\270\252\345\215\225\344\275\215\357\274\210orgTag\357\274\211.docx" "b/pipIrr-platform/\346\226\207\346\241\243/SaaS/\345\242\236\345\212\240\344\270\200\344\270\252\345\215\225\344\275\215\357\274\210orgTag\357\274\211.docx"
index 225d9f1..bae8174 100644
--- "a/pipIrr-platform/\346\226\207\346\241\243/SaaS/\345\242\236\345\212\240\344\270\200\344\270\252\345\215\225\344\275\215\357\274\210orgTag\357\274\211.docx"
+++ "b/pipIrr-platform/\346\226\207\346\241\243/SaaS/\345\242\236\345\212\240\344\270\200\344\270\252\345\215\225\344\275\215\357\274\210orgTag\357\274\211.docx"
Binary files differ
diff --git "a/pipIrr-platform/\346\226\207\346\241\243/SaaS/\347\253\257\345\217\243\343\200\201IP\343\200\201\346\240\207\347\255\276\351\205\215\347\275\256.docx" "b/pipIrr-platform/\346\226\207\346\241\243/SaaS/\347\253\257\345\217\243\343\200\201IP\343\200\201\346\240\207\347\255\276\351\205\215\347\275\256.docx"
index 2af0c4b..0ab2d81 100644
--- "a/pipIrr-platform/\346\226\207\346\241\243/SaaS/\347\253\257\345\217\243\343\200\201IP\343\200\201\346\240\207\347\255\276\351\205\215\347\275\256.docx"
+++ "b/pipIrr-platform/\346\226\207\346\241\243/SaaS/\347\253\257\345\217\243\343\200\201IP\343\200\201\346\240\207\347\255\276\351\205\215\347\275\256.docx"
Binary files differ
diff --git "a/pipIrr-platform/\346\226\207\346\241\243/\346\260\264\350\202\245\346\260\224\350\261\241\345\242\222\346\203\205/FlexManager\350\275\257\344\273\266\351\205\215\347\275\256\345\217\202\346\225\260.docx" "b/pipIrr-platform/\346\226\207\346\241\243/\346\260\264\350\202\245\346\260\224\350\261\241\345\242\222\346\203\205/FlexManager\350\275\257\344\273\266\351\205\215\347\275\256\345\217\202\346\225\260.docx"
new file mode 100644
index 0000000..c544565
--- /dev/null
+++ "b/pipIrr-platform/\346\226\207\346\241\243/\346\260\264\350\202\245\346\260\224\350\261\241\345\242\222\346\203\205/FlexManager\350\275\257\344\273\266\351\205\215\347\275\256\345\217\202\346\225\260.docx"
Binary files differ
diff --git "a/pipIrr-platform/\346\226\207\346\241\243/\346\260\264\350\202\245\346\260\224\350\261\241\345\242\222\346\203\205/MQTT\346\214\207\344\273\244\344\270\215\346\211\247\350\241\214.docx" "b/pipIrr-platform/\346\226\207\346\241\243/\346\260\264\350\202\245\346\260\224\350\261\241\345\242\222\346\203\205/MQTT\346\214\207\344\273\244\344\270\215\346\211\247\350\241\214.docx"
new file mode 100644
index 0000000..1ee7964
--- /dev/null
+++ "b/pipIrr-platform/\346\226\207\346\241\243/\346\260\264\350\202\245\346\260\224\350\261\241\345\242\222\346\203\205/MQTT\346\214\207\344\273\244\344\270\215\346\211\247\350\241\214.docx"
Binary files differ
diff --git "a/pipIrr-platform/\346\226\207\346\241\243/\346\260\264\350\202\245\346\260\224\350\261\241\345\242\222\346\203\205/MQTT\350\256\276\345\256\232\346\227\266\351\227\264\345\217\202\346\225\260.docx" "b/pipIrr-platform/\346\226\207\346\241\243/\346\260\264\350\202\245\346\260\224\350\261\241\345\242\222\346\203\205/MQTT\350\256\276\345\256\232\346\227\266\351\227\264\345\217\202\346\225\260.docx"
new file mode 100644
index 0000000..30688d2
--- /dev/null
+++ "b/pipIrr-platform/\346\226\207\346\241\243/\346\260\264\350\202\245\346\260\224\350\261\241\345\242\222\346\203\205/MQTT\350\256\276\345\256\232\346\227\266\351\227\264\345\217\202\346\225\260.docx"
Binary files differ
--
Gitblit v1.8.0