update 优化订单金额展示

This commit is contained in:
2023-05-12 15:03:29 +08:00
parent 93f48823ab
commit 8713d82961
15 changed files with 238 additions and 102 deletions

View File

@@ -15,7 +15,6 @@ import com.jsowell.common.core.redis.RedisCache;
import com.jsowell.common.enums.InvoiceRecordEnum; import com.jsowell.common.enums.InvoiceRecordEnum;
import com.jsowell.common.enums.MemberWalletEnum; import com.jsowell.common.enums.MemberWalletEnum;
import com.jsowell.common.enums.ykc.ActionTypeEnum; import com.jsowell.common.enums.ykc.ActionTypeEnum;
import com.jsowell.common.enums.ykc.BillingTimeEnum;
import com.jsowell.common.enums.ykc.OrderPayModeEnum; import com.jsowell.common.enums.ykc.OrderPayModeEnum;
import com.jsowell.common.enums.ykc.OrderPayRecordEnum; import com.jsowell.common.enums.ykc.OrderPayRecordEnum;
import com.jsowell.common.enums.ykc.OrderStatusEnum; import com.jsowell.common.enums.ykc.OrderStatusEnum;
@@ -64,6 +63,8 @@ import com.jsowell.pile.service.WechatPayService;
import com.jsowell.pile.service.WxpayCallbackRecordService; import com.jsowell.pile.service.WxpayCallbackRecordService;
import com.jsowell.pile.transaction.dto.OrderTransactionDTO; import com.jsowell.pile.transaction.dto.OrderTransactionDTO;
import com.jsowell.pile.transaction.service.TransactionService; import com.jsowell.pile.transaction.service.TransactionService;
import com.jsowell.pile.vo.base.OrderAmountDetailVO;
import com.jsowell.pile.vo.base.OrderPeriodAmountVO;
import com.jsowell.pile.vo.base.PileInfoVO; import com.jsowell.pile.vo.base.PileInfoVO;
import com.jsowell.pile.vo.uniapp.InvoiceRecordVO; import com.jsowell.pile.vo.uniapp.InvoiceRecordVO;
import com.jsowell.pile.vo.uniapp.MemberVO; import com.jsowell.pile.vo.uniapp.MemberVO;
@@ -794,48 +795,12 @@ public class OrderService {
// 查订单明细 // 查订单明细
OrderDetail orderDetail = orderBasicInfoService.getOrderDetailByOrderCode(orderCode); OrderDetail orderDetail = orderBasicInfoService.getOrderDetailByOrderCode(orderCode);
if (orderDetail != null) { if (orderDetail != null) {
OrderDetailInfoVO.BillingDetails billingDetails = new OrderDetailInfoVO.BillingDetails(); OrderAmountDetailVO billingDetails = new OrderAmountDetailVO();
BeanUtils.copyBeanProp(billingDetails, orderDetail); BeanUtils.copyBeanProp(billingDetails, orderDetail);
vo.setBillingDetails(billingDetails); vo.setBillingDetails(billingDetails);
// new 收费明细 List<OrderPeriodAmountVO> orderPeriodAmountVOS = orderBasicInfoService.transformPeriodAmountByOrderDetail(orderDetail);
OrderDetailInfoVO.ChargeDetail sharp = new OrderDetailInfoVO.ChargeDetail(); vo.setChargeDetails(orderPeriodAmountVOS);
sharp.setPeriodType(BillingTimeEnum.SHARP.getLabel());
sharp.setElectricityPrice(orderDetail.getSharpElectricityPrice());
sharp.setServicePrice(orderDetail.getSharpServicePrice());
BigDecimal sharpUsedElectricity = orderDetail.getSharpUsedElectricity() == null ? BigDecimal.ZERO : orderDetail.getSharpUsedElectricity();
sharp.setUsedElectricity(sharpUsedElectricity);
sharp.setElectricityAmount(sharp.getElectricityPrice().multiply(sharp.getUsedElectricity()).setScale(2, BigDecimal.ROUND_DOWN));
sharp.setServiceAmount(sharp.getServicePrice().multiply(sharp.getUsedElectricity()).setScale(2, BigDecimal.ROUND_DOWN));
OrderDetailInfoVO.ChargeDetail peak = new OrderDetailInfoVO.ChargeDetail();
peak.setPeriodType(BillingTimeEnum.PEAK.getLabel());
peak.setElectricityPrice(orderDetail.getPeakElectricityPrice());
peak.setServicePrice(orderDetail.getPeakServicePrice());
BigDecimal peakUsedElectricity = orderDetail.getPeakUsedElectricity() == null ? BigDecimal.ZERO : orderDetail.getPeakUsedElectricity();
peak.setUsedElectricity(peakUsedElectricity);
peak.setElectricityAmount(peak.getElectricityPrice().multiply(peak.getUsedElectricity()).setScale(2, BigDecimal.ROUND_DOWN));
peak.setServiceAmount(peak.getServicePrice().multiply(peak.getUsedElectricity()).setScale(2, BigDecimal.ROUND_DOWN));
OrderDetailInfoVO.ChargeDetail flat = new OrderDetailInfoVO.ChargeDetail();
flat.setPeriodType(BillingTimeEnum.FLAT.getLabel());
flat.setElectricityPrice(orderDetail.getFlatElectricityPrice());
flat.setServicePrice(orderDetail.getFlatServicePrice());
BigDecimal flatUsedElectricity = orderDetail.getFlatUsedElectricity() == null ? BigDecimal.ZERO : orderDetail.getFlatUsedElectricity();
flat.setUsedElectricity(flatUsedElectricity);
flat.setElectricityAmount(flat.getElectricityPrice().multiply(flat.getUsedElectricity()).setScale(2, BigDecimal.ROUND_DOWN));
flat.setServiceAmount(flat.getServicePrice().multiply(flat.getUsedElectricity()).setScale(2, BigDecimal.ROUND_DOWN));
OrderDetailInfoVO.ChargeDetail valley = new OrderDetailInfoVO.ChargeDetail();
valley.setPeriodType(BillingTimeEnum.VALLEY.getLabel());
valley.setElectricityPrice(orderDetail.getValleyElectricityPrice());
valley.setServicePrice(orderDetail.getValleyServicePrice());
BigDecimal valleyUsedElectricity = orderDetail.getValleyUsedElectricity() == null ? BigDecimal.ZERO : orderDetail.getValleyUsedElectricity();
valley.setUsedElectricity(valleyUsedElectricity);
valley.setElectricityAmount(valley.getElectricityPrice().multiply(valley.getUsedElectricity()).setScale(2, BigDecimal.ROUND_DOWN));
valley.setServiceAmount(valley.getServicePrice().multiply(valley.getUsedElectricity()).setScale(2, BigDecimal.ROUND_DOWN));
vo.setChargeDetails(Lists.newArrayList(sharp, peak, flat, valley));
} }
// 用户信息 // 用户信息
@@ -940,10 +905,9 @@ public class OrderService {
OrderDetail orderDetail = orderBasicInfoService.getOrderDetailByOrderCode(orderCode); OrderDetail orderDetail = orderBasicInfoService.getOrderDetailByOrderCode(orderCode);
if (orderDetail != null) { if (orderDetail != null) {
UniAppOrderVO.BillingDetails billingDetails = new UniAppOrderVO.BillingDetails(); OrderAmountDetailVO billingDetails = new OrderAmountDetailVO();
BeanUtils.copyBeanProp(billingDetails, orderDetail); BeanUtils.copyBeanProp(billingDetails, orderDetail);
vo.setBillingDetails(billingDetails); vo.setBillingDetails(billingDetails);
// orderDetail.getSharpElectricityPrice()
} }
try { try {

View File

@@ -63,7 +63,7 @@ public class OrderInvoiceRecordController extends BaseController {
@PreAuthorize("@ss.hasPermi('order:invoice:query')") @PreAuthorize("@ss.hasPermi('order:invoice:query')")
@GetMapping(value = "/{id}") @GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Integer id) { public AjaxResult getInfo(@PathVariable("id") Integer id) {
return AjaxResult.success(orderInvoiceRecordService.selectOrderInvoiceRecordById(id)); return AjaxResult.success(orderInvoiceRecordService.selectInvoiceTitleVO(id));
} }
/** /**

View File

@@ -205,4 +205,6 @@ public interface OrderBasicInfoMapper {
List<OrderDetail> queryElecAmountNullList(); List<OrderDetail> queryElecAmountNullList();
int batchUpdateOrderDetail(@Param("list") List<OrderDetail> orderDetailList); int batchUpdateOrderDetail(@Param("list") List<OrderDetail> orderDetailList);
List<OrderDetail> getOrderDetailList(List<String> orderCodes);
} }

View File

@@ -5,6 +5,8 @@ import com.jsowell.common.core.domain.ykc.TransactionRecordsData;
import com.jsowell.pile.domain.OrderBasicInfo; import com.jsowell.pile.domain.OrderBasicInfo;
import com.jsowell.pile.domain.OrderDetail; import com.jsowell.pile.domain.OrderDetail;
import com.jsowell.pile.dto.*; import com.jsowell.pile.dto.*;
import com.jsowell.pile.vo.base.OrderAmountDetailVO;
import com.jsowell.pile.vo.base.OrderPeriodAmountVO;
import com.jsowell.pile.vo.lianlian.AccumulativeInfoVO; import com.jsowell.pile.vo.lianlian.AccumulativeInfoVO;
import com.jsowell.pile.vo.uniapp.OrderVO; import com.jsowell.pile.vo.uniapp.OrderVO;
import com.jsowell.pile.vo.uniapp.PersonPileConnectorSumInfoVO; import com.jsowell.pile.vo.uniapp.PersonPileConnectorSumInfoVO;
@@ -108,6 +110,8 @@ public interface IOrderBasicInfoService {
*/ */
OrderDetail getOrderDetailByOrderCode(String orderCode); OrderDetail getOrderDetailByOrderCode(String orderCode);
List<OrderDetail> getOrderDetailList(List<String> orderCodes);
/** /**
* 通过会员Id和订单状态查询订单信息 * 通过会员Id和订单状态查询订单信息
* *
@@ -231,4 +235,8 @@ public interface IOrderBasicInfoService {
* @return * @return
*/ */
Map<String, Object> generateOrderForLianLian(QueryStartChargeDTO dto); Map<String, Object> generateOrderForLianLian(QueryStartChargeDTO dto);
List<OrderAmountDetailVO> queryOrderAmountDetail(List<String> orderCodes);
List<OrderPeriodAmountVO> transformPeriodAmountByOrderDetail(OrderDetail orderDetail);
} }

View File

@@ -2,6 +2,7 @@ package com.jsowell.pile.service;
import com.jsowell.pile.domain.OrderInvoiceRecord; import com.jsowell.pile.domain.OrderInvoiceRecord;
import com.jsowell.pile.dto.QueryInvoiceRecordDTO; import com.jsowell.pile.dto.QueryInvoiceRecordDTO;
import com.jsowell.pile.vo.web.InvoiceRecordVO;
import java.util.List; import java.util.List;
@@ -20,6 +21,8 @@ public interface IOrderInvoiceRecordService {
*/ */
public OrderInvoiceRecord selectOrderInvoiceRecordById(Integer id); public OrderInvoiceRecord selectOrderInvoiceRecordById(Integer id);
InvoiceRecordVO selectInvoiceTitleVO(Integer id);
/** /**
* 查询申请开票列表 * 查询申请开票列表
* *

View File

@@ -14,6 +14,7 @@ import com.jsowell.common.core.domain.ykc.RealTimeMonitorData;
import com.jsowell.common.core.domain.ykc.TransactionRecordsData; import com.jsowell.common.core.domain.ykc.TransactionRecordsData;
import com.jsowell.common.core.redis.RedisCache; import com.jsowell.common.core.redis.RedisCache;
import com.jsowell.common.enums.MemberWalletEnum; import com.jsowell.common.enums.MemberWalletEnum;
import com.jsowell.common.enums.ykc.BillingTimeEnum;
import com.jsowell.common.enums.ykc.OrderPayModeEnum; import com.jsowell.common.enums.ykc.OrderPayModeEnum;
import com.jsowell.common.enums.ykc.OrderPayStatusEnum; import com.jsowell.common.enums.ykc.OrderPayStatusEnum;
import com.jsowell.common.enums.ykc.OrderStatusEnum; import com.jsowell.common.enums.ykc.OrderStatusEnum;
@@ -60,6 +61,8 @@ import com.jsowell.pile.service.WxpayCallbackRecordService;
import com.jsowell.pile.service.WxpayRefundCallbackService; import com.jsowell.pile.service.WxpayRefundCallbackService;
import com.jsowell.pile.transaction.dto.OrderTransactionDTO; import com.jsowell.pile.transaction.dto.OrderTransactionDTO;
import com.jsowell.pile.transaction.service.TransactionService; import com.jsowell.pile.transaction.service.TransactionService;
import com.jsowell.pile.vo.base.OrderAmountDetailVO;
import com.jsowell.pile.vo.base.OrderPeriodAmountVO;
import com.jsowell.pile.vo.base.PileInfoVO; import com.jsowell.pile.vo.base.PileInfoVO;
import com.jsowell.pile.vo.lianlian.AccumulativeInfoVO; import com.jsowell.pile.vo.lianlian.AccumulativeInfoVO;
import com.jsowell.pile.vo.uniapp.MemberVO; import com.jsowell.pile.vo.uniapp.MemberVO;
@@ -1323,6 +1326,11 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
return orderBasicInfoMapper.getOrderDetailByOrderCode(orderCode); return orderBasicInfoMapper.getOrderDetailByOrderCode(orderCode);
} }
@Override
public List<OrderDetail> getOrderDetailList(List<String> orderCodes) {
return orderBasicInfoMapper.getOrderDetailList(orderCodes);
}
/** /**
* 通过会员Id和订单状态查询订单信息 * 通过会员Id和订单状态查询订单信息
* *
@@ -1558,4 +1566,68 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
return resultMap; return resultMap;
} }
@Override
public List<OrderAmountDetailVO> queryOrderAmountDetail(List<String> orderCodes) {
List<OrderDetail> orderDetailList = getOrderDetailList(orderCodes);
if (CollectionUtils.isEmpty(orderDetailList)) {
return Lists.newArrayList();
}
List<OrderAmountDetailVO> resultList = Lists.newArrayList();
OrderAmountDetailVO vo = null;
for (OrderDetail orderDetail : orderDetailList) {
vo = new OrderAmountDetailVO();
BeanUtils.copyBeanProp(vo, orderDetail);
resultList.add(vo);
}
return resultList;
}
/**
* 订单详情 转换为各个时段的详情
*/
@Override
public List<OrderPeriodAmountVO> transformPeriodAmountByOrderDetail(OrderDetail orderDetail) {
// 尖时段
OrderPeriodAmountVO sharp = new OrderPeriodAmountVO();
sharp.setPeriodType(BillingTimeEnum.SHARP.getLabel());
sharp.setElectricityPrice(orderDetail.getSharpElectricityPrice());
sharp.setServicePrice(orderDetail.getSharpServicePrice());
BigDecimal sharpUsedElectricity = orderDetail.getSharpUsedElectricity() == null ? BigDecimal.ZERO : orderDetail.getSharpUsedElectricity();
sharp.setUsedElectricity(sharpUsedElectricity);
sharp.setElectricityAmount(sharp.getElectricityPrice().multiply(sharp.getUsedElectricity()).setScale(2, BigDecimal.ROUND_DOWN));
sharp.setServiceAmount(sharp.getServicePrice().multiply(sharp.getUsedElectricity()).setScale(2, BigDecimal.ROUND_DOWN));
// 峰时段
OrderPeriodAmountVO peak = new OrderPeriodAmountVO();
peak.setPeriodType(BillingTimeEnum.PEAK.getLabel());
peak.setElectricityPrice(orderDetail.getPeakElectricityPrice());
peak.setServicePrice(orderDetail.getPeakServicePrice());
BigDecimal peakUsedElectricity = orderDetail.getPeakUsedElectricity() == null ? BigDecimal.ZERO : orderDetail.getPeakUsedElectricity();
peak.setUsedElectricity(peakUsedElectricity);
peak.setElectricityAmount(peak.getElectricityPrice().multiply(peak.getUsedElectricity()).setScale(2, BigDecimal.ROUND_DOWN));
peak.setServiceAmount(peak.getServicePrice().multiply(peak.getUsedElectricity()).setScale(2, BigDecimal.ROUND_DOWN));
// 平时段
OrderPeriodAmountVO flat = new OrderPeriodAmountVO();
flat.setPeriodType(BillingTimeEnum.FLAT.getLabel());
flat.setElectricityPrice(orderDetail.getFlatElectricityPrice());
flat.setServicePrice(orderDetail.getFlatServicePrice());
BigDecimal flatUsedElectricity = orderDetail.getFlatUsedElectricity() == null ? BigDecimal.ZERO : orderDetail.getFlatUsedElectricity();
flat.setUsedElectricity(flatUsedElectricity);
flat.setElectricityAmount(flat.getElectricityPrice().multiply(flat.getUsedElectricity()).setScale(2, BigDecimal.ROUND_DOWN));
flat.setServiceAmount(flat.getServicePrice().multiply(flat.getUsedElectricity()).setScale(2, BigDecimal.ROUND_DOWN));
// 谷时段
OrderPeriodAmountVO valley = new OrderPeriodAmountVO();
valley.setPeriodType(BillingTimeEnum.VALLEY.getLabel());
valley.setElectricityPrice(orderDetail.getValleyElectricityPrice());
valley.setServicePrice(orderDetail.getValleyServicePrice());
BigDecimal valleyUsedElectricity = orderDetail.getValleyUsedElectricity() == null ? BigDecimal.ZERO : orderDetail.getValleyUsedElectricity();
valley.setUsedElectricity(valleyUsedElectricity);
valley.setElectricityAmount(valley.getElectricityPrice().multiply(valley.getUsedElectricity()).setScale(2, BigDecimal.ROUND_DOWN));
valley.setServiceAmount(valley.getServicePrice().multiply(valley.getUsedElectricity()).setScale(2, BigDecimal.ROUND_DOWN));
return Lists.newArrayList(sharp, peak, flat, valley);
}
} }

View File

@@ -1,9 +1,16 @@
package com.jsowell.pile.service.impl; package com.jsowell.pile.service.impl;
import com.google.common.collect.Lists;
import com.jsowell.common.util.DateUtils;
import com.jsowell.pile.domain.OrderInvoiceRecord; import com.jsowell.pile.domain.OrderInvoiceRecord;
import com.jsowell.pile.dto.QueryInvoiceRecordDTO; import com.jsowell.pile.dto.QueryInvoiceRecordDTO;
import com.jsowell.pile.mapper.OrderInvoiceRecordMapper; import com.jsowell.pile.mapper.OrderInvoiceRecordMapper;
import com.jsowell.pile.service.IMemberInvoiceTitleService;
import com.jsowell.pile.service.IOrderBasicInfoService;
import com.jsowell.pile.service.IOrderInvoiceRecordService; import com.jsowell.pile.service.IOrderInvoiceRecordService;
import com.jsowell.pile.vo.base.OrderAmountDetailVO;
import com.jsowell.pile.vo.uniapp.InvoiceTitleVO;
import com.jsowell.pile.vo.web.InvoiceRecordVO;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -20,6 +27,12 @@ public class OrderInvoiceRecordServiceImpl implements IOrderInvoiceRecordService
@Autowired @Autowired
private OrderInvoiceRecordMapper orderInvoiceRecordMapper; private OrderInvoiceRecordMapper orderInvoiceRecordMapper;
@Autowired
private IMemberInvoiceTitleService memberInvoiceTitleService;
@Autowired
private IOrderBasicInfoService orderBasicInfoService;
/** /**
* 查询申请开票 * 查询申请开票
* *
@@ -31,6 +44,33 @@ public class OrderInvoiceRecordServiceImpl implements IOrderInvoiceRecordService
return orderInvoiceRecordMapper.selectOrderInvoiceRecordById(id); return orderInvoiceRecordMapper.selectOrderInvoiceRecordById(id);
} }
@Override
public InvoiceRecordVO selectInvoiceTitleVO(Integer id) {
// 申请记录信息
OrderInvoiceRecord orderInvoiceRecord = selectOrderInvoiceRecordById(id);
if (orderInvoiceRecord == null) {
return null;
}
// 发票抬头信息
InvoiceTitleVO invoiceTitleVO = memberInvoiceTitleService.selectByTitleId(orderInvoiceRecord.getTitleId());
// 订单信息
List<String> orderCodes = Lists.newArrayList(orderInvoiceRecord.getOrderCodes().split(","));
List<OrderAmountDetailVO> orderAmountDetailVOS = orderBasicInfoService.queryOrderAmountDetail(orderCodes);
InvoiceRecordVO vo = InvoiceRecordVO.builder()
.id(orderInvoiceRecord.getId() + "")
.memberId(orderInvoiceRecord.getMemberId())
.status(orderInvoiceRecord.getStatus())
.invoiceTitle(invoiceTitleVO)
.orderList(orderAmountDetailVOS)
.createTime(DateUtils.formatDateTime(orderInvoiceRecord.getCreateTime()))
.updateTime(DateUtils.formatDateTime(orderInvoiceRecord.getUpdateTime()))
.build();
return vo;
}
/** /**
* 查询申请开票列表 * 查询申请开票列表
* *

View File

@@ -0,0 +1,40 @@
package com.jsowell.pile.vo.base;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/**
* 订单金额明细
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class OrderAmountDetailVO {
private String orderCode; // 订单编号
private BigDecimal totalUsedElectricity; // 总用电量
private BigDecimal totalOrderAmount; // 订单总金额(电费总额+服务费总额)
private BigDecimal totalElectricityAmount; // 电费总金额(各时段消耗电费总金额)
private BigDecimal totalServiceAmount; // 服务费总金额(各时段服务费总金额)
private BigDecimal sharpUsedElectricity; // 尖时段用电量
private BigDecimal sharpElectricityPrice; // 尖时段电费单价
private BigDecimal sharpServicePrice; // 尖时段服务费单价
private BigDecimal peakUsedElectricity; // 峰时段用电量
private BigDecimal peakElectricityPrice; // 峰时段电费单价
private BigDecimal peakServicePrice; // 峰时段服务费单价
private BigDecimal flatUsedElectricity; // 平时段用电量
private BigDecimal flatElectricityPrice; // 平时段电费单价
private BigDecimal flatServicePrice; // 平时段服务费单价
private BigDecimal valleyUsedElectricity; // 谷时段用电量
private BigDecimal valleyElectricityPrice; // 谷时段电费单价
private BigDecimal valleyServicePrice; // 谷时段服务费单价
}

View File

@@ -0,0 +1,24 @@
package com.jsowell.pile.vo.base;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/**
* 订单时段收费明细
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class OrderPeriodAmountVO {
private String periodType; // 时段类型
private BigDecimal usedElectricity; // 用电量
private BigDecimal electricityPrice; // 电费单价
private BigDecimal servicePrice; // 服务费单价
private BigDecimal electricityAmount; // 电费金额
private BigDecimal serviceAmount; // 服务费金额
}

View File

@@ -1,11 +1,11 @@
package com.jsowell.pile.vo.uniapp; package com.jsowell.pile.vo.uniapp;
import com.jsowell.pile.vo.base.OrderAmountDetailVO;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
@Data @Data
@@ -162,25 +162,6 @@ public class UniAppOrderVO {
private String batteryMaxTemperature; private String batteryMaxTemperature;
} }
private BillingDetails billingDetails; private OrderAmountDetailVO billingDetails;
@Data
public static class BillingDetails{
private BigDecimal totalUsedElectricity; // 总用电量
private BigDecimal totalOrderAmount; // 订单总金额(电费总额+服务费总额)
private BigDecimal totalElectricityAmount; // 电费总金额(各时段消耗电费总金额)
private BigDecimal totalServiceAmount; // 服务费总金额(各时段服务费总金额)
private BigDecimal sharpUsedElectricity; // 尖时段用电量
private BigDecimal sharpElectricityPrice; // 尖时段电费单价
private BigDecimal sharpServicePrice; // 尖时段服务费单价
private BigDecimal peakUsedElectricity; // 峰时段用电量
private BigDecimal peakElectricityPrice; // 峰时段电费单价
private BigDecimal peakServicePrice; // 峰时段服务费单价
private BigDecimal flatUsedElectricity; // 平时段用电量
private BigDecimal flatElectricityPrice; // 平时段电费单价
private BigDecimal flatServicePrice; // 平时段服务费单价
private BigDecimal valleyUsedElectricity; // 谷时段用电量
private BigDecimal valleyElectricityPrice; // 谷时段电费单价
private BigDecimal valleyServicePrice; // 谷时段服务费单价
}
} }

View File

@@ -1,11 +1,14 @@
package com.jsowell.pile.vo.web; package com.jsowell.pile.vo.web;
import com.jsowell.pile.vo.base.OrderAmountDetailVO;
import com.jsowell.pile.vo.uniapp.InvoiceTitleVO; import com.jsowell.pile.vo.uniapp.InvoiceTitleVO;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.util.List;
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@@ -44,5 +47,5 @@ public class InvoiceRecordVO {
/** /**
* 订单明细 * 订单明细
*/ */
// private List<> orderList; private List<OrderAmountDetailVO> orderList;
} }

