From fdd5bc86056f02b511963b5342128c4bc36db115 Mon Sep 17 00:00:00 2001 From: zhaokai Date: Fri, 17 Jul 2026 14:49:55 +0800 Subject: [PATCH] =?UTF-8?q?feat(corp):=20=E6=B7=BB=E5=8A=A0=E5=8F=AF?= =?UTF-8?q?=E8=A7=86=E5=8C=96=E5=A4=A7=E5=B1=8F-=E4=BC=81=E4=B8=9A?= =?UTF-8?q?=E9=83=A8=E9=97=A8=E7=94=A8=E6=88=B7=E7=BB=9F=E8=AE=A1=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/info/web/CorpInfoController.java | 6 +++++ .../info/command/query/CorpInfoQueryExe.java | 12 ++++++++++ .../info/service/CorpInfoServiceImpl.java | 5 ++++ .../basic/info/api/CorpInfoServiceI.java | 2 ++ .../basic/info/dto/CorpUserStatisticQry.java | 23 ++++++++++++++++++ .../dto/clientobject/CorpUserStatisticCO.java | 24 +++++++++++++++++++ .../dataobject/CorpUserStatisticDO.java | 18 ++++++++++++++ .../persistence/mapper/CorpInfoMapper.java | 2 ++ .../repository/CorpInfoRepository.java | 3 +++ .../impl/CorpInfoRepositoryImpl.java | 19 +++++++++++++++ .../main/resources/mapper/CorpInfoMapper.xml | 23 ++++++++++++++++++ 11 files changed, 137 insertions(+) create mode 100644 web-client/src/main/java/com/zcloud/basic/info/dto/CorpUserStatisticQry.java create mode 100644 web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/CorpUserStatisticCO.java create mode 100644 web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/dataobject/CorpUserStatisticDO.java 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 bf76dc9d..55452d21 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 @@ -157,5 +157,11 @@ public class CorpInfoController { return SingleResponse.of(corpInfoService.getEncryInfo(userCheckPassWordCmd)); } + @ApiOperation("可视化大屏-企业部门用户统计") + @PostMapping("/corpUserStatisticPage") + public PageResponse corpUserStatisticPage(@Validated @RequestBody CorpUserStatisticQry qry) { + return corpInfoService.corpUserStatisticPage(qry); + } + } 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 3b1b6793..24908339 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 @@ -18,6 +18,7 @@ import com.zcloud.basic.info.dto.*; 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.UserCO; import com.zcloud.basic.info.persistence.dataobject.*; import com.zcloud.basic.info.persistence.repository.*; @@ -310,6 +311,17 @@ public class CorpInfoQueryExe { return true; } + public PageResponse corpUserStatisticPage(CorpUserStatisticQry qry) { + Map params = PageQueryHelper.toHashMap(qry); + PageResponse pageResponse = corpInfoRepository.corpUserStatisticPage(params); + List list = pageResponse.getData().stream().map(item -> { + CorpUserStatisticCO co = new CorpUserStatisticCO(); + BeanUtils.copyProperties(item, co); + return co; + }).collect(Collectors.toList()); + return PageResponse.of(list, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); + } + } 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 118bf5d2..9766f5a3 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 @@ -146,5 +146,10 @@ public class CorpInfoServiceImpl implements CorpInfoServiceI { return corpInfoQueryExe.verifyCorpInfo(); } + + @Override + public PageResponse corpUserStatisticPage(CorpUserStatisticQry qry) { + return corpInfoQueryExe.corpUserStatisticPage(qry); + } } 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 49e91882..7f2d862e 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 @@ -55,5 +55,7 @@ public interface CorpInfoServiceI { DecryptCmd getEncryInfo(UserCheckPassWordCmd userCheckPassWordCmd); void deleteCorpAndDown(List ids); + + PageResponse corpUserStatisticPage(CorpUserStatisticQry qry); } diff --git a/web-client/src/main/java/com/zcloud/basic/info/dto/CorpUserStatisticQry.java b/web-client/src/main/java/com/zcloud/basic/info/dto/CorpUserStatisticQry.java new file mode 100644 index 00000000..ca248eec --- /dev/null +++ b/web-client/src/main/java/com/zcloud/basic/info/dto/CorpUserStatisticQry.java @@ -0,0 +1,23 @@ +package com.zcloud.basic.info.dto; + +import com.alibaba.cola.dto.PageQuery; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * 可视化大屏企业部门用户统计查询参数 + */ +@Data +public class CorpUserStatisticQry extends PageQuery { + + @ApiModelProperty(value = "企业名称", name = "likeCorpName") + private String likeCorpName; + + @ApiModelProperty(value = "企业类型(0-普通企业,1-集团单位,2-股份单位,3-相关方企业,4-货主单位,5-驻港单位, 6-物资中心)", name = "inType") + private List inType; + + @ApiModelProperty(value = "企业类型1:监管 2:企业 3:相关方", name = "enterpriseType") + private Integer enterpriseType; +} diff --git a/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/CorpUserStatisticCO.java b/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/CorpUserStatisticCO.java new file mode 100644 index 00000000..77478ae9 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/CorpUserStatisticCO.java @@ -0,0 +1,24 @@ +package com.zcloud.basic.info.dto.clientobject; + +import com.alibaba.cola.dto.ClientObject; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 可视化大屏企业部门用户统计 + */ +@Data +public class CorpUserStatisticCO extends ClientObject { + + @ApiModelProperty(value = "企业id") + private Long id; + + @ApiModelProperty(value = "企业名称") + private String corpName; + + @ApiModelProperty(value = "部门数量") + private Long departmentCount; + + @ApiModelProperty(value = "用户数量") + private Long userCount; +} diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/dataobject/CorpUserStatisticDO.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/dataobject/CorpUserStatisticDO.java new file mode 100644 index 00000000..39783bf1 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/dataobject/CorpUserStatisticDO.java @@ -0,0 +1,18 @@ +package com.zcloud.basic.info.persistence.dataobject; + +import lombok.Data; + +/** + * 可视化大屏企业部门用户统计查询结果 + */ +@Data +public class CorpUserStatisticDO { + + private Long id; + + private String corpName; + + private Long departmentCount; + + 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 a7cf5274..91b709ba 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 @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.jjb.saas.framework.datascope.annotation.DataScope; import com.jjb.saas.framework.datascope.annotation.DataScopes; import com.zcloud.basic.info.persistence.dataobject.CorpInfoDO; +import com.zcloud.basic.info.persistence.dataobject.CorpUserStatisticDO; import com.zcloud.basic.info.persistence.dataobject.UserDO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -32,6 +33,7 @@ public interface CorpInfoMapper extends BaseMapper { IPage selectUserPageNoPms(IPage iPage, @Param("ew") QueryWrapper queryWrapper, String menuPerms); + IPage corpUserStatisticPage(IPage iPage, Map params); } 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 8c44998a..0765aaa9 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 @@ -3,6 +3,7 @@ package com.zcloud.basic.info.persistence.repository; import com.alibaba.cola.dto.PageResponse; import com.jjb.saas.framework.repository.repo.BaseRepository; import com.zcloud.basic.info.persistence.dataobject.CorpInfoDO; +import com.zcloud.basic.info.persistence.dataobject.CorpUserStatisticDO; import java.util.List; import java.util.Map; @@ -44,5 +45,7 @@ public interface CorpInfoRepository extends BaseRepository { Boolean isSupper(); void deleteById(Long id); + + PageResponse corpUserStatisticPage(Map parmas); } 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 20ef28cc..b90573d8 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 @@ -25,6 +25,7 @@ import com.zcloud.basic.info.domain.enums.CorpTypeEnum; import com.zcloud.basic.info.domain.enums.CorpUseFlagEnum; import com.zcloud.basic.info.domain.enums.MenuEnum; import com.zcloud.basic.info.persistence.dataobject.CorpInfoDO; +import com.zcloud.basic.info.persistence.dataobject.CorpUserStatisticDO; import com.zcloud.basic.info.persistence.mapper.CorpInfoMapper; import com.zcloud.basic.info.persistence.repository.CorpInfoRepository; import com.zcloud.basic.info.utils.Query; @@ -320,5 +321,23 @@ public class CorpInfoRepositoryImpl extends BaseRepositoryImpl corpUserStatisticPage(Map params) { + IPage iPage = new Query().getPage(params); + if (ObjectUtil.isNotEmpty(params.get("enterpriseType"))) { + List enterpriseType = CorpTypeEnum.getCodesByEnterpriseType((Integer) params.get("enterpriseType")); + if (CollUtil.isNotEmpty(enterpriseType)) { + params.put("type", enterpriseType); + } + } + List inType = (List) params.get("inType"); + if (CollUtil.isNotEmpty(inType)) { + params.put("type", inType); + } + + IPage result = corpInfoMapper.corpUserStatisticPage(iPage, params); + return PageHelper.pageToResponse(result, result.getRecords()); + } } diff --git a/web-infrastructure/src/main/resources/mapper/CorpInfoMapper.xml b/web-infrastructure/src/main/resources/mapper/CorpInfoMapper.xml index 78acb14b..11527bb8 100644 --- a/web-infrastructure/src/main/resources/mapper/CorpInfoMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/CorpInfoMapper.xml @@ -65,5 +65,28 @@ FROM corp_info ${ew.customSqlSegment} + +