From 8b00bff78ba86989df613fcc7b09e7f64e135a52 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期四, 29 二月 2024 11:43:00 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java | 490 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 483 insertions(+), 7 deletions(-)
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
index aecac74..8246bb1 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -1,20 +1,41 @@
package com.doumee.service.business.impl.hksync;
import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.doumee.config.DataSyncConfig;
import com.doumee.config.SpringContextUtil;
import com.doumee.core.haikang.model.HKConstants;
+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.visit.EventVisitDataRequest;
+import com.doumee.core.haikang.model.param.request.event.visit.EventVisitInfoRequest;
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest;
-import com.doumee.dao.business.model.InterfaceLog;
+import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DESUtil;
+import com.doumee.core.utils.DateUtil;
+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.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 javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
import java.util.Date;
+import java.util.List;
/**
* 璁垮鏉冮檺缁勪俊鎭〃Service瀹炵幇
@@ -26,7 +47,25 @@
public class HkSyncPushServiceImpl extends HkSyncBaseServiceImpl {
@Autowired
- private InterfaceLogService interfaceLogService;
+ private InterfaceLogMapper interfaceLogMapper;
+ @Autowired
+ private CarsMapper carsMapper;
+ @Autowired
+ private ParkBookMapper parkBookMapper;
+ @Autowired
+ private DeviceEventMapper deviceEventMapper;
+ @Autowired
+ private MemberMapper memberMapper;
+ @Autowired
+ private DataSyncConfig dataSyncConfig;
+ @Autowired
+ private CarEventMapper carEventMapper;
+ @Autowired
+ private VisitEventMapper visitEventMapper;
+ @Autowired
+ private VisitsJoinMapper visitsMapper;
+ @Autowired
+ private RetentionMapper retentionMapper;
/**
* 娴峰悍闂ㄧ浜嬩欢鎺ㄩ��
* @param param
@@ -38,10 +77,40 @@
log.info("銆愭捣搴烽棬绂佷簨浠舵帹閫併��========寮�濮�=========锛歕n"+JSONObject.toJSONString(param));
String result = null;
try {
-
+ if(param == null || param.getParams() == null || param.getParams().getEvents()==null){
+ return null;
+ }
+ //闂ㄧ浜嬩欢闆嗗悎
+ List<EventAcsInfoRequest> events = param.getParams().getEvents();
+ List<DeviceEvent> list = new ArrayList<>();
+ List<Integer> delRetentionLis = new ArrayList<>();
+ List<Retention> retentionList = new ArrayList<>();
+ for(EventAcsInfoRequest request : events){
+ EventDeviceDataRequest model = request.getData();
+ if(model ==null){
+ continue;
+ }
+ //鏍规嵁鎺ㄩ�佷汉鍛樼紪鐮侊紝澶勭悊鍦ㄥ満銆佺鍦轰汉鍛樻暟鎹褰�
+ dealMemberDataByRequest(request,delRetentionLis,retentionList);
+ //灏佽闂ㄧ浜嬩欢淇℃伅琛ㄥ璞�
+ list.add(getDeviceEventModelByRequest(request));
+ }
+ if(list.size()>0){
+ //鎻掑叆闂ㄧ璁板綍
+ deviceEventMapper.insertBatchSomeColumn(list);
+ }
+ if(delRetentionLis.size()>0){
+ //鍏堝垹闄ゅ師鏈夌殑鍦ㄥ満浜哄憳(鍐呴儴浜哄憳锛�
+ retentionMapper.delete(new UpdateWrapper<Retention>().lambda()
+ .eq(Retention::getType,Constants.memberType.internal)
+ .in(Retention::getMemberId,delRetentionLis));
+ }
+ if(retentionList.size()>0){
+ //鍐嶆彃鍏ユ渶鏂扮殑鍦ㄥ巶浜哄憳
+ retentionMapper.insertBatchSomeColumn(retentionList);
+ }
log.error("銆愭捣搴烽棬绂佷簨浠舵帹閫併��========鎴愬姛=======");
}catch (Exception e) {
-
log.error("銆愭捣搴烽棬绂佷簨浠舵帹閫併��========澶辫触=======锛歕n" + e.getMessage());
}finally {
saveInterfaceLog(param,"/business/hksync/push/acs",result);
@@ -49,6 +118,138 @@
return null;
}
+
+ /**
+ * 鏍规嵁鎺ㄩ�佷汉鍛樼紪鐮侊紝澶勭悊鍦ㄥ満銆佺鍦轰汉鍛樻暟鎹褰�
+ * @param request
+ * @param delRetentionLis
+ * @param retentionList
+ */
+ private void dealMemberDataByRequest(EventAcsInfoRequest request, List<Integer> delRetentionLis, List<Retention> retentionList) {
+ //娴峰悍浜哄憳缂栫爜
+ String userNo = request.getData().getExtEventPersonNo();
+ if(StringUtils.isNotBlank(userNo)){
+ Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getHkId,userNo).last("limit 1"));
+ if(member !=null){
+ //濡傛灉浜哄憳淇℃伅瀛樺湪锛屽垯鍒犻櫎涔嬪墠鐨勬墍鏈夎繘鍦烘暟鎹紙鏃犺姝ゆ鎺ㄩ�佹槸杩涘巶杩樻槸鍑哄満鎺ㄩ�佷簨浠讹級
+ delRetentionLis.add(member.getId());
+ if(Constants.formatIntegerNum(request.getData().getExtEventInOut()) == Constants.ONE){
+ //濡傛灉鏄繘闂紝褰曞叆浜哄憳鐨勫湪鍦烘暟鎹褰�
+ retentionList.add(getRetentionModelByRequest(member,request));
+ }
+ }
+ }
+ }
+
+ public static String getHkImgUrl(String url){
+ if(StringUtils.isBlank(url)){
+ return null;
+ }
+ return HKConstants.IMG_INDEX+url;
+ }
+ /**
+ *灏佽闂ㄧ浜嬩欢淇℃伅琛ㄥ璞�
+ */
+ private DeviceEvent getDeviceEventModelByRequest(EventAcsInfoRequest request) {
+ DeviceEvent event = new DeviceEvent();
+ event.setIsdeleted(Constants.ZERO);
+ event.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime()));
+ event.setEventId(request.getEventId());
+ event.setEventType(request.getEventType());
+ event.setAccessChannel(request.getData().getExtAccessChannel());
+ event.setUserType(request.getData().getUserType());
+ event.setSvrIndexCode(request.getData().getSvrIndexCode());
+ event.setStatus(request.getStatus());
+ event.setExtEventType(request.getData().getExtEventType()!=null?request.getData().getExtEventType():null);
+ event.setSrcType(request.getSrcType());
+ event.setSrcName(request.getSrcName());
+ event.setSrcIndex(request.getSrcIndex());
+ event.setSrcParentIndex(request.getSrcParentIndex());
+ event.setSeq(request.getData().getSeq());
+ event.setTimeout(request.getTimeout());
+ event.setExtEventType(request.getData().getExtEventType());
+ event.setHappenTime(request.getHappenTime());
+ event.setExtReceiveTime(request.getData().getExtReceiveTime());
+ event.setExtEventWhiteListNo(request.getData().getExtEventWhiteListNo());
+ event.setExtEventWhiteListNo(request.getData().getExtEventWhiteListNo());
+ event.setExtEventVerifyID(request.getData().getExtEventVerifyID());
+ event.setExtEventRoleID(request.getData().getExtEventRoleID());
+ event.setExtEventReportChannel(request.getData().getExtEventReportChannel());
+ event.setExtEventReaderKind(request.getData().getExtEventReaderKind());
+ event.setExtEventReaderID(request.getData().getExtEventReaderID());
+ event.setExtEventPictureURL(getHkImgUrl(request.getData().getExtEventPictureURL()));
+ event.setExtEventPersonNo(request.getData().getExtEventPersonNo());
+ event.setExtEventMainDevID(request.getData().getExtEventMainDevID());
+ event.setExtEventLocalControllerID(request.getData().getExtEventLocalControllerID());
+ event.setExtEventInOut(request.getData().getExtEventInOut());
+ event.setExtEventIDCardPictureURL(getHkImgUrl(request.getData().getExtEventIDCardPictureURL()));
+ event.setExtEventEwipNum(request.getData().getExtEventSwipNum());
+ event.setExtEventEubDevID(request.getData().getExtEventMainDevID());
+ event.setExtEventDoorID(request.getData().getExtEventDoorID());
+ event.setExtEventCode(request.getData().getExtEventCode());
+ event.setExtEventCaseID(request.getData().getExtEventCaseID());
+ event.setExtEventCardNo(request.getData().getExtEventCardNo());
+ event.setExtEventAlarmOutID(request.getData().getExtEventAlarmOutID());
+ event.setExtEventAlarmInID(request.getData().getExtEventAlarmInID());
+ event.setExtAccessChannel(request.getData().getExtAccessChannel());
+ //閫氶亾浜嬩欢淇℃伅
+ if(request.getData().getExtEventCustomerNumInfo() !=null){
+ event.setTotalTimes(request.getData().getExtEventCustomerNumInfo().getTotalTimes());
+ event.setEntryTimes(request.getData().getExtEventCustomerNumInfo().getEntryTimes());
+ event.setExitTimes(request.getData().getExtEventCustomerNumInfo().getExitTimes());
+ event.setAccessChannel(request.getData().getExtEventCustomerNumInfo().getAccessChannel());
+ }
+ if(request.getData().getExtEventIdentityCardInfo() !=null){
+ //浜哄憳韬唤璇佷欢淇℃伅
+ event.setBirth(request.getData().getExtEventIdentityCardInfo().getBirth());
+ String idnum = request.getData().getExtEventIdentityCardInfo().getIdNum();
+ if(StringUtils.isNotBlank(idnum)){
+ //韬唤璇佸彿瀛樺偍瀵嗘枃
+ event.setIdNum(DESUtil.encrypt(Constants.EDS_PWD,idnum));//韬唤璇佸彿鍔犲瘑
+ //鑴辨晱鎵嬫満鍙锋樉绀簄
+ event.setIdcardDecode(Constants.getTuominStr(idnum));
+ }
+ event.setAddress(request.getData().getExtEventIdentityCardInfo().getAddress());
+ event.setSex(request.getData().getExtEventIdentityCardInfo().getSex());
+ event.setName(request.getData().getExtEventIdentityCardInfo().getName());
+ event.setEndDate(request.getData().getExtEventIdentityCardInfo().getEndDate());
+ event.setStartDate(request.getData().getExtEventIdentityCardInfo().getStartDate());
+ event.setTermOfValidity(request.getData().getExtEventIdentityCardInfo().getTermOfValidity());
+ }
+ return event;
+ }
+
+ /**
+ * 杩涘巶瀵硅薄灏佽鎴愬湪鍦轰汉鍛�
+ * @param member
+ * @param request
+ * @return
+ */
+ private Retention getRetentionModelByRequest(Member member, EventAcsInfoRequest request) {
+ Retention retention = new Retention();
+ retention.setIsdeleted(Constants.ZERO);
+ retention.setCreateDate(DateUtil.getISO8601DateByStr(request.getData().getExtReceiveTime()));
+ retention.setClasses(member.getClasses());
+ retention.setCode(member.getCode());
+ retention.setIdcardNo(member.getIdcardNo());
+ retention.setIdcardDecode(member.getIdcardDecode());
+ retention.setName(member.getName());
+ retention.setBirthday(member.getBirthday());
+ retention.setType(member.getType());
+ retention.setCompanyId(member.getCompanyId());
+ retention.setCompanyName(member.getCompanyName());
+ retention.setEventCode(request.getData().getExtEventCode()+"");
+ retention.setEventDate(DateUtil.getISO8601DateByStr(request.getData().getExtReceiveTime()));
+ retention.setFaceImg(member.getFaceImg());
+ retention.setImgurl(member.getImgurl());
+ retention.setPhone(member.getPhone());
+ retention.setMemberId(member.getId());
+ retention.setDeviceName(request.getSrcName());
+ retention.setDeviceIndex(request.getSrcIndex());
+
+ return retention;
+ }
+
/**
* 娴峰悍璁垮浜嬩欢鎺ㄩ��
* @param param
@@ -60,7 +261,40 @@
log.info("銆愭捣搴疯瀹簨浠舵帹閫併��==========寮�濮�=======锛歕n"+JSONObject.toJSONString(param));
String result = null;
try {
-
+ if(param == null || param.getParams() == null || param.getParams().getEvents()==null){
+ return null;
+ }
+ //闂ㄧ浜嬩欢闆嗗悎
+ List<EventVisitInfoRequest> events = param.getParams().getEvents();
+ List<VisitEvent> list = new ArrayList<>();
+ List<Integer> delRetentionLis = new ArrayList<>();
+ List<Retention> retentionList = new ArrayList<>();
+ for(EventVisitInfoRequest request : events){
+ if(request.getData() ==null ||StringUtils.isBlank(request.getData().getVisitorId())){
+ continue;
+ }
+ //娴峰悍璁垮璁板綍缂栫爜
+ if(StringUtils.isNotBlank(request.getData().getVisitorId())){
+ //鏍规嵁璁垮鎺ㄩ�佽瀹㈣褰曠紪鐮侊紝澶勭悊璁垮璁板綍銆佸湪鍦轰汉鍛樼瓑淇℃伅
+ dealVisitDataByRequst(request,delRetentionLis,retentionList);
+ }
+ //灏佽闂ㄧ浜嬩欢淇℃伅琛ㄥ璞�
+ list.add(getVisitEventModelByRequest(request));
+ }
+ if(list.size()>0){
+ //鎻掑叆闂ㄧ璁板綍
+ visitEventMapper.insertBatchSomeColumn(list);
+ }
+ if(delRetentionLis.size()>0){
+ //鍏堝垹闄ゅ師鏈夌殑鍦ㄥ満浜哄憳(鏅�氳瀹級
+ retentionMapper.delete(new UpdateWrapper<Retention>().lambda()
+ .eq(Retention::getType,Constants.memberType.visitor)
+ .in(Retention::getMemberId,delRetentionLis));
+ }
+ if(retentionList.size()>0){
+ //鍐嶆彃鍏ユ渶鏂扮殑鍦ㄥ巶浜哄憳
+ retentionMapper.insertBatchSomeColumn(retentionList);
+ }
log.error("銆愭捣搴疯瀹簨浠舵帹閫併��========鎴愬姛=======");
}catch (Exception e){
@@ -69,6 +303,128 @@
saveInterfaceLog(param,"/business/hksync/push/visit",result);
return null;
+ }
+
+ /**
+ * 鏍规嵁璁垮鎺ㄩ�佽瀹㈣褰曠紪鐮侊紝澶勭悊璁垮璁板綍銆佸湪鍦轰汉鍛樼瓑淇℃伅
+ */
+ private void dealVisitDataByRequst(EventVisitInfoRequest request, List<Integer> delRetentionLis, List<Retention> retentionList) {
+ EventVisitDataRequest model = request.getData();
+ MPJLambdaWrapper<Visits> queryWrapper = new MPJLambdaWrapper<>();
+ queryWrapper.selectAll(Visits.class);
+ queryWrapper.selectAs(Member::getType,Visits::getMemberType);
+ queryWrapper.eq(Visits::getHkId,model.getVisitorId() );
+ queryWrapper.leftJoin(Member.class,Member::getId,Visits::getMemberId );
+ 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;
+ }
+ Visits updateVistis = new Visits();
+ updateVistis.setId(visits.getId());
+ if(Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.VISIT_SIGN_IN.getKey()){
+ //濡傛灉鏄瀹㈢櫥璁帮紝褰曞叆浜哄憳鐨勫湪鍦烘暟鎹褰�
+ retentionList.add(getRetentionModelByVisitRequest(visits,request));
+ //鏉ヨ鏃堕棿
+ updateVistis.setStatus(Constants.VisitStatus.signin);
+ updateVistis.setInDate(DateUtil.getISO8601DateByStr(model.getStartTime()));
+ updateVistis.setOutDate(DateUtil.getISO8601DateByStr(model.getEndTime()));
+ //鏇存柊鏈�鏂版潵璁挎椂闂�
+ Member member = new Member();
+ member.setLastVisitDate(updateVistis.getInDate());
+ member.setId(visits.getMemberId());
+ memberMapper.updateById(member);
+ }else {
+ //濡傛灉鏄瀹㈢绂讳簨浠�
+ updateVistis.setStatus(Constants.VisitStatus.signout);
+ updateVistis.setInDate(DateUtil.getISO8601DateByStr(model.getStartTime()));
+ updateVistis.setOutDate(DateUtil.getISO8601DateByStr(model.getEndTime()));
+ updateVistis.setOutType(Constants.ZERO);
+ updateVistis.setOutInfo("璁垮姝e父绛剧");
+ }
+ updateVistis.setEditDate(new Date());
+ //鏇存柊璁垮鏉ヨ鎴栬�呯绂绘椂闂翠俊鎭�
+ visitsMapper.updateById(updateVistis) ;
+ }
+ }
+
+ private VisitEvent getVisitEventModelByRequest(EventVisitInfoRequest request) {
+ VisitEvent event = new VisitEvent();
+ event.setIsdeleted(Constants.ZERO);
+ event.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime()));
+ event.setVisitorWorkUint(request.getData().getVisitorWorkUint());
+ event.setVisitorId(request.getData().getVisitorId());
+ event.setVisitorCode(request.getData().getVisitorCode());
+ event.setTimeout(request.getTimeout());
+ event.setSvrIndexCode(request.getData().getSvrIndexCode());
+ event.setHappenTime(request.getHappenTime());
+ event.setStatus(request.getStatus());
+ event.setEndTime(request.getData().getEndTime());
+ event.setStartTime(request.getData().getStartTime());
+ event.setSrcType(request.getSrcType());
+ event.setSrcParentIndex(request.getSrcParentIndex());
+ event.setSrcName(request.getSrcName());
+ event.setSrcIndex(request.getSrcIndex());
+ event.setSignOrg(request.getData().getSignOrg());
+ event.setSex(request.getData().getSex());
+ event.setPurpose(request.getData().getPurpose());
+ event.setPhone(request.getData().getPhone());
+ event.setBeVisitedPersonId(request.getData().getBeVisitedPersonId());
+ event.setBeVisitedPersonName(request.getData().getBeVisitedPersonName());
+ event.setBeVisitedPersonOrg(request.getData().getBeVisitedPersonOrg());
+ event.setBeVisitedPersonOrgId(request.getData().getBeVisitedPersonOrgId());
+ event.setVisitorWorkUint(request.getData().getVisitorWorkUint());
+ event.setPhotoUrl(getHkImgUrl(request.getData().getPhotoUrl()));
+ event.setPersonName(request.getData().getPersonName());
+ event.setCarNo(request.getData().getCarNo());
+ event.setCaptureUrl(request.getData().getCaptureUrl());
+ if(StringUtils.isNotBlank(request.getData().getCaptureUrl())){
+ event.setCaptureUrl(HKConstants.IMG_INDEX+request.getData().getCaptureUrl());
+ }
+ if(StringUtils.isNotBlank(request.getData().getPhotoUrl())){
+
+ event.setPhotoUrl(HKConstants.IMG_INDEX+request.getData().getPhotoUrl());
+ }
+ event.setIdType(request.getData().getIdType());
+ String idnum =request.getData().getIdNo();
+ if(StringUtils.isNotBlank(idnum)){
+ //韬唤璇佸彿瀛樺偍瀵嗘枃
+ event.setIdNo(DESUtil.encrypt(Constants.EDS_PWD,idnum));//韬唤璇佸彿鍔犲瘑
+ //鑴辨晱鎵嬫満鍙锋樉绀簄
+ event.setIdcardDecode(Constants.getTuominStr(idnum));
+ }
+ event.setEventType(request.getEventType());
+ event.setEventId(request.getEventId());
+ return event;
+ }
+
+ private Retention getRetentionModelByVisitRequest(Visits visits, EventVisitInfoRequest request) {
+ Retention retention = new Retention();
+ retention.setIsdeleted(Constants.ZERO);
+ retention.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime()));
+ retention.setClasses(visits.getClasses());
+ retention.setCode(visits.getCode());
+ retention.setIdcardNo(visits.getIdcardNo());
+ retention.setIdcardDecode(visits.getIdcardDecode());
+ retention.setName(visits.getName());
+ retention.setBirthday(visits.getBirthday());
+ retention.setType(visits.getMemberType());
+ retention.setCompanyId(visits.getCompanyId());
+ retention.setCompanyName(visits.getCompanyName());
+ retention.setEventCode(request.getSrcType()+"");
+ retention.setEventDate(retention.getCreateDate());
+ retention.setFaceImg(visits.getFaceImg());
+ retention.setImgurl(visits.getImgurl());
+ retention.setPhone(visits.getPhone());
+ retention.setMemberId(visits.getMemberId());
+// retention.setDeviceName(request.getSrcName());
+// retention.setDeviceIndex(request.getSrcIndex());
+
+ return retention;
}
/**
@@ -82,7 +438,35 @@
String result = null;
log.info("銆愭捣搴峰仠杞﹀満浜嬩欢鎺ㄩ�併��========寮�濮�=========锛歕n"+JSONObject.toJSONString(param));
try {
-
+ if(param == null || param.getParams() == null || param.getParams().getEvents()==null){
+ return null;
+ }
+ //闂ㄧ浜嬩欢闆嗗悎
+ List<EventParkInfoRequest> events = param.getParams().getEvents();
+ List<CarEvent> list = new ArrayList<>();
+ List<Retention> retentionList = new ArrayList<>();
+ List<String> delRetentionList = new ArrayList<>();
+ for(EventParkInfoRequest request : events){
+ if(request.getData() ==null ||StringUtils.isBlank(request.getData().getPlateNo())){
+ continue;
+ }
+ //灏佽浜嬩欢淇℃伅琛ㄥ璞�
+ list.add(getParkEventModelByRequest(request,delRetentionList,retentionList));
+ }
+ if(list.size()>0){
+ //鎻掑叆闂ㄧ璁板綍
+ carEventMapper.insertBatchSomeColumn(list);
+ }
+ if(delRetentionList.size()>0){
+ //鍏堝垹闄ゅ師鏈夌殑鍦ㄥ満浜哄憳(鍐呴儴浜哄憳锛�
+ retentionMapper.delete(new UpdateWrapper<Retention>().lambda()
+ .eq(Retention::getType,Constants.THREE)
+ .in(Retention::getCarNo,delRetentionList));
+ }
+ if(retentionList.size()>0){
+ //鍐嶆彃鍏ユ渶鏂扮殑鍦ㄥ巶浜哄憳
+ retentionMapper.insertBatchSomeColumn(retentionList);
+ }
log.error("銆愭捣搴峰仠杞﹀満浜嬩欢鎺ㄩ�併��========鎴愬姛=======");
}catch (Exception e){
@@ -92,6 +476,98 @@
return null;
}
+ /**
+ * 鏍规嵁鎺ㄩ�佹暟鎹皝瑁呭仠杞︿簨浠跺璞′俊鎭�
+ * @param request
+ * @return
+ */
+ private CarEvent getParkEventModelByRequest(EventParkInfoRequest request, List<String> delRetentionList , List<Retention> retentionList ) {
+ CarEvent event = new CarEvent();
+ event.setIsdeleted(Constants.ZERO);
+ event.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime()));
+ event.setVehicleType(request.getData().getVehicleType());
+ event.setVehicleColor(request.getData().getVehicleColor());
+ event.setVehicleClass(request.getData().getVehicleClass());
+ event.setTimestr(request.getData().getTime());
+ event.setEventId(request.getEventId());
+ event.setTimeout(request.getTimeout());
+ event.setSvrIndex(request.getData().getSvrIndex());
+ event.setSubModel(request.getData().getSubModel());
+ event.setSubLogo(request.getData().getSubLogo());
+ event.setStatus(request.getStatus());
+ event.setSrcType(request.getSrcType());
+ event.setSrcParentIndex(request.getSrcParentIndex());
+ event.setSrcName(request.getSrcName());
+ event.setSrcIndex(request.getSrcIndex());
+ event.setRoadwayType(request.getData().getRoadwayType());
+ event.setRoadwayName(request.getData().getRoadwayName());
+ event.setRoadwayIndex(request.getData().getRoadwayIndex());
+ event.setPlateType(request.getData().getPlateType());
+ event.setTimeout(request.getTimeout());
+ event.setPlateNos(request.getData().getPlateNo());
+ event.setPlateColor(request.getData().getPlateColor());
+ event.setPlateBelieve(request.getData().getPlateBelieve());
+ event.setParkName(request.getData().getParkName());
+ event.setParkIndex(request.getData().getParkIndex());
+ event.setMainLogo(request.getData().getMainLogo());
+ event.setInoutType(request.getData().getInoutType());
+ event.setHappenTime(request.getHappenTime());
+ event.setGateName(request.getData().getGateName());
+ event.setGateIndex(request.getData().getGateIndex());
+ event.setEventType(request.getEventType());
+ event.setEventIndex(request.getData().getEventIndex());
+ event.setEventCmd(request.getData().getEventCmd());
+ event.setCardNo(request.getData().getCardNo());
+ event.setCarAttributeName(request.getData().getCarAttributeName());
+
+ if(request.getData().getInResult()!=null && request.getData().getInResult().getRlsResult() !=null ){
+ //鏀捐鏂瑰紡
+ event.setReleaseWay(request.getData().getInResult().getRlsResult().getReleaseWay());
+ event.setReleaseAuth(request.getData().getInResult().getRlsResult().getReleaseAuth());
+ event.setReleaseReason(request.getData().getInResult().getRlsResult().getReleaseReason());
+ 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()));
+ event.setPlatePicUrl(getHkImgUrl(request.getData().getPicUrl().getPlatePicUrl()));
+ }
+ if(StringUtils.isNotBlank(event.getPlateNos())){
+ ParkBook cars = parkBookMapper.selectOne(new QueryWrapper<ParkBook>().lambda()
+ .eq(ParkBook::getCarCode,event.getPlateNos())
+ .eq(ParkBook::getIsdeleted,Constants.ONE )
+ .last("limit 1" ));
+ if(cars!=null){
+ event.setMemberId(cars.getMemberId());
+ }
+
+ if(Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.PARK_PASS_IN.getKey()){
+ //濡傛灉鏄叆鍘傛斁琛�
+ delRetentionList.add(event.getPlateNos());
+ retentionList.add(getRetentionModelByParkRequest(request));
+ }else if(Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.PARK_PASS_OUT.getKey()){
+ //濡傛灉鏄嚭鍦烘斁琛�
+ delRetentionList.add(event.getPlateNos());
+ }
+ }
+
+ return event;
+
+ }
+
+ private Retention getRetentionModelByParkRequest(EventParkInfoRequest request) {
+ Retention retention = new Retention();
+ retention.setIsdeleted(Constants.ZERO);
+ retention.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime()));
+ retention.setCarNo(request.getData().getPlateNo());
+ retention.setType(Constants.THREE);
+// retention.setDeviceName(request.getSrcName());
+// retention.setDeviceIndex(request.getSrcIndex());
+
+ return retention;
+ }
private void saveInterfaceLog(Object param, String path,String result) {
InterfaceLog hkMonitoryLogDO=new InterfaceLog();
@@ -104,7 +580,7 @@
hkMonitoryLogDO.setRepose(result);
hkMonitoryLogDO.setName(path);
hkMonitoryLogDO.setUrl(path);
- interfaceLogService.create(hkMonitoryLogDO);
+ interfaceLogMapper.insert(hkMonitoryLogDO);
}
--
Gitblit v1.9.3