From ea8eeafb1ddad4774bbc2997fbf7112367d432e6 Mon Sep 17 00:00:00 2001 From: yixian Date: Wed, 7 Nov 2018 15:15:49 +0800 Subject: [PATCH] distribute bank rule edit: prefer to move no-CBA bank accounts to ANZ --- .../clearing/core/impl/CleanServiceImpl.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/au/com/royalpay/payment/manage/management/clearing/core/impl/CleanServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/management/clearing/core/impl/CleanServiceImpl.java index f965868a4..27f2fdeb9 100644 --- a/src/main/java/au/com/royalpay/payment/manage/management/clearing/core/impl/CleanServiceImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/management/clearing/core/impl/CleanServiceImpl.java @@ -1170,7 +1170,19 @@ public class CleanServiceImpl implements CleanService, ManagerTodoNoticeProvider String defaultBank = config.getRemainsTo(); clearingDetailMapper.updateAllBanks(defaultBank, clearingId); List details = clearingDetailMapper.listReportsOfSettlement(clearingId); - details.sort((log1, log2) -> log2.getBigDecimal("clearing_amount").compareTo(log1.getBigDecimal("clearing_amount"))); + details.sort((log1, log2) -> { + if (StringUtils.equals(defaultBank, log1.getString("account_bank")) == + StringUtils.equals(defaultBank, log2.getString("account_bank"))) { + //两个银行都是defaultBank或者都不是defaultBank, all true or all false,比较清算金额,金额大的在前 + return log2.getBigDecimal("clearing_amount").compareTo(log1.getBigDecimal("clearing_amount")); + } + //有一个是defaultBank,defaultBank在后 + if (defaultBank.equals(log1.getString("account_bank"))) { + return -1; + } else { + return 1; + } + }); bankDistribution.remove(defaultBank); for (String bank : bankDistribution.keySet()) { List detailIds = new ArrayList<>();