k94314517
2024-10-10 362ec4c6c00747fb869b97ad3f0f3ce12b3e47aa
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.config.DataSyncConfig;
import com.doumee.core.haikang.model.HKConstants;
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.EventAcsInfoRequest;
@@ -864,20 +865,25 @@
                if( data.getHPVehicleStatus() ==null  ){
                    continue;//如何推送状态集合为空,不处理跳过
                }
                //各车道车辆状态
                EventPlatformCarsStatusInfoRequest status = data.getHPVehicleStatus();
                PlatformEvent event = initPlatformEventModel(request,data,status);
                if(StringUtils.isBlank(status.getPlateNo())){
                    eventList.add(event);//封装事件(已月台通道为维度)
                    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){
                    eventList.add(event);//封装事件(已月台通道为维度)
                    continue;//监控点未同步,跳过处理
                }
                    //各车道车辆状态
                EventPlatformCarsStatusInfoRequest status = data.getHPVehicleStatus();
                eventList.add(initPlatformEventModel(request,data,status));//封装事件(已月台通道为维度)
                if(StringUtils.isBlank(status.getPlateNo())){
                    continue;//如果车辆信息为空,不处理直接跳过
                }
                event.setPlatformId(model.getPlatformId());//月台编码
                eventList.add(event);//封装事件(已月台通道为维度)
                //截掉第一个颜色汉字,去掉“挂”字
                status.setPlateNo(status.getPlateNo().substring(1,status.getPlateNo().length()).replace("挂",""));
                PlatformJob job = platformJobMapper.selectJoinOne(PlatformJob.class, new MPJLambdaWrapper<PlatformJob>()
                        .selectAll(PlatformJob.class)
                        .selectAs(Platform::getName,PlatformJob::getPlatformName)
@@ -886,12 +892,15 @@
                        .eq(!StringUtils.equals(status.getStockStatus(),"front"),PlatformJob::getCarCodeBack,status.getPlateNo() )//后车牌号
                        .eq(PlatformJob::getIsdeleted,Constants.ZERO )
                        .last("limit 1 "));
                if(job == null){
                    continue;//如果作业为空,跳过处理
                }
                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())){
                   /* if(job ==null && !Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())){
                        continue;//如果没查到对应的作业或者作业并非作业中,不做业务处理
                    }
                    if(Constants.equalsInteger(job.getType(), Constants.THREE) || Constants.equalsInteger(job.getType(), Constants.TWO)){
@@ -1056,25 +1065,7 @@
            }
            if(Constants.equalsInteger(device.getType(),Constants.ZERO)){
                //如果是LED
                PlatformBroadcastLog log = new PlatformBroadcastLog();
                log.setCreateDate(new Date());
                log.setBizType(Constants.ONE);
                log.setHkDate(new Date());
                log.setObjType(Constants.ONE);
                log.setIds(device.getHkNo());
                log.setRemark(device.getName());
                log.setInfo(content);
                log.setNum(Constants.ONE);
                BaseResponse response = dealLedContentBiz(device.getHkNo(),content,speed,1);
                if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
                    log.setHkInfo("请求失败:"+JSONObject.toJSONString(response));
                    log.setHkStatus(Constants.THREE);
                }else{
                    log.setHkInfo("请求成功");
                    log.setHkStatus(Constants.TWO);
                }
                log.setDeviceType(Constants.ONE);
                log.setName("设置LED屏显内容");
                PlatformBroadcastLog log = dealLedContentBiz(device.getHkNo(),device.getName(),content,speed,1);
                logList.add(log);
                ledList.add(device.getHkId());
            }else  if(Constants.equalsInteger(device.getType(),Constants.ZERO)){
@@ -1083,36 +1074,8 @@
                broadcastList.add(device.getHkId());
            }
        }
        if(broadcastList.size()>0){
            String content1 =Constants.PlatformBroadcastContent.WRONG_IN.getInfo();
            content1 = content1.replace("${param}",model.getCarCodeFront());
            PlatformBroadcastLog log = new PlatformBroadcastLog();
            log.setCreateDate(new Date());
            log.setBizType(Constants.ONE);
            log.setHkDate(new Date());
            log.setObjType(Constants.ONE);
            log.setInfo(content1);
            log.setRemark(bNames);
            log.setNum(Constants.ONE);
            log.setIds(String.join(",",broadcastList));
            CustomBroadcastRequest request = new CustomBroadcastRequest();
            request.setAudioPointIndexCode(broadcastList);
            request.setPlayDuration(15);//单位秒
            request.setBroadCastMode("tts");
            request.setPriority(1);
            request.setState(1);//播放/停止标识 1-播放,0-停止
            request.setPlayTtsContent(content1);
            BaseResponse response =  HKService.customBroadcast(request);
            if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
                log.setHkInfo("请求失败:"+JSONObject.toJSONString(response));
                log.setHkStatus(Constants.THREE);
            }else{
                log.setHkInfo("请求成功");
                log.setHkStatus(Constants.TWO);
            }
            log.setDeviceType(Constants.ONE);
            log.setName("发送广播播报内容");
            PlatformBroadcastLog log = dealBroadcastBiz(model,broadcastList,bNames,Constants.PlatformBroadcastContent.WRONG_IN.getInfo());
            logList.add(log);
        }
        if(logList.size()>0){
@@ -1120,7 +1083,57 @@
        }
    }
    public static BaseResponse dealLedContentBiz(String hkNo, String content,int speed,int color) {
    /**
     * 广播通知
     * @param model
     * @param broadcastList
     * @param bNames
     * @param content1
     * @return
     */
    public static PlatformBroadcastLog dealBroadcastBiz(PlatformJob model, List<String> broadcastList,String bNames , String content1) {
        PlatformBroadcastLog log = new PlatformBroadcastLog();
        content1 = content1.replace("${param}",model.getCarCodeFront());
        log.setCreateDate(new Date());
        log.setBizType(Constants.ONE);
        log.setHkDate(new Date());
        log.setObjType(Constants.ONE);
        log.setInfo(content1);
        log.setRemark(bNames);
        log.setNum(Constants.ONE);
        log.setIds(String.join(",",broadcastList));
        CustomBroadcastRequest request = new CustomBroadcastRequest();
        request.setAudioPointIndexCode(broadcastList);
        request.setPlayDuration(15);//单位秒
        request.setBroadCastMode("tts");
        request.setPriority(1);
        request.setState(1);//播放/停止标识 1-播放,0-停止
        request.setPlayTtsContent(content1);
        BaseResponse response =  HKService.customBroadcast(request);
        if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
            log.setHkInfo("请求失败:"+JSONObject.toJSONString(response));
            log.setHkStatus(Constants.THREE);
        }else{
            log.setHkInfo("请求成功");
            log.setHkStatus(Constants.TWO);
        }
        log.setDeviceType(Constants.ONE);
        log.setName("发送广播播报内容");
        return  log;
    }
    public static PlatformBroadcastLog dealLedContentBiz(String hkNo,String hkName, String content,int speed,int color) {
        PlatformBroadcastLog log = new PlatformBroadcastLog();
        log.setCreateDate(new Date());
        log.setBizType(Constants.ONE);
        log.setHkDate(new Date());
        log.setObjType(Constants.ONE);
        log.setIds(hkNo);
        log.setRemark(hkName);
        log.setInfo(content);
        log.setNum(Constants.ONE);
        TransparentChannelBodyRequest body = new TransparentChannelBodyRequest();
        TransparentChannelHeadRequest head = new TransparentChannelHeadRequest();
        TransparentChannelBodyParamRequest request = new TransparentChannelBodyParamRequest();
@@ -1147,6 +1160,16 @@
        request.getRegions().add(regions);
        regions.setSpeed(speed>0?speed:13);
        body.setParams(request);
       return HKService.transparentchannel(head,body);
        BaseResponse response =  HKService.transparentchannel(head,body);
        if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
            log.setHkInfo("请求失败:"+JSONObject.toJSONString(response));
            log.setHkStatus(Constants.THREE);
        }else{
            log.setHkInfo("请求成功");
            log.setHkStatus(Constants.TWO);
        }
        log.setDeviceType(Constants.ONE);
        log.setName("设置LED屏显内容");
        return log;
    }
}