feat(project): 添加可视化大屏重点作业统计功能
parent
d1945601d7
commit
650c67e97b
|
|
@ -139,5 +139,11 @@ public class KeyProjectController {
|
||||||
return MultiResponse.of( keyProjectService.getXgfCorp(qry));
|
return MultiResponse.of( keyProjectService.getXgfCorp(qry));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation("可视化大屏-重点作业统计数量")
|
||||||
|
@PostMapping("/largeScreenStatistics")
|
||||||
|
public SingleResponse<KeyProjectLargeScreenStatisticsCO> largeScreenStatistics(@RequestBody KeyProjectLargeScreenStatisticsQry qry) {
|
||||||
|
return keyProjectService.largeScreenStatistics(qry);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -59,9 +59,6 @@ public class KeyProjectCameraQueryExe {
|
||||||
if(KeyProjectCameraTypeEnum.MOBILE_CAMERA.getCode().equals(cameraListCmd.getCameraType())){
|
if(KeyProjectCameraTypeEnum.MOBILE_CAMERA.getCode().equals(cameraListCmd.getCameraType())){
|
||||||
pageResponse = keyProjectCameraRepository.listMobileCameraAll(params);
|
pageResponse = keyProjectCameraRepository.listMobileCameraAll(params);
|
||||||
}
|
}
|
||||||
if(KeyProjectCameraTypeEnum.ALL_CAMERA.getCode().equals(cameraListCmd.getCameraType())){
|
|
||||||
pageResponse = keyProjectCameraRepository.listAllCamera(params);
|
|
||||||
}
|
|
||||||
List<CameraInfoCO> examCenterCOS = keyProjectCameraCoConvertor.converCameraDOsToCOs(pageResponse.getData());
|
List<CameraInfoCO> examCenterCOS = keyProjectCameraCoConvertor.converCameraDOsToCOs(pageResponse.getData());
|
||||||
pageResponse.setPageSize(examCenterCOS.size());
|
pageResponse.setPageSize(examCenterCOS.size());
|
||||||
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
||||||
|
|
|
||||||
|
|
@ -279,5 +279,21 @@ public class KeyProjectQueryExe {
|
||||||
keyProjectCountCO.setFeedbackCount(feedbackCount);
|
keyProjectCountCO.setFeedbackCount(feedbackCount);
|
||||||
return keyProjectCountCO;
|
return keyProjectCountCO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public KeyProjectLargeScreenStatisticsCO largeScreenStatistics(KeyProjectLargeScreenStatisticsQry qry) {
|
||||||
|
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
|
||||||
|
KeyProjectLargeScreenStatisticsDO data = keyProjectRepository.largeScreenStatistics(params);
|
||||||
|
KeyProjectLargeScreenStatisticsCO result = new KeyProjectLargeScreenStatisticsCO();
|
||||||
|
if (data == null) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
result.setMorePeopleStartCount(data.getMorePeopleStartCount());
|
||||||
|
result.setMorePeopleApplyCount(data.getMorePeopleApplyCount());
|
||||||
|
result.setNightWorkStartCount(data.getNightWorkStartCount());
|
||||||
|
result.setNightWorkApplyCount(data.getNightWorkApplyCount());
|
||||||
|
result.setFourNewHomeworkStartCount(data.getFourNewHomeworkStartCount());
|
||||||
|
result.setFourNewHomeworkApplyCount(data.getFourNewHomeworkApplyCount());
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -108,5 +108,10 @@ public class KeyProjectServiceImpl implements KeyProjectServiceI {
|
||||||
public SingleResponse<KeyProjectCountCO> count(Long id) {
|
public SingleResponse<KeyProjectCountCO> count(Long id) {
|
||||||
return SingleResponse.of(keyProjectQueryExe.count(id));
|
return SingleResponse.of(keyProjectQueryExe.count(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SingleResponse<KeyProjectLargeScreenStatisticsCO> largeScreenStatistics(KeyProjectLargeScreenStatisticsQry qry) {
|
||||||
|
return SingleResponse.of(keyProjectQueryExe.largeScreenStatistics(qry));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -45,5 +45,7 @@ public interface KeyProjectServiceI {
|
||||||
void updatExecuteStatusJob();
|
void updatExecuteStatusJob();
|
||||||
|
|
||||||
SingleResponse<KeyProjectCountCO> count(Long id);
|
SingleResponse<KeyProjectCountCO> count(Long id);
|
||||||
|
|
||||||
|
SingleResponse<KeyProjectLargeScreenStatisticsCO> largeScreenStatistics(KeyProjectLargeScreenStatisticsQry qry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,8 +19,8 @@ public class CameraInfoCO implements Serializable {
|
||||||
//摄像头id
|
//摄像头id
|
||||||
@ApiModelProperty(value = "摄像头id")
|
@ApiModelProperty(value = "摄像头id")
|
||||||
private String cameraId;
|
private String cameraId;
|
||||||
//摄像头类型,0:查全部,1:固定摄像头,2:移动摄像头
|
//摄像头类型,1:固定摄像头,2:移动摄像头
|
||||||
@ApiModelProperty(value = "摄像头类型,0:查全部,1:固定摄像头,2:移动摄像头")
|
@ApiModelProperty(value = "摄像头类型,1:固定摄像头,2:移动摄像头")
|
||||||
private Integer cameraType;
|
private Integer cameraType;
|
||||||
|
|
||||||
@ApiModelProperty(value = "摄像头名称")
|
@ApiModelProperty(value = "摄像头名称")
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,34 @@
|
||||||
|
package com.zcloud.key.project.dto.clientobject.project;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 可视化大屏重点作业统计返回
|
||||||
|
*
|
||||||
|
* @Author zhaokai
|
||||||
|
* @Date 2026-07-16
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class KeyProjectLargeScreenStatisticsCO implements Serializable {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "三人及以上作业当前作业数")
|
||||||
|
private Integer morePeopleStartCount;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "三人及以上作业申请数")
|
||||||
|
private Integer morePeopleApplyCount;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "夜间作业当前作业数")
|
||||||
|
private Integer nightWorkStartCount;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "夜间作业申请数")
|
||||||
|
private Integer nightWorkApplyCount;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "四新作业当前作业数")
|
||||||
|
private Integer fourNewHomeworkStartCount;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "四新作业申请数")
|
||||||
|
private Integer fourNewHomeworkApplyCount;
|
||||||
|
}
|
||||||
|
|
@ -26,7 +26,7 @@ public class CameraListCmd extends PageQuery {
|
||||||
* - `le`: 小于等于比较查询
|
* - `le`: 小于等于比较查询
|
||||||
* - `ne`: 不等比较查询,对应SQL的!=操作符
|
* - `ne`: 不等比较查询,对应SQL的!=操作符
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty(value = "摄像头类型,0:查全部,1:固定摄像头,2:移动摄像头")
|
@ApiModelProperty(value = "摄像头类型,1:固定摄像头,2:移动摄像头")
|
||||||
@NotNull(message = "摄像头类型不能为空")
|
@NotNull(message = "摄像头类型不能为空")
|
||||||
private Integer cameraType;
|
private Integer cameraType;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
package com.zcloud.key.project.dto.project;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 可视化大屏重点作业统计请求
|
||||||
|
*
|
||||||
|
* @Author zhaokai
|
||||||
|
* @Date 2026-07-16
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class KeyProjectLargeScreenStatisticsQry implements Serializable {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "企业id")
|
||||||
|
private Long corpinfoId;
|
||||||
|
}
|
||||||
|
|
@ -7,7 +7,6 @@ import lombok.Getter;
|
||||||
*/
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
public enum KeyProjectCameraTypeEnum {
|
public enum KeyProjectCameraTypeEnum {
|
||||||
ALL_CAMERA(0, "全部摄像头"),
|
|
||||||
FIXED_CAMERA(1, "固定摄像头"),
|
FIXED_CAMERA(1, "固定摄像头"),
|
||||||
MOBILE_CAMERA(2, "移动摄像头");
|
MOBILE_CAMERA(2, "移动摄像头");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,8 +19,8 @@ public class CameraInfoDO implements Serializable {
|
||||||
//摄像头id
|
//摄像头id
|
||||||
@ApiModelProperty(value = "摄像头id")
|
@ApiModelProperty(value = "摄像头id")
|
||||||
private String cameraId;
|
private String cameraId;
|
||||||
//摄像头类型,0:查全部,1:固定摄像头,2:移动摄像头
|
//摄像头类型,1:固定摄像头,2:移动摄像头
|
||||||
@ApiModelProperty(value = "摄像头类型,0:查全部,1:固定摄像头,2:移动摄像头")
|
@ApiModelProperty(value = "摄像头类型,1:固定摄像头,2:移动摄像头")
|
||||||
private Integer cameraType;
|
private Integer cameraType;
|
||||||
|
|
||||||
@ApiModelProperty(value = "摄像头名称")
|
@ApiModelProperty(value = "摄像头名称")
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
package com.zcloud.key.project.persistence.dataobject.project;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 可视化大屏重点作业统计数据
|
||||||
|
*
|
||||||
|
* @Author zhaokai
|
||||||
|
* @Date 2026-07-16
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class KeyProjectLargeScreenStatisticsDO implements Serializable {
|
||||||
|
|
||||||
|
private Integer morePeopleStartCount;
|
||||||
|
|
||||||
|
private Integer morePeopleApplyCount;
|
||||||
|
|
||||||
|
private Integer nightWorkStartCount;
|
||||||
|
|
||||||
|
private Integer nightWorkApplyCount;
|
||||||
|
|
||||||
|
private Integer fourNewHomeworkStartCount;
|
||||||
|
|
||||||
|
private Integer fourNewHomeworkApplyCount;
|
||||||
|
}
|
||||||
|
|
@ -30,8 +30,6 @@ public interface KeyProjectCameraMapper extends BaseMapper<KeyProjectCameraDO> {
|
||||||
|
|
||||||
IPage<CameraInfoDO> listMobileCameraAll(IPage<CameraInfoDO> iPage, Map<String, Object> params);
|
IPage<CameraInfoDO> listMobileCameraAll(IPage<CameraInfoDO> iPage, Map<String, Object> params);
|
||||||
|
|
||||||
IPage<CameraInfoDO> listAllCamera(IPage<CameraInfoDO> iPage, Map<String, Object> params);
|
|
||||||
|
|
||||||
|
|
||||||
List<KeyProjectCameraAiDO> listCameraByProjectId(@Param("params") Map<String, Object> params);
|
List<KeyProjectCameraAiDO> listCameraByProjectId(@Param("params") Map<String, Object> params);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -40,5 +40,7 @@ public interface KeyProjectMapper extends BaseMapper<KeyProjectDO> {
|
||||||
List<XgfCorpDO> getXgfCorp(Map<String, Object> params);
|
List<XgfCorpDO> getXgfCorp(Map<String, Object> params);
|
||||||
|
|
||||||
List<KeyProjectDO> getLastStatus();
|
List<KeyProjectDO> getLastStatus();
|
||||||
|
|
||||||
|
KeyProjectLargeScreenStatisticsDO largeScreenStatistics(Map<String, Object> params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -92,5 +92,10 @@ public class KeyProjectRepositoryImpl extends BaseRepositoryImpl<KeyProjectMappe
|
||||||
//查找日期plan_work_end_date 是昨日的数据,并且 apply_status = 4
|
//查找日期plan_work_end_date 是昨日的数据,并且 apply_status = 4
|
||||||
return keyProjectMapper.getLastStatus();
|
return keyProjectMapper.getLastStatus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public KeyProjectLargeScreenStatisticsDO largeScreenStatistics(Map<String, Object> params) {
|
||||||
|
return keyProjectMapper.largeScreenStatistics(params);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,5 @@ public interface KeyProjectCameraRepository extends BaseRepository<KeyProjectCam
|
||||||
PageResponse<CameraInfoDO> listFixedCameraAll(Map<String, Object> params);
|
PageResponse<CameraInfoDO> listFixedCameraAll(Map<String, Object> params);
|
||||||
|
|
||||||
PageResponse<CameraInfoDO> listMobileCameraAll(Map<String, Object> params);
|
PageResponse<CameraInfoDO> listMobileCameraAll(Map<String, Object> params);
|
||||||
|
|
||||||
PageResponse<CameraInfoDO> listAllCamera(Map<String, Object> params);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -31,5 +31,7 @@ public interface KeyProjectRepository extends BaseRepository<KeyProjectDO> {
|
||||||
List<XgfCorpDO> getXgfCorp(Map<String, Object> params);
|
List<XgfCorpDO> getXgfCorp(Map<String, Object> params);
|
||||||
|
|
||||||
List<KeyProjectDO> getLastStatus();
|
List<KeyProjectDO> getLastStatus();
|
||||||
|
|
||||||
|
KeyProjectLargeScreenStatisticsDO largeScreenStatistics(Map<String, Object> params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -622,5 +622,20 @@
|
||||||
AND kp.plan_work_end_date = DATE_SUB(CURDATE(), INTERVAL 1 DAY)
|
AND kp.plan_work_end_date = DATE_SUB(CURDATE(), INTERVAL 1 DAY)
|
||||||
ORDER BY kp.create_time DESC
|
ORDER BY kp.create_time DESC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="largeScreenStatistics" resultType="com.zcloud.key.project.persistence.dataobject.project.KeyProjectLargeScreenStatisticsDO">
|
||||||
|
SELECT
|
||||||
|
COUNT(DISTINCT CASE WHEN kp.project_type = 'more_people' AND kp.apply_status = 4 THEN kp.id END) AS morePeopleStartCount,
|
||||||
|
COUNT(DISTINCT CASE WHEN kp.project_type = 'more_people' AND kp.apply_status != 0 THEN kp.id END) AS morePeopleApplyCount,
|
||||||
|
COUNT(DISTINCT CASE WHEN kp.project_type = 'night_work' AND kp.apply_status = 4 THEN kp.id END) AS nightWorkStartCount,
|
||||||
|
COUNT(DISTINCT CASE WHEN kp.project_type = 'night_work' AND kp.apply_status != 0 THEN kp.id END) AS nightWorkApplyCount,
|
||||||
|
COUNT(DISTINCT CASE WHEN kp.project_type = 'four_new_homework' AND kp.apply_status = 4 THEN kp.id END) AS fourNewHomeworkStartCount,
|
||||||
|
COUNT(DISTINCT CASE WHEN kp.project_type = 'four_new_homework' AND kp.apply_status != 0 THEN kp.id END) AS fourNewHomeworkApplyCount
|
||||||
|
FROM key_project kp
|
||||||
|
WHERE kp.delete_enum = 'FALSE'
|
||||||
|
<if test="corpinfoId != null">
|
||||||
|
AND kp.corpinfo_id = #{corpinfoId}
|
||||||
|
</if>
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue