From aec4636e4fb430055feb66751da0e6c05bb864df Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期三, 30 四月 2025 16:25:30 +0800
Subject: [PATCH] fix(irrigatePlan): 修复终止灌溉计划时长设置错误- 将终止计划的默认时长从 9999 修改为 0 - 此修改确保在终止灌溉计划时,不会出现时长设置过长的问题
---
pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/rmiClient/RmiClUnit.java | 350 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 350 insertions(+), 0 deletions(-)
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/rmiClient/RmiClUnit.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/rmiClient/RmiClUnit.java
new file mode 100644
index 0000000..b534caf
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/rmiClient/RmiClUnit.java
@@ -0,0 +1,350 @@
+package com.dy.testClient.rmiClient;
+
+import com.dy.testClient.ServerProperties;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import com.dy.common.mw.UnitAdapterInterface;
+import com.dy.common.mw.UnitInterface;
+import com.dy.common.mw.UnitCallbackInterface;
+import com.dy.common.mw.channel.rmi.RmiFrameWork;
+
+public class RmiClUnit implements UnitInterface {
+
+ private static final Logger log = LogManager.getLogger(RmiClUnit.class) ;
+
+ private static final String id = "" + System.nanoTime() ;//鑷繁鐨刬d
+
+ public static String token ;//鏈嶅姟绔彂鐨則oken
+
+ private static final RmiClUnit instance = new RmiClUnit() ;
+
+ private static RmiFrameWork frmWork = null ;
+
+ public static RmiClUnitAdapter adapter ;
+ public static RmiClUnitConfigVo confVo ;
+
+ private RmiClUnit(){}
+
+ public static RmiClUnit getInstance(){
+ return instance ;
+ }
+
+ @Override
+ public void setAdapter(UnitAdapterInterface adapter) throws Exception {
+ if(adapter == null){
+ throw new Exception("Rmi Client妯″潡閫傞厤鍣ㄥ璞′笉鑳戒负绌猴紒") ;
+ }
+ RmiClUnit.adapter = (RmiClUnitAdapter)adapter ;
+ RmiClUnit.confVo = RmiClUnit.adapter.getConfig() ;
+ if(RmiClUnit.confVo == null){
+ throw new Exception("Rmi Client妯″潡閰嶇疆瀵硅薄涓嶈兘涓虹┖锛�") ;
+ }
+ }
+
+ @Override
+ public void start(UnitCallbackInterface callback) throws Exception {
+ System.out.println("Rmi Client妯″潡鎴愬姛鍚姩");
+ this.doStart();
+ callback.call(null) ;
+ }
+
+ @Override
+ public void stop(UnitCallbackInterface callback) throws Exception {
+ callback.call(null);
+ }
+
+ private void doStart(){
+ new Thread(() -> {
+ while(true){
+ try {
+ Thread.sleep(100L);
+ frmWork = getRmiFrameWork() ;
+ if(frmWork != null){
+ break ;
+ }
+ } catch (Exception e) {
+ log.error("寰楀埌rmiFramWork澶辫触" + e.getMessage());
+ continue ;
+ }
+ }
+ register(frmWork) ;
+ }).start();
+ }
+
+ public RmiFrameWork getRmiFrameWork(){
+ System.setProperty("java.rmi.server.hostname", confVo.svUrl) ;
+ System.out.println("Rmi寤虹珛杩炴帴璇锋眰鏈嶅姟绔細" + confVo.svUrl + ":" + confVo.svPort + "/" + confVo.svContext);
+ RmiClient rmiCl = new RmiClient(confVo.svUrl, confVo.svPort, confVo.svContext) ;
+ return rmiCl.getRmiInterface() ;
+ }
+
+ //鎶婁笂鎶ユ暟鎹殑鏁伴噺涓婃姤缁檓wTestServer
+ public void reportHadReportCount(Integer count){
+ try {
+ Thread.sleep(100L);
+ RmiRequestVo rqVo = new RmiRequestVo() ;
+ rqVo.id = id ;
+ rqVo.token = token ;
+ rqVo.code = Code.cd5;
+ rqVo.count = count ;
+ String json = rqVo.toJson() ;
+ frmWork.syncRequest(json) ;
+ } catch (Exception e) {
+ log.error("鎶婁笂鎶ユ暟鎹殑鏁伴噺涓婃姤缁檓wTestServer澶辫触" + e.getMessage());
+ }
+ }
+
+ //鎶婃暟鎹笂鎶ュ畬鎴愭儏鍐� 涓婃姤缁檓wTestServer
+ public void reportHadReportOver(Integer count){
+ try {
+ Thread.sleep(100L);
+ RmiRequestVo rqVo = new RmiRequestVo() ;
+ rqVo.id = id ;
+ rqVo.token = token ;
+ rqVo.code = Code.cd6;
+ rqVo.overCount = count ;
+ String json = rqVo.toJson() ;
+ frmWork.syncRequest(json) ;
+ } catch (Exception e) {
+ log.error("鎶婃暟鎹笂鎶ュ畬鎴愭儏鍐� 涓婃姤缁檓wTestServer澶辫触" + e.getMessage());
+ }
+ }
+
+
+ //鎶婃暟鎹笂鎶ュ畬鎴愭儏鍐� 涓婃姤缁檓wTestServer
+ public void allOver(Long seconds){
+ try {
+ Thread.sleep(100L);
+ RmiRequestVo rqVo = new RmiRequestVo() ;
+ rqVo.id = id ;
+ rqVo.token = token ;
+ rqVo.code = Code.cd7;
+ rqVo.over = true ;
+ rqVo.seconds = seconds ;
+ String json = rqVo.toJson() ;
+ frmWork.syncRequest(json) ;
+ } catch (Exception e) {
+ log.error("鎶婃暟鎹笂鎶ュ畬鎴愭儏鍐� 涓婃姤缁檓wTestServer澶辫触" + e.getMessage());
+ }
+ }
+
+ //鍚憁wTestServer娉ㄥ唽
+ private void register(RmiFrameWork frmWork){
+ boolean error = false ;
+ while(true){
+ try {
+ Thread.sleep(100L);
+ RmiRequestVo rqVo = new RmiRequestVo() ;
+ rqVo.id = id ;
+ rqVo.code = Code.cd1 ;
+ String json = rqVo.toJson() ;
+ Object rObj = frmWork.syncRequest(json) ;
+ if(rObj != null){
+ RmiResponseVo rspVo = RmiResponseVo.jsonToObject(String.valueOf(rObj), ResRegisterVo.class) ;
+ if(rspVo != null){
+ if(rspVo.success){
+ if(rspVo.obj != null && rspVo.obj instanceof ResRegisterVo){
+ ResRegisterVo rVo = (ResRegisterVo)rspVo.obj ;
+ token = rVo.token ;
+ log.info("娉ㄥ唽鎴愬姛锛屽緱鍒皌oken=" + token);
+ break ;
+ }else{
+ log.error("rmi娉ㄥ唽澶辫触锛氭湇鍔$杩斿洖ResRegisterVo涓簄ull");
+ error = true ;
+ }
+ }else{
+ log.error("rmi娉ㄥ唽澶辫触锛氭湇鍔$杩斿洖閿欒锛�" + rspVo.errorInfo);
+ error = true ;
+ }
+ }else{
+ log.error("rmi娉ㄥ唽澶辫触锛氭湇鍔$杩斿洖鐨凴miResponseVo涓簄ull");
+ error = true ;
+ }
+ }else{
+ log.error("rmi娉ㄥ唽澶辫触锛氭湇鍔$杩斿洖json涓簄ull");
+ error = true ;
+ }
+ } catch (Exception e) {
+ log.error("rmi娉ㄥ唽澶辫触" + e.getMessage());
+ error = true ;
+ continue ;
+ }
+ }
+ if(!error){
+ getConfig(frmWork) ;
+ }
+ }
+
+ //浠巑wTestServer寰楀埌閰嶇疆
+ private void getConfig(RmiFrameWork frmWork){
+ boolean error = false ;
+ while(true){
+ try {
+ Thread.sleep(100L);
+ RmiRequestVo rqVo = new RmiRequestVo() ;
+ rqVo.id = id ;
+ rqVo.token = token ;
+ rqVo.code = Code.cd2 ;
+ String json = rqVo.toJson() ;
+ Object rObj = frmWork.syncRequest(json) ;
+ if(rObj != null){
+ RmiResponseVo rspVo = RmiResponseVo.jsonToObject(String.valueOf(rObj), ResConfigVo.class) ;
+ if(rspVo != null){
+ if(rspVo.success){
+ if(rspVo.obj != null && rspVo.obj instanceof ResConfigVo){
+ ResConfigVo rVo = (ResConfigVo)rspVo.obj ;
+ if(rVo != null){
+ ServerProperties.rtuAddrStart = rVo.rtuAddrStart;
+ ServerProperties.rtuAddrEnd = rVo.rtuAddrEnd;
+ ServerProperties.tcpServerIp = rVo.tcpServerIp;
+ ServerProperties.tcpServerPort = rVo.tcpServerPort;
+ ServerProperties.sendInterval = rVo.sendInterval ;
+ ServerProperties.heartbeatTimes = rVo.heartbeatTimes ;
+ ServerProperties.sendTimes = rVo.sendTimes ;
+ ServerProperties.sendOverThenCloseConnect = rVo.sendOverThenCloseConnect ;
+ log.info("寰楀埌閰嶇疆鎴愬姛");
+ log.info(" 寮�濮婻tuAddr=" + ServerProperties.rtuAddrStart);
+ log.info(" 鎴RtuAddr=" + ServerProperties.rtuAddrEnd);
+ log.info(" mwAccept鏈嶅姟IP=" + ServerProperties.tcpServerIp);
+ log.info(" mwAccept鏈嶅姟绔彛=" + ServerProperties.tcpServerPort);
+ log.info(" 鍙戦�佹暟鎹棿闅�=" + ServerProperties.sendTimes);
+ log.info(" 姣忚疆娆″彂閫佸績璺虫鏁�=" + ServerProperties.heartbeatTimes);
+ log.info(" 姣廟TU涓婃姤鏁版嵁杞=" + ServerProperties.sendTimes);
+ log.info(" 鍙戦�佸畬鏁版嵁鍚庯紝鏄惁鍏抽棴TCP杩炴帴(1鏄紝0鍚�)=" + ServerProperties.sendOverThenCloseConnect);
+ break ;
+ }else{
+ log.error("rmi寰楀埌閰嶇疆澶辫触锛歫son杞琑esConfigVo涓簄ull");
+ error = true ;
+ }
+ }else{
+ log.error("rmi寰楀埌閰嶇疆澶辫触锛氭湇鍔$杩斿洖ResConfigVo涓簄ull");
+ error = true ;
+ }
+ }else{
+ log.error("rmi寰楀埌閰嶇疆澶辫触锛氭湇鍔$杩斿洖閿欒锛�" + rspVo.errorInfo);
+ error = true ;
+ }
+ }else{
+ log.error("rmi寰楀埌閰嶇疆澶辫触锛氭湇鍔$杩斿洖鐨凴miResponseVo涓簄ull");
+ error = true ;
+ }
+ }else{
+ log.error("rmi寰楀埌閰嶇疆澶辫触锛氭湇鍔$杩斿洖json涓簄ull");
+ error = true ;
+ }
+ } catch (Exception e) {
+ log.error("rmi寰楀埌閰嶇疆澶辫触" + e.getMessage());
+ error = true ;
+ continue ;
+ }
+ }
+ if(!error){
+ getStartTcpConnect(frmWork) ;
+ }
+ }
+
+ //浠巑wTestServer寰楀埌寮�濮婽CP杩炴帴鐨勮鍏佽
+ private void getStartTcpConnect(RmiFrameWork frmWork){
+ log.info("绛夊緟鏈嶅姟绔厑璁哥綉缁滆繛鎺�");
+ boolean error = false ;
+ while(true){
+ try {
+ Thread.sleep(100L);
+ RmiRequestVo rqVo = new RmiRequestVo() ;
+ rqVo.id = id ;
+ rqVo.token = token ;
+ rqVo.code = Code.cd3 ;
+ String json = rqVo.toJson() ;
+ Object rObj = frmWork.syncRequest(json) ;
+ if(rObj != null){
+ RmiResponseVo rspVo = RmiResponseVo.jsonToObject(String.valueOf(rObj), ResStartTcpConnectVo.class) ;
+ if(rspVo != null){
+ if(rspVo.success){
+ if(rspVo.obj != null && rspVo.obj instanceof ResStartTcpConnectVo){
+ ResStartTcpConnectVo rVo = (ResStartTcpConnectVo)rspVo.obj ;
+ if(rVo != null){
+ if(rVo.start){
+ ServerProperties.startTcpConnectWork = true ;
+ log.info("鍏佽TCP缃戠粶杩炴帴浜�( ^_^ )");
+ error = false ;
+ break ;
+ }
+ }else{
+ error = true ;
+ log.error("rmi璇锋眰TCP缃戠粶杩炴帴澶辫触锛歫son杞琑esStartTcpConnectVo涓簄ull");
+ }
+ }else{
+ error = true ;
+ log.error("rmi璇锋眰TCP缃戠粶杩炴帴澶辫触锛氭湇鍔$杩斿洖ResStartTcpConnectVo涓簄ull");
+ }
+ }else{
+ error = true ;
+ log.error("rmi璇锋眰TCP缃戠粶杩炴帴澶辫触锛氭湇鍔$杩斿洖閿欒锛�" + rspVo.errorInfo);
+ }
+ }else{
+ error = true ;
+ log.error("rmi璇锋眰TCP缃戠粶杩炴帴澶辫触锛氭湇鍔$杩斿洖鐨凴miResponseVo涓簄ull");
+ }
+ }else{
+ error = true ;
+ log.error("rmi璇锋眰TCP缃戠粶杩炴帴澶辫触锛氭湇鍔$杩斿洖json涓簄ull");
+ }
+ } catch (Exception e) {
+ error = true ;
+ log.error("rmi璇锋眰TCP缃戠粶杩炴帴澶辫触" + e.getMessage());
+ continue ;
+ }
+ }
+ if(!error){
+ getStartRtuReport(frmWork) ;
+ }
+ }
+
+ //浠巑wTestServer寰楀埌寮�濮婻TU涓婃姤鏁版嵁鐨勮鍏佽
+ private void getStartRtuReport(RmiFrameWork frmWork){
+ log.info("绛夊緟鏈嶅姟绔厑璁镐笂鎶ユ暟鎹�");
+ while(true){
+ try {
+ Thread.sleep(100L);
+ RmiRequestVo rqVo = new RmiRequestVo() ;
+ rqVo.id = id ;
+ rqVo.token = token ;
+ rqVo.code = Code.cd4 ;
+ String json = rqVo.toJson() ;
+ Object rObj = frmWork.syncRequest(json) ;
+ if(rObj != null){
+ RmiResponseVo rspVo = RmiResponseVo.jsonToObject(String.valueOf(rObj), ResStartRtuReportVo.class) ;
+ if(rspVo != null){
+ if(rspVo.success){
+ if(rspVo.obj != null && rspVo.obj instanceof ResStartRtuReportVo){
+ ResStartRtuReportVo rVo = (ResStartRtuReportVo)rspVo.obj ;
+ if(rVo != null){
+ if(rVo.report){
+ ServerProperties.startRtuReportWork = true ;
+ log.info("鍏佽RTU涓婃姤鏁版嵁宸ヤ綔浜�( ^_^ )");
+ break ;
+ }
+ }else{
+ log.error("rmi璇锋眰Rtu涓婃姤鏁版嵁澶辫触锛歫son杞琑esStartRtuReportVo涓簄ull");
+ }
+ }else{
+ log.error("rmi璇锋眰Rtu涓婃姤鏁版嵁澶辫触锛氭湇鍔$杩斿洖ResStartRtuReportVo涓簄ull");
+ }
+ }else{
+ log.error("rmi璇锋眰Rtu涓婃姤鏁版嵁澶辫触锛氭湇鍔$杩斿洖閿欒锛�" + rspVo.errorInfo);
+ }
+ }else{
+ log.error("rmi璇锋眰Rtu涓婃姤鏁版嵁澶辫触锛氭湇鍔$杩斿洖鐨凴miResponseVo涓簄ull");
+ }
+ }else{
+ log.error("rmi璇锋眰Rtu涓婃姤鏁版嵁澶辫触锛氭湇鍔$杩斿洖json涓簄ull");
+ }
+ } catch (Exception e) {
+ log.error("rmi璇锋眰Rtu涓婃姤鏁版嵁澶辫触" + e.getMessage());
+ continue ;
+ }
+ }
+ }
+
+}
\ No newline at end of file
--
Gitblit v1.8.0