From 083f580bfd0591a5cb671902c800835041d946ea Mon Sep 17 00:00:00 2001 From: zhaokai Date: Wed, 22 Jul 2026 09:35:15 +0800 Subject: [PATCH] =?UTF-8?q?feat(project):=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=E9=83=A8=E9=97=A8=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E5=8A=9F=E8=83=BD=E5=B9=B6=E5=AE=8C=E5=96=84=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E7=BB=9F=E8=AE=A1=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/project/KeyProjectController.java | 6 ++++ .../query/project/KeyProjectQueryExe.java | 25 +++++++++++++ .../project/KeyProjectServiceImpl.java | 5 +++ .../api/project/KeyProjectServiceI.java | 2 ++ ...jectLargeScreenDepartmentStatisticsCO.java | 28 +++++++++++++++ .../KeyProjectLargeScreenStatisticsCO.java | 18 ++++++++++ ...ectLargeScreenDepartmentStatisticsQry.java | 22 ++++++++++++ ...jectLargeScreenDepartmentStatisticsDO.java | 23 ++++++++++++ .../KeyProjectLargeScreenStatisticsDO.java | 12 +++++++ .../persistence/mapper/KeyProjectMapper.java | 2 ++ .../project/KeyProjectRepositoryImpl.java | 5 +++ .../project/KeyProjectRepository.java | 2 ++ .../resources/mapper/KeyProjectMapper.xml | 36 ++++++++++++++++--- 13 files changed, 182 insertions(+), 4 deletions(-) create mode 100644 web-client/src/main/java/com/zcloud/key/project/dto/clientobject/project/KeyProjectLargeScreenDepartmentStatisticsCO.java create mode 100644 web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectLargeScreenDepartmentStatisticsQry.java create mode 100644 web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectLargeScreenDepartmentStatisticsDO.java diff --git a/web-adapter/src/main/java/com/zcloud/key/project/web/project/KeyProjectController.java b/web-adapter/src/main/java/com/zcloud/key/project/web/project/KeyProjectController.java index 93dfbe4..b0d24e2 100644 --- a/web-adapter/src/main/java/com/zcloud/key/project/web/project/KeyProjectController.java +++ b/web-adapter/src/main/java/com/zcloud/key/project/web/project/KeyProjectController.java @@ -150,5 +150,11 @@ public class KeyProjectController { return keyProjectService.largeScreenProjectStatistics(qry); } + @ApiOperation("可视化大屏-部门统计") + @PostMapping("/largeScreenDepartmentStatistics") + public MultiResponse largeScreenDepartmentStatistics(@RequestBody KeyProjectLargeScreenDepartmentStatisticsQry qry) { + return MultiResponse.of(keyProjectService.largeScreenDepartmentStatistics(qry)); + } + } diff --git a/web-app/src/main/java/com/zcloud/key/project/command/query/project/KeyProjectQueryExe.java b/web-app/src/main/java/com/zcloud/key/project/command/query/project/KeyProjectQueryExe.java index d16eb47..e0553e4 100644 --- a/web-app/src/main/java/com/zcloud/key/project/command/query/project/KeyProjectQueryExe.java +++ b/web-app/src/main/java/com/zcloud/key/project/command/query/project/KeyProjectQueryExe.java @@ -268,10 +268,16 @@ public class KeyProjectQueryExe { } result.setMorePeopleStartCount(data.getMorePeopleStartCount()); result.setMorePeopleApplyCount(data.getMorePeopleApplyCount()); + result.setMorePeopleDoingCount(data.getMorePeopleDoingCount()); + result.setMorePeopleArchiveCount(data.getMorePeopleArchiveCount()); result.setNightWorkStartCount(data.getNightWorkStartCount()); result.setNightWorkApplyCount(data.getNightWorkApplyCount()); + result.setNightWorkDoingCount(data.getNightWorkDoingCount()); + result.setNightWorkArchiveCount(data.getNightWorkArchiveCount()); result.setFourNewHomeworkStartCount(data.getFourNewHomeworkStartCount()); result.setFourNewHomeworkApplyCount(data.getFourNewHomeworkApplyCount()); + result.setFourNewHomeworkDoingCount(data.getFourNewHomeworkDoingCount()); + result.setFourNewHomeworkArchiveCount(data.getFourNewHomeworkArchiveCount()); return result; } @@ -299,5 +305,24 @@ public class KeyProjectQueryExe { result.setStartCount(data.getStartCount()); return result; } + + public List largeScreenDepartmentStatistics(KeyProjectLargeScreenDepartmentStatisticsQry qry) { + if (qry == null || (qry.getCorpinfoId() == null && qry.getPortArea() == null)) { + throw new BizException("企业id和港区至少传一个"); + } + Map params = PageQueryHelper.toHashMap(qry); + List dataList = keyProjectRepository.largeScreenDepartmentStatistics(params); + if (CollUtil.isEmpty(dataList)) { + return java.util.Collections.emptyList(); + } + return dataList.stream().map(data -> { + KeyProjectLargeScreenDepartmentStatisticsCO result = new KeyProjectLargeScreenDepartmentStatisticsCO(); + result.setDepartmentId(data.getDepartmentId()); + result.setDepartmentName(data.getDepartmentName()); + result.setFourNewHomeworkCount(data.getFourNewHomeworkCount()); + result.setMorePeopleCount(data.getMorePeopleCount()); + return result; + }).collect(Collectors.toList()); + } } diff --git a/web-app/src/main/java/com/zcloud/key/project/service/project/KeyProjectServiceImpl.java b/web-app/src/main/java/com/zcloud/key/project/service/project/KeyProjectServiceImpl.java index b014aa4..da4ae28 100644 --- a/web-app/src/main/java/com/zcloud/key/project/service/project/KeyProjectServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/key/project/service/project/KeyProjectServiceImpl.java @@ -123,5 +123,10 @@ public class KeyProjectServiceImpl implements KeyProjectServiceI { public SingleResponse largeScreenProjectStatistics(KeyProjectLargeScreenProjectStatisticsQry qry) { return SingleResponse.of(keyProjectQueryExe.largeScreenProjectStatistics(qry)); } + + @Override + public List largeScreenDepartmentStatistics(KeyProjectLargeScreenDepartmentStatisticsQry qry) { + return keyProjectQueryExe.largeScreenDepartmentStatistics(qry); + } } diff --git a/web-client/src/main/java/com/zcloud/key/project/api/project/KeyProjectServiceI.java b/web-client/src/main/java/com/zcloud/key/project/api/project/KeyProjectServiceI.java index 1acaa79..a863bd2 100644 --- a/web-client/src/main/java/com/zcloud/key/project/api/project/KeyProjectServiceI.java +++ b/web-client/src/main/java/com/zcloud/key/project/api/project/KeyProjectServiceI.java @@ -51,5 +51,7 @@ public interface KeyProjectServiceI { PageResponse largeScreenPage(KeyProjectLargeScreenPageQry qry); SingleResponse largeScreenProjectStatistics(KeyProjectLargeScreenProjectStatisticsQry qry); + + List largeScreenDepartmentStatistics(KeyProjectLargeScreenDepartmentStatisticsQry qry); } diff --git a/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/project/KeyProjectLargeScreenDepartmentStatisticsCO.java b/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/project/KeyProjectLargeScreenDepartmentStatisticsCO.java new file mode 100644 index 0000000..91ed431 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/project/KeyProjectLargeScreenDepartmentStatisticsCO.java @@ -0,0 +1,28 @@ +package com.zcloud.key.project.dto.clientobject.project; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * 可视化大屏部门统计返回 + * + * @Author zhaokai + * @Date 2026-07-21 + */ +@Data +public class KeyProjectLargeScreenDepartmentStatisticsCO implements Serializable { + + @ApiModelProperty(value = "部门id") + private Long departmentId; + + @ApiModelProperty(value = "部门名称") + private String departmentName; + + @ApiModelProperty(value = "四新作业数") + private Integer fourNewHomeworkCount; + + @ApiModelProperty(value = "三人及以上作业数") + private Integer morePeopleCount; +} diff --git a/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/project/KeyProjectLargeScreenStatisticsCO.java b/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/project/KeyProjectLargeScreenStatisticsCO.java index 82c6940..0c17672 100644 --- a/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/project/KeyProjectLargeScreenStatisticsCO.java +++ b/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/project/KeyProjectLargeScreenStatisticsCO.java @@ -20,15 +20,33 @@ public class KeyProjectLargeScreenStatisticsCO implements Serializable { @ApiModelProperty(value = "三人及以上作业申请数") private Integer morePeopleApplyCount; + @ApiModelProperty(value = "三人及以上作业进行中数") + private Integer morePeopleDoingCount; + + @ApiModelProperty(value = "三人及以上作业归档数") + private Integer morePeopleArchiveCount; + @ApiModelProperty(value = "夜间作业当前作业数") private Integer nightWorkStartCount; @ApiModelProperty(value = "夜间作业申请数") private Integer nightWorkApplyCount; + @ApiModelProperty(value = "夜间作业进行中数") + private Integer nightWorkDoingCount; + + @ApiModelProperty(value = "夜间作业归档数") + private Integer nightWorkArchiveCount; + @ApiModelProperty(value = "四新作业当前作业数") private Integer fourNewHomeworkStartCount; @ApiModelProperty(value = "四新作业申请数") private Integer fourNewHomeworkApplyCount; + + @ApiModelProperty(value = "四新作业进行中数") + private Integer fourNewHomeworkDoingCount; + + @ApiModelProperty(value = "四新作业归档数") + private Integer fourNewHomeworkArchiveCount; } diff --git a/web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectLargeScreenDepartmentStatisticsQry.java b/web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectLargeScreenDepartmentStatisticsQry.java new file mode 100644 index 0000000..f9e4ccd --- /dev/null +++ b/web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectLargeScreenDepartmentStatisticsQry.java @@ -0,0 +1,22 @@ +package com.zcloud.key.project.dto.project; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * 可视化大屏部门统计请求 + * + * @Author zhaokai + * @Date 2026-07-21 + */ +@Data +public class KeyProjectLargeScreenDepartmentStatisticsQry implements Serializable { + + @ApiModelProperty(value = "企业id", name = "corpinfoId") + private Long corpinfoId; + + @ApiModelProperty(value = "港区,1:秦皇岛港区,2:秦皇岛东,3:秦皇岛西", name = "portArea") + private Integer portArea; +} diff --git a/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectLargeScreenDepartmentStatisticsDO.java b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectLargeScreenDepartmentStatisticsDO.java new file mode 100644 index 0000000..6873ddc --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectLargeScreenDepartmentStatisticsDO.java @@ -0,0 +1,23 @@ +package com.zcloud.key.project.persistence.dataobject.project; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 可视化大屏部门统计数据 + * + * @Author zhaokai + * @Date 2026-07-21 + */ +@Data +public class KeyProjectLargeScreenDepartmentStatisticsDO implements Serializable { + + private Long departmentId; + + private String departmentName; + + private Integer fourNewHomeworkCount; + + private Integer morePeopleCount; +} diff --git a/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectLargeScreenStatisticsDO.java b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectLargeScreenStatisticsDO.java index 572694f..eae02f7 100644 --- a/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectLargeScreenStatisticsDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectLargeScreenStatisticsDO.java @@ -17,11 +17,23 @@ public class KeyProjectLargeScreenStatisticsDO implements Serializable { private Integer morePeopleApplyCount; + private Integer morePeopleDoingCount; + + private Integer morePeopleArchiveCount; + private Integer nightWorkStartCount; private Integer nightWorkApplyCount; + private Integer nightWorkDoingCount; + + private Integer nightWorkArchiveCount; + private Integer fourNewHomeworkStartCount; private Integer fourNewHomeworkApplyCount; + + private Integer fourNewHomeworkDoingCount; + + private Integer fourNewHomeworkArchiveCount; } diff --git a/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/mapper/KeyProjectMapper.java b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/mapper/KeyProjectMapper.java index 5ae8d40..bbb1438 100644 --- a/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/mapper/KeyProjectMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/mapper/KeyProjectMapper.java @@ -46,5 +46,7 @@ public interface KeyProjectMapper extends BaseMapper { IPage largeScreenPage(IPage iPage, Map params); KeyProjectLargeScreenProjectStatisticsDO largeScreenProjectStatistics(Map params); + + List largeScreenDepartmentStatistics(Map params); } diff --git a/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/repository/impl/project/KeyProjectRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/repository/impl/project/KeyProjectRepositoryImpl.java index d40bfa8..b4695bd 100644 --- a/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/repository/impl/project/KeyProjectRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/repository/impl/project/KeyProjectRepositoryImpl.java @@ -109,5 +109,10 @@ public class KeyProjectRepositoryImpl extends BaseRepositoryImpl params) { return keyProjectMapper.largeScreenProjectStatistics(params); } + + @Override + public List largeScreenDepartmentStatistics(Map params) { + return keyProjectMapper.largeScreenDepartmentStatistics(params); + } } diff --git a/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/repository/project/KeyProjectRepository.java b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/repository/project/KeyProjectRepository.java index 5d2a650..b90c59c 100644 --- a/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/repository/project/KeyProjectRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/repository/project/KeyProjectRepository.java @@ -37,5 +37,7 @@ public interface KeyProjectRepository extends BaseRepository { PageResponse largeScreenPage(Map params); KeyProjectLargeScreenProjectStatisticsDO largeScreenProjectStatistics(Map params); + + List largeScreenDepartmentStatistics(Map params); } diff --git a/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml b/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml index 3369843..6280fbb 100644 --- a/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml @@ -550,12 +550,18 @@ + +