From a1647a5152e3d368ec2fb738ca7cc858e220d06c Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期二, 24 九月 2024 09:15:08 +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/request/WxConfigInfoRequest.java          |    9 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/FireDeviceListResponse.java       |   23 +
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/SensorStatusListResponse.java     |   20 +
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/FireDeviceStatusListResponse.java |   24 +
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/SignInDTO.java                                     |    2 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformJobCloudController.java                          |    9 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/NhEventPageListRequest.java       |   17 +
 server/meeting/meeting_service/src/main/resources/application-dev.yml                                                     |    9 
 server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/RoomsServiceImpl.java                       |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java                  |   36 +
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/FireChannelListRequest.java       |   18 +
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java                                |   14 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java                |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java                                |  114 ++++++++
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AuthItemListDetailResponse.java   |   26 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformWarnEventListResponse.java            |    4 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkInterfaceTestCloudController.java                      |  101 +++++++
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/NhEventPageListResponse.java      |   24 +
 server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java                    |   12 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java                                   |    5 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java                                |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformServiceImpl.java                     |  148 ++++++++++
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/FireChannelListResponse.java      |   21 +
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/FireDeviceExpressionRequest.java  |   12 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/FireDeviceStatuslListRequest.java |   19 +
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/FireDeviceListRequest.java        |   18 +
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/SensorStatusListRequest.java      |   15 +
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseListPageResponse.java                 |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/WxConfigInfoResponse.java         |   20 +
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java                                    |   59 ++++
 30 files changed, 740 insertions(+), 50 deletions(-)

diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java b/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
index 30fc1ea..2c39a98 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
@@ -1010,7 +1010,7 @@
         //鍙栨秷浼氳 鍙戦�佸彇娑堥�氱煡
         this.sendNotice(bookings, 3);
         //鍙戦�佸井淇¤闃呴�氱煡
-        sendWxMessage.bookingsCancel(systemUserMapper.selectById(bookings.getCreator()), bookings, roomsMapper.selectById(bookings.getRoomId()));
+//        sendWxMessage.bookingsCancel(systemUserMapper.selectById(bookings.getCreator()), bookings, roomsMapper.selectById(bookings.getRoomId()));
     }
 
 
@@ -1036,7 +1036,7 @@
         if (!bookings.getCreator().equals(businessOverDTO.getUserId()) && userRelList <= 0) {
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "闈炰綘鐨勯绾﹁褰�,鏃犳硶杩涜璇ユ搷浣�");
         }
