From eaf169bd3379554b5f5b9052c76f7d82e5dcae17 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 27 二月 2024 15:15:25 +0800
Subject: [PATCH] 整理

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

diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java
index 4a44285..322d2e8 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java
@@ -2,7 +2,10 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
 import com.doumee.core.haikang.model.HKConstants;
+import com.doumee.core.haikang.model.param.BaseListPageResponse;
 import com.doumee.core.haikang.model.param.BaseResponse;
 import com.doumee.core.haikang.model.param.request.*;
 import com.doumee.core.haikang.model.param.respose.*;
@@ -44,6 +47,112 @@
     /**
      * 鍚屾娴峰悍璁垮淇℃伅,鏍规嵁erp鍚屾缁勭粐缁撴灉锛屽畾鏃舵鏌ラ渶瑕佷笅鍙戝埌娴峰悍鐨勭粍缁囦俊鎭�
      */
+    @Override
+    public void getOutTimeVisitRecord(){
+        if(Constants.DEALING_HK_VISIT_EXPIRE){
+            return   ;
+        }
+        Constants.DEALING_HK_VISIT_EXPIRE =true;
+        try {
+            //鏌ヨ鎵�鏈夐渶瑕佸悓姝ョ殑鏁版嵁
+            List<Visits> list = getExpireVisitList();
+            //鎸夌収鐖剁骇鐢宠鍒嗘壒澶勭悊姣忔鐢宠鏁版嵁
+            if(list ==null || list.size()==0){
+                return;
+            }
+            Date date = new Date();
+            for(Visits c : list) {
+                //鍙戣捣娴峰悍棰勭害鎺ュ彛锛堥渶瑕佺櫥璁帮級锛屾牴鎹绾﹁繑鍥炴帴鍙e皝瑁呯敵璇疯褰曟洿鏂板瓧娈�
+                AppointmentInfoResponse model =  getVisitRecord(c.getHkId());
+                if(model == null){
+                    Visits update = new Visits();
+                    //宸插け鏁�
+                    update.setStatus(Constants.VisitStatus.invalid);
+                    update.setEditDate(date);
+                    update.setId(c.getId());
+                    update.setRemark("棰勭害宸茶娓呴櫎");
+                    visitsMapper.updateById(update);
+                    continue;
+                }
+                /**
+                 *      * 0锛氬緟瀹℃牳锛堥绾﹀緟瀹℃壒锛夈��
+                 *      * 1锛氭甯革紙棰勭害鎴愬姛鎴栭绾﹀鎵规垚鍔熷悗<鏈櫥璁�>锛氬綋鍓嶆椂闂存湭瓒呰繃棰勮鏉ヨ鏃堕棿锛夈��
+                 *      * 2锛氳繜鍒帮紙棰勭害鎴愬姛鎴栭绾﹀鎵规垚鍔熷悗<鏈櫥璁�>锛氬綋鍓嶆椂闂磋秴杩囬璁℃潵璁挎椂闂达紝浣嗘湭瓒呰繃棰勮绂诲紑鏃堕棿锛夈��
+                 *      * 3锛氬け鏁堬紙棰勭害鎴愬姛鎴栭绾﹀鎵规垚鍔熷悗<鏈櫥璁�>锛氬綋鍓嶆椂闂村凡瓒呰繃棰勮绂诲紑鏃堕棿锛夈��
+                 *      * 4锛氬鏍搁��鍥烇紙棰勭害寰呭鎵癸紝瀹℃壒浜哄憳瀹℃壒閫�鍥烇級銆�
+                 *      * 5锛氳秴鏈熻嚜鍔ㄧ绂伙紙瓒呮湡鏈绂昏褰曡瀹紝鐢卞悗鍙颁换鍔″畾鏃跺鐞嗙绂伙級銆�
+                 *      * 6锛氬凡绛剧锛堣瀹㈢绂伙級銆�
+                 *      * 7锛氳秴鏈熸湭绛剧锛堣瀹㈢櫥璁帮紝褰撳墠鏃堕棿宸茶秴杩囬璁$寮�鏃堕棿锛岃繕鏈繘琛岀绂伙級銆�
+                 *      * 8锛氬凡鍒拌揪锛涳紙璁垮鐧昏锛屽綋鍓嶆椂闂存湭瓒呰繃棰勮绂诲紑鏃堕棿锛夈��
+                 *      * 9锛氬鏍稿け鏁堬紙棰勭害寰呭鎵癸紝涓�鐩村埌褰撳墠鏃堕棿瓒呰繃棰勮绂诲紑鏃堕棿锛岃繕鏈鎵归�氳繃锛夈��
+                 *      * 10锛氶個绾︿腑锛堝憳宸ュ彂璧烽個绾︼紝璁垮杩樻湭搴旈個锛夈��
+                 *      * 11锛氶個绾﹀け鏁堬紙鍛樺伐鍙戣捣閭�绾︼紝涓�鐩村埌褰撳墠鏃堕棿瓒呰繃棰勮绂诲紑鏃堕棿锛岃瀹㈣繕鏈簲閭�锛�
+                 */
+                if (model.getVisitorStatus()!=null && "3,4,11".contains( model.getVisitorStatus()+"" )){
+                    //瀵圭浉搴旂姸鎬佷笅鐨勬暟鎹繘琛屻�愬凡澶辨晥銆戝鐞�
+                    Visits update = new Visits();
+                    //宸插け鏁�
+                    update.setStatus(Constants.VisitStatus.invalid);
+                    update.setEditDate(date);
+                    update.setId(c.getId());
+                    update.setInDate(DateUtil.getISO8601DateByStr2(model.getVisitStartTime()));
+                    update.setOutDate(DateUtil.getISO8601DateByStr2(model.getVisitEndTime()));
+                    update.setRemark("瓒呮椂鏈櫥璁�");
+                    visitsMapper.updateById(update);
+                }
+                if (model.getVisitorStatus()!=null && "5,6".contains( model.getVisitorStatus()+"" )){
+                    // 瀵圭浉搴旂姸鎬佷笅鐨勬暟鎹繘琛屻�愬凡绛剧銆戝鐞�
+                    if(!Constants.equalsInteger(c.getStatus(),Constants.VisitStatus.signout)){
+                        Visits update = new Visits();
+                        //宸插け鏁�
+                        update.setStatus(Constants.VisitStatus.invalid);
+                        update.setEditDate(date);
+                        update.setId(c.getId());
+                        update.setInDate(DateUtil.getISO8601DateByStr2(model.getVisitStartTime()));
+                        update.setOutDate(DateUtil.getISO8601DateByStr2(model.getVisitEndTime()));
+                        update.setRemark("宸茬绂�");
+                        visitsMapper.updateById(update);
+                    }
+                }
+                if (model.getVisitorStatus()!=null&& "7,8".contains( model.getVisitorStatus()+"")){
+                    //濡傛灉宸茬櫥璁�
+                    if(!Constants.equalsInteger(c.getStatus(),Constants.VisitStatus.signin)){
+                        Visits update = new Visits();
+                        //宸插け鏁�
+                        update.setStatus(Constants.VisitStatus.signin);
+                        update.setEditDate(date);
+                        update.setId(c.getId());
+                        update.setInDate(DateUtil.getISO8601DateByStr2(model.getVisitStartTime()));
+                        update.setOutDate(DateUtil.getISO8601DateByStr2(model.getVisitEndTime()));
+                        update.setRemark("瓒呮椂鏈鍒�");
+                        visitsMapper.updateById(update);
+                    }
+                }
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }finally {
+            Constants.DEALING_HK_VISIT_EXPIRE =false;
+        }
+    }
+    public AppointmentInfoResponse getVisitRecord(String orderId){
+        //鍒嗛〉閬嶅巻寰幆鏌ヨ鎵�鏈夐棬绂佽澶囨暟鎹�
+        if(StringUtils.isBlank(orderId)){
+            return  null;
+        }
+        AppointmentListRequest param =  new AppointmentListRequest();
+        param.setPageNo(1);
+        param.setPageSize(1);
+        param.setOrderId(orderId);
+        BaseResponse<BaseListPageResponse<AppointmentInfoResponse>> response = HKService.appointmentRecords(param);
+        if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)  ){
+           return null;
+        }
+        if(response.getData() == null || response.getData().getList() == null|| response.getData().getList().size() ==0){
+           return  null;
+        }
+        return response.getData().getList().get(0);
+    }
     @Override
     public  void syncVisitData(){
         if(Constants.DEALING_HK_VISIT){
@@ -292,5 +401,13 @@
         List<Visits> list = visitsMapper.selectJoinList(Visits.class,queryWrapper);
         return list;
     }
+    private List<Visits> getExpireVisitList() {
+        MPJLambdaWrapper<Visits> queryWrapper = new MPJLambdaWrapper<>();
+        queryWrapper.selectAll(Visits.class);
+        queryWrapper.in(Visits::getStatus, Arrays.asList(new Integer[]{Constants.VisitStatus.xfSuccess,Constants.VisitStatus.signin}) );
+        List<Visits> list = visitsMapper.selectJoinList(Visits.class,queryWrapper);
+        return list;
+    }
+
 
 }

--
Gitblit v1.9.3