From 165b038153aa55f465a225d421616d32e472c889 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 20 八月 2024 18:16:58 +0800
Subject: [PATCH] 最新版本

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java |  172 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 169 insertions(+), 3 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 e34a2ef..b190e72 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
@@ -11,9 +11,7 @@
 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.core.haikang.model.param.request.event.visit.*;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.DESUtil;
 import com.doumee.core.utils.DateUtil;
@@ -310,7 +308,175 @@
         return  null;
 
     }
+    /**
+     * 娴峰悍璁垮浜嬩欢鎺ㄩ��
+     * @param param
+     * @param response
+     * @return
+     */
+    @Override
+    public String    dealVisitEventIccm(EventVisitIccmRequest 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<EventVisitIccmInfoRequest> events  = param.getParams().getEvents();
+            List<VisitEvent> list = new ArrayList<>();
+            List<Integer> delRetentionLis = new ArrayList<>();
+            List<Retention> retentionList = new ArrayList<>();
+            for(EventVisitIccmInfoRequest request : events){
+                if(request.getData() ==null || request.getData().getVisitorInvoices() ==null){
+                    continue;
+                }
+                if(request.getData().getVisitorInformationList() == null || request.getData().getVisitorInformationList().size() ==0){
+                    continue;
+                }
+                //娴峰悍璁垮璁板綍缂栫爜
+                dealVisitDataByRequstIccm(request,delRetentionLis,retentionList,list);
+            }
+            if(list.size()>0){
+                //鎻掑叆闂ㄧ璁板綍
+                visitEventMapper.insert(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.insert(retentionList);
+            }
+            log.error("銆愭捣搴疯瀹簨浠舵帹閫併��========鎴愬姛=======");
+        }catch (Exception e){
+            log.error("銆愭捣搴疯瀹簨浠舵帹閫併��========澶辫触=======锛歕n"+e.getMessage());
+        }
+        saveInterfaceLog(param,"/business/hksync/push/visitIccm",result,true);
+        return  null;
 
+    }
+
+    /**
+     *  鏍规嵁璁垮鎺ㄩ�佽瀹㈣褰曠紪鐮侊紝澶勭悊璁垮璁板綍銆佸湪鍦轰汉鍛樼瓑淇℃伅
+     */
+    private void dealVisitDataByRequstIccm(EventVisitIccmInfoRequest request, List<Integer> delRetentionLis, List<Retention> retentionList,List<VisitEvent> list) {
+
+        EventVisitIccmDataRequest model = request.getData();
+        EventVisitIccmInvoiceParamRequest data =  request.getData().getVisitorInvoices();
+        MPJLambdaWrapper<Visits> queryWrapper = new MPJLambdaWrapper<>();
+        queryWrapper.selectAll(Visits.class);
+        queryWrapper.selectAs(Member::getType,Visits::getMemberType);
+        queryWrapper.eq(Visits::getHkId,model.getVisitorInvoices().getInvoicesId() );//璁垮鍗曞彿
+        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_ICCM_IN.getKey()) {
+                //濡傛灉鏄瀹㈢櫥璁帮紝褰曞叆浜哄憳鐨勫湪鍦烘暟鎹褰�
+                retentionList.add(getRetentionModelByVisitRequest(visits, request.getHappenTime(),request.getSrcType()));
+                //鏉ヨ鏃堕棿
+                updateVistis.setStatus(Constants.VisitStatus.signin);
+                updateVistis.setInDate(DateUtil.getISO8601DateByStr(data.getBeginTime()));
+                updateVistis.setOutDate(DateUtil.getISO8601DateByStr(data.getFinishTime()));
+                //鏇存柊鏈�鏂版潵璁挎椂闂�
+                Member member = new Member();
+                member.setLastVisitDate(updateVistis.getInDate());
+                member.setId(visits.getMemberId());
+                memberMapper.updateById(member);
+            }else  if (Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.VISIT_SIGN_ICCM_OUT.getKey())  {
+                //濡傛灉鏄瀹㈢绂讳簨浠�
+                updateVistis.setStatus(Constants.VisitStatus.signout);
+                updateVistis.setInDate(DateUtil.getISO8601DateByStr(data.getBeginTime()));
+                updateVistis.setOutDate(DateUtil.getISO8601DateByStr(data.getFinishTime()));
+                updateVistis.setOutType(Constants.ZERO);
+                updateVistis.setOutInfo("璁垮姝e父绛剧");
+            }else{
+                //濡傛灉鏄瀹㈤�氳
+            }
+            updateVistis.setEditDate(new Date());
+            //鏇存柊璁垮鏉ヨ鎴栬�呯绂绘椂闂翠俊鎭�
+            visitsMapper.updateById(updateVistis) ;
+        }
+    }
+    private Retention getRetentionModelByVisitRequest(Visits visits, String happentTime,String srcType) {
+        Retention retention = new Retention();
+        retention.setIsdeleted(Constants.ZERO);
+        retention.setCreateDate(DateUtil.getISO8601DateByStr(happentTime));
+        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(srcType);
+        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;
+    }
+    private VisitEvent getVisitEventModelByRequest(EventVisitIccmInfoRequest request,EventVisitIccmDetailParamRequest detail) {
+        if(request.getData().getTargetPerson() ==null){
+            request.getData().setTargetPerson(new EventVisitIccmTargetParamRequest());
+        }
+        VisitEvent event = new VisitEvent();
+        event.setIsdeleted(Constants.ZERO);
+        event.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime()));
+        event.setVisitorWorkUint(detail.getUnit());
+        event.setVisitorId(detail.getVisitorId());
+        event.setVisitorCode(detail.getAppointmentCode());
+        event.setTimeout(request.getTimeout());
+        event.setSvrIndexCode(request.getSrcIndex());
+        event.setHappenTime(request.getHappenTime());
+        event.setStatus(request.getStatus());
+        event.setEndTime(request.getData().getVisitorInvoices().getFinishTime());
+        event.setStartTime(request.getData().getVisitorInvoices().getBeginTime());
+        event.setSrcType(request.getSrcType());
+        event.setSrcParentIndex(request.getSrcParentIndex());
+        event.setSrcName(request.getSrcName());
+        event.setSrcIndex(request.getSrcIndex());
+        event.setSex(detail.getSex());
+        event.setPurpose(request.getData().getVisitorInvoices().getVisitReason());
+        event.setPhone(detail.getPhone());
+        event.setBeVisitedPersonId(request.getData().getVisitorInvoices().getVisitTargetId());
+        event.setBeVisitedPersonName(request.getData().getTargetPerson().getName());
+        event.setBeVisitedPersonOrg(request.getData().getTargetPerson().getOrgPathName());
+        event.setBeVisitedPersonOrgId(request.getData().getTargetPerson().getName());
+        event.setPhotoUrl(getHkImgUrl(detail.getFacePic()));
+        event.setPersonName(detail.getVisitorName());
+        event.setCarNo(detail.getPlateNo());
+
+        event.setIdType(detail.getCertType());
+        String idnum = detail.getCertNo();
+        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;
+    }
     /**
      *  鏍规嵁璁垮鎺ㄩ�佽瀹㈣褰曠紪鐮侊紝澶勭悊璁垮璁板綍銆佸湪鍦轰汉鍛樼瓑淇℃伅
      */

--
Gitblit v1.9.3