if (fieldList!=null && fieldList.size()>0){ log.info("--------------------开始forEach变更:"+LocalDateTime.now()+"---------------------"); fieldList.forEach(field->{ Map<String,Object> map= MapUtil.<String,Object>builder().put("id",applyFileInfo.getSrcId()).put(field.getFieldName(),field.getAfterValue()).build(); //来源工程阶段 if (applyFileInfo.getType()==10){ engineeringPhaseMapper.updateById(CopyUtil.map(map, EngineeringPhaseDO.class)); } //来源预决算申报 if (applyFileInfo.getType()==20){ budgetFinalMapper.updateById(CopyUtil.map(map, BudgetFinalDO.class)); } }); log.info("--------------------forEach变更完成:"+LocalDateTime.now()+"---------------------"); }优化一下这段代码
时间: 2024-03-20 09:40:17 浏览: 59
这段代码实现了根据一个字段列表更新不同类型的数据表中的对应字段的值。与原来的代码功能相同,只是使用了 forEach() 方法来代替 for 循环。
以下是优化后的代码:
```
if (CollectionUtils.isNotEmpty(fieldList)) {
log.info("--------------------开始forEach变更:" + LocalDateTime.now() + "---------------------");
fieldList.forEach(field -> {
Map<String,Object> map = MapUtil.<String,Object>builder()
.put("id", applyFileInfo.getSrcId())
.put(field.getFieldName(), field.getAfterValue())
.build();
//来源工程阶段
if (applyFileInfo.getType() == 10) {
engineeringPhaseMapper.updateById(CopyUtil.map(map, EngineeringPhaseDO.class));
}
//来源预决算申报
if (applyFileInfo.getType() == 20) {
budgetFinalMapper.updateById(CopyUtil.map(map, BudgetFinalDO.class));
}
});
log.info("--------------------forEach变更完成:" + LocalDateTime.now() + "---------------------");
}
```
优化的主要点如下:
1. 使用 CollectionUtils.isNotEmpty 方法判断 fieldList 不为空,提高代码可读性。
2. 使用 forEach() 方法遍历 fieldList,代码更简洁。
3. 使用 MapUtil.builder() 方法构建 map,提高代码可读性。
4. 使用 CopyUtil.map() 方法进行类型转换,避免重复代码。
阅读全文