From 56a0692624bad9d65feaf0b31b8c28eb698f3c9f Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期四, 14 十一月 2024 17:48:52 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit

---
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/RuleEventSearchDataResponse.java  |   49 +++++
 server/visits/dmvisit_service/src/main/resources/application-dev.yml                                                      |    9 
 server/visits/dmvisit_admin/src/main/resources/bootstrap.yml                                                              |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/RuleEventSearchResponse.java      |   12 +
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/RuleEventFiledOptionsRequest.java |   12 +
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/SecureDevStatusTotalRequest.java  |    9 +
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformGroupMapper.java                              |    3 
 server/meeting/meeting_service/src/main/resources/application-dev.yml                                                     |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java                  |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/RegionTreeVO.java                  |   18 +
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/SecurityController.java                                  |   26 ++
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java                                |    5 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java                                |   54 ++++++
 server/system_gateway/src/main/resources/application-dev.yml                                                              |   12 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/SecureDevStatusListRequest.java   |    9 +
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/SecureDevStatusListResponse.java  |   13 +
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWmsDetail.java                          |    6 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/WaningEventDataVO.java             |   30 +++
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/ChangNeiDiaoduController.java                            |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformGroup.java                              |    8 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java                  |  150 +++++++++++++---
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PageRegionInfoResponse.java       |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/RuleEventSearchRequest.java       |   13 +
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java                                    |   24 ++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/BoardService.java                           |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/SecureDevStatusTotalResponse.java |   10 +
 26 files changed, 435 insertions(+), 52 deletions(-)

diff --git a/server/meeting/meeting_service/src/main/resources/application-dev.yml b/server/meeting/meeting_service/src/main/resources/application-dev.yml
index b524c73..be2062f 100644
--- a/server/meeting/meeting_service/src/main/resources/application-dev.yml
+++ b/server/meeting/meeting_service/src/main/resources/application-dev.yml
@@ -29,7 +29,6 @@
 #    password: 111111
 
 debug_model: true
-
 captcha_check: false
 
 # Swagger閰嶇疆
diff --git a/server/system_gateway/src/main/resources/application-dev.yml b/server/system_gateway/src/main/resources/application-dev.yml
index e702b3b..413edec 100644
--- a/server/system_gateway/src/main/resources/application-dev.yml
+++ b/server/system_gateway/src/main/resources/application-dev.yml
@@ -1,12 +1,12 @@
 spring:
   # 鏁版嵁婧愰厤缃�
   datasource:
-    url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/antaiwuliu?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
-    username: doumee
-    password: rtjgfEr@&0c0m
-#    url: jdbc:mysql://10.50.250.253:3306/antaiwuliu?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
-#    username: root
-#    password: Atwl@2024
+#    url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/antaiwuliu?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
+#    username: doumee
+#    password: rtjgfEr@&0c0m
+    url: jdbc:mysql://10.50.250.253:3306/antaiwuliu?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
+    username: root
+    password: Atwl@2024
     driver-class-name: com.mysql.cj.jdbc.Driver
     type: com.alibaba.druid.pool.DruidDataSource
 
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/ChangNeiDiaoduController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/ChangNeiDiaoduController.java
index f125304..9530021 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/ChangNeiDiaoduController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/ChangNeiDiaoduController.java
@@ -85,6 +85,8 @@
     public ApiResponse<List<PlatformWarnEvent>> warningList(@RequestParam Integer  size) {
         int limit = Constants.formatIntegerNum(size)>0?size:7;
         List<PlatformWarnEvent> data = boardService.warningList(limit);
+        if(data ==null || data.size()==0){
+        }
         return ApiResponse.success(data);
     }
 
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/SecurityController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/SecurityController.java
index fb631e5..324108e 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/SecurityController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/SecurityController.java
@@ -3,6 +3,7 @@
 import com.doumee.api.BaseController;
 import com.doumee.config.annotation.LoginNoRequired;
 import com.doumee.core.haikang.model.param.respose.PageRegionInfoResponse;
+import com.doumee.core.haikang.model.param.respose.RuleEventSearchResponse;
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.utils.Constants;
 import com.doumee.dao.web.response.platformReport.*;
@@ -73,7 +74,8 @@
     @ApiOperation("鍥尯瀹夐槻璁惧")
     @GetMapping("/securityDeviceData")
     public ApiResponse<List<SecurityDeviceDataVO>> securityDeviceData() {
-        List<SecurityDeviceDataVO> list = new ArrayList<>();
+        List<SecurityDeviceDataVO> list = boardService.securityDeviceData();
+        /*
         Random random = new Random();
         for (int i = 1; i <= 3; i++) {
             SecurityDeviceDataVO data = new SecurityDeviceDataVO();
@@ -82,7 +84,27 @@
             data.setOfflineDeviceNum(random.nextInt(10));
             data.setTotalNum(data.getOnlineNum() + data.getOfflineDeviceNum() );
             list.add(data);
-        }
+        }*/
+        return ApiResponse.success(list);
+    }
+    @LoginNoRequired
+    @ApiOperation("瀹夐槻鍛婅鎺ュ彛")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "type", value = "绫诲瀷 0鍏ㄩ儴 1鍖哄煙鍛婅 2琛屼负鍛婅", required = false)
+    })
+    @GetMapping("/warningEventData")
+    public ApiResponse<List<WaningEventDataVO>> warningEventData(Integer type) {
+        List<WaningEventDataVO> list = boardService.warningEventData(type);
+        /*
+        Random random = new Random();
+        for (int i = 1; i <= 3; i++) {
+            SecurityDeviceDataVO data = new SecurityDeviceDataVO();
+            data.setDeviceType("璁惧绫诲瀷_"+i);
+            data.setOnlineNum(random.nextInt(10));
+            data.setOfflineDeviceNum(random.nextInt(10));
+            data.setTotalNum(data.getOnlineNum() + data.getOfflineDeviceNum() );
+            list.add(data);
+        }*/
         return ApiResponse.success(list);
     }
 
