From ac87f61568a68501aa50d5c3f0d083e8ea36ebb3 Mon Sep 17 00:00:00 2001
From: wuzeyu <1223318623@qq.com>
Date: 星期五, 29 十一月 2024 14:33:07 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV

---
 pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java                        |   13 
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeCtrl.java              |   46 ++
 pipIrr-platform/pipIrr-global/src/main/resources/application-global(test测试系统).yml                                          |   14 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu/src/main/java/com/dy/simRtu/tcpClient/downData/DownData.java              |   25 
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeStateReceiverCtrl.java |   56 ++
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/rtuUpgrade/task/QueryUgResultVo.java            |    8 
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuLogCtrl.java                         |   19 
 pipIrr-platform/pipIrr-global/src/main/resources/application-global(sp沙盘系统).yml                                            |   14 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voOp/VoWorkOrder.java                                      |    8 
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/rtuUpgrade/task/UgRtuResultCtrl.java            |   57 ++
 pipIrr-platform/pipIrr-global/src/main/resources/application-global(ym元谋系统).yml                                            |   14 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java                                |   20 +
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voUg/VoUgRtuResult.java                                    |    2 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/UgRtuControllerMapper.xml                                          |   59 ++
 pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderCtrl.java                      |   16 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeManager.java                      |   15 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeTaskTypeMapper.xml                                              |    9 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeRtu.java                                |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/CreateRandom.java                                           |   28 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voUg/VoUgResult.java                                       |   38 +
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeUnit.java                         |   11 
 pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/qo/QoWorkOrder.java                     |    5 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeTaskTypeMapper.java                               |   11 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/Web2RtuMw.java                                       |  110 ++---
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeTask.java                         |   16 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voOp/VoProcessingResult.java                               |    4 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeState.java                              |   12 
 /dev/null                                                                                                                  |  386 --------------------
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/MonitorSv.java                      |   12 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voOp/VoTaskType.java                                       |   31 +
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/rtuUpgrade/task/UgRtuResultSv.java              |   24 +
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeWorkOrderMapper.xml                                             |   11 
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeSv.java                |    8 
 pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml                                                    |   14 
 34 files changed, 511 insertions(+), 607 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeRtu.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeRtu.java
index 2d81abd..87f3331 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeRtu.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeRtu.java
@@ -65,7 +65,7 @@
             case STATE_FAILONE:
                 return "涓�鍖呮";
             case STATE_FAIL:
-                return "鍗囩骇涓";
+                return "澶氬寘姝�";
             case STATE_FAILOFFLINE:
                 return "绂荤嚎澶辫触";
             default:
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/daoOp/OpeTaskTypeMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeTaskTypeMapper.java
index dde3037..38dd74b 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeTaskTypeMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeTaskTypeMapper.java
@@ -2,7 +2,10 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoOp.OpeTaskType;
+import com.dy.pipIrrGlobal.voOp.VoTaskType;
 import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
 
 /**
  * @author ZhuBaoMin
@@ -24,4 +27,12 @@
     int updateByPrimaryKeySelective(OpeTaskType record);
 
     int updateByPrimaryKey(OpeTaskType record);
+
+    /**
+     * 鑾峰彇浠诲姟绫诲瀷鍒楄〃
+     * @return
+     */
+    List<VoTaskType> getTaskTypes();
+
+
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/ToRtuMwCom.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/Web2RtuMw.java
similarity index 60%
rename from pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/ToRtuMwCom.java
rename to pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/Web2RtuMw.java
index ac71d4c..86fc954 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/ToRtuMwCom.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/Web2RtuMw.java
@@ -19,33 +19,71 @@
  * @Date: 2024/10/23 11:45
  * @Description
  */
-public abstract class ToRtuMwCom {
+public abstract class Web2RtuMw {
     /**
      * pro_mw锛氬睘鎬�
      * tag浠庢帶鍒跺櫒涓幏鍙�
      * key_mw锛歶rl鐨刱ey
      */
     private static final String pro_mw = "mw";
-    private static final String key_mw = "comSendUrl";
-    private static final String keyUg_mw = "ugTaskSendUrl";
+    private static final String pro_url = "url";
 
+    protected static final String ContextComSend = "/rtuMw/com/send";
 
+    protected static final String ContextRtuLogFile = "/rtuMw/com/rtuLogFile";
+    protected static final String ContextRtuLogText = "/rtuMw/com/rtuLogText";
+
+    protected static final String ContextUgTaskSend = "/rtuMw/com/upgradeRtu";
+    protected static final String ContextUgForceOver = "/rtuMw/com/ugForceOver";
     /**
      * 寰楀埌鍚戦�氫俊涓棿浠跺彂閫佹暟鎹殑URL
      * @param env
      * @return
      */
-    protected String getToMwUrl(Environment env) {
-        return env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + key_mw);
+    protected String get2MwUrl(Environment env) {
+        return env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + pro_url);
+    }
+    /**
+     * 寰楀埌鍚戦�氫俊涓棿浠跺彂閫佸己鍒跺仠姝㈠崌绾х殑鍛戒护URL
+     * @param env
+     * @return
+     */
+    protected String get2MwRequestUrl(Environment env, String context) {
+        return get2MwUrl(env) + context;
     }
 
+
     /**
-     * 寰楀埌鍚戦�氫俊涓棿浠跺彂閫佹暟鎹殑URL
-     * @param env
+     * 鍚戦�氫俊涓棿浠跺彂閫乺tu杩滅▼鍗囩骇浠诲姟
+     * @param restTemplate SpringBoot鐨凴estTemplate
+     * @param toMwUrl 鍒伴�氫俊涓棿浠剁殑web璇锋眰Url
+     * @param param 璇锋眰鍙傛暟
      * @return
      */
-    protected String getToMwUgUrl(Environment env) {
-        return env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + keyUg_mw);
+    protected BaseResponse sendRequest2Mw(RestTemplate restTemplate, String toMwUrl, Object param) {
+        String url = UriComponentsBuilder.fromUriString(toMwUrl)
+                .build()
+                .toUriString();
+        HttpHeaders headers = new HttpHeaders();
+        HttpEntity<?> httpEntity ;
+        if(param != null){
+            httpEntity = new HttpEntity<>(param, headers);
+        }else{
+            httpEntity = new HttpEntity<>(headers);
+        }
+        ResponseEntity<BaseResponse> response = null;
+        try {
+            // 閫氳繃Post鏂瑰紡璋冪敤鎺ュ彛
+            response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, BaseResponse.class);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屼腑闂翠欢璋冪敤寮傚父");
+        }
+        if(response == null){
+            return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屼腑闂翠欢璋冪敤寮傚父");
+        }else{
+            return response.getBody();
+        }
     }
 
     /**
@@ -74,58 +112,4 @@
         return com ;
     }
 
-    /**
-     * 鍙戦�佸懡浠�
-     *
-     * @return
-     */
-    protected BaseResponse sendCom2Mw(RestTemplate restTemplate, String comSendUrl, Command com) {
-        String url = UriComponentsBuilder.fromUriString(comSendUrl)
-                .build()
-                .toUriString();
-        HttpHeaders headers = new HttpHeaders();
-        HttpEntity<Command> httpEntity = new HttpEntity<>(com, headers);
-        ResponseEntity<BaseResponse> response = null;
-        try {
-            // 閫氳繃Post鏂瑰紡璋冪敤鎺ュ彛
-            response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, BaseResponse.class);
-        } catch (Exception e) {
-            e.printStackTrace();
-            return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屼腑闂翠欢璋冪敤寮傚父");
-        }
-        if(response == null){
-            return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屼腑闂翠欢璋冪敤寮傚父");
-        }else{
-            return response.getBody();
-        }
-    }
-
-
-    /**
-     * 鍚戦�氫俊涓棿浠跺彂閫乺tu杩滅▼鍗囩骇浠诲姟
-     * @param restTemplate
-     * @param comSendUrl
-     * @param vo
-     * @return
-     */
-    protected BaseResponse sendUpgradeTask2Mw(RestTemplate restTemplate, String comSendUrl, UpgradeTaskVo vo) {
-        String url = UriComponentsBuilder.fromUriString(comSendUrl)
-                .build()
-                .toUriString();
-        HttpHeaders headers = new HttpHeaders();
-        HttpEntity<UpgradeTaskVo> httpEntity = new HttpEntity<>(vo, headers);
-        ResponseEntity<BaseResponse> response = null;
-        try {
-            // 閫氳繃Post鏂瑰紡璋冪敤鎺ュ彛
-            response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, BaseResponse.class);
-        } catch (Exception e) {
-            e.printStackTrace();
-            return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屼腑闂翠欢璋冪敤寮傚父");
-        }
-        if(response == null){
-            return BaseResponseUtils.buildError("鍚庣绯荤粺鍑洪敊锛屼腑闂翠欢璋冪敤寮傚父");
-        }else{
-            return response.getBody();
-        }
-    }
 }
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voOp/VoProcessingResult.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voOp/VoProcessingResult.java
index 3f927c2..5e4a1a5 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voOp/VoProcessingResult.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voOp/VoProcessingResult.java
@@ -23,7 +23,7 @@
     public static final long serialVersionUID = 202411081500001L;
 
     /**
-     * 闂缁撴灉ID
+     * 澶勭悊缁撴灉ID
      */
     @JSONField(serializeUsing= ObjectWriterImplToString.class)
     private Long proResultId;
