jiangping
2024-08-09 20d2f06486e57b82a9045a754dd538a8a37e5c80
最新版本
已添加13个文件
已修改3个文件
437 ■■■■■ 文件已修改
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/FetchAudioChannelRequest.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/FetchAudioDeviceRequest.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/LedRecordsRequest.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/PlatformStatusRequest.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/PlatformsListRequest.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TransparentChannelBodyRequest.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TransparentChannelHeadRequest.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/FetchAudioChannelInfoResponse.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/FetchAudioDeviceInfoResponse.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/LedRecordsInfoResponse.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PlatformCameraInfoResponse.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PlatformListInfoResponse.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PlatformStatusInfoResponse.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
@@ -91,6 +91,14 @@
        String applyCTGT= "/api/lsm/ssoService/v1/applyCTGT";//根据用户标识获取客户端TGC接口
        String applyST= "/api/lsm/ssoService/v1/applyST";//根据登录标识TGC申请登录凭证ST接口
        String tokenLoginUrl= "/lsm/ssoService/v1/tokenLogin?token=${st}&service=${service}";//组件授权登录拼接地址
        String fetchAudioChannel= "/api/ibas/resource/v1/fetchAudioChannel";//1.1.4.1分页获取广播点
        String fetchAudioDevice= "/api/ibas/resource/v1/fetchAudioDevice";//1.1.4.2分页获取广播设备列表
        String fetchAudioChannelByDevice= "/api/ibas/resource/v1/fetchAudioChannelByDevice";//1.1.4.3根据设备信息获取广播点
        String ledRecords= "/api/v1/model/tb_led_info/records";//获取月台组件配置的LED设备清单
        String transparentchannel= "/api/v1/transparentchannel";//发送消息给LED
        String platformsList= "/api/platformService/v1/platforms";//获取全部月台信息
        String platformStatus= "/api/platformService/v1/platform/status";//获取月台状态
        String customBroadcast= "/api/ibas/v1/customBroadcast";//用于设置广播的自定播放和停止
    }
    /**
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
@@ -361,6 +361,14 @@
        return result;
    }
    public static String startDoPostStringArtemis(String pathStr,Map<String, String> querys,Map<String, String> header,String body){
        Map<String, String> path = getPath(pathStr);
        header.put("tagId", UUID.randomUUID().toString().replace("-", ""));
        String result = ArtemisHttpUtil.doPostStringArtemis(path, body, querys, null, "application/json", header);// post请求application/json类型参数
        saveInterfaceLog(body,result,path);
        return result;
    }
    /**
     *    ç­¾ç¦»è®¿å®¢é¢„约
     * @param body
@@ -583,6 +591,70 @@
    public static String acsDeviceStatus(String body) {
        return startDoPostStringArtemis(HKConstants.InterfacePath.acsDeviceStatus,body);
    }
    /**
     * åˆ†é¡µèŽ·å–å¹¿æ’­ç‚¹
     * @param body
     * @return
     */
    public static String fetchAudioChannel(String body) {
        return startDoPostStringArtemis(HKConstants.InterfacePath.fetchAudioChannel,body);
    }
    /**
     * åˆ†é¡µèŽ·å–å¹¿æ’­è®¾å¤‡åˆ—è¡¨
     * @param body
     * @return
     */
    public static String fetchAudioDevice(String body) {
        return startDoPostStringArtemis(HKConstants.InterfacePath.fetchAudioDevice,body);
    }
    /**
     * æ ¹æ®è®¾å¤‡ä¿¡æ¯èŽ·å–å¹¿æ’­ç‚¹
     * @param body
     * @return
     */
    public static String fetchAudioChannelByDevice(String body) {
        return startDoPostStringArtemis(HKConstants.InterfacePath.fetchAudioChannelByDevice,body);
    }
    /**
     * èŽ·å–å…¨éƒ¨æœˆå°ä¿¡æ¯
     * @param body
     * @return
     */
    public static String platformsList(String body) {
        return startDoPostStringArtemis(HKConstants.InterfacePath.platformsList,body);
    }
    /**
     * èŽ·å–æœˆå°çŠ¶æ€
     * @param body
     * @return
     */
    public static String platformStatus(String body) {
        return startDoPostStringArtemis(HKConstants.InterfacePath.platformStatus,body);
    }
    /**
     * èŽ·å–æœˆå°ç»„ä»¶é…ç½®çš„LED设备清单
     * @param body
     * @return
     */
    public static String ledRecords(String body) {
        return startDoPostStringArtemis(HKConstants.InterfacePath.ledRecords,body);
    }
    /**
     * ç”¨äºŽè®¾ç½®å¹¿æ’­çš„自定播放和停止
     * @param body
     * @return
     */
    public static String customBroadcast(String body) {
        return startDoPostStringArtemis(HKConstants.InterfacePath.customBroadcast,body);
    }
    /**
     * å‘送消息给LED
     * @param body
     * @return
     */
    public static String transparentchannel(Map<String,String> header,String body) {
        return startDoPostStringArtemis(HKConstants.InterfacePath.transparentchannel,null,header,body);
    }
    /**
     * æŸ¥è¯¢åœºå†…车停车信息
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/FetchAudioChannelRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
package com.doumee.core.haikang.model.param.request;
import lombok.Data;
@Data
public class FetchAudioChannelRequest {
     private String  audioChannelName        ;//String    false    å¹¿æ’­ç‚¹åç§°
     private String  audioChannelIndexCode        ;//String    false    å¹¿æ’­ç‚¹å”¯ä¸€æ ‡è¯†ï¼Œå¤šä¸ªç”¨â€œ,”分隔
     private String  channelType        ;//String    false    é€šé“类型,audioTalk-广播设备广播点;talk-视频设备对讲通道
     private String  regionIndexCode        ;//String    false    åŒºåŸŸå”¯ä¸€æ ‡è¯†ï¼Œå¤šä¸ªç”¨â€œ,”分隔
     private String  audioArea        ;//String    false    å¹¿æ’­åˆ†åŒºå”¯ä¸€æ ‡è¯†ï¼Œå¤šä¸ªç”¨â€œ,”分隔
     private Integer  pageNo        ;//String    true    åˆ†é¡µé¡µç 
     private Integer  pageSize        ;//String    true    åˆ†é¡µå¤§å°
     private Integer  hasChild    ;//    Number    false    æ˜¯å¦åŒ…含下级区域 1-包含下级 0-本级,默认本级,当选择包含下级时,区域标识必填
     private Integer  isMachineSync    ;//    Number    false    ç­›é€‰æ˜¯å¦å¹¿æ’­ä¸»æœºåŒæ­¥æ•°æ®ï¼Œ1-广播主机同步数据,0-本级添加数据
     private Integer  isCascadeSync    ;//    Number    false    ç­›é€‰æ˜¯å¦å¹¿æ’­çº§è”同步数据,1-广播级联同步数据,0-本级添加数据
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/FetchAudioDeviceRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.doumee.core.haikang.model.param.request;
import lombok.Data;
@Data
public class FetchAudioDeviceRequest {
      private String deviceName    ;//String    false    å¹¿æ’­è®¾å¤‡æŒ‰ç…§åç§°æ¨¡ç³ŠæŸ¥è¯¢
      private String regionIndexCode    ;//String    false    åŒºåŸŸç¼–号,可以为空;
      private String subRegion;//    Boolean    false    æ˜¯å¦åŒ…含下级区域,注: 1、参数subRegion使用时,regionIndexCode为必填,true包含下级,false为不包含,默认不包含
      private String deviceTreaty    ;//String    false    åè®®ç±»åž‹ï¼Œisapi_net,isup5_reg,otap_iot,sip_reg
      private Integer pageNo        ;//Number    true    å½“前页码,0 < pageNo
      private Integer pageSize    ;//    Number    true    åˆ†é¡µå¤§å°ï¼Œ0<pageSize≤1000
      private String deviceUseType    ;//String    false    è®¾å¤‡ç±»åž‹loudspeaker: '网络功放',  box: '网络音箱',  microphone: '网络寻呼话筒',  machine: '广播主机'
      private String ip    ;//String    false    è®¾å¤‡å¯¹åº”ip,支持模糊查询
      private String port    ;//String    false    è®¾å¤‡å¯¹åº”端口,支持模糊查询
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/LedRecordsRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
package com.doumee.core.haikang.model.param.request;
import lombok.Data;
@Data
public class LedRecordsRequest {
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/PlatformStatusRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
package com.doumee.core.haikang.model.param.request;
import lombok.Data;
@Data
public class PlatformStatusRequest {
    private String platformIds    ;//Query    String    false    æœˆå°ID
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/PlatformsListRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
package com.doumee.core.haikang.model.param.request;
import lombok.Data;
@Data
public class PlatformsListRequest {
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TransparentChannelBodyRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
package com.doumee.core.haikang.model.param.request;
import lombok.Data;
@Data
public class TransparentChannelBodyRequest {
    private String method    ; //String    true    æ–¹æ³•名,控制led必须写ControlLedGereral
 private String  indexCode    ; //    String    false    è®¾å¤‡ç¼–码
 private Integer  operationType        ; //Number    false    æ“ä½œç±»åž‹
 private Integer  regionNo    ; //    Number    false    æ˜¾ç¤ºåŒºåŸŸå·
 private Integer  regionType    ; //    Number    false    åŒºåŸŸç±»åž‹(14:发送文字,45:语音播报)
 private String  content        ; //String    false    å†…容
 private Integer  circleTimes    ; //    Number    false    å¾ªçŽ¯æ¬¡æ•°
 private Integer  regionLeftTopXPos    ; //    Number    false    åŒºåŸŸå·¦ä¸Šè§’x坐标
 private Integer  regionLeftTopYPos        ; //Number    false    åŒºåŸŸå·¦ä¸Šè§’y坐标
 private Integer  regionRightBottomXPos    ; //    Number    false    åŒºåŸŸå³ä¸‹è§’x坐标
 private Integer  regionRightBottomYPos        ; //Number    false    åŒºåŸŸå³ä¸‹è§’y坐标
    /**
     * Number    false    æ»šåŠ¨æ–¹å¼ï¼ˆSTATIC_DISPLAY = 0x01,
     * // é™æ­¢æ˜¾ç¤º/立即显示/翻页显示    LEFT_MOVE = 0x1C,
     * // å‘左移动    RIGHT_MOVE = 0x1D,
     * // å‘右移动    UP_MOVE = 0x1A,
     * // å‘上移动    DOWN_MOVE = 0x1B,
     * // å‘下移动    LEFT_LOOP = 0x1E,
     * // å‘左连续移动    RIGHT_LOOP = 0x1F,
     * // å‘右连续移动    UP_LOOP = 0x20,
     * // å‘上连续移动    DOWN_LOOP = 0x21,
     * // å‘下连续移动    TWINKLE = 0x29
     * // é—ªçƒï¼‰
      */
    private Integer  actionType        ; //
 private Integer  speed    ; //    Number    false    é€Ÿåº¦
 private Integer  stayTime        ; //Number    false    åœç•™æ—¶é—´
 private Integer  fontSize        ; //Number    false    å­—体大小
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TransparentChannelHeadRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
package com.doumee.core.haikang.model.param.request;
import lombok.Data;
@Data
public class TransparentChannelHeadRequest {
    private String deviceIndexCode    ;//    Head    String    true    è®¾å¤‡ç¼–码
    private String  ability    ;//    Head    String    true    èƒ½åŠ›æ ‡è¯†
    private String   treatyType    ;//    Head    String    true    åè®®å
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/FetchAudioChannelInfoResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package com.doumee.core.haikang.model.param.respose;
import lombok.Data;
@Data
public class FetchAudioChannelInfoResponse {
 private String  audioChannelName    ;//String    false    å¹¿æ’­ç‚¹åç§°
 private String  audioChannelIndexCode    ;//String    false    å¹¿æ’­ç‚¹å”¯ä¸€æ ‡è¯†
 private String  audioChannelType    ;//String    false    å¹¿æ’­ç‚¹ç±»åž‹
 private String  channelType    ;//String    false    é€šé“类型,audioTalk-广播设备广播点,talk-视频设备对讲通道
 private String  channelNo    ;//String    false    é€šé“号
 private String  parentDevIndexCode    ;//String    false    å…³è”设备唯一标识
 private String  parentDevTreaty    ;//String    false    å…³è”设备的协议类型
 private String  regionIndexCode    ;//String    false    åŒºåŸŸå”¯ä¸€æ ‡è¯†ï¼Œå¤šä¸ªç”¨â€œ,”分隔
 private String  audioArea    ;//String    false    å¹¿æ’­åˆ†åŒºå”¯ä¸€æ ‡è¯†ï¼Œå¤šä¸ªç”¨â€œ,”分隔
 private Integer  state    ;//Number    false    å¹¿æ’­ç‚¹åœ¨çº¿çŠ¶æ€0-在线 1-离线
 private String  regionName    ;//String    false    åŒºåŸŸåç§°
 private String  volume    ;//String    false    å¹¿æ’­ç‚¹éŸ³é‡
 private Integer isMachineSync    ;//Number    false    æ˜¯å¦å¹¿æ’­ä¸»æœºæ•°æ®ï¼Œ1-同步数据,0-本级数据
 private Integer isCascadeSync;//    Number    false    æ˜¯å¦å¹¿æ’­çº§è”数据,1-同步数据,0-本级数据
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/FetchAudioDeviceInfoResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.doumee.core.haikang.model.param.respose;
import lombok.Data;
@Data
public class FetchAudioDeviceInfoResponse {
 private String  deviceIndexCode    ;//String    false    è®¾å¤‡å”¯ä¸€æ ‡è¯†
 private String  deviceName    ;//String    false    è®¾å¤‡åç§°
 private String  regionIndexCode    ;//String    false    åŒºåŸŸç¼–号
 private String  ip    ;//String    false    ip地址
 private String  port    ;//String    false    ç«¯å£
 private String  deviceTreaty    ;//String    false    åè®®ç±»åž‹
 private String  domainId    ;//String    false    è®¾å¤‡æ‰€å±žç½‘域id
 private String  deviceType    ;//String    false    è®¾å¤‡ç±»åž‹
 private String  deviceCode    ;//String    false    è®¾å¤‡ä¸»åŠ¨æ³¨å†Œç¼–ç 
 private String  deviceUseType    ;//String    false    è®¾å¤‡åŠŸèƒ½ç±»åž‹loudspeaker: '网络功放',  box: '网络音箱',  microphone: '网络寻呼话筒',  machine: '广播主机'
 private String  desc    ;//String    false    å¹¿æ’­è®¾å¤‡æè¿°ä¿¡æ¯
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/LedRecordsInfoResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
package com.doumee.core.haikang.model.param.respose;
import lombok.Data;
import java.util.List;
@Data
public class LedRecordsInfoResponse {
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PlatformCameraInfoResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
package com.doumee.core.haikang.model.param.respose;
import lombok.Data;
@Data
public class PlatformCameraInfoResponse {
 private String  cameraIdompan;//    String    false    ç›‘控点ID
 private String  cameraName    ;//String    false    ç›‘控点名称
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PlatformListInfoResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package com.doumee.core.haikang.model.param.respose;
import lombok.Data;
import java.util.List;
@Data
public class PlatformListInfoResponse {
 private String  deviceIndexCode    ;//String    false    è®¾å¤‡å”¯ä¸€æ ‡è¯†
  private String  platformtId;//    String    false    æœˆå°ID
 private List<PlatformCameraInfoResponse> cameras;//    Array    false    å…³è”监控点
  private String  cyNames;//    String    false    å…³è”承租公司
 private String  platformName;//    String    false    æœˆå°åç§°
 private String  createTime;//    Number    false    åˆ›å»ºæ—¶é—´
 private Integer  x    ;//Number    false    X坐标
 private Integer  y    ;//Number    false    Y坐标
 private Integer  width;//    Number    false    å®½åº¦
 private Integer  height;//    Number    false    é•¿åº¦
 private Integer  angle;//    Number    false    è§’度
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PlatformStatusInfoResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.doumee.core.haikang.model.param.respose;
import lombok.Data;
import java.util.List;
@Data
public class PlatformStatusInfoResponse {
 private String  platformtId    ;//String    false    æœˆå°ID
 private String  cameraIndexcode    ;//String    false    æœˆå°å…³è”监控点
 private String  plateNo    ;//String    false    è½¦ç‰Œå·
 private String  name;//    String    false    æœˆå°åç§°
 private String  status;//    Number    false    æœˆå°çŠ¶æ€
 private String   loadingRate    ;//String    false    æœˆå°æœ€æ–°çš„车辆装载率
 private String   doorState;//    String    false    æœˆå°ä½œä¸šè½¦è¾†çš„当前开关么状态
 private String  workingPerson;//    Number    false    æœˆå°çš„当前作业人数
 private String  lastEventTime    ;//String    false    æœˆå°äº‹ä»¶æœ€æ–°ä¸ŠæŠ¥æ—¶é—´
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
@@ -10,12 +10,16 @@
import com.doumee.core.haikang.model.param.request.*;
import com.doumee.core.haikang.model.param.respose.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j
public class HKService {
@@ -1018,6 +1022,144 @@
        return  null;
    }
    /**
     *分页获取广播点(分页)
     * @return
     */
    public  static  BaseResponse<BaseListPageResponse<FetchAudioChannelInfoResponse>>   fetchAudioChannel(FetchAudioChannelRequest param){
        log.info("【海康获取分页获取广播点】================开始===="+JSONObject.toJSONString(param));
        try {
            String res = HKTools.fetchAudioChannel(JSONObject.toJSONString(param));
            TypeReference typeReference =
                    new TypeReference< BaseResponse<BaseListPageResponse<FetchAudioChannelInfoResponse>> >(){};
            BaseResponse<BaseListPageResponse<FetchAudioChannelInfoResponse>>   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<FetchAudioChannelInfoResponse>>   fetchAudioDevice(FetchAudioChannelRequest param){
        log.info("【海康获取分页获取广播点】================开始===="+JSONObject.toJSONString(param));
        try {
            String res = HKTools.fetchAudioDevice(JSONObject.toJSONString(param));
            TypeReference typeReference =
                    new TypeReference< BaseResponse<BaseListPageResponse<FetchAudioChannelInfoResponse>> >(){};
            BaseResponse<BaseListPageResponse<FetchAudioChannelInfoResponse>>   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<PlatformListInfoResponse>>   platformsList(PlatformsListRequest param){
        log.info("【海康获取全部月台信息】================开始===="+JSONObject.toJSONString(param));
        try {
            String res = HKTools.platformsList(JSONObject.toJSONString(param));
            TypeReference typeReference =
                    new TypeReference< BaseResponse<BaseListPageResponse<PlatformListInfoResponse>> >(){};
            BaseResponse<BaseListPageResponse<PlatformListInfoResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
            logResult(result,"海康获取全部月台信息");
            return  result;
        }catch (Exception e){
            log.error("【海康获取全部月台信息】================失败====:\n"+ e.getMessage());
        }
        return  null;
    }
    /**
     *获取月台组件配置的LED设备清单
     * @return
     */
    public  static  BaseResponse<BaseListPageResponse<LedRecordsInfoResponse>>   ledRecords(LedRecordsRequest param){
        log.info("【海康获取月台组件配置的LED设备清单】================开始===="+JSONObject.toJSONString(param));
        try {
            String res = HKTools.ledRecords(JSONObject.toJSONString(param));
            TypeReference typeReference =
                    new TypeReference< BaseResponse<BaseListPageResponse<LedRecordsInfoResponse>> >(){};
            BaseResponse<BaseListPageResponse<LedRecordsInfoResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
            logResult(result,"海康获取月台组件配置的LED设备清单");
            return  result;
        }catch (Exception e){
            log.error("【海康获取月台组件配置的LED设备清单】================失败====:\n"+ e.getMessage());
        }
        return  null;
    }
    /**
     *用于设置广播的自定播放和停止
     * @return
     */
    public  static  BaseResponse<BaseListPageResponse<LedRecordsInfoResponse>>   customBroadcast(LedRecordsRequest param){
        log.info("【海康用于设置广播的自定播放和停止】================开始===="+JSONObject.toJSONString(param));
        try {
            String res = HKTools.customBroadcast(JSONObject.toJSONString(param));
            TypeReference typeReference =
                    new TypeReference< BaseResponse<BaseListPageResponse<LedRecordsInfoResponse>> >(){};
            BaseResponse<BaseListPageResponse<LedRecordsInfoResponse>>   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<PlatformStatusInfoResponse>>   platformStatus(PlatformStatusRequest param) {
        log.info("【海康获取全部月台信息】================开始====" + JSONObject.toJSONString(param));
        try {
            String res = HKTools.platformStatus(JSONObject.toJSONString(param));
            TypeReference typeReference =
                    new TypeReference<BaseResponse<BaseListPageResponse<PlatformStatusInfoResponse>>>() {
                    };
            BaseResponse<BaseListPageResponse<PlatformStatusInfoResponse>> result = JSONObject.parseObject(res, typeReference.getType());
            logResult(result, "海康获取全部月台信息");
            return result;
        } catch (Exception e) {
            log.error("【海康获取全部月台信息】================失败====:\n" + e.getMessage());
        }
        return null;
    }
    /**
     *发送消息给LED
     * @return
     */
    public  static  BaseResponse   transparentchannel(TransparentChannelHeadRequest head,TransparentChannelBodyRequest param){
        log.info("【海康发送消息给LED】================开始===="+JSONObject.toJSONString(param));
        try {
            Map<String,String> header = toMap(head);
            String res = HKTools.transparentchannel(header,JSONObject.toJSONString(param));
            TypeReference typeReference =
                    new TypeReference<BaseResponse>(){};
            BaseResponse  result = JSONObject.parseObject(res, typeReference.getType());
            logResult(result,"海康发送消息给LED");
            return  result;
        }catch (Exception e){
            log.error("【海康发送消息给LED】================失败====:\n"+ e.getMessage());
        }
        return  null;
    }
    public static Map<String, String> toMap(Object obj) throws IllegalAccessException {
        Map<String, String> map = new HashMap<>();
        Class<?> clazz = obj.getClass();
        for (Field field : clazz.getDeclaredFields()) {
            field.setAccessible(true); // ä½¿å¾—私有字段也可以访问
            map.put(field.getName(), (String) field.get(obj));
        }
        return map;
    }
    /**
     *查询场内车停车信息(分页)
     * @return
     */