nidapeng
2024-03-20 4d035492d47d7a3a484d4f47c2340038b2e88cf0
整理
已修改7个文件
80 ■■■■ 文件已修改
server/admin_timer/src/main/java/com/doumee/task/ScheduleTaskProgressTool.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_admin/src/main/java/com/doumee/api/business/DeviceRoleController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/DeviceRoleService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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){
            //直接覆盖重复的设备权限,直接删除即可