diff --git a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java index 3a56f0220..fc5648428 100644 --- a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java +++ b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java @@ -998,4 +998,22 @@ public class TempController extends BaseController { } return response; } + + /** + * 查询订单分账配置 + * @param dto + * @return + */ + @PostMapping("/queryOrderSplitConfigList") + public RestApiResponse queryOrderSplitConfigList(@RequestBody DebugOrderDTO dto) { + RestApiResponse response; + try { + tempService.queryOrderSplitConfigList(dto.getOrderCode()); + response = new RestApiResponse<>(); + } catch (Exception e) { + logger.error("查询订单分账配置 error,", e); + response = new RestApiResponse<>(e); + } + return response; + } } diff --git a/jsowell-admin/src/main/java/com/jsowell/service/TempService.java b/jsowell-admin/src/main/java/com/jsowell/service/TempService.java index 4e5edd37d..8c81cc201 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/TempService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/TempService.java @@ -1425,5 +1425,9 @@ public class TempService { logger.info("checkOrderSplitRecord订单号:{}, afterSettleOrderDTO:{}", orderCode, JSON.toJSONString(afterSettleOrderDTO)); orderBasicInfoService.checkOrUpdateOrderSplitRecord(afterSettleOrderDTO); } + + public List queryOrderSplitConfigList(String orderCode) { + return orderBasicInfoService.queryOrderSplitConfigList(orderCode); + } } diff --git a/jsowell-admin/src/test/java/PaymentTestController.java b/jsowell-admin/src/test/java/PaymentTestController.java index a0a612476..8f672dd68 100644 --- a/jsowell-admin/src/test/java/PaymentTestController.java +++ b/jsowell-admin/src/test/java/PaymentTestController.java @@ -592,7 +592,7 @@ public class PaymentTestController { // 查询支付确认id QueryPaymentConfirmDTO dto = new QueryPaymentConfirmDTO(); - dto.setPaymentConfirmId("0022120251010134711990822599294813462528"); + dto.setPaymentConfirmId("0022120250914002345990812975021684928512"); dto.setWechatAppId(wechatAppId1); // 查询分账信息 PaymentConfirmInfo paymentConfirmInfo = adapayService.queryPaymentConfirmDetail(dto); diff --git a/jsowell-admin/src/test/resources/payment_ids b/jsowell-admin/src/test/resources/payment_ids index af4b8804a..7faefb96a 100644 --- a/jsowell-admin/src/test/resources/payment_ids +++ b/jsowell-admin/src/test/resources/payment_ids @@ -43,6 +43,7 @@ 002212025091410343310813128734659739648 002212025091411305910813142936145289216 002212025091411585210813149954511876096 +002212025091412172910813154639293620224 002212025091412445910813161557793845248 002212025091408225810813095620038254592 002212025091412331610813158610146066432 diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderSplitRecordMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderSplitRecordMapper.java index 95762e688..0d3dc5979 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderSplitRecordMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderSplitRecordMapper.java @@ -76,4 +76,11 @@ public interface OrderSplitRecordMapper { * @return */ int deleteOrderSplitRecord(String orderCode); + + /** + * 查询所有订单分账记录 + * @param orderCode + * @return + */ + List queryAllOrderSplitRecord(String orderCode); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java index 2317f13b0..b248bea07 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java @@ -620,4 +620,6 @@ public interface OrderBasicInfoService{ List getSplitOrders(QueryOrderSplitRecordDTO dto); void checkOrUpdateOrderSplitRecord(AfterSettleOrderDTO afterSettleOrderDTO); + + List queryOrderSplitConfigList(String orderCode); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderSplitRecordService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderSplitRecordService.java index fca656846..d6d157747 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderSplitRecordService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderSplitRecordService.java @@ -151,5 +151,12 @@ public interface OrderSplitRecordService { * @return 订单分账记录是否一致 true一致 false不一致 */ boolean compareOrderSplitRecord(List generatedOrderSplitRecordList, List queryOrderSplitRecordList); + + /** + * 查询所有订单分账记录, 包含逻辑删除的订单分账记录 + * @param orderCode + * @return + */ + List queryAllOrderSplitRecord(String orderCode); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 4f3d19aac..73c5b9e43 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -5807,6 +5807,9 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { updateSplitConfigList(stationId, stationSplitConfigList, orderCode); } + // 查询是订单的历史分账记录 + stationSplitConfigList = queryOrderSplitConfigList(orderCode); + // 计算每个参与分账的用户, 应分多少钱 List splitDataList = calculationSplitDataList(stationSplitConfigList, afterSettleOrderDTO); List divMemberList = transformDivMemberList(splitDataList); @@ -5867,5 +5870,34 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { logger.info("校验或更新订单分账信息-订单:{}, 分账记录一致, 不保存分账记录", orderCode); } } + + @Override + public List queryOrderSplitConfigList(String orderCode) { + List resultList = Lists.newArrayList(); + + List orderSplitRecordList = orderSplitRecordService.queryAllOrderSplitRecord(orderCode); + + // 根据createTime分组 + Map> map = orderSplitRecordList.stream().collect(Collectors.groupingBy(OrderSplitRecord::getCreateTime)); + + // 取出createTime最小的分组 + List minCreateTimeList = map.entrySet().stream().min(Map.Entry.comparingByKey()).get().getValue(); + + // 构建ist + 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; + } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderSplitRecordServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderSplitRecordServiceImpl.java index c23ea5e26..25bd5c276 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderSplitRecordServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderSplitRecordServiceImpl.java @@ -817,6 +817,11 @@ public class OrderSplitRecordServiceImpl implements OrderSplitRecordService { return true; } + @Override + public List queryAllOrderSplitRecord(String orderCode) { + return orderSplitRecordMapper.queryAllOrderSplitRecord(orderCode); + } + } 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 3aecc833e..50d93e8df 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 @@ -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的 diff --git a/jsowell-pile/src/main/resources/mapper/pile/OrderSplitRecordMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/OrderSplitRecordMapper.xml index 4420b9212..dbc467cc9 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/OrderSplitRecordMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/OrderSplitRecordMapper.xml @@ -929,4 +929,11 @@ set del_flag = '1' where order_code = #{orderCode,jdbcType=VARCHAR} + +