From 65385ecf189a3f9408c44d6374e4659544027e5f Mon Sep 17 00:00:00 2001 From: zhaokai Date: Tue, 21 Jul 2026 13:54:44 +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=87=8D=E7=82=B9=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/project/KeyProjectController.java | 12 +++++++ .../project/KeyProjectCoConvertor.java | 2 ++ .../query/project/KeyProjectQueryExe.java | 26 ++++++++++++++ .../project/KeyProjectServiceImpl.java | 10 ++++++ .../api/project/KeyProjectServiceI.java | 4 +++ .../project/KeyProjectLargeScreenCO.java | 22 ++++++++++++ ...ProjectLargeScreenProjectStatisticsCO.java | 22 ++++++++++++ .../project/KeyProjectLargeScreenPageQry.java | 21 ++++++++++++ ...rojectLargeScreenProjectStatisticsQry.java | 22 ++++++++++++ .../project/KeyProjectLargeScreenDO.java | 25 ++++++++++++++ ...ProjectLargeScreenProjectStatisticsDO.java | 19 +++++++++++ .../persistence/mapper/KeyProjectMapper.java | 4 +++ .../project/KeyProjectRepositoryImpl.java | 12 +++++++ .../project/KeyProjectRepository.java | 4 +++ .../resources/mapper/KeyProjectMapper.xml | 34 +++++++++++++++++++ 15 files changed, 239 insertions(+) create mode 100644 web-client/src/main/java/com/zcloud/key/project/dto/clientobject/project/KeyProjectLargeScreenCO.java create mode 100644 web-client/src/main/java/com/zcloud/key/project/dto/clientobject/project/KeyProjectLargeScreenProjectStatisticsCO.java create mode 100644 web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectLargeScreenPageQry.java create mode 100644 web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectLargeScreenProjectStatisticsQry.java create mode 100644 web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectLargeScreenDO.java create mode 100644 web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectLargeScreenProjectStatisticsDO.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 5956348..93dfbe4 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 @@ -138,5 +138,17 @@ public class KeyProjectController { return keyProjectService.largeScreenStatistics(qry); } + @ApiOperation("可视化大屏-重点作业列表") + @PostMapping("/largeScreenPage") + public PageResponse largeScreenPage(@RequestBody KeyProjectLargeScreenPageQry qry) { + return keyProjectService.largeScreenPage(qry); + } + + @ApiOperation("可视化大屏-重点工程统计") + @PostMapping("/largeScreenProjectStatistics") + public SingleResponse largeScreenProjectStatistics(@RequestBody KeyProjectLargeScreenProjectStatisticsQry qry) { + return keyProjectService.largeScreenProjectStatistics(qry); + } + } diff --git a/web-app/src/main/java/com/zcloud/key/project/command/convertor/project/KeyProjectCoConvertor.java b/web-app/src/main/java/com/zcloud/key/project/command/convertor/project/KeyProjectCoConvertor.java index 8219664..d07cc16 100644 --- a/web-app/src/main/java/com/zcloud/key/project/command/convertor/project/KeyProjectCoConvertor.java +++ b/web-app/src/main/java/com/zcloud/key/project/command/convertor/project/KeyProjectCoConvertor.java @@ -58,5 +58,7 @@ public interface KeyProjectCoConvertor { } List converXgfCorpDOsToCOs(List xgfCorpDOList); + + List converLargeScreenDOsToCOs(List data); } 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 762d195..d16eb47 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 @@ -2,6 +2,7 @@ package com.zcloud.key.project.command.query.project; import cn.hutool.core.collection.CollUtil; import com.alibaba.cola.dto.PageResponse; +import com.alibaba.cola.exception.BizException; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.jjb.saas.framework.auth.utils.AuthContext; import com.zcloud.gbscommon.utils.PageQueryHelper; @@ -273,5 +274,30 @@ public class KeyProjectQueryExe { result.setFourNewHomeworkApplyCount(data.getFourNewHomeworkApplyCount()); return result; } + + public PageResponse largeScreenPage(KeyProjectLargeScreenPageQry qry) { + if (qry == null || (qry.getCorpinfoId() == null && qry.getPortArea() == null)) { + throw new BizException("企业id和港区至少传一个"); + } + Map params = PageQueryHelper.toHashMap(qry); + PageResponse pageResponse = keyProjectRepository.largeScreenPage(params); + List result = keyProjectCoConvertor.converLargeScreenDOsToCOs(pageResponse.getData()); + return PageResponse.of(result, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); + } + + public KeyProjectLargeScreenProjectStatisticsCO largeScreenProjectStatistics(KeyProjectLargeScreenProjectStatisticsQry qry) { + if (qry == null || (qry.getCorpinfoId() == null && qry.getPortArea() == null)) { + throw new BizException("企业id和港区至少传一个"); + } + Map params = PageQueryHelper.toHashMap(qry); + KeyProjectLargeScreenProjectStatisticsDO data = keyProjectRepository.largeScreenProjectStatistics(params); + KeyProjectLargeScreenProjectStatisticsCO result = new KeyProjectLargeScreenProjectStatisticsCO(); + if (data == null) { + return result; + } + result.setTotalProjectCount(data.getTotalProjectCount()); + result.setStartCount(data.getStartCount()); + return result; + } } 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 3e3ae9c..b014aa4 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 @@ -113,5 +113,15 @@ public class KeyProjectServiceImpl implements KeyProjectServiceI { public SingleResponse largeScreenStatistics(KeyProjectLargeScreenStatisticsQry qry) { return SingleResponse.of(keyProjectQueryExe.largeScreenStatistics(qry)); } + + @Override + public PageResponse largeScreenPage(KeyProjectLargeScreenPageQry qry) { + return keyProjectQueryExe.largeScreenPage(qry); + } + + @Override + public SingleResponse largeScreenProjectStatistics(KeyProjectLargeScreenProjectStatisticsQry qry) { + return SingleResponse.of(keyProjectQueryExe.largeScreenProjectStatistics(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 583fffd..1acaa79 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 @@ -47,5 +47,9 @@ public interface KeyProjectServiceI { SingleResponse count(Long id); SingleResponse largeScreenStatistics(KeyProjectLargeScreenStatisticsQry qry); + + PageResponse largeScreenPage(KeyProjectLargeScreenPageQry qry); + + SingleResponse largeScreenProjectStatistics(KeyProjectLargeScreenProjectStatisticsQry qry); } diff --git a/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/project/KeyProjectLargeScreenCO.java b/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/project/KeyProjectLargeScreenCO.java new file mode 100644 index 0000000..d52a513 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/project/KeyProjectLargeScreenCO.java @@ -0,0 +1,22 @@ +package com.zcloud.key.project.dto.clientobject.project; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 可视化大屏重点作业列表返回 + * + * @Author zhaokai + * @Date 2026-07-21 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class KeyProjectLargeScreenCO extends KeyProjectCO { + + @ApiModelProperty(value = "企业名称") + private String corpinfoName; + + @ApiModelProperty(value = "港区,1:秦皇岛港区,2:秦皇岛东,3:秦皇岛西") + private Integer portArea; +} diff --git a/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/project/KeyProjectLargeScreenProjectStatisticsCO.java b/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/project/KeyProjectLargeScreenProjectStatisticsCO.java new file mode 100644 index 0000000..0011f30 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/project/KeyProjectLargeScreenProjectStatisticsCO.java @@ -0,0 +1,22 @@ +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 KeyProjectLargeScreenProjectStatisticsCO implements Serializable { + + @ApiModelProperty(value = "重点工程总数") + private Integer totalProjectCount; + + @ApiModelProperty(value = "重点工程开工数") + private Integer startCount; +} diff --git a/web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectLargeScreenPageQry.java b/web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectLargeScreenPageQry.java new file mode 100644 index 0000000..6c919d2 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectLargeScreenPageQry.java @@ -0,0 +1,21 @@ +package com.zcloud.key.project.dto.project; + +import com.alibaba.cola.dto.PageQuery; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 可视化大屏重点作业列表请求 + * + * @Author zhaokai + * @Date 2026-07-21 + */ +@Data +public class KeyProjectLargeScreenPageQry extends PageQuery { + + @ApiModelProperty(value = "企业id", name = "corpinfoId") + private Long corpinfoId; + + @ApiModelProperty(value = "港区,1:秦皇岛港区,2:秦皇岛东,3:秦皇岛西", name = "portArea") + private Integer portArea; +} diff --git a/web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectLargeScreenProjectStatisticsQry.java b/web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectLargeScreenProjectStatisticsQry.java new file mode 100644 index 0000000..f747477 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectLargeScreenProjectStatisticsQry.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 KeyProjectLargeScreenProjectStatisticsQry 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/KeyProjectLargeScreenDO.java b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectLargeScreenDO.java new file mode 100644 index 0000000..68e6a03 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectLargeScreenDO.java @@ -0,0 +1,25 @@ +package com.zcloud.key.project.persistence.dataobject.project; + +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 可视化大屏重点作业列表数据 + * + * @Author zhaokai + * @Date 2026-07-21 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class KeyProjectLargeScreenDO extends KeyProjectDO { + + @ApiModelProperty(value = "企业名称") + @TableField(exist = false) + private String corpinfoName; + + @ApiModelProperty(value = "港区,1:秦皇岛港区,2:秦皇岛东,3:秦皇岛西") + @TableField(exist = false) + private Integer portArea; +} diff --git a/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectLargeScreenProjectStatisticsDO.java b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectLargeScreenProjectStatisticsDO.java new file mode 100644 index 0000000..653afe4 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectLargeScreenProjectStatisticsDO.java @@ -0,0 +1,19 @@ +package com.zcloud.key.project.persistence.dataobject.project; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 可视化大屏重点工程统计数据 + * + * @Author zhaokai + * @Date 2026-07-21 + */ +@Data +public class KeyProjectLargeScreenProjectStatisticsDO implements Serializable { + + private Integer totalProjectCount; + + private Integer startCount; +} 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 f54d52f..5ae8d40 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 @@ -42,5 +42,9 @@ public interface KeyProjectMapper extends BaseMapper { List getLastStatus(); KeyProjectLargeScreenStatisticsDO largeScreenStatistics(Map params); + + IPage largeScreenPage(IPage iPage, Map params); + + KeyProjectLargeScreenProjectStatisticsDO largeScreenProjectStatistics(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 e8d129c..d40bfa8 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 @@ -97,5 +97,17 @@ public class KeyProjectRepositoryImpl extends BaseRepositoryImpl params) { return keyProjectMapper.largeScreenStatistics(params); } + + @Override + public PageResponse largeScreenPage(Map params) { + IPage iPage = new Query().getPage(params); + IPage result = keyProjectMapper.largeScreenPage(iPage, params); + return PageHelper.pageToResponse(result, result.getRecords()); + } + + @Override + public KeyProjectLargeScreenProjectStatisticsDO largeScreenProjectStatistics(Map params) { + return keyProjectMapper.largeScreenProjectStatistics(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 2577c40..5d2a650 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 @@ -33,5 +33,9 @@ public interface KeyProjectRepository extends BaseRepository { List getLastStatus(); KeyProjectLargeScreenStatisticsDO largeScreenStatistics(Map params); + + PageResponse largeScreenPage(Map params); + + KeyProjectLargeScreenProjectStatisticsDO largeScreenProjectStatistics(Map params); } diff --git a/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml b/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml index 781355a..3369843 100644 --- a/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml @@ -562,5 +562,39 @@ AND kp.corpinfo_id = #{corpinfoId} + + + +