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