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