| | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.config.DataSyncConfig; |
| | | 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.BaseResponse; |
| | | 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; |
| | |
| | | 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.doumee.dao.web.reqeust.SavePlatformWarnEventDTO; |
| | | import com.doumee.service.business.impl.PlatformWarnEventServiceImpl; |
| | | 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 org.springframework.transaction.annotation.Transactional; |
| | | import org.yaml.snakeyaml.scanner.Constant; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.util.ArrayList; |
| | |
| | | @Autowired |
| | | private PlatformMapper platformMapper; |
| | | @Autowired |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | @Autowired |
| | | private PlatformDeviceMapper platformDeviceMapper; |
| | | @Autowired |
| | | private PlatformBroadcastLogMapper platformBroadcastLogMapper; |
| | | @Autowired |
| | | private PlatformJobMapper platformJobMapper; |
| | | @Autowired |
| | |
| | | private PlatformEventMapper platformEventMapper; |
| | | @Autowired |
| | | private PlatformLogMapper platformLogMapper; |
| | | @Autowired |
| | | private PlatformWarnEventServiceImpl platformWarnEventService; |
| | | /** |
| | | * 海康门禁事件推送 |
| | | * @param param |
| | |
| | | //再插入最新的在厂人员 |
| | | retentionMapper.insert(retentionList); |
| | | } |
| | | log.error("【海康门禁事件推送】========成功======="); |
| | | log.info("【海康门禁事件推送】========成功======="); |
| | | }catch (Exception e) { |
| | | log.error("【海康门禁事件推送】========失败=======:\n" + e.getMessage()); |
| | | }finally { |
| | |
| | | .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)){ |
| | | if(d!=null && !(Constants.equalsInteger(d.getIsEntrance(),Constants.ONE) && Constants.formatIntegerNum(request.getData().getExtEventInOut()) != Constants.ONE)){ |
| | | //如果是进门,录入人员的在场数据记录 |
| | | retentionList.add(getRetentionModelByRequest(member,request)); |
| | | } |
| | |
| | | //再插入最新的在厂人员 |
| | | retentionMapper.insert(retentionList); |
| | | } |
| | | log.error("【海康访客事件推送】========成功======="); |
| | | log.info("【海康访客事件推送】========成功======="); |
| | | }catch (Exception e){ |
| | | |
| | | log.error("【海康访客事件推送】========失败=======:\n"+e.getMessage()); |
| | |
| | | * @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 { |
| | |
| | | continue; |
| | | } |
| | | //海康访客记录编码 |
| | | dealVisitDataByRequstIccm(request,delRetentionLis,retentionList,list); |
| | | dealVisitDataByRequstIccm(request,delRetentionLis,retentionList); |
| | | list.add(getVisitEventModelByRequestIccm(request,request.getData().getVisitorInformationList().get(0))); |
| | | } |
| | | if(list.size()>0){ |
| | | //插入门禁记录 |
| | |
| | | //再插入最新的在厂人员 |
| | | retentionMapper.insert(retentionList); |
| | | } |
| | | log.error("【海康访客事件推送】========成功======="); |
| | | log.info("【海康访客事件推送】========成功======="); |
| | | }catch (Exception e){ |
| | | log.error("【海康访客事件推送】========失败=======:\n"+e.getMessage()); |
| | | } |
| | |
| | | /** |
| | | * 根据访客推送访客记录编码,处理访客记录、在场人员等信息 |
| | | */ |
| | | 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); |
| | |
| | | updateVistis.setEditDate(new Date()); |
| | | //更新访客来访或者签离时间信息 |
| | | visitsMapper.updateById(updateVistis) ; |
| | | |
| | | } |
| | | } |
| | | private Retention getRetentionModelByVisitRequest(Visits visits, String happentTime,String srcType) { |
| | |
| | | |
| | | 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()); |
| | |
| | | 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)){ |
| | |
| | | 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()); |
| | |
| | | retention.setMemberId(visits.getMemberId()); |
| | | // retention.setDeviceName(request.getSrcName()); |
| | | // retention.setDeviceIndex(request.getSrcIndex()); |
| | | |
| | | return retention; |
| | | } |
| | | |
| | |
| | | //再插入最新的在厂人员 |
| | | retentionMapper.insert(retentionList); |
| | | } |
| | | log.error("【海康停车场事件推送】========成功======="); |
| | | log.info("【海康停车场事件推送】========成功======="); |
| | | }catch (Exception e){ |
| | | |
| | | log.error("【海康停车场事件推送】========失败=======:\n"+e.getMessage()); |
| | |
| | | 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())); |
| | |
| | | delRetentionList.add(event.getPlateNos()); |
| | | } |
| | | } |
| | | |
| | | return event; |
| | | |
| | | } |
| | | |
| | | private Retention getRetentionModelByParkRequest(EventParkInfoRequest request) { |
| | |
| | | retention.setType(Constants.THREE); |
| | | // retention.setDeviceName(request.getSrcName()); |
| | | // retention.setDeviceIndex(request.getSrcIndex()); |
| | | |
| | | return retention; |
| | | } |
| | | |
| | |
| | | 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){ |
| | | EventPlatformDataRequest data = request.getData(); |
| | | if(data ==null ){ |
| | | continue; |
| | | } |
| | | Integer workStatus = 0; |
| | | for(EventPlatformDataRequest data : dataList){ |
| | | if( data.getHPWorkingStatus() ==null || data.getHPWorkingStatus().size() ==0){ |
| | | continue;//如何推送状态集合为空,不处理跳过 |
| | | } |
| | |
| | | .last("limit 1")); |
| | | if(model ==null){ |
| | | continue;//监控点未同步,跳过处理 |
| | | |
| | | } |
| | | //各车道车辆状态 |
| | | for(EventPlatformStatusInfoRequest status : data.getHPWorkingStatus()){ |
| | | |
| | | |
| | | } |
| | | break;//只处理第一个数据状态 |
| | | } |
| | | } |
| | | result = "成功"; |
| | | log.error("【海康月台工作状态事件推送】========成功======="); |
| | | log.info("【海康月台工作状态事件推送】========成功======="); |
| | | }catch (Exception e) { |
| | | result = "失败"+e.getMessage(); |
| | | log.error("【海康月台工作状态事件推送】========失败=======:\n" + e.getMessage()); |
| | |
| | | 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.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;//如果没查到对应的作业或者作业并非作业中,不做业务处理 |
| | | } |
| | | 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){ |
| | | //生成事件 |
| | | platformEventMapper.insert(eventList); |
| | | } |
| | | result = "成功"; |
| | | log.error("【海康月台车辆状态事件推送】========成功======="); |
| | | log.info("【海康月台车辆状态事件推送】========成功======="); |
| | | }catch (Exception e) { |
| | | result = "失败"+e.getMessage(); |
| | | log.error("【海康月台车辆状态事件推送】========失败=======:\n" + e.getMessage()); |
| | |
| | | .orderByDesc(PlatformLog::getCreateDate) |
| | | .last(" limit 1")); |
| | | String v = Long.toString(job.getDoneDate().getTime() - lastBeginPlatform.getCreateDate().getTime() / 1000) ; |
| | | lastBeginPlatform.setRemark(job.getPlatformId().toString()); |
| | | lastBeginPlatform.setParam3(v); |
| | | lastBeginPlatform.setParam2(DateUtil.getDate(lastBeginPlatform.getCreateDate(),"yyyy-MM-dd HH:mm:ss")); |
| | | platformLogMapper.updateById(lastBeginPlatform);//更新上一次作业的完成时间和作业时长 |
| | |
| | | * @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); |
| | | |
| | | int speed = 13; |
| | | try { |
| | | speed = Integer.parseInt(systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.LED_CONTENT_SPEED).getCode()); |
| | | }catch (Exception e){ |
| | | |
| | | } |
| | | List<PlatformDevice> deviceList = platformDeviceMapper.selectList(new QueryWrapper<PlatformDevice>().lambda() |
| | | .eq(PlatformDevice::getPlatformId,model.getPlatformId()) |
| | | .eq(PlatformDevice::getIsdeleted,Constants.ZERO)); |
| | | if(deviceList ==null || deviceList.size() == 0){ |
| | | return; |
| | | } |
| | | String content ="车辆"+model.getCarCodeFront()+"停错月台了"; |
| | | String content =Constants.PlatformLedContent.WRONG_IN.getInfo(); |
| | | content = content.replace("${param}",model.getPlatformName()); |
| | | content = content.replace("${param2}",model.getCarCodeFront()); |
| | | List<String> broadcastList = new ArrayList<>(); |
| | | List<String> ledList = new ArrayList<>(); |
| | | String bNames = ""; |
| | | List<PlatformBroadcastLog> logList = new ArrayList<>(); |
| | | for(PlatformDevice device : deviceList){ |
| | | if(StringUtils.isNotBlank(device.getHkId())){ |
| | | continue; |
| | | } |
| | | if(Constants.equalsInteger(device.getType(),Constants.ZERO)){ |
| | | //如果是LED |
| | | TransparentChannelBodyRequest request = new TransparentChannelBodyRequest(); |
| | | TransparentChannelHeadRequest head = new TransparentChannelHeadRequest(); |
| | | head.setAbility("cld");//固定值 |
| | | head.setTreatyType("haixuan_led_net");//固定值 |
| | | head.setDeviceIndexCode(device.getHkId()); |
| | | request.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); |
| | | 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)){ |
| | | //如果是广播点 |
| | | bNames += device.getName()+";"; |
| | | broadcastList.add(device.getHkId()); |
| | | } |
| | | } |
| | | if(broadcastList.size()>0){ |
| | | CustomBroadcastRequest request = new CustomBroadcastRequest(); |
| | | request.setAudioPointIndexCode(broadcastList); |
| | | request.setPlayDuration(60);//单位秒 |
| | | request.setBroadCastMode("tts"); |
| | | request.setPriority(15); |
| | | request.setState(1);//播放/停止标识 1-播放,0-停止 |
| | | request.setPlayTtsContent(content); |
| | | HKService.customBroadcast(request); |
| | | PlatformBroadcastLog log = dealBroadcastBiz(model,broadcastList,bNames); |
| | | logList.add(log); |
| | | } |
| | | if(logList.size()>0){ |
| | | platformBroadcastLogMapper.insert(logList); |
| | | } |
| | | } |
| | | |
| | | private PlatformBroadcastLog dealBroadcastBiz(PlatformJob model, List<String> broadcastList,String bNames) { |
| | | PlatformBroadcastLog log = new PlatformBroadcastLog(); |
| | | String content1 =Constants.PlatformBroadcastContent.WRONG_IN.getInfo(); |
| | | 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(); |
| | | TransparentChannelBodyRegionRequest regions = new TransparentChannelBodyRegionRequest(); |
| | | head.setAbility("cld");//固定值 |
| | | head.setTreatyType("haixuan_led_net");//固定值 |
| | | head.setDeviceIndexCode(hkNo); |
| | | body.setMethod("ControlLedGereral");//固定值 |
| | | request.setIndexCode(hkNo); |
| | | request.setOperationType(219);//固定值 |
| | | regions.setActionType(32); |
| | | regions.setContent(content); |
| | | regions.setRegionNo(1); |
| | | regions.setRegionType(14); |
| | | regions.setFontColor(color>0?color: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(speed>0?speed:13); |
| | | body.setParams(request); |
| | | 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; |
| | | } |
| | | } |