From 5a928cf467f15c6ae238cbc818fff992ba713ffa Mon Sep 17 00:00:00 2001 From: zhaokai Date: Wed, 5 Aug 2026 10:11:46 +0800 Subject: [PATCH 1/7] =?UTF-8?q?fix(project):=20=E4=BF=AE=E6=AD=A3=E5=85=B3?= =?UTF-8?q?=E9=94=AE=E9=A1=B9=E7=9B=AE=E6=9F=A5=E8=AF=A2=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E5=85=AC=E5=8F=B8=E4=BF=A1=E6=81=AF=E5=85=B3=E8=81=94=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/KeyProjectMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml b/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml index b523377..02f8a79 100644 --- a/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml @@ -635,7 +635,7 @@ COALESCE(penalty_stat.penaltyAmount, 0) AS penaltyAmount FROM project_approval_flow paf LEFT JOIN project p ON paf.project_id = p.id - LEFT JOIN corp_info cp ON paf.jurisdiction_corpinfo_id = cp.id + LEFT JOIN corp_info cp ON p.corpinfo_id = cp.id LEFT JOIN ( SELECT k.project_id, From 0be73298d2da2078dd713de474c5fd49b65679c9 Mon Sep 17 00:00:00 2001 From: zhaokai Date: Wed, 5 Aug 2026 10:31:54 +0800 Subject: [PATCH 2/7] =?UTF-8?q?fix(project):=20=E4=BF=AE=E6=AD=A3=E5=85=B3?= =?UTF-8?q?=E9=94=AE=E9=A1=B9=E7=9B=AE=E6=9F=A5=E8=AF=A2=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E5=85=AC=E5=8F=B8=E4=BF=A1=E6=81=AF=E5=85=B3=E8=81=94=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/KeyProjectMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml b/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml index 02f8a79..cfa1490 100644 --- a/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml @@ -675,7 +675,7 @@ AND p.delete_enum = 'FALSE' AND p.project_status = 4 - AND paf.jurisdiction_corpinfo_id = #{corpinfoId} + AND paf.corpinfo_id = #{corpinfoId} AND cp.port_area = #{portArea} From 786969f2eed6e7a1f3bc121da1c6e7c9d3643e9d Mon Sep 17 00:00:00 2001 From: zhaokai Date: Thu, 6 Aug 2026 10:41:55 +0800 Subject: [PATCH 3/7] =?UTF-8?q?feat(project):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=8F=AF=E8=A7=86=E5=8C=96=E5=A4=A7=E5=B1=8F=E6=89=BF=E5=8C=85?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=92=8C=E7=A7=BB=E5=8A=A8=E7=9B=91=E6=8E=A7?= =?UTF-8?q?=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 +++ .../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 @@ + + + + From 15b3337d9d2b7d790b46fc12903e7692de7fc742 Mon Sep 17 00:00:00 2001 From: zhaokai Date: Thu, 6 Aug 2026 13:41:52 +0800 Subject: [PATCH 4/7] =?UTF-8?q?feat(project):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=91=84=E5=83=8F=E5=A4=B4=E7=B1=BB=E5=9E=8B=E7=AD=9B=E9=80=89?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/project/KeyProjectLargeScreenMobileMonitoringQry.java | 3 +++ .../src/main/resources/mapper/KeyProjectMapper.xml | 3 +++ 2 files changed, 6 insertions(+) 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 index 9453938..f787add 100644 --- 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 @@ -18,4 +18,7 @@ public class KeyProjectLargeScreenMobileMonitoringQry extends PageQuery { @ApiModelProperty(value = "港区,1:秦皇岛港区,2:秦皇岛东,3:秦皇岛西", name = "portArea") private Integer portArea; + + @ApiModelProperty(value = "摄像头类型,1:固定摄像头,2:移动摄像头", name = "cameraType") + private Integer cameraType; } diff --git a/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml b/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml index 32899b1..c30cba0 100644 --- a/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml @@ -804,6 +804,9 @@ AND cp.port_area = #{params.portArea} + + AND kpc.camera_type = #{params.cameraType} + ORDER BY kp.create_time DESC, kpc.camera_type ASC, kpc.create_time DESC From 53af6abd3292b5ac70cce8dcf7ec4e00a2200802 Mon Sep 17 00:00:00 2001 From: zhaokai Date: Fri, 7 Aug 2026 17:08:15 +0800 Subject: [PATCH 5/7] =?UTF-8?q?fix(project):=20=E4=BC=98=E5=8C=96=E5=A4=A7?= =?UTF-8?q?=E5=B1=8F=E9=A1=B9=E7=9B=AE=E7=BB=9F=E8=AE=A1=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/mapper/KeyProjectMapper.xml | 185 ++++++++++++------ 1 file changed, 130 insertions(+), 55 deletions(-) diff --git a/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml b/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml index c30cba0..cd9d555 100644 --- a/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml @@ -590,7 +590,14 @@ SELECT - p.id AS projectId, - p.project_name AS projectName, - p.corpinfo_name AS corpinfoName, - COALESCE(sei_stat.inspectCount, 0) AS inspectCount, - COALESCE(hidden_stat.hiddenCount, 0) AS hiddenCount, - COALESCE(penalty_stat.penaltyAmount, 0) AS penaltyAmount - FROM project_approval_flow paf - LEFT JOIN project p ON paf.project_id = p.id - LEFT JOIN corp_info cp ON p.corpinfo_id = cp.id - LEFT JOIN ( + progress.projectId, + progress.projectName, + progress.corpinfoName, + progress.inspectCount, + progress.hiddenCount, + progress.penaltyAmount + FROM ( SELECT - k.project_id, - COUNT(DISTINCT sei.id) AS inspectCount - FROM key_project k - INNER JOIN safety_environmental_inspection sei ON sei.key_project_id = k.key_project_id - AND sei.delete_enum = 'FALSE' - AND sei.status != 0 - WHERE k.delete_enum = 'FALSE' - GROUP BY k.project_id - ) sei_stat ON sei_stat.project_id = p.id - LEFT JOIN ( + p.id AS projectId, + p.project_name AS projectName, + p.corpinfo_name AS corpinfoName, + COALESCE(sei_stat.inspectCount, 0) AS inspectCount, + COALESCE(hidden_stat.hiddenCount, 0) AS hiddenCount, + COALESCE(penalty_stat.penaltyAmount, 0) AS penaltyAmount, + p.initiation_time AS sortTime + FROM project_approval_flow paf + LEFT JOIN project p ON paf.project_id = p.id + LEFT JOIN corp_info cp ON p.corpinfo_id = cp.id + LEFT JOIN ( + SELECT + k.project_id, + COUNT(DISTINCT sei.id) AS inspectCount + FROM key_project k + INNER JOIN safety_environmental_inspection sei ON sei.key_project_id = k.key_project_id + AND sei.delete_enum = 'FALSE' + AND sei.status != 0 + WHERE k.delete_enum = 'FALSE' + GROUP BY k.project_id + ) sei_stat ON sei_stat.project_id = p.id + LEFT JOIN ( + SELECT + k.project_id, + COUNT(DISTINCT h.id) AS hiddenCount + FROM key_project k + INNER JOIN safety_environmental_inspection sei ON sei.key_project_id = k.key_project_id + AND sei.delete_enum = 'FALSE' + AND sei.status != 0 + INNER JOIN hidden h ON h.foreign_key = sei.inspection_id + AND h.delete_enum = 'FALSE' + WHERE k.delete_enum = 'FALSE' + GROUP BY k.project_id + ) hidden_stat ON hidden_stat.project_id = p.id + LEFT JOIN ( + SELECT + k.project_id, + SUM(COALESCE(hp.penalty_amount, 0)) AS penaltyAmount + FROM key_project k + INNER JOIN hidden_penalty hp ON hp.key_project_id = k.key_project_id + AND hp.delete_enum = 'FALSE' + WHERE k.delete_enum = 'FALSE' + GROUP BY k.project_id + ) penalty_stat ON penalty_stat.project_id = p.id + WHERE paf.delete_enum = 'FALSE' + AND paf.audit_type = 2 + AND p.delete_enum = 'FALSE' + AND p.project_status = 4 + + AND paf.corpinfo_id = #{corpinfoId} + + + AND cp.port_area = #{portArea} + + GROUP BY p.id + + UNION ALL + SELECT - k.project_id, - COUNT(DISTINCT h.id) AS hiddenCount - FROM key_project k - INNER JOIN safety_environmental_inspection sei ON sei.key_project_id = k.key_project_id - AND sei.delete_enum = 'FALSE' - AND sei.status != 0 - INNER JOIN hidden h ON h.foreign_key = sei.inspection_id - AND h.delete_enum = 'FALSE' - WHERE k.delete_enum = 'FALSE' - GROUP BY k.project_id - ) hidden_stat ON hidden_stat.project_id = p.id - LEFT JOIN ( - SELECT - k.project_id, - SUM(COALESCE(hp.penalty_amount, 0)) AS penaltyAmount - FROM key_project k - INNER JOIN hidden_penalty hp ON hp.key_project_id = k.key_project_id - AND hp.delete_enum = 'FALSE' - WHERE k.delete_enum = 'FALSE' - GROUP BY k.project_id - ) penalty_stat ON penalty_stat.project_id = p.id - WHERE paf.delete_enum = 'FALSE' - AND paf.audit_type = 2 - AND p.delete_enum = 'FALSE' - AND p.project_status = 4 - - AND paf.corpinfo_id = #{corpinfoId} - - - AND cp.port_area = #{portArea} - - GROUP BY p.id - - ORDER BY p.initiation_time DESC + NULL AS projectId, + kp.project_name AS projectName, + xgfci.corp_name AS corpinfoName, + COALESCE(sei_stat.inspectCount, 0) AS inspectCount, + COALESCE(hidden_stat.hiddenCount, 0) AS hiddenCount, + COALESCE(penalty_stat.penaltyAmount, 0) AS penaltyAmount, + kp.create_time AS sortTime + FROM key_project kp + LEFT JOIN corp_info cp ON kp.jurisdiction_corpinfo_id = cp.id + LEFT JOIN corp_info xgfci ON kp.xgf_corpinfo_id = xgfci.id + LEFT JOIN ( + SELECT + sei.key_project_id, + COUNT(DISTINCT sei.id) AS inspectCount + FROM safety_environmental_inspection sei + WHERE sei.delete_enum = 'FALSE' + AND sei.status != 0 + GROUP BY sei.key_project_id + ) sei_stat ON sei_stat.key_project_id = kp.key_project_id + LEFT JOIN ( + SELECT + sei.key_project_id, + COUNT(DISTINCT h.id) AS hiddenCount + FROM safety_environmental_inspection sei + INNER JOIN hidden h ON h.foreign_key = sei.inspection_id + AND h.delete_enum = 'FALSE' + WHERE sei.delete_enum = 'FALSE' + AND sei.status != 0 + GROUP BY sei.key_project_id + ) hidden_stat ON hidden_stat.key_project_id = kp.key_project_id + LEFT JOIN ( + SELECT + hp.key_project_id, + SUM(COALESCE(hp.penalty_amount, 0)) AS penaltyAmount + FROM hidden_penalty hp + WHERE hp.delete_enum = 'FALSE' + GROUP BY hp.key_project_id + ) penalty_stat ON penalty_stat.key_project_id = kp.key_project_id + WHERE kp.delete_enum = 'FALSE' + AND kp.project_work_flag = 0 + AND (kp.project_id IS NULL OR kp.project_id = '') + AND NOT EXISTS ( + SELECT 1 + FROM key_project kp_latest + WHERE kp_latest.delete_enum = 'FALSE' + AND kp_latest.key_project_id = kp.key_project_id + AND kp_latest.id > kp.id + ) + + AND kp.jurisdiction_corpinfo_id = #{corpinfoId} + + + AND cp.port_area = #{portArea} + + GROUP BY kp.key_project_id + ) progress + ORDER BY progress.sortTime DESC + +