-        if (System.currentTimeMillis() < bookings.getStartTime().getTime()) {
+        if (System.currentTimeMillis() < bookings.getStartTimeReal().getTime()) {
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "浼氳鏈紑濮�,鏃犳硶杩涜缁撴潫锛屽闇�璇ユ搷浣滆浣跨敤鍙栨秷鍔熻兘");
         }
         if (System.currentTimeMillis() > bookings.getEndTime().getTime()) {
@@ -1133,22 +1133,22 @@
                     .eq(Bookings::getRoomId,bookings.getRoomId())
                     .ne(Bookings::getId,bookings.getId())
             )>Constants.ZERO){
-                throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀛樺湪鏈紑鍚細璁紝鏃犳硶杩涜寮�濮嬩細璁�");
+                throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀛樺湪鏈紑鍚細璁紝鏃犳硶寮�濮嬩細璁�");
             };
 
             if(bookingsMapper.selectCount(new QueryWrapper<Bookings>()
                     .lambda() 
-                    .apply(" (  END_TIME > now() and START_TIME < now() ) or  ( END_TIME > now() and  START_TIME_REAL < now() )  ")
+                    .apply(" ( (  END_TIME > now() and START_TIME < now() ) or  ( END_TIME > now() and  START_TIME_REAL < now() ) ) ")
                     .isNotNull(Bookings::getStartTimeReal)
                     .isNull(Bookings::getDoneDate)
                     .eq(Bookings::getStatus,Constants.ZERO)
                     .eq(Bookings::getRoomId,bookings.getRoomId())
             )>Constants.ZERO){
-                throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠寮�鍚椂闂翠笌鍏朵粬浼氳瀛樺湪鍐茬獊锛屾棤娉曡繘琛屽紑濮嬩細璁�");
+                throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠寮�鍚椂闂翠笌鍏朵粬浼氳瀛樺湪鍐茬獊锛屾棤娉曞紑濮嬩細璁�");
             };
         }else{
             if(bookings.getStartTime().getTime() > System.currentTimeMillis()){
-                throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈埌浼氳鐢宠寮�濮嬫椂闂达紝鏃犳硶杩涜寮�濮�");
+                throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈埌浼氳鐢宠寮�濮嬫椂闂达紝鏃犳硶寮�濮�");
             }
         }
         bookings.setStartTimeReal(new Date());
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/RoomsServiceImpl.java b/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/RoomsServiceImpl.java
index 8ef920e..5a28dcf 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/RoomsServiceImpl.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/RoomsServiceImpl.java
@@ -370,7 +370,7 @@
         Integer re = recordisExist(rooms.getId());
         if (Constants.equalsInteger(re, Constants.ONE)) {
             //瀛樹笅棰勭害璁板綍涓嶅厑璁告洿鏂板紑鏀炬椂闂村拰绮掑害鍒嗛挓
-           // throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "浼氳瀹ゅ瓨鍦ㄩ绾︿腑鐨勮褰曪紝涓嶅厑璁镐慨鏀�");
+//            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "浼氳瀹ゅ瓨鍦ㄩ绾︿腑鐨勮褰曪紝涓嶅厑璁镐慨鏀�");
             rooms.setStartTime(null);
             rooms.setEndTime(null);
             rooms.setIntervalTime(null);
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 05b003f..b524c73 100644
--- a/server/meeting/meeting_service/src/main/resources/application-dev.yml
+++ b/server/meeting/meeting_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.178: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/admin/HkInterfaceTestCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkInterfaceTestCloudController.java
new file mode 100644
index 0000000..da445e9
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkInterfaceTestCloudController.java
@@ -0,0 +1,101 @@
+package com.doumee.cloud.admin;
+
+import com.doumee.api.BaseController;
+import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.config.annotation.CloudRequiredPermission;
+import com.doumee.config.annotation.LoginNoRequired;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.haikang.model.param.BaseResponse;
+import com.doumee.core.haikang.model.param.request.*;
+import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest;
+import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest;
+import com.doumee.core.haikang.model.param.request.event.parks.EventPlatformCarsRequest;
+import com.doumee.core.haikang.model.param.request.event.parks.EventPlatformRequest;
+import com.doumee.core.haikang.model.param.request.event.visit.EventVisitIccmRequest;
+import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest;
+import com.doumee.core.haikang.service.HKService;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.LoginUserInfo;
+import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DESUtil;
+import com.doumee.dao.business.model.Device;
+import com.doumee.service.business.impl.hksync.*;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2023/11/30 15:33
+ */
+@Api(tags = "娴峰悍鏁版嵁鍚屾鎺ュ彛")
+@RestController
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/hktest")
+public class HkInterfaceTestCloudController extends BaseController {
+
+
+    @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
+
+    @ApiOperation("銆愭捣搴枫�戞祴璇昄ED鏄剧ず灞�")
+    @PostMapping("/testLed")
+    @LoginNoRequired
+    public ApiResponse<BaseResponse> testLed(@RequestBody TransparentChannelBodyRequest request, HttpServletResponse response) {
+        TransparentChannelHeadRequest head = new TransparentChannelHeadRequest();
+        head.setAbility("cld");//鍥哄畾鍊�
+        head.setTreatyType("haixuan_led_net");//鍥哄畾鍊�
+        head.setDeviceIndexCode("6a5498e9df924befbb9530e467e5e809");
+        return ApiResponse.success(HKService.transparentchannel(head,request));
+    }
+    @ApiOperation("銆愭捣搴枫�戞祴璇曞箍鎾挱鎶�")
+    @PostMapping("/testBroadcast")
+    @LoginNoRequired
+    public ApiResponse<BaseResponse> testBroadcast(@RequestBody CustomBroadcastRequest request, HttpServletResponse response) {
+        return ApiResponse.success(  HKService.customBroadcast(request));
+    }
+    @ApiOperation("銆愭捣搴枫�戞祴璇曡幏鍙栧井淇″叕浼楀彿")
+    @GetMapping("/testWxToken")
+    @LoginNoRequired
+    public ApiResponse<BaseResponse> testWxToken(@RequestParam String configId,@RequestParam String tageId, HttpServletResponse response) {
+        return ApiResponse.success(  HKService.wxAccessToken(configId,tageId));
+    }
+    @ApiOperation("銆愭捣搴枫�戞祴璇曞垎椤佃幏鍙栧憡璀︿簨浠�")
+    @GetMapping("/nhEventPageList")
+    @LoginNoRequired
+    public ApiResponse<BaseResponse> nhEventPageList(@RequestBody NhEventPageListRequest param, HttpServletResponse response) {
+        return ApiResponse.success(  HKService.nhEventPageList(param));
+    }
+
+    @ApiOperation("銆愭捣搴枫�戝垎椤垫煡璇㈡秷闃蹭紶鎰熷櫒閮ㄤ欢鐘舵��")
+    @GetMapping("/sensorStatusSearch")
+    @LoginNoRequired
+    public ApiResponse<BaseResponse> sensorStatusSearch(@RequestBody SensorStatusListRequest param, HttpServletResponse response) {
+        return ApiResponse.success(  HKService.sensorStatusSearch(param));
+    }
+    @ApiOperation("銆愭捣搴枫�戞煡璇㈡秷闃蹭紶鎰熷櫒鍒楄〃")
+    @GetMapping("/fireChannelSearch")
+    @LoginNoRequired
+    public ApiResponse<BaseResponse> fireChannelSearch(@RequestBody FireChannelListRequest param, HttpServletResponse response) {
+        return ApiResponse.success(  HKService.fireChannelSearch(param));
+    }
+    @ApiOperation("銆愭捣搴枫�戞捣搴疯娑堥槻璁惧鍒楄〃")
+    @GetMapping("/fireDeviceSearch")
+    @LoginNoRequired
+    public ApiResponse<BaseResponse> fireDeviceSearch(@RequestBody FireDeviceListRequest param, HttpServletResponse response) {
+        return ApiResponse.success(  HKService.fireDeviceSearch(param));
+    }
+    @ApiOperation("銆愭捣搴枫�戝垎椤垫煡璇㈡秷闃茶澶囬儴浠剁姸鎬�")
+    @GetMapping("/fireDeviceStatusSearch")
+    @LoginNoRequired
+    public ApiResponse<BaseResponse> fireDeviceStatusSearch(@RequestBody FireDeviceStatuslListRequest param, HttpServletResponse response) {
+        return ApiResponse.success(  HKService.fireDeviceStatusSearch(param));
+    }
+
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformJobCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformJobCloudController.java
index f71d7c1..d115d50 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformJobCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformJobCloudController.java
@@ -10,6 +10,7 @@
 import com.doumee.core.utils.Constants;
 import com.doumee.dao.business.model.PlatformJob;
 import com.doumee.dao.web.reqeust.JobDetailDTO;
+import com.doumee.dao.web.reqeust.SignInDTO;
 import com.doumee.service.business.PlatformJobService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -89,4 +90,12 @@
     public ApiResponse<PlatformJob>  jobDetail (@RequestBody JobDetailDTO jobDetailDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
         return ApiResponse.success(platformJobService.getDetail(jobDetailDTO));
     }
+
+    @ApiOperation("浠诲姟绛惧埌")
+    @PostMapping("/signIn")
+    public ApiResponse  signIn (@RequestBody SignInDTO signInDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+        signInDTO.setLoginUserInfo(getLoginUser(token));
+        platformJobService.signIn(signInDTO);
+        return ApiResponse.success("鎿嶄綔鎴愬姛");
+    }
 }
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 2844c21..733303d 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
@@ -117,11 +117,18 @@
         String[] iccmUpdateAppointment= new String[]{"/api/iccm/v2/appointment/update","iccm璁垮鐧昏淇敼"};//iccm璁垮鐧昏淇敼
         String[] iccmCancelAppointment= new String[]{"/api/iccm/v1/appointment/cancel","iccm璁垮鐧昏淇敼"};//iccm璁垮鐧昏淇敼
         String[] iccmAppointmentMDJ= new String[]{"/api/iccm/v1/appointment/free/registration","iccm璁垮棰勭害鍏嶇櫥璁�"};//iccm璁垮棰勭害鍏嶇櫥璁�
-
         String[] privilegIccmeGroup= new String[]{"/api/iccm/v1/privilege/groups","鏌ヨ璁垮鏉冮檺缁�"};//鏌ヨ璁垮鏉冮檺缁�
         String[] iccmAppointmentRecords= new String[]{"/api/iccm/v2/appointment/records","iccm鏌ヨ宸查绾︾櫥璁�"};//iccm鏌ヨ宸查绾︾櫥璁�
-        String[] wxAccessToken= new String[]{"/api/wx/v1/oa/get/accessToken","iccm鏌ヨ宸查绾︾櫥璁�"};//1.9.1鏍规嵁寰俊鍏紬鍙蜂俊鎭幏鍙朅ccessToken
+        String[] wxAccessToken= new String[]{"/api/wx/v1/oa/get/accessToken","鏍规嵁寰俊鍏紬鍙蜂俊鎭幏鍙朅ccessToken"};//1.9.1鏍规嵁寰俊鍏紬鍙蜂俊鎭幏鍙朅ccessToken
+        String[] getWxConfig= new String[]{"/api/wx/v1/oa/get/config","鏍规嵁閰嶇疆寰俊鍏紬鍙风紪鍙锋煡璇㈠井淇″叕浼楀彿淇℃伅"};//鏍规嵁閰嶇疆寰俊鍏紬鍙风紪鍙锋煡璇㈠井淇″叕浼楀彿淇℃伅
         String[] goMenuUrl= new String[]{"/xauthplus-plugin/thirdLogin?type=third&componentId=Infovision iPark Platform&componentMenuId=${menuId}&token=${token}","宸ヤ綔鍙拌彍鍗曡烦杞湴鍧�"};
+        String[] nhEventPageList= new String[]{"/api/ecm/warning/event/v1/pageList","鍒嗛〉鑾峰彇鍛婅浜嬩欢"};//鍒嗛〉鑾峰彇鍛婅浜嬩欢
+        String[] nhRegionDataRanking= new String[]{"/api/ecm/v1/energy/regionDataRanking","鏍规嵁鏃堕棿缁村害鑾峰彇鍖哄煙鐢ㄩ噺鎺掑悕"};//1.8.5鏍规嵁鏃堕棿缁村害鑾峰彇鍖哄煙鐢ㄩ噺鎺掑悕
+        String[] nhEnergyDistribution= new String[]{"/api/ecm/v1/energy/energyDistribution","鏍规嵁鏃堕棿缁村害鑾峰彇鑳借�楀垎甯�"};// 鏍规嵁鏃堕棿缁村害鑾峰彇鑳借�楀垎甯�
+        String[] fireDeviceSearch= new String[]{"/api/resource/v1/fireDevice/search","璇㈡秷闃茶澶囧垪琛�"};// 1.12.1.1璇㈡秷闃茶澶囧垪琛�
+        String[] fireChannelSearch= new String[]{"/api/resource/v1/fireChannel/search","鏌ヨ娑堥槻浼犳劅鍣ㄥ垪琛�"};// 鏌ヨ娑堥槻浼犳劅鍣ㄥ垪琛�
+        String[] sensorStatusSearch= new String[]{"/api/fpnms/v2/sensor/status/search","鍒嗛〉鏌ヨ娑堥槻浼犳劅鍣ㄩ儴浠剁姸鎬�"};// 鍒嗛〉鏌ヨ娑堥槻浼犳劅鍣ㄩ儴浠剁姸鎬�
+        String[] fireDeviceStatusSearch= new String[]{"/api/fpnms/v2/device/status/search","鏌ヨ娑堥槻璁惧閮ㄤ欢鐘舵��"};// 鏌ヨ娑堥槻璁惧閮ㄤ欢鐘舵��
     }
 
     /**
@@ -139,8 +146,7 @@
 
         // 鏋勯�犳柟娉�
         TASK_TYPE(int key, String name ) {
-            this.name = name;
-            this.key = key;
+            this.name = name;this.key = key;
         }
 
 
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 b230c6a..b9e3b0d 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
@@ -369,6 +369,15 @@
 		return  startDoPostStringArtemis(HKConstants.InterfacePath.visitCancel,body);
 	}
 
+	public static String startDoGetStringArtemis(String[] pathStr,Map<String,String> body ){
+		Map<String, String> path = getPath(pathStr[0]);
+		Map<String, String> header = new HashMap<>();
+		header.put("tagId", UUID.randomUUID().toString().replace("-", ""));
+		String result = ArtemisHttpUtil.doGetArtemis(path, body, null,  "application/json", header);// post璇锋眰application/json绫诲瀷鍙傛暟
+		saveInterfaceLog(JSONObject.toJSONString(body),result,path,pathStr[1]);
+		return result;
+
+	}
 	public static String startDoPostStringArtemis(String[] pathStr,String body ){
 		Map<String, String> path = getPath(pathStr[0]);
 		Map<String, String> header = new HashMap<>();
@@ -563,6 +572,56 @@
 		return startDoPostStringArtemis(wxAccessToken,"");
 	}
 	/**
+	 *	鏍规嵁閰嶇疆寰俊鍏紬鍙风紪鍙锋煡璇㈠井淇″叕浼楀彿淇℃伅
+	 * @param body
+	 * @return
+	 */
+	public static String getWxConfig(Map<String,String>  body) {
+		return startDoGetStringArtemis(HKConstants.InterfacePath.getWxConfig,body);
+	}
+	/**
+	 *	鏍规嵁閰嶇疆寰俊鍏紬鍙风紪鍙锋煡璇㈠井淇″叕浼楀彿淇℃伅
+	 * @param body
+	 * @return
+	 */
+	public static String nhEventPageList(Map<String,String> body) {
+		return startDoGetStringArtemis(HKConstants.InterfacePath.nhEventPageList,body);
+	}
+
+	/**
+	 *	鏌ヨ娑堥槻璁惧閮ㄤ欢鐘舵��
+	 * @param body
+	 * @return
+	 */
+	public static String fireDeviceStatusSearch(Map<String,String> body) {
+		return startDoGetStringArtemis(HKConstants.InterfacePath.fireDeviceStatusSearch,body);
+	}
+	/**
+	 *	鍒嗛〉鏌ヨ娑堥槻浼犳劅鍣ㄩ儴浠剁姸鎬�
+	 * @param body
+	 * @return
+	 */
+	public static String sensorStatusSearch(Map<String,String> body) {
+		return startDoGetStringArtemis(HKConstants.InterfacePath.sensorStatusSearch,body);
+	}
+	/**
+	 *	璇㈡秷闃茶澶囧垪琛�
+	 * @param body
+	 * @return
+	 */
+	public static String fireChannelSearch(Map<String,String> body) {
+		return startDoGetStringArtemis(HKConstants.InterfacePath.fireChannelSearch,body);
+	}
+
+	/**
+	 *	璇㈡秷闃茶澶囧垪琛�
+	 * @param body
+	 * @return
+	 */
+	public static String fireDeviceSearch(Map<String,String> body) {
+		return startDoGetStringArtemis(HKConstants.InterfacePath.fireDeviceSearch,body);
+	}
+	/**
 	 *	鑾峰彇鍏ㄩ噺鐢ㄦ埛鍒楄〃
 	 * @param body
 	 * @return
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseListPageResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseListPageResponse.java
index fd8660b..c750997 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseListPageResponse.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseListPageResponse.java
@@ -1,5 +1,6 @@
 package com.doumee.core.haikang.model.param;
 
+import com.alibaba.fastjson.annotation.JSONField;
 import lombok.Data;
 
 import java.util.List;
@@ -11,5 +12,7 @@
   private int pageSize;//	number	False	姣忛〉璁板綍鎬绘暟
   private int pageNo	;// number	False	褰撳墠椤电爜
   private int totalPage;//	number	False	鎬婚〉鏁�
+
+  @JSONField(name="list",alternateNames = {"rows","records"})
   private List<T> list	;// object[]	False	鏉冮檺缁勫璞″垪琛�
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/FireChannelListRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/FireChannelListRequest.java
new file mode 100644
index 0000000..d81a0dc
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/FireChannelListRequest.java
@@ -0,0 +1,18 @@
+package com.doumee.core.haikang.model.param.request;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class FireChannelListRequest {
+ private String name;//	String	false	鍚嶇О锛屾ā绯婃悳绱紝鏈�澶ч暱搴�32锛岃嫢鍖呭惈涓枃锛屾渶澶ч暱搴︽寚涓嶈秴杩囨寜鐓ф寚瀹氱紪鐮佺殑瀛楄妭闀垮害锛屽嵆getBytes("utf-8").length
+private List<String> regionIndexCodes;//	Array	false	鍖哄煙缂栧彿,鍙互涓虹┖;String[]锛屾敮鎸佹牴鎹尯鍩熸壒閲忔煡璇紱鍖哄煙缂栧彿涓暟<=1000涓紱鍗曚釜闀垮害<=64Byte锛涳紝鍙粠[鏌ヨ鍖哄煙鍒楄〃v2]@[鏅烘収鍥尯绠$悊骞冲彴V1.4.301-API鍒楄〃-璧勬簮鐩綍-鍖哄煙淇℃伅鎺ュ彛#鏌ヨ鍖哄煙鍒楄〃v2]鎺ュ彛鑾峰彇杩斿洖鍙傛暟indexCode
+private Boolean isSubRegion;//	Boolean	false	true鏃讹紝鎼滅储regionIndexCodes鍙婂叾瀛愬瓩鍖哄煙鐨勮祫婧愶紱false鏃讹紝鍙悳绱� regionIndexCodes鐨勮祫婧�
+private int pageNo;//	Number	true	褰撳墠椤电爜
+private int pageSize;//	Number	true	鍒嗛〉澶у皬
+private String orderBy;//	String	false	鎺掑簭瀛楁,娉ㄦ剰锛氭帓搴忓瓧娈靛繀椤绘槸鏌ヨ鏉′欢锛屽惁鍒欒繑鍥炲弬鏁伴敊璇�
+private String orderType;//	String	false	闄嶅簭鍗囧簭,闄嶅簭锛歞esc 鍗囧簭锛歛sc
+private List<FireDeviceExpressionRequest> expressions;//	Array	false	鏌ヨ琛ㄨ揪寮�
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/FireDeviceExpressionRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/FireDeviceExpressionRequest.java
new file mode 100644
index 0000000..d5fca9a
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/FireDeviceExpressionRequest.java
@@ -0,0 +1,12 @@
+package com.doumee.core.haikang.model.param.request;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class FireDeviceExpressionRequest {
+private String key;//	String	false	璧勬簮灞炴�у悕锛宬ey浼爑pdateTime锛宱perator浼燽etween鍙互鏌ヨ鐗瑰畾鏃堕棿娈垫洿鏂扮殑鏁版嵁锛岃�冭檻鍒版牎鏃跺拰澶忎护鏃讹紝寤鸿鍊兼煡璇㈣繃鍘讳竴澶╃殑鏁版嵁鍙樻洿
+private Integer operator;//	Number	false	鎿嶄綔杩愮畻绗︼紝 0 锛�=锛� 1 锛�>=锛� 2 锛�<=锛� 3 锛歩n锛� 4 锛歯ot in锛� 5 锛歜etween锛� 6 锛歭ike锛� 7 锛歱re like锛� 8 锛歴uffix like
+private List<String> values	;//Array	false	璧勬簮灞炴�у�硷紝=銆�>=銆�<=銆乴ike銆乿alues鏁扮粍闀垮害鍙兘鏄�1锛� in銆乶ot in锛寁alues鏁扮粍闀垮害澶т簬1锛屾渶澶т笉瓒呮椂20锛� in_array鐢ㄤ簬鏌ヨkey鍊兼湁澶氫釜value鐨勬儏鍐碉紝渚嬪琛岃溅鐩戞帶娣诲姞鐨勮澶囩被鍨嬩负encodeDevice銆乪ncodeDeviceMss涓や釜绫诲瀷锛屼娇鐢╡ncodeDevice鎴栬�卐ncodeDeviceMss閮藉彲浠ユ煡璇㈠埌锛� between鍙兘鐢ㄤ簬鏁村舰銆佹棩鏈� 锛� like鍙兘鐢ㄤ簬瀛楃涓层��
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/FireDeviceListRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/FireDeviceListRequest.java
new file mode 100644
index 0000000..e76bd96
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/FireDeviceListRequest.java
@@ -0,0 +1,18 @@
+package com.doumee.core.haikang.model.param.request;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class FireDeviceListRequest {
+ private String name;//	String	false	鍚嶇О锛屾ā绯婃悳绱紝鏈�澶ч暱搴�32锛岃嫢鍖呭惈涓枃锛屾渶澶ч暱搴︽寚涓嶈秴杩囨寜鐓ф寚瀹氱紪鐮佺殑瀛楄妭闀垮害锛屽嵆getBytes("utf-8").length
+private List<String> regionIndexCodes;//	Array	false	鍖哄煙缂栧彿,鍙互涓虹┖;String[]锛屾敮鎸佹牴鎹尯鍩熸壒閲忔煡璇紱鍖哄煙缂栧彿涓暟<=1000涓紱鍗曚釜闀垮害<=64Byte锛涳紝鍙粠[鏌ヨ鍖哄煙鍒楄〃v2]@[鏅烘収鍥尯绠$悊骞冲彴V1.4.301-API鍒楄〃-璧勬簮鐩綍-鍖哄煙淇℃伅鎺ュ彛#鏌ヨ鍖哄煙鍒楄〃v2]鎺ュ彛鑾峰彇杩斿洖鍙傛暟indexCode
+private Boolean isSubRegion;//	Boolean	false	true鏃讹紝鎼滅储regionIndexCodes鍙婂叾瀛愬瓩鍖哄煙鐨勮祫婧愶紱false鏃讹紝鍙悳绱� regionIndexCodes鐨勮祫婧�
+private int pageNo;//	Number	true	褰撳墠椤电爜
+private int pageSize;//	Number	true	鍒嗛〉澶у皬
+private String orderBy;//	String	false	鎺掑簭瀛楁,娉ㄦ剰锛氭帓搴忓瓧娈靛繀椤绘槸鏌ヨ鏉′欢锛屽惁鍒欒繑鍥炲弬鏁伴敊璇�
+private String orderType;//	String	false	闄嶅簭鍗囧簭,闄嶅簭锛歞esc 鍗囧簭锛歛sc
+private List<FireDeviceExpressionRequest> expressions;//	Array	false	鏌ヨ琛ㄨ揪寮�
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/FireDeviceStatuslListRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/FireDeviceStatuslListRequest.java
new file mode 100644
index 0000000..e410c80
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/FireDeviceStatuslListRequest.java
@@ -0,0 +1,19 @@
+package com.doumee.core.haikang.model.param.request;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class FireDeviceStatuslListRequest {
+private Integer includeSubNode	;//Number	true	鏄惁鍖呭惈涓嬬骇 (1-鍖呭惈, 0-涓嶅寘鍚�)
+private String regionIndexCode	;//String	true	鎵�灞炲尯鍩焛ndexCode锛屾牴鎹甗鏌ヨ鍖哄煙鍒楄〃v2]@[鏅烘収鍥尯绠$悊骞冲彴V1.4.301-API鍒楄〃-璧勬簮鐩綍-鍖哄煙淇℃伅鎺ュ彛#鏌ヨ鍖哄煙鍒楄〃v2]鎺ュ彛鑾峰彇杩斿洖鎶ユ枃涓殑indexCode瀛楁
+private String deviceName	;//String	false	璁惧鍚嶇О
+private Integer deviceType	;//Number	false	娑堥槻璁惧绫诲瀷锛岃瑙乕闄勫綍A.55 娑堥槻璁惧绫诲瀷]@[鏅烘収鍥尯绠$悊骞冲彴V1.4.301-闄勫綍-闄勫綍A 鏁版嵁瀛楀吀#闄勫綍A.55 娑堥槻璁惧绫诲瀷]
+private Integer online	;//Number	false	鍦ㄧ嚎鐘舵�� 0-绂荤嚎 1-鍦ㄧ嚎 绌�-鎵�鏈夌姸鎬�
+private Integer unitStatus	;//Number	false	閮ㄤ欢鐘舵�侊紝0锛氭湭娉ㄥ唽 1锛氭甯� 2: 淇涓� 3锛氬紓甯哥姸鎬侊紙淇涓姸鎬佺洰鍓嶆病鐢ㄥ埌锛屾湭娉ㄥ唽鏃惰澶囨病鏈夊湪绂荤嚎鐘舵�侊級 绌�-鎵�鏈夌姸鎬�
+private String deviceIndexCode	;//String	false	璁惧缂栧彿锛屾牴鎹甗鏌ヨ娑堥槻璁惧鍒楄〃]@[鏅烘収鍥尯绠$悊骞冲彴V1.4.301-API鍒楄〃-鎶ヨ妫�娴�-娑堥槻搴旂敤鏈嶅姟-娑堥槻鍔熻兘鎺ュ彛#鏌ヨ娑堥槻璁惧鍒楄〃]鎺ュ彛鑾峰彇杩斿洖鎶ユ枃涓殑devSerialNum瀛楁
+private Integer pageNo	;//Number	true	鐩爣椤电爜锛岄粯璁や粠1寮�濮嬶紝琛ㄧず绗竴椤�
+private Integer pageSize;//	Number	true	姣忛〉璁板綍鏁帮紝姣忛〉鏈�澶ф暟閲�1000,榛樿20
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/NhEventPageListRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/NhEventPageListRequest.java
new file mode 100644
index 0000000..de2a985
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/NhEventPageListRequest.java
@@ -0,0 +1,17 @@
+package com.doumee.core.haikang.model.param.request;
+
+import lombok.Data;
+
+@Data
+public class NhEventPageListRequest {
+
+    private String   warningName	;//Query	String	false	棰勫憡璀﹀悕绉�
+    private String   nodeName	;//Query	String	false	鐩戞祴瀵硅薄
+    private String   warningLevel	;//Query	Number	true	棰勫憡璀︾瓑绾э紝0锛氬叏閮紝1锛氫竴鑸紝2锛氫弗閲嶏紝3锛氭晠闅�
+    private String   ruleTypeId	;//Query	String	false	棰勫憡璀︾被鍨婭D锛屼负绌烘椂琛ㄧず鎵�鏈�
+    private String   startDate	;//Query	String	false	鍙戠敓鏃堕棿寮�濮嬫椂闂�
+    private String   endDate;//	Query	String	false	鍙戠敓鏃堕棿缁撴潫鏃堕棿
+    private String   handleStatus;//	Query	String	false	澶勭悊鐘舵�侊細0锛氬叏閮紝1锛氭湭澶勭悊锛�2锛氬凡澶勭悊
+    private int   pageNo;//	Query	Number	false	椤电爜
+    private int   pageSize;//	Query	Number	false	椤靛ぇ灏�
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/SensorStatusListRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/SensorStatusListRequest.java
new file mode 100644
index 0000000..2832eff
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/SensorStatusListRequest.java
@@ -0,0 +1,15 @@
+package com.doumee.core.haikang.model.param.request;
+
+import lombok.Data;
+
+@Data
+public class SensorStatusListRequest {
+    private Integer includeSubNode;//	Number	true	鏄惁鍖呭惈涓嬬骇 (1-鍖呭惈銆�0-涓嶅寘鍚�)
+    private String regionIndexCode	;//String	true	鎵�灞炲尯鍩焛ndexCode锛屾牴鎹甗鏌ヨ鍖哄煙鍒楄〃v2]@[鏅烘収鍥尯绠$悊骞冲彴V1.4.301-API鍒楄〃-璧勬簮鐩綍-鍖哄煙淇℃伅鎺ュ彛#鏌ヨ鍖哄煙鍒楄〃v2]鎺ュ彛鑾峰彇杩斿洖鎶ユ枃涓殑indexCode瀛楁
+    private String cn	;//String	false	浼犳劅鍣ㄥ悕绉�
+    private Integer channelType;//	Number	false	浼犳劅鍣ㄧ被鍨嬶紝璇﹁[闄勫綍A.57 娑堥槻浼犳劅鍣ㄥぇ绫诲瀷]@[鏅烘収鍥尯绠$悊骞冲彴V1.4.301-闄勫綍-闄勫綍A 鏁版嵁瀛楀吀#闄勫綍A.57 娑堥槻浼犳劅鍣ㄥぇ绫诲瀷]
+    private Integer unitStatus;//	Number	false	閮ㄤ欢鐘舵�侊紝0锛氭湭娉ㄥ唽 1锛氭甯� 2: 淇涓� 3锛氬紓甯哥姸鎬侊紙淇涓姸鎬佺洰鍓嶆病鐢ㄥ埌锛屾湭娉ㄥ唽鏃惰澶囨病鏈夊湪绂荤嚎鐘舵�侊級 绌�-鎵�鏈夌姸鎬�
+    private String channelIndexCode	;//String	false	浼犳劅鍣ㄧ紪鍙�
+    private int   pageNo;//	Query	Number	false	椤电爜
+    private int   pageSize;//	Query	Number	false	椤靛ぇ灏�
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/WxConfigInfoRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/WxConfigInfoRequest.java
new file mode 100644
index 0000000..d19cb31
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/WxConfigInfoRequest.java
@@ -0,0 +1,9 @@
+package com.doumee.core.haikang.model.param.request;
+
+import lombok.Data;
+
+@Data
+public class WxConfigInfoRequest {
+    private String      tagId;//		Query	String	false	鏍囩
+    private String     oaId;//		Query	String	false	寰俊鍏紬鍙烽厤缃紪鍙�
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AuthItemListDetailResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AuthItemListDetailResponse.java
index 74dfa23..d57516f 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AuthItemListDetailResponse.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AuthItemListDetailResponse.java
@@ -6,18 +6,18 @@
 @Data
 public class AuthItemListDetailResponse {
 
-   private String  personId	;//string	False	浜哄憳ID
-  private String resourceIndexCode;//	string	False	璧勬簮鐨勫敮涓�鏍囪瘑
-  private Integer channelNo;//	number	False	閫氶亾鍙�
-  private String channelIndexCode	;//string	False	璧勬簮閫氶亾鍞竴鏍囪瘑锛堝湪鏉冮檺涓嬭浇鍜岄厤缃帴鍙e叆鍙傛椂瀵瑰簲鏌ヨ鎺ュ彛浼氳繑鍥烇紝涓嶄綔涓烘煡璇㈡帴鍙g殑鏌ヨ鏉′欢锛�
-  private TimeRangeRequest templateConfigInfos;//	Object[]	False	璁″垝妯℃澘淇℃伅
-  private Integer personStatus;//	number	False	浜哄憳鐘舵��,0锛氬凡閰嶇疆鏈笅杞�1锛氭洿鏂板緟涓嬭浇2锛氭洿鏂板緟鍒犻櫎3锛氬凡涓嬭浇4锛氭湭閰嶇疆
-  private Integer cardStatus	;//number	False	鍗$墖鐘舵��,0锛氬凡閰嶇疆鏈笅杞�1锛氭洿鏂板緟涓嬭浇2锛氭洿鏂板緟鍒犻櫎3锛氬凡涓嬭浇4锛氭湭閰嶇疆
-  private Integer faceStatus	;//number	False	浜鸿劯鐘舵��,0锛氬凡閰嶇疆鏈笅杞�1锛氭洿鏂板緟涓嬭浇2锛氭洿鏂板緟鍒犻櫎3锛氬凡涓嬭浇4锛氭湭閰嶇疆
-  private String cardJson	;//string	False	璁板綍宸蹭笅杞藉埌璁惧鐨勫崱鍙凤紙Map鏍煎紡锛堝崱鍙凤細鐘舵�侊級锛屽叾涓姸鎬�(0鏀瑰彉琛ㄧず涓嬭浇鍚庡崱鐗囩殑淇℃伅鍙堝彉鍖栦簡锛�1宸蹭笅杞�)锛�
- private String configTime	;//string	False	閰嶇疆鏃堕棿,閲囩敤ISO8601鏃堕棿鏍煎紡锛屾渶澶ч暱搴�32涓瓧绗︼紝濡�2018-09-03T17:30:08.000+08:00
- private String startTime;//	string	False	浜哄憳鏉冮檺鏈夋晥鏈燂紙浠ヤ汉涓轰腑蹇冭澶囨椂浣跨敤锛�,寮�濮嬫椂闂�,閲囩敤ISO8601鏃堕棿鏍煎紡锛屾渶澶ч暱搴�32涓瓧绗︼紝濡�2018-09-03T17:30:08.000+08:00
- private String endTime	;//string	False	浜哄憳鏉冮檺鏈夋晥鏈燂紙浠ヤ汉涓轰腑蹇冭澶囨椂浣跨敤锛�,寮�濮嬫棩鏈�,閲囩敤ISO8601鏃堕棿鏍煎紡锛屾渶澶ч暱搴�32涓瓧绗︼紝濡�2018-09-03T17:30:08.000+08:00
- private String personExtendJson;//	body	string	鍚�
+      private String  personId	;//string	False	浜哄憳ID
+      private String resourceIndexCode;//	string	False	璧勬簮鐨勫敮涓�鏍囪瘑
+      private Integer channelNo;//	number	False	閫氶亾鍙�
+      private String channelIndexCode	;//string	False	璧勬簮閫氶亾鍞竴鏍囪瘑锛堝湪鏉冮檺涓嬭浇鍜岄厤缃帴鍙e叆鍙傛椂瀵瑰簲鏌ヨ鎺ュ彛浼氳繑鍥烇紝涓嶄綔涓烘煡璇㈡帴鍙g殑鏌ヨ鏉′欢锛�
+      private TimeRangeRequest templateConfigInfos;//	Object[]	False	璁″垝妯℃澘淇℃伅
+      private Integer personStatus;//	number	False	浜哄憳鐘舵��,0锛氬凡閰嶇疆鏈笅杞�1锛氭洿鏂板緟涓嬭浇2锛氭洿鏂板緟鍒犻櫎3锛氬凡涓嬭浇4锛氭湭閰嶇疆
+      private Integer cardStatus	;//number	False	鍗$墖鐘舵��,0锛氬凡閰嶇疆鏈笅杞�1锛氭洿鏂板緟涓嬭浇2锛氭洿鏂板緟鍒犻櫎3锛氬凡涓嬭浇4锛氭湭閰嶇疆
+      private Integer faceStatus	;//number	False	浜鸿劯鐘舵��,0锛氬凡閰嶇疆鏈笅杞�1锛氭洿鏂板緟涓嬭浇2锛氭洿鏂板緟鍒犻櫎3锛氬凡涓嬭浇4锛氭湭閰嶇疆
+      private String cardJson	;//string	False	璁板綍宸蹭笅杞藉埌璁惧鐨勫崱鍙凤紙Map鏍煎紡锛堝崱鍙凤細鐘舵�侊級锛屽叾涓姸鎬�(0鏀瑰彉琛ㄧず涓嬭浇鍚庡崱鐗囩殑淇℃伅鍙堝彉鍖栦簡锛�1宸蹭笅杞�)锛�
+      private String configTime	;//string	False	閰嶇疆鏃堕棿,閲囩敤ISO8601鏃堕棿鏍煎紡锛屾渶澶ч暱搴�32涓瓧绗︼紝濡�2018-09-03T17:30:08.000+08:00
+      private String startTime;//	string	False	浜哄憳鏉冮檺鏈夋晥鏈燂紙浠ヤ汉涓轰腑蹇冭澶囨椂浣跨敤锛�,寮�濮嬫椂闂�,閲囩敤ISO8601鏃堕棿鏍煎紡锛屾渶澶ч暱搴�32涓瓧绗︼紝濡�2018-09-03T17:30:08.000+08:00
+      private String endTime	;//string	False	浜哄憳鏉冮檺鏈夋晥鏈燂紙浠ヤ汉涓轰腑蹇冭澶囨椂浣跨敤锛�,寮�濮嬫棩鏈�,閲囩敤ISO8601鏃堕棿鏍煎紡锛屾渶澶ч暱搴�32涓瓧绗︼紝濡�2018-09-03T17:30:08.000+08:00
+      private String personExtendJson;//	body	string	鍚�
            
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/FireChannelListResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/FireChannelListResponse.java
new file mode 100644
index 0000000..b2034e5
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/FireChannelListResponse.java
@@ -0,0 +1,21 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+@Data
+public class FireChannelListResponse {
+     private String regionPath;//	String	false	鎵�灞炲尯鍩熻矾寰勶紝鏍煎紡锛欯鏍硅妭鐐笯瀛愬尯鍩�1@
+     private String regionIndexCode;//	String	false	鎵�灞炲尯鍩熺紪鍙�
+     private String regionPathName;//	String	false	鎵�灞炲尯鍩熻矾寰勫悕绉�
+     private String fireproChannelSubType	;//Number	false	浼犳劅鍣ㄥ皬绫诲瀷锛岃瑙乕闄勫綍A.56]
+     private String indexCode;//	String	false	璧勬簮鍞竴鏍囧織
+     private String description;//	String	false	鎻忚堪
+     private String updateTime;//	String	false	鏇存柊鏃堕棿锛孖SO8601鏍囧噯
+     private String fireproChannelMaxValue	;//String	false	鏈�澶ч槇鍊�
+     private String createTime;//	String	false	鍒涘缓鏃堕棿锛孖SO8601鏍囧噯
+     private String name;//	String	false	璧勬簮鍚嶇О
+     private String fireproChannelAddressCode;//	String	false	浼犳劅鍣ㄥ湴鍧�鐮�
+     private String fireproChannelType	;//Number	false	浼犳劅鍣ㄥぇ绫诲瀷锛岃瑙乕闄勫綍A.64]
+     private String parentIndexCode;//	String	false	鎵�灞炶澶囩紪鐮�
+     private String resourceType;//	String	false	璧勬簮绫诲瀷锛宖ireSensor锛氭秷闃蹭紶鎰熷櫒锛岃瑙乕闄勫綍A.64]
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/FireDeviceListResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/FireDeviceListResponse.java
new file mode 100644
index 0000000..27c3cad
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/FireDeviceListResponse.java
@@ -0,0 +1,23 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+@Data
+public class FireDeviceListResponse {
+     private String regionPath;//	String	false	鎵�灞炲尯鍩熻矾寰勶紝鏍煎紡锛欯鏍硅妭鐐笯瀛愬尯鍩�1@
+private String deviceType;//	String	false	璁惧绫诲瀷
+private String regionIndexCode;//	String	false	鎵�灞炲尯鍩熺紪鍙�
+private String fireproDeviceCommunication	;//String	false	鎵�灞炶繍钀ュ晢鍙婇�氫俊绫诲瀷
+private String regionPathName;//	String	false	鎵�灞炲尯鍩熻矾寰勫悕绉�
+private String ip;//	String	false	璁惧鎵�鍦↖P
+private String indexCode;//	String	false	璧勬簮鍞竴鏍囧織
+private String description;//	String	false	鎻忚堪
+private String createTime;//	String	false	鍒涘缓鏃堕棿锛孖SO8601鏍囧噯
+private String updateTime;//	String	false	鏇存柊鏃堕棿锛孖SO8601鏍囧噯
+private String deviceCode;//	String	false	涓诲姩璁惧缂栧彿
+private String manufacturer	;//String	false	鍘傚晢
+private String port;//	String	false	璁惧绔彛
+private String name;//	String	false	璧勬簮鍚嶇О
+private String resourceType	;//String	false	璧勬簮绫诲瀷锛宖ireDevice锛氭秷闃茶澶�
+private String devSerialNum	;//String	false	璁惧搴忓垪鍙�
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/FireDeviceStatusListResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/FireDeviceStatusListResponse.java
new file mode 100644
index 0000000..38407bc
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/FireDeviceStatusListResponse.java
@@ -0,0 +1,24 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+@Data
+public class FireDeviceStatusListResponse {
+      private String id	;//String	false	棰勫憡璀︿簨浠跺敮涓�鏍囪瘑
+      private String warningName	;//String	false	棰勫憡璀﹀悕绉�
+      private String nodeType	;//Number	false	鑺傜偣绫诲瀷
+      private String nodeId	;//String	false	鑺傜偣ID
+      private String nodeName;//	String	false	鑺傜偣鍚嶇О
+      private String nodePath;//	String	false	鑺傜偣璺緞
+      private String ruleType	;//String	false	棰勫憡璀︾被鍨�
+      private String warningLevel	;//Number	false	棰勫憡璀︾瓑绾э紝1锛氫竴鑸紝2锛氫弗閲嶏紝3锛氭晠闅�
+      private String warningValue	;//String	false	鏁版嵁椤瑰綋鍓嶅��
+      private String warningEventTip;//	String	false	寮傚父鍘熷洜
+      private String createTime;//	String	false	鍙戠敓鏃堕棿
+      private String benchmark;//	String	false	鍩哄噯鏁版嵁
+      private String handleStatus;//	Number	false	澶勭悊鐘舵�侊細1锛氭湭澶勭悊锛�2锛氬凡澶勭悊
+      private String note;//	String	false	澶勭悊鎰忚
+      private String handleTime;//	String	false	澶勭悊鏃堕棿
+      private String normal;//	Boolean	false	棰勫憡璀︽槸鍚︽甯�
+      private String deviceId;//	String	false	璁惧id
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/NhEventPageListResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/NhEventPageListResponse.java
new file mode 100644
index 0000000..36af1b9
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/NhEventPageListResponse.java
@@ -0,0 +1,24 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+@Data
+public class NhEventPageListResponse {
+      private String id	;//String	false	棰勫憡璀︿簨浠跺敮涓�鏍囪瘑
+      private String warningName	;//String	false	棰勫憡璀﹀悕绉�
+      private String nodeType	;//Number	false	鑺傜偣绫诲瀷
+      private String nodeId	;//String	false	鑺傜偣ID
+      private String nodeName;//	String	false	鑺傜偣鍚嶇О
+      private String nodePath;//	String	false	鑺傜偣璺緞
+      private String ruleType	;//String	false	棰勫憡璀︾被鍨�
+      private String warningLevel	;//Number	false	棰勫憡璀︾瓑绾э紝1锛氫竴鑸紝2锛氫弗閲嶏紝3锛氭晠闅�
+      private String warningValue	;//String	false	鏁版嵁椤瑰綋鍓嶅��
+      private String warningEventTip;//	String	false	寮傚父鍘熷洜
+      private String createTime;//	String	false	鍙戠敓鏃堕棿
+      private String benchmark;//	String	false	鍩哄噯鏁版嵁
+      private String handleStatus;//	Number	false	澶勭悊鐘舵�侊細1锛氭湭澶勭悊锛�2锛氬凡澶勭悊
+      private String note;//	String	false	澶勭悊鎰忚
+      private String handleTime;//	String	false	澶勭悊鏃堕棿
+      private String normal;//	Boolean	false	棰勫憡璀︽槸鍚︽甯�
+      private String deviceId;//	String	false	璁惧id
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/SensorStatusListResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/SensorStatusListResponse.java
new file mode 100644
index 0000000..0e78568
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/SensorStatusListResponse.java
@@ -0,0 +1,20 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+@Data
+public class SensorStatusListResponse {
+      private String cn;//	String	false	浼犳劅鍣ㄥ悕绉�
+      private String indexCode	;//String	false	浼犳劅鍣ㄧ紪鐮�
+      private String regionIndexCode;//	String	false	鎵�灞炲尯鍩�
+      private String regionName	;//String	false	鍖哄煙璺緞鍚嶇О锛屸�淺鈥濆垎闅�
+      private String channelIndexCode;//	String	false	浼犳劅鍣ㄧ紪鍙�
+      private Integer channelType;//	Number	false	浼犳劅鍣ㄥぇ绫诲瀷锛岃瑙乕闄勫綍A.57 娑堥槻浼犳劅鍣ㄥぇ绫诲瀷]@[鏅烘収鍥尯绠$悊骞冲彴V1.4.301-闄勫綍-闄勫綍A 鏁版嵁瀛楀吀#闄勫綍A.57 娑堥槻浼犳劅鍣ㄥぇ绫诲瀷]
+      private String channelSubType	;//String	false	浼犳劅鍣ㄥ皬绫诲瀷锛岃瑙乕闄勫綍A.56 娑堥槻浼犳劅鍣ㄥ皬绫诲瀷]@[鏅烘収鍥尯绠$悊骞冲彴V1.4.301-闄勫綍-闄勫綍A 鏁版嵁瀛楀吀#闄勫綍A.56 娑堥槻浼犳劅鍣ㄥ皬绫诲瀷]
+      private Integer unitStatus ;//Number	false	閮ㄤ欢鐘舵�侊紝0锛氭湭娉ㄥ唽 1锛氭甯� 2: 淇涓� 3锛氬紓甯哥姸鎬侊紙淇涓姸鎬佺洰鍓嶆病鐢ㄥ埌锛屾湭娉ㄥ唽鏃惰澶囨病鏈夊湪绂荤嚎鐘舵�侊級 绌�-鎵�鏈夌姸鎬�
+      private String collectTime ;//	String	false	鏇存柊鏃堕棿锛孖OS8601鏍煎紡
+      private String parentName	;//	String	false	鐖惰祫婧愬悕绉�
+      private String faultType	;//	String	false	鏁呴殰绫诲瀷锛�","鍙峰垎闅旓紝璇﹁[闄勫綍A.89 娑堥槻鏁呴殰绫诲瀷@[鏅烘収鍥尯绠$悊骞冲彴V1.4.301-闄勫綍-闄勫綍A 鏁版嵁瀛楀吀#闄勫綍A.89 娑堥槻鏁呴殰绫诲瀷]
+      private String faultName	;//	String	false	鏁呴殰绫诲瀷鍚嶇О锛屸�濓紝鈥滃彿鍒嗛殧
+      private String faultNum	;//	String	false	鏁呴殰娆℃暟
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/WxConfigInfoResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/WxConfigInfoResponse.java
new file mode 100644
index 0000000..0fe805d
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/WxConfigInfoResponse.java
@@ -0,0 +1,20 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class WxConfigInfoResponse {
+      private String id;//	String	false	寰俊鍏紬鍙烽厤缃甶d
+      private String appKey;//	String	false	寰俊鍏紬鍙穉pp_key
+      private String appSecret	;//String	false	寰俊鍏紬鍙穉pp_secret
+      private String oaName;//	String	false	寰俊鍏紬鍙峰悕绉�
+      private String modelDataId	;//String	false	pdms鏁版嵁涓婚敭
+      private String domainId	;//String	false	鎵�灞炵綉缁渋d
+      private String netProtocol;//	String	false	缃戠粶鍗忚
+      private String port;//	String	false	绔彛鍙�
+      private String tagId;//	String	false	缁勫缓鏍囪瘑
+      private String templateUrl;//	String	false	妯℃澘娑堟伅鍦板潃閰嶇疆
+      private String proxySwitch;//	String	false	鏄惁寮�鍚唬鐞�  1 寮�  0 鍏�
+}
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 68ecacd..485b0fc 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
@@ -1,5 +1,6 @@
 package com.doumee.core.haikang.service;
 
+import cn.hutool.core.bean.BeanUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.TypeReference;
 import com.doumee.core.haikang.model.HKConstants;
@@ -15,6 +16,9 @@
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
+import oshi.hardware.Sensors;
+import sun.management.Sensor;
 
 import java.io.InputStream;
 import java.lang.reflect.Field;
@@ -897,6 +901,116 @@
         return  null;
     }
     /**
+     *鏍规嵁閰嶇疆寰俊鍏紬鍙风紪鍙锋煡璇㈠井淇″叕浼楀彿淇℃伅
+     * @return
+     */
+    public  static  BaseResponse<BaseListPageResponse<WxConfigInfoResponse>>   getWxConfig(WxConfigInfoRequest param){
+        log.info("銆愭捣搴锋牴鎹厤缃井淇″叕浼楀彿缂栧彿鏌ヨ寰俊鍏紬鍙蜂俊鎭��================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            String res = HKTools.getWxConfig(toMap(param));
+            TypeReference typeReference =
+                    new TypeReference<BaseResponse<BaseListPageResponse<WxConfigInfoResponse>>>(){};
+            BaseResponse<BaseListPageResponse<WxConfigInfoResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"娴峰悍鏍规嵁閰嶇疆寰俊鍏紬鍙风紪鍙锋煡璇㈠井淇″叕浼楀彿淇℃伅");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴锋牴鎹厤缃井淇″叕浼楀彿缂栧彿鏌ヨ寰俊鍏紬鍙蜂俊鎭��================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+
+    /**
+     *鍒嗛〉鏌ヨ娑堥槻璁惧閮ㄤ欢鐘舵��
+     * @return
+     */
+    public  static  BaseResponse<BaseListPageResponse<FireDeviceStatusListResponse>>   fireDeviceStatusSearch(FireDeviceStatuslListRequest param){
+        log.info("銆愭捣搴锋煡璇㈡秷闃茶澶囬儴浠剁姸鎬併��================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            String res = HKTools.fireDeviceStatusSearch(toMap(param));
+            TypeReference typeReference =
+                    new TypeReference<BaseResponse<BaseListPageResponse<FireDeviceStatusListResponse>>>(){};
+            BaseResponse<BaseListPageResponse<FireDeviceStatusListResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"娴峰悍鍒嗛〉鏌ヨ娑堥槻浼犳劅鍣ㄩ儴浠剁姸鎬�");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴锋煡璇㈡秷闃茶澶囬儴浠剁姸鎬併��================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+    /**
+     *鍒嗛〉鏌ヨ娑堥槻浼犳劅鍣ㄩ儴浠剁姸鎬�
+     * @return
+     */
+    public  static  BaseResponse<BaseListPageResponse<SensorStatusListResponse>>   sensorStatusSearch(SensorStatusListRequest param){
+        log.info("銆愭捣搴峰垎椤垫煡璇㈡秷闃蹭紶鎰熷櫒閮ㄤ欢鐘舵�併��================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            String res = HKTools.sensorStatusSearch(toMap(param));
+            TypeReference typeReference =
+                    new TypeReference<BaseResponse<BaseListPageResponse<SensorStatusListResponse>>>(){};
+            BaseResponse<BaseListPageResponse<SensorStatusListResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"娴峰悍鍒嗛〉鏌ヨ娑堥槻浼犳劅鍣ㄩ儴浠剁姸鎬�");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴峰垎椤垫煡璇㈡秷闃蹭紶鎰熷櫒閮ㄤ欢鐘舵�併��================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+
+    /**
+     *鏌ヨ娑堥槻浼犳劅鍣ㄥ垪琛�
+     * @return
+     */
+    public  static  BaseResponse<BaseListPageResponse<FireChannelListResponse>>   fireChannelSearch(FireChannelListRequest param){
+        log.info("銆愭捣搴锋煡璇㈡秷闃蹭紶鎰熷櫒鍒楄〃銆�================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            String res = HKTools.fireChannelSearch(toMap(param));
+            TypeReference typeReference =
+                    new TypeReference<BaseResponse<BaseListPageResponse<FireChannelListResponse>>>(){};
+            BaseResponse<BaseListPageResponse<FireChannelListResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"娴峰悍鏌ヨ娑堥槻浼犳劅鍣ㄥ垪琛�");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴锋煡璇㈡秷闃蹭紶鎰熷櫒鍒楄〃銆�================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+    /**
+     *璇㈡秷闃茶澶囧垪琛�
+     * @return
+     */
+    public  static  BaseResponse<BaseListPageResponse<FireDeviceListResponse>>   fireDeviceSearch(FireDeviceListRequest param){
+        log.info("銆愭捣搴疯娑堥槻璁惧鍒楄〃銆�================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            String res = HKTools.fireDeviceSearch(toMap(param));
+            TypeReference typeReference =
+                    new TypeReference<BaseResponse<BaseListPageResponse<FireDeviceListResponse>>>(){};
+            BaseResponse<BaseListPageResponse<FireDeviceListResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"娴峰悍璇㈡秷闃茶澶囧垪琛�");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴疯娑堥槻璁惧鍒楄〃銆�================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+    /**
+     *鍒嗛〉鑾峰彇鍛婅浜嬩欢
+     * @return
+     */
+    public  static  BaseResponse<BaseListPageResponse<NhEventPageListResponse>>   nhEventPageList(NhEventPageListRequest param){
+        log.info("銆愭捣搴峰垎椤佃幏鍙栧憡璀︿簨浠躲��================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            String res = HKTools.nhEventPageList(toMap(param));
+            TypeReference typeReference =
+                    new TypeReference<BaseResponse<BaseListPageResponse<NhEventPageListResponse>>>(){};
+            BaseResponse<BaseListPageResponse<NhEventPageListResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"娴峰悍鍒嗛〉鑾峰彇鍛婅浜嬩欢");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴峰垎椤佃幏鍙栧憡璀︿簨浠躲��================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+    /**
      *鏌ヨ璁垮鏉ヨ璁板綍锛堝凡鐧昏锛夛紙鍒嗛〉锛�
      * @return
      */
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java
index fafc0aa..256a013 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java
@@ -102,7 +102,6 @@
 
     @ApiModelProperty(value = "鏈�鍚庝簨浠舵帹閫佹椂闂�")
     @ExcelColumn(name="鏈�鍚庝簨浠舵帹閫佹椂闂�")
-  
     private Date lastEventTime;
 
     @ApiModelProperty(value = "鐩戞帶鐐瑰悕绉帮紝澶氫釜鐢ㄨ嫳鏂囬�楀彿闅斿紑")
@@ -158,10 +157,10 @@
     private String groupName;
     @ApiModelProperty(value = "鍏宠仈LED缂栫爜闆嗗悎锛岃嫳鏂囬�楀彿闅斿紑", example = "1")
     @TableField(exist = false)
-    private String ledIds;
+    private List<Integer> ledIds;
     @ApiModelProperty(value = "鍏宠仈骞挎挱缂栫爜闆嗗悎锛岃嫳鏂囬�楀彿闅斿紑", example = "1")
     @TableField(exist = false)
-    private String broadcastIds;
+    private List<Integer> broadcastIds;
     @ApiModelProperty(value = "鍏宠仈LED鍚嶇О闆嗗悎锛岃嫳鏂囬�楀彿闅斿紑", example = "1")
     @TableField(exist = false)
     private String ledNames;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
index 8125540..d9c8c84 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
@@ -95,8 +95,8 @@
     @ExcelColumn(name="绛惧埌鏃堕棿")
     private Date signDate;
 
-    @ApiModelProperty(value = "绛惧埌鏂瑰紡 0app绛惧埌 1鎵爜绛惧埌", example = "1")
-    @ExcelColumn(name="绛惧埌鏂瑰紡 0app绛惧埌 1鎵爜绛惧埌")
+    @ApiModelProperty(value = "绛惧埌鏂瑰紡 0app绛惧埌 1鎵爜绛惧埌 2鍚庡彴绛惧埌", example = "1")
+    @ExcelColumn(name="绛惧埌鏂瑰紡 0app绛惧埌 1鎵爜绛惧埌 2鍚庡彴绛惧埌")
     private Integer singType;
     @ApiModelProperty(value = "閫氱煡WMS浣滀笟缁戝畾鏈堝彴鏃堕棿")
     @ExcelColumn(name="閫氱煡WMS浣滀笟缁戝畾鏈堝彴鏃堕棿")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformWarnEventListResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformWarnEventListResponse.java
index ccff13f..035da66 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformWarnEventListResponse.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformWarnEventListResponse.java
@@ -21,4 +21,8 @@
     private Date createDate;
     @ApiModelProperty(value = "浜嬩欢鍐呭璇存槑")
     private String content;
+    @ApiModelProperty(value = "鏈堝彴鍚嶇О")
+    private String platformName;
+    @ApiModelProperty(value = "鏈堝彴缂栫爜")
+    private String platfromHkId;
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/SignInDTO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/SignInDTO.java
index 3ce2b1c..748f287 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/SignInDTO.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/SignInDTO.java
@@ -21,7 +21,7 @@
     @ApiModelProperty(value = "浠诲姟涓婚敭")
     private Integer jobId;
 
-    @ApiModelProperty(value = "绛惧埌绫诲瀷锛� 0=app绛惧埌 1=鎵爜绛惧埌")
+    @ApiModelProperty(value = "绛惧埌绫诲瀷锛� 0=app绛惧埌 1=鎵爜绛惧埌 2=鍚庡彴绛惧埌")
     private Integer signType;
 
     @ApiModelProperty(value = "绛惧埌浜岀淮鐮佸��")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java
index e9b3d38..c3b471d 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java
@@ -169,7 +169,7 @@
         ;
         PageData<PlatformBooks> pageData = PageData.from(platformBooksMapper.selectPage(page, queryWrapper));
         for (PlatformBooks platformBooks:pageData.getRecords()) {
-            if(Constants.equalsInteger(platformBooks.getStatus(),Constants.ONE)){
+            if(Constants.equalsInteger(platformBooks.getStatus(),Constants.ONE)||Constants.equalsInteger(platformBooks.getStatus(),Constants.ZERO)){
                 String auditName = approveService.getApproveUserName(platformBooks.getId(),Constants.approveObjectType.reason);
                 platformBooks.setAuditName(auditName);
             }
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 0432147..af60a31 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
@@ -239,8 +239,8 @@
                 .eq(pageWrap.getModel().getPlatformGroupId() != null, PlatformJob::getPlatformGroupId, pageWrap.getModel().getPlatformGroupId())
 
                 .apply(pageWrap.getModel().getQueryStatus() != null, " find_in_set(t.`STATUS`,'"+pageWrap.getModel().getQueryStatus()+"')")
-                .ge(pageWrap.getModel().getBeginWorkDateStart() != null, PlatformJob::getStartDate, Utils.Date.getStart(pageWrap.getModel().getBeginWorkDateStart()))
-                .le(pageWrap.getModel().getBeginWorkDateEnd() != null, PlatformJob::getStartDate, Utils.Date.getEnd(pageWrap.getModel().getBeginWorkDateEnd()))
+                .ge(pageWrap.getModel().getBeginWorkDateStart() != null, PlatformJob::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getBeginWorkDateStart()))
+                .le(pageWrap.getModel().getBeginWorkDateEnd() != null, PlatformJob::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getBeginWorkDateEnd()))
                 .eq(pageWrap.getModel().getJobType() != null && Constants.equalsInteger(Constants.ONE,pageWrap.getModel().getJobType()), PlatformJob::getType, Constants.platformJobType.sgscxh)
                 .ne(pageWrap.getModel().getJobType() != null && Constants.equalsInteger(Constants.ZERO,pageWrap.getModel().getJobType()), PlatformJob::getType, Constants.platformJobType.sgscxh)
         ;
@@ -373,7 +373,8 @@
             }else{
                 platformJob.setWaitTime("绛夊緟鍙彿");
             }
-        }else if(Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())){
+        }else if(Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())
+        || Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.DONE.getKey())){
             //鏌ヨ鏈�鍚庡紑濮嬩换鍔$殑鏈堝彴璁板綍  鏃ュ織琛�  鍥犱负瀛樺湪寮傚父鎸傝捣 杞Щ 绛夐棶棰�
             PlatformLog platformLog = platformLogMapper.selectOne(new QueryWrapper<PlatformLog>().lambda()
                     .eq(PlatformLog::getJobId,platformJob.getId())
@@ -416,7 +417,7 @@
                 .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
                 .eq(PlatformJob::getIsdeleted,Constants.ZERO)
                 .eq(PlatformJob::getDrivierPhone,loginUserInfo.getMobile())
-                .like(PlatformJob::getArriveDate,DateUtil.getCurrDate())
+//                .like(PlatformJob::getArriveDate,DateUtil.getCurrDate())
                 .orderByDesc(PlatformJob::getId)
         );
         for (PlatformJob platformJob:platformJobList) {
@@ -462,8 +463,9 @@
 
         PlatformJob oldPlatformJob = new PlatformJob();
         BeanUtils.copyProperties(platformJob,oldPlatformJob);
-
+        platformJob.setConfirmTaskDate(new Date());
         platformJob.setArriveDate(confirmTaskDTO.getArriveDate());
+        platformJob.setCarCodeBack(confirmTaskDTO.getCarCodeBack());
         platformJob.setStatus(Constants.PlatformJobStatus.WART_SIGN_IN.getKey());
         platformJob.setEditDate(new Date());
         platformJobMapper.updateById(platformJob);
@@ -488,19 +490,31 @@
         if(Objects.isNull(platformJob)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
-        if(!Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WART_SIGN_IN.getKey())){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓氬姟鐘舵�佸凡娴佽浆锛岃鍒锋柊鏌ョ湅");
-        }
+
         PlatformJob oldPlatformJob = new PlatformJob();
         BeanUtils.copyProperties(platformJob,oldPlatformJob);
 
         if(Constants.equalsInteger(signInDTO.getSignType(),Constants.ZERO)){
+            if(!Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WART_SIGN_IN.getKey())){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓氬姟鐘舵�佸凡娴佽浆锛岃鍒锋柊鏌ョ湅");
+            }
             this.distanceSignIn(signInDTO,platformJob);
         }else if(Constants.equalsInteger(signInDTO.getSignType(),Constants.ONE)){
+            if(!Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WART_SIGN_IN.getKey())){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓氬姟鐘舵�佸凡娴佽浆锛岃鍒锋柊鏌ョ湅");
+            }
             this.sceneSignIn(signInDTO);
+        }else if(Constants.equalsInteger(signInDTO.getSignType(),Constants.TWO)){
+            if(!(Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WAIT_CONFIRM.getKey())||
+                    Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WART_SIGN_IN.getKey()))
+            ){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓氬姟鐘舵�佸凡娴佽浆锛岃鍒锋柊鏌ョ湅");
+            }
+        }else{
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"绛惧埌绫诲瀷閿欒");
         }
         platformJob.setSignDate(new Date());
