mirror of https://gitee.com/stylefeng/roses
【7.6.0】【sys】【portal】初始化首页数据统计,更新填充数据
parent
c56bf8e630
commit
24d0981469
|
@ -14,17 +14,17 @@ public class HomeCompanyInfo {
|
||||||
/**
|
/**
|
||||||
* 所有组织机构数
|
* 所有组织机构数
|
||||||
*/
|
*/
|
||||||
private Integer organizationNum;
|
private Long organizationNum;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 所有企业人员总数
|
* 所有企业人员总数
|
||||||
*/
|
*/
|
||||||
private Integer enterprisePersonNum;
|
private Long enterprisePersonNum;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 所有职位总数
|
* 所有职位总数
|
||||||
*/
|
*/
|
||||||
private Integer positionNum;
|
private Long positionNum;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 当前登录用户,所在公司的部门数量
|
* 当前登录用户,所在公司的部门数量
|
||||||
|
@ -34,5 +34,5 @@ public class HomeCompanyInfo {
|
||||||
/**
|
/**
|
||||||
* 当前登录用户,所在公司的总人数
|
* 当前登录用户,所在公司的总人数
|
||||||
*/
|
*/
|
||||||
private Integer currentCompanyPersonNum;
|
private Long currentCompanyPersonNum;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.extra.spring.SpringUtil;
|
import cn.hutool.extra.spring.SpringUtil;
|
||||||
|
import cn.stylefeng.roses.kernel.auth.api.context.LoginContext;
|
||||||
import cn.stylefeng.roses.kernel.db.api.context.DbOperatorContext;
|
import cn.stylefeng.roses.kernel.db.api.context.DbOperatorContext;
|
||||||
import cn.stylefeng.roses.kernel.db.api.factory.PageFactory;
|
import cn.stylefeng.roses.kernel.db.api.factory.PageFactory;
|
||||||
import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory;
|
import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory;
|
||||||
|
@ -22,16 +23,26 @@ import cn.stylefeng.roses.kernel.sys.modular.org.mapper.HrOrganizationMapper;
|
||||||
import cn.stylefeng.roses.kernel.sys.modular.org.pojo.request.HrOrganizationRequest;
|
import cn.stylefeng.roses.kernel.sys.modular.org.pojo.request.HrOrganizationRequest;
|
||||||
import cn.stylefeng.roses.kernel.sys.modular.org.pojo.response.HomeCompanyInfo;
|
import cn.stylefeng.roses.kernel.sys.modular.org.pojo.response.HomeCompanyInfo;
|
||||||
import cn.stylefeng.roses.kernel.sys.modular.org.service.HrOrganizationService;
|
import cn.stylefeng.roses.kernel.sys.modular.org.service.HrOrganizationService;
|
||||||
|
import cn.stylefeng.roses.kernel.sys.modular.position.service.HrPositionService;
|
||||||
|
import cn.stylefeng.roses.kernel.sys.modular.user.entity.SysUserOrg;
|
||||||
|
import cn.stylefeng.roses.kernel.sys.modular.user.service.SysUserOrgService;
|
||||||
|
import cn.stylefeng.roses.kernel.sys.modular.user.service.SysUserService;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import static cn.stylefeng.roses.kernel.rule.constants.SymbolConstant.LEFT_SQUARE_BRACKETS;
|
||||||
|
import static cn.stylefeng.roses.kernel.rule.constants.SymbolConstant.RIGHT_SQUARE_BRACKETS;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 组织机构信息业务实现层
|
* 组织机构信息业务实现层
|
||||||
|
@ -42,6 +53,15 @@ import java.util.Set;
|
||||||
@Service
|
@Service
|
||||||
public class HrOrganizationServiceImpl extends ServiceImpl<HrOrganizationMapper, HrOrganization> implements HrOrganizationService {
|
public class HrOrganizationServiceImpl extends ServiceImpl<HrOrganizationMapper, HrOrganization> implements HrOrganizationService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private SysUserService sysUserService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private HrPositionService hrPositionService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private SysUserOrgService sysUserOrgService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void add(HrOrganizationRequest hrOrganizationRequest) {
|
public void add(HrOrganizationRequest hrOrganizationRequest) {
|
||||||
HrOrganization hrOrganization = new HrOrganization();
|
HrOrganization hrOrganization = new HrOrganization();
|
||||||
|
@ -202,10 +222,44 @@ public class HrOrganizationServiceImpl extends ServiceImpl<HrOrganizationMapper,
|
||||||
@Override
|
@Override
|
||||||
public HomeCompanyInfo orgStatInfo() {
|
public HomeCompanyInfo orgStatInfo() {
|
||||||
|
|
||||||
|
// todo 加缓存
|
||||||
|
|
||||||
|
HomeCompanyInfo homeCompanyInfo = new HomeCompanyInfo();
|
||||||
|
|
||||||
|
// 1. 总机构数量
|
||||||
|
long totalOrgCount = this.count();
|
||||||
|
homeCompanyInfo.setOrganizationNum(totalOrgCount);
|
||||||
|
|
||||||
return null;
|
// 2. 总人员数量
|
||||||
|
long totalUserCount = sysUserService.count();
|
||||||
|
homeCompanyInfo.setEnterprisePersonNum(totalUserCount);
|
||||||
|
|
||||||
|
// 3. 总职位信息
|
||||||
|
long totalPositionCount = hrPositionService.count();
|
||||||
|
homeCompanyInfo.setPositionNum(totalPositionCount);
|
||||||
|
|
||||||
|
// 4. 当前公司下的机构数量
|
||||||
|
Long currentOrgId = LoginContext.me().getLoginUser().getCurrentOrgId();
|
||||||
|
CompanyDeptDTO companyDeptInfo = this.getCompanyDeptInfo(currentOrgId);
|
||||||
|
Long companyId = companyDeptInfo.getCompanyId();
|
||||||
|
|
||||||
|
// 获取当前公司的所有子公司数量(含当前公司)
|
||||||
|
LambdaQueryWrapper<HrOrganization> wrapper = Wrappers.lambdaQuery(HrOrganization.class)
|
||||||
|
.like(HrOrganization::getOrgPids, LEFT_SQUARE_BRACKETS + companyId + RIGHT_SQUARE_BRACKETS).or()
|
||||||
|
.eq(HrOrganization::getOrgId, companyId).select(HrOrganization::getOrgId);
|
||||||
|
List<HrOrganization> organizations = this.list(wrapper);
|
||||||
|
homeCompanyInfo.setCurrentDeptNum(organizations.size());
|
||||||
|
|
||||||
|
// 5. 当前机构下的人员数量
|
||||||
|
if (ObjectUtil.isEmpty(organizations)) {
|
||||||
|
homeCompanyInfo.setCurrentCompanyPersonNum(0L);
|
||||||
|
} else {
|
||||||
|
List<Long> orgIdList = organizations.stream().map(HrOrganization::getOrgId).collect(Collectors.toList());
|
||||||
|
long userCount = sysUserOrgService.count(new LambdaQueryWrapper<SysUserOrg>().in(SysUserOrg::getOrgId, orgIdList));
|
||||||
|
homeCompanyInfo.setCurrentCompanyPersonNum(userCount);
|
||||||
|
}
|
||||||
|
|
||||||
|
return homeCompanyInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue