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