From 300cda64bc2f5ad7fb0a3c057c330ed905d12032 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期四, 28 十一月 2024 15:15:08 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV

---
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeState.java                              |   12 +-
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voUg/VoUgResult.java                                       |   38 ++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/rtuUpgrade/task/UgRtuResultCtrl.java            |   56 ++++++++++-
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/rtuUpgrade/task/UgRtuResultSv.java              |   24 ++++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/tcpClient/downData/DownData.java              |   25 ++--
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voUg/VoUgRtuResult.java                                    |    2 
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeStateReceiverCtrl.java |   15 ++
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/rtuUpgrade/task/QueryUgResultVo.java            |    8 +
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/UgRtuControllerMapper.xml                                          |   59 +++++++++--
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeTask.java                         |   12 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/CreateRandom.java                                           |   28 ++---
 11 files changed, 213 insertions(+), 66 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeState.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeState.java
index a9e20a5..9c98e77 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeState.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeState.java
@@ -17,8 +17,8 @@
     public int overTotal ;//鎵�鏈夌粨鏉燂紙鍖呮嫭鎴愬姛涓庢墍鏈夊け璐ワ級
     public int successTotal ;//鎵�鏈夋垚鍔�
     public int failTotal ;//鎵�鏈夊け璐ワ紙涓�鍖呮澶辫触+澶氬寘姝诲け璐�+绂荤嚎澶辫触锛�
-    public int failOneTotal ;//鎵�鏈変竴鍖呮澶辫触
-    public int failMultiTotal ;//鎵�鏈夊鍖呮澶辫触
+    public int dieOneTotal;//鎵�鏈変竴鍖呮
+    public int dieMultiTotal;//鎵�鏈夊鍖呮
     public int failOffTotal ;//鎵�鏈夌绾垮け璐�
 
     public Boolean allOver ;//鎵�鏈夐兘缁撴潫锛坱rue:鏄紝false:鍚︼級
@@ -35,8 +35,8 @@
         this.overTotal = 0;
         this.successTotal = 0;
         this.failTotal = 0;
-        this.failOneTotal = 0;
-        this.failMultiTotal = 0;
+        this.dieOneTotal = 0;
+        this.dieMultiTotal = 0;
         this.failOffTotal = 0;
         this.allOver = false ;
     }
@@ -51,8 +51,8 @@
         sb.append("    \n宸茬粨鏉熸�绘暟锛�" + overTotal) ;
         sb.append("    \n鎴愬姛鎬绘暟锛�" + successTotal) ;
         sb.append("    \n澶辫触鎬绘暟锛�" + failTotal) ;
-        sb.append("    \n涓�鍖呮澶辫触鎬绘暟锛�" + failOneTotal) ;
-        sb.append("    \n澶氬寘姝诲け璐ユ�绘暟锛�" + failMultiTotal) ;
+        sb.append("    \n涓�鍖呮澶辫触鎬绘暟锛�" + dieOneTotal) ;
+        sb.append("    \n澶氬寘姝诲け璐ユ�绘暟锛�" + dieMultiTotal) ;
         sb.append("    \n绂荤嚎澶辫触鎬绘暟锛�" + failOffTotal) ;
         sb.append("    \n鍏ㄧ粨鏉燂細" + allOver) ;
         return sb.toString() ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/CreateRandom.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/CreateRandom.java
index 984b0d3..38a13ca 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/CreateRandom.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/CreateRandom.java
@@ -11,17 +11,20 @@
 
 	/*
 	public static void main(String[] args) {
-		System.out.println(CreateRandom.random(1, 0));
-		System.out.println(CreateRandom.random(2, 0));
-		System.out.println(CreateRandom.random(3, 0));
-		System.out.println(CreateRandom.random(4, 0));
-		System.out.println(CreateRandom.random(5, 0));
-		System.out.println(CreateRandom.random(100, 0));
-		System.out.println(CreateRandom.random(1256, 1234));
+//		System.out.println(CreateRandom.random(1, 0));
+//		System.out.println(CreateRandom.random(2, 0));
+//		System.out.println(CreateRandom.random(3, 0));
+//		System.out.println(CreateRandom.random(4, 0));
+//		System.out.println(CreateRandom.random(5, 0));
+//		System.out.println(CreateRandom.random(100, 0));
+//		System.out.println(CreateRandom.random(1256, 1234));
 		System.out.println("=======================");
-		System.out.println(create_between(10, 100));
+		for(int i = 0 ; i < 100; i++){
+			System.out.println(create_between(10, 100));
+		}
 	}
 	*/
