refactor(oa): 优化日趋势数据处理
- 增加空数据处理:当源数据为空或无记录时,自动生成近7天的默认数据 - 完善数据转换:对value值进行空值处理,若无值则默认为0
This commit is contained in:
@@ -144,6 +144,20 @@ public class GearDashboardServiceImpl implements IGearDashboardService {
|
|||||||
List<DailyTrendVO> trends = new ArrayList<>();
|
List<DailyTrendVO> trends = new ArrayList<>();
|
||||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM-dd");
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM-dd");
|
||||||
|
|
||||||
|
// 如果数据为空或没有元素,则返回包含7天默认数据的列表
|
||||||
|
if (data == null || data.isEmpty()) {
|
||||||
|
// 创建近7天的默认数据
|
||||||
|
for (int i = 6; i >= 0; i--) {
|
||||||
|
DailyTrendVO trend = new DailyTrendVO();
|
||||||
|
LocalDate date = LocalDate.now().minusDays(i);
|
||||||
|
trend.setDate(date.format(formatter));
|
||||||
|
trend.setLabel(trend.getDate());
|
||||||
|
trend.setValue(BigDecimal.ZERO);
|
||||||
|
trends.add(trend);
|
||||||
|
}
|
||||||
|
return trends;
|
||||||
|
}
|
||||||
|
|
||||||
for (Map<String, Object> item : data) {
|
for (Map<String, Object> item : data) {
|
||||||
DailyTrendVO trend = new DailyTrendVO();
|
DailyTrendVO trend = new DailyTrendVO();
|
||||||
|
|
||||||
@@ -163,6 +177,9 @@ public class GearDashboardServiceImpl implements IGearDashboardService {
|
|||||||
trend.setValue(new BigDecimal((Integer) valueObj));
|
trend.setValue(new BigDecimal((Integer) valueObj));
|
||||||
} else if (valueObj instanceof Long) {
|
} else if (valueObj instanceof Long) {
|
||||||
trend.setValue(new BigDecimal((Long) valueObj));
|
trend.setValue(new BigDecimal((Long) valueObj));
|
||||||
|
} else {
|
||||||
|
// 如果没有值,则设置为0
|
||||||
|
trend.setValue(BigDecimal.ZERO);
|
||||||
}
|
}
|
||||||
|
|
||||||
trend.setLabel(trend.getDate());
|
trend.setLabel(trend.getDate());
|
||||||
@@ -172,6 +189,7 @@ public class GearDashboardServiceImpl implements IGearDashboardService {
|
|||||||
return trends;
|
return trends;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算增长率
|
* 计算增长率
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user