From 532d94b41c1b1cc76fc1ccb46cef174a26391ee3 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期六, 12 十月 2024 17:55:46 +0800
Subject: [PATCH] 最新版本
---
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java | 393 +++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 274 insertions(+), 119 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 b10d537..26af0f8 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,10 @@
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;
@@ -17,22 +17,18 @@
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DESUtil;
import com.doumee.core.utils.DateUtil;
+import com.doumee.core.utils.Utils;
import com.doumee.dao.business.*;
import com.doumee.dao.business.join.VisitsJoinMapper;
import com.doumee.dao.business.model.*;
-import com.doumee.dao.system.model.SystemUser;
-import com.doumee.service.business.DeviceEventService;
-import com.doumee.service.business.InterfaceLogService;
-import com.doumee.service.business.MemberService;
-import com.github.yulichang.interfaces.MPJBaseJoin;
+import com.doumee.dao.web.reqeust.SavePlatformWarnEventDTO;
+import com.doumee.service.business.impl.PlatformWarnEventServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
-import com.hikvision.artemis.sdk.config.ArtemisConfig;
import lombok.extern.slf4j.Slf4j;
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;
@@ -48,6 +44,8 @@
@Slf4j
public class HkSyncPushServiceImpl extends HkSyncBaseServiceImpl {
+ @Autowired
+ private InoutDayCountMapper inoutDayCountMapper;
@Autowired
private InterfaceLogMapper interfaceLogMapper;
@Autowired
@@ -73,7 +71,11 @@
@Autowired
private PlatformMapper platformMapper;
@Autowired
+ private SystemDictDataBiz systemDictDataBiz;
+ @Autowired
private PlatformDeviceMapper platformDeviceMapper;
+ @Autowired
+ private PlatformBroadcastLogMapper platformBroadcastLogMapper;
@Autowired
private PlatformJobMapper platformJobMapper;
@Autowired
@@ -82,6 +84,8 @@
private PlatformEventMapper platformEventMapper;
@Autowired
private PlatformLogMapper platformLogMapper;
+ @Autowired
+ private PlatformWarnEventServiceImpl platformWarnEventService;
/**
* 娴峰悍闂ㄧ浜嬩欢鎺ㄩ��
* @param param
@@ -101,13 +105,14 @@
List<DeviceEvent> list = new ArrayList<>();
List<Integer> delRetentionLis = new ArrayList<>();
List<Retention> retentionList = new ArrayList<>();
+ InoutDayCount inoutDayCount = new InoutDayCount();
for(EventAcsInfoRequest request : events){
EventDeviceDataRequest model = request.getData();
if(model ==null){
continue;
}
//鏍规嵁鎺ㄩ�佷汉鍛樼紪鐮侊紝澶勭悊鍦ㄥ満銆佺鍦轰汉鍛樻暟鎹褰�
- dealMemberDataByRequest(request,delRetentionLis,retentionList);
+ dealMemberDataByRequest(request,delRetentionLis,retentionList,inoutDayCount);
//灏佽闂ㄧ浜嬩欢淇℃伅琛ㄥ璞�
list.add(getDeviceEventModelByRequest(request));
}
@@ -125,7 +130,8 @@
//鍐嶆彃鍏ユ渶鏂扮殑鍦ㄥ巶浜哄憳
retentionMapper.insert(retentionList);
}
- log.error("銆愭捣搴烽棬绂佷簨浠舵帹閫併��========鎴愬姛=======");
+ dealInoutDayCountBiz(inoutDayCount);
+ log.info("銆愭捣搴烽棬绂佷簨浠舵帹閫併��========鎴愬姛=======");
}catch (Exception e) {
log.error("銆愭捣搴烽棬绂佷簨浠舵帹閫併��========澶辫触=======锛歕n" + e.getMessage());
}finally {
@@ -133,6 +139,37 @@
}
return null;
+ }
+
+ private void dealInoutDayCountBiz(InoutDayCount param) {
+ param.setTimeInfo(Utils.Date.getStart(new Date()));
+ InoutDayCount model = inoutDayCountMapper.selectOne(new QueryWrapper<InoutDayCount>().lambda()
+ .eq(InoutDayCount::getTimeInfo,param.getTimeInfo())
+ .eq(InoutDayCount::getIsdeleted,Constants.ZERO)
+ .last("limit 1"));
+ if(model == null){
+ param.setIsdeleted(Constants.ZERO);
+ param.setCreateDate(new Date());
+ param.setEditDate(new Date());
+ inoutDayCountMapper.insert(param);
+ }else{
+ inoutDayCountMapper.update(null,new UpdateWrapper<InoutDayCount>().lambda()
+ .eq(InoutDayCount::getId,model.getId() )
+ .set(InoutDayCount::getEditDate,new Date() )
+ .setSql(param.getInCarNum()!=null,"IN_CAR_NUM = ifnull(IN_CAR_NUM)"+param.getInCarNum() )
+ .setSql(param.getOutCarNum()!=null,"OUT_CAR_NUM = ifnull(OUT_CAR_NUM)"+param.getOutCarNum() )
+ .setSql(param.getInMemberNum()!=null,"IN_MEMBER_NUM = ifnull(IN_MEMBER_NUM)"+param.getInMemberNum() )
+ .setSql(param.getOutMemberNum()!=null,"OUT_MEMBER_NUM = ifnull(OUT_MEMBER_NUM)"+param.getOutMemberNum() )
+ .setSql(param.getInVisitorNum()!=null,"IN_VISITOR_NUM = ifnull(IN_VISITOR_NUM)"+param.getInVisitorNum() )
+ .setSql(param.getOutVisitorNum()!=null,"OUT_VISITOR_NUM = ifnull(OUT_VISITOR_NUM)"+param.getOutVisitorNum() )
+ .setSql(param.getSigninVisitorNum()!=null,"SIGNIN_VISITOR_NUM = ifnull(SIGNIN_VISITOR_NUM)"+param.getSigninVisitorNum() )
+ .setSql(param.getLeaveVisitorNum()!=null,"LEAVE_VISITOR_NUM = ifnull(LEAVE_VISITOR_NUM)"+param.getLeaveVisitorNum() )
+ .setSql(param.getInOtherMemberNum()!=null,"IN_OTHER_MEMBER_NUM = ifnull(IN_OTHER_MEMBER_NUM)"+param.getInOtherMemberNum() )
+ .setSql(param.getOutOtherMemberNum()!=null,"OUT_OTHER_MEMBER_NUM = ifnull(OUT_OTHER_MEMBER_NUM)"+param.getOutOtherMemberNum() )
+ .setSql(param.getInSelfMemberNum()!=null,"IN_SELF_MEMBER_NUM = ifnull(IN_SELF_MEMBER_NUM)"+param.getInSelfMemberNum() )
+ .setSql(param.getOutSelfMemberNum()!=null,"OUT_SELF_MEMBER_NUM = ifnull(OUT_SELF_MEMBER_NUM)"+param.getOutSelfMemberNum() )
+ );
+ }
}
/**
@@ -315,7 +352,7 @@
//鍐嶆彃鍏ユ渶鏂扮殑鍦ㄥ巶浜哄憳
retentionMapper.insert(retentionList);
}
- log.error("銆愭捣搴疯瀹簨浠舵帹閫併��========鎴愬姛=======");
+ log.info("銆愭捣搴疯瀹簨浠舵帹閫併��========鎴愬姛=======");
}catch (Exception e){
log.error("銆愭捣搴疯瀹簨浠舵帹閫併��========澶辫触=======锛歕n"+e.getMessage());
@@ -369,7 +406,7 @@
//鍐嶆彃鍏ユ渶鏂扮殑鍦ㄥ巶浜哄憳
retentionMapper.insert(retentionList);
}
- log.error("銆愭捣搴疯瀹簨浠舵帹閫併��========鎴愬姛=======");
+ log.info("銆愭捣搴疯瀹簨浠舵帹閫併��========鎴愬姛=======");
}catch (Exception e){
log.error("銆愭捣搴疯瀹簨浠舵帹閫併��========澶辫触=======锛歕n"+e.getMessage());
}
@@ -393,8 +430,6 @@
queryWrapper.last("limit 1");
Visits visits = visitsMapper.selectJoinOne(Visits.class,queryWrapper);
if(visits !=null){
- //濡傛灉浜哄憳淇℃伅瀛樺湪锛屽垯鍒犻櫎涔嬪墠鐨勬墍鏈夎繘鍦烘暟鎹紙鏃犺姝ゆ鎺ㄩ�佹槸杩涘巶杩樻槸鍑哄満鎺ㄩ�佷簨浠讹級
- delRetentionLis.add(visits.getMemberId());
if(dataSyncConfig.getOrgUserDataOrigin() == DataSyncConfig.origin.hk){
//濡傛灉鏄紛鍒╁ぇ灞忛」鐩紝涓嶅仛澶勭悊
return;
@@ -403,7 +438,7 @@
updateVistis.setId(visits.getId());
if (Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.VISIT_SIGN_ICCM_IN.getKey()) {
//濡傛灉鏄瀹㈢櫥璁帮紝褰曞叆浜哄憳鐨勫湪鍦烘暟鎹褰�
- retentionList.add(getRetentionModelByVisitRequest(visits, request.getHappenTime(),request.getSrcType()));
+// retentionList.add(getRetentionModelByVisitRequest(visits, request.getHappenTime(),request.getSrcType()));
//鏉ヨ鏃堕棿
updateVistis.setStatus(Constants.VisitStatus.signin);
updateVistis.setInDate(DateUtil.getISO8601DateByStr(data.getBeginTime()));
@@ -413,7 +448,7 @@
member.setLastVisitDate(updateVistis.getInDate());
member.setId(visits.getMemberId());
memberMapper.updateById(member);
- }else if (Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.VISIT_SIGN_ICCM_OUT.getKey()) {
+ }else if (Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.VISIT_SIGN_ICCM_OUT.getKey()) {
//濡傛灉鏄瀹㈢绂讳簨浠�
updateVistis.setStatus(Constants.VisitStatus.signout);
updateVistis.setInDate(DateUtil.getISO8601DateByStr(data.getBeginTime()));
@@ -421,12 +456,23 @@
updateVistis.setOutType(Constants.ZERO);
updateVistis.setOutInfo("璁垮姝e父绛剧");
}else{
+ //濡傛灉浜哄憳淇℃伅瀛樺湪锛屽垏鏄瀹㈤�氳锛屽垯鍒犻櫎涔嬪墠鐨勬墍鏈夎繘鍦烘暟鎹紙鏃犺姝ゆ鎺ㄩ�佹槸杩涘巶杩樻槸鍑哄満鎺ㄩ�佷簨浠讹級
+ delRetentionLis.add(visits.getMemberId());
//濡傛灉鏄瀹㈤�氳
+ if(request.getData()!=null&&request.getData().getParamValues()!=null &&
+ StringUtils.equals(request.getData().getParamValues().getInOrOut(),"1")){
+ //濡傛灉鏄瀹㈢櫥璁帮紝褰曞叆浜哄憳鐨勫湪鍦烘暟鎹褰�
+ Retention r = getRetentionModelByVisitRequest(visits, request.getHappenTime(),request.getSrcType());
+ r.setCarNo(request.getData().getParamValues().getPlateNos());
+ r.setAccessType(request.getData().getParamValues().getAccessType());
+ r.setDeviceName(request.getData().getParamValues().getSrcName());
+ r.setDeviceIndex(request.getData().getParamValues().getSrcIndex());
+ retentionList.add(r);
+ }
}
updateVistis.setEditDate(new Date());
//鏇存柊璁垮鏉ヨ鎴栬�呯绂绘椂闂翠俊鎭�
visitsMapper.updateById(updateVistis) ;
-
}
}
private Retention getRetentionModelByVisitRequest(Visits visits, String happentTime,String srcType) {
@@ -664,7 +710,7 @@
//鍐嶆彃鍏ユ渶鏂扮殑鍦ㄥ巶浜哄憳
retentionMapper.insert(retentionList);
}
- log.error("銆愭捣搴峰仠杞﹀満浜嬩欢鎺ㄩ�併��========鎴愬姛=======");
+ log.info("銆愭捣搴峰仠杞﹀満浜嬩欢鎺ㄩ�併��========鎴愬姛=======");
}catch (Exception e){
log.error("銆愭捣搴峰仠杞﹀満浜嬩欢鎺ㄩ�併��========澶辫触=======锛歕n"+e.getMessage());
@@ -725,7 +771,6 @@
event.setReleaseResult(request.getData().getInResult().getRlsResult().getReleaseResult());
event.setReleaseResultEx(request.getData().getInResult().getRlsResult().getReleaseResultEx());
}
-
if(request.getData().getPicUrl()!=null){
//杞﹁締鍜屽拰杞︾墝鐓х墖
event.setVehiclePicUrl(getHkImgUrl(request.getData().getPicUrl().getVehiclePicUrl()));
@@ -760,9 +805,7 @@
delRetentionList.add(event.getPlateNos());
}
}
-
return event;
-
}
private Retention getRetentionModelByParkRequest(EventParkInfoRequest request) {
@@ -773,7 +816,6 @@
retention.setType(Constants.THREE);
// retention.setDeviceName(request.getSrcName());
// retention.setDeviceIndex(request.getSrcIndex());
-
return retention;
}
@@ -833,7 +875,7 @@
}
}
result = "鎴愬姛";
- log.error("銆愭捣搴锋湀鍙板伐浣滅姸鎬佷簨浠舵帹閫併��========鎴愬姛=======");
+ log.info("銆愭捣搴锋湀鍙板伐浣滅姸鎬佷簨浠舵帹閫併��========鎴愬姛=======");
}catch (Exception e) {
result = "澶辫触"+e.getMessage();
log.error("銆愭捣搴锋湀鍙板伐浣滅姸鎬佷簨浠舵帹閫併��========澶辫触=======锛歕n" + e.getMessage());
@@ -860,78 +902,108 @@
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;//濡備綍鎺ㄩ�佺姸鎬侀泦鍚堜负绌猴紝涓嶅鐞嗚烦杩�
+ EventPlatformCarsDataRequest data = request.getData();
+ if( data.getHPVehicleStatus() ==null ){
+ continue;//濡備綍鎺ㄩ�佺姸鎬侀泦鍚堜负绌猴紝涓嶅鐞嗚烦杩�
+ }
+ //鍚勮溅閬撹溅杈嗙姸鎬�
+ EventPlatformCarsStatusInfoRequest status = data.getHPVehicleStatus();
+ PlatformEvent event = initPlatformEventModel(request,data,status);
+ if(StringUtils.isBlank(status.getPlateNo())){
+ eventList.add(event);//灏佽浜嬩欢锛堝凡鏈堝彴閫氶亾涓虹淮搴︼級
+ 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){
+ eventList.add(event);//灏佽浜嬩欢锛堝凡鏈堝彴閫氶亾涓虹淮搴︼級
+ continue;//鐩戞帶鐐规湭鍚屾锛岃烦杩囧鐞�
+ }
+ event.setPlatformId(model.getPlatformId());//鏈堝彴缂栫爜
+ eventList.add(event);//灏佽浜嬩欢锛堝凡鏈堝彴閫氶亾涓虹淮搴︼級
+ //鎴帀绗竴涓鑹叉眽瀛�,鍘绘帀鈥滄寕鈥濆瓧
+ status.setPlateNo(status.getPlateNo().substring(1,status.getPlateNo().length()).replace("鎸�",""));
+ 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 )
+ .eq(PlatformJob::getPlatformId,model.getPlatformId() )
+ .orderByDesc(PlatformJob::getCallDate)
+ .last("limit 1 "));
+ if(job == null){
+ continue;//濡傛灉浣滀笟涓虹┖锛岃烦杩囧鐞�
+ }
+ 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;//濡傛灉娌℃煡鍒板搴旂殑浣滀笟鎴栬�呬綔涓氬苟闈炰綔涓氫腑锛屼笉鍋氫笟鍔″鐞�
}
- 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;//鐩戞帶鐐规湭鍚屾锛岃烦杩囧鐞�
-
+ 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;//濡傛灉澶栧崗浠诲姟浣滀笟锛屽悎鍚屽彿鏈夋湭涓婇攣鐨勬儏鍐碉紝涓嶅仛鑷姩瀹屾垚浣滀笟閫昏緫澶勭悊锛岃烦杩囦笉澶勭悊
+ }
}
- //鍚勮溅閬撹溅杈嗙姸鎬�
- for(EventPlatformCarsStatusInfoRequest status : data.getHPVehicleStatus()){
- eventList.add(initPlatformEventModel(request,data,status));//灏佽浜嬩欢锛堝凡鏈堝彴閫氶亾涓虹淮搴︼級
- if(StringUtils.isBlank(status.getPlateNo())){
- continue;//濡傛灉杞﹁締淇℃伅涓虹┖锛屼笉澶勭悊鐩存帴璺宠繃
+ //濡傛灉鏄鍦ㄤ綔涓氱殑鐘舵�侊紝鏍囪浣滀笟宸插畬鎴�
+ update.setStatus(Constants.PlatformJobStatus.DONE.getKey());//浣滀笟宸插畬鎴�
+ update.setDoneDate(update.getEditDate());*/
+ if(Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.DONE.getKey()) ||
+ Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey())){
+ if(((StringUtils.equals(status.getStockStatus(),"front") && StringUtils.equals(job.getCarCodeFront(),status.getPlateNo()))
+ ||(!StringUtils.equals(status.getStockStatus(),"front") && StringUtils.equals(job.getCarCodeBack(),status.getPlateNo()))
+ )){
+ //璇存槑杞﹁締杩涢敊鏈堝彴 鎴栬�呰繕鏈彨鍙风姸鎬侊紝鍙戣捣璀﹀憡
+// dealCarsInErrorPlatformBiz(job,status);
+ update.setInOut(Constants.ZERO);//杞﹁締宸茬粡绂诲紑
+ platformJobMapper.updateById(update);
}
- 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 if(StringUtils.equals(status.getMotionStatus(),"enter")){
+ //濡傛灉鏄溅杈嗚繘鍏�
+ if(Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.CALLED.getKey())){
+ if(!((StringUtils.equals(status.getStockStatus(),"front") && StringUtils.equals(job.getCarCodeFront(),status.getPlateNo()))
+ ||(!StringUtils.equals(status.getStockStatus(),"front") && StringUtils.equals(job.getCarCodeBack(),status.getPlateNo()))
+ )){
+ //璇存槑杞﹁締杩涢敊鏈堝彴 鎴栬�呰繕鏈彨鍙风姸鎬侊紝鍙戣捣璀﹀憡
+ dealCarsInErrorPlatformBiz(job,status);
}else{
- continue;//鍏朵粬鐘舵�佷笉澶勭悊锛岃烦杩�
+ //杞﹁締宸茬粡杩涘叆
+ update.setInOut(Constants.ONE);//杞﹁締宸茬粡杩涘叆
+ platformJobMapper.updateById(update);
}
+ }
+ /*if(job.getStartDate() == null){
+ update.setStartDate(update.getEditDate());
+ }
+ update.setStatus(Constants.PlatformJobStatus.WORKING.getKey());//寮�濮嬩綔涓�
+ */
+ }else{
+ continue;//鍏朵粬鐘舵�佷笉澶勭悊锛岃烦杩�
+ }
//鏆傛椂涓嶅仛鐩稿叧鑷姩瀹屾垚浣滀笟涓氬姟澶勭悊
// dealPlatformJobLogBiz(update,status);//璁板綍浣滀笟鏃ュ織
- }
- break;//鍙鐞嗙涓�涓暟鎹姸鎬�
- }
}
if(eventList.size()>0){
//鐢熸垚浜嬩欢
platformEventMapper.insert(eventList);
}
result = "鎴愬姛";
- log.error("銆愭捣搴锋湀鍙拌溅杈嗙姸鎬佷簨浠舵帹閫併��========鎴愬姛=======");
+ log.info("銆愭捣搴锋湀鍙拌溅杈嗙姸鎬佷簨浠舵帹閫併��========鎴愬姛=======");
}catch (Exception e) {
result = "澶辫触"+e.getMessage();
log.error("銆愭捣搴锋湀鍙拌溅杈嗙姸鎬佷簨浠舵帹閫併��========澶辫触=======锛歕n" + e.getMessage());
@@ -1007,6 +1079,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);//鏇存柊涓婁竴娆′綔涓氱殑瀹屾垚鏃堕棿鍜屼綔涓氭椂闀�
@@ -1026,63 +1099,145 @@
* @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("${param2}",model.getPlatformName());
+ content = content.replace("${param}",status.getPlateNo());
List<String> broadcastList = new ArrayList<>();
+ List<String> ledList = new ArrayList<>();
+ String bNames = "";
+ List<PlatformBroadcastLog> logList = new ArrayList<>();
for(PlatformDevice device : deviceList){
- if(StringUtils.isNotBlank(device.getHkId())){
+ if(StringUtils.isBlank(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);
- }else if(Constants.equalsInteger(device.getType(),Constants.ZERO)){
+ PlatformBroadcastLog log = dealLedContentBiz(model.getId(),device.getHkNo(),device.getName(),content,speed,1);
+ logList.add(log);
+ ledList.add(device.getHkId());
+ }else if(Constants.equalsInteger(device.getType(),Constants.TWO)){
//濡傛灉鏄箍鎾偣
+ bNames += device.getName()+";";
broadcastList.add(device.getHkId());
}
}
if(broadcastList.size()>0){
- 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);
+ PlatformBroadcastLog log = dealBroadcastBiz(model,broadcastList,bNames,Constants.PlatformBroadcastContent.WRONG_IN.getInfo().replace("${param}",status.getPlateNo()));
+ logList.add(log);
}
+ if(logList.size()>0){
+ platformBroadcastLogMapper.insert(logList);
+ }
+ }
+ /**
+ * 骞挎挱閫氱煡
+ * @param model
+ * @param broadcastList
+ * @param bNames
+ * @param content1
+ * @return
+ */
+ public static PlatformBroadcastLog dealBroadcastBiz(PlatformJob model, List<String> broadcastList,String bNames , String content1) {
+ PlatformBroadcastLog log = new PlatformBroadcastLog();
+ content1 = content1.replace("${param}",model.getCarCodeFront());
+ log.setObjId(model.getId().toString());
+ log.setCreateDate(new Date());
+ log.setBizType(Constants.ONE);
+ log.setHkDate(new Date());
+ log.setObjType(Constants.ONE);
+ log.setInfo(content1);
+ log.setRemark(bNames);
+ 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(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.ZERO);
+ log.setName("鍙戦�佸箍鎾挱鎶ュ唴瀹�");
+ return log;
+ }
+
+ public static PlatformBroadcastLog dealLedContentBiz(Integer platformId,String hkNo,String hkName, String content,int speed,int color) {
+ PlatformBroadcastLog log = new PlatformBroadcastLog();
+ log.setCreateDate(new Date());
+ log.setBizType(Constants.ONE);
+ log.setHkDate(new Date());
+ log.setObjType(Constants.ONE);
+ log.setIds(hkNo);
+ log.setRemark(hkName);
+ log.setInfo(content);
+ log.setNum(Constants.ONE);
+ log.setObjId(platformId.toString());
+
+ 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);
+ BaseResponse response = HKService.transparentchannel(head,body);
+ 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灞忔樉鍐呭");
+ return log;
}
}
--
Gitblit v1.9.3