ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TSettlementConfirm.java
@@ -101,6 +101,12 @@ @ApiModelProperty(value = "承担金额") @TableField("proportion_money") private BigDecimal proportionMoney; @ApiModelProperty(value = "合作商充电服务费根据合同约定分成比例") @TableField(exist = false) private String proportionPartnerString; @ApiModelProperty(value = "平台充电服务费根据合同约定分成比例") @TableField(exist = false) private String proportionMoneyString; @ApiModelProperty(value = "本期结算电费总金额 (实际电费转账)") @TableField("total_electronic") private BigDecimal totalElectronic; ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderListVO.java
@@ -17,6 +17,8 @@ @ApiModelProperty(value = "订单状态") private Integer status; @ApiModelProperty(value = "充值支付方式(1=微信,2=支付宝)") private Integer rechargePaymentType; @ApiModelProperty(value = "充值支付状态(1=待支付,2=已支付)") private Integer rechargePaymentStatus; @ApiModelProperty(value = "电站id") ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java
@@ -547,9 +547,18 @@ if (chargingOrder.getCode()!=null){ List<UploadRealTimeMonitoringData> data6 = uploadRealTimeMonitoringDataClient.getDataByOrderCode(chargingOrder.getCode()).getData(); if (data6!=null && !data6.isEmpty()){ // 第一条数据soc为开始 最后一条数据soc为结束soc settlementExportVO.setStartSoc(data6.get(0).getSoc()+"%"); settlementExportVO.setEndSoc(data6.get(data6.size()-1).getSoc()+"%"); int min = 100; int max = 0; for (UploadRealTimeMonitoringData uploadRealTimeMonitoringData : data6) { if (uploadRealTimeMonitoringData.getSoc()>max){ max = uploadRealTimeMonitoringData.getSoc(); } if (uploadRealTimeMonitoringData.getSoc()!=0 &&uploadRealTimeMonitoringData.getSoc()<min){ min = uploadRealTimeMonitoringData.getSoc(); } } settlementExportVO.setEndSoc(max+""); settlementExportVO.setStartSoc(min+""); } } settlementExportVO.setIsSoc("否"); ruoyi-service/ruoyi-chargingPile/src/main/resources/template/运营商名称1-充电桩名称1-结算对账单明细-结算月份1.xlsxBinary files differ
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java
@@ -58,6 +58,7 @@ import java.math.BigDecimal; import java.math.RoundingMode; import java.net.URLEncoder; import java.text.SimpleDateFormat; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Arrays; @@ -112,6 +113,8 @@ @ApiOperation(value = "充电时段统计-导出", tags = {"管理后台-财务结算"}) @PutMapping("/export") public void export(@RequestBody ChargingListQuery dto) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); ChargingOrderTimeVO res = chargingOrderService.chargingList(dto); List<TChargingOrderExport> tChargingOrderExports = new ArrayList<>(); List<ChargingOrderListVO> exportList = res.getList().getRecords(); @@ -149,10 +152,19 @@ tChargingOrderExport.setOrderClassification("1"); tChargingOrderExport.setStartType("扫码"); tChargingOrderExport.setOne("小程序"); tChargingOrderExport.setTwo("小程序"); tChargingOrderExport.setCreateTime(chargingOrderListVO.getCreateTime()+""); tChargingOrderExport.setStartTime(chargingOrderListVO.getStartTime()+""); tChargingOrderExport.setEndTime(chargingOrderListVO.getEndTime()+""); if (chargingOrderListVO.getRechargePaymentType()!=null){ switch (chargingOrderListVO.getRechargePaymentType()){ case 1: tChargingOrderExport.setTwo("微信小程序"); break; case 2: tChargingOrderExport.setTwo("支付宝小程序"); break; } } tChargingOrderExport.setCreateTime(simpleDateFormat.format(chargingOrderListVO.getCreateTime())); tChargingOrderExport.setStartTime(simpleDateFormat.format(chargingOrderListVO.getStartTime())); tChargingOrderExport.setEndTime(simpleDateFormat.format(chargingOrderListVO.getEndTime())); tChargingOrderExport.setRechargePaymentStatus(chargingOrderListVO.getRechargePaymentStatus()+""); tChargingOrderExport.setType("充电订单"); tChargingOrderExport.setChargingType("单桩双充"); @@ -205,7 +217,6 @@ tChargingOrderExport.setVipType(data1.getName()); } } // tChargingOrderExport.setVipType(); tChargingOrderExport.setIsPlus(chargingOrderListVO.getVipDiscountAmount().compareTo(BigDecimal.ZERO)>0?"是":"否"); if (data3!=null){ tChargingOrderExport.setRealName(data3.getName()); ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java
@@ -645,7 +645,7 @@ } // 累加平台手续费 if (tChargingOrder.getOrderAmount()!=null){ commissionAmount = commissionAmount.add(tChargingOrder.getOrderAmount().multiply(BigDecimal.valueOf(0.006))); commissionAmount = commissionAmount.add(tChargingOrder.getPaymentAmount().multiply(BigDecimal.valueOf(0.006))); } // 累加平台分佣 if (tChargingOrder.getSharingAmount()!=null){ @@ -664,7 +664,7 @@ String timeString = String.format("%d小时%d分钟%d秒", hours, minutes, seconds); chargingBillVO.setChargingTime(timeString); chargingBillListVO.setPaymentAmount(paymentAmount); chargingBillListVO.setPaymentAmount(orderAmount.subtract(commissionAmount).subtract(sharingAmount)); chargingBillListVO.setOrderAmount(orderAmount); chargingBillListVO.setElectrovalence(electrovalence); chargingBillListVO.setServiceCharge(serviceCharge.setScale(2,RoundingMode.HALF_DOWN)); @@ -756,8 +756,8 @@ } // 累加平台手续费 if (tChargingOrder.getOrderAmount()!=null){ commissionAmount = commissionAmount.add(tChargingOrder.getOrderAmount().multiply(new BigDecimal("0.006"))); commissionAmountTotal = commissionAmountTotal.add(tChargingOrder.getOrderAmount().multiply(new BigDecimal("0.006"))); commissionAmount = commissionAmount.add(tChargingOrder.getPaymentAmount().multiply(new BigDecimal("0.006"))); commissionAmountTotal = commissionAmountTotal.add(tChargingOrder.getPaymentAmount().multiply(new BigDecimal("0.006"))); } // 累加平台分佣 if (tChargingOrder.getSharingAmount()!=null){ ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -1440,9 +1440,20 @@ // 获取开始SOC 结束soc if (chargingOrderListVO.getCode()!=null){ List<UploadRealTimeMonitoringData> data6 = uploadRealTimeMonitoringDataClient.getDataByOrderCode(chargingOrderListVO.getCode()).getData(); if (data6!=null && !data6.isEmpty()){ chargingOrderListVO.setEndSoc(data6.get(0).getSoc().toString()); chargingOrderListVO.setStartSoc(data6.get(data6.size()-1).getSoc().toString()); int min = 100; int max = 0; for (UploadRealTimeMonitoringData uploadRealTimeMonitoringData : data6) { if (uploadRealTimeMonitoringData.getSoc()>max){ max = uploadRealTimeMonitoringData.getSoc(); } if (uploadRealTimeMonitoringData.getSoc()!=0 &&uploadRealTimeMonitoringData.getSoc()<min){ min = uploadRealTimeMonitoringData.getSoc(); } } chargingOrderListVO.setEndSoc(max+""); chargingOrderListVO.setStartSoc(min+""); } }