From 69676cf96655ea6235a5e228c18783916d4edb55 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 06 十二月 2023 10:02:18 +0800
Subject: [PATCH] 海康接口对接开发

---
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDeviceServiceImpl.java |   55 ++++++++++++++++++++++++++++++-------------------------
 1 files changed, 30 insertions(+), 25 deletions(-)

diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/HkSyncServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDeviceServiceImpl.java
similarity index 80%
rename from server/dmvisit_service/src/main/java/com/doumee/service/business/impl/HkSyncServiceImpl.java
rename to server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDeviceServiceImpl.java
index fe25c11..1c99ba1 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/HkSyncServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDeviceServiceImpl.java
@@ -1,32 +1,25 @@
-package com.doumee.service.business.impl;
+package com.doumee.service.business.impl.hksync;
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 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.BaseResponse;
 import com.doumee.core.haikang.model.param.request.AcsDeviceListRequest;
+import com.doumee.core.haikang.model.param.request.ParkListRequest;
 import com.doumee.core.haikang.model.param.respose.AcsDeviceInfoResponse;
 import com.doumee.core.haikang.model.param.respose.AcsDeviceListResponse;
+import com.doumee.core.haikang.model.param.respose.ParkListResponse;
 import com.doumee.core.haikang.service.HKService;
-import com.doumee.core.model.PageData;
-import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.DateUtil;
-import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.DeviceMapper;
+import com.doumee.dao.business.ParksMapper;
 import com.doumee.dao.business.model.Device;
-import com.doumee.service.business.DeviceService;
-import com.doumee.service.business.HkSyncService;
+import com.doumee.dao.business.model.Parks;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
 
-import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -37,13 +30,16 @@
  * @date 2023/11/30 15:33
  */
 @Service
-public class HkSyncServiceImpl implements HkSyncService {
+public class HkSyncDeviceServiceImpl extends HkSyncBaseServiceImpl {
 
     @Autowired
     private DeviceMapper deviceMapper;
 
-    @Autowired
-    private HKService hkService;
+    /**
+     * 鍚屾娴峰悍闂ㄧ璁惧鏁版嵁
+     * @param param
+     * @return
+     */
     @Override
 //    @Async
     public String syncHkDevices(AcsDeviceListRequest param){
@@ -56,10 +52,11 @@
         List<Device> allList = deviceMapper.selectList(null);
         boolean hasNext = true;
         int curTotal = 0;
+        int curPage = 1;
         while (hasNext){
             //鍒嗛〉閬嶅巻寰幆鏌ヨ鎵�鏈夐棬绂佽澶囨暟鎹�
             param = new AcsDeviceListRequest();
-            param.setPageNo(1);
+            param.setPageNo(curPage);
             param.setPageSize(10000);
             BaseResponse<AcsDeviceListResponse> response = hkService.acsDeviceList(param);
             if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
@@ -70,11 +67,17 @@
             if(curTotal >= r.getTotal()){
                 hasNext = false;
             }
-            List<AcsDeviceInfoResponse> tlist = r.getList();
+            if(r.getList() == null || r.getList().size()==0){
+                hasNext =false;
+            }else{
+                allHkList.addAll(r.getList());
+            }
+            curPage++;
         }
-        //鍒ゆ柇鑾峰彇鍒犻櫎鐨勯棬绂佽澶囷紝閫昏緫鍒犻櫎
-        getAddAndEditList(allList,allHkList,addList,editList,date);
-        getDeleteList(allList,allHkList,deleteList,date);
+        /**
+         * 鑾峰彇澧炲垹鏀规暟鎹泦鍚�
+         */
+        getDataChangeList(allList,allHkList,addList,editList,deleteList,date);
         if(deleteList.size()>0){
             //閫昏緫鍒犻櫎
             for(Device d : deleteList){
@@ -89,25 +92,27 @@
                 deviceMapper.updateById(d);
             }
         }
-        return "鍚屾闂ㄧ鏁版嵁锛氭柊澧炪��"+addList.size()+"銆戞潯锛屾洿鏂般��"+editList.size()+"銆戞潯锛屽垹闄ゃ��"+deleteList.size()+"銆戞潯";
+        return "鍚屾鏁版嵁锛氭柊澧炪��"+addList.size()+"銆戞潯锛屾洿鏂般��"+editList.size()+"銆戞潯锛屽垹闄ゃ��"+deleteList.size()+"銆戞潯";
     }
 
-    private void getAddAndEditList(List<Device> allList, List<AcsDeviceInfoResponse> allHkList, List<Device> addList, List<Device> editList, Date date) {
+    private void getDataChangeList(List<Device> allList, List<AcsDeviceInfoResponse> allHkList, List<Device> addList, List<Device> editList,List<Device> deleteList, Date date) {
         if(allHkList!=null && allHkList.size()>0){
             for(AcsDeviceInfoResponse device : allHkList){
                 Device model = getExistedDevice(device,allList);
                 if(model !=null){
                     //濡傛灉宸插瓨鍦紝鍒欐洿鏂版暟鎹�
-                    model =  initDeviceByHkData(model,device,date);
+                    model =  initDataByHkData(model,device,date);
                     editList.add(model);
                 }else{
                     //濡傛灉涓嶅瓨鍦紝鍒欐柊澧炴暟鎹�
                     model = new Device();
-                    model =  initDeviceByHkData(model,device,date);
+                    model =  initDataByHkData(model,device,date);
                     addList.add(model);
                 }
             }
         }
+        //鍒ゆ柇鑾峰彇鍒犻櫎鐨勯棬绂佽澶囷紝閫昏緫鍒犻櫎
+        getDeleteList(allList,allHkList,deleteList,date);
     }
 
     /**
@@ -117,7 +122,7 @@
      * @param date
      * @return
      */
-    private Device initDeviceByHkData(Device model, AcsDeviceInfoResponse device,Date date) {
+    private Device initDataByHkData(Device model, AcsDeviceInfoResponse device,Date date) {
         model.setIsdeleted(Constants.ZERO);
         model.setIp(device.getIp());
         model.setHkDate(date);

--
Gitblit v1.9.3