diff --git a/web-adapter/src/main/java/com/zcloud/basic/info/web/CorpInfoController.java b/web-adapter/src/main/java/com/zcloud/basic/info/web/CorpInfoController.java index 55452d21..e9fe3cee 100644 --- a/web-adapter/src/main/java/com/zcloud/basic/info/web/CorpInfoController.java +++ b/web-adapter/src/main/java/com/zcloud/basic/info/web/CorpInfoController.java @@ -163,5 +163,11 @@ public class CorpInfoController { return corpInfoService.corpUserStatisticPage(qry); } + @ApiOperation("可视化大屏-企业用户汇总") + @PostMapping("/corpUserSummary") + public SingleResponse corpUserSummary() { + return SingleResponse.of(corpInfoService.corpUserSummary()); + } + } diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/query/CorpInfoQueryExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/query/CorpInfoQueryExe.java index 24908339..07a30059 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/command/query/CorpInfoQueryExe.java +++ b/web-app/src/main/java/com/zcloud/basic/info/command/query/CorpInfoQueryExe.java @@ -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; + } + } diff --git a/web-app/src/main/java/com/zcloud/basic/info/service/CorpInfoServiceImpl.java b/web-app/src/main/java/com/zcloud/basic/info/service/CorpInfoServiceImpl.java index 9766f5a3..04a3fb7e 100644 --- a/web-app/src/main/java/com/zcloud/basic/info/service/CorpInfoServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/basic/info/service/CorpInfoServiceImpl.java @@ -151,5 +151,10 @@ public class CorpInfoServiceImpl implements CorpInfoServiceI { public PageResponse corpUserStatisticPage(CorpUserStatisticQry qry) { return corpInfoQueryExe.corpUserStatisticPage(qry); } + + @Override + public CorpUserSummaryCO corpUserSummary() { + return corpInfoQueryExe.corpUserSummary(); + } } diff --git a/web-client/src/main/java/com/zcloud/basic/info/api/CorpInfoServiceI.java b/web-client/src/main/java/com/zcloud/basic/info/api/CorpInfoServiceI.java index 7f2d862e..6912c547 100644 --- a/web-client/src/main/java/com/zcloud/basic/info/api/CorpInfoServiceI.java +++ b/web-client/src/main/java/com/zcloud/basic/info/api/CorpInfoServiceI.java @@ -57,5 +57,7 @@ public interface CorpInfoServiceI { void deleteCorpAndDown(List ids); PageResponse corpUserStatisticPage(CorpUserStatisticQry qry); + + CorpUserSummaryCO corpUserSummary(); } diff --git a/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/CorpUserSummaryCO.java b/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/CorpUserSummaryCO.java new file mode 100644 index 00000000..689483f6 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/CorpUserSummaryCO.java @@ -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; +} diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/dataobject/CorpUserSummaryDO.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/dataobject/CorpUserSummaryDO.java new file mode 100644 index 00000000..0307f746 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/dataobject/CorpUserSummaryDO.java @@ -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; +} diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/mapper/CorpInfoMapper.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/mapper/CorpInfoMapper.java index 706d7cc4..b51652b6 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/mapper/CorpInfoMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/mapper/CorpInfoMapper.java @@ -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 { IPage corpUserStatisticPage(IPage iPage, Map params); + CorpUserSummaryDO corpUserSummary(); + } diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/CorpInfoRepository.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/CorpInfoRepository.java index 53328470..64f2262b 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/CorpInfoRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/CorpInfoRepository.java @@ -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 { void deleteById(Long id); PageResponse corpUserStatisticPage(Map parmas); + + CorpUserSummaryDO corpUserSummary(); } diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/CorpInfoRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/CorpInfoRepositoryImpl.java index 1162a32e..f7ad057c 100644 --- a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/CorpInfoRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/CorpInfoRepositoryImpl.java @@ -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 result = corpInfoMapper.corpUserStatisticPage(iPage, params); return PageHelper.pageToResponse(result, result.getRecords()); } + + @Override + public CorpUserSummaryDO corpUserSummary() { + return corpInfoMapper.corpUserSummary(); + } } diff --git a/web-infrastructure/src/main/resources/mapper/CorpInfoMapper.xml b/web-infrastructure/src/main/resources/mapper/CorpInfoMapper.xml index 59a84745..0c61675c 100644 --- a/web-infrastructure/src/main/resources/mapper/CorpInfoMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/CorpInfoMapper.xml @@ -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' AND c.type IN @@ -132,8 +146,21 @@ AND c.corp_name like concat('%',#{params.likeCorpName},'%') - 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 + + +