From 8ed7183c1d062263a9564169f3190070b514b0a1 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期日, 29 九月 2024 18:41:22 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java |  238 +++++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 150 insertions(+), 88 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 1b26bdc..1ccf736 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,10 +3,12 @@
 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.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;
@@ -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
@@ -864,71 +870,71 @@
             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)){
-                                //濡傛灉鏄痺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;//鍏朵粬鐘舵�佷笉澶勭悊锛岃烦杩�
-                        }
+                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)){
+                        //濡傛灉鏄痺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;//鍏朵粬鐘舵�佷笉澶勭悊锛岃烦杩�
+                }
                         //鏆傛椂涓嶅仛鐩稿叧鑷姩瀹屾垚浣滀笟涓氬姟澶勭悊
 //                        dealPlatformJobLogBiz(update,status);//璁板綍浣滀笟鏃ュ織
-                    }
-                    break;//鍙鐞嗙涓�涓暟鎹姸鎬�
-                }
             }
             if(eventList.size()>0){
                 //鐢熸垚浜嬩欢
@@ -1039,62 +1045,118 @@
         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 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(device.getHkId());
-                body.setMethod("ControlLedGereral");//鍥哄畾鍊�
-                request.setIndexCode(device.getHkId());
-                request.setOperationType(219);//鍥哄畾鍊�
-                regions.setActionType(32);
-                regions.setContent(content);
-                regions.setRegionNo(1);
-                regions.setRegionType(14);
-                regions.setFontColor(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(13);
-                body.setParams(request);
-                HKService.transparentchannel(head,body);
+                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(15);//鍗曚綅绉�
             request.setBroadCastMode("tts");
             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