diff --git a/server/visits/dmvisit_admin/src/main/resources/bootstrap.yml b/server/visits/dmvisit_admin/src/main/resources/bootstrap.yml
index 2df12af..9dc10e9 100644
--- a/server/visits/dmvisit_admin/src/main/resources/bootstrap.yml
+++ b/server/visits/dmvisit_admin/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@
 spring:
   profiles:
-    active: pro
+    active: dev
   application:
     name: visitsAdmin
     # 瀹夊叏閰嶇疆
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
index f5c3197..abd5eb2 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
@@ -146,11 +146,14 @@
         String[] cameraPreviewURLs= new String[]{"/api/video/v1/cameras/previewURLs","鑾峰彇鐩戞帶鐐归瑙堝彇娴乁RL"};//鑾峰彇鐩戞帶鐐归瑙堝彇娴乁RL
         String[] pageFireChannel= new String[]{"/api/resource/v1/fireChannel/get","鍒嗛〉鑾峰彇娑堥槻浼犳劅鍣ㄥ垪琛�"};//鍒嗛〉鑾峰彇娑堥槻浼犳劅鍣ㄥ垪琛�
         String[] pageSensorStatus= new String[]{"/api/fpnms/v2/sensor/status/search","鍒嗛〉鏌ヨ娑堥槻浼犳劅鍣ㄩ儴浠剁姸鎬乿2"};//鍒嗛〉鏌ヨ娑堥槻浼犳劅鍣ㄩ儴浠剁姸鎬乿2
+        String[] ruleEventSearch= new String[]{"/api/v2/ruleEvent/search","瀹夐槻鐪嬫澘-浠婃棩鍛婅浜嬩欢-鏍规嵁eventType瀛楁3"};//瀹夐槻鐪嬫澘-浠婃棩鍛婅浜嬩欢-鏍规嵁eventType瀛楁3[鍥剧墖]
+        String[] getSecureDevStatusList= new String[]{"/api/secureDataService/v2/getSecureDevStatusList","瀹夐槻鐪嬫澘-鍥尯瀹夐槻璁惧-鍚勭被鍨嬭澶囩姸鎬佹暟鎹垪琛�"};//瀹夐槻鐪嬫澘-鍥尯瀹夐槻璁惧-鍚勭被鍨嬭澶囩姸鎬佹暟鎹垪琛�
+        String[] getSecureDevStatusTotal= new String[]{"/api/secureDataService/v2/getSecureDevStatusTotal","缁熻鍥尯鎬讳綋鐨勫畨闃茶澶囨暟閲忥紝鍦ㄧ嚎鏁般�佸湪绾跨巼銆佺绾挎暟銆佺绾跨巼"};//缁熻鍥尯鎬讳綋鐨勫畨闃茶澶囨暟閲忥紝鍦ㄧ嚎鏁般�佸湪绾跨巼銆佺绾挎暟銆佺绾跨巼
     }
-
     /**
      * 闄勫綍A.55娑堥槻璁惧绫诲瀷
      */
