From 14e95631f075f951a44033faeab3075bb05eda1d Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期二, 13 五月 2025 14:57:47 +0800
Subject: [PATCH] 解决问题:取水口解绑之后,不能获取取水口详情信息。
---
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu3rd/src/main/java/com/dy/rtuMw3rd/http4Xjnk/Worker.java | 218 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 218 insertions(+), 0 deletions(-)
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu3rd/src/main/java/com/dy/rtuMw3rd/http4Xjnk/Worker.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu3rd/src/main/java/com/dy/rtuMw3rd/http4Xjnk/Worker.java
new file mode 100644
index 0000000..be427a4
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu3rd/src/main/java/com/dy/rtuMw3rd/http4Xjnk/Worker.java
@@ -0,0 +1,218 @@
+package com.dy.rtuMw3rd.http4Xjnk;
+
+
+import java.util.*;
+
+import com.alibaba.fastjson2.JSON;
+import com.dy.rtuMw3rd.http4Xjnk.deal.XjnkDealer;
+import com.dy.rtuMw3rd.http4Xjnk.protocol.XjnkResVo;
+import com.dy.rtuMw3rd.http4Xjnk.protocol.controller.ControllerVo;
+import com.dy.rtuMw3rd.http4Xjnk.protocol.mainController.MainControllerVo;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import com.dy.rtuMw3rd.http4Xjnk.protocol.XjnkProtocol;
+import com.dy.rtuMw3rd.http4Xjnk.protocol.accessToken.Res4AccessTokenVo;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/3/19 15:53
+ * @Description
+ */
+@Slf4j
+@Component()
+public class Worker extends TimerTask {
+
+ private HttpsRq httpsRq ;
+ private XjnkDealer dealer ;
+
+ public String httpsBaseUr ;
+ public String appid ;
+ public String secret ;
+ private Long workInterval ;//寰幆浠诲姟闂撮殧
+
+ private Timer timer;
+
+ private boolean stop;
+
+ private boolean first = true ;
+ private boolean isAccessTokenGot = false ;
+ private List<MainControllerVo> mainControllerVos ;
+ private List<ControllerVo> controllerVos ;
+
+ @Autowired
+ public void setHttpsRq(HttpsRq httpsRq){
+ this.httpsRq = httpsRq ;
+ }
+ @Autowired
+ private void setDealer(XjnkDealer dealer){
+ this.dealer = dealer;
+ }
+ public void setHttpsBaseUr(String httpsBaseUr){
+ this.httpsBaseUr = httpsBaseUr ;
+ }
+ public void setAppid(String appid){
+ this.appid = appid ;
+ }
+ public void setSecret(String secret){
+ this.secret = secret ;
+ }
+ public void setWorkInterval(Long workInterval){
+ this.workInterval = workInterval ;
+ }
+
+ public void stop(){
+ this.stop = true ;
+ if(this.timer != null){
+ this.timer.cancel();
+ }
+ }
+
+ public boolean isStop(){
+ return this.stop ;
+ }
+
+ public void start(){
+ this.timer = new Timer();
+ this.stop = false ;
+ new Thread(() -> {
+ while(true){
+ try {
+ getAccessToken() ;
+ }catch (Exception e){
+ log.error("鏂扮枂鍐滃灕--鑾峰緱AccessToken寮傚父" + (e.getMessage() == null ? "" : (":" + e.getMessage())), e);
+ }
+ try{
+ Thread.sleep(10000);
+ }catch (Exception e){
+ }
+ if(isAccessTokenGot){
+ timer.schedule(this, 0, this.workInterval);
+ break ;
+ }
+ }
+ }).start();
+ }
+
+ @Override
+ public void run() {
+ if(first){
+ first = false ;
+ }else{
+ try{
+ getAccessToken() ;
+ }catch(Exception e){
+ log.error("鏂扮枂鍐滃灕--鑾峰緱AccessToken寮傚父" + (e.getMessage() == null ? "" : (":" + e.getMessage())), e);
+ }
+ }
+ if(isAccessTokenGot) {
+ try {
+ getMainControllers();
+ } catch (Exception e) {
+ log.error("鏂扮枂鍐滃灕--鑾峰緱涓绘帶鍒跺櫒寮傚父" + (e.getMessage() == null ? "" : (":" + e.getMessage())), e);
+ }
+ try {
+ getControllers();
+ } catch (Exception e) {
+ log.error("鏂扮枂鍐滃灕--鑾峰緱鎺у埗鍣ㄥ紓甯�" + (e.getMessage() == null ? "" : (":" + e.getMessage())), e);
+ }
+ }
+ }
+
+ public void getAccessToken() throws Exception{
+ this.httpsRq.get4JsonBySync(this.httpsBaseUr + "/thirdapi/token?appid=" + this.appid + "&secret=" + this.secret,
+ null,
+ (statusCode, charset, body) -> {
+ // 鎵撳嵃鍝嶅簲鐘舵�佺爜
+ //System.out.println("Status Code: " + statusCode);
+ // 鎵撳嵃鍝嶅簲鍐呭缂栫爜绫诲瀷
+ //System.out.println("Response encoding: " + charset);
+ // 鎵撳嵃鍝嶅簲浣撳唴瀹�
+ //System.out.println("Response Body: " + body);
+ if(statusCode != null && statusCode.equals(XjnkProtocol.SuccessCode)){
+ Res4AccessTokenVo vo = JSON.parseObject(body, Res4AccessTokenVo.class);
+ if(vo != null && vo.errcode != null && vo.errcode.length() > 0){
+ log.error("鏂扮枂鍐滃灕--鑾峰彇AccessToken澶辫触锛宔rrcode锛�" + vo.errcode + "锛宔rrmsg锛�" + vo.errmsg);
+ }else{
+ isAccessTokenGot = true ;
+ XjnkProtocol.AccessToken = vo.accessToken ;
+ XjnkProtocol.AccessTokenExpires = vo.expires ;
+ log.info("鏂扮枂鍐滃灕--鑾峰彇AccessToken鎴愬姛锛宎ccessToken锛�" + vo.accessToken + "锛宔xpires锛�" + vo.expires);
+ }
+ }
+ });
+ }
+
+ /**
+ * 鑾峰彇涓绘帶鍒跺櫒
+ * @throws Exception
+ */
+ public void getMainControllers() throws Exception{
+ this.httpsRq.get4JsonBySync(this.httpsBaseUr + "/thirdapi/pridevice/all?access_token=" + XjnkProtocol.AccessToken,
+ null,
+ (statusCode, charset, body) -> {
+ if(statusCode != null && statusCode.equals(XjnkProtocol.SuccessCode)){
+ try{
+ //棣栧厛璁や负杩斿洖鐨勬槸閿欒淇℃伅锛岃繘琛屽皾璇�
+ XjnkResVo vo = JSON.parseObject(body, XjnkResVo.class);
+ if(vo != null && vo.errcode != null && vo.errcode.length() > 0){
+ log.error("鏂扮枂鍐滃灕--鑾峰彇涓绘帶鍒跺櫒澶辫触锛宔rrcode锛�" + vo.errcode + "锛宔rrmsg锛�" + vo.errmsg);
+ }
+ }catch (Exception e){
+ //濡傛灉涓嶆槸閿欒淇℃伅锛岄偅灏辨槸姝g‘淇℃伅
+ try{
+ mainControllerVos = JSON.parseArray(body, MainControllerVo.class);
+ log.info("鏂扮枂鍐滃灕--鑾峰彇涓绘帶鍒跺櫒鎴愬姛锛�");
+ if(mainControllerVos != null && mainControllerVos.size() > 0){
+ this.dealer.dealMainController(mainControllerVos);
+ for(MainControllerVo cvo : mainControllerVos){
+ log.info("涓绘帶鍒跺櫒锛�" + cvo);
+ }
+ }
+ }catch (Exception ee){
+ log.error("鏂扮枂鍐滃灕--鑾峰彇涓绘帶鍒跺櫒寮傚父" + (ee.getMessage() == null ? "" : (":" + ee.getMessage())), ee);
+ }
+ }
+ }
+ });
+ }
+ /**
+ * 鑾峰彇鎺у埗鍣�
+ * @throws Exception
+ */
+ public void getControllers() throws Exception{
+ if(this.mainControllerVos != null && this.mainControllerVos.size() > 0){
+ for(MainControllerVo mcvo : this.mainControllerVos){
+ Map<String, String> params = new HashMap<>() ;
+ params.put("pdId", "" + mcvo.id) ;
+ this.httpsRq.post4JsonBySync(this.httpsBaseUr + "/thirdapi/control_device/query?access_token=" + XjnkProtocol.AccessToken,
+ params,
+ (statusCode, charset, body) -> {
+ if(statusCode != null && statusCode.equals(XjnkProtocol.SuccessCode)){
+ try{
+ //棣栧厛璁や负杩斿洖鐨勬槸閿欒淇℃伅锛岃繘琛屽皾璇�
+ XjnkResVo vo = JSON.parseObject(body, XjnkResVo.class);
+ if(vo != null && vo.errcode != null && vo.errcode.length() > 0){
+ log.error("鏂扮枂鍐滃灕--鑾峰彇鎺у埗鍣ㄥけ璐ワ紝errcode锛�" + vo.errcode + "锛宔rrmsg锛�" + vo.errmsg);
+ }
+ }catch (Exception e){
+ //濡傛灉涓嶆槸閿欒淇℃伅锛岄偅灏辨槸姝g‘淇℃伅
+ try{
+ controllerVos = JSON.parseArray(body, ControllerVo.class);
+ log.info("鏂扮枂鍐滃灕--鑾峰彇鎺у埗鍣ㄦ垚鍔燂細");
+ if(controllerVos != null && controllerVos.size() > 0){
+ this.dealer.dealController(controllerVos);
+ for(ControllerVo cvo : controllerVos){
+ log.info("鎺у埗鍣細" + cvo);
+ }
+ }
+ }catch (Exception ee){
+ log.error("鏂扮枂鍐滃灕--鑾峰彇鎺у埗鍣ㄥ紓甯�" + (ee.getMessage() == null ? "" : (":" + ee.getMessage())), ee);
+ }
+ }
+ }
+ });
+ }
+ }
+ }
+}
--
Gitblit v1.8.0