-        platformJob.setSingType(Constants.ZERO);
+        platformJob.setSingType(signInDTO.getSignType());
         platformJob.setStatus(Constants.PlatformJobStatus.WAIT_CALL.getKey());
         platformJobMapper.updateById(platformJob);
         //瀛樺偍鎿嶄綔鏃ュ織
@@ -508,12 +522,12 @@
                 Constants.PlatformJobLogType.SIGN.getInfo());
     }
 
-
     public void distanceSignIn(SignInDTO signInDTO , PlatformJob platformJob){
         if(Objects.isNull(signInDTO.getLat())
                 || Objects.isNull(signInDTO.getLnt())){
             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"缁忕含搴︿俊鎭紓甯�");
         }
+
         //鑾峰彇绛惧埌鐐圭殑缁忕含搴�
         Double lat = Double.parseDouble(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_PLACE_LAT).getCode());
         Double lnt = Double.parseDouble(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_PLACE_LNT).getCode());
@@ -529,6 +543,7 @@
     }
 
     public void sceneSignIn(SignInDTO signInDTO){
+
         if( StringUtils.isNotBlank(signInDTO.getQrCodeKey())){
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
@@ -716,6 +731,7 @@
         || Constants.equalsInteger(platformJob.getType(),Constants.FOUR)){
             //TODO 涓嬪彂鍏ュ洯鏉冮檺
 
+
         }
         //瀛樺偍鎿嶄綔鏃ュ織
         savePlatformLog(Constants.PlatformJobLogType.IN_WAIT.getKey(),oldPlatformJob,platformJob,
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformServiceImpl.java
index 4acdb01..893331c 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformServiceImpl.java
@@ -1,5 +1,6 @@
 package com.doumee.service.business.impl;
 
+import cn.emay.sdk.util.StringUtil;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.model.LoginUserInfo;
@@ -7,25 +8,27 @@
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.DeviceMapper;
+import com.doumee.dao.business.PlatformDeviceMapper;
 import com.doumee.dao.business.PlatformMapper;
 import com.doumee.dao.business.join.PlatformJoinMapper;
-import com.doumee.dao.business.model.Member;
-import com.doumee.dao.business.model.Platform;
-import com.doumee.dao.business.model.PlatformGroup;
+import com.doumee.dao.business.model.*;
 import com.doumee.dao.openapi.response.PlatformNumByStatusResponse;
+import com.doumee.service.business.PlatformDeviceService;
 import com.doumee.service.business.PlatformService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import org.apache.commons.lang.StringUtils;
 import org.apache.shiro.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -40,10 +43,62 @@
     private PlatformMapper platformMapper;
     @Autowired
     private PlatformJoinMapper platformJoinMapper;
+    @Autowired
+    private PlatformDeviceMapper platformDeviceMapper;
+    @Autowired
+    private DeviceMapper deviceMapper;
+
+
 
     @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
     public Integer create(Platform platform) {
+        platform.setCreateDate(new Date());
+        platform.setIsdeleted(Constants.ZERO);
+        platform.setCreator(platform.getLoginUserInfo().getId());
         platformMapper.insert(platform);
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(platform.getLedIds())){
+            List<PlatformDevice> platformDeviceList = new ArrayList<>();
+            for (Integer ledId:platform.getLedIds()) {
+                Device device = deviceMapper.selectById(ledId);
+                if(Objects.isNull(device)){
+                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈煡璇㈠埌led璁惧淇℃伅銆�"+ledId+"銆�");
+                }
+                PlatformDevice platformDevice = new PlatformDevice();
+                platformDevice.setIsdeleted(Constants.ZERO);
+                platformDevice.setPlatformId(platform.getId());
+                platformDevice.setCreateDate(new Date());
+                platformDevice.setCreator(platform.getLoginUserInfo().getId());
+                platformDevice.setType(Constants.ZERO);
+                platformDevice.setDeviceId(ledId.toString());
+                platformDevice.setHkId(device.getHkId());
+                platformDevice.setName(device.getName());
+                platformDeviceList.add(platformDevice);
+            }
+            platformDeviceMapper.insert(platformDeviceList);
+        }
+
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(platform.getBroadcastIds())){
+            List<PlatformDevice> platformDeviceList = new ArrayList<>();
+            for (Integer broadcastId:platform.getBroadcastIds()) {
+                Device device = deviceMapper.selectById(broadcastId);
+                if(Objects.isNull(device)){
+                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈煡璇㈠埌骞挎挱璁惧淇℃伅銆�"+broadcastId+"銆�");
+                }
+                PlatformDevice platformDevice = new PlatformDevice();
+                platformDevice.setIsdeleted(Constants.ZERO);
+                platformDevice.setPlatformId(platform.getId());
+                platformDevice.setCreateDate(new Date());
+                platformDevice.setCreator(platform.getLoginUserInfo().getId());
+                platformDevice.setType(Constants.TWO);
+                platformDevice.setDeviceId(broadcastId.toString());
+                platformDevice.setHkId(device.getHkId());
+                platformDevice.setName(device.getName());
+                platformDeviceList.add(platformDevice);
+            }
+            platformDeviceMapper.insert(platformDeviceList);
+        }
+
         return platform.getId();
     }
 
