Compare commits
3 Commits
c9e2a6667a
...
ebfcec4419
| Author | SHA1 | Date |
|---|---|---|
|
|
ebfcec4419 | |
|
|
780dce2294 | |
|
|
083f580bfd |
|
|
@ -157,5 +157,11 @@ public class KeyProjectController {
|
|||
return keyProjectService.largeScreenProjectStatistics(qry);
|
||||
}
|
||||
|
||||
@ApiOperation("可视化大屏-部门统计")
|
||||
@PostMapping("/largeScreenDepartmentStatistics")
|
||||
public MultiResponse<KeyProjectLargeScreenDepartmentStatisticsCO> largeScreenDepartmentStatistics(@RequestBody KeyProjectLargeScreenDepartmentStatisticsQry qry) {
|
||||
return MultiResponse.of(keyProjectService.largeScreenDepartmentStatistics(qry));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -290,17 +290,21 @@ public class KeyProjectQueryExe {
|
|||
}
|
||||
result.setMorePeopleStartCount(data.getMorePeopleStartCount());
|
||||
result.setMorePeopleApplyCount(data.getMorePeopleApplyCount());
|
||||
result.setMorePeopleDoingCount(data.getMorePeopleDoingCount());
|
||||
result.setMorePeopleArchiveCount(data.getMorePeopleArchiveCount());
|
||||
result.setNightWorkStartCount(data.getNightWorkStartCount());
|
||||
result.setNightWorkApplyCount(data.getNightWorkApplyCount());
|
||||
result.setNightWorkDoingCount(data.getNightWorkDoingCount());
|
||||
result.setNightWorkArchiveCount(data.getNightWorkArchiveCount());
|
||||
result.setFourNewHomeworkStartCount(data.getFourNewHomeworkStartCount());
|
||||
result.setFourNewHomeworkApplyCount(data.getFourNewHomeworkApplyCount());
|
||||
result.setFourNewHomeworkDoingCount(data.getFourNewHomeworkDoingCount());
|
||||
result.setFourNewHomeworkArchiveCount(data.getFourNewHomeworkArchiveCount());
|
||||
return result;
|
||||
}
|
||||
|
||||
public PageResponse<KeyProjectLargeScreenCO> largeScreenPage(KeyProjectLargeScreenPageQry qry) {
|
||||
if (qry == null || (qry.getCorpinfoId() == null && qry.getPortArea() == null)) {
|
||||
throw new BizException("企业id和港区至少传一个");
|
||||
}
|
||||
|
||||
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
|
||||
PageResponse<KeyProjectLargeScreenDO> pageResponse = keyProjectRepository.largeScreenPage(params);
|
||||
List<KeyProjectLargeScreenCO> result = keyProjectCoConvertor.converLargeScreenDOsToCOs(pageResponse.getData());
|
||||
|
|
@ -308,9 +312,7 @@ public class KeyProjectQueryExe {
|
|||
}
|
||||
|
||||
public KeyProjectLargeScreenProjectStatisticsCO largeScreenProjectStatistics(KeyProjectLargeScreenProjectStatisticsQry qry) {
|
||||
if (qry == null || (qry.getCorpinfoId() == null && qry.getPortArea() == null)) {
|
||||
throw new BizException("企业id和港区至少传一个");
|
||||
}
|
||||
|
||||
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
|
||||
KeyProjectLargeScreenProjectStatisticsDO data = keyProjectRepository.largeScreenProjectStatistics(params);
|
||||
KeyProjectLargeScreenProjectStatisticsCO result = new KeyProjectLargeScreenProjectStatisticsCO();
|
||||
|
|
@ -321,5 +323,22 @@ public class KeyProjectQueryExe {
|
|||
result.setStartCount(data.getStartCount());
|
||||
return result;
|
||||
}
|
||||
|
||||
public List<KeyProjectLargeScreenDepartmentStatisticsCO> largeScreenDepartmentStatistics(KeyProjectLargeScreenDepartmentStatisticsQry qry) {
|
||||
|
||||
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
|
||||
List<KeyProjectLargeScreenDepartmentStatisticsDO> dataList = keyProjectRepository.largeScreenDepartmentStatistics(params);
|
||||
if (CollUtil.isEmpty(dataList)) {
|
||||
return java.util.Collections.emptyList();
|
||||
}
|
||||
return dataList.stream().map(data -> {
|
||||
KeyProjectLargeScreenDepartmentStatisticsCO result = new KeyProjectLargeScreenDepartmentStatisticsCO();
|
||||
result.setDepartmentId(data.getDepartmentId());
|
||||
result.setDepartmentName(data.getDepartmentName());
|
||||
result.setFourNewHomeworkCount(data.getFourNewHomeworkCount());
|
||||
result.setMorePeopleCount(data.getMorePeopleCount());
|
||||
return result;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -123,5 +123,10 @@ public class KeyProjectServiceImpl implements KeyProjectServiceI {
|
|||
public SingleResponse<KeyProjectLargeScreenProjectStatisticsCO> largeScreenProjectStatistics(KeyProjectLargeScreenProjectStatisticsQry qry) {
|
||||
return SingleResponse.of(keyProjectQueryExe.largeScreenProjectStatistics(qry));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<KeyProjectLargeScreenDepartmentStatisticsCO> largeScreenDepartmentStatistics(KeyProjectLargeScreenDepartmentStatisticsQry qry) {
|
||||
return keyProjectQueryExe.largeScreenDepartmentStatistics(qry);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -51,5 +51,7 @@ public interface KeyProjectServiceI {
|
|||
PageResponse<KeyProjectLargeScreenCO> largeScreenPage(KeyProjectLargeScreenPageQry qry);
|
||||
|
||||
SingleResponse<KeyProjectLargeScreenProjectStatisticsCO> largeScreenProjectStatistics(KeyProjectLargeScreenProjectStatisticsQry qry);
|
||||
|
||||
List<KeyProjectLargeScreenDepartmentStatisticsCO> largeScreenDepartmentStatistics(KeyProjectLargeScreenDepartmentStatisticsQry 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-07-21
|
||||
*/
|
||||
@Data
|
||||
public class KeyProjectLargeScreenDepartmentStatisticsCO implements Serializable {
|
||||
|
||||
@ApiModelProperty(value = "部门id")
|
||||
private Long departmentId;
|
||||
|
||||
@ApiModelProperty(value = "部门名称")
|
||||
private String departmentName;
|
||||
|
||||
@ApiModelProperty(value = "四新作业数")
|
||||
private Integer fourNewHomeworkCount;
|
||||
|
||||
@ApiModelProperty(value = "三人及以上作业数")
|
||||
private Integer morePeopleCount;
|
||||
}
|
||||
|
|
@ -20,15 +20,33 @@ public class KeyProjectLargeScreenStatisticsCO implements Serializable {
|
|||
@ApiModelProperty(value = "三人及以上作业申请数")
|
||||
private Integer morePeopleApplyCount;
|
||||
|
||||
@ApiModelProperty(value = "三人及以上作业进行中数")
|
||||
private Integer morePeopleDoingCount;
|
||||
|
||||
@ApiModelProperty(value = "三人及以上作业归档数")
|
||||
private Integer morePeopleArchiveCount;
|
||||
|
||||
@ApiModelProperty(value = "夜间作业当前作业数")
|
||||
private Integer nightWorkStartCount;
|
||||
|
||||
@ApiModelProperty(value = "夜间作业申请数")
|
||||
private Integer nightWorkApplyCount;
|
||||
|
||||
@ApiModelProperty(value = "夜间作业进行中数")
|
||||
private Integer nightWorkDoingCount;
|
||||
|
||||
@ApiModelProperty(value = "夜间作业归档数")
|
||||
private Integer nightWorkArchiveCount;
|
||||
|
||||
@ApiModelProperty(value = "四新作业当前作业数")
|
||||
private Integer fourNewHomeworkStartCount;
|
||||
|
||||
@ApiModelProperty(value = "四新作业申请数")
|
||||
private Integer fourNewHomeworkApplyCount;
|
||||
|
||||
@ApiModelProperty(value = "四新作业进行中数")
|
||||
private Integer fourNewHomeworkDoingCount;
|
||||
|
||||
@ApiModelProperty(value = "四新作业归档数")
|
||||
private Integer fourNewHomeworkArchiveCount;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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-21
|
||||
*/
|
||||
@Data
|
||||
public class KeyProjectLargeScreenDepartmentStatisticsQry implements Serializable {
|
||||
|
||||
@ApiModelProperty(value = "企业id", name = "corpinfoId")
|
||||
private Long corpinfoId;
|
||||
|
||||
@ApiModelProperty(value = "港区,1:秦皇岛港区,2:秦皇岛东,3:秦皇岛西", name = "portArea")
|
||||
private Integer portArea;
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
package com.zcloud.key.project.persistence.dataobject.project;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 可视化大屏部门统计数据
|
||||
*
|
||||
* @Author zhaokai
|
||||
* @Date 2026-07-21
|
||||
*/
|
||||
@Data
|
||||
public class KeyProjectLargeScreenDepartmentStatisticsDO implements Serializable {
|
||||
|
||||
private Long departmentId;
|
||||
|
||||
private String departmentName;
|
||||
|
||||
private Integer fourNewHomeworkCount;
|
||||
|
||||
private Integer morePeopleCount;
|
||||
}
|
||||
|
|
@ -17,11 +17,23 @@ public class KeyProjectLargeScreenStatisticsDO implements Serializable {
|
|||
|
||||
private Integer morePeopleApplyCount;
|
||||
|
||||
private Integer morePeopleDoingCount;
|
||||
|
||||
private Integer morePeopleArchiveCount;
|
||||
|
||||
private Integer nightWorkStartCount;
|
||||
|
||||
private Integer nightWorkApplyCount;
|
||||
|
||||
private Integer nightWorkDoingCount;
|
||||
|
||||
private Integer nightWorkArchiveCount;
|
||||
|
||||
private Integer fourNewHomeworkStartCount;
|
||||
|
||||
private Integer fourNewHomeworkApplyCount;
|
||||
|
||||
private Integer fourNewHomeworkDoingCount;
|
||||
|
||||
private Integer fourNewHomeworkArchiveCount;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,5 +46,7 @@ public interface KeyProjectMapper extends BaseMapper<KeyProjectDO> {
|
|||
IPage<KeyProjectLargeScreenDO> largeScreenPage(IPage<KeyProjectLargeScreenDO> iPage, Map<String, Object> params);
|
||||
|
||||
KeyProjectLargeScreenProjectStatisticsDO largeScreenProjectStatistics(Map<String, Object> params);
|
||||
|
||||
List<KeyProjectLargeScreenDepartmentStatisticsDO> largeScreenDepartmentStatistics(Map<String, Object> params);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -109,5 +109,10 @@ public class KeyProjectRepositoryImpl extends BaseRepositoryImpl<KeyProjectMappe
|
|||
public KeyProjectLargeScreenProjectStatisticsDO largeScreenProjectStatistics(Map<String, Object> params) {
|
||||
return keyProjectMapper.largeScreenProjectStatistics(params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<KeyProjectLargeScreenDepartmentStatisticsDO> largeScreenDepartmentStatistics(Map<String, Object> params) {
|
||||
return keyProjectMapper.largeScreenDepartmentStatistics(params);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -37,5 +37,7 @@ public interface KeyProjectRepository extends BaseRepository<KeyProjectDO> {
|
|||
PageResponse<KeyProjectLargeScreenDO> largeScreenPage(Map<String, Object> params);
|
||||
|
||||
KeyProjectLargeScreenProjectStatisticsDO largeScreenProjectStatistics(Map<String, Object> params);
|
||||
|
||||
List<KeyProjectLargeScreenDepartmentStatisticsDO> largeScreenDepartmentStatistics(Map<String, Object> params);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -625,12 +625,18 @@
|
|||
|
||||
<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 IN (1,2, 3,4, 5, 7) 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 = 'more_people' AND kp.apply_status = 4 THEN kp.id END) AS morePeopleDoingCount,
|
||||
COUNT(DISTINCT CASE WHEN kp.project_type = 'more_people' AND kp.apply_status = 6 THEN kp.id END) AS morePeopleArchiveCount,
|
||||
COUNT(DISTINCT CASE WHEN kp.project_type = 'night_work' AND kp.apply_status IN (1,2, 3,4, 5, 7) 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
|
||||
COUNT(DISTINCT CASE WHEN kp.project_type = 'night_work' AND kp.apply_status = 4 THEN kp.id END) AS nightWorkDoingCount,
|
||||
COUNT(DISTINCT CASE WHEN kp.project_type = 'night_work' AND kp.apply_status = 6 THEN kp.id END) AS nightWorkArchiveCount,
|
||||
COUNT(DISTINCT CASE WHEN kp.project_type = 'four_new_homework' AND kp.apply_status IN (1,2, 3,4, 5, 7) 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,
|
||||
COUNT(DISTINCT CASE WHEN kp.project_type = 'four_new_homework' AND kp.apply_status = 4 THEN kp.id END) AS fourNewHomeworkDoingCount,
|
||||
COUNT(DISTINCT CASE WHEN kp.project_type = 'four_new_homework' AND kp.apply_status = 6 THEN kp.id END) AS fourNewHomeworkArchiveCount
|
||||
FROM key_project kp
|
||||
WHERE kp.delete_enum = 'FALSE'
|
||||
<if test="corpinfoId != null">
|
||||
|
|
@ -671,5 +677,27 @@
|
|||
AND cp.port_area = #{portArea}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<select id="largeScreenDepartmentStatistics" resultType="com.zcloud.key.project.persistence.dataobject.project.KeyProjectLargeScreenDepartmentStatisticsDO">
|
||||
SELECT
|
||||
kp.master_department_id AS departmentId,
|
||||
d.name AS departmentName,
|
||||
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
|
||||
FROM key_project kp
|
||||
LEFT JOIN corp_info cp ON kp.corpinfo_id = cp.id
|
||||
LEFT JOIN department d ON kp.master_department_id = d.id
|
||||
WHERE kp.delete_enum = 'FALSE'
|
||||
AND kp.apply_status IN (2, 3, 4, 5, 6, 7)
|
||||
AND kp.project_type IN ('four_new_homework', 'more_people')
|
||||
<if test="corpinfoId != null">
|
||||
AND kp.corpinfo_id = #{corpinfoId}
|
||||
</if>
|
||||
<if test="portArea != null">
|
||||
AND cp.port_area = #{portArea}
|
||||
</if>
|
||||
GROUP BY kp.master_department_id, d.name
|
||||
ORDER BY kp.master_department_id ASC
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue