From 18c589b1fc6eb57360b4c901f8697b681a4462f1 Mon Sep 17 00:00:00 2001 From: "liang.chao" <1360241448@qq.com> Date: Thu, 24 Jul 2025 08:58:42 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=B7=A5=E7=A8=8B=E8=B4=A8=E9=87=8F?= =?UTF-8?q?=E5=88=86=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/screen/dto/ScreenParamDto.java | 2 ++ .../entity/screen/vo/ProjectQualityVo.java | 17 +++++++++- .../service/impl/DataAnalysisServiceImpl.java | 34 +++++++++++++++++++ .../resources/mapper/DataAnalysisMapper.xml | 11 +++++- 4 files changed, 62 insertions(+), 2 deletions(-) diff --git a/securitycontrol-commons/securitycontrol-commons-entity/src/main/java/com/securitycontrol/entity/screen/dto/ScreenParamDto.java b/securitycontrol-commons/securitycontrol-commons-entity/src/main/java/com/securitycontrol/entity/screen/dto/ScreenParamDto.java index 35bbf04..6d61f3c 100644 --- a/securitycontrol-commons/securitycontrol-commons-entity/src/main/java/com/securitycontrol/entity/screen/dto/ScreenParamDto.java +++ b/securitycontrol-commons/securitycontrol-commons-entity/src/main/java/com/securitycontrol/entity/screen/dto/ScreenParamDto.java @@ -30,4 +30,6 @@ public class ScreenParamDto extends ScreenDto{ private String teamName; + private String projectName; + } diff --git a/securitycontrol-commons/securitycontrol-commons-entity/src/main/java/com/securitycontrol/entity/screen/vo/ProjectQualityVo.java b/securitycontrol-commons/securitycontrol-commons-entity/src/main/java/com/securitycontrol/entity/screen/vo/ProjectQualityVo.java index d7073f1..7c5106c 100644 --- a/securitycontrol-commons/securitycontrol-commons-entity/src/main/java/com/securitycontrol/entity/screen/vo/ProjectQualityVo.java +++ b/securitycontrol-commons/securitycontrol-commons-entity/src/main/java/com/securitycontrol/entity/screen/vo/ProjectQualityVo.java @@ -1,6 +1,10 @@ package com.securitycontrol.entity.screen.vo; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; /** * @Author:liang.chao @@ -13,5 +17,16 @@ public class ProjectQualityVo { private String projectAddress; private String contractorName; private String qualityLevel; - private String isContract; + private String projectManager; + private String team; + private String startTime; + private BigDecimal checkNum; + private BigDecimal passNum; + // 得分 + private BigDecimal score; + // 合格率 + private String passRate; + // 不合格率 + private String noPassRate; + private String unqualifiedItems; } diff --git a/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/service/impl/DataAnalysisServiceImpl.java b/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/service/impl/DataAnalysisServiceImpl.java index 8bca698..ab52933 100644 --- a/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/service/impl/DataAnalysisServiceImpl.java +++ b/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/service/impl/DataAnalysisServiceImpl.java @@ -11,8 +11,12 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.text.NumberFormat; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import java.util.Optional; /** @@ -55,7 +59,37 @@ public class DataAnalysisServiceImpl implements DataAnalysisService { public List getEngqualityAnalysis(ScreenParamDto dto) { List list = null; try { + if (dto.getTypeCode() == 1) { + dto.setProjectName("安徽淮北凌云220kv变电站新建工程"); + } else if (dto.getTypeCode() == 2) { + dto.setProjectName("淮北红枫110kV变电站新建工程"); + } list = Optional.ofNullable(mapper.getEngqualityAnalysis(dto)).orElseGet(ArrayList::new); + for (ProjectQualityVo projectQualityVo : list) { + // 避免除不尽,设置精度为 4 位小数,四舍五入 + BigDecimal result = projectQualityVo.getPassNum().divide(projectQualityVo.getCheckNum(), 4, RoundingMode.HALF_UP); + // 转换为百分制分数(乘以 100) + BigDecimal score = result.multiply(new BigDecimal("100")); + + //保留0位小数,变成整数分 + BigDecimal integerScore = score.setScale(0, RoundingMode.HALF_UP); + + // 转换为百分比格式(自动 ×100 并加上 %) + NumberFormat percentFormat = NumberFormat.getPercentInstance(Locale.getDefault()); + // 最多保留两位小数 + percentFormat.setMaximumFractionDigits(2); + + String percentage = percentFormat.format(result.doubleValue()); + // 合格率 + projectQualityVo.setPassRate(percentage); + + // 不合格率 + BigDecimal failRate = BigDecimal.ONE.subtract(result); + String failRateStr = percentFormat.format(failRate.doubleValue()); + projectQualityVo.setNoPassRate(failRateStr); + // 得分 + projectQualityVo.setScore(integerScore); + } } catch (Exception e) { log.error(e.toString(),e); } diff --git a/securitycontrol-model/securitycontrol-screen/src/main/resources/mapper/DataAnalysisMapper.xml b/securitycontrol-model/securitycontrol-screen/src/main/resources/mapper/DataAnalysisMapper.xml index eb3a12d..b41d43a 100644 --- a/securitycontrol-model/securitycontrol-screen/src/main/resources/mapper/DataAnalysisMapper.xml +++ b/securitycontrol-model/securitycontrol-screen/src/main/resources/mapper/DataAnalysisMapper.xml @@ -39,7 +39,16 @@ project_address as projectAddress, contractor_name as contractorName, case when quality_level = 1 then '初级' when quality_level = 2 then '中级' else '高级' end as qualityLevel, - case when is_contract = 1 then '是' else '否' end as isContract + project_manager as projectManager, + team, + start_time as startTime, + check_num as checkNum, + pass_num as passNum, + unqualified_items as unqualifiedItems from tb_project_quality + where 1 = 1 + + and projectName = #{projectName} + \ No newline at end of file From 0b9589ba83464d35e7f43d6151fa2aec1637b61e Mon Sep 17 00:00:00 2001 From: sxu <602087911@qq.com> Date: Thu, 24 Jul 2025 09:36:11 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E8=BF=9B=E5=BA=A6?= =?UTF-8?q?=E5=88=86=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../screen/domain/ProjectProgressNew.java | 4 ++++ .../main/resources/mapper/ProjectProgressNewMapper.xml | 10 +++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/domain/ProjectProgressNew.java b/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/domain/ProjectProgressNew.java index 54ef82f..c14b865 100644 --- a/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/domain/ProjectProgressNew.java +++ b/securitycontrol-model/securitycontrol-screen/src/main/java/com/securitycontrol/screen/domain/ProjectProgressNew.java @@ -82,6 +82,10 @@ public class ProjectProgressNew extends BaseEntity { /** 关键路径任务标识(是 / 否) */ private String keyPathFlag; + private String delayStatus; + + private String delayPolicy; + private String month; private String monthValue; diff --git a/securitycontrol-model/securitycontrol-screen/src/main/resources/mapper/ProjectProgressNewMapper.xml b/securitycontrol-model/securitycontrol-screen/src/main/resources/mapper/ProjectProgressNewMapper.xml index b55f972..837c4ca 100644 --- a/securitycontrol-model/securitycontrol-screen/src/main/resources/mapper/ProjectProgressNewMapper.xml +++ b/securitycontrol-model/securitycontrol-screen/src/main/resources/mapper/ProjectProgressNewMapper.xml @@ -19,6 +19,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + @@ -26,7 +28,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, project_id, project_name, task_code, task_name, plan_start_time, plan_end_time, actual_start_time, actual_end_time, process_diff, total_effort, complete_effort, delay_actor, resource_match_status, key_path_flag, create_by, create_time, update_by, update_time from tb_project_progress_new + select id, project_id, project_name, task_code, task_name, plan_start_time, + plan_end_time, actual_start_time, actual_end_time, process_diff, total_effort, + complete_effort, delay_actor, resource_match_status, key_path_flag, + create_by, create_time, update_by, update_time, delay_status, delay_policy + from tb_project_progress_new