diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 1b7c25cdb..28d210d10 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -2133,6 +2133,12 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { logger.info("订单结算金额:{}与需要分成的电费金额:{}+需要分成的服务费金额:{}不相等", afterSettleOrderDTO.getOrderSettleAmount(), orderElectricityAmount, orderServiceAmount); return resultList; } + // stationSplitConfigList按照是否承担手续费排序,将承担手续费的放在最后 + stationSplitConfigList = stationSplitConfigList.stream() + .sorted(Comparator.comparing( + StationSplitConfig :: getFeeFlag + )) + .collect(Collectors.toList()); // 定义两个变量, 分别保存剩余电费金额, 剩余服务费金额, 原始值需要分成的金额相等, 分账后减去响应金额, 最后剩余的金额分给手续费承担者 BigDecimal remainElectricityAmount = orderElectricityAmount; @@ -2275,9 +2281,29 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { // } public static void main(String[] args) { - String dictValue = DictUtils.getDictValue("platform_service_flag", "status"); + List stationSplitConfigList = new ArrayList<>(); + StationSplitConfig a = new StationSplitConfig(); + a.setAdapayMemberId("11111"); + a.setFeeFlag("1"); + stationSplitConfigList.add(a); - System.out.println(dictValue); + StationSplitConfig b = new StationSplitConfig(); + b.setAdapayMemberId("22222"); + b.setFeeFlag("0"); + stationSplitConfigList.add(b); + + StationSplitConfig c = new StationSplitConfig(); + c.setAdapayMemberId("33333"); + c.setFeeFlag("0"); + stationSplitConfigList.add(c); + + stationSplitConfigList = stationSplitConfigList.stream() + .sorted(Comparator.comparing( + StationSplitConfig :: getFeeFlag + )) + .collect(Collectors.toList()); + + System.out.println(stationSplitConfigList); // BigDecimal orderElectricityAmount = new BigDecimal("100"); // BigDecimal orderServiceAmount = new BigDecimal("50");;