瀏覽代碼

fix 常用人员

tjf 2 月之前
父節點
當前提交
9963bd072f

+ 5 - 1
ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/Constants.java

@@ -178,8 +178,12 @@ public interface Constants {
     String MANUAL_PROGRESS_USER = "manual_progress_user:";
 
     //-------------------员工需要认证的数量的key-----------------
-    //key=staff_manage_authentication:{userId}
+    //key=tenantId:staff_manage_authentication: value = 待认证的数量
     String STAFF_MANAGE_AUTHENTICATION = "staff_manage_authentication:";
+
+    //-------------------居住人员需要认证的数量的key-----------------
+    //key=tenantId:resident_info_authentication: value = 待认证的数量
+    String RESIDENT_INFO_AUTHENTICATION = "resident_info_authentication:";
     //-------------------车牌违停次数黑名单的key-----------------
     //key=black_plate_number:{租户id} value = 设置的次数
     String BLACK_PLATE_NUMBER = "black_plate_number:";

+ 12 - 0
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/controller/residentInfo/ResidentInfoController.java

@@ -122,6 +122,18 @@ public class ResidentInfoController extends BaseController {
         return toAjax(residentInfoService.insertByBo(bo));
     }
 
+
+    /**
+     * 户主新增居住人员(只有户主能使用)
+     */
+    @SaCheckPermission("wuYe:residentInfo:addResidentInfoByHouseholder")
+    @Log(title = "户主新增居住人员", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping("/addResidentInfoByHouseholder")
+    public R<Void> addResidentInfoByHouseholder(@Validated(AddGroup.class) @RequestBody ResidentInfoBo bo) {
+        return toAjax(residentInfoService.addResidentInfoByHouseholder(bo));
+    }
+
     /**
      * 修改居住人员信息,存储居住人员的详细信息
      */

+ 1 - 1
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/domain/residentInfo/ResidentInfo.java

@@ -148,7 +148,7 @@ public class ResidentInfo extends TenantEntity {
     private String remark;
 
     /**
-     * 审核状态 1:未审核 2:审核通过 3:审核未通过
+     * 审核状态 1:未审核 2:审核通过 3:审核未通过 4:未激活(户主添加的家庭成员,未进行账号注册)
      */
     private String examine;
 

+ 1 - 1
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/domain/residentInfo/bo/ResidentInfoBo.java

@@ -139,7 +139,7 @@ public class ResidentInfoBo extends BaseEntity {
      */
     private String remark;
     /**
-     * 审核状态 1:未审核 2:审核通过 3:审核未通过
+     * 审核状态 1:未审核 2:审核通过 3:审核未通过 4:未激活(户主添加的家庭成员,未进行账号注册)
      */
     private String examine;
     /**

+ 4 - 0
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/service/IResidentInfoService.java

@@ -66,6 +66,10 @@ public interface IResidentInfoService {
      * 新增居住人员提交认证信息
      */
     Boolean insertByBo(ResidentInfoBo bo);
+    /**
+     * 户主新增居住人员(只有户主能使用)
+     */
+    Boolean addResidentInfoByHouseholder(ResidentInfoBo bo);
 
     /**
      * 管理员新增居住人员信息,默认就审核过

+ 1 - 1
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/service/impl/HouseInfoServiceImpl.java

@@ -120,7 +120,7 @@ public class HouseInfoServiceImpl implements IHouseInfoService {
         lqw.eq(StringUtils.isNotBlank(bo.getUsagePeriod()), HouseInfo::getUsagePeriod, bo.getUsagePeriod());
         lqw.eq(bo.getRegistrationDate() != null, HouseInfo::getRegistrationDate, bo.getRegistrationDate());
         lqw.eq(StringUtils.isNotBlank(bo.getCoOwner()), HouseInfo::getCoOwner, bo.getCoOwner());
-        lqw.eq(StringUtils.isNotBlank(bo.getDetailedAddress()), HouseInfo::getDetailedAddress, bo.getDetailedAddress());
+        lqw.like(StringUtils.isNotBlank(bo.getDetailedAddress()), HouseInfo::getDetailedAddress, bo.getDetailedAddress());
         lqw.eq(StringUtils.isNotBlank(bo.getHasParkingSpace()), HouseInfo::getHasParkingSpace, bo.getHasParkingSpace());
         lqw.eq(StringUtils.isNotBlank(bo.getParkingNumber()), HouseInfo::getParkingNumber, bo.getParkingNumber());
         lqw.like(StringUtils.isNotBlank(bo.getCommunityName()), HouseInfo::getCommunityName, bo.getCommunityName());

+ 111 - 29
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/service/impl/ResidentInfoServiceImpl.java

@@ -13,6 +13,7 @@ import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.redis.utils.RedisUtils;
 import org.dromara.common.satoken.utils.LoginHelper;
 import org.dromara.common.tenant.helper.TenantHelper;
 import org.dromara.domain.houseInfo.HouseInfo;
@@ -203,13 +204,34 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
     @Transactional(rollbackFor = Exception.class)
     public Boolean insertByBo(ResidentInfoBo bo) {
         ResidentInfo add = MapstructUtils.convert(bo, ResidentInfo.class);
+        Long houseId = add.getHouseId();
+        String tenantId = add.getTenantId();
+        String residentPhone = add.getResidentPhone();
+        Long userId = LoginHelper.getUserId();
+        add.setUserId(userId);
         //根据租户id houseId 手机号查询该居住人员是否存在
         if (checkIdCardUnique(add)) {
-            throw new UserException("resident.register.save.error", add.getResidentName());
+            ResidentInfoVo residentInfoVo = TenantHelper.ignore(() -> {
+                //如果存在可能是业主添加的家庭成员现在来注册
+                return baseMapper.selectVoOne(new LambdaQueryWrapper<ResidentInfo>()
+                    .eq(houseId != null, ResidentInfo::getHouseId, houseId)
+                    .eq(tenantId != null, ResidentInfo::getTenantId, tenantId)
+                    .eq(StringUtils.isNotBlank(residentPhone), ResidentInfo::getResidentPhone, residentPhone));
+            });
+            if (residentInfoVo.getExamine().equals(FOR)) {
+                //待认证的居住人员数量,统计使用
+                if (RedisUtils.hasKey(RESIDENT_INFO_AUTHENTICATION)) {
+                    Object count = RedisUtils.getCacheObject(RESIDENT_INFO_AUTHENTICATION);
+                    RedisUtils.setCacheObject(RESIDENT_INFO_AUTHENTICATION, Integer.parseInt(count.toString()) + 1);
+                } else {
+                    RedisUtils.setCacheObject(RESIDENT_INFO_AUTHENTICATION, 1);
+                }
+                add.setExamine(ONE);
+                return baseMapper.updateById(add) > 0;
+            } else {
+                throw new UserException("resident.register.save.error", add.getResidentName());
+            }
         }
-        String tenantId = bo.getTenantId();
-        Long userId = LoginHelper.getUserId();
-        add.setUserId(userId);
         String residentType = add.getResidentType();
         String isHouseholder = add.getIsHouseholder();
         //必须是业主和户主才能去新增房本信息
@@ -222,6 +244,7 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
                 });
             }
         }
+        //认证游客
         if (THR.equals(residentType)) {
             SysUserBo user = new SysUserBo();
             user.setUserId(userId);
@@ -257,7 +280,7 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
                 if (useIds != null && !useIds.isEmpty()) {
                     if (!useIds.contains(userId))
                         userService.insertUserRole(user, false);
-                }else {
+                } else {
                     userService.insertUserRole(user, false);
                 }
             }
@@ -269,7 +292,42 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
                 userService.updateUserByIdNoTenantId(user);
             }
         }
+        //待认证的居住人员数量,统计使用
+        if (RedisUtils.hasKey(RESIDENT_INFO_AUTHENTICATION)) {
+            Object count = RedisUtils.getCacheObject(RESIDENT_INFO_AUTHENTICATION);
+            RedisUtils.setCacheObject(RESIDENT_INFO_AUTHENTICATION, Integer.parseInt(count.toString()) + 1);
+        } else {
+            RedisUtils.setCacheObject(RESIDENT_INFO_AUTHENTICATION, 1);
+        }
+
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setResidentId(add.getResidentId());
+        }
+        return flag;
+    }
+
+    /**
+     * 户主新增居住人员(只有户主能使用)
+     */
+    @Override
+    public Boolean addResidentInfoByHouseholder(ResidentInfoBo bo) {
+        ResidentInfo add = MapstructUtils.convert(bo, ResidentInfo.class);
+        //根据租户id houseId 手机号查询该居住人员是否存在
 
+        boolean exit = TenantHelper.ignore(() -> {
+            return
+                baseMapper.exists(new LambdaQueryWrapper<ResidentInfo>()
+                    .eq(add.getHouseId() != null, ResidentInfo::getHouseId, add.getHouseId())
+                    .eq(add.getTenantId() != null, ResidentInfo::getTenantId, add.getTenantId())
+                    .eq(StringUtils.isNotBlank(add.getResidentPhone()), ResidentInfo::getResidentPhone, add.getResidentPhone())
+                    .eq(StringUtils.isNotBlank(add.getResidentName()), ResidentInfo::getResidentName, add.getResidentName())
+                );
+        });
+        if (exit) {
+            throw new UserException("resident.register.save.error", add.getResidentName());
+        }
+        add.setExamine(FOR);
         boolean flag = baseMapper.insert(add) > 0;
         if (flag) {
             bo.setResidentId(add.getResidentId());
@@ -340,7 +398,7 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
             }
             String userType = sysUserVo.getUserType();
             if (!userType.contains(APP_USER.getUserType())) {
-                userType = userType+ "," + APP_USER.getUserType();
+                userType = userType + "," + APP_USER.getUserType();
             }
             user.setUserType(userType);
             userService.updateUserByIdNoTenantId(user);
@@ -392,7 +450,7 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
             if (useIds != null && !useIds.isEmpty()) {
                 if (!useIds.contains(userId))
                     userService.insertUserRole(user, false);
-            }else {
+            } else {
                 userService.insertUserRole(user, false);
             }
         }
@@ -412,16 +470,25 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
     @Override
     public Boolean updateByBo(ResidentInfoBo bo) {
         ResidentInfo update = MapstructUtils.convert(bo, ResidentInfo.class);
-        //如果未通过,改为待审核
-        if (THR.equals(update.getExamine())){
-            update.setExamine(ONE);
-        }
         validEntityBeforeSave(update);
 /*        //根据租户id houseId 手机号查询该居住人员是否存在
         if (checkIdCardUnique(update)) {
             throw new UserException("resident.register.save.error", update.getResidentName());
         }*/
-        update.setExamine(ONE);
+        String examine = update.getExamine();
+        //未通过的修改变成带审核
+        if (THR.equals(examine)) {
+            //待认证的居住人员数量,统计使用
+            if (RedisUtils.hasKey(RESIDENT_INFO_AUTHENTICATION)) {
+                Object count = RedisUtils.getCacheObject(RESIDENT_INFO_AUTHENTICATION);
+                RedisUtils.setCacheObject(RESIDENT_INFO_AUTHENTICATION, Integer.parseInt(count.toString()) + 1);
+            } else {
+                RedisUtils.setCacheObject(RESIDENT_INFO_AUTHENTICATION, 1);
+            }
+        }
+        if (!examine.equals(FOR)) {
+            update.setExamine(ONE);
+        }
         String residentType = update.getResidentType();
         String isHouseholder = update.getIsHouseholder();
         //必须是业主和户主才能去修改房本信息
@@ -463,8 +530,7 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
                 baseMapper.exists(new LambdaQueryWrapper<ResidentInfo>()
                     .eq(entity.getHouseId() != null, ResidentInfo::getHouseId, entity.getHouseId())
                     .eq(entity.getTenantId() != null, ResidentInfo::getTenantId, entity.getTenantId())
-                    .eq(StringUtils.isNotBlank(entity.getResidentPhone()), ResidentInfo::getResidentPhone, entity.getResidentPhone())
-                );
+                    .eq(StringUtils.isNotBlank(entity.getResidentPhone()), ResidentInfo::getResidentPhone, entity.getResidentPhone()));
         });
         return exit;
     }
@@ -515,7 +581,7 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
                 //查询该用户的用户类型
                 String userType = sysUserVo.getUserType();
                 if (!userType.contains(APP_USER.getUserType())) {
-                    userType = userType+ "," + APP_USER.getUserType();
+                    userType = userType + "," + APP_USER.getUserType();
                 }
                 sysUser.setUserType(userType);
                 sysUser.setTenantId(tenantId);
@@ -558,7 +624,7 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
                 if (useIds != null && !useIds.isEmpty()) {
                     if (!useIds.contains(userId))
                         userService.insertUserRole(sysUser, false);
-                }else {
+                } else {
                     userService.insertUserRole(sysUser, false);
                 }
             }
