server/admin_timer/src/main/java/com/doumee/task/ScheduleTaskProgressTool.java
@@ -28,7 +28,7 @@ */ @Scheduled(fixedDelay=20*1000) public void syncEmpowerResultData() { endId = hkSyncEmpowerService.syncEmpowerResultData(endId); hkSyncEmpowerService.syncEmpowerResultData(endId); } } server/dmvisit_admin/src/main/java/com/doumee/api/business/DeviceRoleController.java
@@ -74,6 +74,12 @@ deviceRoleService.updateStatusById(deviceRole); return ApiResponse.success(null); } @ApiOperation("默认下发门禁组角色") @PostMapping("/updateMemberRole") public ApiResponse updateMemberRole(@RequestBody DeviceRole deviceRole) { deviceRoleService.updateMemberRole(deviceRole); return ApiResponse.success(null); } @ApiOperation("分页查询") @PostMapping("/page") server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java
@@ -26,8 +26,8 @@ * @date 2021-10-10 14:40:35 * https://www.bejson.com/othertools/cron/ cron 表达式生成地址 */ //@Component //@EnableScheduling @Component @EnableScheduling public class ScheduleTool { @Autowired server/dmvisit_service/src/main/java/com/doumee/service/business/DeviceRoleService.java
@@ -112,4 +112,5 @@ List<DeviceRoleVO> findListByType(Integer type); void updateMemberRole(DeviceRole deviceRole); } server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java
@@ -163,6 +163,56 @@ tt.start(); } } @Override public void updateMemberRole(DeviceRole deviceRole) { deviceRole.setType("2"); deviceRole.setIsdeleted(Constants.ZERO); List<DeviceRole> list =findList(deviceRole); if(list == null || list.size()==0){ throw new BusinessException(ResponseStatus.DATA_EMPTY); } for(DeviceRole model :list){ updateMemberRoleDO(model); } } public void updateMemberRoleDO(DeviceRole model) { if(model.getDoorIds() == null){ throw new BusinessException(ResponseStatus.DATA_EMPTY); } String[] newIds =StringUtils.defaultString(model.getDoorIds()).split(","); List<Integer> allids = getChangeIdsByArray(new String[]{},newIds);//最新设备 List<MemberRole> memberRoleList = memberRoleMapper.selectList(new QueryWrapper<MemberRole>().lambda() .eq(MemberRole::getRoleId,model.getId()) .eq(MemberRole::getIsdeleted,Constants.ZERO) ); if(memberRoleList!=null && memberRoleList.size()>0) { int num =1; for (MemberRole memberRole : memberRoleList) { Member member = memberMapper.selectById(memberRole.getMemberId()); if(member==null || member.getIsdeleted().equals(Constants.ONE)){ continue; } List<Integer> addIds = new ArrayList<>(); for(Integer did : allids){ Empower empower = empowerMapper.selectOne(new QueryWrapper<Empower>().lambda() .eq(Empower::getMemberId,member.getId()) .eq(Empower::getDeviceId,did ) .orderByDesc(Empower::getId) .last("limit 1")); if(empower ==null || Constants.equalsInteger(empower.getIsdeleted(),Constants.ONE)){ addIds.add(did); } } try { HkSyncOrgUserToHKServiceImpl.dealChangeDeviceRoleEmpower(member,addIds,null,deviceRoleMapper,empowerMapper,deviceMapper); }catch (Exception e){ e.printStackTrace(); } System.out.println("正在处理【"+model.getName()+"】======门禁数据【"+addIds.size()+"】====进度:【"+num+"|"+memberRoleList.size()+"】"); num ++; } } } /** * 更新该权限下相关的人员最新全新下发 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java
@@ -119,15 +119,13 @@ //如果是已删除的数据,下发失败(防止设备离线),则尝试重新下发任务 if(Constants.equalsInteger(c.getIsdeleted(), Constants.ONE) ){ // && Constants.formatIntegerNum(c.getTryNum())+1 < tryNum ){ empowerMapper.update(null, new UpdateWrapper<Empower>() /* empowerMapper.update(null, new UpdateWrapper<Empower>() .lambda() .eq(Empower::getId, c.getId()) .set(Empower::getRemark, "下发失败,等待重新删除权限") // .set(Empower::getHkId,null) // .set(Empower::getSendDate,null) .set(Empower::getTryNum,Constants.formatIntegerNum(c.getTryNum())+1) .set(Empower::getSendInfo, "下发失败,等待重新删除权限") .set(Empower::getSendStatus, Constants.EmpowerStatus.wait)); .set(Empower::getSendStatus, Constants.EmpowerStatus.wait));*/ empowerMapper.update(null, new UpdateWrapper<Empower>() .lambda() .eq(Empower::getId, c.getId()) server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java
@@ -436,6 +436,10 @@ .in(Empower::getDeviceId,delDoorIds) .set(Empower::getSendStatus,Constants.ZERO)); } if(addDoorIds==null || addDoorIds.size()==0){ //待移除权限的设备数据授权记录(针对删除和更新丢失的权限,需要同步下发删除权限) return; } if(StringUtils.isBlank(member.getFaceId())){ //如果没有卡 也没有人脸 return; @@ -469,13 +473,6 @@ list.add(model); } } //待移除权限的设备数据授权记录(针对删除和更新丢失的权限,需要同步下发删除权限) empowerMapper.update(null,new UpdateWrapper<Empower>().lambda() .eq(Empower::getMemberId,member.getId()) .set(Empower::getIsdeleted,Constants.ONE) .eq(Empower::getIsdeleted,Constants.ZERO) .notIn(deviceIds.size()>0,Empower::getDeviceId,deviceIds) .set(Empower::getSendStatus,Constants.ZERO)); //导入新增的授权信息 if(list.size()>0){ //直接覆盖重复的设备权限,直接删除即可