diff --git a/web-adapter/src/main/java/com/zcloud/domain/web/ProjectTaskController.java b/web-adapter/src/main/java/com/zcloud/domain/web/ProjectTaskController.java index ebceff1..8dea10f 100644 --- a/web-adapter/src/main/java/com/zcloud/domain/web/ProjectTaskController.java +++ b/web-adapter/src/main/java/com/zcloud/domain/web/ProjectTaskController.java @@ -81,10 +81,10 @@ public class ProjectTaskController { projectTaskService.edit(projectTaskUpdateCmd); return SingleResponse.buildSuccess(); } - @ApiOperation("可视化大屏-课题评分企业统计") + @ApiOperation("可视化大屏-课题评分领域统计") @GetMapping("/scoreCount") - public MultiResponse countScoreByCorp() { - return MultiResponse.of(projectTaskService.countScoreByCorp()); + public MultiResponse countScoreByDomain() { + return MultiResponse.of(projectTaskService.countScoreByDomain()); } } diff --git a/web-app/src/main/java/com/zcloud/domain/command/query/ProjectTaskQueryExe.java b/web-app/src/main/java/com/zcloud/domain/command/query/ProjectTaskQueryExe.java index 0a73e6e..a758e7e 100644 --- a/web-app/src/main/java/com/zcloud/domain/command/query/ProjectTaskQueryExe.java +++ b/web-app/src/main/java/com/zcloud/domain/command/query/ProjectTaskQueryExe.java @@ -17,11 +17,9 @@ import com.zcloud.domain.persistence.dataobject.ProjectTaskScoreCountDO; import com.zcloud.domain.persistence.dataobject.ProjectTaskScoreInfoDO; import com.zcloud.domain.persistence.repository.*; import com.zcloud.gbscommon.utils.PageQueryHelper; -import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import org.springframework.stereotype.Component; -import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -44,6 +42,13 @@ public class ProjectTaskQueryExe { private final ProjectTaskGroupUserRepository projectTaskGroupUserRepository; private final ProjectTaskGroupUserCoConvertor projectTaskGroupUserCoConvertor; private final CorpInfoRepository corpInfoRepository; + private static final List SCORE_COUNT_DOMAIN_LIST = java.util.Arrays.asList( + buildScoreCount("equipment_safety", "设备、工具具安全专项领域"), + buildScoreCount("facility_safety", "设施安全专项领域"), + buildScoreCount("Labor_related_parties", "劳务相关方安全专项领域"), + buildScoreCount("traffic_safety", "交通、消防、口门安全专项领域"), + buildScoreCount("production_safety", "生产作业、船舶靠离泊安全专项领域") + ); /** * 分页 @@ -134,19 +139,29 @@ public class ProjectTaskQueryExe { return projectTaskDetailsCO; } - public List countScoreByCorp() { - List countList = projectTaskRepository.countScoreByCorp(); - if(CollUtil.isEmpty(countList)){ - return null; - } - return countList.stream().map(item -> { - ProjectTaskScoreCountCO countCO = new ProjectTaskScoreCountCO(); - countCO.setCorpinfoId(item.getCorpinfoId()); - countCO.setCorpinfoName(item.getCorpinfoName()); - countCO.setNoScoreCount(item.getNoScoreCount()); - countCO.setScoredCount(item.getScoredCount()); + public List countScoreByDomain() { + Map countMap = projectTaskRepository.countScoreByDomain() + .stream() + .collect(java.util.stream.Collectors.toMap(ProjectTaskScoreCountDO::getDomainType, item -> item, (first, second) -> first)); + return SCORE_COUNT_DOMAIN_LIST.stream().map(item -> { + ProjectTaskScoreCountDO countDO = countMap.get(item.getDomainType()); + ProjectTaskScoreCountCO countCO = buildScoreCount(item.getDomainType(), item.getDomainTypeName()); + if (countDO != null) { + countCO.setNoScoreCount(countDO.getNoScoreCount()); + countCO.setScoredCount(countDO.getScoredCount()); + } return countCO; - }).collect(java.util.stream.Collectors.toList()); + }).sorted(java.util.Comparator.comparing(ProjectTaskScoreCountCO::getNoScoreCount).reversed()) + .collect(java.util.stream.Collectors.toList()); + } + + private static ProjectTaskScoreCountCO buildScoreCount(String domainType, String domainTypeName) { + ProjectTaskScoreCountCO countCO = new ProjectTaskScoreCountCO(); + countCO.setDomainType(domainType); + countCO.setDomainTypeName(domainTypeName); + countCO.setNoScoreCount(0L); + countCO.setScoredCount(0L); + return countCO; } private boolean checkScorePermission(ProjectTaskScoreInfoCO scoreInfo) { diff --git a/web-app/src/main/java/com/zcloud/domain/service/ProjectTaskServiceImpl.java b/web-app/src/main/java/com/zcloud/domain/service/ProjectTaskServiceImpl.java index b265a91..382abda 100644 --- a/web-app/src/main/java/com/zcloud/domain/service/ProjectTaskServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/domain/service/ProjectTaskServiceImpl.java @@ -66,8 +66,8 @@ public class ProjectTaskServiceImpl implements ProjectTaskServiceI { } @Override - public List countScoreByCorp() { - return projectTaskQueryExe.countScoreByCorp(); + public List countScoreByDomain() { + return projectTaskQueryExe.countScoreByDomain(); } @Override diff --git a/web-client/src/main/java/com/zcloud/domain/api/ProjectTaskServiceI.java b/web-client/src/main/java/com/zcloud/domain/api/ProjectTaskServiceI.java index b22baa2..8e7d387 100644 --- a/web-client/src/main/java/com/zcloud/domain/api/ProjectTaskServiceI.java +++ b/web-client/src/main/java/com/zcloud/domain/api/ProjectTaskServiceI.java @@ -30,7 +30,7 @@ public interface ProjectTaskServiceI { ProjectTaskDetailsCO getInfoById(Long id); - List countScoreByCorp(); + List countScoreByDomain(); void updatExecuteStatusJob(); } diff --git a/web-client/src/main/java/com/zcloud/domain/dto/clientobject/ProjectTaskScoreCountCO.java b/web-client/src/main/java/com/zcloud/domain/dto/clientobject/ProjectTaskScoreCountCO.java index 5cc9889..c801c12 100644 --- a/web-client/src/main/java/com/zcloud/domain/dto/clientobject/ProjectTaskScoreCountCO.java +++ b/web-client/src/main/java/com/zcloud/domain/dto/clientobject/ProjectTaskScoreCountCO.java @@ -13,11 +13,11 @@ import java.io.Serializable; */ @Data public class ProjectTaskScoreCountCO implements Serializable { - @ApiModelProperty(value = "企业id") - private Long corpinfoId; + @ApiModelProperty(value = "领域类型") + private String domainType; - @ApiModelProperty(value = "企业名称") - private String corpinfoName; + @ApiModelProperty(value = "领域类型名称") + private String domainTypeName; @ApiModelProperty(value = "未评分数") private Long noScoreCount; diff --git a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/dataobject/ProjectTaskScoreCountDO.java b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/dataobject/ProjectTaskScoreCountDO.java index bf73d96..6580f03 100644 --- a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/dataobject/ProjectTaskScoreCountDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/dataobject/ProjectTaskScoreCountDO.java @@ -10,9 +10,9 @@ import lombok.Data; */ @Data public class ProjectTaskScoreCountDO { - private Long corpinfoId; + private String domainType; - private String corpinfoName; + private String domainTypeName; private Long noScoreCount; diff --git a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/mapper/ProjectTaskMapper.java b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/mapper/ProjectTaskMapper.java index 97edcc3..c58256c 100644 --- a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/mapper/ProjectTaskMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/mapper/ProjectTaskMapper.java @@ -32,6 +32,6 @@ public interface ProjectTaskMapper extends BaseMapper { void updateExecuteStatusBatchById(Integer code, List idList); - List countScoreByCorp(); + List countScoreByDomain(); } diff --git a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/ProjectTaskRepository.java b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/ProjectTaskRepository.java index e56b44b..a6aaf7f 100644 --- a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/ProjectTaskRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/ProjectTaskRepository.java @@ -32,7 +32,7 @@ public interface ProjectTaskRepository extends BaseRepository { ProjectTaskDO getInfoByTaskId(@NotEmpty(message = "课题任务不能为空") String projectTaskId); - List countScoreByCorp(); + List countScoreByDomain(); List getNoFinishByDomainDepartmentId(List domainDepartmentIds); diff --git a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/impl/ProjectTaskRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/impl/ProjectTaskRepositoryImpl.java index 9413597..a917eaa 100644 --- a/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/impl/ProjectTaskRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/domain/persistence/repository/impl/ProjectTaskRepositoryImpl.java @@ -99,8 +99,8 @@ public class ProjectTaskRepositoryImpl extends BaseRepositoryImpl countScoreByCorp() { - return projectTaskMapper.countScoreByCorp(); + public List countScoreByDomain() { + return projectTaskMapper.countScoreByDomain(); } @Override diff --git a/web-infrastructure/src/main/resources/mapper/ProjectTaskMapper.xml b/web-infrastructure/src/main/resources/mapper/ProjectTaskMapper.xml index 18f3996..74ee480 100644 --- a/web-infrastructure/src/main/resources/mapper/ProjectTaskMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/ProjectTaskMapper.xml @@ -54,17 +54,16 @@ left join department d on d.id = dd.master_department_id where pt.delete_enum = 'false' and pt.id=#{id} - select - pt.execute_corpinfo_id as corpinfoId, - c.corp_name as corpinfoName, + pt.domain_type as domainType, + pt.domain_type_name as domainTypeName, sum(case when pt.score_status in (0, 1) then 1 else 0 end) as noScoreCount, sum(case when pt.score_status = 2 then 1 else 0 end) as scoredCount from project_task pt - inner join corp_info c on c.id = pt.execute_corpinfo_id where pt.delete_enum = 'false' - group by pt.execute_corpinfo_id, c.corp_name - order by c.corp_name + and pt.domain_type in ('equipment_safety', 'facility_safety', 'Labor_related_parties', 'traffic_safety', 'production_safety') + group by pt.domain_type, pt.domain_type_name update project_task set score_status = #{code}