以下代码展示了如何获取当前月和上个月的建设进度数据,并将上个月的数据添加到当前月的数据中。

ConstructionProgress constructionProgress = baseMapper.selectDataByMonthNew(month, deptId);
// 如果当前月没有数据,则创建新对象
if (constructionProgress == null) {
    constructionProgress = new ConstructionProgress();
}
// 获取上周数据
String lastMonth = DateUtil.format(DateUtil.offsetMonth(date, -1), DatePattern.NORM_MONTH_PATTERN);
ConstructionProgress lastProgress = baseMapper.selectDataByMonthNew(lastMonth, deptId);
// 如果上个月有数据,则将上个月的数据添加到当前月的数据中
if (lastProgress != null) {
    constructionProgress.setLastProgressList(lastProgress.getLastProgressList());
}
return constructionProgress;

优化方案:

  1. 将判断是否为空的代码提前,避免后面重复判断。
  2. 将创建对象的代码移到判断为空的代码块中,避免重复创建对象。
  3. 优化代码结构,使逻辑更加清晰易懂。

优化后的代码:

ConstructionProgress constructionProgress = baseMapper.selectDataByMonthNew(month, deptId);
// 如果当前月没有数据,则创建新对象
if (constructionProgress == null) {
    constructionProgress = new ConstructionProgress();
}
// 获取上周数据
String lastMonth = DateUtil.format(DateUtil.offsetMonth(date, -1), DatePattern.NORM_MONTH_PATTERN);
ConstructionProgress lastProgress = baseMapper.selectDataByMonthNew(lastMonth, deptId);
// 如果上个月有数据,则将上个月的数据添加到当前月的数据中
if (lastProgress != null) {
    constructionProgress.setLastProgressList(lastProgress.getLastProgressList());
}
return constructionProgress;

通过以上优化,代码逻辑更加清晰易懂,避免了重复判断和创建对象,提高了代码效率。

优化Java代码:获取上个月的数据并处理

原文地址: https://www.cveoy.top/t/topic/ol5H 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录