优化代码 if (StringUtils.isNotEmpty(coaSection.getFlexValue())) { CoaSection originalCoa = coaSectionDao.selectByFlexValue(coaSection.getFlexValue(), coaSection.getFlexValueSetName()); if ("变更".equals(importCoaSectionDTO.getType())) { if (Objects.nonNull(originalCoa)) { isUpdate = true; coaSection.setId(originalCoa.getId()); coaSection.setHisId(originalCoa.getHisId()); } else { errorMsg.append("不存在该编码,无法变更"); } } else { if (Objects.isNull(originalCoa)) { isUpdate = false; } else { errorMsg.append("编码重复,无法新增"); } } } else { isUpdate = false; }
时间: 2023-04-04 12:00:52 浏览: 57
这段代码是用来判断是否需要更新或新增一个 COA 部门的,如果 COA 部门的 flexValue 不为空,则会根据 flexValue 和 flexValueSetName 查询原始的 COA 部门信息,如果是变更操作且查询到了原始的 COA 部门信息,则会将 isUpdate 设为 true,并将 coaSection 的 id 和 hisId 设为原始 COA 部门的 id 和 hisId;如果是新增操作且没有查询到原始的 COA 部门信息,则将 isUpdate 设为 false;如果 flexValue 为空,则将 isUpdate 设为 false。
相关问题
说明一下StringUtils.isNotEmpty和StringUtils.isNotBlank的区别
StringUtils.isNotEmpty和StringUtils.isNotBlank都是Apache Commons Lang库中的字符串工具类方法,用于判断字符串是否为空。
StringUtils.isNotEmpty会判断传入的字符串是否为null或长度是否为0或是否只包含空格字符(空格、制表符、换行符等),如果以上任意一个条件成立,则返回false;否则返回true。
StringUtils.isNotBlank会判断传入的字符串是否为null或长度是否为0或是否只包含空格字符(空格、制表符、换行符等),如果以上任意一个条件成立,则返回false;否则返回true。相比之下,StringUtils.isNotBlank会忽略空格字符。
例如:
```
StringUtils.isNotEmpty(null); // false
StringUtils.isNotEmpty(""); // false
StringUtils.isNotEmpty(" "); // false
StringUtils.isNotEmpty(" \n\t"); // false
StringUtils.isNotEmpty("abc"); // true
StringUtils.isNotBlank(null); // false
StringUtils.isNotBlank(""); // false
StringUtils.isNotBlank(" "); // false
StringUtils.isNotBlank(" \n\t"); // false
StringUtils.isNotBlank("abc"); // true
```
因此,当需要判断字符串是否为空时,可以根据具体情况选择使用StringUtils.isNotEmpty或StringUtils.isNotBlank方法。
优化代码 if (StringUtils.isNotEmpty(tabInsInfoBo.getApplyerName())) { tabInsInfoBo.setApplyerName(EncryptFieldUtil.encrypt(tabInsInfoBo.getApplyerName())); } if (StringUtils.isNotEmpty(tabInsInfoBo.getApplyerPageCode())) { tabInsInfoBo.setApplyerPageCode(EncryptFieldUtil.encrypt(tabInsInfoBo.getApplyerPageCode())); }
这段代码可以进行如下的优化:
1. 避免重复调用 `StringUtils.isNotEmpty()` 方法,可以将其结果保存在一个变量中,以减少方法调用次数。
2. 可以考虑使用条件表达式(三元运算符)来简化代码,避免重复的逻辑判断。
3. 如果 `EncryptFieldUtil.encrypt()` 方法是一个耗时的操作,可以考虑将其结果存储在一个临时变量中,以减少方法调用次数。
根据以上优化建议,改进后的代码示例如下:
```java
String applyerName = tabInsInfoBo.getApplyerName();
String applyerPageCode = tabInsInfoBo.getApplyerPageCode();
if (StringUtils.isNotEmpty(applyerName)) {
tabInsInfoBo.setApplyerName(EncryptFieldUtil.encrypt(applyerName));
}
if (StringUtils.isNotEmpty(applyerPageCode)) {
tabInsInfoBo.setApplyerPageCode(EncryptFieldUtil.encrypt(applyerPageCode));
}
```
请注意,以上优化建议是基于代码片段的理解和假设,并不代表整个代码的完整情况。在进行代码优化时,请根据实际情况和需求进行调整。