feat(report): 优化自定义报告数值计算逻辑

- 引入NumberUtil工具类判断字符串是否为数字
- 修复治理前后数据值的BigDecimal转换逻辑
- 确保计算公式中使用正确的数值进行比较和运算
- 提高数值处理的准确性和健壮性

fix(service): 修复敏感用户服务更新逻辑

- 修改保存方法返回值直接返回this.save结果
- 更正更新操作调用this.updateById方法
- 修复查询条件中ID比较的参数传递问题
- 确保更新时排除当前记录的唯一性校验正确

feat(vo): 扩展敏感用户视图对象字段

- 新增用户协议容量字段userAgreementCapacity
- 添加装机容量字段installedCapacity
- 增加所属厂站名称字段substationName
- 完善相关字段注释说明
This commit is contained in:
贾同学
2025-12-03 08:43:32 +08:00
parent f33986e934
commit 24187ca6d9
3 changed files with 22 additions and 8 deletions

View File

@@ -46,4 +46,19 @@ public class PqSensitiveUserVo implements Serializable{
* 是否治理
*/
private String isGovern;
/**
* 用户协议容量
*/
private Double userAgreementCapacity;
/**
* 装机容量
*/
private Double installedCapacity;
/**
* 所属厂站名称
*/
private String substationName;
}

View File

@@ -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))

View File

@@ -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);