工程质量分析
This commit is contained in:
parent
590682dd08
commit
18c589b1fc
|
|
@ -30,4 +30,6 @@ public class ScreenParamDto extends ScreenDto{
|
|||
|
||||
private String teamName;
|
||||
|
||||
private String projectName;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<ProjectQualityVo> getEngqualityAnalysis(ScreenParamDto dto) {
|
||||
List<ProjectQualityVo> 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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
<if test="projectName != null and projectName != ''">
|
||||
and projectName = #{projectName}
|
||||
</if>
|
||||
</select>
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue