Compare commits
2 Commits
a330e54182
...
81d080562c
| Author | SHA1 | Date |
|---|---|---|
|
|
81d080562c | |
|
|
2aa7777dfc |
|
|
@ -163,5 +163,11 @@ public class CorpInfoController {
|
|||
return corpInfoService.corpUserStatisticPage(qry);
|
||||
}
|
||||
|
||||
@ApiOperation("可视化大屏-企业用户汇总")
|
||||
@PostMapping("/corpUserSummary")
|
||||
public SingleResponse<CorpUserSummaryCO> corpUserSummary() {
|
||||
return SingleResponse.of(corpInfoService.corpUserSummary());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ import com.zcloud.basic.info.dto.clientobject.CorpDepartmentCO;
|
|||
import com.zcloud.basic.info.dto.clientobject.CorpInfoCO;
|
||||
import com.zcloud.basic.info.dto.clientobject.CorpUserMiddleCO;
|
||||
import com.zcloud.basic.info.dto.clientobject.CorpUserStatisticCO;
|
||||
import com.zcloud.basic.info.dto.clientobject.CorpUserSummaryCO;
|
||||
import com.zcloud.basic.info.dto.clientobject.UserCO;
|
||||
import com.zcloud.basic.info.persistence.dataobject.*;
|
||||
import com.zcloud.basic.info.persistence.repository.*;
|
||||
|
|
@ -322,6 +323,13 @@ public class CorpInfoQueryExe {
|
|||
return PageResponse.of(list, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
||||
}
|
||||
|
||||
public CorpUserSummaryCO corpUserSummary() {
|
||||
CorpUserSummaryDO corpUserSummaryDO = corpInfoRepository.corpUserSummary();
|
||||
CorpUserSummaryCO corpUserSummaryCO = new CorpUserSummaryCO();
|
||||
BeanUtils.copyProperties(corpUserSummaryDO, corpUserSummaryCO);
|
||||
return corpUserSummaryCO;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -151,5 +151,10 @@ public class CorpInfoServiceImpl implements CorpInfoServiceI {
|
|||
public PageResponse<CorpUserStatisticCO> corpUserStatisticPage(CorpUserStatisticQry qry) {
|
||||
return corpInfoQueryExe.corpUserStatisticPage(qry);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CorpUserSummaryCO corpUserSummary() {
|
||||
return corpInfoQueryExe.corpUserSummary();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -57,5 +57,7 @@ public interface CorpInfoServiceI {
|
|||
void deleteCorpAndDown(List<Long> ids);
|
||||
|
||||
PageResponse<CorpUserStatisticCO> corpUserStatisticPage(CorpUserStatisticQry qry);
|
||||
|
||||
CorpUserSummaryCO corpUserSummary();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,21 @@
|
|||
package com.zcloud.basic.info.dto.clientobject;
|
||||
|
||||
import com.alibaba.cola.dto.ClientObject;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 可视化大屏企业用户汇总
|
||||
*/
|
||||
@Data
|
||||
public class CorpUserSummaryCO extends ClientObject {
|
||||
|
||||
@ApiModelProperty(value = "分公司企业数")
|
||||
private Long branchCorpCount;
|
||||
|
||||
@ApiModelProperty(value = "相关方单位数")
|
||||
private Long relatedCorpCount;
|
||||
|
||||
@ApiModelProperty(value = "员工数")
|
||||
private Long userCount;
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
package com.zcloud.basic.info.persistence.dataobject;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 可视化大屏企业用户汇总查询结果
|
||||
*/
|
||||
@Data
|
||||
public class CorpUserSummaryDO {
|
||||
|
||||
private Long branchCorpCount;
|
||||
|
||||
private Long relatedCorpCount;
|
||||
|
||||
private Long userCount;
|
||||
}
|
||||
|
|
@ -8,6 +8,7 @@ import com.jjb.saas.framework.datascope.annotation.DataScopes;
|
|||
import com.zcloud.basic.info.persistence.dataobject.CorpInfoDO;
|
||||
import com.zcloud.basic.info.persistence.dataobject.UserCorpInfoStatDO;
|
||||
import com.zcloud.basic.info.persistence.dataobject.CorpUserStatisticDO;
|
||||
import com.zcloud.basic.info.persistence.dataobject.CorpUserSummaryDO;
|
||||
import com.zcloud.basic.info.persistence.dataobject.UserDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
|
@ -39,5 +40,7 @@ public interface CorpInfoMapper extends BaseMapper<CorpInfoDO> {
|
|||
|
||||
IPage<CorpUserStatisticDO> corpUserStatisticPage(IPage<CorpUserStatisticDO> iPage, Map<String, Object> params);
|
||||
|
||||
CorpUserSummaryDO corpUserSummary();
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import com.jjb.saas.framework.repository.repo.BaseRepository;
|
|||
import com.zcloud.basic.info.persistence.dataobject.CorpInfoDO;
|
||||
import com.zcloud.basic.info.persistence.dataobject.UserCorpInfoStatDO;
|
||||
import com.zcloud.basic.info.persistence.dataobject.CorpUserStatisticDO;
|
||||
import com.zcloud.basic.info.persistence.dataobject.CorpUserSummaryDO;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
|
@ -50,5 +51,7 @@ public interface CorpInfoRepository extends BaseRepository<CorpInfoDO> {
|
|||
void deleteById(Long id);
|
||||
|
||||
PageResponse<CorpUserStatisticDO> corpUserStatisticPage(Map<String, Object> parmas);
|
||||
|
||||
CorpUserSummaryDO corpUserSummary();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ import com.zcloud.basic.info.domain.enums.MenuEnum;
|
|||
import com.zcloud.basic.info.persistence.dataobject.CorpInfoDO;
|
||||
import com.zcloud.basic.info.persistence.dataobject.UserCorpInfoStatDO;
|
||||
import com.zcloud.basic.info.persistence.dataobject.CorpUserStatisticDO;
|
||||
import com.zcloud.basic.info.persistence.dataobject.CorpUserSummaryDO;
|
||||
import com.zcloud.basic.info.persistence.mapper.CorpInfoMapper;
|
||||
import com.zcloud.basic.info.persistence.repository.CorpInfoRepository;
|
||||
import com.zcloud.basic.info.utils.Query;
|
||||
|
|
@ -351,5 +352,10 @@ public class CorpInfoRepositoryImpl extends BaseRepositoryImpl<CorpInfoMapper, C
|
|||
IPage<CorpUserStatisticDO> result = corpInfoMapper.corpUserStatisticPage(iPage, params);
|
||||
return PageHelper.pageToResponse(result, result.getRecords());
|
||||
}
|
||||
|
||||
@Override
|
||||
public CorpUserSummaryDO corpUserSummary() {
|
||||
return corpInfoMapper.corpUserSummary();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -117,11 +117,25 @@
|
|||
SELECT
|
||||
c.id,
|
||||
c.corp_name AS corpName,
|
||||
COUNT(DISTINCT d.id) AS departmentCount,
|
||||
COUNT(DISTINCT u.id) AS userCount
|
||||
IFNULL(d.departmentCount, 0) AS departmentCount,
|
||||
IFNULL(u.userCount, 0) AS userCount
|
||||
FROM corp_info c
|
||||
LEFT JOIN department d ON d.corpinfo_id = c.id AND d.delete_enum = 'FALSE'
|
||||
LEFT JOIN user u ON u.corpinfo_id = c.id AND u.delete_enum = 'FALSE'
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
corpinfo_id,
|
||||
COUNT(1) AS departmentCount
|
||||
FROM department
|
||||
WHERE delete_enum = 'FALSE'
|
||||
GROUP BY corpinfo_id
|
||||
) d ON d.corpinfo_id = c.id
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
corpinfo_id,
|
||||
COUNT(1) AS userCount
|
||||
FROM user
|
||||
WHERE delete_enum = 'FALSE'
|
||||
GROUP BY corpinfo_id
|
||||
) u ON u.corpinfo_id = c.id
|
||||
WHERE c.delete_enum = 'FALSE'
|
||||
<if test="params.type != null and params.type.size() > 0">
|
||||
AND c.type IN
|
||||
|
|
@ -132,8 +146,21 @@
|
|||
<if test="params.likeCorpName != null and params.likeCorpName.trim() != ''">
|
||||
AND c.corp_name like concat('%',#{params.likeCorpName},'%')
|
||||
</if>
|
||||
GROUP BY c.id, c.corp_name
|
||||
ORDER BY userCount DESC, departmentCount DESC, c.corp_order ASC, c.create_time DESC
|
||||
ORDER BY IFNULL(u.userCount, 0) DESC, IFNULL(d.departmentCount, 0) DESC, c.corp_order ASC, c.create_time DESC
|
||||
</select>
|
||||
|
||||
<select id="corpUserSummary" resultType="com.zcloud.basic.info.persistence.dataobject.CorpUserSummaryDO">
|
||||
SELECT
|
||||
IFNULL(SUM(CASE WHEN c.type IN (0, 1, 6) THEN 1 ELSE 0 END), 0) AS branchCorpCount,
|
||||
IFNULL(SUM(CASE WHEN c.type IN (3, 4, 5) THEN 1 ELSE 0 END), 0) AS relatedCorpCount,
|
||||
IFNULL((
|
||||
SELECT COUNT(1)
|
||||
FROM user u
|
||||
INNER JOIN corp_info c ON c.id = u.corpinfo_id AND c.delete_enum = 'FALSE'
|
||||
WHERE u.delete_enum = 'FALSE'
|
||||
), 0) AS userCount
|
||||
FROM corp_info c
|
||||
WHERE c.delete_enum = 'FALSE'
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue