From 70577a6d6cf2bded29e71dcad11a0c2605193d20 Mon Sep 17 00:00:00 2001 From: lishuai <260038442@qq.com> Date: 星期二, 26 十二月 2023 10:32:31 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPrivilegeServiceImpl.java | 116 +++++++++++++++++++++++++++++++++------------------------- 1 files changed, 66 insertions(+), 50 deletions(-) diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPrivilegeServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPrivilegeServiceImpl.java index f8bd711..2459aa6 100644 --- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPrivilegeServiceImpl.java +++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPrivilegeServiceImpl.java @@ -5,12 +5,16 @@ 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.PrivilegeGroupRequest; +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.PrivilegeGroupInfoResponse; import com.doumee.core.haikang.model.param.respose.PrivilegeGroupListResponse; import com.doumee.core.haikang.service.HKService; import com.doumee.core.utils.Constants; import com.doumee.dao.business.DeviceRoleMapper; +import com.doumee.dao.business.model.Device; import com.doumee.dao.business.model.DeviceRole; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -38,59 +42,71 @@ @Override // @Async public String syncPrivilege(PrivilegeGroupRequest param){ - List<DeviceRole> deleteList = new ArrayList<>(); - List<DeviceRole> addList = new ArrayList<>(); - List<DeviceRole> editList = new ArrayList<>(); - List<PrivilegeGroupInfoResponse> allHkList = new ArrayList<>(); - Date date = new Date(); - //鏌ヨ鍏ㄩ儴鐜版湁鏁版嵁锛屽彧绠$悊鍚屾 璁垮缁� - List<Integer> types = new ArrayList<>(); - types.add(Constants.DOOR_ROLE_TYPE.fk); - types.add(Constants.DOOR_ROLE_TYPE.lw); - List<DeviceRole> allList = DeviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda().in(DeviceRole::getType,types)); - boolean hasNext = true; - int curTotal = 0; - int curPage = 1; - while (hasNext){ - //鍒嗛〉閬嶅巻寰幆鏌ヨ鎵�鏈夐棬绂佽澶囨暟鎹� - param = new PrivilegeGroupRequest(); - param.setPageNo(curPage); - param.setPageSize(100); - BaseResponse<PrivilegeGroupListResponse> response = HKService.privilegeGroup(param); - if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){ - throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~"); - } - PrivilegeGroupListResponse r = response.getData(); - curTotal += 100; - if(curTotal >= r.getTotal()){ - hasNext = false; - } - if(r.getList() == null || r.getList().size()==0){ - hasNext =false; - }else{ - allHkList.addAll(r.getList()); - } - curPage ++; + if(Constants.DEALING_HK_SYNCDEVICE){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鍚屾浠诲姟姝e湪鎵ц鍝︼紝璇风◢鍚庢煡鐪嬬粨鏋滐紒") ; } - /** - * 鑾峰彇澧炲垹鏀规暟鎹泦鍚� - */ - getDataChangeList(allList,allHkList,addList,editList,deleteList,date); - if(deleteList.size()>0){ - //閫昏緫鍒犻櫎 - for(DeviceRole d : deleteList){ - DeviceRoleMapper.updateById(d); + Constants.DEALING_HK_SYNCDEVICE =true; + try { + List<DeviceRole> deleteList = new ArrayList<>(); + List<DeviceRole> addList = new ArrayList<>(); + List<DeviceRole> editList = new ArrayList<>(); + List<PrivilegeGroupInfoResponse> allHkList = new ArrayList<>(); + Date date = new Date(); + //鏌ヨ鍏ㄩ儴鐜版湁鏁版嵁锛屽彧绠$悊鍚屾 璁垮缁� + List<Integer> types = new ArrayList<>(); + types.add(Constants.DOOR_ROLE_TYPE.fk); + types.add(Constants.DOOR_ROLE_TYPE.lw); + List<DeviceRole> allList = DeviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda().in(DeviceRole::getType,types)); + boolean hasNext = true; + int curTotal = 0; + int curPage = 1; + while (hasNext){ + //鍒嗛〉閬嶅巻寰幆鏌ヨ鎵�鏈夐棬绂佽澶囨暟鎹� + param = new PrivilegeGroupRequest(); + param.setPageNo(curPage); + param.setPageSize(100); + BaseResponse<PrivilegeGroupListResponse> response = HKService.privilegeGroup(param); + if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){ + throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~"); + } + PrivilegeGroupListResponse r = response.getData(); + curTotal += 100; + if(curTotal >= r.getTotal()){ + hasNext = false; + } + if(r.getList() == null || r.getList().size()==0){ + hasNext =false; + }else{ + allHkList.addAll(r.getList()); + } + curPage ++; } - } - if(addList.size()>0){ - DeviceRoleMapper.insertBatchSomeColumn(addList); - } - if(editList.size()>0){ - for(DeviceRole d : editList){ - DeviceRoleMapper.updateById(d); + /** + * 鑾峰彇澧炲垹鏀规暟鎹泦鍚� + */ + getDataChangeList(allList,allHkList,addList,editList,deleteList,date); + if(deleteList.size()>0){ + //閫昏緫鍒犻櫎 + for(DeviceRole d : deleteList){ + DeviceRoleMapper.updateById(d); + } } + if(addList.size()>0){ + DeviceRoleMapper.insertBatchSomeColumn(addList); + } + if(editList.size()>0){ + for(DeviceRole d : editList){ + DeviceRoleMapper.updateById(d); + } + } + return "鍚屾鏁版嵁锛氭柊澧炪��"+addList.size()+"銆戞潯锛屾洿鏂般��"+editList.size()+"銆戞潯锛屽垹闄ゃ��"+deleteList.size()+"銆戞潯"; + }catch (Exception e){ + e.printStackTrace(); + throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "鍚屾澶辫触锛�"); + }finally { + Constants.DEALING_HK_SYNCDEVICE =false; } - return "鍚屾鏁版嵁锛氭柊澧炪��"+addList.size()+"銆戞潯锛屾洿鏂般��"+editList.size()+"銆戞潯锛屽垹闄ゃ��"+deleteList.size()+"銆戞潯"; + } private void getDataChangeList(List<DeviceRole> allList, List<PrivilegeGroupInfoResponse> allHkList, List<DeviceRole> addList, List<DeviceRole> editList,List<DeviceRole> deleteList, Date date) { @@ -127,7 +143,7 @@ model.setHkStatus(Constants.ONE); model.setIsdeleted(Constants.ONE); model.setIsDefault(device.getIsDefault()); - model.setType(Constants.ZERO); + model.setType(String.valueOf(Constants.ZERO)); return model; } -- Gitblit v1.9.3