mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-05-18 00:38:33 +08:00
计算站点日报, 实付金额大于0小于结算金额, 按照实付金额汇总
This commit is contained in:
@@ -22,6 +22,7 @@ import java.math.BigDecimal;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class YKCUtils {
|
public class YKCUtils {
|
||||||
@@ -474,4 +475,17 @@ public class YKCUtils {
|
|||||||
return stationIdList;
|
return stationIdList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 两个BigDecimal, 取出大于0的最小值
|
||||||
|
* @param settleAmount 结算金额
|
||||||
|
* @param actualReceivedAmount 实收金额
|
||||||
|
*/
|
||||||
|
public static BigDecimal getMinBigDecimal(BigDecimal settleAmount, BigDecimal actualReceivedAmount) {
|
||||||
|
BigDecimal minValue = Stream.of(settleAmount, actualReceivedAmount)
|
||||||
|
.filter(v -> v.compareTo(BigDecimal.ZERO) > 0) // 过滤出大于 0 的值
|
||||||
|
.min(BigDecimal::compareTo) // 取最小值
|
||||||
|
.orElse(settleAmount); // 如果没有大于 0 的值,则返回结算金额
|
||||||
|
return minValue;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import com.jsowell.common.exception.BusinessException;
|
|||||||
import com.jsowell.common.util.DateUtils;
|
import com.jsowell.common.util.DateUtils;
|
||||||
import com.jsowell.common.util.PageUtils;
|
import com.jsowell.common.util.PageUtils;
|
||||||
import com.jsowell.common.util.StringUtils;
|
import com.jsowell.common.util.StringUtils;
|
||||||
|
import com.jsowell.common.util.YKCUtils;
|
||||||
import com.jsowell.common.util.id.IdUtils;
|
import com.jsowell.common.util.id.IdUtils;
|
||||||
import com.jsowell.pile.domain.PileStationInfo;
|
import com.jsowell.pile.domain.PileStationInfo;
|
||||||
import com.jsowell.pile.domain.SettleOrderReport;
|
import com.jsowell.pile.domain.SettleOrderReport;
|
||||||
@@ -682,10 +683,9 @@ public class SettleOrderReportServiceImpl implements SettleOrderReportService {
|
|||||||
BigDecimal settleAmount = StringUtils.isBlank(vo.getSettleAmount())
|
BigDecimal settleAmount = StringUtils.isBlank(vo.getSettleAmount())
|
||||||
? BigDecimal.ZERO
|
? BigDecimal.ZERO
|
||||||
: new BigDecimal(vo.getSettleAmount());
|
: new BigDecimal(vo.getSettleAmount());
|
||||||
// if (settleAmount.compareTo(BigDecimal.ZERO) <= 0) {
|
|
||||||
// // 只统计用电量大于0的
|
// 实收金额
|
||||||
// continue;
|
BigDecimal actualReceivedAmount = vo.getActualReceivedAmount();
|
||||||
// }
|
|
||||||
|
|
||||||
// 用电度数
|
// 用电度数
|
||||||
BigDecimal chargingDegree = StringUtils.isBlank(vo.getChargingDegree())
|
BigDecimal chargingDegree = StringUtils.isBlank(vo.getChargingDegree())
|
||||||
@@ -704,6 +704,9 @@ public class SettleOrderReportServiceImpl implements SettleOrderReportService {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 结算金额与实收金额取大于0的最小值
|
||||||
|
settleAmount = YKCUtils.getMinBigDecimal(settleAmount, actualReceivedAmount);
|
||||||
|
|
||||||
String orderAmount = vo.getOrderAmount(); // 订单消费金额
|
String orderAmount = vo.getOrderAmount(); // 订单消费金额
|
||||||
useElectricity = useElectricity.add(chargingDegree); // 充电度数累计
|
useElectricity = useElectricity.add(chargingDegree); // 充电度数累计
|
||||||
|
|
||||||
|
|||||||
@@ -248,6 +248,11 @@ public class OrderListVO {
|
|||||||
@Excel(name = "结算金额")
|
@Excel(name = "结算金额")
|
||||||
private String settleAmount;
|
private String settleAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 实收金额
|
||||||
|
*/
|
||||||
|
private BigDecimal actualReceivedAmount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 交易服务费/通道手续费
|
* 交易服务费/通道手续费
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1765,6 +1765,7 @@
|
|||||||
t1.virtual_amount as virtualAmount,
|
t1.virtual_amount as virtualAmount,
|
||||||
t1.discount_amount as discountAmount,
|
t1.discount_amount as discountAmount,
|
||||||
t1.settle_amount as settleAmount,
|
t1.settle_amount as settleAmount,
|
||||||
|
ifnull(t1.actual_received_amount, '0') as actualReceivedAmount,
|
||||||
t1.settlement_time as settlementTime,
|
t1.settlement_time as settlementTime,
|
||||||
t1.start_soc as startSoc,
|
t1.start_soc as startSoc,
|
||||||
t1.end_soc as endSoc,
|
t1.end_soc as endSoc,
|
||||||
|
|||||||
Reference in New Issue
Block a user