nidapeng
2024-03-25 755b60c531999e9d3c0a94759a2a5e92f5e4ad4e
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java
@@ -132,12 +132,14 @@
                                            .eq(Empower::getId, c.getId())
                                            .set(Empower::getRemark, "删除权限下发失败")
                                            .set(Empower::getSendInfo, "删除权限下发失败")
                                            .set(Empower::getTryNum,Constants.formatIntegerNum(c.getTryNum())+1)
                                            .set(Empower::getSendStatus, Constants.EmpowerStatus.fail));
                                }else{
                                    empowerMapper.update(null, new UpdateWrapper<Empower>()
                                            .lambda()
                                            .eq(Empower::getId, c.getId())
                                            .set(Empower::getRemark, "下发失败")
                                            .set(Empower::getTryNum,Constants.formatIntegerNum(c.getTryNum())+1)
                                            .set(Empower::getSendInfo, "下发失败")
                                            .set(Empower::getSendStatus, Constants.EmpowerStatus.fail));
                                }
@@ -321,28 +323,40 @@
        List<Empower> allList =getAllFailDealList( endId);
        if(allList!=null && allList.size()>0){
            Date date = new Date();
            List<Integer> retryIds = new ArrayList<>();
            List<Integer> noIds = new ArrayList<>();
            for(Empower empower:allList){
                if(Constants.equalsObject(empower.getIsdeleted(),Constants.ONE)){
                    //如果是删除的权限下发,查询是否伺候有下发成功的数据,如果有,则不处理
                    Empower param = empowerMapper.selectOne(new QueryWrapper<Empower>().lambda()
                            .eq(Empower::getMemberId,empower.getMemberId())
                            .eq(Empower::getDeviceId,empower.getDeviceId() )
                            .gt(Empower::getId,empower.getId())
                            .last("limit 1"));
                    if(empower ==null || Constants.equalsInteger(empower.getIsdeleted(),Constants.ONE)){
//                        addIds.add(did);
                    }
                //如果是删除的权限下发,查询是否伺候有下发成功的数据,如果有,则不处理
                if(empower.getId().equals(392479)){
                    System.out.println("============================");
                }
                //更新重新下发次数
//                int flag= empowerMapper.selectCount(new QueryWrapper<Empower>().lambda()
//                        .eq(Empower::getMemberId,empower.getMemberId())
//                        .eq(Empower::getDeviceId,empower.getDeviceId() )
//                        .gt(Empower::getId,empower.getId())
//                        .last("limit 1"));
                    if(empower.getTempCouunt() ==0){
                        //如果之后时间内又重新下发记录,则跳过不做处理
                        retryIds.add(empower.getId());
                    }else{
                        noIds.add(empower.getId());
                    }
            }
             if(retryIds.size()>0){
                empowerMapper.update(null,new UpdateWrapper<Empower>().lambda()
                        .eq(Empower::getEditDate,date)
                        .setSql("try_num = ifnull(tyr_num,0) +1" )
                        .set(Empower::getCreateDate,date)
                        .set(Empower::getSendStatus,Constants.EmpowerStatus.wait)
                        .set(Empower::getSendDate,null)
                        .set(Empower::getEditDate,date)
                        .set(Empower::getRemark,"下发失败,待重新下发~")
                        .set(Empower::getRemark,"下发失败,待重新下发~")
                        .eq(Empower::getId,empower.getId()));
                        .set(Empower::getSendInfo,"下发失败,待重新下发~")
                        .in(Empower::getId,retryIds));
            }
            if(noIds.size()>0){
                empowerMapper.update(null,new UpdateWrapper<Empower>().lambda()
                        .set(Empower::getEditDate,date)
                        .set(Empower::getFailFlag,Constants.ONE)
                        .in(Empower::getId,noIds));
            }
            return allList.get(allList.size()-1).getId();
        }
@@ -631,22 +645,14 @@
        List<Empower> list = empowerMapper.selectJoinList(Empower.class,queryWrapper);
        return list;
    }
    private List<Empower> getAllFailDealList(int endId   ) {
    private List<Empower> getAllFailDealList(int endId ) {
        MPJLambdaWrapper<Empower> queryWrapper = new MPJLambdaWrapper<>();
        queryWrapper.selectAll(Empower.class);
        queryWrapper.selectAs(Device::getChannelNo,Empower::getDeviceChannelNo);
        queryWrapper.selectAs(Member::getHkStatus,Empower::getMemberHkStatus);
        queryWrapper.selectAs(Member::getIsdeleted,Empower::getMemberDeleted);
        queryWrapper.selectAs(Member::getHkId,Empower::getMemberHkId);
        queryWrapper.selectAs(Device::getHkId,Empower::getDeviceIndexCode);
        queryWrapper.selectAs(Device::getResourceType,Empower::getDeviceType);
        queryWrapper.leftJoin(Device.class,Device::getId,Empower::getDeviceId);
        queryWrapper.leftJoin(Member.class,Member::getId,Empower::getMemberId);
        queryWrapper.select(Empower::getId,Empower::getMemberId,Empower::getDeviceId,Empower::getIsdeleted);
        queryWrapper.select(" (select count(1) from empower ee  where ee.member_id=t.MEMBER_ID and ee.device_id =t.DEVICE_ID   and ee.id>t.id) as tempCouunt");
        queryWrapper.eq(Empower::getSendStatus,Constants.EmpowerStatus.fail);
        queryWrapper.gt(Empower::getId,endId);
        queryWrapper.orderByAsc(Empower::getId );
//      queryWrapper.orderByAsc(Empower::getCreateDate );
        queryWrapper.last("limit 100");//每次限制下发100个
        queryWrapper.ne( Empower::getFailFlag,Constants.ONE);
        List<Empower> list = empowerMapper.selectJoinList(Empower.class,queryWrapper);
        return list;
    }