@@ -35,7 +35,7 @@
     private Long workOrderId;
 
     /**
-     * 宸℃鍛業D
+     * 宸℃鍛�
      */
     private String inspector;
 
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voOp/VoTaskType.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voOp/VoTaskType.java
new file mode 100644
index 0000000..3d1d944
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voOp/VoTaskType.java
@@ -0,0 +1,31 @@
+package com.dy.pipIrrGlobal.voOp;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.dy.common.po.BaseEntity;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-11-28 14:39
+ * @LastEditTime 2024-11-28 14:39
+ * @Description 浠诲姟绫诲瀷瑙嗗浘瀵硅薄
+ */
+
+@Data
+@JsonPropertyOrder({"taskTypeId", "taskType"})
+public class VoTaskType implements BaseEntity {
+    public static final long serialVersionUID = 202411281440001L;
+
+    /**
+     * 浠诲姟绫诲瀷ID
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    private Long taskTypeId;
+
+    /**
+     * 浠诲姟绫诲瀷
+     */
+    private String taskType;
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voOp/VoWorkOrder.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voOp/VoWorkOrder.java
index c0e4cd7..0acd2bf 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voOp/VoWorkOrder.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voOp/VoWorkOrder.java
@@ -17,7 +17,7 @@
  */
 
 @Data
-@JsonPropertyOrder({"workOrderId", "dispatcherId", "dispatcher", "inspectorId", "inspector", "taskTypeId", "taskType", "taskContent", "completeCriteria", "deadLine", "clientReportId", "inspectorReportId", "completeTime", "dispatchTime", "rejectTimes", "state", "processingState"})
+@JsonPropertyOrder({"workOrderId", "dispatcherId", "dispatcher", "inspectorId", "inspector", "taskTypeId", "taskType", "taskContent", "completeCriteria", "deadLine", "clientReportId", "inspectorReportId", "completeTime", "dispatchTime", "rejectTimes", "state", "processingState", "proResultId"})
 public class VoWorkOrder implements BaseEntity {
     public static final long serialVersionUID = 202411061524001L;
 
@@ -114,4 +114,10 @@
      * 澶勭悊鐘舵��
      */
     private String processingState;
+
+    /**
+     * 澶勭悊缁撴灉ID
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    private Long proResultId;
 }
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/application-global\050sp\346\262\231\347\233\230\347\263\273\347\273\237\051.yml" "b/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050sp\346\262\231\347\233\230\347\263\273\347\273\237\051.yml"
index a369ae8..0ca5332 100644
--- "a/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050sp\346\262\231\347\233\230\347\263\273\347\273\237\051.yml"
+++ "b/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050sp\346\262\231\347\233\230\347\263\273\347\273\237\051.yml"
@@ -310,22 +310,16 @@
 #閫氳涓棿浠剁浉鍏抽厤缃�
 #protocol: DYJS_2023,DYJS_2024
 mw:
-    #鍛戒护鍙戦�佸湴鍧�(涓紑鏄満鏋則ag锛屽叾涔熸槸鏁版嵁婧愬悗缂�鍚嶇О)
+    #鍛戒护鍙戦�侀�氫俊涓棿浠跺湴鍧�
     ym:
+        url: "http://127.0.0.1:8070"
         comSendUrl: "http://127.0.0.1:8070/rtuMw/com/send"
-        ugTaskSendUrl: "http://127.0.0.1:8070/rtuMw/com/upgradeRtu"
-        rtuLogFileUrl: "http://127.0.0.1:8070/rtuMw/com/rtuLogFile"
-        rtuLogTextUrl: "http://127.0.0.1:8070/rtuMw/com/rtuLogText"
     sp:
+        url: "http://127.0.0.1:8073"
         comSendUrl: "http://127.0.0.1:8073/rtuMw/com/send"
-        ugTaskSendUrl: "http://127.0.0.1:8073/rtuMw/com/upgradeRtu"
-        rtuLogFileUrl: "http://127.0.0.1:8073/rtuMw/com/rtuLogFile"
-        rtuLogTextUrl: "http://127.0.0.1:8073/rtuMw/com/rtuLogText"
     test:
+        url: "http://127.0.0.1:8072"
         comSendUrl: "http://127.0.0.1:8072/rtuMw/com/send"
-        ugTaskSendUrl: "http://127.0.0.1:8072/rtuMw/com/upgradeRtu"
-        rtuLogFileUrl: "http://127.0.0.1:8072/rtuMw/com/rtuLogFile"
-        rtuLogTextUrl: "http://127.0.0.1:8072/rtuMw/com/rtuLogText"
     #鐩戞祴鎺у埗妯″潡鍥炶皟鍦板潃
     rtuCallbackUrl_rm: "http://127.0.0.1:8081/remote/comRes/receive"
     #rtu杩滅▼鍗囩骇妯″潡鍥炶皟鍦板潃
diff --git "a/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050test\346\265\213\350\257\225\347\263\273\347\273\237\051.yml" "b/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050test\346\265\213\350\257\225\347\263\273\347\273\237\051.yml"
index 7b529cc..a74a259 100644
--- "a/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050test\346\265\213\350\257\225\347\263\273\347\273\237\051.yml"
+++ "b/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050test\346\265\213\350\257\225\347\263\273\347\273\237\051.yml"
@@ -310,22 +310,16 @@
 #閫氳涓棿浠剁浉鍏抽厤缃�
 #protocol: DYJS_2023,DYJS_2024
 mw:
-    #鍛戒护鍙戦�佸湴鍧�(涓紑鏄満鏋則ag锛屽叾涔熸槸鏁版嵁婧愬悗缂�鍚嶇О)
+    #鍛戒护鍙戦�侀�氫俊涓棿浠跺湴鍧�
     ym:
+        url: "http://127.0.0.1:8070"
         comSendUrl: "http://127.0.0.1:8070/rtuMw/com/send"
-        ugTaskSendUrl: "http://127.0.0.1:8070/rtuMw/com/upgradeRtu"
-        rtuLogFileUrl: "http://127.0.0.1:8070/rtuMw/com/rtuLogFile"
-        rtuLogTextUrl: "http://127.0.0.1:8070/rtuMw/com/rtuLogText"
     sp:
+        url: "http://127.0.0.1:8073"
         comSendUrl: "http://127.0.0.1:8073/rtuMw/com/send"
-        ugTaskSendUrl: "http://127.0.0.1:8073/rtuMw/com/upgradeRtu"
-        rtuLogFileUrl: "http://127.0.0.1:8073/rtuMw/com/rtuLogFile"
-        rtuLogTextUrl: "http://127.0.0.1:8073/rtuMw/com/rtuLogText"
     test:
+        url: "http://127.0.0.1:8072"
         comSendUrl: "http://127.0.0.1:8072/rtuMw/com/send"
-        ugTaskSendUrl: "http://127.0.0.1:8072/rtuMw/com/upgradeRtu"
-        rtuLogFileUrl: "http://127.0.0.1:8072/rtuMw/com/rtuLogFile"
-        rtuLogTextUrl: "http://127.0.0.1:8072/rtuMw/com/rtuLogText"
     #鐩戞祴鎺у埗妯″潡鍥炶皟鍦板潃
     rtuCallbackUrl_rm: "http://127.0.0.1:8081/remote/comRes/receive"
     #rtu杩滅▼鍗囩骇妯″潡鍥炶皟鍦板潃
diff --git "a/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050ym\345\205\203\350\260\213\347\263\273\347\273\237\051.yml" "b/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050ym\345\205\203\350\260\213\347\263\273\347\273\237\051.yml"
index 5e8b483..e7a60d0 100644
--- "a/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050ym\345\205\203\350\260\213\347\263\273\347\273\237\051.yml"
+++ "b/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050ym\345\205\203\350\260\213\347\263\273\347\273\237\051.yml"
@@ -310,22 +310,16 @@
 #閫氳涓棿浠剁浉鍏抽厤缃�
 #protocol: DYJS_2023,DYJS_2024
 mw:
-    #鍛戒护鍙戦�佸湴鍧�(涓紑鏄満鏋則ag锛屽叾涔熸槸鏁版嵁婧愬悗缂�鍚嶇О)
+    #鍛戒护鍙戦�侀�氫俊涓棿浠跺湴鍧�
     ym:
+        url: "http://127.0.0.1:8070"
         comSendUrl: "http://127.0.0.1:8070/rtuMw/com/send"
-        ugTaskSendUrl: "http://127.0.0.1:8070/rtuMw/com/upgradeRtu"
-        rtuLogFileUrl: "http://127.0.0.1:8070/rtuMw/com/rtuLogFile"
-        rtuLogTextUrl: "http://127.0.0.1:8070/rtuMw/com/rtuLogText"
     sp:
+        url: "http://127.0.0.1:8073"
         comSendUrl: "http://127.0.0.1:8073/rtuMw/com/send"
-        ugTaskSendUrl: "http://127.0.0.1:8073/rtuMw/com/upgradeRtu"
-        rtuLogFileUrl: "http://127.0.0.1:8073/rtuMw/com/rtuLogFile"
-        rtuLogTextUrl: "http://127.0.0.1:8073/rtuMw/com/rtuLogText"
     test:
+        url: "http://127.0.0.1:8072"
         comSendUrl: "http://127.0.0.1:8072/rtuMw/com/send"
-        ugTaskSendUrl: "http://127.0.0.1:8072/rtuMw/com/upgradeRtu"
-        rtuLogFileUrl: "http://127.0.0.1:8072/rtuMw/com/rtuLogFile"
-        rtuLogTextUrl: "http://127.0.0.1:8072/rtuMw/com/rtuLogText"
     #鐩戞祴鎺у埗妯″潡鍥炶皟鍦板潃
     rtuCallbackUrl_rm: "http://127.0.0.1:8081/remote/comRes/receive"
     #rtu杩滅▼鍗囩骇妯″潡鍥炶皟鍦板潃
diff --git "a/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050\345\274\200\345\217\221\346\265\213\350\257\225---166PC\346\234\272\051.yml" "b/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050\345\274\200\345\217\221\346\265\213\350\257\225---166PC\346\234\272\051.yml"
deleted file mode 100644
index ab8092d..0000000
--- "a/pipIrr-platform/pipIrr-global/src/main/resources/application-global\050\345\274\200\345\217\221\346\265\213\350\257\225---166PC\346\234\272\051.yml"
+++ /dev/null
@@ -1,386 +0,0 @@
-spring:
-    servlet:
-        multipart:
-            # 鍓嶇涓婁紶鏂囦欢锛岄檺鍒跺崟涓枃浠剁殑澶у皬鍜岄檺鍒舵墍鏈夋枃浠剁殑澶у皬
-            max-file-size: 500MB
-            max-request-size: 5000MB
-logging:
-    charset:
-        console: UTF-8
-    config:
-        classpath: log4j2.yml
-#绂佺敤鐧芥爣閿欒椤甸潰
-server:
-    error:
-        whitelabel:
-            enabled: false
-    #servlet閰嶇疆
-    servlet:
-        encoding:
-            #鍙栨秷榛樿鐨勫瓧绗﹂泦缂栫爜
-            enabled: true
-            #璁剧疆寮哄埗浣跨敤鎸囧畾瀛楃缂栫爜闆�
-            force: true
-            #浣跨敤鐨勫瓧绗︾紪鐮�
-            charset: utf-8
-# actuator閰嶇疆锛屽厛include浜嗗叏閮紝鐒跺悗鍐峞xclude鎸囧畾鐨別ndpoint
-management:
-    endpoints:
-        web:
-            exposure:
-                include: '*'
-                #exclude: beans
-        .shutdown:
-            enabled: true #鏄惁寮�鍚�/actuator/shutdown
-
-# SpringDoc-OpenApi 閰嶇疆
-springdoc:
-    swagger-ui:
-        #搴旂敤actuator鏃讹紝璁块棶: http://[IP]:[port]/actuator/swagger-ui/index.html 渚嬪http://127.0.0.1:9080/actuator/swagger-ui/index.html
-        #鏈敤actuator鏃讹紝璁块棶: http://[IP]:[port]/[context]/swagger-ui/index.html 渚嬪http://127.0.0.1:8080/[瀛愮郴缁熶笂涓嬫枃锛坆ase锛塢/swagger-ui/index.html
-        path: /swagger-ui
-        operationsSorter: method # HTTP 鏂规硶鎺掑簭
-        tagsSorter: alpha # API 鎺掑簭
-    api-docs:
-        path: /v3/apiDocs
-        groups:
-            enabled: true
-    show-actuator: true #鍦╝ctuator閰嶇疆鐨勭鍙e強涓婁笅鏂囦腑璁块棶 SpringDoc-OpenApi
-    use-management-port: true #搴旂敤actuator閰嶇疆鐨勭鍙o紝浣嗕笂闈㈢殑swagger-ui:path鍙細閲囩敤榛樿鍊約wagger-ui
-    packages-to-scan: com.dy
-    #paths-to-match: /sys/**, /demo/**, /**
-    paths-to-match:  /**
-    web:
-        title: 澶х鑺傛按绠$亴鐩戞帶绯荤粺API
-        description: 澶х鑺傛按绠$亴鐩戞帶绯荤粺鏈嶅姟绔� Restfull API
-        version: v1.0.0
-        license-name: 澶х鑺傛按鐮旂┒闄�
-
-#MybatisPlus 閰嶇疆鏃ュ織鏄剧ず鎵цSQL
-mybatis-plus:
-    #鍖归厤sql璇彞鐨勬槧灏勬枃浠剁殑浣嶇疆锛宑lasspath浠h〃鍦╮esources涓�
-    mapper-locations: classpath:mapper/*.xml
-    #浠ヤ笅涓や釜閰嶇疆鍙互鐪佺暐锛屽湪mapper鏄犲皠鏂囦欢涓厤缃�淍Mapper鈥濅篃鏄彲浠ョ殑銆�
-    #浣跨敤type-aliases-package涓寚瀹歟ntity鎵弿鍖呰矾寰勶紝璁﹎ybatis鑷姩鎵弿鑷畾涔夌殑entity
-    #type-aliases-package: com.dy.pipIrrGlobal.daoBa
-    configuration:
-        #log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #鏃惰�岃緭鍑烘棩蹇楋紝鏃惰�屼笉杈撳嚭鏃ュ織
-        log-impl: org.apache.ibatis.logging.log4j2.Log4j2Impl
-        #寮�鍚┘宄皍Name鑷姩鏄犲皠鍒皍_name
-        #2023-10-24缁忓疄楠岋紝涓嬮潰閰嶇疆true鎴杅alse锛岄兘鑳戒粠u_name鏄犲皠鍒皍Name
-        #map-underscore-to-camel-case: true
-        lazyLoadingEnabled: true # 寮�鍚欢鏃跺姞杞藉紑鍏�
-        aggressiveLazyLoading: false # 灏嗙Н鏋佸姞杞芥敼涓烘秷鏋佸姞杞斤紙鍗虫寜闇�鍔犺浇锛夛紝榛樿鍊兼槸false
-        lazy-load-trigger-methods: ""  # 闃绘尅涓嶇浉骞茬殑鎿嶄綔瑙﹀彂锛屽疄鐜版噿鍔犺浇
-        cache-enabled: true  #鎵撳紑鍏ㄥ眬缂撳瓨寮�鍏筹紙浜岀骇鐜锛夛紝榛樿鍊兼槸true
-        default-enum-type-handler: com.dy.common.mybatis.envm.EnumCodeTypeHandler
-
-pipIrr:
-    global:
-        dev: true  #鏄惁寮�鍙戦樁娈碉紝true鎴杅alse
-        dsName: ym  #寮�鍙戦樁娈碉紝璁剧疆涓存椂鐨勬暟鎹簱鍚嶇О
-    nginx:
-        webPort: 54321
-    mw:
-        webPort: 8070 #閫氫俊涓棿浠朵腑搴旂敤锛屼笉鑳藉湪web妯″潡绯荤粺涓簲鐢�
-        actutorPort: 9070 #閫氫俊涓棿浠朵腑搴旂敤锛屼笉鑳藉湪web妯″潡绯荤粺涓簲鐢�
-        idSuffix: 0
-    sso:
-        cacheMaximumSize: 10000 #鐧诲綍鐢ㄦ埛缂撳瓨鍙紦瀛樼敤鎴风殑鏈�澶у��
-        cacheDuration: 720  #缂撳瓨鐧诲綍鐢ㄦ埛鍙戝憜鏈�澶ф椂闀匡紙鍒嗛挓锛�
-        checkUrl: http://127.0.0.1:8079/sso/sso/ssoCheck
-        webPort: 8079
-        actutorPort: 9079
-        idSuffix: 1
-    base:
-        webPort: 8080
-        actutorPort: 9080
-        idSuffix: 2
-    remote:
-        webPort: 8081
-        actutorPort: 9081
-        idSuffix: 3
-    statistics:
-        webPort: 8082
-        actutorPort: 9082
-        idSuffix: 4
-    gis:
-        webPort: 8083
-        actutorPort: 9083
-        idSuffix: 5
-    demo:
-        webPort: 8000
-        actutorPort: 9000
-        idSuffix: 99
-    sell:
-        webPort: 8084
-        actutorPort: 9084
-        idSuffix: 6
-    project:
-        webPort: 8085
-        actutorPort: 9085
-        idSuffix: 7
-    irrigate:
-        webPort: 8086
-        actutorPort: 9086
-        idSuffix: 8
-    wechat:
-        webPort: 8087
-        actutorPort: 9087
-        idSuffix: 9
-    app:
-        webPort: 8088
-        actutorPort: 9088
-        idSuffix: 10
-    operation:
-        webPort: 8089
-        actutorPort: 9089
-        idSuffix: 11
-
-
-    file:
-        idSuffix: 99
-    file1:
-        webPort: 8180
-        actutorPort: 9180
-    file2:
-        webPort: 8180
-        actutorPort: 9180
-    file3:
-        webPort: 8180
-        actutorPort: 9180
-    file4:
-        webPort: 8180
-        actutorPort: 9180
-    file5:
-        webPort: 8180
-        actutorPort: 9180
-    file6:
-        webPort: 8180
-        actutorPort: 9180
-    file7:
-        webPort: 8180
-        actutorPort: 9180
-    file8:
-        webPort: 8180
-        actutorPort: 9180
-    file9:
-        webPort: 8180
-        actutorPort: 9180
-    file10:
-        webPort: 8180
-        actutorPort: 9180
-    file11:
-        webPort: 8180
-        actutorPort: 9180
-    file12:
-        webPort: 8180
-        actutorPort: 9180
-
-
-#web鍒嗗竷寮忔枃浠剁郴缁�
-dy:
-    photoZipWidth: 400 #缂╃暐鍥惧昂瀵�
-    webFile:
-        fmUrl: http://127.0.0.1:${pipIrr.file1.webPort}/file # fm鐨剋eb涓婁笅鏂� URL
-        supportedFileTypes: docx,xlsx,doc,xls,pdf #鏀寔鐨勬枃妗o紙闈炲獟浣撴枃浠讹紝濡傜収鐗囥�佸綍闊炽�佸綍鍍忥級鏂囦欢绫诲瀷
-        sv1:
-            id: dyFile1
-            absolutePath: E:/java/nginx-1.24.0/html/webfiles/
-            relativePath: webFile1
-            hashStart: 0
-            hashEnd: 5461
-            restUrl: http://127.0.0.1:${pipIrr.file1.webPort}/file #file鏄笂涓嬫枃,ip涓哄眬鍩熺綉ip鎴栨湰鍦癐P
-            webUrl: http://127.0.0.1:${pipIrr.nginx.webPort}/webfiles/ #nginx鏈嶅姟璺緞,瀹夎閮ㄧ讲鏃禝P鏀规垚澶栫綉IP鎴栧煙鍚�
-            webDownloadPath: http://127.0.0.1:${pipIrr.file1.webPort}/file/download/down?id=  #瀹夎閮ㄧ讲鏃禝P鏀规垚澶栫綉IP鎴栧煙鍚�
-        sv2:
-            id: dyFile2
-            absolutePath: E:/java/nginx-1.24.0/html/webfiles/
-            relativePath: webFile2
-            hashStart: 5462
-            hashEnd: 10923
-            restUrl: http://127.0.0.1:${pipIrr.file2.webPort}/file
-            webUrl: http://127.0.0.1:${pipIrr.nginx.webPort}/webfiles/
-            webDownloadPath: http://127.0.0.1:${pipIrr.file2.webPort}/file/download/down?id=
-        sv3:
-            id: dyFile3
-            absolutePath: E:/java/nginx-1.24.0/html/webfiles/
-            relativePath: webFile3
-            hashStart: 10924
-            hashEnd: 16385
-            restUrl: http://127.0.0.1:${pipIrr.file3.webPort}/file
-            webUrl: http://127.0.0.1:${pipIrr.nginx.webPort}/webfiles/
-            webDownloadPath: http://127.0.0.1:${pipIrr.file3.webPort}/file/download/down?id=
-        sv4:
-            id: dyFile4
-            absolutePath: E:/java/nginx-1.24.0/html/webfiles/
-            relativePath: webFile4
-            hashStart: 16386
-            hashEnd: 21847
-            restUrl: http://127.0.0.1:${pipIrr.file4.webPort}/file
-            webUrl: http://127.0.0.1:${pipIrr.nginx.webPort}/webfiles/
-            webDownloadPath: http://127.0.0.1:${pipIrr.file4.webPort}/file/download/down?id=
-        sv5:
-            id: dyFile5
-            absolutePath: E:/java/nginx-1.24.0/html/webfiles/
-            relativePath: webFile5
-            hashStart: 21848
-            hashEnd: 27309
-            restUrl: http://127.0.0.1:${pipIrr.file5.webPort}/file
-            webUrl: http://127.0.0.1:${pipIrr.nginx.webPort}/webfiles/
-            webDownloadPath: http://127.0.0.1:${pipIrr.file5.webPort}/file/download/down?id=
-        sv6:
-            id: dyFile6
-            absolutePath: E:/java/nginx-1.24.0/html/webfiles/
-            relativePath: webFile6
-            hashStart: 27310
-            hashEnd: 32767
-            restUrl: http://127.0.0.1:${pipIrr.file6.webPort}/file
-            webUrl: http://127.0.0.1:${pipIrr.nginx.webPort}/webfiles/
-            webDownloadPath: http://127.0.0.1:${pipIrr.file6.webPort}/file/download/down?id=
-        sv7:
-            id: dyFile7
-            absolutePath: E:/java/nginx-1.24.0/html/webfiles/
-            relativePath: webFile7
-            hashStart: 32768
-            hashEnd: 38229
-            restUrl: http://127.0.0.1:${pipIrr.file7.webPort}/file
-            webUrl: http://127.0.0.1:${pipIrr.nginx.webPort}/webfiles/
-            webDownloadPath: http://127.0.0.1:${pipIrr.file7.webPort}/file/download/down?id=
-        sv8:
-            id: dyFile8
-            absolutePath: E:/java/nginx-1.24.0/html/webfiles/
-            relativePath: webFile8
-            hashStart: 38230
-            hashEnd: 43691
-            restUrl: http://127.0.0.1:${pipIrr.file8.webPort}/file
-            webUrl: http://127.0.0.1:${pipIrr.nginx.webPort}/webfiles/
-            webDownloadPath: http://127.0.0.1:${pipIrr.file8.webPort}/file/download/down?id=
-        sv9:
-            id: dyFile9
-            absolutePath: E:/java/nginx-1.24.0/html/webfiles/
-            relativePath: webFile9
-            hashStart: 43692
-            hashEnd: 49153
-            restUrl: http://127.0.0.1:${pipIrr.file9.webPort}/file
-            webUrl: http://127.0.0.1:${pipIrr.nginx.webPort}/webfiles/
-            webDownloadPath: http://127.0.0.1:${pipIrr.file9.webPort}/file/download/down?id=
-        sv10:
-            id: dyFile10
-            absolutePath: E:/java/nginx-1.24.0/html/webfiles/
-            relativePath: webFile10
-            hashStart: 49154
-            hashEnd: 54615
-            restUrl: http://127.0.0.1:${pipIrr.file10.webPort}/file
-            webUrl: http://127.0.0.1:${pipIrr.nginx.webPort}/webfiles/
-            webDownloadPath: http://127.0.0.1:${pipIrr.file10.webPort}/file/download/down?id=
-        sv11:
-            id: dyFile11
-            absolutePath: E:/java/nginx-1.24.0/html/webfiles/
-            relativePath: webFile11
-            hashStart: 54616
-            hashEnd: 60077
-            restUrl: http://127.0.0.1:${pipIrr.file11.webPort}/file
-            webUrl: http://127.0.0.1:${pipIrr.nginx.webPort}/webfiles/
-            webDownloadPath: http://127.0.0.1:${pipIrr.file11.webPort}/file/download/down?id=
-        sv12:
-            id: dyFile12
-            absolutePath: E:/java/nginx-1.24.0/html/webfiles/
-            relativePath: webFile12
-            hashStart: 60078
-            hashEnd: 65535
-            restUrl: http://127.0.0.1:${pipIrr.file12.webPort}/file
-            webUrl: http://127.0.0.1:${pipIrr.nginx.webPort}/webfiles/
-            webDownloadPath: http://127.0.0.1:${pipIrr.file12.webPort}/file/download/down?id=
-
-
-#椤圭洰缂栧彿
-#projectCode:
-#    ym: 100
-#    sp: 101
-
-#椤圭洰閰嶇疆
-project:
-    #椤圭洰缂栫爜
-    projectNo: 10
-    #鎺у埗鍣ㄧ被鍨�
-    controllerType: 57
-    #榛樿琛屾斂鍖哄垝缂栫爜锛堝ぉ娲�-澶╂触甯�-姝︽竻鍖�-浜花宸ヤ笟鍥�-澶х鑺傛按锛�
-    divisionCode: 120114403100
-
-
-#閫氳涓棿浠剁浉鍏抽厤缃�
-#protocol: DYJS_2023,DYJS_2024
-mw:
-    #鍛戒护鍙戦�佸湴鍧�(涓紑鏄満鏋則ag锛屽叾涔熸槸鏁版嵁婧愬悗缂�鍚嶇О)
-    ym:
-        comSendUrl: "http://192.168.40.166:8070/rtuMw/com/send"
-        rtuLogFileUrl: "http://127.0.0.1:8070/rtuMw/com/rtuLogFile"
-        rtuLogTextUrl: "http://127.0.0.1:8070/rtuMw/com/rtuLogText"
-    sp:
-        comSendUrl: "http://127.0.0.1:8073/rtuMw/com/send"
-        rtuLogFileUrl: "http://127.0.0.1:8073/rtuMw/com/rtuLogFile"
-        rtuLogTextUrl: "http://127.0.0.1:8073/rtuMw/com/rtuLogText"
-    test:
-        comSendUrl: "http://127.0.0.1:8072/rtuMw/com/send"
-        rtuLogFileUrl: "http://127.0.0.1:8072/rtuMw/com/rtuLogFile"
-        rtuLogTextUrl: "http://127.0.0.1:8072/rtuMw/com/rtuLogText"
-    #鐩戞祴鎺у埗妯″潡鍥炶皟鍦板潃
-    rtuCallbackUrl_rm: "http://127.0.0.1:8081/remote/comRes/receive"
-    #寰俊灏忕▼搴忓洖璋冨湴鍧�
-    rtuCallbackUrl_wx: "http://127.0.0.1:8087/wx/comRes/receive"
-
-#涓嶈繘琛寀serToken杩囨护鐨刄RL锛孈ConfigurationProperties瑕佹眰tokennofilter涓墍鏈夊瓧姣嶉兘灏忓啓
-tokennofilter:
-    urls:
-        - /sso/sso
-        - /remote/comRes/receive
-        - /wx/comRes/receive
-        - /app/captcha/get
-        - /file/file #web鍒嗗竷寮忔枃浠剁郴缁�
-        - /file/fm #web鍒嗗竷寮忔枃浠剁郴缁�
-
-#鑷姩缁熻閰嶇疆锛岃嚜鍔ㄧ粺璁″畾鏃朵换鍔′細姣忓ぉ瀹氭椂杩涜
-auto-statistics:
-    startHour: 0 #寮�濮嬪皬鏃� 0
-    startMinute: 5 #寮�濮嬪垎閽� 5
-
-#閽夐拤娑堟伅鎺ㄩ��
-dingtalk:
-    ym:
-        enable: true #鏄惁鍚敤
-        robot:
-            url: https://oapi.dingtalk.com/robot/send
-            access-token: fecef8e7725998f8912af05419580861aafc73413c4920036c07c050fa33055f
-            secret: SEC6042bc964d08899a5853eb321eb5a4d842a395982777f815bd07451c879228b7
-        at-all: true
-        mobile: 18602657034
-    sp:
-        enable: true #鏄惁鍚敤
-        robot:
-            url: https://oapi.dingtalk.com/robot/send
-            access-token: fecef8e7725998f8912af05419580861aafc73413c4920036c07c050fa33055f
-            secret: SEC6042bc964d08899a5853eb321eb5a4d842a395982777f815bd07451c879228b7
-        at-all: true
-        mobile: 18602657034
-    test:
-        enable: true #鏄惁鍚敤
-        robot:
-            url: https://oapi.dingtalk.com/robot/send
-            access-token: fecef8e7725998f8912af05419580861aafc73413c4920036c07c050fa33055f
-            secret: SEC6042bc964d08899a5853eb321eb5a4d842a395982777f815bd07451c879228b7
-        at-all: true
-        mobile: 18602657034
-
-#闃�鎺у櫒鍙傛暟
-rtu:
-    batteryVolt: 17
-    signalIntensity:
-        weak: 10
-        ordinary: 20
-#        strong: 20
-
-#铏氭嫙鍗¢厤缃弬鏁�
-vc:
-    #铏氭嫙鍗℃渶浣庝綑棰濇姤璀﹀��
-    alarmValue: 10
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
index fc2033d..c037eec 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
@@ -310,22 +310,16 @@
 #閫氳涓棿浠剁浉鍏抽厤缃�
 #protocol: DYJS_2023,DYJS_2024
 mw:
-    #鍛戒护鍙戦�佸湴鍧�(涓紑鏄満鏋則ag锛屽叾涔熸槸鏁版嵁婧愬悗缂�鍚嶇О)
+    #鍛戒护鍙戦�侀�氫俊涓棿浠跺湴鍧�
     ym:
+        url: "http://127.0.0.1:8070"
         comSendUrl: "http://127.0.0.1:8070/rtuMw/com/send"
-        ugTaskSendUrl: "http://127.0.0.1:8070/rtuMw/com/upgradeRtu"
-        rtuLogFileUrl: "http://127.0.0.1:8070/rtuMw/com/rtuLogFile"
-        rtuLogTextUrl: "http://127.0.0.1:8070/rtuMw/com/rtuLogText"
     sp:
+        url: "http://127.0.0.1:8073"
         comSendUrl: "http://127.0.0.1:8073/rtuMw/com/send"
-        ugTaskSendUrl: "http://127.0.0.1:8073/rtuMw/com/upgradeRtu"
-        rtuLogFileUrl: "http://127.0.0.1:8073/rtuMw/com/rtuLogFile"
-        rtuLogTextUrl: "http://127.0.0.1:8073/rtuMw/com/rtuLogText"
     test:
+        url: "http://127.0.0.1:8072"
         comSendUrl: "http://127.0.0.1:8072/rtuMw/com/send"
-        ugTaskSendUrl: "http://127.0.0.1:8072/rtuMw/com/upgradeRtu"
-        rtuLogFileUrl: "http://127.0.0.1:8072/rtuMw/com/rtuLogFile"
-        rtuLogTextUrl: "http://127.0.0.1:8072/rtuMw/com/rtuLogText"
     #鐩戞祴鎺у埗妯″潡鍥炶皟鍦板潃
     rtuCallbackUrl_rm: "http://127.0.0.1:8081/remote/comRes/receive"
     #rtu杩滅▼鍗囩骇妯″潡鍥炶皟鍦板潃
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeTaskTypeMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeTaskTypeMapper.xml
index a6ed490..2103691 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeTaskTypeMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeTaskTypeMapper.xml
@@ -77,4 +77,13 @@
       deleted = #{deleted,jdbcType=BIGINT}
     where id = #{id,jdbcType=BIGINT}
   </update>
+
+  <!--鑾峰彇浠诲姟绫诲瀷鍒楄〃-->
+  <select id="getTaskTypes" resultType="com.dy.pipIrrGlobal.voOp.VoTaskType">
+    SELECT
+      id AS taskTypeId,
+      task_type AS taskType
+    FROM ope_task_type
+    WHERE deleted = 0
+  </select>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeWorkOrderMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeWorkOrderMapper.xml
index bb25f7a..ccf7545 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeWorkOrderMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeWorkOrderMapper.xml
@@ -285,6 +285,10 @@
         AND us2.name like CONCAT('%',#{inspector},'%')
       </if>
 
+      <if test = "state != null">
+        AND ord.state = #{state}
+      </if>
+
       <if test = "timeStart != null and timeStop != null">
         AND ord.dispatch_time BETWEEN #{timeStart} AND #{timeStop}
       </if>
@@ -316,7 +320,8 @@
             WHEN res.state = 2 THEN	'宸查�氳繃'
             WHEN res.state = 3 THEN	'宸查┏鍥�'
             ELSE '鏈笂鎶�'
-        END AS processingState
+        END AS processingState,
+        res.id AS proResultId
     FROM ope_work_order ord
         INNER JOIN ba_user us1 ON us1.id = ord.dispatcher_id
         INNER JOIN ba_user us2 ON us2.id = ord.inspector_id
@@ -341,6 +346,10 @@
         AND us2.name like CONCAT('%',#{inspector},'%')
       </if>
 
+      <if test = "state != null">
+        AND ord.state = #{state}
+      </if>
+
       <if test = "timeStart != null and timeStop != null">
         AND ord.dispatch_time BETWEEN #{timeStart} AND #{timeStop}
       </if>
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/UpgradeManager.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeManager.java
index cf4d386..dc3f161 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeManager.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeManager.java
@@ -88,12 +88,19 @@
      * 鍥犱负寮哄埗缁撴潫鍗囩骇浠诲姟锛屽涓�涓湭鍗囩骇瀹屾垚鐨凴TU灏变細鍗℃锛�
      * 鎵�浠ュ綋寮哄埗缁撴潫鍗囩骇浠诲姟锛屼唬鐮侀�昏緫骞舵病鏈夊己鍒剁粨鏋淩TU鍗囩骇杩囩▼锛屽鏋滃崌绾ц繃绋嬩篃寮哄埗鍋滄锛岄偅涔圧TU鐪熶細鍗℃
      */
-    public void forceOverUpgradeTask() {
+    public String forceOverUpgradeTask() {
         if(this.task != null){
-            this.stop();
-            this.task.forceOver();
+            this.task.countRunningRtuCount();
+            if(this.task.curUgRunningRtuTotal > 0){
+                return "褰撳墠瀛樺湪鍗囩骇涓殑璁惧锛屼笉鑳界粨鏉熷崌绾т换鍔�" ;
+            }else{
+                this.stop();
+                this.task.forceOver();
+                return null ;
+            }
+        }else{
+            return "褰撳墠娌℃湁鍗囩骇浠诲姟" ;
         }
-        this.task = null ;
     }
 
     /**
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..b4707e6 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
@@ -52,7 +52,7 @@
     ///////////////////////////////////////////////////
     //浠ヤ笅鍐呴儴鎺у埗鐢�
     @JSONField(serialize = false)
-    private int curUgRunningRtuTotal = 0 ;//褰撳墠姝e湪鍗囩骇鐨凴TU涓暟
+    protected int curUgRunningRtuTotal = 0 ;//褰撳墠姝e湪鍗囩骇鐨凴TU涓暟
 
     public UpgradeTask() {
         this.curUgRunningRtuTotal = 0 ;
@@ -176,7 +176,6 @@
             }
         }
     }
-
     /**
      * 寮哄埗缁撴潫鍗囩骇浠诲姟
      */
@@ -189,6 +188,7 @@
             //this.upgradeState.clear();
         }
     }
+
 
     /**
      * 褰撳墠鍗囩骇鐘舵��
@@ -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-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeUnit.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeUnit.java
index d2b8947..c1f02d0 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeUnit.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeUnit.java
@@ -56,7 +56,7 @@
 
     @Override
     public void stop(UnitCallbackInterface callback) throws Exception {
-        overUpgradeTask() ;
+        forceOverUpgradeTask() ;
     }
 
 
@@ -73,12 +73,15 @@
     }
 
     /**
-     * 鍋滄褰撳墠鍗囩骇浠诲姟
+     * 缁撴潫褰撳墠鍗囩骇浠诲姟
      * @throws Exception
+     * @return null锛氱粨鏉熶换鍔℃垚鍔燂紝鍚﹀垯杩斿洖澶辫触鍘熷洜
      */
-    public void overUpgradeTask() throws Exception {
+    public String forceOverUpgradeTask() throws Exception {
         if(manager != null ){
-            manager.forceOverUpgradeTask() ;
+            return manager.forceOverUpgradeTask() ;
+        }else{
+            return "閫氫俊涓棿浠跺唴閮ㄩ敊璇�" ;
         }
     }
 
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java
index 46ad9d1..675f636 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java
@@ -1,6 +1,7 @@
 package com.dy.rtuMw.web.com;
 
 import com.dy.common.softUpgrade.state.UpgradeTaskVo;
+import com.dy.common.webUtil.ResultCodeMsg;
 import com.dy.rtuMw.resource.ResourceUnit;
 import com.dy.rtuMw.server.ServerProperties;
 import com.dy.rtuMw.server.forTcp.TcpSessionCache;
@@ -161,6 +162,25 @@
     }
 
     /**
+     * 鎺ユ敹web绯荤粺鍙戞潵寮哄埗缁撴潫鍗囩骇浠诲姟
+     * @return
+     */
+    @PostMapping(path = "ugForceOver", consumes = MediaType.APPLICATION_JSON_VALUE)
+    public BaseResponse<String> ugForceOver() {
+        log.info("鏀跺埌鍋滄RTU鍗囩骇浠诲姟鍛戒护") ;
+        try{
+            String mes = UpgradeUnit.getInstance().forceOverUpgradeTask();
+            if(mes == null){
+                mes = "鍋滄鍗囩骇浠诲姟鎴愬姛" ;
+            }
+            return BaseResponseUtils.buildResult(ResultCodeMsg.RsCode.SUCCESS_CODE, mes, mes);
+        }catch (Exception e){
+            log.error("鍋滄RTU鍗囩骇浠诲姟鏃跺彂鐢熷紓甯�", e);
+            return BaseResponseUtils.buildError("鍋滄RTU鍗囩骇浠诲姟鏃跺彂鐢熷紓甯�" + (e.getMessage() == null?"":("锛�" + e.getMessage())));
+        }
+    }
+
+    /**
      * 鎺ユ敹web绯荤粺鍙戞潵鐨勫懡浠�
      * @param com
      * @return
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..3876932 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 > 90){
+                                    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-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderCtrl.java
index a746c19..c3d3eba 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderCtrl.java
@@ -15,6 +15,7 @@
 import com.dy.pipIrrGlobal.pojoOp.OpeProcessingResult;
 import com.dy.pipIrrGlobal.pojoOp.OpeWorkOrder;
 import com.dy.pipIrrGlobal.voOp.VoProcessingResult;
+import com.dy.pipIrrGlobal.voOp.VoTaskType;
 import com.dy.pipIrrGlobal.voOp.VoWorkOrder;
 import jakarta.validation.Valid;
 import lombok.RequiredArgsConstructor;
@@ -265,4 +266,19 @@
 
         return BaseResponseUtils.buildSuccess(true) ;
     }
+
+    /**
+     * 鑾峰彇浠诲姟绫诲瀷鍒楄〃
+     * @return
+     */
+    @GetMapping(path = "/getTaskTypes")
+    @SsoAop()
+    public BaseResponse<List<VoTaskType>> getTaskTypes() {
+        try {
+            return BaseResponseUtils.buildSuccess(workOrderSv.getTaskTypes());
+        } catch (Exception e) {
+            log.error("鑾峰彇浠诲姟绫诲瀷寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java
index 30d7b7f..1375549 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java
@@ -4,11 +4,13 @@
 import com.dy.pipIrrApp.workOrder.qo.QoWorkOrder;
 import com.dy.pipIrrGlobal.daoOp.OpeApproveResultMapper;
 import com.dy.pipIrrGlobal.daoOp.OpeProcessingResultMapper;
+import com.dy.pipIrrGlobal.daoOp.OpeTaskTypeMapper;
 import com.dy.pipIrrGlobal.daoOp.OpeWorkOrderMapper;
 import com.dy.pipIrrGlobal.pojoOp.OpeApproveResult;
 import com.dy.pipIrrGlobal.pojoOp.OpeProcessingResult;
 import com.dy.pipIrrGlobal.pojoOp.OpeWorkOrder;
 import com.dy.pipIrrGlobal.voOp.VoProcessingResult;
+import com.dy.pipIrrGlobal.voOp.VoTaskType;
 import com.dy.pipIrrGlobal.voOp.VoWorkOrder;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.common.utils.PojoUtils;
@@ -37,6 +39,9 @@
 
     @Autowired
     private OpeApproveResultMapper opeApproveResultMapper;
+
+    @Autowired
+    private OpeTaskTypeMapper opeTaskTypeMapper;
 
     /**
      * 娣诲姞宸ュ崟璁板綍
@@ -227,4 +232,12 @@
 
         return "success";
     }
+
+    /**
+     * 鑾峰彇浠诲姟绫诲瀷鍒楄〃
+     * @return
+     */
+    public List<VoTaskType> getTaskTypes() {
+        return opeTaskTypeMapper.getTaskTypes();
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/qo/QoWorkOrder.java b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/qo/QoWorkOrder.java
index 138e9f5..592eed1 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/qo/QoWorkOrder.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/qo/QoWorkOrder.java
@@ -35,6 +35,11 @@
     private Long inspectorId;
 
     /**
+     * 鐘舵�侊細1-鏈畬鎴愶紝2-宸插畬鎴�
+     */
+    private Integer state;
+
+    /**
      * 鏌ヨ寮�濮嬫椂闂�
      */
     private String timeStart;
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..b17914d 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,50 @@
         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)
+    @SsoAop()
+    public void exportAll(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/monitor/MonitorSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/MonitorSv.java
index a85672a..a4f1e1f 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/MonitorSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/monitor/MonitorSv.java
@@ -9,7 +9,7 @@
 import com.dy.common.webUtil.QueryResultVo;
 import com.dy.pipIrrGlobal.daoPr.PrIntakeMapper;
 import com.dy.pipIrrGlobal.rtuMw.CodeLocal;
-import com.dy.pipIrrGlobal.rtuMw.ToRtuMwCom;
+import com.dy.pipIrrGlobal.rtuMw.Web2RtuMw;
 import com.dy.pipIrrGlobal.voPr.VoOnLineIntake;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.common.utils.PojoUtils;
@@ -29,7 +29,7 @@
  */
 @Slf4j
 @Service
-public class MonitorSv extends ToRtuMwCom {
+public class MonitorSv extends Web2RtuMw {
 
     @Autowired
     private PrIntakeMapper prIntakeMapper;
@@ -76,8 +76,8 @@
             //鍚戦�氫俊涓棿浠跺彂鍏冲懡浠わ紝鏌ヨ閮ㄥ垎RTU鍦ㄧ嚎鎯呭喌
             Command com = this.createInnerCommand(CodeLocal.onLinePart);
             com.setParam(rtuAddrs) ;
-            String comSendUrl = this.getToMwUrl(this.env) ;
-            BaseResponse res = sendCom2Mw(restTemplate, comSendUrl, com) ;
+            String rqUrl = this.get2MwRequestUrl(this.env, ContextComSend) ;
+            BaseResponse res = sendRequest2Mw(restTemplate, rqUrl, com) ;
             if(res != null){
                 if(res.isSuccess()){
                     Command reCom = JSON.parseObject(res.getContent() == null ? null : JSON.toJSONString(res.getContent()), Command.class) ;
@@ -114,8 +114,8 @@
     private QueryResultVo<List<VoOnLineIntake>> selectIntakesOnOrOffLine(QueryVo vo) {
         //鍚戦�氫俊涓棿浠跺彂鍏冲懡浠わ紝鏌ヨ閮ㄥ垎RTU鍦ㄧ嚎鎯呭喌
         Command com = this.createInnerCommand(CodeLocal.onLineAll);
-        String comSendUrl = this.getToMwUrl(this.env) ;
-        BaseResponse res = sendCom2Mw(restTemplate, comSendUrl, com) ;
+        String rqUrl = this.get2MwRequestUrl(this.env, ContextComSend) ;
+        BaseResponse res = sendRequest2Mw(restTemplate, rqUrl, com) ;
         if(res != null){
             if(res.isSuccess()){
                 Command reCom = JSON.parseObject(res.getContent() == null ? null : JSON.toJSONString(res.getContent()), Command.class) ;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuLogCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuLogCtrl.java
index 18ffe64..84a72ae 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuLogCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuLogCtrl.java
@@ -1,9 +1,9 @@
 package com.dy.pipIrrRemote.rtu;
 
 import com.dy.common.aop.SsoAop;
-import com.dy.common.multiDataSource.DataSourceContext;
 import com.dy.common.webUtil.BaseResponse;
 import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.pipIrrGlobal.rtuMw.Web2RtuMw;
 import jakarta.servlet.ServletOutputStream;
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
@@ -32,11 +32,7 @@
 @Slf4j
 @RestController
 @RequestMapping(path="rtuLog")
-public class RtuLogCtrl {
-
-    private static final String pro_mw = "mw";
-    private static final String key_mw_file = "rtuLogFileUrl";
-    private static final String key_mw_text = "rtuLogTextUrl";
+public class RtuLogCtrl extends Web2RtuMw {
 
     private Environment env ;
     private RestTemplate restTemplate;
@@ -55,10 +51,10 @@
     @GetMapping(path = "file")
     @SsoAop()
     public BaseResponse<List<String>> rtuLogFile(String rtuAddr, HttpServletRequest req, HttpServletResponse rep){
-        String mwUrlRtuLogFile = env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + key_mw_file);
+        String rqUrl = this.get2MwRequestUrl(this.env, ContextRtuLogFile) ;
         ServletOutputStream out = null ;
         try{
-            byte[] bs = this.requestMw4File(rtuAddr, mwUrlRtuLogFile) ;
+            byte[] bs = this.requestMw4File(rtuAddr, rqUrl) ;
             if(bs != null && bs.length > 0){
                 String fileReName = rtuAddr + ".log" ;
                 //URLEncoder.encode鍙互闃叉涓枃涔辩爜
@@ -91,8 +87,9 @@
     @GetMapping(path="text")
     @SsoAop()
     public BaseResponse<List<String>> rtuLogText(String rtuAddr){
-        String mwUrlRtuLogText = env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + key_mw_text);
-        BaseResponse<List<String>> text = this.requestMw4Text(rtuAddr, mwUrlRtuLogText);
+        String rqUrl = this.get2MwRequestUrl(this.env, ContextRtuLogText) ;
+        //String mwUrlRtuLogText = env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + key_mw_text);
+        BaseResponse<List<String>> text = this.requestMw4Text(rtuAddr, rqUrl);
         if (text != null){
             if (text.getContent().get(0).contains("鎺у埗鍣�")){
                 return BaseResponseUtils.buildErrorMsg(""+text.getContent().get(0)+"") ;
@@ -101,7 +98,6 @@
         }else {
             return BaseResponseUtils.buildErrorMsg("鑾峰彇鏃ュ織鏂囦欢涓簄ull") ;
         }
-//        return this.requestMw4Text(rtuAddr, mwUrlRtuLogText) ;
     }
 
 
@@ -141,5 +137,4 @@
 
         return (response==null?null:response.getBody());
     }
-
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeCtrl.java
index d5929d6..63053ca 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeCtrl.java
@@ -3,7 +3,6 @@
 import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.support.ExcelTypeEnum;
 import com.dy.common.aop.SsoAop;
-import com.dy.common.softUpgrade.state.UpgradeRtu;
 import com.dy.common.softUpgrade.state.UpgradeTaskVo;
 import com.dy.common.springUtil.SpringContextUtil;
 import com.dy.common.webUtil.BaseResponse;
@@ -12,8 +11,7 @@
 import com.dy.common.webUtil.ResultCodeMsg;
 import com.dy.pipIrrGlobal.pojoUg.UgRtuProgram;
 import com.dy.pipIrrGlobal.pojoUg.UgRtuTask;
-import com.dy.pipIrrGlobal.rtuMw.ToRtuMwCom;
-import com.dy.pipIrrGlobal.voPr.VoDivide;
+import com.dy.pipIrrGlobal.rtuMw.Web2RtuMw;
 import com.dy.pipIrrGlobal.voUg.VoUgRtuResult;
 import com.dy.pipIrrGlobal.voUg.VoWatch;
 import io.swagger.v3.oas.annotations.Operation;
@@ -35,7 +33,6 @@
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
-import java.util.ArrayList;
 import java.util.Base64;
 import java.util.List;
 
@@ -48,7 +45,7 @@
 @Tag(name = "rtu杩滅▼鍗囩骇浠诲姟", description = "rtu杩滅▼鍗囩骇浠诲姟鐩稿叧鎿嶄綔")
 @RestController
 @RequestMapping(path = "rtuUpgrade")
-public class RtuUpgradeCtrl extends ToRtuMwCom {
+public class RtuUpgradeCtrl extends Web2RtuMw {
     @Autowired
     private RtuUpgradeSv sv ;
 
@@ -108,8 +105,8 @@
         vo.rtuAddrList = taskRtuAddrs ;
         vo.callbackWebUrl = ugCallbackUrl_rm ;
 
-        String ugSendUrl = this.getToMwUgUrl(this.env) ;
-        BaseResponse res = sendUpgradeTask2Mw(restTemplate, ugSendUrl, vo) ;
+        String rqUrl = this.get2MwRequestUrl(this.env, ContextUgTaskSend) ;
+        BaseResponse res = sendRequest2Mw(restTemplate, rqUrl, vo) ;
         if(res != null){
             if(res.isSuccess()){
                 this.sv.setUpgradeTaskExecuted(id);
@@ -127,6 +124,41 @@
             return BaseResponseUtils.buildErrorMsg("閫氫俊涓棿浠惰繑鍥炵粨鏋滀负null") ;
         }
     }
+    /**
+     * 涓嬪彂寮哄埗缁撴潫褰撳墠rtu杩滅▼鍗囩骇浠诲姟
+     * @return 鎿嶄綔缁撴灉
+     */
+    @Operation(summary = "涓嬪彂寮哄埗缁撴潫褰撳墠rtu杩滅▼鍗囩骇浠诲姟", description = "涓嬪彂寮哄埗缁撴潫褰撳墠rtu杩滅▼鍗囩骇浠诲姟")
+    @ApiResponses(value = {
+            @ApiResponse(
+                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+                    description = "杩斿洖鎿嶄綔鎴愬姛涓庡惁鏁版嵁锛圔aseResponse.content:Boolean锛�",
+                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+                            schema = @Schema(implementation = String.class))}
+            )
+    })
+    @GetMapping(path = "/forceOver")
+    @SsoAop()
+    public BaseResponse<String> forceOver() {
+        String rqUrl = this.get2MwRequestUrl(this.env, ContextUgForceOver) ;
+        BaseResponse res = sendRequest2Mw(restTemplate, rqUrl, null) ;
+        if(res != null){
+            if(res.isSuccess()){
+                return BaseResponseUtils.buildSuccess(true) ;
+            }else{
+                String msg = res.getContent()==null?null:(String)res.getContent() ;
+                if(msg == null){
+                    msg = res.getMsg() ;
+                }
+                log.error("閫氫俊涓棿浠舵墽琛屼笅鍙戝己鍒剁粨鏉熷綋鍓峳tu杩滅▼鍗囩骇浠诲姟澶辫触锛�" + msg) ;
+                return BaseResponseUtils.buildErrorMsg("閫氫俊涓棿浠舵墽琛屽己鍒剁粨鏉熷綋鍓峳tu杩滅▼鍗囩骇浠诲姟澶辫触锛�" + msg) ;
+            }
+        }else{
+            log.error("閫氫俊涓棿浠惰繑鍥炵粨鏋滀负null") ;
+            return BaseResponseUtils.buildErrorMsg("閫氫俊涓棿浠惰繑鍥炵粨鏋滀负null") ;
+        }
+    }
+
 
     private void valueFromPo(UpgradeTaskVo vo, UgRtuTask tpo, UgRtuProgram ppo){
         vo.id = "" + tpo.id ;
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..9a8f18f 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;
 
@@ -48,15 +49,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) {
@@ -64,6 +58,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涓嶄负绌猴紝 绛夊緟涓嬫鍙戞潵鏁版嵁
@@ -74,11 +78,15 @@
                 }
             }
         }else{
-            cache = info;
             //褰揷ache涓湁鍊兼椂锛岃繘琛屾瘮瀵瑰瓨鍌紝瀵规瘮鐩殑鏄槻姝㈤噸澶嶆搷浣滄暟鎹簱
             if(info.ugRtuStateList != null && info.ugRtuStateList.size() > 0){
                 //姝ゆ椂淇濊瘉涓や釜闆嗗悎閮戒笉涓簄ull
                 this.save2Db(info.ugTaskId, info.ugRtuStateList, cache.ugRtuStateList);
+            }
+            //cache璧嬪�煎繀椤绘斁鍦ㄤ笂闈㈠鐞嗙殑鍚庨潰锛屽惁鍒欎笂闈㈢殑姣旇緝涓嶆垚鍔�
+            cache = info;
+            if(info.ugOverallState != null && info.ugOverallState.allOver){
+                this.saveTaskOver(info.ugTaskId) ;
             }
         }
         return null;
@@ -103,15 +111,31 @@
      */
     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(oldList.stream().anyMatch(vo -> vo.rtuAddr.equals(nvo.rtuAddr) && vo.isOver == false)){
-                    //涓婃娌℃湁鍗囩骇缁撴潫锛岃�屽綋鍓嶅崌绾х粨鏉熶簡
-                    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) ;
+    }
+
+
+
+
     /////////////////////////////////////////////////////
     //
     // 浠ヤ笅妯℃嫙鏁版嵁
@@ -305,10 +329,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){
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeSv.java
index 11787ec..018f0dc 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeSv.java
@@ -90,6 +90,14 @@
     }
 
 
+    /**
+     * 璁剧疆鍗囩骇浠诲姟宸茬粡瀹屾垚
+     * @param taskId
+     */
+    public void updateTaskOver(String taskId){
+        tdao.overById(Long.valueOf(taskId)) ;
+    }
+
     /////////////////////////////////////////////////////
     //
     // 浠ヤ笅婕旂ず鍗囩骇鍔熻兘鐢ㄥ埌

--
Gitblit v1.8.0