mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-20 11:05:18 +08:00
update
This commit is contained in:
@@ -35,6 +35,7 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
@@ -549,6 +550,10 @@ public class SettleOrderReportServiceImpl implements ISettleOrderReportService {
|
||||
BigDecimal totalOrderAmount = BigDecimal.ZERO;
|
||||
BigDecimal totalVirtualAmount = BigDecimal.ZERO;
|
||||
BigDecimal totalSettleAmount = BigDecimal.ZERO;
|
||||
// 总手续费
|
||||
BigDecimal totalFeeAmount = BigDecimal.ZERO;
|
||||
BigDecimal totalTradeAmount = BigDecimal.ZERO;
|
||||
|
||||
List<String> orderCodeList = Lists.newArrayList();
|
||||
for (OrderListVO vo : orderListVOS) {
|
||||
// 统计结算金额大于0的
|
||||
@@ -598,6 +603,11 @@ public class SettleOrderReportServiceImpl implements ISettleOrderReportService {
|
||||
|
||||
// 结算金额
|
||||
totalSettleAmount = totalSettleAmount.add(settleAmount);
|
||||
|
||||
// 计算手续费 = 结算金额 * 0.55%
|
||||
SplitSettleAmountVO splitSettleAmountVO = splitSettleAmount(settleAmount);
|
||||
totalFeeAmount = totalFeeAmount.add(splitSettleAmountVO.getFeeAmount());
|
||||
totalTradeAmount = totalTradeAmount.add(splitSettleAmountVO.getTradeAmount());
|
||||
}
|
||||
|
||||
// 计算报表
|
||||
@@ -616,9 +626,9 @@ public class SettleOrderReportServiceImpl implements ISettleOrderReportService {
|
||||
settleOrderReport.setTradeDate(tradeDate);
|
||||
settleOrderReport.setOrderCodes(Joiner.on(",").join(orderCodeList));
|
||||
// 计算手续费 = 结算金额 * 0.55%
|
||||
SplitSettleAmountVO splitSettleAmountVO = splitSettleAmount(totalSettleAmount);
|
||||
settleOrderReport.setTradeFee(splitSettleAmountVO.getFeeAmount());
|
||||
settleOrderReport.setTradeAmount(splitSettleAmountVO.getTradeAmount());
|
||||
// SplitSettleAmountVO splitSettleAmountVO = splitSettleAmount(totalSettleAmount);
|
||||
settleOrderReport.setTradeFee(totalFeeAmount);
|
||||
settleOrderReport.setTradeAmount(totalTradeAmount);
|
||||
// 根据站点id和交易日期查询
|
||||
SettleOrderReport selectResult = this.selectByStationIdAndDate(stationId, tradeDate);
|
||||
if (selectResult != null) {
|
||||
@@ -641,7 +651,7 @@ public class SettleOrderReportServiceImpl implements ISettleOrderReportService {
|
||||
return resultVO;
|
||||
}
|
||||
// 计算手续费 = 结算金额 * 0.55%
|
||||
BigDecimal fee = settleAmount.multiply(new BigDecimal(Constants.FEE_RATES));
|
||||
BigDecimal fee = settleAmount.multiply(new BigDecimal(Constants.FEE_RATES)).setScale(2, RoundingMode.UP);
|
||||
resultVO.setSettleAmount(settleAmount);
|
||||
resultVO.setFeeAmount(fee);
|
||||
resultVO.setTradeAmount(settleAmount.subtract(fee));
|
||||
@@ -649,6 +659,39 @@ public class SettleOrderReportServiceImpl implements ISettleOrderReportService {
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
List<String> list = Lists.newArrayList(
|
||||
"17.56",
|
||||
"26.13",
|
||||
"11.79",
|
||||
"34.80",
|
||||
"12.72",
|
||||
"18.03",
|
||||
"19.80",
|
||||
"66.76",
|
||||
"15.27",
|
||||
"37.50",
|
||||
"28.45",
|
||||
"24.81",
|
||||
"16.75");
|
||||
|
||||
// 总手续费
|
||||
BigDecimal totalFeeAmount = BigDecimal.ZERO;
|
||||
BigDecimal totalTradeAmount = BigDecimal.ZERO;
|
||||
|
||||
for (String s : list) {
|
||||
BigDecimal settleAmount = new BigDecimal(s);
|
||||
BigDecimal feeAmount = settleAmount.multiply(new BigDecimal(Constants.FEE_RATES)).setScale(2, RoundingMode.UP);
|
||||
// 交易金额 = 结算金额 - 手续费
|
||||
BigDecimal tradeAmount = settleAmount.subtract(feeAmount);
|
||||
|
||||
totalFeeAmount = totalFeeAmount.add(feeAmount);
|
||||
totalTradeAmount = totalTradeAmount.add(tradeAmount);
|
||||
}
|
||||
|
||||
System.out.println("总手续费" + totalFeeAmount);
|
||||
System.out.println("总交易金额" + totalTradeAmount);
|
||||
|
||||
|
||||
BigDecimal settleAmount = new BigDecimal("330.37");
|
||||
// 计算手续费 = 结算金额 * 0.55%
|
||||
BigDecimal fee = settleAmount.multiply(new BigDecimal(Constants.FEE_RATES));
|
||||
|
||||
Reference in New Issue
Block a user