From 36c635a465c9e2dacce755e6a3519be6c1d03158 Mon Sep 17 00:00:00 2001 From: Guoqs <123@jsowell.com> Date: Mon, 29 Sep 2025 13:54:05 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=91=E9=A2=9D=E5=8F=96=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=88=86=E8=B4=A6=E8=AE=B0=E5=BD=95=E8=A1=A8=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SettleOrderReportServiceImpl.java | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/SettleOrderReportServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/SettleOrderReportServiceImpl.java index be1ceac70..a97bee1fd 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/SettleOrderReportServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/SettleOrderReportServiceImpl.java @@ -19,6 +19,7 @@ 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.OrderSplitRecord; import com.jsowell.pile.domain.PileStationInfo; import com.jsowell.pile.domain.SettleOrderReport; import com.jsowell.pile.dto.GetClearingBillDTO; @@ -674,8 +675,15 @@ public class SettleOrderReportServiceImpl implements SettleOrderReportService { dto.setMerchantId(stationInfo.getMerchantId()); // 查询结算完成的订单 List orderListVOS = orderBasicInfoMapper.selectOrderBasicInfoList(dto); + // 收集订单编号 List collect = orderListVOS.stream().map(OrderListVO::getOrderCode).collect(Collectors.toList()); log.info("站点:{}, 在{}-{}查询到订单数据{}条,订单编号:{}", stationInfo.getStationName(), startTime, endTime, orderListVOS.size(), collect); + + // 根据入参拉出时间段内所有订单的分账记录 + List orderSplitRecords = orderSplitRecordService.queryOrderSplitRecordList(stationInfo.getMerchantId(), stationId, startTime, endTime); + // orderSplitRecords转为map, key为订单编号, value为分账记录 + Map splitRecordMap = orderSplitRecords.stream().collect(Collectors.toMap(OrderSplitRecord::getOrderCode, v -> v)); + // 统计出日报信息 BigDecimal useElectricity = BigDecimal.ZERO; // 总电量使用量 int chargeNum = 0; // 总充电次数 @@ -731,12 +739,19 @@ public class SettleOrderReportServiceImpl implements SettleOrderReportService { chargeTime += l; } - // 电费金额 - BigDecimal e = vo.getTotalElectricityAmount() != null ? vo.getTotalElectricityAmount() : BigDecimal.ZERO; - totalElectricityAmount = totalElectricityAmount.add(e); + // 电费金额, 如果splitRecordMap中存在,取Rrecord.getElectricitySplitAmount(), 如果不存在取vo.getTotalElectricityAmount() + OrderSplitRecord record = splitRecordMap.get(vo.getOrderCode()); + BigDecimal electricityAmount = record != null + ? record.getElectricitySplitAmount() + : vo.getTotalElectricityAmount() != null ? vo.getTotalElectricityAmount() : BigDecimal.ZERO; + // BigDecimal e = vo.getTotalElectricityAmount() != null ? vo.getTotalElectricityAmount() : BigDecimal.ZERO; + totalElectricityAmount = totalElectricityAmount.add(electricityAmount); - // 服务费金额 - BigDecimal serviceAmount = vo.getTotalServiceAmount() != null ? vo.getTotalServiceAmount() : BigDecimal.ZERO; + // 服务费金额,如果splitRecordMap中存在,取Rrecord.getElectricitySplitAmount(), 如果不存在取vo.getTotalElectricityAmount() + BigDecimal serviceAmount = record != null + ? record.getServiceSplitAmount() + : vo.getTotalServiceAmount() != null ? vo.getTotalServiceAmount() : BigDecimal.ZERO; + // BigDecimal serviceAmount = vo.getTotalServiceAmount() != null ? vo.getTotalServiceAmount() : BigDecimal.ZERO; totalServiceAmount = totalServiceAmount.add(serviceAmount); // 订单金额