.idea/libraries/Maven__commons_net_commons_net_3_8_0.xml
ÎļþÒÑɾ³ý server/dmvisit_admin/src/main/java/com/doumee/api/business/DoorRoleController.java
@@ -6,8 +6,6 @@ import com.doumee.core.model.ApiResponse; import com.doumee.core.model.PageWrap; import com.doumee.core.model.PageData; import com.doumee.dao.business.model.DoorRole; import com.doumee.service.business.DoorRoleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.shiro.authz.annotation.RequiresPermissions; server/dmvisit_admin/src/main/java/com/doumee/api/business/HkSyncController.java
@@ -4,6 +4,7 @@ import com.doumee.core.annotation.excel.ExcelExporter; import com.doumee.core.annotation.pr.PreventRepeat; import com.doumee.core.haikang.model.param.request.AcsDeviceListRequest; import com.doumee.core.haikang.model.param.request.ParkListRequest; import com.doumee.core.haikang.service.HKService; import com.doumee.core.model.ApiResponse; import com.doumee.core.model.PageData; @@ -34,12 +35,20 @@ private HkSyncService hkSyncService; @PreventRepeat @ApiOperation("å ¨é忥é¨ç¦è®¾å¤æ¥å£") @ApiOperation("ãæµ·åº·ãå ¨é忥é¨ç¦è®¾å¤æ¥å£") @PostMapping("/getDevices") @RequiresPermissions("business:hksync:device") public ApiResponse getDevices(@RequestBody AcsDeviceListRequest param) { hkSyncService.syncHkDevices(param); return ApiResponse.success(null); String result = hkSyncService.syncHkDevices(param); return ApiResponse.success(result); } @PreventRepeat @ApiOperation("ãæµ·åº·ãå ¨é忥åè½¦åºæ¥å£") @PostMapping("/getDevices") @RequiresPermissions("business:hksync:park") public ApiResponse getDevices(@RequestBody ParkListRequest param) { String result = hkSyncService.syncHkParks(param); return ApiResponse.success(result); } } server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PrivilegeGroupInfoResponse.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,13 @@ package com.doumee.core.haikang.model.param.respose; import lombok.Data; @Data public class PrivilegeGroupInfoResponse { private String privilegeGroupId;// string False æéç»ID, ç¨äºè®¿å®¢ç»è®°æ¶å¯¹è®¿å®¢ææ private String privilegeGroupName;// string False æéç»åç§° private String remark;// string False æè¿° private Integer isDefault ;//number False æ¯å¦æ¯é»è®¤æéç»0: æ¯1: å¦ } server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PrivilegeGroupListResponse.java
@@ -8,8 +8,8 @@ public class PrivilegeGroupListResponse { private String privilegeGroupId;// string False æéç»ID, ç¨äºè®¿å®¢ç»è®°æ¶å¯¹è®¿å®¢ææ private String privilegeGroupName;// string False æéç»åç§° private String remark;// string False æè¿° private Integer isDefault ;//number False æ¯å¦æ¯é»è®¤æéç»0: æ¯1: å¦ private int total;// number False æ¥è¯¢æ°æ®è®°å½æ»æ° private int pageSize;// number False æ¯é¡µè®°å½æ»æ° private int pageNo ;// number False å½å页ç private List<PrivilegeGroupInfoResponse> list ;// object[] False æéç»å¯¹è±¡å表 } server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PrivilegeGroupResponse.java
ÎļþÒÑɾ³ý server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
@@ -403,13 +403,13 @@ *访客æéç»å表æ¥è¯¢ï¼åé¡µï¼ * @return */ public BaseResponse<PrivilegeGroupResponse> privilegeGroup(PrivilegeGroupRequest param){ public BaseResponse<PrivilegeGroupListResponse> privilegeGroup(PrivilegeGroupRequest param){ log.error("ãæµ·åº·è®¿å®¢æéç»å表æ¥è¯¢ã================å¼å§===="+JSONObject.toJSONString(param)); try { String res = HKTools.privilegeGroup(JSONObject.toJSONString(param)); TypeReference typeReference = new TypeReference< BaseResponse<PrivilegeGroupResponse> >(){}; BaseResponse<PrivilegeGroupResponse> result = JSONObject.parseObject(res, typeReference.getType()); new TypeReference< BaseResponse<PrivilegeGroupListResponse> >(){}; BaseResponse<PrivilegeGroupListResponse> result = JSONObject.parseObject(res, typeReference.getType()); log.error("ãæµ·åº·è®¿å®¢æéç»å表æ¥è¯¢ã================æå====\n"+res); return result; }catch (Exception e){ server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -31,6 +31,11 @@ String activity_looknum = "looknum"; String activity_signup = "signup"; } public interface DOOR_ROLE_TYPE{ int lw = 0; int fk = 1; int nb = 2; } public static final String SUCCESS_STR = "SUCCESS" ; //å¼é¨æ¶é´æææï¼åéï¼ server/dmvisit_service/src/main/java/com/doumee/dao/business/DeviceRoleMapper.java
@@ -3,10 +3,13 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.doumee.dao.business.model.DeviceRole; import java.util.List; /** * @author æ±è¹è¹ * @date 2023/11/30 15:33 */ public interface DeviceRoleMapper extends BaseMapper<DeviceRole> { void insertBatchSomeColumn(List<DeviceRole> addList); } server/dmvisit_service/src/main/java/com/doumee/dao/business/DoorRoleMapper.java
ÎļþÒÑɾ³ý server/dmvisit_service/src/main/java/com/doumee/dao/business/ParksMapper.java
@@ -3,10 +3,13 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.doumee.dao.business.model.Parks; import java.util.List; /** * @author æ±è¹è¹ * @date 2023/11/30 15:33 */ public interface ParksMapper extends BaseMapper<Parks> { void insertBatchSomeColumn(List<Parks> addList); } server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java
@@ -53,7 +53,7 @@ @ApiModelProperty(value = "é¢çº¦æ è¯", example = "1") @ExcelColumn(name="é¢çº¦æ è¯") private Integer hkId; private String hkId; @ApiModelProperty(value = "æåºç ", example = "1") @ExcelColumn(name="æåºç ") @@ -69,7 +69,7 @@ @ApiModelProperty(value = "海康æ è¯", example = "1") @ExcelColumn(name="海康æ è¯") private Integer hkId2; private String hkId2; @ApiModelProperty(value = "æµ·åº·åæ¥ç¶æ 0æªåæ¥ 1已忥", example = "1") @ExcelColumn(name="æµ·åº·åæ¥ç¶æ 0æªåæ¥ 1已忥") server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Company.java
@@ -104,7 +104,7 @@ @ApiModelProperty(value = "海康æ è¯") @ExcelColumn(name="海康æ è¯") private Integer hkId; private String hkId; @ApiModelProperty(value = "æµ·åº·åæ¥ç¶æ 0æªåæ¥ 1已忥") @ExcelColumn(name="æµ·åº·åæ¥ç¶æ 0æªåæ¥ 1已忥") server/dmvisit_service/src/main/java/com/doumee/dao/business/model/DeviceRole.java
@@ -55,13 +55,13 @@ @ExcelColumn(name="åç§°") private String name; @ApiModelProperty(value = "æ¯å¦é»è®¤ 0å¦ 1æ¯", example = "1") @ExcelColumn(name="æ¯å¦é»è®¤ 0å¦ 1æ¯") @ApiModelProperty(value = "æ¯å¦æ¯é»è®¤æéç»0: æ¯1: å¦", example = "1") @ExcelColumn(name="æ¯å¦æ¯é»è®¤æéç»0: æ¯1: å¦") private Integer isDefault; @ApiModelProperty(value = "ç±»å 0å³å¡è®¿å®¢ 1æ®é访客 2å é¨äººå") @ExcelColumn(name="ç±»å 0å³å¡è®¿å®¢ 1æ®é访客 2å é¨äººå") private String type; private Integer type; @ApiModelProperty(value = "å¯ä½¿ç¨é¨ç¦ç¼ç éåï¼å¤ä¸ªè±æéå·éå¼") @ExcelColumn(name="å¯ä½¿ç¨é¨ç¦ç¼ç éåï¼å¤ä¸ªè±æéå·éå¼") @@ -83,4 +83,18 @@ @ExcelColumn(name="ç¶æ 0ç¦ç¨ 1å¯ç¨") private Integer status; @ApiModelProperty(value = "海康æ è¯", example = "1") @ExcelColumn(name="海康æ è¯") private String hkId; @ApiModelProperty(value = "æµ·åº·åæ¥ç¶æ 0æªåæ¥ 1已忥", example = "1") @ExcelColumn(name="æµ·åº·åæ¥ç¶æ 0æªåæ¥ 1已忥") private Integer hkStatus; @ApiModelProperty(value = "海康æè¿åæ¥æ¶é´") @ExcelColumn(name="海康æè¿åæ¥æ¶é´") @JsonFormat(pattern = "yyyy-MM-dd") private Date hkDate; } server/dmvisit_service/src/main/java/com/doumee/dao/business/model/DoorRole.java
ÎļþÒÑɾ³ý server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Empower.java
@@ -53,7 +53,7 @@ @ApiModelProperty(value = "é¢çº¦æ è¯", example = "1") @ExcelColumn(name="é¢çº¦æ è¯") private Integer hkId; private String hkId; @ApiModelProperty(value = "æåºç ", example = "1") @ExcelColumn(name="æåºç ") server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java
@@ -134,7 +134,7 @@ @ApiModelProperty(value = "海康æ è¯", example = "1") @ExcelColumn(name="海康æ è¯") private Integer hkId; private String hkId; @ApiModelProperty(value = "æµ·åº·åæ¥ç¶æ 0æªåæ¥ 1已忥 2åæ¥å¤±è´¥ ", example = "1") @ExcelColumn(name="æµ·åº·åæ¥ç¶æ 0æªåæ¥ 1已忥 2åæ¥å¤±è´¥") server/dmvisit_service/src/main/java/com/doumee/dao/business/model/MemberCard.java
@@ -65,7 +65,7 @@ @ApiModelProperty(value = "海康æ è¯", example = "1") @ExcelColumn(name="海康æ è¯") private Integer hkId; private String hkId; @ApiModelProperty(value = "æµ·åº·åæ¥ç¶æ 0æªåæ¥ 1已忥", example = "1") @ExcelColumn(name="æµ·åº·åæ¥ç¶æ 0æªåæ¥ 1已忥") server/dmvisit_service/src/main/java/com/doumee/dao/business/model/ParkBook.java
@@ -53,7 +53,7 @@ @ApiModelProperty(value = "é¢çº¦æ è¯", example = "1") @ExcelColumn(name="é¢çº¦æ è¯") private Integer hkId; private String hkId; @ApiModelProperty(value = "æåºç ", example = "1") @ExcelColumn(name="æåºç ") @@ -95,7 +95,7 @@ @ApiModelProperty(value = "海康æ è¯", example = "1") @ExcelColumn(name="海康æ è¯") private Integer hkId2; private String hkId2; @ApiModelProperty(value = "æµ·åº·åæ¥ç¶æ 0å¾ ä¸å 1ä¸åæå 2ä¸å失败 3åæ¶ä¸å", example = "1") @ExcelColumn(name="æµ·åº·åæ¥ç¶æ 0å¾ ä¸å 1ä¸åæå 2ä¸å失败 3åæ¶ä¸å") server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Parks.java
@@ -53,11 +53,11 @@ @ApiModelProperty(value = "é¢ç®") @ExcelColumn(name="é¢ç®") private String title; private String name; @ApiModelProperty(value = "海康æ è¯", example = "1") @ExcelColumn(name="海康æ è¯") private Integer hkId; private String hkId; @ApiModelProperty(value = "æµ·åº·åæ¥ç¶æ 0æªåæ¥ 1已忥", example = "1") @ExcelColumn(name="æµ·åº·åæ¥ç¶æ 0æªåæ¥ 1已忥") server/dmvisit_service/src/main/java/com/doumee/service/business/DoorRoleService.java
ÎļþÒÑɾ³ý server/dmvisit_service/src/main/java/com/doumee/service/business/HkSyncService.java
@@ -1,6 +1,8 @@ package com.doumee.service.business; 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.request.PrivilegeGroupRequest; /** * å车åºäºä»¶æ¨éè®°å½è¡¨Serviceå®ä¹ @@ -8,5 +10,25 @@ * @date 2023/11/30 15:33 */ public interface HkSyncService { /** * åæ¥æµ·åº·é¨ç¦è®¾å¤ * @param param * @return */ String syncHkDevices(AcsDeviceListRequest param); /** * åæ¥æµ·åº·åè½¦åº * @param param * @return */ String syncHkParks(ParkListRequest param); /** * åæ¥æµ·åº·è®¿å®¢æéç» * @param param * @return */ String syncPrivilege(PrivilegeGroupRequest param); } server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DoorRoleServiceImpl.java
ÎļþÒÑɾ³ý server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,67 @@ package com.doumee.service.business.impl.hksync; 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.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.ParkListResponse; import com.doumee.core.haikang.service.HKService; import com.doumee.core.utils.Constants; import com.doumee.core.utils.DateUtil; import com.doumee.dao.business.DeviceMapper; import com.doumee.dao.business.ParksMapper; import com.doumee.dao.business.model.Device; import com.doumee.dao.business.model.Parks; import com.doumee.service.business.HkSyncService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * 设å¤ä¿¡æ¯è¡¨Serviceå®ç° * @author æ±è¹è¹ * @date 2023/11/30 15:33 */ @Service public class HkSyncBaseServiceImpl implements HkSyncService { @Autowired public HKService hkService; /** * åæ¥æµ·åº·åè½¦åºæ°æ® * @param param * @return */ @Override // @Async public String syncHkParks(ParkListRequest param){ return null; } /** * åæ¥æµ·åº·é¨ç¦è®¾å¤æ°æ® * @param param * @return */ @Override // @Async public String syncHkDevices(AcsDeviceListRequest param){ return null; } @Override // @Async public String syncPrivilege(PrivilegeGroupRequest param){ return null; } } server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDeviceServiceImpl.java
ÎļþÃû´Ó server/dmvisit_service/src/main/java/com/doumee/service/business/impl/HkSyncServiceImpl.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()); } //夿è·åå é¤çé¨ç¦è®¾å¤ï¼é»è¾å é¤ getAddAndEditList(allList,allHkList,addList,editList,date); getDeleteList(allList,allHkList,deleteList,date); curPage++; } /** * è·åå¢å æ¹æ°æ®éå */ 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); server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,152 @@ package com.doumee.service.business.impl.hksync; 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.utils.Constants; import com.doumee.core.utils.DateUtil; import com.doumee.dao.business.DeviceMapper; import com.doumee.dao.business.ParksMapper; import com.doumee.dao.business.model.Device; 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 java.util.ArrayList; import java.util.Date; import java.util.List; /** * 海康å车åºåæ¥Serviceå®ç° * @author æ±è¹è¹ * @date 2023/11/30 15:33 */ @Service public class HkSyncParkServiceImpl extends HkSyncBaseServiceImpl { @Autowired private ParksMapper parksMapper; /** * åæ¥æµ·åº·åè½¦åºæ°æ® * @param param * @return */ @Override // @Async public String syncHkParks(ParkListRequest param){ List<Parks> deleteList = new ArrayList<>(); List<Parks> addList = new ArrayList<>(); List<Parks> editList = new ArrayList<>(); Date date = new Date(); //æ¥è¯¢å ¨é¨å½åæ°æ® List<Parks> allList = parksMapper.selectList(null); //å页éåå¾ªç¯æ¥è¯¢ææé¨ç¦è®¾å¤æ°æ® param = new ParkListRequest(); BaseResponse<List<ParkListResponse>> response = hkService.parkList(param); if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "对ä¸èµ·ï¼æµ·åº·åæ¥æ°æ®å¤±è´¥~"); } List<ParkListResponse> allHkList = response.getData(); // è·åå¢å æ¹æ°æ®éå getDataChangeList(allList,allHkList,addList,editList,deleteList,date); if(deleteList.size()>0){ //é»è¾å é¤ for(Parks d : deleteList){ parksMapper.updateById(d); } } if(addList.size()>0){ parksMapper.insertBatchSomeColumn(addList); } if(editList.size()>0){ for(Parks d : editList){ parksMapper.updateById(d); } } return "åæ¥æ°æ®ï¼æ°å¢ã"+addList.size()+"ãæ¡ï¼æ´æ°ã"+editList.size()+"ãæ¡ï¼å é¤ã"+deleteList.size()+"ãæ¡"; } private void getDataChangeList(List<Parks> allList, List<ParkListResponse> allHkList, List<Parks> addList, List<Parks> editList,List<Parks> deleteList, Date date) { if(allHkList!=null && allHkList.size()>0){ for(ParkListResponse device : allHkList){ Parks model = getExistedData(device,allList); if(model !=null){ //妿已åå¨ï¼åæ´æ°æ°æ® model = initModelByHkData(model,device,date); editList.add(model); }else{ //妿ä¸åå¨ï¼åæ°å¢æ°æ® model = new Parks(); model = initModelByHkData(model,device,date); addList.add(model); } } } //夿è·åå é¤çé¨ç¦è®¾å¤ï¼é»è¾å é¤ getDeleteList(allList,allHkList,deleteList,date); } /** * åå§åæµ·åº·å ¥åºæ°æ® * @param model * @param device * @param date * @return */ private Parks initModelByHkData(Parks model, ParkListResponse device,Date date) { model.setIsdeleted(Constants.ZERO); model.setName(device.getParkName()); model.setHkDate(date); model.setCreateDate(DateUtil.StringToDate2(device.getCreateTime())); model.setEditDate(DateUtil.StringToDate2(device.getUpdateTime())); model.setHkId(device.getParkIndexCode()); model.setHkStatus(Constants.ONE); return model; } private Parks getExistedData(ParkListResponse data, List<Parks> allList) { if(allList.size()>0){ for(Parks r : allList){ if(StringUtils.equals(r.getHkId(), data.getParkIndexCode())){ //表示æªå é¤ return r; } } } return null; } private void getDeleteList(List<Parks> allList, List<ParkListResponse> allHkList,List<Parks> deleteList ,Date date) { if(allList!=null && allList.size()>0){ for(Parks data : allList){ if(isDeletedDevice(data,allHkList)){ data.setIsdeleted(Constants.ONE); data.setEditDate(date); deleteList.add(data); } } } } private boolean isDeletedDevice(Parks device, List<ParkListResponse> allHkList) { if(allHkList.size()>0){ for(ParkListResponse r : allHkList){ if(StringUtils.equals(device.getHkId(), r.getParkIndexCode())){ //表示æªå é¤ return false; } } } return true; } } server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPrivilegeServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,173 @@ package com.doumee.service.business.impl.hksync; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.PrivilegeGroupRequest; import com.doumee.core.haikang.model.param.respose.AcsDeviceInfoResponse; import com.doumee.core.haikang.model.param.respose.PrivilegeGroupInfoResponse; import com.doumee.core.haikang.model.param.respose.PrivilegeGroupListResponse; import com.doumee.core.utils.Constants; import com.doumee.core.utils.DateUtil; 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; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * 访客æéç»ä¿¡æ¯è¡¨Serviceå®ç° * @author æ±è¹è¹ * @date 2023/11/30 15:33 */ @Service public class HkSyncPrivilegeServiceImpl extends HkSyncBaseServiceImpl { @Autowired private DeviceRoleMapper DeviceRoleMapper; /** * åæ¥æµ·åº·è®¿å®¢ç»æéæ°æ® * @param param * @return */ @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(10000); 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 += 10000; if(curTotal >= r.getTotal()){ hasNext = false; } if(r.getList() == null || r.getList().size()==0){ hasNext =false; }else{ allHkList.addAll(r.getList()); } curPage ++; } /** * è·åå¢å æ¹æ°æ®éå */ 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()+"ãæ¡"; } private void getDataChangeList(List<DeviceRole> allList, List<PrivilegeGroupInfoResponse> allHkList, List<DeviceRole> addList, List<DeviceRole> editList,List<DeviceRole> deleteList, Date date) { if(allHkList!=null && allHkList.size()>0){ for(PrivilegeGroupInfoResponse device : allHkList){ DeviceRole model = getExistedData(device,allList); if(model !=null){ //妿已åå¨ï¼åæ´æ°æ°æ® model = initDataByHkData(model,device,date); editList.add(model); }else{ //妿ä¸åå¨ï¼åæ°å¢æ°æ® model = new DeviceRole(); model = initDataByHkData(model,device,date); addList.add(model); } } } //夿è·åå é¤çé¨ç¦è®¾å¤ï¼é»è¾å é¤ getDeleteList(allList,allHkList,deleteList,date); } /** * åå§åæµ·åº·å ¥åºæ°æ® * @param model * @param device * @param date * @return */ private DeviceRole initDataByHkData(DeviceRole model, PrivilegeGroupInfoResponse device,Date date) { model.setIsdeleted(Constants.ZERO); model.setHkId(device.getPrivilegeGroupId()); model.setName(device.getPrivilegeGroupName()); model.setHkStatus(Constants.ONE); model.setIsdeleted(Constants.ONE); model.setIsDefault(device.getIsDefault()); model.setType(Constants.ZERO); return model; } private DeviceRole getExistedData(PrivilegeGroupInfoResponse device, List<DeviceRole> allList) { if(allList.size()>0){ for(DeviceRole r : allList){ if(StringUtils.equals(r.getHkId(), device.getPrivilegeGroupId())){ //表示æªå é¤ return r; } } } return null; } private void getDeleteList(List<DeviceRole> allList, List<PrivilegeGroupInfoResponse> allHkList,List<DeviceRole> deleteList ,Date date) { if(allList!=null && allList.size()>0){ for(DeviceRole device : allList){ if(isDeletedData(device,allHkList)){ device.setIsdeleted(Constants.ONE); device.setEditDate(date); deleteList.add(device); } } } } private boolean isDeletedData(DeviceRole device, List<PrivilegeGroupInfoResponse> allHkList) { if(allHkList.size()>0){ for(PrivilegeGroupInfoResponse r : allHkList){ if(StringUtils.equals(device.getHkId(), r.getPrivilegeGroupId())){ //表示æªå é¤ return false; } } } return true; } }