+
     public interface  XiaofangCGQType{
         String[] hzbjzj = new String[]{"1020001" ,	"鐏伨鎶ヨ涓绘満" 	}     ;
         String[] gycgq = new String[]{"1020002" ,	"鎰熺儫浼犳劅鍣�" 	}     ;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
index e637738..75523a2 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
@@ -759,6 +759,30 @@
 		return startDoPostStringArtemis(HKConstants.InterfacePath.pageSensorStatus,body);
 	}
 	/**
+	 * 瀹夐槻鐪嬫澘-浠婃棩鍛婅浜嬩欢-鏍规嵁eventType瀛楁3
+	 * @param body
+	 * @return
+	 */
+	public static String ruleEventSearch(String body) {
+		return startDoPostStringArtemis(HKConstants.InterfacePath.ruleEventSearch,body);
+	}
+	/**
+	 * 瀹夐槻鐪嬫澘-鍥尯瀹夐槻璁惧-鍚勭被鍨嬭澶囩姸鎬佹暟鎹垪琛�
+	 * @param body
+	 * @return
+	 */
+	public static String getSecureDevStatusList(String body) {
+		return startDoPostStringArtemis(HKConstants.InterfacePath.getSecureDevStatusList,body);
+	}
+	/**
+	 * 缁熻鍥尯鎬讳綋鐨勫畨闃茶澶囨暟閲忥紝鍦ㄧ嚎鏁般�佸湪绾跨巼銆佺绾挎暟銆佺绾跨巼
+	 * @param body
+	 * @return
+	 */
+	public static String getSecureDevStatusTotal(String body) {
+		return startDoPostStringArtemis(HKConstants.InterfacePath.getSecureDevStatusTotal,body);
+	}
+	/**
 	 * 鑾峰彇鏈堝彴鐘舵��
 	 * @return
 	 */
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/RuleEventFiledOptionsRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/RuleEventFiledOptionsRequest.java
new file mode 100644
index 0000000..9023a20
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/RuleEventFiledOptionsRequest.java
@@ -0,0 +1,12 @@
+package com.doumee.core.haikang.model.param.request;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class RuleEventFiledOptionsRequest {
+  private String fieldName;//	String	false	瀛楁鍚嶇О
+private String fieldValue	;//String	false	瀛楁鍊�
+private String type;//	String	false	鏌ヨ绫诲瀷锛屽彲閫夎寖鍥达細eq锛堢浉绛夛級銆乶eq(涓嶇浉绛�)銆乴ike锛堢被浼硷級銆乴t锛堝皬浜庯級銆乬t锛堝ぇ浜庯級銆乴te锛堝皬浜庣瓑浜庯級銆乬te锛堝ぇ浜庣瓑浜庯級銆乮n锛堣寖鍥达級銆乶otIn(鑼冨洿涔嬪)銆乮n锛歠ieldValue鐨勫�煎彲浠ュ~澶氫釜锛岀敤鑻辨枃閫楀彿鍒嗛殧銆乶otNull(涓嶄负绌�)銆乮sNull(涓虹┖)銆乺ecently(鏈�杩�)銆�
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/RuleEventSearchRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/RuleEventSearchRequest.java
new file mode 100644
index 0000000..c0f1075
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/RuleEventSearchRequest.java
@@ -0,0 +1,13 @@
+package com.doumee.core.haikang.model.param.request;
+
+import com.doumee.core.haikang.model.param.BaseListPageRequest;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class RuleEventSearchRequest extends BaseListPageRequest {
+   private String[] regionIds;//	Array	false	鍥尯瀵瑰簲鍖哄煙id淇℃伅,item 绫诲瀷: string锛屼紶绌簂ist鏌ュ叏閮�
+    private String includeBool;//	Number	false	鏄惁鍖呭惈涓嬬骇瀛愯妭鐐�,0-涓嶅寘鍚�,1-鍖呭惈
+    private List<RuleEventFiledOptionsRequest > filedOptions;//	Array	false	绛涢�夊瓧娈靛垪琛�>
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/SecureDevStatusListRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/SecureDevStatusListRequest.java
new file mode 100644
index 0000000..eb7ef6b
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/SecureDevStatusListRequest.java
@@ -0,0 +1,9 @@
+package com.doumee.core.haikang.model.param.request;
+
+import lombok.Data;
+
+@Data
+public class SecureDevStatusListRequest {
+   private String[] regionIds;//	Array	false	鍥尯瀵瑰簲鍖哄煙id淇℃伅,item 绫诲瀷: string锛屼紶绌簂ist鏌ュ叏閮�
+    private String includeBool;//	Number	false	鏄惁鍖呭惈涓嬬骇瀛愯妭鐐�,0-涓嶅寘鍚�,1-鍖呭惈
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/SecureDevStatusTotalRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/SecureDevStatusTotalRequest.java
new file mode 100644
index 0000000..b058981
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/SecureDevStatusTotalRequest.java
@@ -0,0 +1,9 @@
+package com.doumee.core.haikang.model.param.request;
+
+import lombok.Data;
+
+@Data
+public class SecureDevStatusTotalRequest {
+   private String[] regionIds;//	Array	false	鍥尯瀵瑰簲鍖哄煙id淇℃伅,item 绫诲瀷: string锛屼紶绌簂ist鏌ュ叏閮�
+    private String includeBool;//	Number	false	鏄惁鍖呭惈涓嬬骇瀛愯妭鐐�,0-涓嶅寘鍚�,1-鍖呭惈
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PageRegionInfoResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PageRegionInfoResponse.java
index 5fc0814..af9fe47 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PageRegionInfoResponse.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PageRegionInfoResponse.java
@@ -11,10 +11,10 @@
 public class PageRegionInfoResponse {
 
      @ApiModelProperty(value = "鍖哄煙鍞竴鏍囪瘑鐮�")
-     private String regionIndexCode;//	 Body 	 String 	 false 	 鍖哄煙鍞竴鏍囪瘑鐮�
+     private String indexCode;//	 Body 	 String 	 false 	 鍖哄煙鍞竴鏍囪瘑鐮�
 
      @ApiModelProperty(value = "鍖哄煙鍚嶇О")
-     private String regionName 	;// Body 	 String 	 false 	 鍖哄煙鍚嶇О
+     private String name 	;// Body 	 String 	 false 	 鍖哄煙鍚嶇О
 
      @ApiModelProperty(value = "鐖跺尯鍩熷敮涓�鏍囪瘑鐮�")
      private String parentIndexCode ;//	 Body 	 String 	 false 	 鐖跺尯鍩熷敮涓�鏍囪瘑鐮�
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/RuleEventSearchDataResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/RuleEventSearchDataResponse.java
new file mode 100644
index 0000000..018dfc8
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/RuleEventSearchDataResponse.java
@@ -0,0 +1,49 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+@Data
+public class RuleEventSearchDataResponse {
+   private String model_data_id;//	String	false	id
+   private String update_time;//	String	false	鏇存柊鏃堕棿
+   private String create_time;//	String	false	鍒涘缓鏃堕棿
+   private String biz_id;//	String	false	biz_id
+   private String event_id;//	String	false	event_id
+   private String rule_event_id;//	String	false	rule_event_id
+   private String rule_event_type;//	Number	false	rule_event_type
+   private String rule_event_category;//	String	false	rule_event_category
+   private String rule_event_name;//	String	false	鍚嶇О
+   private String src_index_code;//	String	false	缂栫爜
+   private String src_type;//	String	false	璁惧绫诲瀷
+   private String src_name;//	String	false	璁惧鍚嶇О
+   private String ability;//	String	false	ability
+   private String level;//	Number	false	绛夌骇
+   private String level_name;//	String	false	鐧昏鍚嶇О
+   private String event_type;//	String	false	浜嬩欢鐮�
+   private String event_type_name;//	String	false	浜嬩欢鍚嶇О
+   private String region_index_code;//	String	false	鍖哄煙缂栫爜
+   private String region_name;//	String	false	鍖哄煙鍚嶇О
+   private String happen_time;//	String	false	鍙戠敓鏃堕棿
+   private String handle_status;//	Number	false	澶勭疆鐘舵��
+   private String handle_status_name;//	String	false	澶勭姸鎬佸悕绉�
+   private String rule_id;//	String	false	rule_id
+   private String rule_name;//	String	false	鍛ㄧ晫鍏ヤ镜閫氱煡鐩戞帶涓績
+   private String status;//	Number	false	鐘舵��
+   private String linkage_other_info;//	String	false	linkage_other_info
+   private String report_from;//	Number	false	report_from
+   private String report_from_name;//	String	false	璁惧
+   private String plan_execute_status;//	Number	false	plan_execute_status
+   private String image_server_code;//	String	false	image_server_code
+   private String image_url;//	String	false	鍥剧墖
+   private String app_id;//	String	false	app_id
+   private String flow_id;//	Number	false	flow_id
+   private String flow_name;//	String	false	棰勭疆娴佺▼
+   private String node_id;//	String	false	node_id
+   private String node_name;//	String	false	浜嬩欢鐮斿垽
+   private String from_cascade;//	Number	false	from_cascade
+   private String level_color;//	String	false	level_color
+   private String plan_exec_status;//	String	false	plan_exec_status
+   @JsonProperty(value = "_image_url")
+   private String imgurl;//	String	false	鏈夋晥鍥剧墖鍦板潃
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/RuleEventSearchResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/RuleEventSearchResponse.java
new file mode 100644
index 0000000..c34f400
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/RuleEventSearchResponse.java
@@ -0,0 +1,12 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class RuleEventSearchResponse {
+   private String hasNext;//	String	false	id
+   private List<RuleEventSearchDataResponse> list;
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/SecureDevStatusListResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/SecureDevStatusListResponse.java
new file mode 100644
index 0000000..b2dec3d
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/SecureDevStatusListResponse.java
@@ -0,0 +1,13 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+@Data
+public class SecureDevStatusListResponse {
+
+   private String devType	;//String	false	璁惧绫诲瀷
+   private String devTypeName;//	String	false	璁惧鍚嶇О
+   private Integer onlineCount	;//Number	false	鍦ㄧ嚎鏁�
+   private Integer offlineCount	;//Number	false	绂荤嚎鏁�
+   private String onlinePercent	;//String	false	鍦ㄧ嚎鐜�
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/SecureDevStatusTotalResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/SecureDevStatusTotalResponse.java
new file mode 100644
index 0000000..8202ccd
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/SecureDevStatusTotalResponse.java
@@ -0,0 +1,10 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+@Data
+public class SecureDevStatusTotalResponse {
+   private String name	;//String	false	鍦ㄧ嚎/绂荤嚎
+private String value	;//	String	false	鏁伴噺
+private String valueColor	;//	String	false	棰滆壊
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
index 69c2337..edd3631 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
@@ -1524,6 +1524,60 @@
         return  null;
     }
     /**
+     *瀹夐槻鐪嬫澘-浠婃棩鍛婅浜嬩欢-鏍规嵁eventType瀛楁3
+     * @return
+     */
+    public  static  BaseResponse< RuleEventSearchResponse>   ruleEventSearch(RuleEventSearchRequest param){
+        log.info("銆愭捣搴峰畨闃茬湅鏉�-浠婃棩鍛婅浜嬩欢-鏍规嵁eventType瀛楁3銆�================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            String res = HKTools.ruleEventSearch(JSONObject.toJSONString(param));
+            TypeReference typeReference =
+                    new TypeReference< BaseResponse<RuleEventSearchResponse> >(){};
+            BaseResponse<RuleEventSearchResponse>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"娴峰悍瀹夐槻鐪嬫澘-浠婃棩鍛婅浜嬩欢-鏍规嵁eventType瀛楁3");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴峰畨闃茬湅鏉�-浠婃棩鍛婅浜嬩欢-鏍规嵁eventType瀛楁3銆�================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+    /**
+     *缁熻鍥尯鎬讳綋鐨勫畨闃茶澶囨暟閲忥紝鍦ㄧ嚎鏁般�佸湪绾跨巼銆佺绾挎暟銆佺绾跨巼
+     * @return
+     */
+    public  static  BaseResponse<List<SecureDevStatusTotalResponse>>   getSecureDevStatusTotal(SecureDevStatusTotalRequest param){
+        log.info("銆愭捣搴风粺璁″洯鍖烘�讳綋鐨勫畨闃茶澶囨暟閲忥紝鍦ㄧ嚎鏁般�佸湪绾跨巼銆佺绾挎暟銆佺绾跨巼銆�================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            String res = HKTools.getSecureDevStatusTotal(JSONObject.toJSONString(param));
+            TypeReference typeReference =
+                    new TypeReference< BaseResponse<List<SecureDevStatusTotalResponse>> >(){};
+            BaseResponse<List<SecureDevStatusTotalResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"娴峰悍缁熻鍥尯鎬讳綋鐨勫畨闃茶澶囨暟閲忥紝鍦ㄧ嚎鏁般�佸湪绾跨巼銆佺绾挎暟銆佺绾跨巼");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴风粺璁″洯鍖烘�讳綋鐨勫畨闃茶澶囨暟閲忥紝鍦ㄧ嚎鏁般�佸湪绾跨巼銆佺绾挎暟銆佺绾跨巼銆�================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+    /**
+     *瀹夐槻鐪嬫澘-鍥尯瀹夐槻璁惧-鍚勭被鍨嬭澶囩姸鎬佹暟鎹垪琛�
+     * @return
+     */
+    public  static  BaseResponse<List<SecureDevStatusListResponse>>   getSecureDevStatusList(SecureDevStatusTotalRequest param){
+        log.info("銆愭捣搴峰畨闃茬湅鏉�-鍥尯瀹夐槻璁惧-鍚勭被鍨嬭澶囩姸鎬佹暟鎹垪琛ㄣ��================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            String res = HKTools.getSecureDevStatusList(JSONObject.toJSONString(param));
+            TypeReference typeReference =
+                    new TypeReference< BaseResponse<List<SecureDevStatusListResponse>> >(){};
+            BaseResponse<List<SecureDevStatusListResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"娴峰悍瀹夐槻鐪嬫澘-鍥尯瀹夐槻璁惧-鍚勭被鍨嬭澶囩姸鎬佹暟鎹垪琛�");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴峰畨闃茬湅鏉�-鍥尯瀹夐槻璁惧-鍚勭被鍨嬭澶囩姸鎬佹暟鎹垪琛ㄣ��================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+    /**
      *鏍规嵁鐢ㄦ埛鏍囪瘑鑾峰彇瀹㈡埛绔疶GC鎺ュ彛
      * @return
      */
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformGroupMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformGroupMapper.java
index 435323f..c37f94c 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformGroupMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformGroupMapper.java
@@ -2,11 +2,12 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.doumee.dao.business.model.PlatformGroup;
+import com.github.yulichang.base.MPJBaseMapper;
 
 /**
  * @author 姹熻箘韫�
  * @date 2024/06/28 10:03
  */
-public interface PlatformGroupMapper extends BaseMapper<PlatformGroup> {
+public interface PlatformGroupMapper extends MPJBaseMapper<PlatformGroup> {
 
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformGroup.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformGroup.java
index 1eea899..8d1c79b 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformGroup.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformGroup.java
@@ -10,6 +10,8 @@
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 
@@ -90,4 +92,10 @@
     @ApiModelProperty(value = "宸茬鍒版帓闃熻溅杈�", example = "1")
     @TableField(exist = false)
     private List<PlatformJob> signJobList;
+    @ApiModelProperty(value = "璁″垝鏀惰揣鏁伴噺(wms)", example = "1")
+    @TableField(exist = false)
+    private BigDecimal totalNum;
+    @ApiModelProperty(value = "璁″垝鏀惰揣鏁伴噺(闈瀢ms)", example = "1")
+    @TableField(exist = false)
+    private BigDecimal ortherTotalNum;
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWmsDetail.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWmsDetail.java
index 0581eef..2aad579 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWmsDetail.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWmsDetail.java
@@ -92,7 +92,13 @@
     @ApiModelProperty(value = "鏈堝垎缁勫悕绉�" ,hidden = true)
     @TableField(exist = false)
     private String groupName ;
+    @ApiModelProperty(value = "鏈堝垎缁勭紪鐮�" ,hidden = true)
+    @TableField(exist = false)
+    private Integer groupId ;
     @ApiModelProperty(value = "浣滀笟瀹屾垚鏃堕棿锛堟渶缁堟椂闂达級")
     @TableField(exist = false)
     private Date doneDate;
+    @ApiModelProperty(value = "璁″垝鏀惰揣鏁伴噺(闈瀢ms)", example = "1")
+    @TableField(exist = false)
+    private BigDecimal ortherIoQty;
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/RegionTreeVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/RegionTreeVO.java
index acf2c66..9436d99 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/RegionTreeVO.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/RegionTreeVO.java
@@ -42,13 +42,25 @@
         for (PageRegionInfoResponse treeNode : nodeList){
             // 鍒ゆ柇褰撳墠鑺傜偣鏄惁涓烘牴鑺傜偣锛屾澶勬敞鎰忥細鑻arentId绫诲瀷鏄疭tring锛屽垯瑕侀噰鐢╡quals()鏂规硶鍒ゆ柇銆�
             if (Objects.isNull(treeNode.getParentIndexCode())
-                    || StringUtils.equals(treeNode.getParentIndexCode(),"null")) {
+                    || StringUtils.equals(treeNode.getParentIndexCode(),"null")
+                    || !isValidParentCode(treeNode.getParentIndexCode(),nodeList)) {
                 // 鏄紝娣诲姞
                 rootNodeList.add(treeNode);
             }
 
         }
         return rootNodeList;
+    }
+
+    private boolean isValidParentCode(String parentIndexCode, List<PageRegionInfoResponse> nodeList) {
+        for (PageRegionInfoResponse treeNode : nodeList){
+            // 鍒ゆ柇褰撳墠鑺傜偣鏄惁涓烘牴鑺傜偣锛屾澶勬敞鎰忥細鑻arentId绫诲瀷鏄疭tring锛屽垯瑕侀噰鐢╡quals()鏂规硶鍒ゆ柇銆�
+            if ( StringUtils.equals(treeNode.getIndexCode(),parentIndexCode)) {
+                return true;
+            }
+
+        }
+        return false;
     }
 
 
@@ -59,7 +71,7 @@
     public List<PageRegionInfoResponse> buildTree(){
         // treeNodes锛氫繚瀛樹竴涓《绾ц妭鐐规墍鏋勫缓鍑烘潵鐨勫畬鏁存爲褰�
         List<PageRegionInfoResponse> treeNodes = new ArrayList<PageRegionInfoResponse>();
-        // getRootNode()锛氳幏鍙栨墍鏈夌殑鏍硅妭鐐�
+         getRootNode();//锛氳幏鍙栨墍鏈夌殑鏍硅妭鐐�
         for (PageRegionInfoResponse treeRootNode : getRootNode()) {
             // 灏嗛《绾ц妭鐐硅繘琛屾瀯寤哄瓙鏍�
             treeRootNode = buildChildTree(treeRootNode);
@@ -79,7 +91,7 @@
         // nodeList锛氭墍鏈夎妭鐐归泦鍚堬紙鎵�鏈夋暟鎹級
         for (PageRegionInfoResponse treeNode : nodeList) {
             // 鍒ゆ柇褰撳墠鑺傜偣鐨勭埗鑺傜偣ID鏄惁绛変簬鏍硅妭鐐圭殑ID锛屽嵆褰撳墠鑺傜偣涓哄叾涓嬬殑瀛愯妭鐐�
-                if (!Objects.isNull(treeNode.getParentIndexCode())&&treeNode.getParentIndexCode().equals(pNode.getRegionIndexCode())) {
+                if (!Objects.isNull(treeNode.getParentIndexCode())&&treeNode.getParentIndexCode().equals(pNode.getIndexCode())) {
                     // 鍐嶉�掑綊杩涜鍒ゆ柇褰撳墠鑺傜偣鐨勬儏鍐碉紝璋冪敤鑷韩鏂规硶
                     childTree.add(buildChildTree(treeNode));
                 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/WaningEventDataVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/WaningEventDataVO.java
new file mode 100644
index 0000000..a901e61
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/WaningEventDataVO.java
@@ -0,0 +1,30 @@
+package com.doumee.dao.web.response.platformReport;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 鍥尯瀹夐槻璁惧
+ *
+ * @Author : Rk
+ * @create 2024/10/25 10:59
+ */
+@Data
+public class WaningEventDataVO {
+
+    @ApiModelProperty(value = "鏍囬")
+    private String title;
+    @ApiModelProperty(value = "鍥剧墖鍦板潃")
+    private String img;
+    @ApiModelProperty(value = "鏃堕棿")
+    private String createDate;
+
+    @ApiModelProperty(value = "鍙戠敓鍦扮偣")
+    private String  addr;
+    @ApiModelProperty(value = "鍐呭")
+    private String  content;
+
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
index 271cc27..6c229ad 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
@@ -799,7 +799,7 @@
                     .last(" limit 1 ")
             );
             if(Objects.nonNull(lastBeginPlatform)){
-                String v = Long.toString(System.currentTimeMillis() - lastBeginPlatform.getCreateDate().getTime() / 1000) ;
+                String v = Long.toString((System.currentTimeMillis() - lastBeginPlatform.getCreateDate().getTime() )/ 1000) ;
                 optTime = optTime + Long.valueOf(v);
             }
         }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
index 2e64ef8..0be4d8b 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
@@ -8,11 +8,11 @@
 import com.doumee.core.haikang.model.param.BaseListPageResponse;
 import com.doumee.core.haikang.model.param.BaseResponse;
 import com.doumee.core.haikang.model.param.BaseListPageRequest;
+import com.doumee.core.haikang.model.param.request.RuleEventFiledOptionsRequest;
+import com.doumee.core.haikang.model.param.request.RuleEventSearchRequest;
+import com.doumee.core.haikang.model.param.request.SecureDevStatusTotalRequest;
 import com.doumee.core.haikang.model.param.request.SensorStatusListRequest;
-import com.doumee.core.haikang.model.param.respose.PageCameraInfoResponse;
-import com.doumee.core.haikang.model.param.respose.PageFireChannelInfoResponse;
-import com.doumee.core.haikang.model.param.respose.PageRegionInfoResponse;
-import com.doumee.core.haikang.model.param.respose.PageSensorStatusResponse;
+import com.doumee.core.haikang.model.param.respose.*;
 import com.doumee.core.haikang.service.HKService;
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.utils.Constants;
@@ -52,6 +52,8 @@
     private PlatformWmsDetailMapper platformWmsDetailMapper;
     @Autowired
     private PlatformMapper platformMapper;
+    @Autowired
+    private PlatformGroupMapper platformGroupMapper;
     /**
      * 鑾峰彇鍖哄煙鏍戝舰缁撴瀯鏁版嵁
      * @return
@@ -95,7 +97,7 @@
         if(carmeraListVOList!=null && carmeraListVOList.size()>0){
             for(PageRegionInfoResponse p : allList){
                 for(CarmeraListVO c : carmeraListVOList){
-                    if(StringUtils.equals(p.getRegionIndexCode(),c.getReginCode())
+                    if(StringUtils.equals(p.getIndexCode(),c.getReginCode())
                             && (StringUtils.contains(c.getName(),name) ||StringUtils.isBlank(name))){
                         if(p.getCarmeraList()==null){
                             p.setCarmeraList(new ArrayList<>());
@@ -248,28 +250,42 @@
     @Override
     public  List<PlatformGroupFinishVO> platformGroupFinish(){
         List<PlatformGroupFinishVO> data = new ArrayList<>();
-        List<PlatformWmsDetail> jobList = platformWmsDetailMapper.selectJoinList(PlatformWmsDetail.class, new MPJLambdaWrapper<PlatformWmsDetail>()
-                .selectSum( PlatformWmsDetail::getIoQty)
-                .selectAs(PlatformGroup::getName, PlatformWmsDetail::getGroupName)
-                .leftJoin(PlatformJob.class,PlatformJob::getId,PlatformWmsDetail::getJobId)
-                .rightJoin(PlatformGroup.class,PlatformGroup::getId,PlatformJob::getPlatformGroupId)
-                .eq(PlatformWmsDetail::getIsdeleted, Constants.ZERO)
-                .eq(PlatformJob::getIsdeleted, Constants.ZERO)
-                .in(PlatformJob::getStatus, Constants.PlatformJobStatus.DONE.getKey()
-                        , Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()
-                        , Constants.PlatformJobStatus.LEAVED.getKey())
-                .apply("to_days(t1.create_date) = to_days(now())")
-                .groupBy(PlatformGroup::getId)
+        List<PlatformGroup> groups = platformGroupMapper.selectJoinList(PlatformGroup.class, new MPJLambdaWrapper<PlatformGroup>()
+                .select("(select sum(a.TOTAL_NUM) from platform_job a where a.PLATFORM_GROUP_ID=t.id and a.isdeleted=0   and a.status in(6,9,10) and to_days(a.done_date) = to_days(now()))",PlatformGroup::getOrtherTotalNum)
+                .selectAll(PlatformGroup.class)
+                .eq(PlatformGroup::getIsdeleted,Constants.ZERO)
         );
-        if(jobList!=null){
-            for(PlatformWmsDetail d : jobList){
+        if(groups!=null && groups.size()>0){
+            List<PlatformWmsDetail> jobList = platformWmsDetailMapper.selectJoinList(PlatformWmsDetail.class, new MPJLambdaWrapper<PlatformWmsDetail>()
+                    .selectSum( PlatformWmsDetail::getIoQty)
+                    .selectAs(PlatformGroup::getId, PlatformWmsDetail::getGroupId)
+                    .leftJoin(PlatformJob.class,PlatformJob::getId,PlatformWmsDetail::getJobId)
+                    .eq(PlatformWmsDetail::getIsdeleted, Constants.ZERO)
+                    .eq(PlatformJob::getIsdeleted, Constants.ZERO)
+                    .in(PlatformJob::getStatus, Constants.PlatformJobStatus.DONE.getKey()
+                            , Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()
+                            , Constants.PlatformJobStatus.LEAVED.getKey())
+                    .apply("to_days(t1.create_date) = to_days(now())")
+                    .groupBy(PlatformJob::getPlatformGroupId)
+            );
+            for(PlatformGroup d : groups){
                 PlatformGroupFinishVO t = new PlatformGroupFinishVO();
-                t.setFinishData(Constants.formatBigdecimal(d.getIoQty()).intValue());
-                t.setPlatformGroupName(d.getGroupName());
+                if(jobList!=null){
+                    for(PlatformWmsDetail dd : jobList){
+                      if(Constants.equalsInteger(dd.getGroupId(),d.getId())){
+                          d.setTotalNum(dd.getIoQty());
+                      }
+                    }
+                }
+                t.setFinishData(Constants.formatBigdecimal(d.getTotalNum()).intValue()+Constants.formatBigdecimal(d.getOrtherTotalNum()).intValue());
+                t.setPlatformGroupName(d.getName());
+                data.add(t);
             }
         }
+
         return data;
     }
+
     @Override
     public  CarWorkSituationVO carWorkSituation(int limit){
         CarWorkSituationVO carWorkSituationVO = new CarWorkSituationVO();
@@ -279,6 +295,61 @@
         );
         carWorkSituationVO.setPlatformLogList(platformLogList);
         return carWorkSituationVO;
+    }
+    @Override
+    public  List<SecurityDeviceDataVO> securityDeviceData(){
+        List<SecurityDeviceDataVO> list = new ArrayList<>();
+        BaseResponse<List<SecureDevStatusListResponse>> result = HKService.getSecureDevStatusList(new SecureDevStatusTotalRequest()) ;
+        if(result!=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE) && result.getData()!=null){
+            List<SecureDevStatusListResponse> rlist = result.getData();
+            for(SecureDevStatusListResponse r :rlist){
+                SecurityDeviceDataVO data = new SecurityDeviceDataVO();
+                data.setDeviceType(r.getDevTypeName());
+                data.setOnlineNum(r.getOnlineCount());
+                data.setOfflineDeviceNum(r.getOfflineCount());
+                data.setTotalNum(data.getOnlineNum() + data.getOfflineDeviceNum() );
+                list.add(data);
+            }
+        }
+        /*
+        Random random = new Random();
+        for (int i = 1; i <= 3; i++) {
+            SecurityDeviceDataVO data = new SecurityDeviceDataVO();
+            data.setDeviceType("璁惧绫诲瀷_"+i);
+            data.setOnlineNum(random.nextInt(10));
+            data.setOfflineDeviceNum(random.nextInt(10));
+            data.setTotalNum(data.getOnlineNum() + data.getOfflineDeviceNum() );
+            list.add(data);
+        }*/
+        return list;
+    }
+    @Override
+    public  List<WaningEventDataVO> warningEventData(Integer type){
+        List<WaningEventDataVO> list = new ArrayList<>();
+        RuleEventSearchRequest request = new RuleEventSearchRequest();
+        request.setFiledOptions(new ArrayList<>());
+        RuleEventFiledOptionsRequest file = new RuleEventFiledOptionsRequest();
+        file.setFieldName("event_type");
+        file.setFieldValue("131588");//瀹夐槻鍛婅
+        file.setType("eq");
+        request.getFiledOptions().add(file);
+        BaseResponse< RuleEventSearchResponse> result = HKService.ruleEventSearch(request);
+        if(result!=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE) && result.getData()!=null){
+            List<RuleEventSearchDataResponse> rlist = result.getData().getList();
+            if(rlist!=null){
+                for(RuleEventSearchDataResponse r :rlist){
+                    WaningEventDataVO data = new WaningEventDataVO();
+                    data.setAddr(r.getSrc_name());
+                    data.setImg(r.getImage_url());
+                    data.setTitle(r.getEvent_type_name());
+                    data.setCreateDate(r.getCreate_time());
+//                data.setContent(r.get);
+                    list.add(data);
+                }
+            }
+
+        }
+        return list;
     }
 
     @Override
@@ -328,7 +399,7 @@
                     }else{
                         platformDurationVO.setWorkType(Constants.ZERO);//濡傛灉鏄嵏璐�
                     }
-                    Integer workMinute = job.getWorkNum().multiply(new BigDecimal(60)).divide(model.getWorkRate(),0,BigDecimal.ROUND_HALF_UP).intValue();
+                    Integer workMinute = Constants.formatBigdecimal(job.getWorkNum()).multiply(new BigDecimal(60)).divide(model.getWorkRate(),0,BigDecimal.ROUND_HALF_UP).intValue();
                     Date overDate = DateUtil.getXMinuteAfterDate(job.getNewStartDate(),workMinute + model.getWorkTimeoutAlarmTime());//棰勮瀹屾垚鏃堕棿
                     platformDurationVO.setFinishTimeStr(DateUtil.DateToStr(overDate,"HH:mm"));
 
@@ -374,7 +445,22 @@
     public   List<WorkEfficiencyVO> workEfficiency(Integer type){
         //浣滀笟绫诲瀷 0鑷湁杞﹀嵏璐� 1鑷湁杞﹁璐� 2澶栧崗杞﹀嵏璐� 3澶栧崗杞﹁璐� 4甯傚叕鍙稿鍗忚溅鍗歌揣
         List<WorkEfficiencyVO> workEfficiencyVOList = new ArrayList<>();
-        List<PlatformWmsDetail> jobList = platformWmsDetailMapper.selectJoinList(PlatformWmsDetail.class, new MPJLambdaWrapper<PlatformWmsDetail>()
+        List<PlatformJob> jobList = platformJobMapper.selectJoinList(PlatformJob.class, new MPJLambdaWrapper<PlatformJob>()
+                .selectAll( PlatformJob.class)
+                .select("(select sum(ifnull(a.io_qty,0)) from platform_wms_detail a where a.isdeleted=0 and a.job_id =t.id )", PlatformJob::getIoQty)
+                .apply("to_days(t.create_date) = to_days(now())")
+                .eq(Platform::getIsdeleted, Constants.ZERO)
+                .in(PlatformJob::getStatus, Constants.PlatformJobStatus.DONE.getKey()
+                        , Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()
+                        , Constants.PlatformJobStatus.LEAVED.getKey())
+                .in(Constants.equalsInteger(type,Constants.ZERO),PlatformJob::getType,new Integer[]{0,2,4})
+                .in(Constants.equalsInteger(type,Constants.ONE),PlatformJob::getType,new Integer[]{1,3})
+
+        );
+        if(jobList==null || jobList.size()==0){
+            return workEfficiencyVOList;
+        }
+  /*      List<PlatformWmsDetail> jobList = platformWmsDetailMapper.selectJoinList(PlatformWmsDetail.class, new MPJLambdaWrapper<PlatformWmsDetail>()
                 .selectAll( PlatformWmsDetail.class)
                 .selectAs( PlatformJob::getDoneDate,PlatformWmsDetail::getDoneDate)
                 .leftJoin(PlatformJob.class,PlatformJob::getId,PlatformWmsDetail::getJobId)
@@ -386,28 +472,30 @@
                         , Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()
                         , Constants.PlatformJobStatus.LEAVED.getKey())
                 .apply("to_days(t1.create_date) = to_days(now())")
-        );
+        );*/
         int curtotalNum = 0;
         Date today =  Utils.Date.getStart(new Date());
         long curTime=0, lastTime=0;
         for (int i = 0; i < 8; i++) {
             lastTime = curTime;//涓婃鐨勬椂闂�
             int curHour = 8+(i*2);
-            long time = curHour*60*60*1000 + today.getTime();
+            curTime = curHour*60*60*1000 + today.getTime();
             WorkEfficiencyVO workEfficiencyVO = new WorkEfficiencyVO();
             workEfficiencyVO.setWorkTime(curHour+":00");
+            workEfficiencyVO.setTotalWorkNum(0);
+            workEfficiencyVO.setWorkNum(0);
             if(jobList!=null && jobList.size()>0){
-                for(PlatformWmsDetail detail : jobList){
-                    if(detail.getDoneDate()!=null && detail.getDoneDate().getTime()<= time){
+                for(PlatformJob detail : jobList){
+                    if(detail.getDoneDate()!=null && detail.getDoneDate().getTime()<= curTime){
                         //褰撳墠閲�
                         if(detail.getDoneDate()!=null && detail.getDoneDate().getTime() > lastTime){
                             //鍖洪棿鍊� 鍙栧疄杩�2灏忔椂鍐呯殑绱鍊�
-                            workEfficiencyVO.setWorkNum(Constants.formatIntegerNum(workEfficiencyVO.getWorkNum())+Constants.formatBigdecimal(detail.getIoQty()).intValue());
+                            workEfficiencyVO.setWorkNum(Constants.formatIntegerNum(workEfficiencyVO.getWorkNum())+Constants.formatBigdecimal(detail.getIoQty()).intValue() +Constants.formatBigdecimal(detail.getTotalNum()).intValue());
+                            //绱Н閲�
                         }
-                        //绱Н閲�
-                        curtotalNum += Constants.formatBigdecimal(detail.getIoQty()).intValue();
                     }
                 }
+                curtotalNum += Constants.formatIntegerNum(workEfficiencyVO.getWorkNum()) ;
             }
             workEfficiencyVO.setTotalWorkNum(curtotalNum);//绱鍊�
             workEfficiencyVOList.add(workEfficiencyVO);
@@ -419,7 +507,7 @@
         List<PlatformDurationVO> platformDurationList = new ArrayList<>();
         List<Platform> jobList = platformMapper.selectJoinList(Platform.class, new MPJLambdaWrapper<Platform>()
                 .selectAll( Platform.class)
-                .select(" ( select ROUND( ifnull(SUM(pl.PARAM3),0)/60  , 2 )   from platform_log pl  where   pl.remark = t.id and to_days(pl.CREATE_DATE) =to_days  now())",Platform::getWorkCountTime)
+                .select(" (select ROUND( SUM(ifnull(pl.PARAM3,0)/60 ) , 2 )   from platform_log pl  where   pl.remark = t.id and to_days(pl.CREATE_DATE) =to_days(now()))",Platform::getWorkCountTime)
                 .eq(Platform::getIsdeleted, Constants.ZERO)
         );
         if(jobList!=null){
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/BoardService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/BoardService.java
index 727d217..c0597f8 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/BoardService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/BoardService.java
@@ -48,4 +48,8 @@
     List<WorkEfficiencyVO> workEfficiency(Integer type);
 
     List<PlatformWorkDataVO> platformWorkData();
+
+    List<SecurityDeviceDataVO> securityDeviceData();
+
+    List<WaningEventDataVO> warningEventData(Integer type);
 }
diff --git a/server/visits/dmvisit_service/src/main/resources/application-dev.yml b/server/visits/dmvisit_service/src/main/resources/application-dev.yml
index 3e35772..0221f4a 100644
--- a/server/visits/dmvisit_service/src/main/resources/application-dev.yml
+++ b/server/visits/dmvisit_service/src/main/resources/application-dev.yml
@@ -1,9 +1,12 @@
 spring:
   # 鏁版嵁婧愰厤缃�
   datasource:
-    url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/antaiwuliu?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
-    username: doumee
-    password: rtjgfEr@&0c0m
+#    url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/antaiwuliu?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
+#    username: doumee
+#    password: rtjgfEr@&0c0m
+    url: jdbc:mysql://10.50.250.253:3306/antaiwuliu?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
+    username: root
+    password: Atwl@2024
     driver-class-name: com.mysql.cj.jdbc.Driver
     type: com.alibaba.druid.pool.DruidDataSource
   redis:

--
Gitblit v1.9.3