k94314517
2024-09-25 67ff8bd1223a488542f2504db84f68d17846d149
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -7,9 +7,7 @@
import com.doumee.config.SpringContextUtil;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.haikang.model.HKConstants;
import com.doumee.core.haikang.model.param.request.CustomBroadcastRequest;
import com.doumee.core.haikang.model.param.request.TransparentChannelBodyRequest;
import com.doumee.core.haikang.model.param.request.TransparentChannelHeadRequest;
import com.doumee.core.haikang.model.param.request.*;
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;
@@ -23,9 +21,11 @@
import com.doumee.dao.business.join.VisitsJoinMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.dao.web.reqeust.SavePlatformWarnEventDTO;
import com.doumee.service.business.DeviceEventService;
import com.doumee.service.business.InterfaceLogService;
import com.doumee.service.business.MemberService;
import com.doumee.service.business.impl.PlatformWarnEventServiceImpl;
import com.github.yulichang.interfaces.MPJBaseJoin;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.hikvision.artemis.sdk.config.ArtemisConfig;
@@ -84,6 +84,8 @@
    private PlatformEventMapper platformEventMapper;
    @Autowired
    private PlatformLogMapper platformLogMapper;
    @Autowired
    private PlatformWarnEventServiceImpl platformWarnEventService;
    /**
     * 海康门禁事件推送
     * @param param
@@ -334,7 +336,7 @@
     * @return
     */
    @Override
    public String    dealVisitEventIccm(EventVisitIccmRequest param, HttpServletResponse response){
    public String     dealVisitEventIccm(EventVisitIccmRequest param, HttpServletResponse response){
        log.info("【海康访客事件推送】==========开始=======:\n"+JSONObject.toJSONString(param));
        String result = null;
        try {
@@ -354,7 +356,8 @@
                    continue;
                }
                //海康访客记录编码
                dealVisitDataByRequstIccm(request,delRetentionLis,retentionList,list);
                dealVisitDataByRequstIccm(request,delRetentionLis,retentionList);
                list.add(getVisitEventModelByRequestIccm(request,request.getData().getVisitorInformationList().get(0)));
            }
            if(list.size()>0){
                //插入门禁记录
@@ -382,14 +385,14 @@
    /**
     *  根据访客推送访客记录编码,处理访客记录、在场人员等信息
     */
    private void dealVisitDataByRequstIccm(EventVisitIccmInfoRequest request, List<Integer> delRetentionLis, List<Retention> retentionList,List<VisitEvent> list) {
    private void dealVisitDataByRequstIccm(EventVisitIccmInfoRequest request, List<Integer> delRetentionLis, List<Retention> retentionList ) {
        EventVisitIccmDataRequest model = request.getData();
        EventVisitIccmInvoiceParamRequest data =  request.getData().getVisitorInvoices();
        MPJLambdaWrapper<Visits> queryWrapper = new MPJLambdaWrapper<>();
        queryWrapper.selectAll(Visits.class);
        queryWrapper.selectAs(Member::getType,Visits::getMemberType);
        queryWrapper.eq(Visits::getHkId,model.getVisitorInvoices().getInvoicesId() );//访客单号
        queryWrapper.eq(Visits::getHkId,model.getVisitorInvoices().getInvoicesNo() );//访客单号
        queryWrapper.leftJoin(Member.class,Member::getId,Visits::getMemberId );
        queryWrapper.last("limit 1");
        Visits visits = visitsMapper.selectJoinOne(Visits.class,queryWrapper);
@@ -427,6 +430,7 @@
            updateVistis.setEditDate(new Date());
            //更新访客来访或者签离时间信息
            visitsMapper.updateById(updateVistis) ;
        }
    }
    private Retention getRetentionModelByVisitRequest(Visits visits, String happentTime,String srcType) {
@@ -453,13 +457,19 @@
        return retention;
    }
    private VisitEvent getVisitEventModelByRequest(EventVisitIccmInfoRequest request,EventVisitIccmDetailParamRequest detail) {
    private VisitEvent getVisitEventModelByRequestIccm(EventVisitIccmInfoRequest request,EventVisitIccmDetailParamRequest detail) {
        if(request.getData().getTargetPerson() ==null){
            request.getData().setTargetPerson(new EventVisitIccmTargetParamRequest());
        }
        if(request.getData().getVisitorInvoices() == null){
            request.getData().setVisitorInvoices(new EventVisitIccmInvoiceParamRequest());
        }
        VisitEvent event = new VisitEvent();
        event.setIsdeleted(Constants.ZERO);
        event.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime()));
        event.setCreateDate(DateUtil.getISO8601DateByStr2(request.getHappenTime()));
        if(event.getCreateDate() == null){
            event.setCreateDate(new Date());
        }
        event.setVisitorWorkUint(detail.getUnit());
        event.setVisitorId(detail.getVisitorId());
        event.setVisitorCode(detail.getAppointmentCode());
@@ -483,7 +493,7 @@
        event.setPhotoUrl(getHkImgUrl(detail.getFacePic()));
        event.setPersonName(detail.getVisitorName());
        event.setCarNo(detail.getPlateNo());
        event.setInvoicesNo(request.getData().getVisitorInvoices().getInvoicesNo());//访客单号
        event.setIdType(detail.getCertType());
        String idnum = detail.getCertNo();
        if(StringUtils.isNotBlank(idnum)){
@@ -572,6 +582,7 @@
        event.setPhotoUrl(getHkImgUrl(request.getData().getPhotoUrl()));
        event.setPersonName(request.getData().getPersonName());
        event.setCarNo(request.getData().getCarNo());
        event.setInvoicesNo(request.getData().getVisitorId());
        event.setCaptureUrl(request.getData().getCaptureUrl());
        if(StringUtils.isNotBlank(request.getData().getCaptureUrl())){
            event.setCaptureUrl(HKConstants.IMG_INDEX+request.getData().getCaptureUrl());
@@ -614,7 +625,6 @@
        retention.setMemberId(visits.getMemberId());
//        retention.setDeviceName(request.getSrcName());
//        retention.setDeviceIndex(request.getSrcIndex());
        return retention;
    }
@@ -1020,7 +1030,13 @@
     * @param status
     */
    private void dealCarsInErrorPlatformBiz( PlatformJob model,EventPlatformCarsStatusInfoRequest status) {
        //TODO-----------------处理车辆进入错误月台业务逻辑
        //处理车辆进入错误月台业务逻辑
        SavePlatformWarnEventDTO savePlatformWarnEventDTO = new SavePlatformWarnEventDTO();
        savePlatformWarnEventDTO.setPlatformJobId(model.getId());
        savePlatformWarnEventDTO.setPlatformId(model.getPlatformId());
        savePlatformWarnEventDTO.setCarCode(model.getCarCodeFront());
        savePlatformWarnEventDTO.setEventType(Constants.PlatformWarnEvent.STOP_ERROR.getKey());
        platformWarnEventService.savePlatformWarnEvent(savePlatformWarnEventDTO);
        List<PlatformDevice> deviceList = platformDeviceMapper.selectList(new QueryWrapper<PlatformDevice>().lambda()
                .eq(PlatformDevice::getPlatformId,model.getPlatformId())
@@ -1036,23 +1052,33 @@
            }
            if(Constants.equalsInteger(device.getType(),Constants.ZERO)){
                //如果是LED
                TransparentChannelBodyRequest request = new TransparentChannelBodyRequest();
                TransparentChannelBodyRequest body = new TransparentChannelBodyRequest();
                TransparentChannelHeadRequest head = new TransparentChannelHeadRequest();
                TransparentChannelBodyParamRequest request = new TransparentChannelBodyParamRequest();
                TransparentChannelBodyRegionRequest regions = new TransparentChannelBodyRegionRequest();
                head.setAbility("cld");//固定值
                head.setTreatyType("haixuan_led_net");//固定值
                head.setDeviceIndexCode(device.getHkId());
                request.setMethod("ControlLedGereral");//固定值
                body.setMethod("ControlLedGereral");//固定值
                request.setIndexCode(device.getHkId());
                request.setActionType(0);
                request.setContent(content);
                request.setOperationType(219);//固定值
                request.setRegionNo(1);
                request.setRegionType(14);
                request.setFontColor(1);
                request.setCircleTimes(1);//循环次数
                request.setFontSize(16);//
                request.setStayTime(1);//单位??
                HKService.transparentchannel(head,request);
                regions.setActionType(32);
                regions.setContent(content);
                regions.setRegionNo(1);
                regions.setRegionType(14);
                regions.setFontColor(1);
                regions.setCircleTimes(1);//循环次数
                regions.setFontSize(32);//
                regions.setStayTime(1);//单位??
                regions.setRegionLeftTopXPos(0);
                regions.setRegionLeftTopYPos(0);
                regions.setRegionRightBottomXPos(255);
                regions.setRegionRightBottomYPos(31);
                request.setRegions(new ArrayList<>());
                request.getRegions().add(regions);
                regions.setSpeed(13);
                body.setParams(request);
                HKService.transparentchannel(head,body);
            }else  if(Constants.equalsInteger(device.getType(),Constants.ZERO)){
                //如果是广播点
                broadcastList.add(device.getHkId());
@@ -1061,9 +1087,9 @@
        if(broadcastList.size()>0){
            CustomBroadcastRequest request = new CustomBroadcastRequest();
            request.setAudioPointIndexCode(broadcastList);
            request.setPlayDuration(60);//单位秒
            request.setPlayDuration(15);//单位秒
            request.setBroadCastMode("tts");
            request.setPriority(15);
            request.setPriority(1);
            request.setState(1);//播放/停止标识 1-播放,0-停止
            request.setPlayTtsContent(content);
            HKService.customBroadcast(request);