From eea92f23bf8ead897f346ae6ccc8603ac039e566 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 30 七月 2024 09:48:47 +0800
Subject: [PATCH] 修复bug

---
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVisitFromHKServiceImpl.java |  139 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 139 insertions(+), 0 deletions(-)

diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVisitFromHKServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVisitFromHKServiceImpl.java
index d92e58f..f5150c9 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVisitFromHKServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVisitFromHKServiceImpl.java
@@ -10,7 +10,9 @@
 import com.doumee.core.haikang.model.param.BaseListPageResponse;
 import com.doumee.core.haikang.model.param.BaseResponse;
 import com.doumee.core.haikang.model.param.request.AppointmentListRequest;
+import com.doumee.core.haikang.model.param.respose.AppointmentIccmInfoResponse;
 import com.doumee.core.haikang.model.param.respose.AppointmentInfoResponse;
+import com.doumee.core.haikang.model.param.respose.AppointmentVisitorInfoResponse;
 import com.doumee.core.haikang.service.HKService;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.DESUtil;
@@ -52,6 +54,64 @@
     private SystemDictDataBiz systemDictDataBiz;
 
 
+    /**
+     * 鍚屾娴峰悍缁勭粐淇℃伅鍒颁笟鍔$郴缁�
+     */
+    @Override
+    @Transactional
+    public   void syncVistAppointDataIccm(Date date){
+        try {
+            if( Constants.formatIntegerNum(dataSyncConfig.getVisitorDataOrigin()) != DataSyncConfig.origin.hk){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝褰撳墠涓嶆敮鎸佹捣搴锋暟鎹悓姝ユ搷浣渵");
+            }
+            AppointmentListRequest param =  new AppointmentListRequest();
+            //鑾峰彇ERP缁勭粐淇℃伅锛堝叏閲忓悓姝ワ級
+            boolean hasNext = true;
+            int curTotal = 0;
+            int curPage = 1;
+            //鏌ヨ浠婂ぉ鐨�
+            Date start =Utils.Date.getStart(date);
+            Date end = Utils.Date.getEnd(new Date());
+            param.setVisitStartTimeBegin(DateUtil.getISO8601Timestamp2( start));
+            param.setVisitStartTimeEnd(DateUtil.getISO8601Timestamp2( end));
+
+            List<Visits>  allHkList = new ArrayList<>();
+            while (hasNext){
+                //鍒嗛〉閬嶅巻寰幆鏌ヨ鎵�鏈夐棬绂佽澶囨暟鎹�
+                param.setPageNo(curPage);
+                param.setPageSize(100);
+                BaseResponse<BaseListPageResponse<AppointmentIccmInfoResponse>> response = HKService.appointmentRecordsIccm(param);
+                if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)  ){
+                    throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
+                }
+                if(response.getData() == null || response.getData().getTotal() ==0){
+                    throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈悓姝ュ埌浠讳綍淇℃伅锛�");
+                }
+                BaseListPageResponse<AppointmentIccmInfoResponse> r = response.getData();
+                curTotal += 100;
+                if(curTotal >= r.getTotal()){
+                    hasNext = false;
+                }
+                if(r.getList() == null || r.getList().size()==0){
+                    hasNext =false;
+                }else{
+                    allHkList.addAll(getNewVisitModelBYListIccm(r.getList()));
+                }
+                curPage++;
+            }
+            if(allHkList .size() == 0){
+                throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈悓姝ュ埌浠讳綍淇℃伅锛�");
+            }
+            //娓呯┖鍘熸湁褰撳ぉ鐨勬暟鎹�
+            visitsMapper.delete(new UpdateWrapper<Visits>().lambda()
+                    .ge(Visits::getStarttime,start)
+                    .eq(Visits::getType,Constants.ONE)
+                    .le(Visits::getStarttime,end));
+            visitsMapper.insertBatchSomeColumn(allHkList);//鎻掑叆鏂版暟鎹�
+        }catch (BusinessException e){
+            throw  e;
+        }
+    }
     /**
      * 鍚屾娴峰悍缁勭粐淇℃伅鍒颁笟鍔$郴缁�
      */
