计算站点日报, 实付金额大于0小于结算金额, 按照实付金额汇总

This commit is contained in:
Guoqs
2025-06-23 16:36:47 +08:00
parent dcb09557b7
commit a81b1392d1
4 changed files with 28 additions and 5 deletions

View File

@@ -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;
}
}

View File

@@ -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); // 充电度数累计

View File

@@ -248,6 +248,11 @@ public class OrderListVO {
@Excel(name = "结算金额")
private String settleAmount;
/**
* 实收金额
*/
private BigDecimal actualReceivedAmount;
/**
* 交易服务费/通道手续费
*/

View File

@@ -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>