From 08fc154ca750b446e97b4b7764f0ffe130348f24 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期二, 26 十一月 2024 11:25:40 +0800
Subject: [PATCH] 创建工单时通过mosquitto推送消息
---
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeStateReceiverCtrl.java | 128 ++++++++++++++++++++++++++++++------------
1 files changed, 90 insertions(+), 38 deletions(-)
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeStateReceiverCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeStateReceiverCtrl.java
index 3c7ffa2..7654ce3 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeStateReceiverCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeStateReceiverCtrl.java
@@ -1,5 +1,7 @@
package com.dy.pipIrrRemote.rtuUpgrage;
+import com.dy.common.contant.Constant;
+import com.dy.common.multiDataSource.DataSourceContext;
import com.dy.common.softUpgrade.state.UpgradeInfo;
import com.dy.common.softUpgrade.state.UpgradeRtu;
import com.dy.common.softUpgrade.state.UpgradeState;
@@ -8,10 +10,12 @@
import com.dy.common.util.DateTime;
import com.dy.common.util.ThreadJob;
import com.dy.common.webUtil.BaseResponse;
-import com.dy.pipIrrGlobal.pojoRm.UgRtuProgram;
-import com.dy.pipIrrGlobal.pojoRm.UgRtuTask;
+import com.dy.pipIrrGlobal.pojoUg.UgRtuProgram;
+import com.dy.pipIrrGlobal.pojoUg.UgRtuTask;
import io.swagger.v3.oas.annotations.Hidden;
import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -43,11 +47,15 @@
*/
@Hidden //涓嶅叕寮�鎺ュ彛锛屽叾鍙湁閫氫俊涓棿浠惰皟鐢�
@PostMapping(path = "/receive")
- public BaseResponse<Boolean> receive(@RequestBody UpgradeInfo info){
- log.info("鎺ユ敹鍒扮殑RTU杩滅▼鍗囩骇鐘舵�佹暟鎹负锛歿}", info.toString());
+ public BaseResponse<Boolean> receive(@RequestBody UpgradeInfo info, HttpServletRequest req, HttpServletResponse rep){
+ log.info("鎺ユ敹鍒扮殑RTU杩滅▼鍗囩骇鐘舵�佹暟鎹负锛歿}", info.toString("532328000214"));
//杩涜鎺掑簭
//Comparator<UpgradeRtu> comparator = Comparator.comparing(UpgradeRtu::getRtuAddr, Comparator.naturalOrder());
//info.ugRtuStateList = info.ugRtuStateList.stream().sorted(comparator).collect(Collectors.toList());
+
+ //閫氫俊涓棿浠朵紶杩囨潵鐨勬満鏋則ag锛屼互鐢ㄤ簬鏌ユ壘鏁版嵁婧�
+ String token = req.getHeader(Constant.UserTokenKeyInHeader);
+ DataSourceContext.set(token);
if(info.ugRtuStateList != null && info.ugRtuStateList.size() > 0){
if(info.ugRtuStateList.size() < 10){
@@ -112,12 +120,20 @@
private static ThreadJob threadJob ;
+ protected void resetDemo(){
+ if(threadJob != null){
+ threadJob.stop() ;
+ threadJob = null ;
+ }
+ cache = null ;
+ }
+
protected void demo(){
if(cache == null){
UgRtuTask tpo = this.sv.selectLastTask() ;
if(tpo != null) {
UgRtuProgram ppo = this.sv.selectProgramById(tpo.programId);
- if (ppo == null) {
+ if (ppo != null) {
List<String> taskRtuAddrs = this.sv.selectAllRtuAddrByTask("" + tpo.id);
if (taskRtuAddrs != null && taskRtuAddrs.size() > 0) {
cache = new UpgradeInfo();
@@ -137,7 +153,17 @@
threadJob = new ThreadJob() {
@Override
public Object execute() throws Exception {
- runDemo() ;
+ while(!this.stop){
+ if(!runDemo()){
+ this.stop = true ;
+ }else{
+ try {
+ Thread.sleep(500);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }
return null;
}
};
@@ -162,25 +188,11 @@
}
}
}
- private void runDemo(){
- boolean hasRunning = true ;
- while (true){
- for(UpgradeRtu rtu : cache.ugRtuStateList){
- this.rtuUpgrade(rtu) ;
- hasRunning = this.statisticsNowUpgradeState() ;
- if(!hasRunning){
- break ;
- }
- }
- if(!hasRunning){
- break ;
- }
- try {
- Thread.sleep(500);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
+ private boolean runDemo(){
+ for(UpgradeRtu rtu : cache.ugRtuStateList){
+ this.rtuUpgrade(rtu) ;
}
+ return this.statisticsNowUpgradeState() ;
}
private void rtuUpgrade(UpgradeRtu rtu){
if(rtu.lastDownDt == null){
@@ -214,27 +226,62 @@
//绂荤嚎鐨勶紝涓嶅鐞�
return ;
}
- int n = Integer.parseInt(new CreateRandom().create(2)) ;
- if(n == 44 || n == 45 || n == 54){
- if(rtu.currentPackage == 1){
- //1鍖呮
- rtu.state = UpgradeRtu.STATE_FAILONE ;
- return ;
- }
- }
+
if(rtu.currentPackage == rtu.totalPackage){
//鍗囩骇缁撴潫
rtu.state = UpgradeRtu.STATE_SUCCESS ;
rtu.isOver = true ;
return ;
}
+ if(rtu.reTryTimes >= 2){
+ //閲嶈瘯娆℃暟杈惧埌鏈�澶у��
+ if(rtu.state == UpgradeRtu.STATE_FAILONE ||
+ rtu.state == UpgradeRtu.STATE_FAIL){
+ //鍙堝け璐ヤ簡锛岃涓虹粨鏉熶簡
+ rtu.isOver = true ;
+ return ;
+ }
+ }
- rtu.state = UpgradeRtu.STATE_RUNNING ;
- rtu.currentPackage += 1 ;
- rtu.currentRamAddr = 0x00 + UpgradeRtu.RAMADDRADD ;
- rtu.lastDownDt = DateTime.yyyy_MM_dd_HH_mm_ss() ;
- rtu.reTryTimes = 0 ;
- rtu.isOver = false ;
+ int n = Integer.parseInt(new CreateRandom().create(3)) ;
+ if(n == 540 || n == 541 || n == 542 || n == 543 || n == 544 || n == 545){
+ if(rtu.currentPackage == 1){
+ //1鍖呮
+ rtu.state = UpgradeRtu.STATE_FAILONE ;
+ return ;
+ }
+ }
+
+ if(n == 450 || n == 451 || n == 452 || n == 453 || n == 454 || n == 455){
+ if(rtu.currentPackage != 1){
+ //鍗囨
+ rtu.state = UpgradeRtu.STATE_FAIL ;
+ return ;
+ }
+ }
+
+ if(rtu.state == UpgradeRtu.STATE_FAILONE ||
+ rtu.state == UpgradeRtu.STATE_FAIL){
+ if(rtu.reTryTimes < 2){
+ rtu.state = UpgradeRtu.STATE_RUNNING ;
+ rtu.currentPackage = 1 ;
+ rtu.currentRamAddr = 0x00 ;
+ rtu.lastDownDt = DateTime.yyyy_MM_dd_HH_mm_ss() ;
+ rtu.reTryTimes++ ;
+ rtu.isOver = false ;
+ return ;
+ }
+ }
+
+ if(rtu.state != UpgradeRtu.STATE_FAILONE &&
+ rtu.state != UpgradeRtu.STATE_FAIL){
+ rtu.state = UpgradeRtu.STATE_RUNNING ;
+ rtu.currentPackage += 1 ;
+ rtu.currentRamAddr = 0x00 + UpgradeRtu.RAMADDRADD ;
+ rtu.lastDownDt = DateTime.yyyy_MM_dd_HH_mm_ss() ;
+ rtu.isOver = false ;
+ }
+
}
/**
@@ -244,6 +291,8 @@
public boolean statisticsNowUpgradeState() {
boolean hasRunning = false ;
if(cache.ugRtuStateList != null && cache.ugRtuStateList.size() > 0){
+ cache.ugOverallState.init();
+ cache.ugOverallState.rtuTotal = cache.ugRtuStateList.size() ;
for(UpgradeRtu rtu : cache.ugRtuStateList){
if(rtu.state == UpgradeRtu.STATE_OFFLINE){
cache.ugOverallState.offLineTotal ++ ;
@@ -265,6 +314,9 @@
}
}
}
+ if(!hasRunning){
+ cache.ugOverallState.allOver = true ;
+ }
return hasRunning ;
}
}
--
Gitblit v1.8.0