From dc5b54657495c06234bb4332af0ca40c5c0b8b18 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期一, 02 九月 2024 10:11:12 +0800 Subject: [PATCH] 最新版本 --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java | 144 ++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 134 insertions(+), 10 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 09d273b..9cbfcec 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 @@ -5,12 +5,17 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; 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.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.core.haikang.model.param.request.event.parks.*; import com.doumee.core.haikang.model.param.request.event.visit.*; +import com.doumee.core.haikang.service.HKService; import com.doumee.core.utils.Constants; import com.doumee.core.utils.DESUtil; import com.doumee.core.utils.DateUtil; @@ -28,6 +33,8 @@ 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; @@ -69,7 +76,13 @@ private PlatformMapper platformMapper; @Autowired private PlatformDeviceMapper platformDeviceMapper; + @Autowired private PlatformJobMapper platformJobMapper; + @Autowired + private PlatformWmsDetailMapper platformWmsDetailMapper; + @Autowired + private PlatformEventMapper platformEventMapper; + @Autowired private PlatformLogMapper platformLogMapper; /** * 娴峰悍闂ㄧ浜嬩欢鎺ㄩ�� @@ -844,6 +857,7 @@ } //闂ㄧ浜嬩欢闆嗗悎 List<EventPlatformCarsInfoRequest> events = param.getParams().getEvents(); + List<PlatformEvent> eventList = new ArrayList<>(); for(EventPlatformCarsInfoRequest request : events){ if( request.getData() ==null || request.getData().size()==0){ continue; @@ -863,6 +877,7 @@ } //鍚勮溅閬撹溅杈嗙姸鎬� for(EventPlatformCarsStatusInfoRequest status : data.getHPVehicleStatus()){ + eventList.add(initPlatformEventModel(request,data,status));//灏佽浜嬩欢锛堝凡鏈堝彴閫氶亾涓虹淮搴︼級 if(StringUtils.isBlank(status.getPlateNo())){ continue;//濡傛灉杞﹁締淇℃伅涓虹┖锛屼笉澶勭悊鐩存帴璺宠繃 } @@ -879,25 +894,39 @@ 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)){ + //濡傛灉鏄痺ms鎺ㄩ�佺殑澶栧崗杞﹁締澶栧崗杞﹁締 + 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;//鍏朵粬鐘舵�佷笉澶勭悊锛岃烦杩� } - platformJobMapper.updateById(update);//鏇存柊浣滀笟鐘舵�� dealPlatformJobLogBiz(update,status);//璁板綍浣滀笟鏃ュ織 } break;//鍙鐞嗙涓�涓暟鎹姸鎬� } + } + if(eventList.size()>0){ + //鐢熸垚浜嬩欢 + platformEventMapper.insert(eventList); } result = "鎴愬姛"; log.error("銆愭捣搴锋湀鍙拌溅杈嗙姸鎬佷簨浠舵帹閫併��========鎴愬姛======="); @@ -910,12 +939,53 @@ return null; } + private PlatformEvent initPlatformEventModel(EventPlatformCarsInfoRequest request, EventPlatformCarsDataRequest data, EventPlatformCarsStatusInfoRequest status) { + PlatformEvent model = new PlatformEvent(); + model.setCreateDate(new Date()); + model.setIsdeleted(Constants.ZERO); + model.setEditDate(model.getCreateDate()); + model.setEventId(request.getEventId()); +// model.setRemark(JSONObject.toJSONString(request)); + model.setEventType(request.getEventType()); + model.setDataEventType(data.getEventType()); + model.setHappenTime(request.getHappenTime()); + model.setSrcIndex(request.getSrcIndex()); + model.setSrcType(request.getSrcType()); + model.setStatus(request.getStatus()); + model.setTimeout(request.getTimeout()); + model.setDateTime(data.getDateTime()); + model.setDataType(data.getDataType()); + model.setSendTime(data.getSendTime()); + model.setIpAddress(data.getIpAddress()); + model.setIpv6Address(data.getIpv6Address()); + model.setPortNo(data.getPortNo()); + model.setMacAddress(data.getMacAddress()); + model.setProtocol(data.getProtocol()); + model.setChannelId(data.getChannelID()); + model.setChannelName(data.getChannelName()); + model.setEventState(data.getEventState()); + model.setActivePostCount(data.getActivePostCount()); + model.setEventDescription(data.getEventDescription()); + model.setDeviceId(data.getDeviceID()); + model.setHpno(status.getHPNo()); + model.setMotionStatus(status.getMotionStatus()); + model.setPlateNo(status.getPlateNo()); + model.setVehicleDoorStatus(status.getVehicleDoorStatus()); + model.setStockStatus(status.getStockStatus()); + model.setBackgroundImageContent(status.getBackgroundImage()!=null?status.getBackgroundImage().getResourcesContent():null); + model.setPlateScore(status.getPlateScore()); + model.setPlatePictureContent(status.getPlatePicture()!=null?status.getPlatePicture().getResourcesContent():null); + return model; + } + /** * 璁板綍鏈堝彴浣滀笟鏃ュ織 * @param job * @param status */ + @Transactional private void dealPlatformJobLogBiz(PlatformJob job,EventPlatformCarsStatusInfoRequest status) { + platformJobMapper.updateById(job);//鏇存柊浣滀笟鐘舵�� PlatformLog log = new PlatformLog(); log.setIsdeleted(Constants.ZERO); log.setCreateDate(new Date()); @@ -924,21 +994,27 @@ log.setObjId(job.getId()+""); if(Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.DONE.getKey())){ //濡傛灉鏄綔涓氬畬鎴� -// log.setObjType(Constants.LOg); + log.setObjType(Constants.PlatformJobLogType.DONE.getKey()); + log.setTitle(Constants.PlatformJobLogType.DONE.getName()); + log.setContent(Constants.PlatformJobLogType.DONE.getInfo()); //鏌ヨ鏈�鍚庝竴娆″紑濮嬩綔涓氱殑鏃ュ織 PlatformLog lastBeginPlatform = platformLogMapper.selectOne(new QueryWrapper<PlatformLog>().lambda() .eq(PlatformLog::getIsdeleted,Constants.ZERO) - .eq(PlatformLog::getObjType,Constants.PlatformJobStatus.WORKING.getKey()) - .eq(PlatformLog::getJobId,job.getJobId()) + .eq(PlatformLog::getObjType,Constants.PlatformJobLogType.WORKING.getKey()) + .eq(PlatformLog::getJobId,job.getId()) .orderByDesc(PlatformLog::getCreateDate) - .last(" limit 1"); - + .last(" limit 1")); + String v = Long.toString(job.getDoneDate().getTime() - lastBeginPlatform.getCreateDate().getTime() / 1000) ; + lastBeginPlatform.setParam3(v); + lastBeginPlatform.setParam2(DateUtil.getDate(lastBeginPlatform.getCreateDate(),"yyyy-MM-dd HH:mm:ss")); + platformLogMapper.updateById(lastBeginPlatform);//鏇存柊涓婁竴娆′綔涓氱殑瀹屾垚鏃堕棿鍜屼綔涓氭椂闀� }else{ //濡傛灉鏄綔涓氫腑 - log.setParam1(DateUtil.getDate(lastBeginPlatform.getCreateDate(),"yyyy-MM-dd HH:mm:ss")); -// log.setObjType(Constants.Jobl); + log.setObjType(Constants.PlatformJobLogType.WORKING.getKey()); + log.setTitle(Constants.PlatformJobLogType.WORKING.getName()); + log.setContent(Constants.PlatformJobLogType.WORKING.getInfo()); + log.setParam1(DateUtil.getDate(log.getCreateDate(),"yyyy-MM-dd HH:mm:ss")); } - platformLogMapper.insert(log); } @@ -949,5 +1025,53 @@ */ private void dealCarsInErrorPlatformBiz( PlatformJob model,EventPlatformCarsStatusInfoRequest status) { //TODO-----------------澶勭悊杞﹁締杩涘叆閿欒鏈堝彴涓氬姟閫昏緫 + + 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()+"鍋滈敊鏈堝彴浜�"; + List<String> broadcastList = 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); + }else if(Constants.equalsInteger(device.getType(),Constants.ZERO)){ + //濡傛灉鏄箍鎾偣 + 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); + } + } } -- Gitblit v1.9.3