public void addGfrBasAcctCheckset(GfrBasAcctChecksetDTO dto, Session session) { dto.setSet_year(String.valueOf(session.getBusiYear())); dto.setId(UUIDUtils.getUUID()); String report_item_code = dto.getReport_item_code(); String report_item_name = dto.getReport_item_name(); String other_report_item_code = dto.getOther_report_item_code(); String other_report_item_name = dto.getOther_report_item_name(); if (StringUtil.isNotBlank(report_item_code)) { if (",".equals(report_item_code.substring(0, 1))) { throw new BusinessException("请检查所选择的报表项目,父级不能和子级一起选择"); } String reportItemCode = StringUtils.getreportItemCode(report_item_code); dto.setReport_item_code(reportItemCode); } if (StringUtil.isNotBlank(report_item_name)) { if (",".equals(report_item_name.substring(0, 1))) { throw new BusinessException("请检查所选择的报表项目,父级不能和子级一起选择"); } String reportItemName = StringUtils.getreportItemName(report_item_name); dto.setReport_item_name(reportItemName); } gfrBasAcctChecksetDAO.addGfrBasAcctCheckset(dto); }
时间: 2024-01-21 12:05:00 浏览: 20
这段代码可以进行如下优化:
1. 将 `dto` 对象中的 `set_year` 和 `id` 设置移到对象创建时进行,避免多次重复设置。
2. 抽取相似的报表项目代码和报表项目名称的处理逻辑,避免代码重复。
3. 对于 `report_item_code` 和 `report_item_name` 的非空判断,可以使用 `StringUtils.isNotBlank()` 方法来进行判断。
优化后的代码如下:
```
public void addGfrBasAcctCheckset(GfrBasAcctChecksetDTO dto, Session session) {
String setYear = String.valueOf(session.getBusiYear());
String id = UUIDUtils.getUUID();
dto.setSet_year(setYear);
dto.setId(id);
String reportItemCode = handleReportItem(dto.getReport_item_code());
dto.setReport_item_code(reportItemCode);
String reportItemName = handleReportItem(dto.getReport_item_name());
dto.setReport_item_name(reportItemName);
gfrBasAcctChecksetDAO.addGfrBasAcctCheckset(dto);
}
private String handleReportItem(String reportItem) {
if (StringUtils.isNotBlank(reportItem)) {
if (",".equals(reportItem.substring(0, 1))) {
throw new BusinessException("请检查所选择的报表项目,父级不能和子级一起选择");
}
return StringUtils.getreportItemCode(reportItem);
}
return reportItem;
}
```