@@ -67,7 +122,60 @@
     }
 
     @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
     public void updateById(Platform platform) {
+        platform.setEditor(platform.getLoginUserInfo().getId());
+        platform.setEditDate(new Date());
+        //鍒犻櫎LED/骞挎挱鏁版嵁
+        platformDeviceMapper.delete(new QueryWrapper<PlatformDevice>().lambda()
+                .eq(PlatformDevice::getPlatformId,platform.getId())
+                .in(PlatformDevice::getType,Constants.ZERO,Constants.TWO)
+        );
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(platform.getLedIds())){
+            List<PlatformDevice> platformDeviceList = new ArrayList<>();
+            String ledNames = "";
+            for (Integer ledId:platform.getLedIds()) {
+                Device device = deviceMapper.selectById(ledId);
+                if(Objects.isNull(device)){
+                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈煡璇㈠埌led璁惧淇℃伅銆�"+ledId+"銆�");
+                }
+                PlatformDevice platformDevice = new PlatformDevice();
+                platformDevice.setIsdeleted(Constants.ZERO);
+                platformDevice.setPlatformId(platform.getId());
+                platformDevice.setCreateDate(new Date());
+                platformDevice.setCreator(platform.getLoginUserInfo().getId());
+                platformDevice.setType(Constants.ZERO);
+                platformDevice.setDeviceId(ledId.toString());
+                platformDevice.setHkId(device.getHkId());
+                platformDevice.setName(device.getName());
+                platformDeviceList.add(platformDevice);
+            }
+            platformDeviceMapper.insert(platformDeviceList);
+            platform.setLedNames(ledNames);
+        }
+
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(platform.getBroadcastIds())){
+            List<PlatformDevice> platformDeviceList = new ArrayList<>();
+            String ledNames = "";
+            for (Integer broadcastId:platform.getBroadcastIds()) {
+                Device device = deviceMapper.selectById(broadcastId);
+                if(Objects.isNull(device)){
+                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈煡璇㈠埌骞挎挱璁惧淇℃伅銆�"+broadcastId+"銆�");
+                }
+                PlatformDevice platformDevice = new PlatformDevice();
+                platformDevice.setIsdeleted(Constants.ZERO);
+                platformDevice.setPlatformId(platform.getId());
+                platformDevice.setCreateDate(new Date());
+                platformDevice.setCreator(platform.getLoginUserInfo().getId());
+                platformDevice.setType(Constants.TWO);
+                platformDevice.setDeviceId(broadcastId.toString());
+                platformDevice.setHkId(device.getHkId());
+                platformDevice.setName(device.getName());
+                platformDeviceList.add(platformDevice);
+            }
+            platformDeviceMapper.insert(platformDeviceList);
+        }
+
         platformMapper.updateById(platform);
     }
 