+
 	
 	/**
 	 * 4浣嶉殢鏈烘暟鎹�
@@ -81,13 +84,8 @@
 		if(max - min < min/2){
 			return min ;
 		}
-		String minStr = String.valueOf(min) ;
-		int len = minStr.length() ;
-		char minFirst = minStr.charAt(0) ;
-	    double d = Math.random();
-	    d = d * 10000000 ;
-	    String s = String.valueOf(d);
-	    s = minFirst + s ;
+		int len = String.valueOf(min).length() ;
+	    String s = String.valueOf(Math.random() * 10000000);
 	    s = s.substring(0 ,len) ;
 	    int n = Integer.parseInt(s) ;
 	    if(n < min || n > max){
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voUg/VoUgResult.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voUg/VoUgResult.java
index 05bb328..3b23cda 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voUg/VoUgResult.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voUg/VoUgResult.java
@@ -1,12 +1,21 @@
 package com.dy.pipIrrGlobal.voUg;
 
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum;
+import com.alibaba.excel.enums.poi.VerticalAlignmentEnum;
 import com.alibaba.fastjson2.annotation.JSONField;
 import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
-import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
+
+import java.util.Date;
 
 /**
  * @Author: liurunyu
@@ -15,50 +24,68 @@
  */
 
 @Data
-@JsonPropertyOrder({ "id", "rtuAddr", "intakeName", "isOver", "isOverStr", "ugState", "ugStateStr", "overDt"})
+@HeadRowHeight(26)
+@ContentRowHeight(22)
+@JsonPropertyOrder({ "id", "intakeNum", "rtuAddr", "isOverStr", "ugStateStr", "overDt"})
 public class VoUgResult {
     /**
      * 涓婚敭
      */
     @Schema(description = "涓婚敭" )
     @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @ExcelIgnore()
     public Long id;
 
     /**
      * 鎺у埗鍣ㄥ湴鍧�
      */
     @Schema(description = "鎺у埗鍣ㄥ湴鍧�" )
+    @ExcelProperty("鎺у埗鍣ㄥ湴鍧�")
+    @ColumnWidth(20)
+    @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, verticalAlignment = VerticalAlignmentEnum.CENTER)
     public String rtuAddr;
 
     /**
      * 鍙栨按缂栧彿
      */
     @Schema(description = "鍙栨按鍙g紪鍙�")
+    @ExcelProperty("鍙栨按缂栧彿")
+    @ColumnWidth(20)
+    @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, verticalAlignment = VerticalAlignmentEnum.CENTER)
     private String intakeNum;
 
     /**
      * 鍗囩骇鏄惁缁撴潫
      */
     @Schema(description = "鍗囩骇鏄惁缁撴潫" )
+    @JSONField(serialize = false)
+    @ExcelIgnore()
     public Byte isOver;
 
     /**
      * 鍗囩骇鏄惁缁撴潫
      */
     @Schema(description = "鍗囩骇鏄惁缁撴潫" )
-    @TableField(exist = false)
+    @ExcelProperty("鍗囩骇缁撴潫")
+    @ColumnWidth(10)
+    @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, verticalAlignment = VerticalAlignmentEnum.CENTER)
     public String isOverStr;
 
     /**
      * 鍗囩骇鐘舵��
      */
     @Schema(description = "鍗囩骇鐘舵��" )
+    @JSONField(serialize = false)
+    @ExcelIgnore()
     public Integer ugState;
 
     /**
      * 鍗囩骇鐘舵��
      */
     @Schema(description = "鍗囩骇鐘舵��" )
