From 4989868d65742bc3781b94ef7a860e74465d13bd Mon Sep 17 00:00:00 2001 From: Lemon Date: Thu, 24 Oct 2024 14:12:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20=E8=BF=90=E8=90=A5?= =?UTF-8?q?=E7=AB=AF=E5=B0=8F=E7=A8=8B=E5=BA=8F=E6=94=B6=E8=B4=B9=E6=98=8E?= =?UTF-8?q?=E7=BB=86=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit d5eae744a28c1b29a7cbed0019239e05da3868f7) --- .../business/BusinessOrderController.java | 10 +++ .../TransactionRecordsRequestHandler.java | 3 +- .../pile/service/OrderBasicInfoService.java | 7 ++ .../impl/OrderBasicInfoServiceImpl.java | 77 +++++++++++++++++++ .../business/BusinessOrderBillingInfoVO.java | 57 ++++++++++++++ 5 files changed, 153 insertions(+), 1 deletion(-) create mode 100644 jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/business/BusinessOrderBillingInfoVO.java diff --git a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/business/BusinessOrderController.java b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/business/BusinessOrderController.java index a4ed06a1f..fb9bdd108 100644 --- a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/business/BusinessOrderController.java +++ b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/business/BusinessOrderController.java @@ -43,4 +43,14 @@ public class BusinessOrderController extends BaseController { logger.info("通过订单编号查询订单信息详情 orderCode:{}, result:{}", orderCode, response); return response; } + + /** + * 通过订单编号查询订单各时段计费明细 + * @param orderCode + * @return + */ + @GetMapping("/getOrderBillingDetail/{orderCode}") + public RestApiResponse getOrderBillingDetail(@PathVariable("orderCode") String orderCode) { + orderBasicInfoService.getOrderBillingDetail(orderCode); + } } diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/TransactionRecordsRequestHandler.java b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/TransactionRecordsRequestHandler.java index a861c9ba7..599d49ad6 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/TransactionRecordsRequestHandler.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/TransactionRecordsRequestHandler.java @@ -506,7 +506,8 @@ public class TransactionRecordsRequestHandler extends AbstractYkcHandler { length = 1; byte[] stopReasonByteArr = BytesUtil.copyBytes(msgBody, startIndex, length); String stopReason = BytesUtil.bin2HexStr(stopReasonByteArr); - String stopReasonMsg = YKCChargingStopReasonEnum.getMsgByCode(Integer.parseInt(stopReason, 16)); + int i = Integer.parseInt(stopReason, 16); + String stopReasonMsg = YKCChargingStopReasonEnum.getMsgByCode(i); // 物理卡号 不足 8 位补 0 startIndex += length; 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 d21c61a61..e28d59e18 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 @@ -12,6 +12,7 @@ import com.jsowell.pile.domain.SettleOrderReport; import com.jsowell.pile.dto.*; import com.jsowell.pile.dto.nanrui.NRQueryOrderDTO; import com.jsowell.pile.dto.ningxiajiaotou.NXJTQueryOrdersInfoDTO; +import com.jsowell.pile.vo.uniapp.business.BusinessOrderBillingInfoVO; import com.jsowell.pile.vo.uniapp.business.BusinessOrderDetailInfoVO; import com.jsowell.pile.vo.SupStationStatsVO; import com.jsowell.pile.vo.base.MerchantOrderInfoVO; @@ -492,4 +493,10 @@ public interface OrderBasicInfoService{ * @return */ List queryOrdersByPileConnectorCodeAndStatus(String pileConnectorCode, String orderStatus, String payStatus); + + /** + * 查询订单计费详情 + * @param orderCode + */ + List getOrderBillingDetail(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 fffbf0bfc..fed172049 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 @@ -56,6 +56,7 @@ import com.jsowell.pile.vo.base.*; import com.jsowell.pile.vo.base.PileInfoVO; import com.jsowell.pile.vo.lianlian.AccumulativeInfoVO; import com.jsowell.pile.vo.nanrui.JiangSuOrderInfoVO; +import com.jsowell.pile.vo.uniapp.business.BusinessOrderBillingInfoVO; import com.jsowell.pile.vo.uniapp.business.BusinessOrderDetailInfoVO; import com.jsowell.pile.vo.uniapp.customer.*; import com.jsowell.pile.vo.web.*; @@ -4108,5 +4109,81 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { public List queryOrdersByPileConnectorCodeAndStatus(String pileConnectorCode, String orderStatus, String payStatus) { return orderBasicInfoMapper.queryOrdersByPileConnectorCodeAndStatus(pileConnectorCode, orderStatus, payStatus); } + + /** + * 通过订单编号查询订单各时段计费明细 + * @param orderCode + * @return + */ + @Override + public List getOrderBillingDetail(String orderCode) { + List resultList = new ArrayList<>(); + OrderBasicInfo orderBasicInfo = getOrderInfoByOrderCode(orderCode); + OrderDetail orderDetail = getOrderDetailByOrderCode(orderCode); + String stationId = orderBasicInfo.getStationId(); + // 查询该站点正在使用的计费模板 + List billingPriceVOS = pileBillingTemplateService.queryBillingPrice(stationId); + if (CollectionUtils.isEmpty(billingPriceVOS)) { + return new ArrayList<>(); + } + for (BillingPriceVO billingPriceVO : billingPriceVOS) { + BusinessOrderBillingInfoVO vo; + String timeType = billingPriceVO.getTimeType(); + + if (StringUtils.equals(BillingTimeTypeEnum.SHARP.getValue(), timeType)) { + // 尖时段 + vo = BusinessOrderBillingInfoVO.builder() + .timeType(BillingTimeTypeEnum.SHARP.getValue()) + .startTime(billingPriceVO.getStartTime()) + .endTime(billingPriceVO.getEndTime()) + .usedElectricity(orderDetail.getSharpUsedElectricity()) + .timeAmount(orderDetail.getSharpAmount()) + .timeElectricityPrice(new BigDecimal(billingPriceVO.getElectricityPrice())) + .timeServicePrice(new BigDecimal(billingPriceVO.getServicePrice())) + .build(); + resultList.add(vo); + } + if (StringUtils.equals(BillingTimeTypeEnum.PEAK.getValue(), timeType)) { + // 峰时段 + vo = BusinessOrderBillingInfoVO.builder() + .timeType(BillingTimeTypeEnum.PEAK.getValue()) + .startTime(billingPriceVO.getStartTime()) + .endTime(billingPriceVO.getEndTime()) + .usedElectricity(orderDetail.getPeakUsedElectricity()) + .timeAmount(orderDetail.getPeakAmount()) + .timeElectricityPrice(new BigDecimal(billingPriceVO.getElectricityPrice())) + .timeServicePrice(new BigDecimal(billingPriceVO.getServicePrice())) + .build(); + resultList.add(vo); + } + if (StringUtils.equals(BillingTimeTypeEnum.FLAT.getValue(), timeType)) { + // 平时段 + vo = BusinessOrderBillingInfoVO.builder() + .timeType(BillingTimeTypeEnum.FLAT.getValue()) + .startTime(billingPriceVO.getStartTime()) + .endTime(billingPriceVO.getEndTime()) + .usedElectricity(orderDetail.getFlatUsedElectricity()) + .timeAmount(orderDetail.getFlatAmount()) + .timeElectricityPrice(new BigDecimal(billingPriceVO.getElectricityPrice())) + .timeServicePrice(new BigDecimal(billingPriceVO.getServicePrice())) + .build(); + resultList.add(vo); + } + if (StringUtils.equals(BillingTimeTypeEnum.VALLEY.getValue(), timeType)) { + // 谷时段 + vo = BusinessOrderBillingInfoVO.builder() + .timeType(BillingTimeTypeEnum.VALLEY.getValue()) + .startTime(billingPriceVO.getStartTime()) + .endTime(billingPriceVO.getEndTime()) + .usedElectricity(orderDetail.getValleyUsedElectricity()) + .timeAmount(orderDetail.getValleyAmount()) + .timeElectricityPrice(new BigDecimal(billingPriceVO.getElectricityPrice())) + .timeServicePrice(new BigDecimal(billingPriceVO.getServicePrice())) + .build(); + resultList.add(vo); + } + } + return resultList; + } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/business/BusinessOrderBillingInfoVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/business/BusinessOrderBillingInfoVO.java new file mode 100644 index 000000000..1f3e3190d --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/business/BusinessOrderBillingInfoVO.java @@ -0,0 +1,57 @@ +package com.jsowell.pile.vo.uniapp.business; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +/** + * 运营端小程序订单时段费用明细VO + * + * @author Lemon + * @Date 2024/10/23 15:20:20 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class BusinessOrderBillingInfoVO { + /** + * 时段类型(1-尖时;2-峰时;3-平时;4-谷时) + * @see com.jsowell.common.enums.ykc.BillingTimeTypeEnum + */ + private String timeType; + + /** + * 开始时间 + */ + private String startTime; + + /** + * 结束时间 + */ + private String endTime; + + /** + * 该时段用电量 + */ + private BigDecimal usedElectricity; + + /** + * 该时段消费金额 + */ + private BigDecimal timeAmount; + + /** + * 该时段电费 + */ + private BigDecimal timeElectricityPrice; + + /** + * 该时段服务费 + */ + private BigDecimal timeServicePrice; + +}