@@ -574,6 +640,17 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
                     });
                 }
             }
+            //居住人员待认证数量-1
+            if (RedisUtils.hasKey(RESIDENT_INFO_AUTHENTICATION)) {
+                Object count = RedisUtils.getCacheObject(RESIDENT_INFO_AUTHENTICATION);
+                RedisUtils.setCacheObject(RESIDENT_INFO_AUTHENTICATION, Math.max(Integer.parseInt(count.toString()), 0));
+            }
+        } else if (THR.equals(residentInfo.getExamine())) {
+            //居住人员待认证数量-1
+            if (RedisUtils.hasKey(RESIDENT_INFO_AUTHENTICATION)) {
+                Object count = RedisUtils.getCacheObject(RESIDENT_INFO_AUTHENTICATION);
+                RedisUtils.setCacheObject(RESIDENT_INFO_AUTHENTICATION, Math.max(Integer.parseInt(count.toString()), 0));
+            }
         }
         return baseMapper.updateById(residentInfo) > 0;
     }
@@ -648,16 +725,16 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
                         sysUser.setIsAuthentication(THR);
                         sysUser.setTenantId(list.get(0).getTenantId());
                     }
-                }else {
+                } else {
                     //一个居住人员都没有,说明该用户一个认证信息都没有提交
                     sysUser.setIsAuthentication(ONE);
                 }
