更新清分金额计算

This commit is contained in:
panshuling321 2022-06-28 16:21:34 +08:00
parent 6a56d1ef47
commit d05148e8c0
5 changed files with 21 additions and 14 deletions

View File

@ -43,8 +43,7 @@ public class XhpcClearingHistoryOrderController extends BaseController {
String endTime,
String orderNo,
String userType,
String internetName,
String stationId) {
String internetName) {
LoginUser loginUser = logUserUtils.getLogUser(request);
startPage();

View File

@ -110,27 +110,28 @@ public class XhpcClearingCheckoutServiceImpl extends BaseService implements Xhpc
// 可提现金额
BigDecimal bankRate = new BigDecimal("0.006");
BigDecimal handlingRate = BigDecimal.TEN;
BigDecimal handlingAmount = BigDecimal.TEN;
Map<String, Object> cashMap = historyOrderMapper.selectCashAmount(operatorId.toString());
BigDecimal powerAmount = new BigDecimal(cashMap.get("powerAmount").toString()).setScale(2, BigDecimal.ROUND_UP);
BigDecimal serviceAmount = new BigDecimal(cashMap.get("serviceAmount").toString()).setScale(2, BigDecimal.ROUND_UP);
BigDecimal powerAmount = new BigDecimal(cashMap.get("powerAmount").toString()).setScale(2, BigDecimal.ROUND_HALF_UP);
BigDecimal serviceAmount = new BigDecimal(cashMap.get("serviceAmount").toString()).setScale(2, BigDecimal.ROUND_HALF_UP);
BigDecimal actAmount = serviceAmount.subtract(handlingRate);
BigDecimal bankFee = actAmount.multiply(bankRate).setScale(2, BigDecimal.ROUND_UP);
BigDecimal bankFee = powerAmount.add(serviceAmount).subtract(handlingAmount).multiply(bankRate).setScale(2, BigDecimal.ROUND_HALF_UP);
BigDecimal receivedServiceAmount = serviceAmount.subtract(handlingAmount).subtract(bankFee);
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("bankNo", bankDomain.getBankNo());
resultMap.put("contactPhone", bankDomain.getContactPhone());
resultMap.put("applyAmount", powerAmount.add(serviceAmount));
resultMap.put("clearingOrderIds", cashMap.get("clearingOrderIds"));
resultMap.put("handlingFee", handlingRate);
resultMap.put("bankFee", bankFee);
resultMap.put("applyPowerAmount", powerAmount);
resultMap.put("applyServiceAmount", serviceAmount);
resultMap.put("clearingOrderIds", cashMap.get("clearingOrderIds"));
resultMap.put("handlingFee", handlingAmount);
resultMap.put("bankFee", bankFee);
resultMap.put("receivedPowerAmount", powerAmount);
resultMap.put("receivedServiceAmount", actAmount.subtract(bankFee));
resultMap.put("receivedAmount", powerAmount.add(actAmount).subtract(bankFee).compareTo(BigDecimal.ZERO) >= 0 ? powerAmount.add(actAmount).subtract(bankFee) : BigDecimal.ZERO);
resultMap.put("receivedServiceAmount", receivedServiceAmount);
resultMap.put("receivedAmount", powerAmount.add(receivedServiceAmount).compareTo(BigDecimal.ZERO) >= 0 ? powerAmount.add(receivedServiceAmount) : BigDecimal.ZERO);
resultMap.put("clearingBankId", bankDomain.getClearingBankId());
return resultMap;
}

View File

@ -96,9 +96,11 @@ public class XhpcClearingHistoryOrderServiceImpl extends BaseService implements
params.put("userType", orderVo.getUserType());
params.put("internetName", orderVo.getInternetName());
params.put("operatorId", orderVo.getOperatorId());
params.put("stationId", orderVo.getStationId());
params.put("tenantId", orderVo.getTenantId());
params.put("orderIds", orderVo.getOrderIds());
params.put("chargingStationId", orderVo.getChargingStationId());
params.put("chargingPileId", orderVo.getChargingPileId());
params.put("terminalId", orderVo.getTerminalId());
List<XhpcClearingHistoryOrderDomain> orderDomainList = historyOrderMapper.getListPage(params);
String orderIds = orderDomainList.stream().map(n -> n.getClearingOrderId().toString()).collect(Collectors.joining(","));

View File

@ -18,7 +18,9 @@ public class ClearingOrderVo {
private String userType;
private String internetName;
private String operatorId;
private String stationId;
private String tenantId;
private Long chargingStationId;
private Long chargingPileId;
private Long terminalId;
}

View File

@ -290,6 +290,9 @@
<if test="params.chargingPileId !=null and params.chargingPileId !=''">
and ho.terminal_id in (select terminal_id from xhpc_terminal where charging_pile_id=#{params.chargingPileId} and del_flag =0)
</if>
<if test="params.terminalId !=null and params.terminalId !=''">
and ho.terminal_id#{params.terminalId}
</if>
<if test="params.type==1">
and ho.charging_station_id in (select charging_station_id from xhpc_charging_station where operator_id=#{params.logOperatorId})
</if>