调整修改
This commit is contained in:
+9
-5
@@ -506,21 +506,25 @@ public class BusinessDocumentOrderAdjustService {
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否修改了金额:主表金额列变化 或 明细 amount 变化
|
||||
* 是否修改了金额:主表金额/费用列变化 或 明细 amount 变化
|
||||
*/
|
||||
private boolean isAmountChanged(BusinessDocumentOrder dbOrder, BusinessDocumentOrder front,
|
||||
boolean hasFeeDetail, List<BusinessOrderAccount> dbFeeList,
|
||||
List<BusinessOrderAccount> newFeeList) {
|
||||
// a) 主表金额列比对
|
||||
// a) 主表金额/费用列比对(金额列用 BigDecimal 比对,字符串列用 equals 比对)
|
||||
boolean mainChanged = FEE_FIELDS.stream().anyMatch(field -> {
|
||||
Object newVal = BeanUtil.getFieldValue(front, field);
|
||||
if (newVal == null) {
|
||||
return false;
|
||||
}
|
||||
Object oldVal = BeanUtil.getFieldValue(dbOrder, field);
|
||||
BigDecimal old = oldVal == null ? BigDecimal.ZERO : (BigDecimal) oldVal;
|
||||
BigDecimal now = (BigDecimal) newVal;
|
||||
return old.compareTo(now) != 0;
|
||||
if (newVal instanceof BigDecimal || oldVal instanceof BigDecimal) {
|
||||
BigDecimal old = oldVal == null ? BigDecimal.ZERO : new BigDecimal(oldVal.toString());
|
||||
BigDecimal now = new BigDecimal(newVal.toString());
|
||||
return old.compareTo(now) != 0;
|
||||
}
|
||||
// 字符串字段(结算币种/收款账户等)
|
||||
return !newVal.toString().equals(oldVal == null ? "" : oldVal.toString());
|
||||
});
|
||||
if (mainChanged) {
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user