View File

@@ -1,11 +1,12 @@
package com.jsowell.pile.vo.web; package com.jsowell.pile.vo.web;
import com.jsowell.common.core.domain.ykc.RealTimeMonitorData; import com.jsowell.common.core.domain.ykc.RealTimeMonitorData;
import com.jsowell.pile.vo.base.OrderAmountDetailVO;
import com.jsowell.pile.vo.base.OrderPeriodAmountVO;
import com.jsowell.pile.vo.base.PileInfoVO; import com.jsowell.pile.vo.base.PileInfoVO;
import com.jsowell.pile.vo.uniapp.MemberVO; import com.jsowell.pile.vo.uniapp.MemberVO;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
/** /**
@@ -16,7 +17,8 @@ public class OrderDetailInfoVO {
// 订单信息 // 订单信息
private OrderInfo orderInfo; private OrderInfo orderInfo;
private BillingDetails billingDetails; // 账单明细
private OrderAmountDetailVO billingDetails;
// 用户信息 // 用户信息
private MemberVO memberInfo; private MemberVO memberInfo;
@@ -36,37 +38,7 @@ public class OrderDetailInfoVO {
private RealTimeMonitorData lastMonitorData; private RealTimeMonitorData lastMonitorData;
// 收费明细 // 收费明细
private List<ChargeDetail> chargeDetails; private List<OrderPeriodAmountVO> chargeDetails;
@Data
public static class ChargeDetail{
private String periodType; // 时段类型
private BigDecimal usedElectricity; // 用电量
private BigDecimal electricityPrice; // 电费单价
private BigDecimal servicePrice; // 服务费单价
private BigDecimal electricityAmount; // 电费金额
private BigDecimal serviceAmount; // 服务费金额
}
@Data
public static class BillingDetails{
private BigDecimal totalUsedElectricity; // 总用电量
private BigDecimal totalOrderAmount; // 订单总金额(电费总额+服务费总额)
private BigDecimal totalElectricityAmount; // 电费总金额(各时段消耗电费总金额)
private BigDecimal totalServiceAmount; // 服务费总金额(各时段服务费总金额)
private BigDecimal sharpUsedElectricity; // 尖时段用电量
private BigDecimal sharpElectricityPrice; // 尖时段电费单价
private BigDecimal sharpServicePrice; // 尖时段服务费单价
private BigDecimal peakUsedElectricity; // 峰时段用电量
private BigDecimal peakElectricityPrice; // 峰时段电费单价
private BigDecimal peakServicePrice; // 峰时段服务费单价
private BigDecimal flatUsedElectricity; // 平时段用电量
private BigDecimal flatElectricityPrice; // 平时段电费单价
private BigDecimal flatServicePrice; // 平时段服务费单价
private BigDecimal valleyUsedElectricity; // 谷时段用电量
private BigDecimal valleyElectricityPrice; // 谷时段电费单价
private BigDecimal valleyServicePrice; // 谷时段服务费单价
}
@Data @Data
public static class OrderInfo { public static class OrderInfo {

View File

@@ -974,4 +974,15 @@
id=#{i.id} id=#{i.id}
</foreach> </foreach>
</update> </update>
<select id="getOrderDetailList" resultMap="OrderDetailResult">
select
<include refid="Detail_Base_Column_List"/>
from order_detail
where del_flag = '0'
and order_code in
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item,jdbcType=VARCHAR}
</foreach>
</select>
</mapper> </mapper>

View File

@@ -7,6 +7,7 @@
<resultMap type="com.jsowell.pile.domain.OrderInvoiceRecord" id="OrderInvoiceRecordResult"> <resultMap type="com.jsowell.pile.domain.OrderInvoiceRecord" id="OrderInvoiceRecordResult">
<result property="id" column="id" /> <result property="id" column="id" />
<result property="memberId" column="member_id" /> <result property="memberId" column="member_id" />
<result property="titleId" column="title_id" />
<result property="orderCodes" column="order_codes" /> <result property="orderCodes" column="order_codes" />
<result property="status" column="status" /> <result property="status" column="status" />
<result property="totalAmount" column="total_amount" /> <result property="totalAmount" column="total_amount" />
@@ -21,7 +22,8 @@
<sql id="Base_Column_List"> <sql id="Base_Column_List">
<!--@mbg.generated--> <!--@mbg.generated-->
id, member_id, order_codes, status, total_amount, total_service_amount, total_elec_amount, create_by, create_time, update_by, update_time, del_flag id, member_id, title_id, order_codes, status, total_amount, total_service_amount, total_elec_amount,
create_by, create_time, update_by, update_time, del_flag
</sql> </sql>
<sql id="selectOrderInvoiceRecordVo"> <sql id="selectOrderInvoiceRecordVo">

View File

@@ -49,10 +49,15 @@
</div> </div>
</template> </template>
<script> <script>
import {getInvoice} from "@/api/order/invoice";
export default { export default {
name: "", name: "",
data() { data() {
return { return {
// 申请开票 id
invoiceRecordId: null,
// 列表数据
tableData: [{ tableData: [{
id: '12987122', id: '12987122',
amount1: '234', amount1: '234',
@@ -78,14 +83,23 @@ export default {
amount1: '539', amount1: '539',
amount2: '4.1', amount2: '4.1',
amount3: 15 amount3: 15
}] }],
}; };
}, },
created() { created() {
const id = this.$route.params.id; this.invoiceRecordId = this.$route.params.id;
console.log("发票详情:", this.$route.params);//打印结果为{user:'david'} console.log("发票详情:", this.invoiceRecordId);//打印结果为{user:'david'}
this.selectInvoiceRecord();
}, },
methods: { methods: {
// 查询申请开票信息详情
selectInvoiceRecord() {
getInvoice(this.invoiceRecordId).then(response => {
console.log("查询申请开票信息详情结果", response);
});
},
// 合计
getSummaries(param) { getSummaries(param) {
const { columns, data } = param; const { columns, data } = param;
const sums = []; const sums = [];