-            }else {
+            } else {
                 //说明还有认证过的员工信息
                 List<ResidentInfo> list = residentInfoList.stream().filter(e -> e.getExamine().equals(TWO)).toList();
                 if (!list.isEmpty()) {
                     sysUser.setTenantId(list.get(0).getTenantId());
-                }else {
+                } else {
                     //如果一个居住人员通过的都没有,去查询是否有员工认证通过的
                     List<StaffManageVo> infoByUserId = staffManageMapper.getInfoListByUserId(userId);
                     if (infoByUserId != null && !infoByUserId.isEmpty()) {
@@ -666,7 +743,7 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
                             sysUser.setIsAuthentication(THR);
                             sysUser.setTenantId(staffManageVoList.get(0).getTenantId());
                         }
-                    }else {
+                    } else {
                         //一个居住人员都没有,说明该用户一个认证信息都没有提交
                         sysUser.setIsAuthentication(ONE);
                     }
@@ -676,6 +753,15 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
             TenantHelper.ignore(() -> {
                 sysUserMapper.updateById(sysUser);
             });
+            //判断是否是待认证
+            String examine = bo.getExamine();
+            if (ONE.equals(examine)) {
+                //居住人员待认证数量-1
+                if (RedisUtils.hasKey(RESIDENT_INFO_AUTHENTICATION)) {
+                    Object count = RedisUtils.getCacheObject(RESIDENT_INFO_AUTHENTICATION);
+                    RedisUtils.setCacheObject(RESIDENT_INFO_AUTHENTICATION, Math.max(Integer.parseInt(count.toString()), 0));
+                }
+            }
         } else {
             userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId));
         }
