From 786969f2eed6e7a1f3bc121da1c6e7c9d3643e9d Mon Sep 17 00:00:00 2001 From: zhaokai Date: Thu, 6 Aug 2026 10:41:55 +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=E6=89=BF=E5=8C=85=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E5=92=8C=E7=A7=BB=E5=8A=A8=E7=9B=91=E6=8E=A7=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/project/KeyProjectController.java | 12 +++ .../query/project/KeyProjectQueryExe.java | 35 ++++++++ .../project/KeyProjectServiceImpl.java | 10 +++ .../api/project/KeyProjectServiceI.java | 4 + ...jectLargeScreenContractorStatisticsCO.java | 28 +++++++ ...yProjectLargeScreenMobileMonitoringCO.java | 46 ++++++++++ ...ProjectLargeScreenProjectStatisticsCO.java | 3 + ...ectLargeScreenContractorStatisticsQry.java | 21 +++++ ...ProjectLargeScreenMobileMonitoringQry.java | 21 +++++ ...jectLargeScreenContractorStatisticsDO.java | 23 +++++ ...yProjectLargeScreenMobileMonitoringDO.java | 35 ++++++++ ...ProjectLargeScreenProjectStatisticsDO.java | 2 + .../persistence/mapper/KeyProjectMapper.java | 4 + .../project/KeyProjectRepositoryImpl.java | 14 ++++ .../project/KeyProjectRepository.java | 4 + .../resources/mapper/KeyProjectMapper.xml | 83 ++++++++++++++++++- 16 files changed, 344 insertions(+), 1 deletion(-) create mode 100644 web-client/src/main/java/com/zcloud/key/project/dto/clientobject/project/KeyProjectLargeScreenContractorStatisticsCO.java create mode 100644 web-client/src/main/java/com/zcloud/key/project/dto/clientobject/project/KeyProjectLargeScreenMobileMonitoringCO.java create mode 100644 web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectLargeScreenContractorStatisticsQry.java create mode 100644 web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectLargeScreenMobileMonitoringQry.java create mode 100644 web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectLargeScreenContractorStatisticsDO.java create mode 100644 web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectLargeScreenMobileMonitoringDO.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 11e2251..60e4883 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 @@ -174,5 +174,17 @@ public class KeyProjectController { return MultiResponse.of(keyProjectService.largeScreenInfo(qry)); } + @ApiOperation("可视化大屏-承包项目情况") + @PostMapping("/largeScreenContractorStatistics") + public PageResponse largeScreenContractorStatistics(@RequestBody KeyProjectLargeScreenContractorStatisticsQry qry) { + return keyProjectService.largeScreenContractorStatistics(qry); + } + + @ApiOperation("可视化大屏-移动监控情况") + @PostMapping("/largeScreenMobileMonitoring") + public PageResponse largeScreenMobileMonitoring(@RequestBody KeyProjectLargeScreenMobileMonitoringQry qry) { + return keyProjectService.largeScreenMobileMonitoring(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 8cae887..c160f08 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 @@ -298,6 +298,7 @@ public class KeyProjectQueryExe { return result; } result.setTotalProjectCount(data.getTotalProjectCount()); + result.setWaitStartCount(data.getWaitStartCount()); result.setStartCount(data.getStartCount()); return result; } @@ -366,5 +367,39 @@ public class KeyProjectQueryExe { return result; }).collect(Collectors.toList()); } + + public PageResponse largeScreenContractorStatistics(KeyProjectLargeScreenContractorStatisticsQry qry) { + Map params = PageQueryHelper.toHashMap(qry); + PageResponse pageResponse = keyProjectRepository.largeScreenContractorStatistics(params); + List result = pageResponse.getData().stream().map(data -> { + KeyProjectLargeScreenContractorStatisticsCO item = new KeyProjectLargeScreenContractorStatisticsCO(); + item.setContractorCorpinfoId(data.getContractorCorpinfoId()); + item.setContractorName(data.getContractorName()); + item.setWaitStartCount(data.getWaitStartCount()); + item.setDoingCount(data.getDoingCount()); + return item; + }).collect(Collectors.toList()); + return PageResponse.of(result, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); + } + + public PageResponse largeScreenMobileMonitoring(KeyProjectLargeScreenMobileMonitoringQry qry) { + Map params = PageQueryHelper.toHashMap(qry); + PageResponse pageResponse = keyProjectRepository.largeScreenMobileMonitoring(params); + List result = pageResponse.getData().stream().map(data -> { + KeyProjectLargeScreenMobileMonitoringCO item = new KeyProjectLargeScreenMobileMonitoringCO(); + item.setKeyProjectId(data.getKeyProjectId()); + item.setProjectName(data.getProjectName()); + item.setCameraId(data.getCameraId()); + item.setCameraName(data.getCameraName()); + item.setCameraType(data.getCameraType()); + item.setVideoAddress(data.getVideoAddress()); + item.setCameraNumber(data.getCameraNumber()); + item.setDeviceGbNumber(data.getDeviceGbNumber()); + item.setDeviceModel(data.getDeviceModel()); + item.setIsOnline(data.getIsOnline()); + return item; + }).collect(Collectors.toList()); + return PageResponse.of(result, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); + } } 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 f8bf638..2a0ed1b 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 @@ -143,5 +143,15 @@ public class KeyProjectServiceImpl implements KeyProjectServiceI { public List largeScreenInfo(KeyProjectLargeScreenInfoQry qry) { return keyProjectQueryExe.largeScreenInfo(qry); } + + @Override + public PageResponse largeScreenContractorStatistics(KeyProjectLargeScreenContractorStatisticsQry qry) { + return keyProjectQueryExe.largeScreenContractorStatistics(qry); + } + + @Override + public PageResponse largeScreenMobileMonitoring(KeyProjectLargeScreenMobileMonitoringQry qry) { + return keyProjectQueryExe.largeScreenMobileMonitoring(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 ad0f76e..05f32fb 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 @@ -59,5 +59,9 @@ public interface KeyProjectServiceI { List largeScreenXgfStatistics(KeyProjectLargeScreenXgfStatisticsQry qry); List largeScreenInfo(KeyProjectLargeScreenInfoQry qry); + + PageResponse largeScreenContractorStatistics(KeyProjectLargeScreenContractorStatisticsQry qry); + + PageResponse largeScreenMobileMonitoring(KeyProjectLargeScreenMobileMonitoringQry qry); } diff --git a/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/project/KeyProjectLargeScreenContractorStatisticsCO.java b/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/project/KeyProjectLargeScreenContractorStatisticsCO.java new file mode 100644 index 0000000..2cbc4ad --- /dev/null +++ b/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/project/KeyProjectLargeScreenContractorStatisticsCO.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-08-06 + */ +@Data +public class KeyProjectLargeScreenContractorStatisticsCO implements Serializable { + + @ApiModelProperty(value = "承包商企业id") + private Long contractorCorpinfoId; + + @ApiModelProperty(value = "承包商名称") + private String contractorName; + + @ApiModelProperty(value = "待开工项目数") + private Integer waitStartCount; + + @ApiModelProperty(value = "进行中项目数") + private Integer doingCount; +} diff --git a/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/project/KeyProjectLargeScreenMobileMonitoringCO.java b/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/project/KeyProjectLargeScreenMobileMonitoringCO.java new file mode 100644 index 0000000..1f70563 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/project/KeyProjectLargeScreenMobileMonitoringCO.java @@ -0,0 +1,46 @@ +package com.zcloud.key.project.dto.clientobject.project; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * 可视化大屏移动监控情况返回 + * + * @Author zhaokai + * @Date 2026-08-06 + */ +@Data +public class KeyProjectLargeScreenMobileMonitoringCO implements Serializable { + + @ApiModelProperty(value = "重点作业id") + private String keyProjectId; + + @ApiModelProperty(value = "项目名称") + private String projectName; + + @ApiModelProperty(value = "摄像头id") + private String cameraId; + + @ApiModelProperty(value = "摄像头名称") + private String cameraName; + + @ApiModelProperty(value = "摄像头类型,1:固定摄像头,2:移动摄像头") + private Integer cameraType; + + @ApiModelProperty(value = "RTSP视频地址") + private String videoAddress; + + @ApiModelProperty(value = "摄像头编号,用于获取HLS播放地址") + private String cameraNumber; + + @ApiModelProperty(value = "设备国标编号") + private String deviceGbNumber; + + @ApiModelProperty(value = "规格型号") + private String deviceModel; + + @ApiModelProperty(value = "在线状态,0:离线,1:在线") + private Integer isOnline; +} 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 index 0011f30..78dd371 100644 --- 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 @@ -17,6 +17,9 @@ public class KeyProjectLargeScreenProjectStatisticsCO implements Serializable { @ApiModelProperty(value = "重点工程总数") private Integer totalProjectCount; + @ApiModelProperty(value = "重点工程待开工数") + private Integer waitStartCount; + @ApiModelProperty(value = "重点工程开工数") private Integer startCount; } diff --git a/web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectLargeScreenContractorStatisticsQry.java b/web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectLargeScreenContractorStatisticsQry.java new file mode 100644 index 0000000..2660de2 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectLargeScreenContractorStatisticsQry.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-08-06 + */ +@Data +public class KeyProjectLargeScreenContractorStatisticsQry 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/KeyProjectLargeScreenMobileMonitoringQry.java b/web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectLargeScreenMobileMonitoringQry.java new file mode 100644 index 0000000..9453938 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectLargeScreenMobileMonitoringQry.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-08-06 + */ +@Data +public class KeyProjectLargeScreenMobileMonitoringQry extends PageQuery { + + @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/KeyProjectLargeScreenContractorStatisticsDO.java b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectLargeScreenContractorStatisticsDO.java new file mode 100644 index 0000000..d9a8ef4 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectLargeScreenContractorStatisticsDO.java @@ -0,0 +1,23 @@ +package com.zcloud.key.project.persistence.dataobject.project; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 可视化大屏承包项目情况数据 + * + * @Author zhaokai + * @Date 2026-08-06 + */ +@Data +public class KeyProjectLargeScreenContractorStatisticsDO implements Serializable { + + private Long contractorCorpinfoId; + + private String contractorName; + + private Integer waitStartCount; + + private Integer doingCount; +} diff --git a/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectLargeScreenMobileMonitoringDO.java b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectLargeScreenMobileMonitoringDO.java new file mode 100644 index 0000000..e75dcb2 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectLargeScreenMobileMonitoringDO.java @@ -0,0 +1,35 @@ +package com.zcloud.key.project.persistence.dataobject.project; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 可视化大屏移动监控情况数据 + * + * @Author zhaokai + * @Date 2026-08-06 + */ +@Data +public class KeyProjectLargeScreenMobileMonitoringDO implements Serializable { + + private String keyProjectId; + + private String projectName; + + private String cameraId; + + private String cameraName; + + private Integer cameraType; + + private String videoAddress; + + private String cameraNumber; + + private String deviceGbNumber; + + private String deviceModel; + + private Integer isOnline; +} 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 index 653afe4..c8ab8d7 100644 --- 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 @@ -15,5 +15,7 @@ public class KeyProjectLargeScreenProjectStatisticsDO implements Serializable { private Integer totalProjectCount; + private Integer waitStartCount; + 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 cd5d06c..749b353 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 @@ -54,5 +54,9 @@ public interface KeyProjectMapper extends BaseMapper { List largeScreenXgfStatistics(Map params); List largeScreenInfo(Map params); + + IPage largeScreenContractorStatistics(IPage iPage, Map params); + + IPage largeScreenMobileMonitoring(IPage iPage, 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 20faee8..ee7ac9f 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 @@ -129,5 +129,19 @@ public class KeyProjectRepositoryImpl extends BaseRepositoryImpl largeScreenInfo(Map params) { return keyProjectMapper.largeScreenInfo(params); } + + @Override + public PageResponse largeScreenContractorStatistics(Map params) { + IPage iPage = new Query().getPage(params); + IPage result = keyProjectMapper.largeScreenContractorStatistics(iPage, params); + return PageHelper.pageToResponse(result, result.getRecords()); + } + + @Override + public PageResponse largeScreenMobileMonitoring(Map params) { + IPage iPage = new Query().getPage(params); + IPage result = keyProjectMapper.largeScreenMobileMonitoring(iPage, params); + return PageHelper.pageToResponse(result, result.getRecords()); + } } 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 a74e426..32f76c8 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 @@ -45,5 +45,9 @@ public interface KeyProjectRepository extends BaseRepository { List largeScreenXgfStatistics(Map params); List largeScreenInfo(Map params); + + PageResponse largeScreenContractorStatistics(Map params); + + PageResponse largeScreenMobileMonitoring(Map params); } diff --git a/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml b/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml index cfa1490..32899b1 100644 --- a/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml @@ -591,7 +591,10 @@ + + + +