feat(project): 添加可视化大屏重点作业信息列表功能
parent
e44a28ad5c
commit
5e65188e4e
|
|
@ -168,5 +168,11 @@ public class KeyProjectController {
|
||||||
return MultiResponse.of(keyProjectService.largeScreenXgfStatistics(qry));
|
return MultiResponse.of(keyProjectService.largeScreenXgfStatistics(qry));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation("可视化大屏-重点作业信息列表")
|
||||||
|
@PostMapping("/largeScreenInfo")
|
||||||
|
public MultiResponse<KeyProjectLargeScreenInfoCO> largeScreenInfo(@RequestBody KeyProjectLargeScreenInfoQry qry) {
|
||||||
|
return MultiResponse.of(keyProjectService.largeScreenInfo(qry));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -353,5 +353,18 @@ public class KeyProjectQueryExe {
|
||||||
return result;
|
return result;
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<KeyProjectLargeScreenInfoCO> largeScreenInfo(KeyProjectLargeScreenInfoQry qry) {
|
||||||
|
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
|
||||||
|
List<KeyProjectLargeScreenInfoDO> dataList = keyProjectRepository.largeScreenInfo(params);
|
||||||
|
if (CollUtil.isEmpty(dataList)) {
|
||||||
|
return java.util.Collections.emptyList();
|
||||||
|
}
|
||||||
|
return dataList.stream().map(data -> {
|
||||||
|
KeyProjectLargeScreenInfoCO result = new KeyProjectLargeScreenInfoCO();
|
||||||
|
org.springframework.beans.BeanUtils.copyProperties(data, result);
|
||||||
|
return result;
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -138,5 +138,10 @@ public class KeyProjectServiceImpl implements KeyProjectServiceI {
|
||||||
public List<KeyProjectLargeScreenXgfStatisticsCO> largeScreenXgfStatistics(KeyProjectLargeScreenXgfStatisticsQry qry) {
|
public List<KeyProjectLargeScreenXgfStatisticsCO> largeScreenXgfStatistics(KeyProjectLargeScreenXgfStatisticsQry qry) {
|
||||||
return keyProjectQueryExe.largeScreenXgfStatistics(qry);
|
return keyProjectQueryExe.largeScreenXgfStatistics(qry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<KeyProjectLargeScreenInfoCO> largeScreenInfo(KeyProjectLargeScreenInfoQry qry) {
|
||||||
|
return keyProjectQueryExe.largeScreenInfo(qry);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -57,5 +57,7 @@ public interface KeyProjectServiceI {
|
||||||
List<KeyProjectLargeScreenProjectProgressCO> largeScreenProjectProgress(KeyProjectLargeScreenProjectProgressQry qry);
|
List<KeyProjectLargeScreenProjectProgressCO> largeScreenProjectProgress(KeyProjectLargeScreenProjectProgressQry qry);
|
||||||
|
|
||||||
List<KeyProjectLargeScreenXgfStatisticsCO> largeScreenXgfStatistics(KeyProjectLargeScreenXgfStatisticsQry qry);
|
List<KeyProjectLargeScreenXgfStatisticsCO> largeScreenXgfStatistics(KeyProjectLargeScreenXgfStatisticsQry qry);
|
||||||
|
|
||||||
|
List<KeyProjectLargeScreenInfoCO> largeScreenInfo(KeyProjectLargeScreenInfoQry qry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
package com.zcloud.key.project.dto.clientobject.project;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 可视化大屏重点作业信息列表返回
|
||||||
|
*
|
||||||
|
* @Author zhaokai
|
||||||
|
* @Date 2026-07-29
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
public class KeyProjectLargeScreenInfoCO extends KeyProjectLargeScreenCO {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "辖区单位企业名称")
|
||||||
|
private String jurisdictionCorpinfoName;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
package com.zcloud.key.project.dto.project;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 可视化大屏重点作业信息列表请求
|
||||||
|
*
|
||||||
|
* @Author zhaokai
|
||||||
|
* @Date 2026-07-29
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class KeyProjectLargeScreenInfoQry implements Serializable {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "企业id", name = "corpinfoId")
|
||||||
|
private Long corpinfoId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "港区,1:秦皇岛港区,2:秦皇岛东,3:秦皇岛西", name = "portArea")
|
||||||
|
private Integer portArea;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
package com.zcloud.key.project.persistence.dataobject.project;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 可视化大屏重点作业信息列表数据
|
||||||
|
*
|
||||||
|
* @Author zhaokai
|
||||||
|
* @Date 2026-07-29
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
public class KeyProjectLargeScreenInfoDO extends KeyProjectDO {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "辖区单位企业名称")
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String jurisdictionCorpinfoName;
|
||||||
|
}
|
||||||
|
|
@ -52,5 +52,7 @@ public interface KeyProjectMapper extends BaseMapper<KeyProjectDO> {
|
||||||
List<KeyProjectLargeScreenProjectProgressDO> largeScreenProjectProgress(Map<String, Object> params);
|
List<KeyProjectLargeScreenProjectProgressDO> largeScreenProjectProgress(Map<String, Object> params);
|
||||||
|
|
||||||
List<KeyProjectLargeScreenXgfStatisticsDO> largeScreenXgfStatistics(Map<String, Object> params);
|
List<KeyProjectLargeScreenXgfStatisticsDO> largeScreenXgfStatistics(Map<String, Object> params);
|
||||||
|
|
||||||
|
List<KeyProjectLargeScreenInfoDO> largeScreenInfo(Map<String, Object> params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -124,5 +124,10 @@ public class KeyProjectRepositoryImpl extends BaseRepositoryImpl<KeyProjectMappe
|
||||||
public List<KeyProjectLargeScreenXgfStatisticsDO> largeScreenXgfStatistics(Map<String, Object> params) {
|
public List<KeyProjectLargeScreenXgfStatisticsDO> largeScreenXgfStatistics(Map<String, Object> params) {
|
||||||
return keyProjectMapper.largeScreenXgfStatistics(params);
|
return keyProjectMapper.largeScreenXgfStatistics(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<KeyProjectLargeScreenInfoDO> largeScreenInfo(Map<String, Object> params) {
|
||||||
|
return keyProjectMapper.largeScreenInfo(params);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -43,5 +43,7 @@ public interface KeyProjectRepository extends BaseRepository<KeyProjectDO> {
|
||||||
List<KeyProjectLargeScreenProjectProgressDO> largeScreenProjectProgress(Map<String, Object> params);
|
List<KeyProjectLargeScreenProjectProgressDO> largeScreenProjectProgress(Map<String, Object> params);
|
||||||
|
|
||||||
List<KeyProjectLargeScreenXgfStatisticsDO> largeScreenXgfStatistics(Map<String, Object> params);
|
List<KeyProjectLargeScreenXgfStatisticsDO> largeScreenXgfStatistics(Map<String, Object> params);
|
||||||
|
|
||||||
|
List<KeyProjectLargeScreenInfoDO> largeScreenInfo(Map<String, Object> params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -565,7 +565,7 @@
|
||||||
FROM key_project kp
|
FROM key_project kp
|
||||||
WHERE kp.delete_enum = 'FALSE'
|
WHERE kp.delete_enum = 'FALSE'
|
||||||
<if test="corpinfoId != null">
|
<if test="corpinfoId != null">
|
||||||
AND kp.corpinfo_id = #{corpinfoId}
|
AND kp.jurisdiction_corpinfo_id = #{corpinfoId}
|
||||||
</if>
|
</if>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
@ -575,12 +575,12 @@
|
||||||
cp.port_area AS portArea
|
cp.port_area AS portArea
|
||||||
|
|
||||||
FROM key_project kp
|
FROM key_project kp
|
||||||
LEFT JOIN corp_info cp ON kp.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'
|
||||||
AND kp.apply_status IN (2, 4, 5)
|
AND kp.apply_status IN (2, 4, 5)
|
||||||
<if test="params.corpinfoId != null">
|
<if test="params.corpinfoId != null">
|
||||||
AND kp.corpinfo_id = #{params.corpinfoId}
|
AND kp.jurisdiction_corpinfo_id = #{params.corpinfoId}
|
||||||
</if>
|
</if>
|
||||||
<if test="params.portArea != null">
|
<if test="params.portArea != null">
|
||||||
AND cp.port_area = #{params.portArea}
|
AND cp.port_area = #{params.portArea}
|
||||||
|
|
@ -593,10 +593,10 @@
|
||||||
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 (1, 2, 3, 4, 5, 6, 7) THEN kp.id END) AS totalProjectCount,
|
||||||
COUNT(DISTINCT CASE WHEN kp.apply_status IN (2, 4, 5) THEN kp.id END) AS startCount
|
COUNT(DISTINCT CASE WHEN kp.apply_status IN (2, 4, 5) THEN kp.id END) AS startCount
|
||||||
FROM key_project kp
|
FROM key_project kp
|
||||||
LEFT JOIN corp_info cp ON kp.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'
|
||||||
<if test="corpinfoId != null">
|
<if test="corpinfoId != null">
|
||||||
AND kp.corpinfo_id = #{corpinfoId}
|
AND kp.jurisdiction_corpinfo_id = #{corpinfoId}
|
||||||
</if>
|
</if>
|
||||||
<if test="portArea != null">
|
<if test="portArea != null">
|
||||||
AND cp.port_area = #{portArea}
|
AND cp.port_area = #{portArea}
|
||||||
|
|
@ -610,13 +610,13 @@
|
||||||
COUNT(DISTINCT CASE WHEN kp.project_type = 'four_new_homework' THEN kp.id END) AS fourNewHomeworkCount,
|
COUNT(DISTINCT CASE WHEN kp.project_type = 'four_new_homework' THEN kp.id END) AS fourNewHomeworkCount,
|
||||||
COUNT(DISTINCT CASE WHEN kp.project_type = 'more_people' THEN kp.id END) AS morePeopleCount
|
COUNT(DISTINCT CASE WHEN kp.project_type = 'more_people' THEN kp.id END) AS morePeopleCount
|
||||||
FROM key_project kp
|
FROM key_project kp
|
||||||
LEFT JOIN corp_info cp ON kp.corpinfo_id = cp.id
|
LEFT JOIN corp_info cp ON kp.jurisdiction_corpinfo_id = cp.id
|
||||||
LEFT JOIN department d ON kp.master_department_id = d.id
|
LEFT JOIN department d ON kp.master_department_id = d.id
|
||||||
WHERE kp.delete_enum = 'FALSE'
|
WHERE kp.delete_enum = 'FALSE'
|
||||||
AND kp.apply_status IN (2, 3, 4, 5, 6, 7)
|
AND kp.apply_status IN (2, 3, 4, 5, 6, 7)
|
||||||
AND kp.project_type IN ('four_new_homework', 'more_people')
|
AND kp.project_type IN ('four_new_homework', 'more_people')
|
||||||
<if test="corpinfoId != null">
|
<if test="corpinfoId != null">
|
||||||
AND kp.corpinfo_id = #{corpinfoId}
|
AND kp.jurisdiction_corpinfo_id = #{corpinfoId}
|
||||||
</if>
|
</if>
|
||||||
<if test="portArea != null">
|
<if test="portArea != null">
|
||||||
AND cp.port_area = #{portArea}
|
AND cp.port_area = #{portArea}
|
||||||
|
|
@ -635,7 +635,7 @@
|
||||||
COALESCE(penalty_stat.penaltyAmount, 0) AS penaltyAmount
|
COALESCE(penalty_stat.penaltyAmount, 0) AS penaltyAmount
|
||||||
FROM project_approval_flow paf
|
FROM project_approval_flow paf
|
||||||
LEFT JOIN project p ON paf.project_id = p.id
|
LEFT JOIN project p ON paf.project_id = p.id
|
||||||
LEFT JOIN corp_info cp ON paf.corpinfo_id = cp.id
|
LEFT JOIN corp_info cp ON paf.jurisdiction_corpinfo_id = cp.id
|
||||||
LEFT JOIN (
|
LEFT JOIN (
|
||||||
SELECT
|
SELECT
|
||||||
k.project_id,
|
k.project_id,
|
||||||
|
|
@ -675,7 +675,7 @@
|
||||||
AND p.delete_enum = 'FALSE'
|
AND p.delete_enum = 'FALSE'
|
||||||
AND p.project_status = 4
|
AND p.project_status = 4
|
||||||
<if test="corpinfoId != null">
|
<if test="corpinfoId != null">
|
||||||
AND paf.corpinfo_id = #{corpinfoId}
|
AND paf.jurisdiction_corpinfo_id = #{corpinfoId}
|
||||||
</if>
|
</if>
|
||||||
<if test="portArea != null">
|
<if test="portArea != null">
|
||||||
AND cp.port_area = #{portArea}
|
AND cp.port_area = #{portArea}
|
||||||
|
|
@ -693,13 +693,13 @@
|
||||||
COUNT(DISTINCT CASE WHEN kp.project_type = 'four_new_homework' THEN kp.id END) AS fourNewHomeworkCount,
|
COUNT(DISTINCT CASE WHEN kp.project_type = 'four_new_homework' THEN kp.id END) AS fourNewHomeworkCount,
|
||||||
COUNT(DISTINCT CASE WHEN kp.project_type = 'night_work' THEN kp.id END) AS nightWorkCount
|
COUNT(DISTINCT CASE WHEN kp.project_type = 'night_work' THEN kp.id END) AS nightWorkCount
|
||||||
FROM key_project kp
|
FROM key_project kp
|
||||||
LEFT JOIN corp_info cp ON kp.corpinfo_id = cp.id
|
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 corp_info xgfci ON kp.xgf_corpinfo_id = xgfci.id
|
||||||
WHERE kp.delete_enum = 'FALSE'
|
WHERE kp.delete_enum = 'FALSE'
|
||||||
AND kp.xgf_corpinfo_id IS NOT NULL
|
AND kp.xgf_corpinfo_id IS NOT NULL
|
||||||
AND kp.project_type IN ('more_people', 'four_new_homework', 'night_work')
|
AND kp.project_type IN ('more_people', 'four_new_homework', 'night_work')
|
||||||
<if test="corpinfoId != null">
|
<if test="corpinfoId != null">
|
||||||
AND kp.corpinfo_id = #{corpinfoId}
|
AND kp.jurisdiction_corpinfo_id = #{corpinfoId}
|
||||||
</if>
|
</if>
|
||||||
<if test="portArea != null">
|
<if test="portArea != null">
|
||||||
AND cp.port_area = #{portArea}
|
AND cp.port_area = #{portArea}
|
||||||
|
|
@ -707,5 +707,23 @@
|
||||||
GROUP BY kp.xgf_corpinfo_id, xgfci.corp_name
|
GROUP BY kp.xgf_corpinfo_id, xgfci.corp_name
|
||||||
ORDER BY xgfci.corp_order ASC, xgfci.create_time DESC
|
ORDER BY xgfci.corp_order ASC, xgfci.create_time DESC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="largeScreenInfo" resultType="com.zcloud.key.project.persistence.dataobject.project.KeyProjectLargeScreenInfoDO">
|
||||||
|
SELECT
|
||||||
|
kp.*,
|
||||||
|
jurcorp.corp_name AS jurisdictionCorpinfoName
|
||||||
|
FROM key_project kp
|
||||||
|
LEFT JOIN corp_info cp ON kp.jurisdiction_corpinfo_id = cp.id
|
||||||
|
LEFT JOIN corp_info jurcorp ON kp.jurisdiction_corpinfo_id = jurcorp.id
|
||||||
|
WHERE kp.delete_enum = 'FALSE'
|
||||||
|
AND kp.apply_status IN (1, 2, 3, 4, 5, 6, 7)
|
||||||
|
<if test="corpinfoId != null">
|
||||||
|
AND kp.jurisdiction_corpinfo_id = #{corpinfoId}
|
||||||
|
</if>
|
||||||
|
<if test="portArea != null">
|
||||||
|
AND cp.port_area = #{portArea}
|
||||||
|
</if>
|
||||||
|
ORDER BY kp.apply_status ASC, kp.create_time DESC
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue