nidapeng
2024-03-20 af6dd48ed508df2ff33f62cd5c40db3f51f9d2a8
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -1,20 +1,41 @@
package com.doumee.service.business.impl.hksync;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.doumee.config.DataSyncConfig;
import com.doumee.config.SpringContextUtil;
import com.doumee.core.haikang.model.HKConstants;
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.visit.EventVisitDataRequest;
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitInfoRequest;
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest;
import com.doumee.dao.business.model.InterfaceLog;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DESUtil;
import com.doumee.core.utils.DateUtil;
import com.doumee.dao.business.*;
import com.doumee.dao.business.join.VisitsJoinMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.DeviceEventService;
import com.doumee.service.business.InterfaceLogService;
import com.doumee.service.business.MemberService;
import com.github.yulichang.interfaces.MPJBaseJoin;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.hikvision.artemis.sdk.config.ArtemisConfig;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
 * 访客权限组信息表Service实现
@@ -26,7 +47,27 @@
public class HkSyncPushServiceImpl extends HkSyncBaseServiceImpl {
    @Autowired
    private InterfaceLogService interfaceLogService;
    private InterfaceLogMapper interfaceLogMapper;
    @Autowired
    private CarsMapper carsMapper;
    @Autowired
    private ParkBookMapper parkBookMapper;
    @Autowired
    private DeviceEventMapper deviceEventMapper;
    @Autowired
    private MemberMapper memberMapper;
    @Autowired
    private DeviceMapper deviceMapper;
    @Autowired
    private DataSyncConfig dataSyncConfig;
    @Autowired
    private CarEventMapper carEventMapper;
    @Autowired
    private VisitEventMapper visitEventMapper;
    @Autowired
    private VisitsJoinMapper visitsMapper;
    @Autowired
    private RetentionMapper retentionMapper;
    /**
     * 海康门禁事件推送
     * @param param
@@ -38,10 +79,40 @@
        log.info("【海康门禁事件推送】========开始=========:\n"+JSONObject.toJSONString(param));
        String result = null;
        try {
            if(param == null || param.getParams() == null || param.getParams().getEvents()==null){
                return null;
            }
            //门禁事件集合
            List<EventAcsInfoRequest> events  = param.getParams().getEvents();
            List<DeviceEvent> list = new ArrayList<>();
            List<Integer> delRetentionLis = new ArrayList<>();
            List<Retention> retentionList = new ArrayList<>();
            for(EventAcsInfoRequest request : events){
                EventDeviceDataRequest model = request.getData();
                if(model ==null){
                    continue;
                }
                //根据推送人员编码,处理在场、离场人员数据记录
                dealMemberDataByRequest(request,delRetentionLis,retentionList);
                //封装门禁事件信息表对象
                list.add(getDeviceEventModelByRequest(request));
            }
            if(list.size()>0){
                //插入门禁记录
                deviceEventMapper.insertBatchSomeColumn(list);
            }
            if(delRetentionLis.size()>0){
                //先删除原有的在场人员(内部人员)
                retentionMapper.delete(new UpdateWrapper<Retention>().lambda()
                        .eq(Retention::getType,Constants.memberType.internal)
                        .in(Retention::getMemberId,delRetentionLis));
            }
            if(retentionList.size()>0){
                //再插入最新的在厂人员
                retentionMapper.insertBatchSomeColumn(retentionList);
            }
            log.error("【海康门禁事件推送】========成功=======");
        }catch (Exception e) {
            log.error("【海康门禁事件推送】========失败=======:\n" + e.getMessage());
        }finally {
            saveInterfaceLog(param,"/business/hksync/push/acs",result);
@@ -49,6 +120,142 @@
        return  null;
    }
    /**
     * 根据推送人员编码,处理在场、离场人员数据记录
     * @param request
     * @param delRetentionLis
     * @param retentionList
     */
    private void dealMemberDataByRequest(EventAcsInfoRequest request, List<Integer> delRetentionLis, List<Retention> retentionList) {
        //海康人员编码
        String userNo = request.getData().getExtEventPersonNo();
        if(StringUtils.isNotBlank(userNo)){
            Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getHkId,userNo).last("limit 1"));
            if(member !=null){
                //如果人员信息存在,则删除之前的所有进场数据(无论此次推送是进厂还是出场推送事件)
                Device d = deviceMapper.selectOne(new QueryWrapper<Device>().lambda()
                        .eq(Device::getDoorId,request.getSrcIndex())
                        .eq(Device::getIsdeleted,Constants.ZERO)
                        .last("limit 1" ));
                delRetentionLis.add(member.getId());
                if(!(Constants.equalsInteger(d.getIsEntrance(),Constants.ONE) && Constants.formatIntegerNum(request.getData().getExtEventInOut()) != Constants.ONE)){
                    //如果是进门,录入人员的在场数据记录
                    retentionList.add(getRetentionModelByRequest(member,request));
                }
            }
        }
    }
    public static String getHkImgUrl(String url){
        if(StringUtils.isBlank(url)){
            return null;
        }
        return HKConstants.IMG_INDEX+url;
    }
    /**
     *封装门禁事件信息表对象
     */
    private DeviceEvent getDeviceEventModelByRequest(EventAcsInfoRequest request) {
        DeviceEvent event = new DeviceEvent();
        event.setIsdeleted(Constants.ZERO);
        event.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime()));
        event.setEventId(request.getEventId());
        event.setEventType(request.getEventType());
        event.setAccessChannel(request.getData().getExtAccessChannel());
        event.setUserType(request.getData().getUserType());
        event.setSvrIndexCode(request.getData().getSvrIndexCode());
        event.setStatus(request.getStatus());
        event.setExtEventType(request.getData().getExtEventType()!=null?request.getData().getExtEventType():null);
        event.setSrcType(request.getSrcType());
        event.setSrcName(request.getSrcName());
        event.setSrcIndex(request.getSrcIndex());
        event.setSrcParentIndex(request.getSrcParentIndex());
        event.setSeq(request.getData().getSeq());
        event.setTimeout(request.getTimeout());
        event.setExtEventType(request.getData().getExtEventType());
        event.setHappenTime(request.getHappenTime());
        event.setExtReceiveTime(request.getData().getExtReceiveTime());
        event.setExtEventWhiteListNo(request.getData().getExtEventWhiteListNo());
        event.setExtEventWhiteListNo(request.getData().getExtEventWhiteListNo());
        event.setExtEventVerifyID(request.getData().getExtEventVerifyID());
        event.setExtEventRoleID(request.getData().getExtEventRoleID());
        event.setExtEventReportChannel(request.getData().getExtEventReportChannel());
        event.setExtEventReaderKind(request.getData().getExtEventReaderKind());
        event.setExtEventReaderID(request.getData().getExtEventReaderID());
        event.setExtEventPictureURL(getHkImgUrl(request.getData().getExtEventPictureURL()));
        event.setExtEventPersonNo(request.getData().getExtEventPersonNo());
        event.setExtEventMainDevID(request.getData().getExtEventMainDevID());
        event.setExtEventLocalControllerID(request.getData().getExtEventLocalControllerID());
        event.setExtEventInOut(request.getData().getExtEventInOut());
        event.setExtEventIDCardPictureURL(getHkImgUrl(request.getData().getExtEventIDCardPictureURL()));
        event.setExtEventEwipNum(request.getData().getExtEventSwipNum());
        event.setExtEventEubDevID(request.getData().getExtEventMainDevID());
        event.setExtEventDoorID(request.getData().getExtEventDoorID());
        event.setExtEventCode(request.getData().getExtEventCode());
        event.setExtEventCaseID(request.getData().getExtEventCaseID());
        event.setExtEventCardNo(request.getData().getExtEventCardNo());
        event.setExtEventAlarmOutID(request.getData().getExtEventAlarmOutID());
        event.setExtEventAlarmInID(request.getData().getExtEventAlarmInID());
        event.setExtAccessChannel(request.getData().getExtAccessChannel());
        //通道事件信息
        if(request.getData().getExtEventCustomerNumInfo() !=null){
            event.setTotalTimes(request.getData().getExtEventCustomerNumInfo().getTotalTimes());
            event.setEntryTimes(request.getData().getExtEventCustomerNumInfo().getEntryTimes());
            event.setExitTimes(request.getData().getExtEventCustomerNumInfo().getExitTimes());
            event.setAccessChannel(request.getData().getExtEventCustomerNumInfo().getAccessChannel());
        }
        if(request.getData().getExtEventIdentityCardInfo() !=null){
            //人员身份证件信息
            event.setBirth(request.getData().getExtEventIdentityCardInfo().getBirth());
            String idnum = request.getData().getExtEventIdentityCardInfo().getIdNum();
            if(StringUtils.isNotBlank(idnum)){
                //身份证号存储密文
                event.setIdNum(DESUtil.encrypt(Constants.EDS_PWD,idnum));//身份证号加密
                //脱敏手机号显示n
                event.setIdcardDecode(Constants.getTuominStr(idnum));
            }
            event.setAddress(request.getData().getExtEventIdentityCardInfo().getAddress());
            event.setSex(request.getData().getExtEventIdentityCardInfo().getSex());
            event.setName(request.getData().getExtEventIdentityCardInfo().getName());
            event.setEndDate(request.getData().getExtEventIdentityCardInfo().getEndDate());
            event.setStartDate(request.getData().getExtEventIdentityCardInfo().getStartDate());
            event.setTermOfValidity(request.getData().getExtEventIdentityCardInfo().getTermOfValidity());
        }
        return event;
    }
    /**
     * 进厂对象封装成在场人员
     * @param member
     * @param request
     * @return
     */
    private Retention getRetentionModelByRequest(Member member, EventAcsInfoRequest request) {
        Retention retention = new Retention();
        retention.setIsdeleted(Constants.ZERO);
        retention.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime()));
        retention.setClasses(member.getClasses());
        retention.setCode(member.getCode());
        retention.setIdcardNo(member.getIdcardNo());
        retention.setIdcardDecode(member.getIdcardDecode());
        retention.setName(member.getName());
        retention.setBirthday(member.getBirthday());
        retention.setType(member.getType());
        retention.setCompanyId(member.getCompanyId());
        retention.setCompanyName(member.getCompanyName());
        retention.setEventCode(request.getData().getExtEventCode()+"");
        retention.setEventDate(DateUtil.getISO8601DateByStr(request.getHappenTime()));
        retention.setFaceImg(member.getFaceImg());
        retention.setImgurl(member.getImgurl());
        retention.setPhone(member.getPhone());
        retention.setMemberId(member.getId());
        retention.setDeviceName(request.getSrcName());
        retention.setDeviceIndex(request.getSrcIndex());
        return retention;
    }
    /**
     * 海康访客事件推送
     * @param param
@@ -60,7 +267,40 @@
        log.info("【海康访客事件推送】==========开始=======:\n"+JSONObject.toJSONString(param));
        String result = null;
        try {
            if(param == null || param.getParams() == null || param.getParams().getEvents()==null){
                return null;
            }
            //门禁事件集合
            List<EventVisitInfoRequest> events  = param.getParams().getEvents();
            List<VisitEvent> list = new ArrayList<>();
            List<Integer> delRetentionLis = new ArrayList<>();
            List<Retention> retentionList = new ArrayList<>();
            for(EventVisitInfoRequest request : events){
                if(request.getData() ==null ||StringUtils.isBlank(request.getData().getVisitorId())){
                    continue;
                }
                //海康访客记录编码
                if(StringUtils.isNotBlank(request.getData().getVisitorId())){
                    //根据访客推送访客记录编码,处理访客记录、在场人员等信息
                    dealVisitDataByRequst(request,delRetentionLis,retentionList);
                }
                //封装门禁事件信息表对象
                list.add(getVisitEventModelByRequest(request));
            }
            if(list.size()>0){
                //插入门禁记录
                visitEventMapper.insertBatchSomeColumn(list);
            }
            if(delRetentionLis.size()>0){
                //先删除原有的在场人员(普通访客)
                retentionMapper.delete(new UpdateWrapper<Retention>().lambda()
                        .eq(Retention::getType,Constants.memberType.visitor)
                        .in(Retention::getMemberId,delRetentionLis));
            }
            if(retentionList.size()>0){
                //再插入最新的在厂人员
                retentionMapper.insertBatchSomeColumn(retentionList);
            }
            log.error("【海康访客事件推送】========成功=======");
        }catch (Exception e){
@@ -69,6 +309,128 @@
        saveInterfaceLog(param,"/business/hksync/push/visit",result);
        return  null;
    }
    /**
     *  根据访客推送访客记录编码,处理访客记录、在场人员等信息
     */
    private void dealVisitDataByRequst(EventVisitInfoRequest request, List<Integer> delRetentionLis, List<Retention> retentionList) {
        EventVisitDataRequest model = request.getData();
        MPJLambdaWrapper<Visits> queryWrapper = new MPJLambdaWrapper<>();
        queryWrapper.selectAll(Visits.class);
        queryWrapper.selectAs(Member::getType,Visits::getMemberType);
        queryWrapper.eq(Visits::getHkId,model.getVisitorId() );
        queryWrapper.leftJoin(Member.class,Member::getId,Visits::getMemberId );
        queryWrapper.last("limit 1");
        Visits visits = visitsMapper.selectJoinOne(Visits.class,queryWrapper);
        if(visits !=null){
            //如果人员信息存在,则删除之前的所有进场数据(无论此次推送是进厂还是出场推送事件)
            delRetentionLis.add(visits.getMemberId());
            if(dataSyncConfig.getOrgUserDataOrigin() == DataSyncConfig.origin.hk){
                //如果是伊利大屏项目,不做处理
                return;
            }
            Visits updateVistis = new Visits();
            updateVistis.setId(visits.getId());
            if(Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.VISIT_SIGN_IN.getKey()){
                //如果是访客登记,录入人员的在场数据记录
                retentionList.add(getRetentionModelByVisitRequest(visits,request));
                //来访时间
                updateVistis.setStatus(Constants.VisitStatus.signin);
                updateVistis.setInDate(DateUtil.getISO8601DateByStr(model.getStartTime()));
                updateVistis.setOutDate(DateUtil.getISO8601DateByStr(model.getEndTime()));
                //更新最新来访时间
                Member member = new Member();
                member.setLastVisitDate(updateVistis.getInDate());
                member.setId(visits.getMemberId());
                memberMapper.updateById(member);
            }else {
                //如果是访客签离事件
                updateVistis.setStatus(Constants.VisitStatus.signout);
                updateVistis.setInDate(DateUtil.getISO8601DateByStr(model.getStartTime()));
                updateVistis.setOutDate(DateUtil.getISO8601DateByStr(model.getEndTime()));
                updateVistis.setOutType(Constants.ZERO);
                updateVistis.setOutInfo("访客正常签离");
            }
            updateVistis.setEditDate(new Date());
            //更新访客来访或者签离时间信息
            visitsMapper.updateById(updateVistis) ;
        }
    }
    private VisitEvent getVisitEventModelByRequest(EventVisitInfoRequest request) {
        VisitEvent event = new VisitEvent();
        event.setIsdeleted(Constants.ZERO);
        event.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime()));
        event.setVisitorWorkUint(request.getData().getVisitorWorkUint());
        event.setVisitorId(request.getData().getVisitorId());
        event.setVisitorCode(request.getData().getVisitorCode());
        event.setTimeout(request.getTimeout());
        event.setSvrIndexCode(request.getData().getSvrIndexCode());
        event.setHappenTime(request.getHappenTime());
        event.setStatus(request.getStatus());
        event.setEndTime(request.getData().getEndTime());
        event.setStartTime(request.getData().getStartTime());
        event.setSrcType(request.getSrcType());
        event.setSrcParentIndex(request.getSrcParentIndex());
        event.setSrcName(request.getSrcName());
        event.setSrcIndex(request.getSrcIndex());
        event.setSignOrg(request.getData().getSignOrg());
        event.setSex(request.getData().getSex());
        event.setPurpose(request.getData().getPurpose());
        event.setPhone(request.getData().getPhone());
        event.setBeVisitedPersonId(request.getData().getBeVisitedPersonId());
        event.setBeVisitedPersonName(request.getData().getBeVisitedPersonName());
        event.setBeVisitedPersonOrg(request.getData().getBeVisitedPersonOrg());
        event.setBeVisitedPersonOrgId(request.getData().getBeVisitedPersonOrgId());
        event.setVisitorWorkUint(request.getData().getVisitorWorkUint());
        event.setPhotoUrl(getHkImgUrl(request.getData().getPhotoUrl()));
        event.setPersonName(request.getData().getPersonName());
        event.setCarNo(request.getData().getCarNo());
        event.setCaptureUrl(request.getData().getCaptureUrl());
        if(StringUtils.isNotBlank(request.getData().getCaptureUrl())){
            event.setCaptureUrl(HKConstants.IMG_INDEX+request.getData().getCaptureUrl());
        }
        if(StringUtils.isNotBlank(request.getData().getPhotoUrl())){
            event.setPhotoUrl(HKConstants.IMG_INDEX+request.getData().getPhotoUrl());
        }
        event.setIdType(request.getData().getIdType());
        String idnum =request.getData().getIdNo();
        if(StringUtils.isNotBlank(idnum)){
            //身份证号存储密文
            event.setIdNo(DESUtil.encrypt(Constants.EDS_PWD,idnum));//身份证号加密
            //脱敏手机号显示n
            event.setIdcardDecode(Constants.getTuominStr(idnum));
        }
        event.setEventType(request.getEventType());
        event.setEventId(request.getEventId());
        return event;
    }
    private Retention getRetentionModelByVisitRequest(Visits visits, EventVisitInfoRequest request) {
        Retention retention = new Retention();
        retention.setIsdeleted(Constants.ZERO);
        retention.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime()));
        retention.setClasses(visits.getClasses());
        retention.setCode(visits.getCode());
        retention.setIdcardNo(visits.getIdcardNo());
        retention.setIdcardDecode(visits.getIdcardDecode());
        retention.setName(visits.getName());
        retention.setBirthday(visits.getBirthday());
        retention.setType(visits.getMemberType());
        retention.setCompanyId(visits.getCompanyId());
        retention.setCompanyName(visits.getCompanyName());
        retention.setEventCode(request.getSrcType()+"");
        retention.setEventDate(retention.getCreateDate());
        retention.setFaceImg(visits.getFaceImg());
        retention.setImgurl(visits.getImgurl());
        retention.setPhone(visits.getPhone());
        retention.setMemberId(visits.getMemberId());
