From bc443e83a8fd8aaeded0b123b5e471a4493ecc21 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期三, 15 一月 2025 13:41:27 +0800
Subject: [PATCH] 修改一个bug
---
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeStateReceiverCtrl.java | 62 ++++++++++++++++++++++--------
1 files changed, 45 insertions(+), 17 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 eb37c52..a31da14 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
@@ -42,6 +42,13 @@
private RtuUpgradeSv sv ;
/**
+ * 寮哄埗缁撴潫鍗囩骇浠诲姟閫氫俊涓棿浠舵垚鍔熸墽琛屽悗
+ */
+ public static void afterMwForceOverCurUgTask(){
+ cache = null ;
+ }
+
+ /**
* rtu杩滅▼鍗囩骇浠诲姟閫氫俊涓棿浠舵墽琛屾儏鍐电粺璁″洖鏀�
* @param info 鏁版嵁
* @return 鎿嶄綔缁撴灉
@@ -49,15 +56,8 @@
@Hidden //涓嶅叕寮�鎺ュ彛锛屽叾鍙湁閫氫俊涓棿浠惰皟鐢�
@PostMapping(path = "/receive")
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){
for (UpgradeRtu rtuVo : info.ugRtuStateList) {
@@ -65,6 +65,16 @@
}
}
}
+ */
+
+ //杩涜鎺掑簭
+ 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(cache == null){
cache = info;
//姝ゆ椂涓嶅仛浠诲姟鎿嶄綔锛屽彧淇濋殰cache涓嶄负绌猴紝 绛夊緟涓嬫鍙戞潵鏁版嵁
@@ -80,12 +90,11 @@
//姝ゆ椂淇濊瘉涓や釜闆嗗悎閮戒笉涓簄ull
this.save2Db(info.ugTaskId, info.ugRtuStateList, cache.ugRtuStateList);
}
- if(info.ugRtuStateList != null && info.ugRtuStateList.size() > 0){
- //姝ゆ椂淇濊瘉涓や釜闆嗗悎閮戒笉涓簄ull
- info.ugRtuStateList.stream().sorted(Comparator.comparing(UpgradeRtu::getRtuAddr, Comparator.naturalOrder())).collect(Collectors.toList());
- }
//cache璧嬪�煎繀椤绘斁鍦ㄤ笂闈㈠鐞嗙殑鍚庨潰锛屽惁鍒欎笂闈㈢殑姣旇緝涓嶆垚鍔�
cache = info;
+ if(info.ugOverallState != null && info.ugOverallState.allOver){
+ this.saveTaskOver(info.ugTaskId) ;
+ }
}
return null;
}
@@ -110,15 +119,30 @@
private void save2Db(String taskId, List<UpgradeRtu> newList, List<UpgradeRtu> oldList){
List<UpgradeRtu> newOverList = newList.stream().filter(vo -> vo.isOver).collect(Collectors.toList()) ;
List<UpgradeRtu> oldNoOverList = newList.stream().filter(vo -> !vo.isOver).collect(Collectors.toList()) ;
+ boolean oldExist = false ;
for(UpgradeRtu nvo : newOverList){
- if(nvo != null) {
- if(oldNoOverList.stream().anyMatch(vo -> vo.rtuAddr.equals(nvo.rtuAddr))){
- //涓婃娌℃湁鍗囩骇缁撴潫锛岃�屽綋鍓嶅崌绾х粨鏉熶簡
- this.sv.saveRtuUpgradeState(Long.parseLong(taskId), nvo);
- }
+ oldExist = false ;
+ if(oldNoOverList.stream().anyMatch(vo -> vo.rtuAddr.equals(nvo.rtuAddr))){
+ oldExist = true ;
+ }
+ if(!oldExist){
+ //涓婃娌℃湁鍗囩骇缁撴潫锛岃�屽綋鍓嶅崌绾х粨鏉熶簡
+ this.sv.saveRtuUpgradeState(Long.parseLong(taskId), nvo);
}
}
}
+
+ /**
+ * 淇濆瓨鍗囩骇浠诲姟宸茬粡鎵ц瀹屾垚
+ * @param taskId
+ */
+ private void saveTaskOver(String taskId){
+ this.sv.updateTaskOver(taskId) ;
+ }
+
+
+
+
/////////////////////////////////////////////////////
//
// 浠ヤ笅妯℃嫙鏁版嵁
@@ -217,6 +241,7 @@
rtu.currentPackage = 0 ;
rtu.currentRamAddr = 0x00 ;
rtu.lastDownDt = "" ;
+ rtu.lastDownDtAt = 0L ;
rtu.reTryTimes = 0 ;
rtu.isOver = false ;
}else{
@@ -224,6 +249,7 @@
rtu.currentPackage = 1 ;
rtu.currentRamAddr = 0x00 ;
rtu.lastDownDt = DateTime.yyyy_MM_dd_HH_mm_ss() ;
+ rtu.lastDownDtAt = System.currentTimeMillis() ;
rtu.reTryTimes = 0 ;
rtu.isOver = false ;
}
@@ -274,6 +300,7 @@
rtu.currentPackage = 1 ;
rtu.currentRamAddr = 0x00 ;
rtu.lastDownDt = DateTime.yyyy_MM_dd_HH_mm_ss() ;
+ rtu.lastDownDtAt = System.currentTimeMillis() ;
rtu.reTryTimes++ ;
rtu.isOver = false ;
return ;
@@ -286,6 +313,7 @@
rtu.currentPackage += 1 ;
rtu.currentRamAddr = 0x00 + UpgradeRtu.RAMADDRADD ;
rtu.lastDownDt = DateTime.yyyy_MM_dd_HH_mm_ss() ;
+ rtu.lastDownDtAt = System.currentTimeMillis() ;
rtu.isOver = false ;
}
--
Gitblit v1.8.0