+    @ExcelProperty("鍗囩骇缁撴灉")
+    @ColumnWidth(16)
+    @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, verticalAlignment = VerticalAlignmentEnum.CENTER)
     public String ugStateStr;
 
     /**
@@ -66,7 +93,10 @@
      */
     @Schema(description = "鍗囩骇缁撴潫鏃堕棿" )
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:SS")
-    public Integer overDt;
+    @ExcelProperty("缁撴潫鏃堕棿")
+    @ColumnWidth(30)
+    @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, verticalAlignment = VerticalAlignmentEnum.CENTER)
+    public Date overDt;
 
     /**
      * 鏃犲弬鏁版嵁鏋勯�犳柟娉�
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voUg/VoUgRtuResult.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voUg/VoUgRtuResult.java
index 2653252..0ee7201 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voUg/VoUgRtuResult.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voUg/VoUgRtuResult.java
@@ -25,6 +25,6 @@
 
     @ExcelProperty("鍗囩骇缁撴灉")
     @ColumnWidth(30)
-    @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.LEFT, verticalAlignment = VerticalAlignmentEnum.CENTER)
+    @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, verticalAlignment = VerticalAlignmentEnum.CENTER)
     public String result;
 }
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/UgRtuControllerMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/UgRtuControllerMapper.xml
index b7aa29e..fd8a25f 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/UgRtuControllerMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/UgRtuControllerMapper.xml
@@ -125,10 +125,28 @@
     <!--@mbg.generated-->
     select
     count(*)
-    from ug_rtu_controller
+    from ug_rtu_controller ugCon
+    inner join ug_rtu_task ugTask on ugCon.task_id = ugTask.id
+    inner join pr_controller con on ugCon.controller_id = con.id
+    inner join pr_intake inta on con.intakeId = inta.id
     <where>
       <if test="taskId != null">
-        AND task_id = #{taskId,jdbcType=BIGINT}
+        AND ugCon.task_id = #{taskId,jdbcType=BIGINT}
+      </if>
+      <if test="intakeNum != null and intakeNum != ''">
+        AND inta.name = #{intakeNum,jdbcType=VARCHAR}
+      </if>
+      <if test="rtuAddr != null and rtuAddr != ''">
+        AND ugCon.rtu_addr = #{rtuAddr,jdbcType=VARCHAR}
+      </if>
+      <if test="state != null and state == 1">
+        AND ugCon.ug_state = 1
+      </if>
+      <if test="state != null and state == 0">
+        AND ugCon.ug_state != 1
+      </if>
+      <if test="fail != null">
+        AND ugCon.ug_state = #{fail,jdbcType=INTEGER}
       </if>
     </where>
   </select>
@@ -136,20 +154,37 @@
   <select id="selectControllerUpgradeResults" resultType="com.dy.pipIrrGlobal.voUg.VoUgResult">
     <!--@mbg.generated-->
     select
-    ctb.id as id,
-    inTb.name as intakeNum,
-    ctb.rtu_addr as rtuAddr,
-    ctb.is_over as isOver,
-    ctb.ug_state as ugState,
-    ctb.over_dt as overDt
-    from ug_rtu_controller ctb
-    inner join pr_intake inTb on ctb.task_id = inTb.id
+    ugCon.id as id,
+    inta.name as intakeNum,
+    ugCon.rtu_addr as rtuAddr,
+    ugCon.is_over as isOver,
+    ugCon.ug_state as ugState,
+    ugCon.over_dt as overDt
+    from ug_rtu_controller ugCon
+    inner join ug_rtu_task ugTask on ugCon.task_id = ugTask.id
+    inner join pr_controller con on ugCon.controller_id = con.id
+    inner join pr_intake inta on con.intakeId = inta.id
     <where>
       <if test="taskId != null">
-        AND ctb.task_id = #{taskId,jdbcType=BIGINT}
+        AND ugCon.task_id = #{taskId,jdbcType=BIGINT}
+      </if>
+      <if test="intakeNum != null and intakeNum != ''">
+        AND inta.name = #{intakeNum,jdbcType=VARCHAR}
+      </if>
+      <if test="rtuAddr != null and rtuAddr != ''">
+        AND ugCon.rtu_addr = #{rtuAddr,jdbcType=VARCHAR}
+      </if>
+      <if test="state != null and state == 1">
+        AND ugCon.ug_state = 1
+      </if>
+      <if test="state != null and state == 0">
+        AND ugCon.ug_state != 1
+      </if>
+      <if test="fail != null">
+        AND ugCon.ug_state = #{fail,jdbcType=INTEGER}
       </if>
     </where>
-    ORDER BY ctb.id ASC
+    ORDER BY ugCon.id ASC
     <trim prefix="limit " >
       <if test="start != null and count != null">
         #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeTask.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeTask.java
index b19ea75..4378bb4 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeTask.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeTask.java
@@ -210,11 +210,15 @@
                     }else if(info.state == UpgradeRtu.STATE_SUCCESS) {
                         state.successTotal++;
                     }else if(info.state == UpgradeRtu.STATE_FAILONE) {
-                        state.failOneTotal++;
-                        state.failTotal++;
+                        state.dieOneTotal++;
+                        if(info.isOver){
+                            state.failTotal++;
+                        }
                     }else if(info.state == UpgradeRtu.STATE_FAIL) {
-                        state.failMultiTotal++;
-                        state.failTotal++;
+                        state.dieMultiTotal++;
+                        if(info.isOver) {
+                            state.failTotal++;
+                        }
                     }else if(info.state == UpgradeRtu.STATE_FAILOFFLINE) {
                         state.failTotal++;
                         state.failOffTotal++;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/tcpClient/downData/DownData.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/tcpClient/downData/DownData.java
index 30b2555..cf03982 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/tcpClient/downData/DownData.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/tcpClient/downData/DownData.java
@@ -42,27 +42,28 @@
                 String cd = cdPre + cdSuf;
                 if(cd.equals("1601")){
                     //鍗囩骇閰嶇疆
-                    if(ServerProperties.argOneDie){
-                        UpHeartBeat.upHeartBeat = true ;//浣胯兘涓婅蹇冭烦
-                    }else{
-                        UpCd9601.upData() ;
-                    }
+                    UpCd9601.upData() ;
+
                 }else if(cd.equals("1602")){
                     //鍗囩骇鏁版嵁
                     count9602 ++ ;
-                    if(ServerProperties.argMultiDie){
-                        if(count9602 > 10){
-                            int random =  CreateRandom.create_between(10, 100) ;
-                            if(random > 50){
-                                UpHeartBeat.upHeartBeat = true ;//浣胯兘涓婅蹇冭烦
+                    if(ServerProperties.argOneDie){
+                        UpHeartBeat.upHeartBeat = true ;//浣胯兘涓婅蹇冭烦
+                    }else{
+                        if(ServerProperties.argMultiDie){
+                            if(count9602 > 10){
+                                int random =  CreateRandom.create_between(10, 100) ;
+                                if(random > 98){
+                                    UpHeartBeat.upHeartBeat = true ;//浣胯兘涓婅蹇冭烦
+                                }else{
+                                    UpCd9602.upData() ;
+                                }
                             }else{
                                 UpCd9602.upData() ;
                             }
                         }else{
                             UpCd9602.upData() ;
                         }
-                    }else{
-                        UpCd9602.upData() ;
                     }
                 }else if(cd.equals("1603")){
                     //鍗囩骇鏍¢獙
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/rtuUpgrade/task/QueryUgResultVo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/rtuUpgrade/task/QueryUgResultVo.java
index 09e30af..fa79bb9 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/rtuUpgrade/task/QueryUgResultVo.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/rtuUpgrade/task/QueryUgResultVo.java
@@ -15,7 +15,7 @@
 @NoArgsConstructor
 @AllArgsConstructor
 @Builder
-@Schema(name = "鏌ヨ鍗囩骇浠诲姟RTU鍗囩骇鎯呭喌鐨勬潯浠�")
+@Schema(name = "鏌ヨ鍗囩骇浠诲姟RTU鍗囩骇缁撴灉鐨勬潯浠�")
 public class QueryUgResultVo extends QueryConditionVo {
 
     @Schema(description = "鍗囩骇浠诲姟id")
@@ -27,4 +27,10 @@
     @Schema(description = "鎺у埗鍣ㄥ湴鍧�")
     public String rtuAddr;
 
+    @Schema(description = "鍗囩骇缁撴灉锛�1鍗囩骇鎴愬姛锛�0鍗囩骇澶辫触")
+    public Integer state;
+
+    @Schema(description = "澶辫触绫诲瀷锛�3涓�鍖呮澶辫触锛�4澶氬寘姝诲け璐ワ紝5绂荤嚎澶辫触")
+    public Integer fail;
+
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/rtuUpgrade/task/UgRtuResultCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/rtuUpgrade/task/UgRtuResultCtrl.java
index a69188f..aa1a917 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/rtuUpgrade/task/UgRtuResultCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/rtuUpgrade/task/UgRtuResultCtrl.java
@@ -1,5 +1,7 @@
 package com.dy.pipIrrBase.rtuUpgrade.task;
 
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.support.ExcelTypeEnum;
 import com.dy.common.aop.SsoAop;
 import com.dy.common.webUtil.BaseResponse;
 import com.dy.common.webUtil.BaseResponseUtils;
@@ -7,19 +9,24 @@
 import com.dy.common.webUtil.ResultCodeMsg;
 import com.dy.pipIrrGlobal.pojoUg.UgRtuTask;
 import com.dy.pipIrrGlobal.voUg.VoUgResult;
+import com.dy.pipIrrGlobal.voUg.VoUgRtuResult;
 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 io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.servlet.http.HttpServletResponse;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
 import java.util.List;
 
 /**
@@ -59,12 +66,49 @@
         if (vo.taskId == null) {
             return BaseResponseUtils.buildErrorMsg("鍗囩骇浠诲姟id涓嶈兘涓虹┖");
         }
-        try {
-            QueryResultVo<List<VoUgResult>> res = this.sv.selectSome(vo);
-            return BaseResponseUtils.buildSuccess(res);
-        } catch (Exception e) {
-            log.error("鏌ヨRTU鍗囩骇浠诲姟寮傚父", e);
-            return BaseResponseUtils.buildErrorMsg(e.getMessage());
+        if(vo.state != null && vo.state == 1){
+            //鏌ヨ鍗囩骇鎴愬姛鐨�
+            vo.fail = null ;
         }
+        if(vo.state == null && vo.fail != null){
+            //鏌ヨ鍗囩骇澶辫触鐨�
+            vo.state = 0 ;
+        }
+        QueryResultVo<List<VoUgResult>> res = this.sv.selectSome(vo);
+        return BaseResponseUtils.buildSuccess(res);
+    }
+
+    /**
+     * 瀵煎嚭鍗囩骇缁撴灉RTU鍒楄〃
+     * @param response
+     */
+    @RequestMapping(value = "/exportAll", method = RequestMethod.GET)
+    public void exportUgFail(HttpServletResponse response, QueryUgResultVo vo) throws Exception {
+        if(vo.state != null && vo.state == 1){
+            //鏌ヨ鍗囩骇鎴愬姛鐨�
+            vo.fail = null ;
+        }
+        if(vo.state == null && vo.fail != null){
+            //鏌ヨ鍗囩骇澶辫触鐨�
+            vo.state = 0 ;
+        }
+        setExcelRespProp(response, "鍗囩骇缁撴灉鍒楄〃");
+        List<VoUgResult> rsList = this.sv.selectAll(vo);
+        EasyExcel.write(response.getOutputStream())
+                .head(VoUgRtuResult.class)
+                .excelType(ExcelTypeEnum.XLSX)
+                .sheet("鍗囩骇缁撴灉鍒楄〃")
+                .doWrite(rsList);
+    }
+
+
+    /**
+     * 璁剧疆excel涓嬭浇鍝嶅簲澶村睘鎬�
+     */
+    private void setExcelRespProp(HttpServletResponse response, String rawFileName) throws UnsupportedEncodingException {
+        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+        response.setCharacterEncoding("utf-8");
+        String fileName = URLEncoder.encode(rawFileName, "UTF-8").replaceAll("\\+", "%20");
+        response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
     }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/rtuUpgrade/task/UgRtuResultSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/rtuUpgrade/task/UgRtuResultSv.java