//        retention.setDeviceName(request.getSrcName());
//        retention.setDeviceIndex(request.getSrcIndex());
        return retention;
    }
    /**
@@ -82,7 +444,35 @@
        String result = null;
        log.info("【海康停车场事件推送】========开始=========:\n"+JSONObject.toJSONString(param));
        try {
            if(param == null || param.getParams() == null || param.getParams().getEvents()==null){
                return null;
            }
            //门禁事件集合
            List<EventParkInfoRequest> events  = param.getParams().getEvents();
            List<CarEvent> list = new ArrayList<>();
            List<Retention> retentionList = new ArrayList<>();
            List<String> delRetentionList = new ArrayList<>();
            for(EventParkInfoRequest request : events){
                if(request.getData() ==null ||StringUtils.isBlank(request.getData().getPlateNo())){
                    continue;
                }
                //封装事件信息表对象
                list.add(getParkEventModelByRequest(request,delRetentionList,retentionList));
            }
            if(list.size()>0){
                //插入门禁记录
                carEventMapper.insertBatchSomeColumn(list);
            }
            if(delRetentionList.size()>0){
                //先删除原有的在场人员(内部人员)
                retentionMapper.delete(new UpdateWrapper<Retention>().lambda()
                        .eq(Retention::getType,Constants.THREE)
                        .in(Retention::getCarNo,delRetentionList));
            }
            if(retentionList.size()>0){
                //再插入最新的在厂人员
                retentionMapper.insertBatchSomeColumn(retentionList);
            }
            log.error("【海康停车场事件推送】========成功=======");
        }catch (Exception e){
@@ -92,6 +482,98 @@
        return  null;
    }
    /**
     * 根据推送数据封装停车事件对象信息
     * @param request
     * @return
     */
    private CarEvent getParkEventModelByRequest(EventParkInfoRequest request, List<String> delRetentionList , List<Retention> retentionList ) {
        CarEvent event = new CarEvent();
        event.setIsdeleted(Constants.ZERO);
        event.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime()));
        event.setVehicleType(request.getData().getVehicleType());
        event.setVehicleColor(request.getData().getVehicleColor());
        event.setVehicleClass(request.getData().getVehicleClass());
        event.setTimestr(request.getData().getTime());
        event.setEventId(request.getEventId());
        event.setTimeout(request.getTimeout());
        event.setSvrIndex(request.getData().getSvrIndex());
        event.setSubModel(request.getData().getSubModel());
        event.setSubLogo(request.getData().getSubLogo());
        event.setStatus(request.getStatus());
        event.setSrcType(request.getSrcType());
        event.setSrcParentIndex(request.getSrcParentIndex());
        event.setSrcName(request.getSrcName());
        event.setSrcIndex(request.getSrcIndex());
        event.setRoadwayType(request.getData().getRoadwayType());
        event.setRoadwayName(request.getData().getRoadwayName());
        event.setRoadwayIndex(request.getData().getRoadwayIndex());
        event.setPlateType(request.getData().getPlateType());
        event.setTimeout(request.getTimeout());
        event.setPlateNos(request.getData().getPlateNo());
        event.setPlateColor(request.getData().getPlateColor());
        event.setPlateBelieve(request.getData().getPlateBelieve());
        event.setParkName(request.getData().getParkName());
        event.setParkIndex(request.getData().getParkIndex());
        event.setMainLogo(request.getData().getMainLogo());
        event.setInoutType(request.getData().getInoutType());
        event.setHappenTime(request.getHappenTime());
        event.setGateName(request.getData().getGateName());
        event.setGateIndex(request.getData().getGateIndex());
        event.setEventType(request.getEventType());
        event.setEventIndex(request.getData().getEventIndex());
        event.setEventCmd(request.getData().getEventCmd());
        event.setCardNo(request.getData().getCardNo());
        event.setCarAttributeName(request.getData().getCarAttributeName());
        if(request.getData().getInResult()!=null && request.getData().getInResult().getRlsResult() !=null ){
            //放行方式
            event.setReleaseWay(request.getData().getInResult().getRlsResult().getReleaseWay());
            event.setReleaseAuth(request.getData().getInResult().getRlsResult().getReleaseAuth());
            event.setReleaseReason(request.getData().getInResult().getRlsResult().getReleaseReason());
            event.setReleaseResult(request.getData().getInResult().getRlsResult().getReleaseResult());
            event.setReleaseResultEx(request.getData().getInResult().getRlsResult().getReleaseResultEx());
        }
        if(request.getData().getPicUrl()!=null){
            //车辆和和车牌照片
            event.setVehiclePicUrl(getHkImgUrl(request.getData().getPicUrl().getVehiclePicUrl()));
            event.setPlatePicUrl(getHkImgUrl(request.getData().getPicUrl().getPlatePicUrl()));
        }
        if(StringUtils.isNotBlank(event.getPlateNos())){
                ParkBook cars = parkBookMapper.selectOne(new QueryWrapper<ParkBook>().lambda()
                        .eq(ParkBook::getCarCode,event.getPlateNos())
                                .eq(ParkBook::getIsdeleted,Constants.ONE )
                        .last("limit 1" ));
                if(cars!=null){
                    event.setMemberId(cars.getMemberId());
                }
            if(Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.PARK_PASS_IN.getKey()){
                //如果是入厂放行
                delRetentionList.add(event.getPlateNos());
                retentionList.add(getRetentionModelByParkRequest(request));
            }else if(Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.PARK_PASS_OUT.getKey()){
                //如果是出场放行
                delRetentionList.add(event.getPlateNos());
            }
        }
        return event;
    }
    private Retention getRetentionModelByParkRequest(EventParkInfoRequest request) {
        Retention retention = new Retention();
        retention.setIsdeleted(Constants.ZERO);
        retention.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime()));
        retention.setCarNo(request.getData().getPlateNo());
        retention.setType(Constants.THREE);
//        retention.setDeviceName(request.getSrcName());
//        retention.setDeviceIndex(request.getSrcIndex());
        return retention;
    }
    private void saveInterfaceLog(Object param, String path,String result) {
        InterfaceLog hkMonitoryLogDO=new InterfaceLog();
@@ -104,7 +586,7 @@
        hkMonitoryLogDO.setRepose(result);
        hkMonitoryLogDO.setName(path);
        hkMonitoryLogDO.setUrl(path);
        interfaceLogService.create(hkMonitoryLogDO);
        interfaceLogMapper.insert(hkMonitoryLogDO);
    }