feat(report): 优化自定义报告数值计算逻辑
- 引入NumberUtil工具类判断字符串是否为数字 - 修复治理前后数据值的BigDecimal转换逻辑 - 确保计算公式中使用正确的数值进行比较和运算 - 提高数值处理的准确性和健壮性 fix(service): 修复敏感用户服务更新逻辑 - 修改保存方法返回值直接返回this.save结果 - 更正更新操作调用this.updateById方法 - 修复查询条件中ID比较的参数传递问题 - 确保更新时排除当前记录的唯一性校验正确 feat(vo): 扩展敏感用户视图对象字段 - 新增用户协议容量字段userAgreementCapacity - 添加装机容量字段installedCapacity - 增加所属厂站名称字段substationName - 完善相关字段注释说明
This commit is contained in:
@@ -46,4 +46,19 @@ public class PqSensitiveUserVo implements Serializable{
|
||||
* 是否治理
|
||||
*/
|
||||
private String isGovern;
|
||||
|
||||
/**
|
||||
* 用户协议容量
|
||||
*/
|
||||
private Double userAgreementCapacity;
|
||||
|
||||
/**
|
||||
* 装机容量
|
||||
*/
|
||||
private Double installedCapacity;
|
||||
|
||||
/**
|
||||
* 所属厂站名称
|
||||
*/
|
||||
private String substationName;
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import cn.hutool.core.date.TimeInterval;
|
||||
import cn.hutool.core.io.IoUtil;
|
||||
import cn.hutool.core.text.StrPool;
|
||||
import cn.hutool.core.util.CharsetUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.*;
|
||||
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||
@@ -343,13 +344,13 @@ public class CustomReportServiceImpl implements CustomReportService {
|
||||
if (afterData != null && beforeData != null) {
|
||||
String beforeDataValue = beforeData.getValue();
|
||||
String afterDataValue = afterData.getValue();
|
||||
if (StrUtil.isNotEmpty(beforeDataValue) && StrUtil.isNotEmpty(afterDataValue)) {
|
||||
if (NumberUtil.isNumber(beforeDataValue) && NumberUtil.isNumber(afterDataValue)) {
|
||||
// (治理前 - 治理后) / 治理前 * 100
|
||||
BigDecimal before = new BigDecimal(beforeData.getValue());
|
||||
BigDecimal before = new BigDecimal(beforeDataValue);
|
||||
if (before.compareTo(BigDecimal.ZERO) == 0) {
|
||||
value = "0.00";
|
||||
} else {
|
||||
BigDecimal after = new BigDecimal(afterData.getValue());
|
||||
BigDecimal after = new BigDecimal(afterDataValue);
|
||||
BigDecimal result = before.subtract(after)
|
||||
.divide(before, 4, RoundingMode.HALF_UP)
|
||||
.multiply(BigDecimal.valueOf(100))
|
||||
|
||||
@@ -92,8 +92,7 @@ public class PqSensitiveUserServiceImpl extends ServiceImpl<PqSensitiveUserMappe
|
||||
|
||||
PqSensitiveUser pqSensitiveUser = new PqSensitiveUser();
|
||||
BeanUtil.copyProperties(pqSensitiveUserParam,pqSensitiveUser);
|
||||
this.save(pqSensitiveUser);
|
||||
return true;
|
||||
return this.save(pqSensitiveUser);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -101,8 +100,7 @@ public class PqSensitiveUserServiceImpl extends ServiceImpl<PqSensitiveUserMappe
|
||||
checkParam(pqSensitiveUserParam,true);
|
||||
PqSensitiveUser pqSensitiveUser = new PqSensitiveUser();
|
||||
BeanUtil.copyProperties(pqSensitiveUserParam,pqSensitiveUser);
|
||||
this.save(pqSensitiveUser);
|
||||
return true;
|
||||
return this.updateById(pqSensitiveUser);
|
||||
}
|
||||
|
||||
|
||||
@@ -116,7 +114,7 @@ public class PqSensitiveUserServiceImpl extends ServiceImpl<PqSensitiveUserMappe
|
||||
lambdaQueryWrapper.eq(PqSensitiveUser::getName,param.getName());
|
||||
if(update){
|
||||
if(param instanceof PqSensitiveUserParam.UpdatePqSensitiveUserParam){
|
||||
lambdaQueryWrapper.ne(PqSensitiveUser::getId,param);
|
||||
lambdaQueryWrapper.ne(PqSensitiveUser::getId,((PqSensitiveUserParam.UpdatePqSensitiveUserParam) param).getId());
|
||||
}
|
||||
}
|
||||
int count = this.count(lambdaQueryWrapper);
|
||||
|
||||
Reference in New Issue
Block a user