index 0ccc142..bb5ee46 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/rtuUpgrade/task/UgRtuResultSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/rtuUpgrade/task/UgRtuResultSv.java
@@ -25,7 +25,7 @@
     private UgRtuControllerMapper dao ;
 
     /**
-     * 鍒嗛〉鏌ヨ涓�涓崌绾т换鍔′腑鎵�鏈夋帶鍒跺櫒鍗囩骇缁撴煡
+     * 鍒嗛〉鏌ヨ涓�涓崌绾т换鍔′腑涓�浜涙帶鍒跺櫒鍗囩骇缁撴煡
      * @return 鎺у埗鍣ㄥ崌绾х粨鏌�
      */
     public QueryResultVo<List<VoUgResult>> selectSome(QueryUgResultVo queryVo){
@@ -53,4 +53,26 @@
 
         return rsVo ;
     }
+
+    /**
+     * 鍒嗛〉鏌ヨ涓�涓崌绾т换鍔′腑鎵�鏈夋帶鍒跺櫒鍗囩骇缁撴煡
+     * @return 鎺у埗鍣ㄥ崌绾х粨鏌�
+     */
+    public List<VoUgResult> selectAll(QueryUgResultVo queryVo){
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo) ;
+        List<VoUgResult> list = this.dao.selectControllerUpgradeResults(params) ;
+        if(list != null && list.size() > 0){
+            for(VoUgResult vo : list){
+                if(vo.isOver != null && vo.isOver.byteValue() == 1){
+                    vo.isOverStr = "鏄�" ;
+                }else{
+                    vo.isOverStr = "鍚�" ;
+                }
+                if(vo.ugState != null){
+                    vo.ugStateStr = UpgradeRtu.getStateName(vo.ugState) ;
+                }
+            }
+        }
+        return list ;
+    }
 }
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 abfdc1b..eb37c52 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
@@ -21,6 +21,7 @@
 import org.springframework.web.bind.annotation.*;
 
 import java.util.ArrayList;
