From 42f57295f5fe64132c11a25f55cd25c3c8acf167 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 28 八月 2024 15:35:55 +0800
Subject: [PATCH] 最新版本

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java |  184 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 182 insertions(+), 2 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 b190e72..09d273b 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
@@ -9,8 +9,7 @@
 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.EventParkInfoRequest;
-import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest;
+import com.doumee.core.haikang.model.param.request.event.parks.*;
 import com.doumee.core.haikang.model.param.request.event.visit.*;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.DESUtil;
@@ -66,6 +65,12 @@
     private VisitsJoinMapper visitsMapper;
     @Autowired
     private RetentionMapper retentionMapper;
+    @Autowired
+    private PlatformMapper platformMapper;
+    @Autowired
+    private PlatformDeviceMapper platformDeviceMapper;
+    private PlatformJobMapper platformJobMapper;
+    private PlatformLogMapper platformLogMapper;
     /**
      * 娴峰悍闂ㄧ浜嬩欢鎺ㄩ��
      * @param param
@@ -308,6 +313,7 @@
         return  null;
 
     }
+
     /**
      * 娴峰悍璁垮浜嬩欢鎺ㄩ��
      * @param param
@@ -769,5 +775,179 @@
         interfaceLogMapper.insert(hkMonitoryLogDO);
     }
 
+    /**
+     * 澶勭悊鏈堝彴宸ヤ綔鐘舵�佷簨浠惰闃呭悗鎺ㄩ�佹暟鎹�昏緫閫昏緫
+     * @param param
+     * @param response
+     * @return
+     */
+    @Override
+    public String dealPlatformStatusEvent(EventPlatformRequest param, HttpServletResponse response){
+        log.info("銆愭捣搴锋湀鍙板伐浣滅姸鎬佷簨浠舵帹閫併��========寮�濮�=========锛歕n"+JSONObject.toJSONString(param));
+        String result = null;
+        try {
+            if(param == null || param.getParams() == null || param.getParams().getEvents()==null){
+                return null;
+            }
+            //闂ㄧ浜嬩欢闆嗗悎
+            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){
+                    continue;
+                }
+                Integer  workStatus = 0;
+                for(EventPlatformDataRequest data : dataList){
+                    if( data.getHPWorkingStatus() ==null ||  data.getHPWorkingStatus().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;//鐩戞帶鐐规湭鍚屾锛岃烦杩囧鐞�
 
+                    }
+                    //鍚勮溅閬撹溅杈嗙姸鎬�
+                    for(EventPlatformStatusInfoRequest status : data.getHPWorkingStatus()){
+
+
+                    }
+                    break;//鍙鐞嗙涓�涓暟鎹姸鎬�
+                }
+            }
+            result = "鎴愬姛";
+            log.error("銆愭捣搴锋湀鍙板伐浣滅姸鎬佷簨浠舵帹閫併��========鎴愬姛=======");
+        }catch (Exception e) {
+            result = "澶辫触"+e.getMessage();
+            log.error("銆愭捣搴锋湀鍙板伐浣滅姸鎬佷簨浠舵帹閫併��========澶辫触=======锛歕n" + e.getMessage());
+        }finally {
+            saveInterfaceLog(param,"/business/hksync/push/platform/workstatus",result,false);//涓嶈鏃ュ織
+        }
+        return  null;
+    }
+    /**
+     * 澶勭悊鏈堝彴杞﹁締鐘舵�佷簨浠惰闃呭悗鎺ㄩ�佹暟鎹�昏緫閫昏緫
+     * @param param
+     * @param response
+     * @return
+     */
+    @Override
+    public  String dealPlatformCarsEvent(EventPlatformCarsRequest param, HttpServletResponse response){
+        log.info("銆愭捣搴锋湀鍙拌溅杈嗙姸鎬佷簨浠舵帹閫併��========寮�濮�=========锛歕n"+JSONObject.toJSONString(param));
+        String result = null;
+        try {
+            if(param == null || param.getParams() == null || param.getParams().getEvents()==null){
+                return null;
+            }
+            //闂ㄧ浜嬩欢闆嗗悎
+            List<EventPlatformCarsInfoRequest> events  = param.getParams().getEvents();
+            for(EventPlatformCarsInfoRequest request : events){
+                if( request.getData() ==null ||  request.getData().size()==0){
+                    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;//鐩戞帶鐐规湭鍚屾锛岃烦杩囧鐞�
+
+                    }
+                    //鍚勮溅閬撹溅杈嗙姸鎬�
+                    for(EventPlatformCarsStatusInfoRequest status : data.getHPVehicleStatus()){
+                        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;//濡傛灉娌℃煡鍒板搴旂殑浣滀笟鎴栬�呬綔涓氬苟闈炰綔涓氫腑锛屼笉鍋氫笟鍔″鐞�
+                            }
+                            //濡傛灉鏄鍦ㄤ綔涓氱殑鐘舵�侊紝鏍囪浣滀笟宸插畬鎴�
+                            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);
+                            }
+                            update.setStatus(Constants.PlatformJobStatus.WORKING.getKey());//寮�濮嬩綔涓�
+                        }else{
+                            continue;//鍏朵粬鐘舵�佷笉澶勭悊锛岃烦杩�
+                        }
+                        platformJobMapper.updateById(update);//鏇存柊浣滀笟鐘舵��
+                        dealPlatformJobLogBiz(update,status);//璁板綍浣滀笟鏃ュ織
+                    }
+                    break;//鍙鐞嗙涓�涓暟鎹姸鎬�
+                }
+            }
+            result = "鎴愬姛";
+            log.error("銆愭捣搴锋湀鍙拌溅杈嗙姸鎬佷簨浠舵帹閫併��========鎴愬姛=======");
+        }catch (Exception e) {
+            result = "澶辫触"+e.getMessage();
+            log.error("銆愭捣搴锋湀鍙拌溅杈嗙姸鎬佷簨浠舵帹閫併��========澶辫触=======锛歕n" + e.getMessage());
+        }finally {
+            saveInterfaceLog(param,"/business/hksync/push/platform/workstatus",result,false);//涓嶈鏃ュ織
+        }
+        return  null;
+    }
+
+    /**
+     * 璁板綍鏈堝彴浣滀笟鏃ュ織
+     * @param job
+     * @param status
+     */
+    private void dealPlatformJobLogBiz(PlatformJob job,EventPlatformCarsStatusInfoRequest status) {
+        PlatformLog log = new PlatformLog();
+        log.setIsdeleted(Constants.ZERO);
+        log.setCreateDate(new Date());
+        log.setEditDate(log.getCreateDate());
+        log.setJobId(job.getId());
+        log.setObjId(job.getId()+"");
+        if(Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.DONE.getKey())){
+            //濡傛灉鏄綔涓氬畬鎴�
+//            log.setObjType(Constants.LOg);
+            //鏌ヨ鏈�鍚庝竴娆″紑濮嬩綔涓氱殑鏃ュ織
+            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())
+                    .orderByDesc(PlatformLog::getCreateDate)
+                    .last(" limit 1");
+
+        }else{
+            //濡傛灉鏄綔涓氫腑
+            log.setParam1(DateUtil.getDate(lastBeginPlatform.getCreateDate(),"yyyy-MM-dd HH:mm:ss"));
+//            log.setObjType(Constants.Jobl);
+        }
+
+        platformLogMapper.insert(log);
+    }
+
+    /**
+     * 澶勭悊杞﹁締杩涘叆閿欒鏈堝彴涓氬姟閫昏緫
+     * @param model (鏈堝彴璁惧鍏宠仈淇℃伅锛�
+     * @param status
+     */
+    private void dealCarsInErrorPlatformBiz( PlatformJob model,EventPlatformCarsStatusInfoRequest status) {
+        //TODO-----------------澶勭悊杞﹁締杩涘叆閿欒鏈堝彴涓氬姟閫昏緫
+    }
 }

--
Gitblit v1.9.3