@@ -114,6 +174,84 @@
         }
     }
 
+    private List<Visits> getNewVisitModelBYListIccm(List<AppointmentIccmInfoResponse> list ) {
+        List<Visits> newList = new ArrayList<>();
+        if(list == null || list.size()==0){
+            return  newList;
+        }
+        for(AppointmentIccmInfoResponse data :list){
+            if(data.getVisitorList()==null || data.getVisitorList().size() ==0){
+                continue;
+            }
+            for(AppointmentVisitorInfoResponse model : data.getVisitorList()){
+                Visits c = new Visits();
+                c.setHkId(model.getVisitorId());
+                c.setCode(model.getQrCode());
+                c.setName(model.getVisitorName());
+                c.setHkStatus(Constants.ONE);
+                c.setHkDate(new Date());
+                c.setIsdeleted(Constants.ZERO);
+                c.setCreateDate(c.getHkDate());
+                c.setIdcardNo(DESUtil.encrypt(Constants.EDS_PWD, model.getCertificateNo()));
+                c.setIdcardDecode(Constants.getTuominStr(model.getCertificateNo()));
+                c.setIdcardType(Integer.parseInt(model.getCertificateType()));
+                c.setStarttime(DateUtil.getISO8601DateByStr2(data.getVisitStartTime()));
+                c.setEndtime(DateUtil.getISO8601DateByStr2(data.getVisitEndTime()));
+                c.setReason(data.getVisitPurpose());
+                c.setStatus(model.getVisitorStatus());
+                c.setType(Constants.ONE);
+                if(StringUtils.isNotBlank(data.getReceptionistId())){
+                    //琚闂汉
+                    Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getHkId,data.getReceptionistId()).last("limit 1"));
+                    c.setReceptMemberId(member!=null?member.getId():null);
+                }
+                c.setCompanyName(model.getVisitorWorkUnit());
+                c.setPhone(model.getPhoneNo());
+                c.setCarNos(model.getPlateNo());
+                if(StringUtils.isNotBlank(model.getCertificateNo())){
+                    //琚闂汉
+                    Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda()
+                            .eq(Member::getType,Constants.ONE)
+                            .eq(Member::getIdcardNo , c.getIdcardNo())
+                            .last("limit 1"));
+                    if(member == null){
+                        member = new Member();
+                        member.setName(model.getVisitorName());
+                        member.setPhone(model.getPhoneNo());
+                        member.setSex(model.getGender());
+                        member.setIsdeleted(Constants.ZERO);
+                        member.setType(Constants.ONE);
+                        member.setIdcardNo(c.getIdcardNo());
+                        member.setIdcardDecode(c.getIdcardDecode());
+                        member.setVisitCompanyName(model.getVisitorWorkUnit());
+                        member.setCreateDate(new Date());
+                        if(StringUtils.isNotBlank(model.getPicUri())){
+                            member.setImgurl(HKConstants.IMG_INDEX+model.getPicUri());
+                            member.setFaceServerIndexCode(model.getSvrIndexCode());
+                        }
+                        memberMapper.insert(member);
+                    }else{
+                        member.setIsdeleted(Constants.ZERO);
+                        member.setEditDate(new Date());
+                        member.setName(model.getVisitorName());
+                        member.setPhone(model.getPhoneNo());
+                        member.setSex(model.getGender());
+                        member.setVisitCompanyName(model.getVisitorWorkUnit());
+                        if(StringUtils.isNotBlank(model.getPicUri())){
+                            member.setFaceServerIndexCode(model.getSvrIndexCode());
+                            member.setImgurl(HKConstants.IMG_INDEX+model.getPicUri());
+                        }
+                        memberMapper.updateById(member);
+                    }
+                    c.setMemberId(member.getId());
+
+                }
+                newList.add(c);
+            }
+
+        }
+        return newList;
+    }
     private List<Visits> getNewVisitModelBYList(List<AppointmentInfoResponse> list ) {
         List<Visits> newList = new ArrayList<>();
         if(list == null || list.size()==0){
@@ -183,4 +321,5 @@
     }
 
 
+
 }

--
Gitblit v1.9.3