| | |
| | | List<EventPlatformCarsInfoRequest> events = param.getParams().getEvents(); |
| | | List<PlatformEvent> eventList = new ArrayList<>(); |
| | | for(EventPlatformCarsInfoRequest request : events){ |
| | | if( request.getData() ==null || request.getData().size()==0){ |
| | | if( request.getData() ==null ){ |
| | | 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;//监控点未同步,跳过处理 |
| | | EventPlatformCarsDataRequest data = request.getData(); |
| | | if( data.getHPVehicleStatus() ==null ){ |
| | | 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()){ |
| | | eventList.add(initPlatformEventModel(request,data,status));//封装事件(已月台通道为维度) |
| | | if(StringUtils.isBlank(status.getPlateNo())){ |
| | | continue;//如果车辆信息为空,不处理直接跳过 |
| | | } |
| | | PlatformJob job = platformJobMapper.selectJoinOne(PlatformJob.class, new MPJLambdaWrapper<PlatformJob>() |
| | | .selectAll(PlatformJob.class) |
| | | .selectAs(Platform::getName,PlatformJob::getPlatformName) |
| | | .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId) |
| | | .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;//如果没查到对应的作业或者作业并非作业中,不做业务处理 |
| | | } |
| | | if(Constants.equalsInteger(job.getType(), Constants.THREE) || Constants.equalsInteger(job.getType(), Constants.TWO)){ |
| | | //如果是wms推送的外协车辆外协车辆 |
| | | if(platformWmsDetailMapper.selectCount(new QueryWrapper<PlatformWmsDetail>().lambda() |
| | | .eq(PlatformWmsDetail::getIsdeleted,Constants.ZERO) |
| | | .eq(PlatformWmsDetail::getJobId,job.getId()) |
| | | .ne(PlatformWmsDetail::getLockStatus,Constants.ONE)) >0){ |
| | | 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); |
| | | } |
| | | if(job.getStartDate() == null){ |
| | | update.setStartDate(update.getEditDate()); |
| | | } |
| | | update.setStatus(Constants.PlatformJobStatus.WORKING.getKey());//开始作业 |
| | | }else{ |
| | | continue;//其他状态不处理,跳过 |
| | | } |
| | | EventPlatformCarsStatusInfoRequest status = data.getHPVehicleStatus(); |
| | | eventList.add(initPlatformEventModel(request,data,status));//封装事件(已月台通道为维度) |
| | | if(StringUtils.isBlank(status.getPlateNo())){ |
| | | continue;//如果车辆信息为空,不处理直接跳过 |
| | | } |
| | | PlatformJob job = platformJobMapper.selectJoinOne(PlatformJob.class, new MPJLambdaWrapper<PlatformJob>() |
| | | .selectAll(PlatformJob.class) |
| | | .selectAs(Platform::getName,PlatformJob::getPlatformName) |
| | | .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId) |
| | | .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;//如果没查到对应的作业或者作业并非作业中,不做业务处理 |
| | | } |
| | | if(Constants.equalsInteger(job.getType(), Constants.THREE) || Constants.equalsInteger(job.getType(), Constants.TWO)){ |
| | | //如果是wms推送的外协车辆外协车辆 |
| | | if(platformWmsDetailMapper.selectCount(new QueryWrapper<PlatformWmsDetail>().lambda() |
| | | .eq(PlatformWmsDetail::getIsdeleted,Constants.ZERO) |
| | | .eq(PlatformWmsDetail::getJobId,job.getId()) |
| | | .ne(PlatformWmsDetail::getLockStatus,Constants.ONE)) >0){ |
| | | 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); |
| | | } |
| | | if(job.getStartDate() == null){ |
| | | update.setStartDate(update.getEditDate()); |
| | | } |
| | | update.setStatus(Constants.PlatformJobStatus.WORKING.getKey());//开始作业 |
| | | }else{ |
| | | continue;//其他状态不处理,跳过 |
| | | } |
| | | //暂时不做相关自动完成作业业务处理 |
| | | // dealPlatformJobLogBiz(update,status);//记录作业日志 |
| | | } |
| | | break;//只处理第一个数据状态 |
| | | } |
| | | } |
| | | if(eventList.size()>0){ |
| | | //生成事件 |