优化代码 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 20:00:52 浏览: 94
这段代码是用来判断是否需要更新或新增一个 COA 部门的,如果 COA 部门的 flexValue 不为空,则会根据 flexValue 和 flexValueSetName 查询原始的 COA 部门信息,如果是变更操作且查询到了原始的 COA 部门信息,则会将 isUpdate 设为 true,并将 coaSection 的 id 和 hisId 设为原始 COA 部门的 id 和 hisId;如果是新增操作且没有查询到原始的 COA 部门信息,则将 isUpdate 设为 false;如果 flexValue 为空,则将 isUpdate 设为 false。
相关问题
优化代码 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));
}
```
请注意,以上优化建议是基于代码片段的理解和假设,并不代表整个代码的完整情况。在进行代码优化时,请根据实际情况和需求进行调整。
private Integer countMobileNum(AnalysisInfoVO graphAttrInfo, Integer mobileNumTotal) { String mobileNo1 = graphAttrInfo.getMobileNo1(); String mobileNo2 = graphAttrInfo.getMobileNo2(); String mobileNo3 = graphAttrInfo.getMobileNo3(); if (StringUtils.isNotEmpty(mobileNo1)){ mobileNumTotal= mobileNumTotal + 1; } if (StringUtils.isNotEmpty(mobileNo2)){ mobileNumTotal= mobileNumTotal + 1; } if (StringUtils.isNotEmpty(mobileNo3)){ mobileNumTotal= mobileNumTotal + 1; } return mobileNumTotal; } 帮我优化这段代码
可以使用循环来遍历 `mobileNo` 字段,避免重复代码的出现。同时,将 `StringUtils.isNotEmpty()` 方法替换为直接判断字符串是否为 `null` 或者长度是否为 0 的方式,可以提高代码可读性和执行效率。优化后的代码如下所示:
```
private Integer countMobileNum(AnalysisInfoVO graphAttrInfo, Integer mobileNumTotal) {
for (int i = 1; i <= 3; i++) {
String mobileNo = graphAttrInfo.getMobileNo(i);
if (mobileNo != null && mobileNo.length() > 0) {
mobileNumTotal++;
}
}
return mobileNumTotal;
}
```
在优化后的代码中,我们使用了一个循环来遍历 `mobileNo` 字段,从 1 到 3 分别获取对应的字段值。使用 `mobileNo != null && mobileNo.length() > 0` 来判断字符串是否为空或者长度是否为 0,如果满足条件,就将 `mobileNumTotal` 加一。最后返回 `mobileNumTotal` 的值即可。
阅读全文