@@ -160,7 +268,35 @@
                 queryWrapper.orderByAsc(sortData.getProperty());
             }
         }
-        return PageData.from(platformMapper.selectJoinPage(page,Platform.class, queryWrapper));
+        PageData<Platform> platformPageData = PageData.from(platformMapper.selectJoinPage(page,Platform.class, queryWrapper));
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(platformPageData.getRecords())){
+            for (Platform platform:platformPageData.getRecords()) {
+                List<PlatformDevice> ledDevice =  platformDeviceMapper.selectList(new QueryWrapper<PlatformDevice>().lambda()
+                        .eq(PlatformDevice::getPlatformId,platform.getId())
+                        .eq(PlatformDevice::getType,Constants.ZERO)
+                );
+                if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ledDevice)){
+                    platform.setLedNames(String.join(",", ledDevice.stream().map(m->m.getName()).collect(Collectors.toList())));
+                    platform.setLedIds(
+                            ledDevice.stream().map(m->Integer.valueOf(m.getDeviceId())).collect(Collectors.toList())
+                    );
+                }
+
+                List<PlatformDevice> broadcastDevice =  platformDeviceMapper.selectList(new QueryWrapper<PlatformDevice>().lambda()
+                        .eq(PlatformDevice::getPlatformId,platform.getId())
+                        .eq(PlatformDevice::getType,Constants.TWO)
+                );
+                if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(broadcastDevice)){
+                    platform.setBroadcastNames(String.join(",", broadcastDevice.stream().map(m->m.getName()).collect(Collectors.toList())));
+                    platform.setBroadcastIds(
+                            broadcastDevice.stream().map(m->Integer.valueOf(m.getDeviceId())).collect(Collectors.toList())
+                    );
+                }
+            }
+
+        }
+
+        return platformPageData;
     }
 
     @Override

--
Gitblit v1.9.3