@@ -683,24 +769,20 @@ public class ResidentInfoServiceImpl implements IResidentInfoService {
     }
 
     /**
-     * 管理员修改住户管理(认证通过后)
+     * 管理员修改住户管理
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean editAuthentication(ResidentInfoBo bo) {
         ResidentInfo residentInfo = MapstructUtils.convert(bo, ResidentInfo.class);
-        //如果未通过,改为待审核
-        if (THR.equals(residentInfo.getExamine())){
-            residentInfo.setExamine(ONE);
-        }
         //判断是否修改了租户
-        ResidentInfoVo residentInfoVo = baseMapper.selectVoById(residentInfo.getResidentId());
+        //ResidentInfoVo residentInfoVo = baseMapper.selectVoById(residentInfo.getResidentId());
         //String tenantIdOld = residentInfoVo.getTenantId();
-        String tenantIdNew = residentInfo.getTenantId();
-        Long userId = residentInfoVo.getUserId();
+        //String tenantIdNew = residentInfo.getTenantId();
+        Long userId = residentInfo.getUserId();
         SysUserBo sysUser = new SysUserBo();
         sysUser.setUserId(userId);
-        sysUser.setTenantId(tenantIdNew);
+        //sysUser.setTenantId(tenantIdNew);
 /*        if (!tenantIdOld.equals(tenantIdNew)) {
             sysUserTenantMapper.update(new LambdaUpdateWrapper<SysUserTenant>()
                 .set(SysUserTenant::getTenantId, tenantIdNew)

+ 42 - 11
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/service/impl/StaffManageServiceImpl.java

@@ -3,7 +3,6 @@ package org.dromara.service.impl;
 import cn.dev33.satoken.secure.BCrypt;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.RequiredArgsConstructor;
@@ -13,6 +12,7 @@ import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.redis.utils.RedisUtils;
 import org.dromara.common.tenant.helper.TenantHelper;
 import org.dromara.domain.residentInfo.vo.ResidentInfoVo;
 import org.dromara.domain.staffManage.StaffManage;
@@ -172,6 +172,13 @@ public class StaffManageServiceImpl implements IStaffManageService {
         } else if (flag) {
             validEntityBeforeSave(add);
             flag = baseMapper.insert(add) > 0;
+            //待认证的员工人员数量,统计使用
+            if(RedisUtils.hasKey(STAFF_MANAGE_AUTHENTICATION)){
+                Object count = RedisUtils.getCacheObject(STAFF_MANAGE_AUTHENTICATION);
+                RedisUtils.setCacheObject(STAFF_MANAGE_AUTHENTICATION,Integer.parseInt(count.toString())+1);
+            }else {
+                RedisUtils.setCacheObject(STAFF_MANAGE_AUTHENTICATION,1);
+            }
 /*
             SysUserBo sysUser = new SysUserBo();
             sysUser.setUserId(bo.getUserId());
@@ -307,8 +314,13 @@ public class StaffManageServiceImpl implements IStaffManageService {
     public Boolean updateByBo(StaffManageBo bo) {
         StaffManage update = MapstructUtils.convert(bo, StaffManage.class);
        if (THR.equals(update.getExamine())){
-           update.setExamine(ONE);
+           //员工待认证数量-1
+           if (RedisUtils.hasKey(STAFF_MANAGE_AUTHENTICATION)){
+               Object count = RedisUtils.getCacheObject(STAFF_MANAGE_AUTHENTICATION);
+               RedisUtils.setCacheObject(STAFF_MANAGE_AUTHENTICATION,Math.max(Integer.parseInt(count.toString()),0));
+           }
        }
+        update.setExamine(ONE);
         if (bo.getIsFilter()) {
             return TenantHelper.ignore(() -> {
                 return baseMapper.updateById(update) > 0;
@@ -326,17 +338,14 @@ public class StaffManageServiceImpl implements IStaffManageService {
     @Transactional(rollbackFor = Exception.class)
     public Boolean editAuthentication(StaffManageBo bo) {
         StaffManage examineStaffManage = MapstructUtils.convert(bo, StaffManage.class);
-        if (THR.equals(examineStaffManage.getExamine())){
-            examineStaffManage.setExamine(ONE);
-        }
         //判断是否修改了租户
-        StaffManageVo staffManageVo = baseMapper.selectVoById(bo.getStaffId());
+        //StaffManageVo staffManageVo = baseMapper.selectVoById(bo.getStaffId());
         //原始的tenantId
-        String tenantIdOld = staffManageVo.getTenantId();
-        Long userId = examineStaffManage.getUserId();
+        //String tenantIdOld = staffManageVo.getTenantId();
+        //Long userId = examineStaffManage.getUserId();
         SysUserBo sysUser = new SysUserBo();
         sysUser.setUserId(bo.getUserId());
-        if (TenantHelper.isEnable()) {
+       /* if (TenantHelper.isEnable()) {
             //把租户id更新到sys_user表/sys_user_tenant表中
             String tenantIdNew = examineStaffManage.getTenantId();
             sysUser.setTenantId(tenantIdNew);
@@ -362,7 +371,7 @@ public class StaffManageServiceImpl implements IStaffManageService {
                 }
                 userService.insertUserRole(sysUser, true);
             }
-        }
+        }*/
         sysUser.setPhonenumber(examineStaffManage.getPhoneNumber());
         userService.updateUserByIdNoTenantId(sysUser);
         return baseMapper.updateById(examineStaffManage) > 0;
