jiangping
2024-08-28 42f57295f5fe64132c11a25f55cd25c3c8acf167
最新版本
已添加11个文件
已复制1个文件
已修改11个文件
已重命名1个文件
508 ■■■■■ 文件已修改
server/system_service/src/main/java/com/doumee/core/utils/Constants.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/HkSyncController.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/config/swagger/SwaggerConfig.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventImageInfoRequest.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformAttrInfoRequest.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsDataRequest.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsInfoRequest.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsParamRequest.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsRequest.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsStatusInfoRequest.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformDataRequest.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformInfoRequest.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformParamRequest.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformRequest.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformStatusInfoRequest.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/PlatformDataInfoRequest.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/PlatformNumByStatusRequest.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformLastMonthListResponse.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformNumByStatusResponse.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java 184 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -154,12 +154,6 @@
    // è¶…时预警配置
    public static final String TIMEOUT_WARNING = "TIMEOUT_WARNING";
    // FTP文件服务器资源访问地址
    //月台预约指南
    public static final String PLATFORM_BOOKING_TIPS = "PLATFORM_BOOKING_TIPS";
    //月台导览图
    public static final String PLATFORM_GUIDEMAP = "PLATFORM_GUIDEMAP";
    public static String getRandom6Num( ) {
        Random random = new Random();
        StringBuilder sb = new StringBuilder();
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/HkSyncController.java
@@ -4,8 +4,8 @@
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.EventPlatCarstatusRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventPlatWorkstatusRequest;
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.EventVisitRequest;
import com.doumee.core.model.ApiResponse;
import com.doumee.dao.business.model.Device;
@@ -108,15 +108,15 @@
        return ApiResponse.success(null);
    }
    @ApiOperation("【海康】月台工作状态事件推送")
    @PostMapping("/platform/workstatus")
    public ApiResponse workstatus(@RequestBody EventPlatWorkstatusRequest param, HttpServletResponse response) {
         hkSyncPushService.dealWorkstatusEvent(param,response);
    @PostMapping("/push/platform/workstatus")
    public ApiResponse pushPlatformStatus(@RequestBody EventPlatformRequest param, HttpServletResponse response) {
         hkSyncPushService.dealPlatformStatusEvent(param,response);
        return ApiResponse.success(null);
    }
    @ApiOperation("【海康】月台车辆状态事件推送")
    @PostMapping("/platform/carstatus")
    public ApiResponse carstatus(@RequestBody EventPlatCarstatusRequest param, HttpServletResponse response) {
         hkSyncPushService.dealCarstatusEvent(param,response);
    @PostMapping("/push/platform/carstatus")
    public ApiResponse pushPlatformCarStatus(@RequestBody EventPlatformCarsRequest param, HttpServletResponse response) {
         hkSyncPushService.dealPlatformCarsEvent(param,response);
        return ApiResponse.success(null);
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
@@ -7,6 +7,8 @@
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.model.ApiResponse;
@@ -130,6 +132,20 @@
        String result = hkSyncPushService.dealParkEvent(param,response);
        return ApiResponse.success(result);
    }
    @ApiOperation("【海康】月台工作状态事件订阅推送对接处理接口")
    @PostMapping("/push/platform/workstatus")
    @LoginNoRequired
    public ApiResponse pushPlatformStatus(@RequestBody EventPlatformRequest param, HttpServletResponse response ){
        String result = hkSyncPushService.dealPlatformStatusEvent(param,response);
        return ApiResponse.success(result);
    }
    @ApiOperation("【海康】月台车辆状态事件订阅推送对接处理接口")
    @PostMapping("/push/platform/carstatus")
    @LoginNoRequired
    public ApiResponse pushPlatformCarStatus(@RequestBody EventPlatformCarsRequest param, HttpServletResponse response ){
        String result = hkSyncPushService.dealPlatformCarsEvent(param,response);
        return ApiResponse.success(result);
    }
    @PreventRepeat
    @ApiOperation("【海康】取消订阅事件")
    @PostMapping("/cancelEventSub")
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java
@@ -34,6 +34,19 @@
        return ApiResponse.success(new WaterByMonthResponse());
    }
    @PreventRepeat
    @ApiOperation("【用水量】近12个月用水量信息列表")
    @PostMapping("/water/lastMonthsDataList")
    @LoginNoRequired
    public ApiResponse<List<PlatformLastMonthListResponse>> lastMonthsWaterList( ) {
        return ApiResponse.success(new ArrayList<>());
    }
    @ApiOperation("【用气量】近12个月用气量信息列表")
    @PostMapping("/gas/lastMonthsDataList")
    @LoginNoRequired
    public ApiResponse<List<PlatformLastMonthListResponse>> lastMonthsGasList () {
        return ApiResponse.success(new ArrayList<>());
    }
    @PreventRepeat
    @ApiOperation("【用气量】本月、上月和去年同月")
    @PostMapping("/gas/dataByMonth")
    @LoginNoRequired
@@ -48,31 +61,31 @@
        return ApiResponse.success(new PlatformOrderNumByDateResponse());
    }
    @PreventRepeat
    @ApiOperation("【月台】月台个状态数量统计")
    @ApiOperation("【月台】月台各状态数量统计")
    @PostMapping("/platform/totalNumByStatus")
    @LoginNoRequired
    public ApiResponse<PlatformNumByStatusResponse> totalNumByStatus(@RequestBody PlatformNumByStatusRequest param) {
    public ApiResponse<PlatformNumByStatusResponse> totalNumByStatus( ) {
        return ApiResponse.success(new PlatformNumByStatusResponse());
    }
    @PreventRepeat
    @ApiOperation("【月台】月台当前作业信息列表")
    @PostMapping("/platform/workingDataList")
    @LoginNoRequired
    public ApiResponse<List<PlatformDataListResponse>> platformWorkingDataList(@RequestBody PlatformDataListRequest param) {
    public ApiResponse<List<PlatformDataListResponse>> platformWorkingDataList( ) {
        return ApiResponse.success(new ArrayList<>());
    }
    @PreventRepeat
    @ApiOperation("【月台】月台作业详情信息")
    @PostMapping("/platform/workDataInfo")
    @LoginNoRequired
    public ApiResponse<PlatformDataInfoResponse> platformWorkingDataList(@RequestBody PlatformDataInfoRequest param) {
    public ApiResponse<PlatformDataInfoResponse> platformWorkingDataInfo(@RequestBody PlatformDataInfoRequest param) {
        return ApiResponse.success(new PlatformDataInfoResponse());
    }
    @PreventRepeat
    @ApiOperation("【月台】当前车辆状态数量统计")
    @PostMapping("/platform/carStatusNum")
    @LoginNoRequired
    public ApiResponse<CarNumByStatusResponse> carStatusNum(@RequestBody CarNumByStatusRequest param) {
    public ApiResponse<CarNumByStatusResponse> carStatusNum( ) {
        return ApiResponse.success(new CarNumByStatusResponse());
    }
@@ -87,7 +100,7 @@
    @ApiOperation("【月台】排队队列列表集合")
    @PostMapping("/platform/queueList")
    @LoginNoRequired
    public ApiResponse< PlatformQueuingListResponse> carLogsList(@RequestBody PlatformQueuingListRequest param) {
    public ApiResponse< PlatformQueuingListResponse> queueList( ) {
        return ApiResponse.success(new PlatformQueuingListResponse());
    }
@@ -95,7 +108,7 @@
    @ApiOperation("【月台】预警事件集合列表")
    @PostMapping("/platform/warningEventList")
    @LoginNoRequired
    public ApiResponse<List<CarLogsListResponse>> carLogsList(@RequestBody PlatformWarnEventListRequest param) {
    public ApiResponse<List<CarLogsListResponse>> warningEventList( ) {
        return ApiResponse.success(new ArrayList<>());
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/config/swagger/SwaggerConfig.java
@@ -52,7 +52,8 @@
                .apiInfo(this.getApiInfo()).groupName("default")
                .host(host)
                .select()
                .apis( basePackage("com.doumee.cloud;com.doumee.api.common"))
//                .apis( basePackage("com.doumee.cloud.openapi;com.doumee.api.common"))
                .apis( basePackage("com.doumee.cloud.openapi;"))
                // è®¾ç½®éœ€è¦è¢«æ‰«æçš„类,这里设置为添加了@Api注解的类
//                .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
                .paths(PathSelectors.any())
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventImageInfoRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
package com.doumee.core.haikang.model.param.request.event.parks;
import lombok.Data;
import java.util.List;
@Data
public class EventImageInfoRequest {
    private String  resourcesContentType;//: "binary",
    private String  resourcesContent;//: "backgroundImage"
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformAttrInfoRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
package com.doumee.core.haikang.model.param.request.event.parks;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class EventPlatformAttrInfoRequest {
   private String cameraIndexCode;//: "90a3caf18fb449339405099a816c3b2d",
   private String deviceIndexCode;//: "5a939a9cf1ee4e268eac6671ec3527ef",
   private String imageServerCode;//: "bfe11307-3286-49ca-b9ee-9efb34b3f555",
   private String picServerIndexCode;//: "bfe11307-3286-49ca-b9ee-9efb34b3f555"
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsDataRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
package com.doumee.core.haikang.model.param.request.event.parks;
import lombok.Data;
import java.util.List;
@Data
public class EventPlatformCarsDataRequest {
    private List<EventPlatformCarsStatusInfoRequest> HPVehicleStatus;//
    private List<EventPlatformAttrInfoRequest> targetAttrs;//
   private String dataType;//HPVehicleStatus
        private String sendTime;//2017-04-22T15:39:01.000+08:00
        private String dateTime;//2004-05-03T17:30:08.000+08:00
        private String ipAddress;//172.6.64.7
        private String ipv6Address;//null
        private Integer portNo;//private;//   80,
        private String protocol;//HTTP
        private String macAddress;//01:17:24:45:D9:F4
        private Integer channelID;//private ;//String : 1,
        private Integer activePostCount;//private String : 1,
        private String eventType;//HPVehicleStatus
        private String eventState;//active
        private String eventDescription;//handingPlatform vehicle status
        private String channelName;//ABC
        private String deviceID;//test0123
        private String eventId;//205F7A23-BF3F-C346-A02E-08DAF55EEA15
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsInfoRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.doumee.core.haikang.model.param.request.event.parks;
import lombok.Data;
import java.util.List;
@Data
public class EventPlatformCarsInfoRequest {
    private String  eventId;//    String    äº‹ä»¶å”¯ä¸€æ ‡è¯†    æ˜¯    64
    private String  srcIndex;//    String    äº‹ä»¶æºç¼–号,物理设备是资源编号    æ˜¯    64
    private String  dateTime;//
    private String  srcType;//    String    äº‹ä»¶æºç±»åž‹    æ˜¯    16
    private Integer  eventType    ;//Number    äº‹ä»¶ç±»åž‹    æ˜¯
    private String  srcName;//    String    äº‹ä»¶æºåç§°    å¦    64
    private Integer   status    ;//Number    äº‹ä»¶çŠ¶æ€    æ˜¯        0-瞬时1-开始2-停止3-事件脉冲4-事件联动结果更新5-异步图片上传
    private Integer  timeout    ;//Number    è„‰å†²è¶…æ—¶æ—¶é—´    æ˜¯        å•位:秒
    private String  happenTime    ;//String    äº‹ä»¶å‘生时间(设备时间)    æ˜¯    64
    private String   srcParentIndex    ;//String    äº‹ä»¶å‘生的事件源父设备编号    å¦    64
    private List<EventPlatformCarsDataRequest> data;
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsParamRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
package com.doumee.core.haikang.model.param.request.event.parks;
import lombok.Data;
import java.util.List;
@Data
public class EventPlatformCarsParamRequest {
    private String   sendTime;//    P    String    äº‹ä»¶ä»ŽæŽ¥æ”¶è€…(程序处理后)发出的时间    æ˜¯    32    äº‹ä»¶å‘送时间
    private String    ability;//    P    String    äº‹ä»¶ç±»åˆ«    æ˜¯    64    æ ‡è¯†åœè½¦åœºäº‹ä»¶
    private List<String>  uids;//
    private List<String>  clients;//
    private Integer  dataProcInterval;//
    private List<EventPlatformCarsInfoRequest> events;//    P    Events[]    äº‹ä»¶ä¿¡æ¯    æ˜¯    ä¸é™
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsRequest.java
copy from server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatCarstatusRequest.java copy to server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsRequest.java
Îļþ´Ó server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatCarstatusRequest.java ¸´ÖÆ
@@ -3,11 +3,11 @@
import lombok.Data;
@Data
public class EventPlatCarstatusRequest {
public class EventPlatformCarsRequest {
//    private String  parkIndexCodes    ;//    string    False    åœè½¦åº“唯一标识集合  å¤šä¸ªå€¼ä½¿ç”¨è‹±æ–‡é€—号分隔,不超过1000个
    private String   method    ;//    String    æ–¹æ³•名,用于标识报文用途    æ˜¯    16    äº‹ä»¶å›ºå®šOnEventNotify
    private EventParkParamRequest params    ;//    Params    äº‹ä»¶å‚数信息    æ˜¯    ä¸é™    å…·ä½“参数信息
    private EventPlatformCarsParamRequest params    ;//    Params    äº‹ä»¶å‚数信息    æ˜¯    ä¸é™    å…·ä½“参数信息
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformCarsStatusInfoRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package com.doumee.core.haikang.model.param.request.event.parks;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class EventPlatformCarsStatusInfoRequest {
    private Integer HPNo;// 1,车道号
    private Integer plateScore;//: 80车牌评分
    private String motionStatus;//'leave',运动状态  enter#进入,leave#离开
    private String plateNo;//'A12345',车牌号
    private String vehicleDoorStatus;//'open',车门状态  open-开门,close-关门
    private String stockStatus;//'rear',车头车尾状态  Â front#车头,rear#车尾
    private EventImageInfoRequest BackgroundImage;//月台背景大图
    private EventImageInfoRequest PlatePicture;//车牌图
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformDataRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
package com.doumee.core.haikang.model.param.request.event.parks;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
@Data
public class EventPlatformDataRequest {
    private List<EventPlatformStatusInfoRequest> HPWorkingStatus;//
    private List<EventPlatformAttrInfoRequest> targetAttrs;//
   private Integer activePostCount;//1,
   private Integer channelID;//1,
   private String dataProcInterval;// 3private String ,
   private String dataType;// HPWorkingStatusprivate String ,
   private String dateTime;// 2021-07-16T18:57:22.000+08:00private String ,
   private String deviceID;// 88private String ,
   private String eventDescription;// handingPlatform working statusprivate String ,
   private String eventState;// activeprivate String ,
   private String eventType;// HPWorkingStatusprivate String ,
   private String ipAddress;// 10.18.99.179private String ,
   private String macAddress;// 58:50:ed:6d:f2:73private String ,
   private String picUploadInterval;// 0private String ,
   private String portNo;//8000,
   private String recvTime;// 2021-07-16T18:56:18.645+08:00private String ,
   private String sendTime;// 2021-07-16T18:56:18.648+08:00private String ,
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformInfoRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.doumee.core.haikang.model.param.request.event.parks;
import lombok.Data;
import java.util.List;
@Data
public class EventPlatformInfoRequest {
    private String  eventId;//    String    äº‹ä»¶å”¯ä¸€æ ‡è¯†    æ˜¯    64
    private String  srcIndex;//    String    äº‹ä»¶æºç¼–号,物理设备是资源编号    æ˜¯    64
    private String  dateTime;//
    private String  srcType;//    String    äº‹ä»¶æºç±»åž‹    æ˜¯    16
    private Integer  eventType    ;//Number    äº‹ä»¶ç±»åž‹    æ˜¯
    private String  srcName;//    String    äº‹ä»¶æºåç§°    å¦    64
    private Integer   status    ;//Number    äº‹ä»¶çŠ¶æ€    æ˜¯        0-瞬时1-开始2-停止3-事件脉冲4-事件联动结果更新5-异步图片上传
    private Integer  timeout    ;//Number    è„‰å†²è¶…æ—¶æ—¶é—´    æ˜¯        å•位:秒
    private String  happenTime    ;//String    äº‹ä»¶å‘生时间(设备时间)    æ˜¯    64
    private String   srcParentIndex    ;//String    äº‹ä»¶å‘生的事件源父设备编号    å¦    64
    private List<EventPlatformDataRequest> data;
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformParamRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
package com.doumee.core.haikang.model.param.request.event.parks;
import lombok.Data;
import java.util.List;
@Data
public class EventPlatformParamRequest {
    private String   sendTime;//    P    String    äº‹ä»¶ä»ŽæŽ¥æ”¶è€…(程序处理后)发出的时间    æ˜¯    32    äº‹ä»¶å‘送时间
    private String    ability;//    P    String    äº‹ä»¶ç±»åˆ«    æ˜¯    64    æ ‡è¯†åœè½¦åœºäº‹ä»¶
    private List<String>  uids;//
    private List<String>  clients;//
    private Integer  dataProcInterval;//
    private List<EventPlatformInfoRequest> events;//    P    Events[]    äº‹ä»¶ä¿¡æ¯    æ˜¯    ä¸é™
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformRequest.java
ÎļþÃû´Ó server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatCarstatusRequest.java ÐÞ¸Ä
@@ -3,11 +3,11 @@
import lombok.Data;
@Data
public class EventPlatCarstatusRequest {
public class EventPlatformRequest {
//    private String  parkIndexCodes    ;//    string    False    åœè½¦åº“唯一标识集合  å¤šä¸ªå€¼ä½¿ç”¨è‹±æ–‡é€—号分隔,不超过1000个
    private String   method    ;//    String    æ–¹æ³•名,用于标识报文用途    æ˜¯    16    äº‹ä»¶å›ºå®šOnEventNotify
    private EventParkParamRequest params    ;//    Params    äº‹ä»¶å‚数信息    æ˜¯    ä¸é™    å…·ä½“参数信息
    private EventPlatformParamRequest params    ;//    Params    äº‹ä»¶å‚数信息    æ˜¯    ä¸é™    å…·ä½“参数信息
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/parks/EventPlatformStatusInfoRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package com.doumee.core.haikang.model.param.request.event.parks;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class EventPlatformStatusInfoRequest {
   private Integer HPNo;// 1,车道车道号
   private Integer operationPeopleNum;// 0,人数统计
   private String operationStatus;//  no ,作业状态 loading-装货, unloading-卸货
   private String parkingSpaceStatus;// è½¦ä½çŠ¶æ€ no无车 norma正常有车
   private String plateNo;// ,车牌号
   private Integer rate;// 0,装载率
   private String vehicleDoorStatus;// open,车门状态  open-开门,close-关门
   private BigDecimal plateScore;// 90车牌评分
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/PlatformDataInfoRequest.java
@@ -11,7 +11,7 @@
 * @create 2023/12/7 11:19
 */
@Data
@ApiModel("【月台】月台当前作业信息列表请求参数")
@ApiModel("【月台】月台当前作业信息详情请求参数")
public class PlatformDataInfoRequest {
    @ApiModelProperty(value = "安防平台月台主键", example = "1")
    private String id;
server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/PlatformNumByStatusRequest.java
@@ -13,7 +13,7 @@
 * @create 2023/12/7 11:19
 */
@Data
@ApiModel("【月台】按天统计运单请求参数")
@ApiModel("【月台】月台各状态数量统计请求参数")
public class PlatformNumByStatusRequest {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformLastMonthListResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.doumee.dao.openapi.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2023/12/7 11:19
 */
@Data
@ApiModel("【月台】近12个月信息列表")
public class PlatformLastMonthListResponse {
    @ApiModelProperty(value = "时间 æ ¼å¼ï¼šyyyy-MM", example = "2024-12")
    private String timeInfo;
    @ApiModelProperty(value = "用量", example = "1")
    private BigDecimal num;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformNumByStatusResponse.java
@@ -11,7 +11,7 @@
 * @create 2023/12/7 11:19
 */
@Data
@ApiModel("【月台】按状态统计月台数量")
@ApiModel("【月台】月台各状态数量统计返回参数")
public class PlatformNumByStatusResponse {
    @ApiModelProperty(value = "使用中数量", example = "1")
    private int usingNum;
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java
@@ -2,9 +2,7 @@
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.EventPlatCarstatusRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventPlatWorkstatusRequest;
import com.doumee.core.haikang.model.param.request.event.parks.*;
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.model.param.respose.AppointmentInfoResponse;
@@ -90,13 +88,13 @@
    void syncMemberDelData();
    String getServiceUrl(HKGetServiceLoginUrlRequest param);
    void dealWorkstatusEvent(EventPlatWorkstatusRequest param, HttpServletResponse response);
    void dealCarstatusEvent(EventPlatCarstatusRequest param, HttpServletResponse response);
    String syncHkLed(Device param);
    String syncHkBroadcast(Device param);
    String dealVisitEventIccm(EventVisitIccmRequest param, HttpServletResponse response);
    String dealPlatformStatusEvent(EventPlatformRequest param, HttpServletResponse response);
    String dealPlatformCarsEvent(EventPlatformCarsRequest param, HttpServletResponse response);
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
@@ -6,9 +6,7 @@
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.EventPlatCarstatusRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventPlatWorkstatusRequest;
import com.doumee.core.haikang.model.param.request.event.parks.*;
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.model.param.respose.AppointmentInfoResponse;
@@ -55,12 +53,6 @@
    }
    @Override
    public  void dealWorkstatusEvent(EventPlatWorkstatusRequest param, HttpServletResponse response){
    }
    @Override
    public  void dealCarstatusEvent(EventPlatCarstatusRequest param, HttpServletResponse response){
    }
    @Override
//    @Async
    public String syncDoors(DoorsListRequest param){
        return null;
@@ -95,6 +87,15 @@
    public String dealVisitEventIccm(EventVisitIccmRequest param, HttpServletResponse response){
        return  null;
    }
    @Override
    public String dealPlatformStatusEvent(EventPlatformRequest param, HttpServletResponse response){
        return  null;
    }
    @Override
    public  String dealPlatformCarsEvent(EventPlatformCarsRequest param, HttpServletResponse response){
        return  null;
    }
    @Override
    public String   dealAcsEvent(EventAcsRequest param, HttpServletResponse response){
        return  null;
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -9,8 +9,7 @@
import com.doumee.core.haikang.model.param.request.event.acs.EventAcsInfoRequest;
import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest;
import com.doumee.core.haikang.model.param.request.event.acs.EventDeviceDataRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventParkInfoRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest;
import com.doumee.core.haikang.model.param.request.event.parks.*;
import com.doumee.core.haikang.model.param.request.event.visit.*;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DESUtil;
@@ -66,6 +65,12 @@
    private VisitsJoinMapper visitsMapper;
    @Autowired
    private RetentionMapper retentionMapper;
    @Autowired
    private PlatformMapper platformMapper;
    @Autowired
    private PlatformDeviceMapper platformDeviceMapper;
    private PlatformJobMapper platformJobMapper;
    private PlatformLogMapper platformLogMapper;
    /**
     * æµ·åº·é—¨ç¦äº‹ä»¶æŽ¨é€
     * @param param
@@ -308,6 +313,7 @@
        return  null;
    }
    /**
     * æµ·åº·è®¿å®¢äº‹ä»¶æŽ¨é€
     * @param param
@@ -769,5 +775,179 @@
        interfaceLogMapper.insert(hkMonitoryLogDO);
    }
    /**
     * å¤„理月台工作状态事件订阅后推送数据逻辑逻辑
     * @param param
     * @param response
     * @return
     */
    @Override
    public String dealPlatformStatusEvent(EventPlatformRequest param, HttpServletResponse response){
        log.info("【海康月台工作状态事件推送】========开始=========:\n"+JSONObject.toJSONString(param));
        String result = null;
        try {
            if(param == null || param.getParams() == null || param.getParams().getEvents()==null){
                return null;
            }
            //门禁事件集合
            List<EventPlatformInfoRequest> events  = param.getParams().getEvents();
            List<Platform> list = new ArrayList<>();
            for(EventPlatformInfoRequest request : events){
                List<EventPlatformDataRequest>  dataList = request.getData();
                if(dataList ==null || dataList.size()==0){
                    continue;
                }
                Integer  workStatus = 0;
                for(EventPlatformDataRequest data : dataList){
                    if( data.getHPWorkingStatus() ==null ||  data.getHPWorkingStatus().size() ==0){
                        continue;//如何推送状态集合为空,不处理跳过
                    }
                    PlatformDevice model = platformDeviceMapper.selectOne(new QueryWrapper<PlatformDevice>().lambda()
                            .eq(PlatformDevice::getDeviceId,request.getSrcIndex())
                            .eq(PlatformDevice::getIsdeleted,Constants.ZERO)
                            .last("limit 1"));
                    if(model ==null){
                        continue;//监控点未同步,跳过处理
}
                    //各车道车辆状态
                    for(EventPlatformStatusInfoRequest status : data.getHPWorkingStatus()){
                    }
                    break;//只处理第一个数据状态
                }
            }
            result = "成功";
            log.error("【海康月台工作状态事件推送】========成功=======");
        }catch (Exception e) {
            result = "失败"+e.getMessage();
            log.error("【海康月台工作状态事件推送】========失败=======:\n" + e.getMessage());
        }finally {
            saveInterfaceLog(param,"/business/hksync/push/platform/workstatus",result,false);//不计日志
        }
        return  null;
    }
    /**
     * å¤„理月台车辆状态事件订阅后推送数据逻辑逻辑
     * @param param
     * @param response
     * @return
     */
    @Override
    public  String dealPlatformCarsEvent(EventPlatformCarsRequest param, HttpServletResponse response){
        log.info("【海康月台车辆状态事件推送】========开始=========:\n"+JSONObject.toJSONString(param));
        String result = null;
        try {
            if(param == null || param.getParams() == null || param.getParams().getEvents()==null){
                return null;
            }
            //门禁事件集合
            List<EventPlatformCarsInfoRequest> events  = param.getParams().getEvents();
            for(EventPlatformCarsInfoRequest request : events){
                if( request.getData() ==null ||  request.getData().size()==0){
                    continue;
                }
                Integer  workStatus = 0;
                for(EventPlatformCarsDataRequest data :  request.getData()){
                    if( data.getHPVehicleStatus() ==null ||  data.getHPVehicleStatus().size() ==0){
                        continue;//如何推送状态集合为空,不处理跳过
                    }
                    PlatformDevice model = platformDeviceMapper.selectOne(new QueryWrapper<PlatformDevice>().lambda()
                            .eq(PlatformDevice::getDeviceId,request.getSrcIndex())
                            .eq(PlatformDevice::getIsdeleted,Constants.ZERO)
                            .last("limit 1"));
                    if(model ==null){
                        continue;//监控点未同步,跳过处理
                    }
                    //各车道车辆状态
                    for(EventPlatformCarsStatusInfoRequest status : data.getHPVehicleStatus()){
                        if(StringUtils.isBlank(status.getPlateNo())){
                            continue;//如果车辆信息为空,不处理直接跳过
                        }
                        PlatformJob job = platformJobMapper.selectOne(new QueryWrapper<PlatformJob>().lambda()
                                .eq(StringUtils.equals(status.getStockStatus(),"front"),PlatformJob::getCarCodeFront,status.getPlateNo() )//前车牌号
                                .eq(!StringUtils.equals(status.getStockStatus(),"front"),PlatformJob::getCarCodeBack,status.getPlateNo() )//后车牌号
                                .eq(PlatformJob::getIsdeleted,Constants.ZERO )
                                .last("limit 1 "));
                        PlatformJob update = new PlatformJob();
                        update.setId(job.getId());
                        update.setEditDate(new Date());
                        if(StringUtils.equals(status.getMotionStatus(),"leave")){
                            //如果是车辆离开
                            if(job ==null && !Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())){
                                continue;//如果没查到对应的作业或者作业并非作业中,不做业务处理
                            }
                            //如果是正在作业的状态,标记作业已完成
                            update.setStatus(Constants.PlatformJobStatus.DONE.getKey());//作业已完成
                            update.setDoneDate(update.getEditDate());
                        }else  if(StringUtils.equals(status.getMotionStatus(),"enter")){
                            //如果是车辆进入
                            if(job ==null || !Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.CALLED.getKey())){
                                //说明车辆进错月台 æˆ–者还未叫号状态,发起警告
                                dealCarsInErrorPlatformBiz(job,status);
                            }
                            update.setStatus(Constants.PlatformJobStatus.WORKING.getKey());//开始作业
                        }else{
                            continue;//其他状态不处理,跳过
                        }
                        platformJobMapper.updateById(update);//更新作业状态
                        dealPlatformJobLogBiz(update,status);//记录作业日志
                    }
                    break;//只处理第一个数据状态
                }
            }
            result = "成功";
            log.error("【海康月台车辆状态事件推送】========成功=======");
        }catch (Exception e) {
            result = "失败"+e.getMessage();
            log.error("【海康月台车辆状态事件推送】========失败=======:\n" + e.getMessage());
        }finally {
            saveInterfaceLog(param,"/business/hksync/push/platform/workstatus",result,false);//不计日志
        }
        return  null;
    }
    /**
     * è®°å½•月台作业日志
     * @param job
     * @param status
     */
    private void dealPlatformJobLogBiz(PlatformJob job,EventPlatformCarsStatusInfoRequest status) {
        PlatformLog log = new PlatformLog();
        log.setIsdeleted(Constants.ZERO);
        log.setCreateDate(new Date());
        log.setEditDate(log.getCreateDate());
        log.setJobId(job.getId());
        log.setObjId(job.getId()+"");
        if(Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.DONE.getKey())){
            //如果是作业完成
//            log.setObjType(Constants.LOg);
            //查询最后一次开始作业的日志
            PlatformLog lastBeginPlatform = platformLogMapper.selectOne(new QueryWrapper<PlatformLog>().lambda()
                    .eq(PlatformLog::getIsdeleted,Constants.ZERO)
                    .eq(PlatformLog::getObjType,Constants.PlatformJobStatus.WORKING.getKey())
                    .eq(PlatformLog::getJobId,job.getJobId())
                    .orderByDesc(PlatformLog::getCreateDate)
                    .last(" limit 1");
        }else{
            //如果是作业中
            log.setParam1(DateUtil.getDate(lastBeginPlatform.getCreateDate(),"yyyy-MM-dd HH:mm:ss"));
//            log.setObjType(Constants.Jobl);
        }
        platformLogMapper.insert(log);
    }
    /**
     * å¤„理车辆进入错误月台业务逻辑
     * @param model (月台设备关联信息)
     * @param status
     */
    private void dealCarsInErrorPlatformBiz( PlatformJob model,EventPlatformCarsStatusInfoRequest status) {
        //TODO-----------------处理车辆进入错误月台业务逻辑
    }
}