update 订单详情 new收费明细

This commit is contained in:
2023-05-05 16:46:43 +08:00
parent 4ea0f8d562
commit c2e5784caa
3 changed files with 86 additions and 1 deletions

View File

@@ -15,6 +15,7 @@ import com.jsowell.common.core.redis.RedisCache;
import com.jsowell.common.enums.InvoiceRecordEnum;
import com.jsowell.common.enums.MemberWalletEnum;
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.OrderPayRecordEnum;
import com.jsowell.common.enums.ykc.OrderStatusEnum;
@@ -796,6 +797,41 @@ public class OrderService {
OrderDetailInfoVO.BillingDetails billingDetails = new OrderDetailInfoVO.BillingDetails();
BeanUtils.copyBeanProp(billingDetails, orderDetail);
vo.setBillingDetails(billingDetails);
// new 收费明细
OrderDetailInfoVO.ChargeDetail sharp = new OrderDetailInfoVO.ChargeDetail();
sharp.setPeriodType(BillingTimeEnum.SHARP.getLabel());
sharp.setElectricityPrice(orderDetail.getSharpElectricityPrice());
sharp.setServicePrice(orderDetail.getSharpServicePrice());
sharp.setUsedElectricity(orderDetail.getSharpUsedElectricity());
sharp.setElectricityAmount(sharp.getElectricityPrice().multiply(sharp.getUsedElectricity()));
sharp.setServiceAmount(sharp.getServicePrice().multiply(sharp.getUsedElectricity()));
OrderDetailInfoVO.ChargeDetail peak = new OrderDetailInfoVO.ChargeDetail();
peak.setPeriodType(BillingTimeEnum.PEAK.getLabel());
peak.setElectricityPrice(orderDetail.getPeakElectricityPrice());
peak.setServicePrice(orderDetail.getPeakServicePrice());
peak.setUsedElectricity(orderDetail.getPeakUsedElectricity());
peak.setElectricityAmount(peak.getElectricityPrice().multiply(peak.getUsedElectricity()));
peak.setServiceAmount(peak.getServicePrice().multiply(peak.getUsedElectricity()));
OrderDetailInfoVO.ChargeDetail flat = new OrderDetailInfoVO.ChargeDetail();
flat.setPeriodType(BillingTimeEnum.PEAK.getLabel());
flat.setElectricityPrice(orderDetail.getFlatElectricityPrice());
flat.setServicePrice(orderDetail.getFlatServicePrice());
flat.setUsedElectricity(orderDetail.getFlatUsedElectricity());
flat.setElectricityAmount(flat.getElectricityPrice().multiply(flat.getUsedElectricity()));
flat.setServiceAmount(flat.getServicePrice().multiply(flat.getUsedElectricity()));
OrderDetailInfoVO.ChargeDetail valley = new OrderDetailInfoVO.ChargeDetail();
valley.setPeriodType(BillingTimeEnum.PEAK.getLabel());
valley.setElectricityPrice(orderDetail.getValleyElectricityPrice());
valley.setServicePrice(orderDetail.getValleyServicePrice());
valley.setUsedElectricity(orderDetail.getValleyUsedElectricity());
valley.setElectricityAmount(valley.getElectricityPrice().multiply(valley.getUsedElectricity()));
valley.setServiceAmount(valley.getServicePrice().multiply(valley.getUsedElectricity()));
vo.setChargeDetails(Lists.newArrayList(sharp, peak, flat, valley));
}
// 用户信息

View File

@@ -35,7 +35,18 @@ public class OrderDetailInfoVO {
private RealTimeMonitorData lastMonitorData;
// billingDetails
// 收费明细
private List<ChargeDetail> 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{

View File

@@ -117,6 +117,19 @@
<div class="marginTop"></div>
</el-card>
<el-card class="cardStyle">
<h3>收费明细new</h3>
<el-table :data="tableData" border show-summary :summary-method="getSummaries">
<el-table-column prop="periodType" label="时段类型" width="180" align="center"/>
<el-table-column prop="electricityPrice" label="电费单价(元/千瓦时)" align="center"/>
<el-table-column prop="servicePrice" label="服务费单价(元/千瓦时)" align="center"/>
<el-table-column prop="usedElectricity" label="用电量(千瓦时)" align="center"/>
<el-table-column prop="electricityAmount" label="电费金额(元)" align="center"/>
<el-table-column prop="serviceAmount" label="服务费金额(元)" align="center"/>
</el-table>
<div class="marginTop"></div>
</el-card>
<el-card class="cardStyle">
<h3>实时订单数据</h3>
<el-table style="width: 100%" :data="orderRealTimeInfo" border>
@@ -225,12 +238,36 @@ export default {
chargingAmount: null,
chargingDegree: null,
},
tableData: []
};
},
created() {
this.getOrderDetail();
},
methods: {
getSummaries(param) {
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '总价';
return;
}
const values = data.map(item => Number(item[column.property]));
if (column.property === 'usedElectricity' ||column.property ==='electricityAmount' || column.property==='serviceAmount' ) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return prev + curr;
} else {
return prev;
}
}, 0);
sums[index];
}
});
return sums;
},
clickManualSettlement() {
this.dialogVisible = true;
},
@@ -264,6 +301,7 @@ export default {
console.log("this.pileIn", this.pileIn);
this.orderRealTimeInfo = [data.orderRealTimeInfo];
this.orderDetail = [data.billingDetails];
this.tableData = data.chargeDetails;
this.lastMonitorData = data.lastMonitorData;
},
},