@@ -402,8 +411,9 @@ public class StaffManageServiceImpl implements IStaffManageService {
     public Boolean examineStaff(StaffManageBo bo) {
         StaffManage examineStaffManage = MapstructUtils.convert(bo, StaffManage.class);
         Long userId = bo.getUserId();
+        String examine = examineStaffManage.getExamine();
         //判断是否审核通过
-        if (TWO.equals(examineStaffManage.getExamine())) {
+        if (TWO.equals(examine)) {
             SysUserBo sysUser = new SysUserBo();
             sysUser.setUserId(userId);
             if (TenantHelper.isEnable()) {
@@ -461,6 +471,18 @@ public class StaffManageServiceImpl implements IStaffManageService {
                     RedisUtils.deleteObject(key);
                 }
             }*/
+
+            //员工待认证数量-1
+            if (RedisUtils.hasKey(STAFF_MANAGE_AUTHENTICATION)){
+                Object count = RedisUtils.getCacheObject(STAFF_MANAGE_AUTHENTICATION);
+                RedisUtils.setCacheObject(STAFF_MANAGE_AUTHENTICATION,Math.max(Integer.parseInt(count.toString()),0));
+            }
+        }else if (THR.equals(examine)){
+            //员工待认证数量-1
+            if (RedisUtils.hasKey(STAFF_MANAGE_AUTHENTICATION)){
+                Object count = RedisUtils.getCacheObject(STAFF_MANAGE_AUTHENTICATION);
+                RedisUtils.setCacheObject(STAFF_MANAGE_AUTHENTICATION,Math.max(Integer.parseInt(count.toString()),0));
+            }
         }
         return baseMapper.updateById(examineStaffManage) > 0;
     }
@@ -477,6 +499,7 @@ public class StaffManageServiceImpl implements IStaffManageService {
         Long userId = bo.getUserId();
         Long staffId = bo.getStaffId();
         String tenantId = bo.getTenantId();
+        String examine = bo.getExamine();
         boolean flag = baseMapper.deleteById(staffId) > 0;
         // userMapper.deleteById(userId);
         if (TenantHelper.isEnable()) {
@@ -552,6 +575,14 @@ public class StaffManageServiceImpl implements IStaffManageService {
             TenantHelper.ignore(() -> {
                 userMapper.updateById(sysUser);
             });
+
+            if (ONE.equals(examine)) {
+                //员工待认证数量-1
+                if (RedisUtils.hasKey(STAFF_MANAGE_AUTHENTICATION)){
+                    Object count = RedisUtils.getCacheObject(STAFF_MANAGE_AUTHENTICATION);
+                    RedisUtils.setCacheObject(STAFF_MANAGE_AUTHENTICATION,Math.max(Integer.parseInt(count.toString()),0));
+                }
+            }
         } else {
             userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId));
         }

+ 12 - 0
ruoyi-modules/ruoyi-wuye/src/main/java/org/dromara/service/impl/StatisticsServiceImpl.java

@@ -189,6 +189,18 @@ public class StatisticsServiceImpl implements IStatisticsService {
         if (ObjectUtils.isNotEmpty(commentInteractionUserCount)) {
             map.put("commentInteractionUserCount", commentInteractionUserCount);
         }
+        //员工未认证的数量
+        map.put("staffManageAuthenticationCount", 0);
+        if (RedisUtils.hasKey(STAFF_MANAGE_AUTHENTICATION)){
+            Object count = RedisUtils.getCacheObject(STAFF_MANAGE_AUTHENTICATION);
+            map.put("staffManageAuthenticationCount", count);
+        }
+        //居住人员未认证的数量
+        map.put("residentInfoAuthenticationCount", 0);
+        if (RedisUtils.hasKey(RESIDENT_INFO_AUTHENTICATION)){
+            Object count = RedisUtils.getCacheObject(RESIDENT_INFO_AUTHENTICATION);
+            map.put("residentInfoAuthenticationCount", count);
+        }
         return R.ok(map);
     }
 

+ 1 - 1
ruoyi-modules/ruoyi-wuye/src/main/resources/mapper/wuYe/HouseInfoMapper.xml

@@ -146,7 +146,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         left JOIN
         resident_info r on h.house_id = r.house_id
         <where>
-             r.examine = '2'
+             r.examine in('2','4')
             <if test="ResidentInfo.residentName != null  and ResidentInfo.residentName != ''"> and r.resident_name like concat('%', #{ResidentInfo.residentName}, '%')</if>
             <if test="ResidentInfo.residentAppearance != null  and ResidentInfo.residentAppearance != ''"> and r.resident_appearance = #{ResidentInfo.residentAppearance}</if>
             <if test="ResidentInfo.userId != null  and ResidentInfo.userId != ''"> and r.user_id = #{ResidentInfo.userId}</if>