From e521fe9f2852dd008f176e462bf8ad3e5267e68f Mon Sep 17 00:00:00 2001
From: nidapeng <jp@doumee.com>
Date: 星期二, 23 四月 2024 10:57:08 +0800
Subject: [PATCH] 最新版本

---
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java |   59 +++++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 43 insertions(+), 16 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 b18377a..a68cbb0 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
@@ -3,6 +3,7 @@
 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;
@@ -55,6 +56,10 @@
     private DeviceEventMapper deviceEventMapper;
     @Autowired
     private MemberMapper memberMapper;
+    @Autowired
+    private DeviceMapper deviceMapper;
+    @Autowired
+    private DataSyncConfig dataSyncConfig;
     @Autowired
     private CarEventMapper carEventMapper;
     @Autowired
@@ -110,7 +115,7 @@
         }catch (Exception e) {
             log.error("銆愭捣搴烽棬绂佷簨浠舵帹閫併��========澶辫触=======锛歕n" + e.getMessage());
         }finally {
-            saveInterfaceLog(param,"/business/hksync/push/acs",result);
+            saveInterfaceLog(param,"/business/hksync/push/acs",result,false);//涓嶈鏃ュ織
         }
         return  null;
 
@@ -129,8 +134,12 @@
             Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getHkId,userNo).last("limit 1"));
             if(member !=null){
                 //濡傛灉浜哄憳淇℃伅瀛樺湪锛屽垯鍒犻櫎涔嬪墠鐨勬墍鏈夎繘鍦烘暟鎹紙鏃犺姝ゆ鎺ㄩ�佹槸杩涘巶杩樻槸鍑哄満鎺ㄩ�佷簨浠讹級
+                Device d = deviceMapper.selectOne(new QueryWrapper<Device>().lambda()
+                        .eq(Device::getDoorId,request.getSrcIndex())
+                        .eq(Device::getIsdeleted,Constants.ZERO)
+                        .last("limit 1" ));
                 delRetentionLis.add(member.getId());
-                if(Constants.formatIntegerNum(request.getData().getExtEventInOut()) == Constants.ONE){
+                if(!(Constants.equalsInteger(d.getIsEntrance(),Constants.ONE) && Constants.formatIntegerNum(request.getData().getExtEventInOut()) != Constants.ONE)){
                     //濡傛灉鏄繘闂紝褰曞叆浜哄憳鐨勫湪鍦烘暟鎹褰�
                     retentionList.add(getRetentionModelByRequest(member,request));
                 }
@@ -225,7 +234,7 @@
     private Retention getRetentionModelByRequest(Member member, EventAcsInfoRequest request) {
         Retention retention = new Retention();
         retention.setIsdeleted(Constants.ZERO);
-        retention.setCreateDate(DateUtil.getISO8601DateByStr(request.getData().getExtReceiveTime()));
+        retention.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime()));
         retention.setClasses(member.getClasses());
         retention.setCode(member.getCode());
         retention.setIdcardNo(member.getIdcardNo());
@@ -236,7 +245,7 @@
         retention.setCompanyId(member.getCompanyId());
         retention.setCompanyName(member.getCompanyName());
         retention.setEventCode(request.getData().getExtEventCode()+"");
-        retention.setEventDate(DateUtil.getISO8601DateByStr(request.getData().getExtReceiveTime()));
+        retention.setEventDate(DateUtil.getISO8601DateByStr(request.getHappenTime()));
         retention.setFaceImg(member.getFaceImg());
         retention.setImgurl(member.getImgurl());
         retention.setPhone(member.getPhone());
@@ -297,7 +306,7 @@
 
             log.error("銆愭捣搴疯瀹簨浠舵帹閫併��========澶辫触=======锛歕n"+e.getMessage());
         }
-        saveInterfaceLog(param,"/business/hksync/push/visit",result);
+        saveInterfaceLog(param,"/business/hksync/push/visit",result,true);
         return  null;
 
     }
@@ -317,6 +326,10 @@
         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()){
@@ -408,14 +421,14 @@
         retention.setType(visits.getMemberType());
         retention.setCompanyId(visits.getCompanyId());
         retention.setCompanyName(visits.getCompanyName());
-        retention.setEventCode(request.getEventType()+"");
+        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());
+//        retention.setDeviceName(request.getSrcName());
+//        retention.setDeviceIndex(request.getSrcIndex());
 
         return retention;
     }
@@ -465,7 +478,7 @@
 
             log.error("銆愭捣搴峰仠杞﹀満浜嬩欢鎺ㄩ�併��========澶辫触=======锛歕n"+e.getMessage());
         }
-        saveInterfaceLog(param,"/business/hksync/push/parks",result);
+        saveInterfaceLog(param,"/business/hksync/push/parks",result,false);
         return  null;
     }
 
@@ -528,14 +541,25 @@
             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 )
+            ParkBook cars = parkBookMapper.selectOne(new QueryWrapper<ParkBook>().lambda()
+                    .eq(ParkBook::getCarCode,event.getPlateNos())
+                            .eq(ParkBook::getIsdeleted,Constants.ZERO )
+                    .last("limit 1" ));
+            if(cars!=null){
+                event.setMemberId(cars.getMemberId());
+            }else{
+                Visits visits =  visitsMapper.selectOne(new QueryWrapper<Visits>().lambda()
+                        .eq(Visits::getCarNos,event.getPlateNos())
+                        .eq(Visits::getIsdeleted,Constants.ZERO )
+                        .in(Visits::getStatus,Constants.VisitStatus.signin,Constants.VisitStatus.signout)//鏈�杩戜竴涓凡鍒拌揪鎴栬�呭凡绛剧
+                        .isNull(Visits::getParentId)
+                        .orderByDesc(Visits::getId)
                         .last("limit 1" ));
-                if(cars!=null){
-                    event.setMemberId(cars.getMemberId());
+                if(visits!=null){
+                    //鏈�杩戜娇鐢ㄨ杞︾殑鐢宠浜猴紙宸插埌杈撅級
+                    event.setMemberId(visits.getMemberId());
                 }
-
+            }
             if(Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.PARK_PASS_IN.getKey()){
                 //濡傛灉鏄叆鍘傛斁琛�
                 delRetentionList.add(event.getPlateNos());
@@ -562,7 +586,10 @@
         return retention;
     }
 
-    private void saveInterfaceLog(Object param, String path,String result) {
+    private void saveInterfaceLog(Object param, String path,String result,boolean need) {
+        if(!need){
+            return;
+        }
         InterfaceLog hkMonitoryLogDO=new InterfaceLog();
         hkMonitoryLogDO.setType(1);
         hkMonitoryLogDO.setCreateDate(new Date());

--
Gitblit v1.9.3