bom: 修复 BOM 版本号计算异常
- 优化了 BOM 版本号计算逻辑,确保在查询不到数据时默认版本号为 1 - 使用 BigInteger 替代 Long 类型,避免数据类型转换异常 - 重构了代码结构,提高了可读性和维护性
This commit is contained in:
parent
d75f090ab0
commit
6d7e67b8bf
|
@ -1600,15 +1600,14 @@ public class APIBomBusinessServiceImpl implements IAPIBomBusinessService {
|
||||||
sql.append("AND hcmaterialid = ? ");
|
sql.append("AND hcmaterialid = ? ");
|
||||||
param.addParam(hcmaterialid);
|
param.addParam(hcmaterialid);
|
||||||
|
|
||||||
// 只查询数字版本号,排除非数字版本
|
// 只查询数字版本号,排除非数字版本
|
||||||
sql.append("AND REGEXP_LIKE(hversion, '^[0-9]+$') ");
|
sql.append("AND REGEXP_LIKE(hversion, '^[0-9]+$') ");
|
||||||
|
// 如果查询不到数据,默认版本号为1;否则最大版本号加1
|
||||||
|
Object mayBeNullVersion = DAO.executeQuery(sql.toString(), param, new ColumnProcessor());
|
||||||
|
String number = Objects.isNull(mayBeNullVersion) ? "1" : DAO.executeQuery(sql.toString(), param, new ColumnProcessor()).toString();
|
||||||
|
return String.valueOf(Long.parseLong(number)+1);
|
||||||
|
|
||||||
Long maxVersion = (Long) DAO.executeQuery(sql.toString(), param, new ColumnProcessor());
|
} catch (Exception e) {
|
||||||
|
|
||||||
// 如果查询不到数据,默认版本号为1;否则最大版本号加1
|
|
||||||
return String.valueOf((maxVersion != null ? maxVersion : 0) + 1);
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
|
||||||
throw new BusinessException("计算BOM版本号异常:" + e.getMessage());
|
throw new BusinessException("计算BOM版本号异常:" + e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue