Merge branch 'dev_visual_page'
commit
37098afd5c
|
|
@ -151,6 +151,12 @@ public class KeyProjectController {
|
||||||
return keyProjectService.largeScreenPage(qry);
|
return keyProjectService.largeScreenPage(qry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation("可视化大屏-重点工程固定摄像头视频列表")
|
||||||
|
@PostMapping("/largeScreenVideoPage")
|
||||||
|
public PageResponse<KeyProjectLargeScreenVideoCO> largeScreenVideoPage(@RequestBody KeyProjectLargeScreenVideoPageQry qry) {
|
||||||
|
return keyProjectService.largeScreenVideoPage(qry);
|
||||||
|
}
|
||||||
|
|
||||||
@ApiOperation("可视化大屏-重点工程统计")
|
@ApiOperation("可视化大屏-重点工程统计")
|
||||||
@PostMapping("/largeScreenProjectStatistics")
|
@PostMapping("/largeScreenProjectStatistics")
|
||||||
public SingleResponse<KeyProjectLargeScreenProjectStatisticsCO> largeScreenProjectStatistics(@RequestBody KeyProjectLargeScreenProjectStatisticsQry qry) {
|
public SingleResponse<KeyProjectLargeScreenProjectStatisticsCO> largeScreenProjectStatistics(@RequestBody KeyProjectLargeScreenProjectStatisticsQry qry) {
|
||||||
|
|
@ -181,5 +187,17 @@ public class KeyProjectController {
|
||||||
return MultiResponse.of(keyProjectService.largeScreenInfo(qry));
|
return MultiResponse.of(keyProjectService.largeScreenInfo(qry));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation("可视化大屏-承包项目情况")
|
||||||
|
@PostMapping("/largeScreenContractorStatistics")
|
||||||
|
public PageResponse<KeyProjectLargeScreenContractorStatisticsCO> largeScreenContractorStatistics(@RequestBody KeyProjectLargeScreenContractorStatisticsQry qry) {
|
||||||
|
return keyProjectService.largeScreenContractorStatistics(qry);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation("可视化大屏-移动监控情况")
|
||||||
|
@PostMapping("/largeScreenMobileMonitoring")
|
||||||
|
public PageResponse<KeyProjectLargeScreenMobileMonitoringCO> largeScreenMobileMonitoring(@RequestBody KeyProjectLargeScreenMobileMonitoringQry qry) {
|
||||||
|
return keyProjectService.largeScreenMobileMonitoring(qry);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -313,6 +313,30 @@ public class KeyProjectQueryExe {
|
||||||
return PageResponse.of(result, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
return PageResponse.of(result, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public PageResponse<KeyProjectLargeScreenVideoCO> largeScreenVideoPage(KeyProjectLargeScreenVideoPageQry qry) {
|
||||||
|
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
|
||||||
|
params.put("corpinfoId", AuthContext.getTenantId());
|
||||||
|
params.put("cameraType", KeyProjectCameraTypeEnum.FIXED_CAMERA.getCode());
|
||||||
|
PageResponse<KeyProjectLargeScreenVideoDO> pageResponse = keyProjectRepository.largeScreenVideoPage(params);
|
||||||
|
List<KeyProjectLargeScreenVideoCO> 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());
|
||||||
|
item.setLongitude(data.getLongitude());
|
||||||
|
item.setLatitude(data.getLatitude());
|
||||||
|
return item;
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
return PageResponse.of(result, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
||||||
|
}
|
||||||
|
|
||||||
public KeyProjectLargeScreenProjectStatisticsCO largeScreenProjectStatistics(KeyProjectLargeScreenProjectStatisticsQry qry) {
|
public KeyProjectLargeScreenProjectStatisticsCO largeScreenProjectStatistics(KeyProjectLargeScreenProjectStatisticsQry qry) {
|
||||||
|
|
||||||
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
|
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
|
||||||
|
|
@ -322,6 +346,7 @@ public class KeyProjectQueryExe {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
result.setTotalProjectCount(data.getTotalProjectCount());
|
result.setTotalProjectCount(data.getTotalProjectCount());
|
||||||
|
result.setWaitStartCount(data.getWaitStartCount());
|
||||||
result.setStartCount(data.getStartCount());
|
result.setStartCount(data.getStartCount());
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
@ -390,5 +415,39 @@ public class KeyProjectQueryExe {
|
||||||
return result;
|
return result;
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public PageResponse<KeyProjectLargeScreenContractorStatisticsCO> largeScreenContractorStatistics(KeyProjectLargeScreenContractorStatisticsQry qry) {
|
||||||
|
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
|
||||||
|
PageResponse<KeyProjectLargeScreenContractorStatisticsDO> pageResponse = keyProjectRepository.largeScreenContractorStatistics(params);
|
||||||
|
List<KeyProjectLargeScreenContractorStatisticsCO> 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<KeyProjectLargeScreenMobileMonitoringCO> largeScreenMobileMonitoring(KeyProjectLargeScreenMobileMonitoringQry qry) {
|
||||||
|
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
|
||||||
|
PageResponse<KeyProjectLargeScreenMobileMonitoringDO> pageResponse = keyProjectRepository.largeScreenMobileMonitoring(params);
|
||||||
|
List<KeyProjectLargeScreenMobileMonitoringCO> 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());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -119,6 +119,11 @@ public class KeyProjectServiceImpl implements KeyProjectServiceI {
|
||||||
return keyProjectQueryExe.largeScreenPage(qry);
|
return keyProjectQueryExe.largeScreenPage(qry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResponse<KeyProjectLargeScreenVideoCO> largeScreenVideoPage(KeyProjectLargeScreenVideoPageQry qry) {
|
||||||
|
return keyProjectQueryExe.largeScreenVideoPage(qry);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SingleResponse<KeyProjectLargeScreenProjectStatisticsCO> largeScreenProjectStatistics(KeyProjectLargeScreenProjectStatisticsQry qry) {
|
public SingleResponse<KeyProjectLargeScreenProjectStatisticsCO> largeScreenProjectStatistics(KeyProjectLargeScreenProjectStatisticsQry qry) {
|
||||||
return SingleResponse.of(keyProjectQueryExe.largeScreenProjectStatistics(qry));
|
return SingleResponse.of(keyProjectQueryExe.largeScreenProjectStatistics(qry));
|
||||||
|
|
@ -143,5 +148,15 @@ public class KeyProjectServiceImpl implements KeyProjectServiceI {
|
||||||
public List<KeyProjectLargeScreenInfoCO> largeScreenInfo(KeyProjectLargeScreenInfoQry qry) {
|
public List<KeyProjectLargeScreenInfoCO> largeScreenInfo(KeyProjectLargeScreenInfoQry qry) {
|
||||||
return keyProjectQueryExe.largeScreenInfo(qry);
|
return keyProjectQueryExe.largeScreenInfo(qry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResponse<KeyProjectLargeScreenContractorStatisticsCO> largeScreenContractorStatistics(KeyProjectLargeScreenContractorStatisticsQry qry) {
|
||||||
|
return keyProjectQueryExe.largeScreenContractorStatistics(qry);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResponse<KeyProjectLargeScreenMobileMonitoringCO> largeScreenMobileMonitoring(KeyProjectLargeScreenMobileMonitoringQry qry) {
|
||||||
|
return keyProjectQueryExe.largeScreenMobileMonitoring(qry);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -50,6 +50,8 @@ public interface KeyProjectServiceI {
|
||||||
|
|
||||||
PageResponse<KeyProjectLargeScreenCO> largeScreenPage(KeyProjectLargeScreenPageQry qry);
|
PageResponse<KeyProjectLargeScreenCO> largeScreenPage(KeyProjectLargeScreenPageQry qry);
|
||||||
|
|
||||||
|
PageResponse<KeyProjectLargeScreenVideoCO> largeScreenVideoPage(KeyProjectLargeScreenVideoPageQry qry);
|
||||||
|
|
||||||
SingleResponse<KeyProjectLargeScreenProjectStatisticsCO> largeScreenProjectStatistics(KeyProjectLargeScreenProjectStatisticsQry qry);
|
SingleResponse<KeyProjectLargeScreenProjectStatisticsCO> largeScreenProjectStatistics(KeyProjectLargeScreenProjectStatisticsQry qry);
|
||||||
|
|
||||||
List<KeyProjectLargeScreenDepartmentStatisticsCO> largeScreenDepartmentStatistics(KeyProjectLargeScreenDepartmentStatisticsQry qry);
|
List<KeyProjectLargeScreenDepartmentStatisticsCO> largeScreenDepartmentStatistics(KeyProjectLargeScreenDepartmentStatisticsQry qry);
|
||||||
|
|
@ -59,5 +61,9 @@ public interface KeyProjectServiceI {
|
||||||
List<KeyProjectLargeScreenXgfStatisticsCO> largeScreenXgfStatistics(KeyProjectLargeScreenXgfStatisticsQry qry);
|
List<KeyProjectLargeScreenXgfStatisticsCO> largeScreenXgfStatistics(KeyProjectLargeScreenXgfStatisticsQry qry);
|
||||||
|
|
||||||
List<KeyProjectLargeScreenInfoCO> largeScreenInfo(KeyProjectLargeScreenInfoQry qry);
|
List<KeyProjectLargeScreenInfoCO> largeScreenInfo(KeyProjectLargeScreenInfoQry qry);
|
||||||
|
|
||||||
|
PageResponse<KeyProjectLargeScreenContractorStatisticsCO> largeScreenContractorStatistics(KeyProjectLargeScreenContractorStatisticsQry qry);
|
||||||
|
|
||||||
|
PageResponse<KeyProjectLargeScreenMobileMonitoringCO> largeScreenMobileMonitoring(KeyProjectLargeScreenMobileMonitoringQry qry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
@ -17,6 +17,9 @@ public class KeyProjectLargeScreenProjectStatisticsCO implements Serializable {
|
||||||
@ApiModelProperty(value = "重点工程总数")
|
@ApiModelProperty(value = "重点工程总数")
|
||||||
private Integer totalProjectCount;
|
private Integer totalProjectCount;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "重点工程待开工数")
|
||||||
|
private Integer waitStartCount;
|
||||||
|
|
||||||
@ApiModelProperty(value = "重点工程开工数")
|
@ApiModelProperty(value = "重点工程开工数")
|
||||||
private Integer startCount;
|
private Integer startCount;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,54 @@
|
||||||
|
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;
|
||||||
|
|
||||||
|
@ApiModelProperty("经度")
|
||||||
|
private String longitude;
|
||||||
|
|
||||||
|
@ApiModelProperty("纬度")
|
||||||
|
private String latitude;
|
||||||
|
}
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
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;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "摄像头类型,1:固定摄像头,2:移动摄像头", name = "cameraType")
|
||||||
|
private Integer cameraType;
|
||||||
|
}
|
||||||
|
|
@ -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 {
|
||||||
|
}
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
@ -4,6 +4,7 @@ import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 可视化大屏项目进行情况数据
|
* 可视化大屏项目进行情况数据
|
||||||
|
|
@ -25,4 +26,6 @@ public class KeyProjectLargeScreenProjectProgressDO implements Serializable {
|
||||||
private Integer hiddenCount;
|
private Integer hiddenCount;
|
||||||
|
|
||||||
private BigDecimal penaltyAmount;
|
private BigDecimal penaltyAmount;
|
||||||
|
|
||||||
|
private LocalDateTime sortTime;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,5 +15,7 @@ public class KeyProjectLargeScreenProjectStatisticsDO implements Serializable {
|
||||||
|
|
||||||
private Integer totalProjectCount;
|
private Integer totalProjectCount;
|
||||||
|
|
||||||
|
private Integer waitStartCount;
|
||||||
|
|
||||||
private Integer startCount;
|
private Integer startCount;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,39 @@
|
||||||
|
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;
|
||||||
|
|
||||||
|
private String longitude;
|
||||||
|
|
||||||
|
private String latitude;
|
||||||
|
}
|
||||||
|
|
@ -45,6 +45,8 @@ public interface KeyProjectMapper extends BaseMapper<KeyProjectDO> {
|
||||||
|
|
||||||
IPage<KeyProjectLargeScreenDO> largeScreenPage(IPage<KeyProjectLargeScreenDO> iPage, Map<String, Object> params);
|
IPage<KeyProjectLargeScreenDO> largeScreenPage(IPage<KeyProjectLargeScreenDO> iPage, Map<String, Object> params);
|
||||||
|
|
||||||
|
IPage<KeyProjectLargeScreenVideoDO> largeScreenVideoPage(IPage<KeyProjectLargeScreenVideoDO> iPage, Map<String, Object> params);
|
||||||
|
|
||||||
KeyProjectLargeScreenProjectStatisticsDO largeScreenProjectStatistics(Map<String, Object> params);
|
KeyProjectLargeScreenProjectStatisticsDO largeScreenProjectStatistics(Map<String, Object> params);
|
||||||
|
|
||||||
List<KeyProjectLargeScreenDepartmentStatisticsDO> largeScreenDepartmentStatistics(Map<String, Object> params);
|
List<KeyProjectLargeScreenDepartmentStatisticsDO> largeScreenDepartmentStatistics(Map<String, Object> params);
|
||||||
|
|
@ -54,5 +56,9 @@ public interface KeyProjectMapper extends BaseMapper<KeyProjectDO> {
|
||||||
List<KeyProjectLargeScreenXgfStatisticsDO> largeScreenXgfStatistics(Map<String, Object> params);
|
List<KeyProjectLargeScreenXgfStatisticsDO> largeScreenXgfStatistics(Map<String, Object> params);
|
||||||
|
|
||||||
List<KeyProjectLargeScreenInfoDO> largeScreenInfo(Map<String, Object> params);
|
List<KeyProjectLargeScreenInfoDO> largeScreenInfo(Map<String, Object> params);
|
||||||
|
|
||||||
|
IPage<KeyProjectLargeScreenContractorStatisticsDO> largeScreenContractorStatistics(IPage<KeyProjectLargeScreenContractorStatisticsDO> iPage, Map<String, Object> params);
|
||||||
|
|
||||||
|
IPage<KeyProjectLargeScreenMobileMonitoringDO> largeScreenMobileMonitoring(IPage<KeyProjectLargeScreenMobileMonitoringDO> iPage, Map<String, Object> params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -105,6 +105,13 @@ public class KeyProjectRepositoryImpl extends BaseRepositoryImpl<KeyProjectMappe
|
||||||
return PageHelper.pageToResponse(result, result.getRecords());
|
return PageHelper.pageToResponse(result, result.getRecords());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResponse<KeyProjectLargeScreenVideoDO> largeScreenVideoPage(Map<String, Object> params) {
|
||||||
|
IPage<KeyProjectLargeScreenVideoDO> iPage = new Query<KeyProjectLargeScreenVideoDO>().getPage(params);
|
||||||
|
IPage<KeyProjectLargeScreenVideoDO> result = keyProjectMapper.largeScreenVideoPage(iPage, params);
|
||||||
|
return PageHelper.pageToResponse(result, result.getRecords());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public KeyProjectLargeScreenProjectStatisticsDO largeScreenProjectStatistics(Map<String, Object> params) {
|
public KeyProjectLargeScreenProjectStatisticsDO largeScreenProjectStatistics(Map<String, Object> params) {
|
||||||
return keyProjectMapper.largeScreenProjectStatistics(params);
|
return keyProjectMapper.largeScreenProjectStatistics(params);
|
||||||
|
|
@ -129,5 +136,19 @@ public class KeyProjectRepositoryImpl extends BaseRepositoryImpl<KeyProjectMappe
|
||||||
public List<KeyProjectLargeScreenInfoDO> largeScreenInfo(Map<String, Object> params) {
|
public List<KeyProjectLargeScreenInfoDO> largeScreenInfo(Map<String, Object> params) {
|
||||||
return keyProjectMapper.largeScreenInfo(params);
|
return keyProjectMapper.largeScreenInfo(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResponse<KeyProjectLargeScreenContractorStatisticsDO> largeScreenContractorStatistics(Map<String, Object> params) {
|
||||||
|
IPage<KeyProjectLargeScreenContractorStatisticsDO> iPage = new Query<KeyProjectLargeScreenContractorStatisticsDO>().getPage(params);
|
||||||
|
IPage<KeyProjectLargeScreenContractorStatisticsDO> result = keyProjectMapper.largeScreenContractorStatistics(iPage, params);
|
||||||
|
return PageHelper.pageToResponse(result, result.getRecords());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResponse<KeyProjectLargeScreenMobileMonitoringDO> largeScreenMobileMonitoring(Map<String, Object> params) {
|
||||||
|
IPage<KeyProjectLargeScreenMobileMonitoringDO> iPage = new Query<KeyProjectLargeScreenMobileMonitoringDO>().getPage(params);
|
||||||
|
IPage<KeyProjectLargeScreenMobileMonitoringDO> result = keyProjectMapper.largeScreenMobileMonitoring(iPage, params);
|
||||||
|
return PageHelper.pageToResponse(result, result.getRecords());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,8 @@ public interface KeyProjectRepository extends BaseRepository<KeyProjectDO> {
|
||||||
|
|
||||||
PageResponse<KeyProjectLargeScreenDO> largeScreenPage(Map<String, Object> params);
|
PageResponse<KeyProjectLargeScreenDO> largeScreenPage(Map<String, Object> params);
|
||||||
|
|
||||||
|
PageResponse<KeyProjectLargeScreenVideoDO> largeScreenVideoPage(Map<String, Object> params);
|
||||||
|
|
||||||
KeyProjectLargeScreenProjectStatisticsDO largeScreenProjectStatistics(Map<String, Object> params);
|
KeyProjectLargeScreenProjectStatisticsDO largeScreenProjectStatistics(Map<String, Object> params);
|
||||||
|
|
||||||
List<KeyProjectLargeScreenDepartmentStatisticsDO> largeScreenDepartmentStatistics(Map<String, Object> params);
|
List<KeyProjectLargeScreenDepartmentStatisticsDO> largeScreenDepartmentStatistics(Map<String, Object> params);
|
||||||
|
|
@ -45,5 +47,9 @@ public interface KeyProjectRepository extends BaseRepository<KeyProjectDO> {
|
||||||
List<KeyProjectLargeScreenXgfStatisticsDO> largeScreenXgfStatistics(Map<String, Object> params);
|
List<KeyProjectLargeScreenXgfStatisticsDO> largeScreenXgfStatistics(Map<String, Object> params);
|
||||||
|
|
||||||
List<KeyProjectLargeScreenInfoDO> largeScreenInfo(Map<String, Object> params);
|
List<KeyProjectLargeScreenInfoDO> largeScreenInfo(Map<String, Object> params);
|
||||||
|
|
||||||
|
PageResponse<KeyProjectLargeScreenContractorStatisticsDO> largeScreenContractorStatistics(Map<String, Object> params);
|
||||||
|
|
||||||
|
PageResponse<KeyProjectLargeScreenMobileMonitoringDO> largeScreenMobileMonitoring(Map<String, Object> params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -663,10 +663,46 @@
|
||||||
ORDER BY kp.apply_status ASC, kp.create_time DESC
|
ORDER BY kp.apply_status ASC, kp.create_time DESC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="largeScreenVideoPage" resultType="com.zcloud.key.project.persistence.dataobject.project.KeyProjectLargeScreenVideoDO">
|
||||||
|
SELECT
|
||||||
|
kp.key_project_id AS keyProjectId,
|
||||||
|
kp.project_name AS projectName,
|
||||||
|
kpc.camera_id AS cameraId,
|
||||||
|
fc.video_name AS cameraName,
|
||||||
|
kpc.camera_type AS cameraType,
|
||||||
|
fc.video_address AS videoAddress,
|
||||||
|
fc.camera_number AS cameraNumber,
|
||||||
|
fc.device_gb_number AS deviceGbNumber,
|
||||||
|
fc.device_model AS deviceModel,
|
||||||
|
fc.is_online AS isOnline,
|
||||||
|
fc.longitude AS longitude,
|
||||||
|
fc.latitude AS latitude
|
||||||
|
FROM key_project kp
|
||||||
|
INNER JOIN key_project_camera kpc ON kp.key_project_id = kpc.key_project_id
|
||||||
|
AND kpc.delete_enum = 'FALSE'
|
||||||
|
AND kpc.camera_type = #{params.cameraType}
|
||||||
|
INNER JOIN fixed_camera fc ON kpc.camera_id = fc.fixed_camera_id
|
||||||
|
AND fc.delete_enum = 'FALSE'
|
||||||
|
WHERE kp.delete_enum = 'FALSE'
|
||||||
|
AND kp.apply_status IN (2, 4, 5)
|
||||||
|
AND kp.jurisdiction_corpinfo_id = #{params.corpinfoId}
|
||||||
|
ORDER BY kp.apply_status ASC, kp.create_time DESC, kpc.create_time DESC
|
||||||
|
</select>
|
||||||
|
|
||||||
<select id="largeScreenProjectStatistics" resultType="com.zcloud.key.project.persistence.dataobject.project.KeyProjectLargeScreenProjectStatisticsDO">
|
<select id="largeScreenProjectStatistics" resultType="com.zcloud.key.project.persistence.dataobject.project.KeyProjectLargeScreenProjectStatisticsDO">
|
||||||
SELECT
|
SELECT
|
||||||
COUNT(DISTINCT CASE WHEN kp.apply_status IN (1, 2, 3, 4, 5, 6, 7) THEN kp.id END) AS totalProjectCount,
|
COUNT(DISTINCT CASE WHEN kp.apply_status IN (0, 1, 2, 4, 5, 6)
|
||||||
COUNT(DISTINCT CASE WHEN kp.apply_status IN (2, 4, 5) THEN kp.id END) AS startCount
|
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
|
||||||
|
) THEN kp.key_project_id END) AS totalProjectCount,
|
||||||
|
COUNT(DISTINCT CASE WHEN kp.apply_status IN (1, 2)
|
||||||
|
AND CURDATE() <![CDATA[ < ]]> kp.plan_work_start_date THEN kp.id END) AS waitStartCount,
|
||||||
|
COUNT(DISTINCT CASE WHEN kp.apply_status IN (4, 5)
|
||||||
|
AND CURDATE() BETWEEN kp.plan_work_start_date AND kp.plan_work_end_date THEN kp.id END) AS startCount
|
||||||
FROM key_project kp
|
FROM key_project kp
|
||||||
LEFT JOIN corp_info cp ON kp.jurisdiction_corpinfo_id = cp.id
|
LEFT JOIN corp_info cp ON kp.jurisdiction_corpinfo_id = cp.id
|
||||||
WHERE kp.delete_enum = 'FALSE'
|
WHERE kp.delete_enum = 'FALSE'
|
||||||
|
|
@ -701,63 +737,122 @@
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="largeScreenProjectProgress" resultType="com.zcloud.key.project.persistence.dataobject.project.KeyProjectLargeScreenProjectProgressDO">
|
<select id="largeScreenProjectProgress" resultType="com.zcloud.key.project.persistence.dataobject.project.KeyProjectLargeScreenProjectProgressDO">
|
||||||
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 paf.jurisdiction_corpinfo_id = cp.id
|
|
||||||
LEFT JOIN (
|
|
||||||
SELECT
|
SELECT
|
||||||
k.project_id,
|
p.id AS projectId,
|
||||||
COUNT(DISTINCT sei.id) AS inspectCount
|
p.project_name AS projectName,
|
||||||
FROM key_project k
|
p.corpinfo_name AS corpinfoName,
|
||||||
INNER JOIN safety_environmental_inspection sei ON sei.key_project_id = k.key_project_id
|
COALESCE(sei_stat.inspectCount, 0) AS inspectCount,
|
||||||
AND sei.delete_enum = 'FALSE'
|
COALESCE(hidden_stat.hiddenCount, 0) AS hiddenCount,
|
||||||
AND sei.status != 0
|
COALESCE(penalty_stat.penaltyAmount, 0) AS penaltyAmount,
|
||||||
WHERE k.delete_enum = 'FALSE'
|
p.initiation_time AS sortTime
|
||||||
GROUP BY k.project_id
|
FROM project_approval_flow paf
|
||||||
) sei_stat ON sei_stat.project_id = p.id
|
LEFT JOIN project p ON paf.project_id = p.id
|
||||||
LEFT JOIN (
|
LEFT JOIN corp_info cp ON p.corpinfo_id = cp.id
|
||||||
SELECT
|
LEFT JOIN (
|
||||||
k.project_id,
|
SELECT
|
||||||
COUNT(DISTINCT h.id) AS hiddenCount
|
k.project_id,
|
||||||
FROM key_project k
|
COUNT(DISTINCT sei.id) AS inspectCount
|
||||||
INNER JOIN safety_environmental_inspection sei ON sei.key_project_id = k.key_project_id
|
FROM key_project k
|
||||||
AND sei.delete_enum = 'FALSE'
|
INNER JOIN safety_environmental_inspection sei ON sei.key_project_id = k.key_project_id
|
||||||
AND sei.status != 0
|
AND sei.delete_enum = 'FALSE'
|
||||||
INNER JOIN hidden h ON h.foreign_key = sei.inspection_id
|
AND sei.status != 0
|
||||||
AND h.delete_enum = 'FALSE'
|
WHERE k.delete_enum = 'FALSE'
|
||||||
WHERE k.delete_enum = 'FALSE'
|
GROUP BY k.project_id
|
||||||
GROUP BY k.project_id
|
) sei_stat ON sei_stat.project_id = p.id
|
||||||
) hidden_stat ON hidden_stat.project_id = p.id
|
LEFT JOIN (
|
||||||
LEFT JOIN (
|
SELECT
|
||||||
SELECT
|
k.project_id,
|
||||||
k.project_id,
|
COUNT(DISTINCT h.id) AS hiddenCount
|
||||||
SUM(COALESCE(hp.penalty_amount, 0)) AS penaltyAmount
|
FROM key_project k
|
||||||
FROM key_project k
|
INNER JOIN safety_environmental_inspection sei ON sei.key_project_id = k.key_project_id
|
||||||
INNER JOIN hidden_penalty hp ON hp.key_project_id = k.key_project_id
|
AND sei.delete_enum = 'FALSE'
|
||||||
AND hp.delete_enum = 'FALSE'
|
AND sei.status != 0
|
||||||
WHERE k.delete_enum = 'FALSE'
|
INNER JOIN hidden h ON h.foreign_key = sei.inspection_id
|
||||||
GROUP BY k.project_id
|
AND h.delete_enum = 'FALSE'
|
||||||
) penalty_stat ON penalty_stat.project_id = p.id
|
WHERE k.delete_enum = 'FALSE'
|
||||||
WHERE paf.delete_enum = 'FALSE'
|
GROUP BY k.project_id
|
||||||
AND paf.audit_type = 2
|
) hidden_stat ON hidden_stat.project_id = p.id
|
||||||
AND p.delete_enum = 'FALSE'
|
LEFT JOIN (
|
||||||
AND p.project_status = 4
|
SELECT
|
||||||
<if test="corpinfoId != null">
|
k.project_id,
|
||||||
AND paf.jurisdiction_corpinfo_id = #{corpinfoId}
|
SUM(COALESCE(hp.penalty_amount, 0)) AS penaltyAmount
|
||||||
</if>
|
FROM key_project k
|
||||||
<if test="portArea != null">
|
INNER JOIN hidden_penalty hp ON hp.key_project_id = k.key_project_id
|
||||||
AND cp.port_area = #{portArea}
|
AND hp.delete_enum = 'FALSE'
|
||||||
</if>
|
WHERE k.delete_enum = 'FALSE'
|
||||||
GROUP BY p.id
|
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
|
||||||
|
<if test="corpinfoId != null">
|
||||||
|
AND paf.corpinfo_id = #{corpinfoId}
|
||||||
|
</if>
|
||||||
|
<if test="portArea != null">
|
||||||
|
AND cp.port_area = #{portArea}
|
||||||
|
</if>
|
||||||
|
GROUP BY p.id
|
||||||
|
|
||||||
ORDER BY p.initiation_time DESC
|
UNION ALL
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
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
|
||||||
|
)
|
||||||
|
<if test="corpinfoId != null">
|
||||||
|
AND kp.jurisdiction_corpinfo_id = #{corpinfoId}
|
||||||
|
</if>
|
||||||
|
<if test="portArea != null">
|
||||||
|
AND cp.port_area = #{portArea}
|
||||||
|
</if>
|
||||||
|
GROUP BY kp.key_project_id
|
||||||
|
ORDER BY sortTime DESC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="largeScreenXgfStatistics" resultType="com.zcloud.key.project.persistence.dataobject.project.KeyProjectLargeScreenXgfStatisticsDO">
|
<select id="largeScreenXgfStatistics" resultType="com.zcloud.key.project.persistence.dataobject.project.KeyProjectLargeScreenXgfStatisticsDO">
|
||||||
|
|
@ -800,5 +895,86 @@
|
||||||
</if>
|
</if>
|
||||||
ORDER BY kp.apply_status ASC, kp.create_time DESC
|
ORDER BY kp.apply_status ASC, kp.create_time DESC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="largeScreenContractorStatistics" resultType="com.zcloud.key.project.persistence.dataobject.project.KeyProjectLargeScreenContractorStatisticsDO">
|
||||||
|
SELECT
|
||||||
|
kp.xgf_corpinfo_id AS contractorCorpinfoId,
|
||||||
|
xgfci.corp_name AS contractorName,
|
||||||
|
COUNT(DISTINCT CASE WHEN kp.apply_status IN (1, 2)
|
||||||
|
AND CURDATE() <![CDATA[ < ]]> kp.plan_work_start_date THEN kp.id END) AS waitStartCount,
|
||||||
|
COUNT(DISTINCT CASE WHEN kp.apply_status IN (4, 5)
|
||||||
|
AND CURDATE() BETWEEN kp.plan_work_start_date AND kp.plan_work_end_date THEN kp.id END) AS doingCount
|
||||||
|
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
|
||||||
|
WHERE kp.delete_enum = 'FALSE'
|
||||||
|
AND kp.xgf_corpinfo_id IS NOT NULL
|
||||||
|
<if test="params.corpinfoId != null">
|
||||||
|
AND kp.jurisdiction_corpinfo_id = #{params.corpinfoId}
|
||||||
|
</if>
|
||||||
|
<if test="params.portArea != null">
|
||||||
|
AND cp.port_area = #{params.portArea}
|
||||||
|
</if>
|
||||||
|
GROUP BY kp.xgf_corpinfo_id, xgfci.corp_name
|
||||||
|
ORDER BY xgfci.corp_order ASC, xgfci.create_time DESC
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="largeScreenMobileMonitoring" resultType="com.zcloud.key.project.persistence.dataobject.project.KeyProjectLargeScreenMobileMonitoringDO">
|
||||||
|
SELECT
|
||||||
|
kp.key_project_id AS keyProjectId,
|
||||||
|
kp.project_name AS projectName,
|
||||||
|
kpc.camera_id AS cameraId,
|
||||||
|
CASE
|
||||||
|
WHEN kpc.camera_type = 1 THEN fc.video_name
|
||||||
|
WHEN kpc.camera_type = 2 THEN mc.video_name
|
||||||
|
END AS cameraName,
|
||||||
|
kpc.camera_type AS cameraType,
|
||||||
|
CASE
|
||||||
|
WHEN kpc.camera_type = 1 THEN fc.video_address
|
||||||
|
WHEN kpc.camera_type = 2 THEN mc.video_address
|
||||||
|
END AS videoAddress,
|
||||||
|
CASE
|
||||||
|
WHEN kpc.camera_type = 1 THEN fc.camera_number
|
||||||
|
WHEN kpc.camera_type = 2 THEN mc.camera_number
|
||||||
|
END AS cameraNumber,
|
||||||
|
CASE
|
||||||
|
WHEN kpc.camera_type = 1 THEN fc.device_gb_number
|
||||||
|
WHEN kpc.camera_type = 2 THEN mc.device_gb_number
|
||||||
|
END AS deviceGbNumber,
|
||||||
|
CASE
|
||||||
|
WHEN kpc.camera_type = 1 THEN fc.device_model
|
||||||
|
WHEN kpc.camera_type = 2 THEN mc.device_model
|
||||||
|
END AS deviceModel,
|
||||||
|
CASE
|
||||||
|
WHEN kpc.camera_type = 1 THEN fc.is_online
|
||||||
|
WHEN kpc.camera_type = 2 THEN mc.is_online
|
||||||
|
END AS isOnline
|
||||||
|
FROM key_project kp
|
||||||
|
INNER JOIN key_project_camera kpc ON kp.key_project_id = kpc.key_project_id
|
||||||
|
AND kpc.delete_enum = 'FALSE'
|
||||||
|
LEFT JOIN fixed_camera fc ON kpc.camera_id = fc.fixed_camera_id
|
||||||
|
AND kpc.camera_type = 1
|
||||||
|
AND fc.delete_enum = 'FALSE'
|
||||||
|
LEFT JOIN mobile_camera mc ON kpc.camera_id = mc.mobile_camera_id
|
||||||
|
AND kpc.camera_type = 2
|
||||||
|
AND mc.delete_enum = 'FALSE'
|
||||||
|
LEFT JOIN corp_info cp ON kp.jurisdiction_corpinfo_id = cp.id
|
||||||
|
WHERE kp.delete_enum = 'FALSE'
|
||||||
|
AND kp.apply_status = 4
|
||||||
|
AND (
|
||||||
|
(kpc.camera_type = 1 AND fc.fixed_camera_id IS NOT NULL)
|
||||||
|
OR (kpc.camera_type = 2 AND mc.mobile_camera_id IS NOT NULL)
|
||||||
|
)
|
||||||
|
<if test="params.corpinfoId != null">
|
||||||
|
AND kp.jurisdiction_corpinfo_id = #{params.corpinfoId}
|
||||||
|
</if>
|
||||||
|
<if test="params.portArea != null">
|
||||||
|
AND cp.port_area = #{params.portArea}
|
||||||
|
</if>
|
||||||
|
<if test="params.cameraType != null">
|
||||||
|
AND kpc.camera_type = #{params.cameraType}
|
||||||
|
</if>
|
||||||
|
ORDER BY kp.create_time DESC, kpc.camera_type ASC, kpc.create_time DESC
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue