工程质量分析
This commit is contained in:
parent
590682dd08
commit
18c589b1fc
|
|
@ -30,4 +30,6 @@ public class ScreenParamDto extends ScreenDto{
|
||||||
|
|
||||||
private String teamName;
|
private String teamName;
|
||||||
|
|
||||||
|
private String projectName;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,10 @@
|
||||||
package com.securitycontrol.entity.screen.vo;
|
package com.securitycontrol.entity.screen.vo;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author:liang.chao
|
* @Author:liang.chao
|
||||||
|
|
@ -13,5 +17,16 @@ public class ProjectQualityVo {
|
||||||
private String projectAddress;
|
private String projectAddress;
|
||||||
private String contractorName;
|
private String contractorName;
|
||||||
private String qualityLevel;
|
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 org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
|
import java.text.NumberFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -55,7 +59,37 @@ public class DataAnalysisServiceImpl implements DataAnalysisService {
|
||||||
public List<ProjectQualityVo> getEngqualityAnalysis(ScreenParamDto dto) {
|
public List<ProjectQualityVo> getEngqualityAnalysis(ScreenParamDto dto) {
|
||||||
List<ProjectQualityVo> list = null;
|
List<ProjectQualityVo> list = null;
|
||||||
try {
|
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);
|
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) {
|
} catch (Exception e) {
|
||||||
log.error(e.toString(),e);
|
log.error(e.toString(),e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,16 @@
|
||||||
project_address as projectAddress,
|
project_address as projectAddress,
|
||||||
contractor_name as contractorName,
|
contractor_name as contractorName,
|
||||||
case when quality_level = 1 then '初级' when quality_level = 2 then '中级' else '高级' end as qualityLevel,
|
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
|
from tb_project_quality
|
||||||
|
where 1 = 1
|
||||||
|
<if test="projectName != null and projectName != ''">
|
||||||
|
and projectName = #{projectName}
|
||||||
|
</if>
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
Loading…
Reference in New Issue