+import java.util.Comparator;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -74,12 +75,17 @@
                 }
             }
         }else{
-            cache = info;
             //褰揷ache涓湁鍊兼椂锛岃繘琛屾瘮瀵瑰瓨鍌紝瀵规瘮鐩殑鏄槻姝㈤噸澶嶆搷浣滄暟鎹簱
             if(info.ugRtuStateList != null && info.ugRtuStateList.size() > 0){
                 //姝ゆ椂淇濊瘉涓や釜闆嗗悎閮戒笉涓簄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;
         }
         return null;
     }
@@ -103,9 +109,10 @@
      */
     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()) ;
         for(UpgradeRtu nvo : newOverList){
             if(nvo != null) {
-                if(oldList.stream().anyMatch(vo -> vo.rtuAddr.equals(nvo.rtuAddr) && vo.isOver == false)){
+                if(oldNoOverList.stream().anyMatch(vo -> vo.rtuAddr.equals(nvo.rtuAddr))){
                     //涓婃娌℃湁鍗囩骇缁撴潫锛岃�屽綋鍓嶅崌绾х粨鏉熶簡
                     this.sv.saveRtuUpgradeState(Long.parseLong(taskId), nvo);
                 }
@@ -305,10 +312,10 @@
                 }else if(rtu.state == UpgradeRtu.STATE_SUCCESS) {
                     cache.ugOverallState.successTotal++;
                 }else if(rtu.state == UpgradeRtu.STATE_FAILONE) {
-                    cache.ugOverallState.failOneTotal++;
+                    cache.ugOverallState.dieOneTotal++;
                     cache.ugOverallState.failTotal++;
                 }else if(rtu.state == UpgradeRtu.STATE_FAIL) {
-                    cache.ugOverallState.failMultiTotal++;
+                    cache.ugOverallState.dieMultiTotal++;
                     cache.ugOverallState.failTotal++;
                 }
                 if(rtu.isOver){

--
Gitblit v1.8.0