From 24389693c87314e9d353e16209341f21bb9520d7 Mon Sep 17 00:00:00 2001 From: zhaokai Date: Fri, 7 Aug 2026 18:20:31 +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=E5=9B=BA=E5=AE=9A=E6=91=84?= =?UTF-8?q?=E5=83=8F=E5=A4=B4=E8=A7=86=E9=A2=91=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 | 6 +++ .../query/project/KeyProjectQueryExe.java | 22 +++++++++ .../project/KeyProjectServiceImpl.java | 5 ++ .../api/project/KeyProjectServiceI.java | 2 + .../project/KeyProjectLargeScreenVideoCO.java | 48 +++++++++++++++++++ .../KeyProjectLargeScreenVideoPageQry.java | 16 +++++++ ...eyProjectLargeScreenProjectProgressDO.java | 3 ++ .../project/KeyProjectLargeScreenVideoDO.java | 35 ++++++++++++++ .../persistence/mapper/KeyProjectMapper.java | 2 + .../project/KeyProjectRepositoryImpl.java | 7 +++ .../project/KeyProjectRepository.java | 2 + .../resources/mapper/KeyProjectMapper.xml | 35 ++++++++++---- 12 files changed, 173 insertions(+), 10 deletions(-) create mode 100644 web-client/src/main/java/com/zcloud/key/project/dto/clientobject/project/KeyProjectLargeScreenVideoCO.java create mode 100644 web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectLargeScreenVideoPageQry.java create mode 100644 web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectLargeScreenVideoDO.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 60e4883..665f01c 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 @@ -144,6 +144,12 @@ public class KeyProjectController { return keyProjectService.largeScreenPage(qry); } + @ApiOperation("可视化大屏-重点工程固定摄像头视频列表") + @PostMapping("/largeScreenVideoPage") + public PageResponse largeScreenVideoPage(@RequestBody KeyProjectLargeScreenVideoPageQry qry) { + return keyProjectService.largeScreenVideoPage(qry); + } + @ApiOperation("可视化大屏-重点工程统计") @PostMapping("/largeScreenProjectStatistics") public SingleResponse largeScreenProjectStatistics(@RequestBody KeyProjectLargeScreenProjectStatisticsQry 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 c160f08..c485798 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 @@ -289,6 +289,28 @@ public class KeyProjectQueryExe { return PageResponse.of(result, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); } + public PageResponse largeScreenVideoPage(KeyProjectLargeScreenVideoPageQry qry) { + Map params = PageQueryHelper.toHashMap(qry); + params.put("corpinfoId", AuthContext.getTenantId()); + params.put("cameraType", KeyProjectCameraTypeEnum.FIXED_CAMERA.getCode()); + PageResponse pageResponse = keyProjectRepository.largeScreenVideoPage(params); + List result = pageResponse.getData().stream().map(data -> { + KeyProjectLargeScreenVideoCO item = new KeyProjectLargeScreenVideoCO(); + 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()); + } + public KeyProjectLargeScreenProjectStatisticsCO largeScreenProjectStatistics(KeyProjectLargeScreenProjectStatisticsQry qry) { Map params = PageQueryHelper.toHashMap(qry); 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 2a0ed1b..a5751a8 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 @@ -119,6 +119,11 @@ public class KeyProjectServiceImpl implements KeyProjectServiceI { return keyProjectQueryExe.largeScreenPage(qry); } + @Override + public PageResponse largeScreenVideoPage(KeyProjectLargeScreenVideoPageQry qry) { + return keyProjectQueryExe.largeScreenVideoPage(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 05f32fb..ee0bbd6 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 @@ -50,6 +50,8 @@ public interface KeyProjectServiceI { PageResponse largeScreenPage(KeyProjectLargeScreenPageQry qry); + PageResponse largeScreenVideoPage(KeyProjectLargeScreenVideoPageQry qry); + SingleResponse largeScreenProjectStatistics(KeyProjectLargeScreenProjectStatisticsQry qry); List largeScreenDepartmentStatistics(KeyProjectLargeScreenDepartmentStatisticsQry qry); diff --git a/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/project/KeyProjectLargeScreenVideoCO.java b/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/project/KeyProjectLargeScreenVideoCO.java new file mode 100644 index 0000000..8bc179d --- /dev/null +++ b/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/project/KeyProjectLargeScreenVideoCO.java @@ -0,0 +1,48 @@ +package com.zcloud.key.project.dto.clientobject.project; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * 可视化大屏固定摄像头视频信息 + * + * @Author zhaokai + * @Date 2026-08-07 + */ +@Data +@ApiModel("可视化大屏固定摄像头视频信息") +public class KeyProjectLargeScreenVideoCO implements Serializable { + + @ApiModelProperty("重点工程编号") + private String keyProjectId; + + @ApiModelProperty("重点工程名称") + private String projectName; + + @ApiModelProperty("摄像头编号") + private String cameraId; + + @ApiModelProperty("摄像头名称") + private String cameraName; + + @ApiModelProperty("摄像头类型,1:固定摄像头") + private Integer cameraType; + + @ApiModelProperty("视频地址") + private String videoAddress; + + @ApiModelProperty("摄像头编码") + private String cameraNumber; + + @ApiModelProperty("设备国标编号") + private String deviceGbNumber; + + @ApiModelProperty("设备型号") + private String deviceModel; + + @ApiModelProperty("在线状态,0:离线,1:在线") + private Integer isOnline; +} diff --git a/web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectLargeScreenVideoPageQry.java b/web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectLargeScreenVideoPageQry.java new file mode 100644 index 0000000..00d30ce --- /dev/null +++ b/web-client/src/main/java/com/zcloud/key/project/dto/project/KeyProjectLargeScreenVideoPageQry.java @@ -0,0 +1,16 @@ +package com.zcloud.key.project.dto.project; + +import com.alibaba.cola.dto.PageQuery; +import io.swagger.annotations.ApiModel; +import lombok.Data; + +/** + * 可视化大屏固定摄像头视频分页请求 + * + * @Author zhaokai + * @Date 2026-08-07 + */ +@Data +@ApiModel("可视化大屏固定摄像头视频分页请求") +public class KeyProjectLargeScreenVideoPageQry extends PageQuery { +} diff --git a/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectLargeScreenProjectProgressDO.java b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectLargeScreenProjectProgressDO.java index 614d711..9af7c1a 100644 --- a/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectLargeScreenProjectProgressDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectLargeScreenProjectProgressDO.java @@ -4,6 +4,7 @@ import lombok.Data; import java.io.Serializable; import java.math.BigDecimal; +import java.time.LocalDateTime; /** * 可视化大屏项目进行情况数据 @@ -25,4 +26,6 @@ public class KeyProjectLargeScreenProjectProgressDO implements Serializable { private Integer hiddenCount; private BigDecimal penaltyAmount; + + private LocalDateTime sortTime; } diff --git a/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectLargeScreenVideoDO.java b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectLargeScreenVideoDO.java new file mode 100644 index 0000000..9fd50d3 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/project/KeyProjectLargeScreenVideoDO.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-07 + */ +@Data +public class KeyProjectLargeScreenVideoDO 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/mapper/KeyProjectMapper.java b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/mapper/KeyProjectMapper.java index 749b353..0faeb9e 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 @@ -45,6 +45,8 @@ public interface KeyProjectMapper extends BaseMapper { IPage largeScreenPage(IPage iPage, Map params); + IPage largeScreenVideoPage(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 ee7ac9f..48ad8c4 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 @@ -105,6 +105,13 @@ public class KeyProjectRepositoryImpl extends BaseRepositoryImpl largeScreenVideoPage(Map params) { + IPage iPage = new Query().getPage(params); + IPage result = keyProjectMapper.largeScreenVideoPage(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 32f76c8..e6d42d5 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 @@ -36,6 +36,8 @@ public interface KeyProjectRepository extends BaseRepository { PageResponse largeScreenPage(Map params); + PageResponse largeScreenVideoPage(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 cd9d555..f971a30 100644 --- a/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml @@ -588,6 +588,30 @@ ORDER BY kp.apply_status ASC, kp.create_time DESC + +