查询订单分账配置

This commit is contained in:
Guoqs
2025-10-14 11:50:21 +08:00
parent 9e08d916f7
commit 65a26e1faf
11 changed files with 84 additions and 7 deletions

View File

@@ -76,4 +76,11 @@ public interface OrderSplitRecordMapper {
* @return
*/
int deleteOrderSplitRecord(String orderCode);
/**
* 查询所有订单分账记录
* @param orderCode
* @return
*/
List<OrderSplitRecord> queryAllOrderSplitRecord(String orderCode);
}

View File

@@ -620,4 +620,6 @@ public interface OrderBasicInfoService{
List<OrderPaymentDetailVO> getSplitOrders(QueryOrderSplitRecordDTO dto);
void checkOrUpdateOrderSplitRecord(AfterSettleOrderDTO afterSettleOrderDTO);
List<StationSplitConfig> queryOrderSplitConfigList(String orderCode);
}

View File

@@ -151,5 +151,12 @@ public interface OrderSplitRecordService {
* @return 订单分账记录是否一致 true一致 false不一致
*/
boolean compareOrderSplitRecord(List<OrderSplitRecord> generatedOrderSplitRecordList, List<OrderSplitRecord> queryOrderSplitRecordList);
/**
* 查询所有订单分账记录, 包含逻辑删除的订单分账记录
* @param orderCode
* @return
*/
List<OrderSplitRecord> queryAllOrderSplitRecord(String orderCode);
}

View File

@@ -5807,6 +5807,9 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
updateSplitConfigList(stationId, stationSplitConfigList, orderCode);
}
// 查询是订单的历史分账记录
stationSplitConfigList = queryOrderSplitConfigList(orderCode);
// 计算每个参与分账的用户, 应分多少钱
List<SplitData> splitDataList = calculationSplitDataList(stationSplitConfigList, afterSettleOrderDTO);
List<DivMember> divMemberList = transformDivMemberList(splitDataList);
@@ -5867,5 +5870,34 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
logger.info("校验或更新订单分账信息-订单:{}, 分账记录一致, 不保存分账记录", orderCode);
}
}
@Override
public List<StationSplitConfig> queryOrderSplitConfigList(String orderCode) {
List<StationSplitConfig> resultList = Lists.newArrayList();
List<OrderSplitRecord> orderSplitRecordList = orderSplitRecordService.queryAllOrderSplitRecord(orderCode);
// 根据createTime分组
Map<Date, List<OrderSplitRecord>> map = orderSplitRecordList.stream().collect(Collectors.groupingBy(OrderSplitRecord::getCreateTime));
// 取出createTime最小的分组
List<OrderSplitRecord> minCreateTimeList = map.entrySet().stream().min(Map.Entry.comparingByKey()).get().getValue();
// 构建ist<StationSplitConfig>
for (OrderSplitRecord orderSplitRecord : minCreateTimeList) {
StationSplitConfig stationSplitConfig = StationSplitConfig.builder()
.id(orderSplitRecord.getId())
.merchantId(orderSplitRecord.getMerchantId())
.stationId(orderSplitRecord.getStationId())
.adapayMemberId(orderSplitRecord.getAdapayMemberId())
.electricitySplitRatio(orderSplitRecord.getElectricitySplitRatio())
.serviceSplitRatio(orderSplitRecord.getServiceSplitRatio())
.feeFlag(orderSplitRecord.getFeeAmount().compareTo(BigDecimal.ZERO) > 0 ? Constants.ONE : Constants.ZERO)
.build();
resultList.add(stationSplitConfig);
}
logger.info("校验或更新订单分账信息-订单:{}, 获取的订单分账配置:{}", orderCode, JSON.toJSONString(resultList));
return resultList;
}
}

View File

@@ -817,6 +817,11 @@ public class OrderSplitRecordServiceImpl implements OrderSplitRecordService {
return true;
}
@Override
public List<OrderSplitRecord> queryAllOrderSplitRecord(String orderCode) {
return orderSplitRecordMapper.queryAllOrderSplitRecord(orderCode);
}
}

View File

@@ -717,12 +717,6 @@ public class SettleOrderReportServiceImpl implements SettleOrderReportService {
? BigDecimal.ZERO
: new BigDecimal(vo.getChargingDegree());
// 统计用电度数大于0的订单, 2025年1月14日16点00分修改
// if (chargingDegree.compareTo(BigDecimal.ZERO) <= 0) {
// // 只统计用电量大于0的
// continue;
// }
// 统计结算和用电度数都为0, 不统计
if (chargingDegree.compareTo(BigDecimal.ZERO) <= 0 && settleAmount.compareTo(BigDecimal.ZERO) <= 0) {
// 只统计用电量大于0的