From 1a9da0b5ef171300a5f7968a8ce09b30f9d2f793 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期日, 29 九月 2024 15:50:12 +0800 Subject: [PATCH] 最新版本 --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java | 162 ++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 127 insertions(+), 35 deletions(-) diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java index c312ebc..f7e8781 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java @@ -3,13 +3,13 @@ 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; @@ -23,9 +23,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; @@ -75,7 +77,11 @@ @Autowired private PlatformMapper platformMapper; @Autowired + private SystemDictDataBiz systemDictDataBiz; + @Autowired private PlatformDeviceMapper platformDeviceMapper; + @Autowired + private PlatformBroadcastLogMapper platformBroadcastLogMapper; @Autowired private PlatformJobMapper platformJobMapper; @Autowired @@ -84,6 +90,8 @@ private PlatformEventMapper platformEventMapper; @Autowired private PlatformLogMapper platformLogMapper; + @Autowired + private PlatformWarnEventServiceImpl platformWarnEventService; /** * 娴峰悍闂ㄧ浜嬩欢鎺ㄩ�� * @param param @@ -334,7 +342,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 +362,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 +391,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 +436,7 @@ updateVistis.setEditDate(new Date()); //鏇存柊璁垮鏉ヨ鎴栬�呯绂绘椂闂翠俊鎭� visitsMapper.updateById(updateVistis) ; + } } private Retention getRetentionModelByVisitRequest(Visits visits, String happentTime,String srcType) { @@ -453,13 +463,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 +499,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 +588,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 +631,6 @@ retention.setMemberId(visits.getMemberId()); // retention.setDeviceName(request.getSrcName()); // retention.setDeviceIndex(request.getSrcIndex()); - return retention; } @@ -876,7 +892,10 @@ if(StringUtils.isBlank(status.getPlateNo())){ continue;//濡傛灉杞﹁締淇℃伅涓虹┖锛屼笉澶勭悊鐩存帴璺宠繃 } - PlatformJob job = platformJobMapper.selectOne(new QueryWrapper<PlatformJob>().lambda() + 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 ) @@ -1001,6 +1020,7 @@ .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);//鏇存柊涓婁竴娆′綔涓氱殑瀹屾垚鏃堕棿鍜屼綔涓氭椂闀� @@ -1020,54 +1040,126 @@ * @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<>(); + List<PlatformBroadcastLog> logList = new ArrayList<>(); for(PlatformDevice device : deviceList){ if(StringUtils.isNotBlank(device.getHkId())){ continue; } if(Constants.equalsInteger(device.getType(),Constants.ZERO)){ //濡傛灉鏄疞ED - 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 = new PlatformBroadcastLog(); + log.setCreateDate(new Date()); + log.setBizType(Constants.ONE); + log.setHkDate(new Date()); + log.setObjType(Constants.ONE); + log.setIds(device.getHkNo()); + 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灞忔樉鍐呭"); + logList.add(log); + ledList.add(device.getHkId()); }else if(Constants.equalsInteger(device.getType(),Constants.ZERO)){ //濡傛灉鏄箍鎾偣 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.setNum(Constants.ONE); + log.setIds(String.join(",",broadcastList)); 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); + 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("鍙戦�佸箍鎾挱鎶ュ唴瀹�"); + logList.add(log); } + if(logList.size()>0){ + platformBroadcastLogMapper.insert(logList); + } + } + public static BaseResponse dealLedContentBiz(String hkNo, String content,int speed,int color) { + 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); + return HKService.transparentchannel(head,body); } } -- Gitblit v1.9.3