From 00779ea0f8374e5bbdffc8faa20d65e3c72616c2 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期六, 02 十一月 2024 19:26:23 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 27 +++++++------ ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java | 53 ++++++++++++++------------ ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java | 13 +++--- ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrderRefund.java | 1 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java | 2 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java | 7 +++ ruoyi-service/ruoyi-chargingPile/src/main/resources/template/账户结算账单.xlsx | 0 7 files changed, 58 insertions(+), 45 deletions(-) diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java index e350f71..156e598 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java @@ -34,7 +34,9 @@ @ApiModelProperty(value = "序号") @TableField(exist = false) private Integer xuhao; - + @ApiModelProperty(value = "退款描述") + @TableField(exist = false) + private String refundContent; @ApiModelProperty(value = "订单编号") @TableField("code") private String code; @@ -206,6 +208,9 @@ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField("refund_time") private LocalDateTime refundTime; + @ApiModelProperty(value = "退款成功时间") + @TableField(exist = false) + private String refundTime1; @ApiModelProperty(value = "总电量") @TableField("total_electricity") private BigDecimal totalElectricity; diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrderRefund.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrderRefund.java index a2c7b2b..9d6430c 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrderRefund.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrderRefund.java @@ -40,6 +40,7 @@ @TableField("refund_code") private String refundCode; + @ApiModelProperty(value = "退款金额") @TableField("refund_amount") private BigDecimal refundAmount; diff --git "a/ruoyi-service/ruoyi-chargingPile/src/main/resources/template/\350\264\246\346\210\267\347\273\223\347\256\227\350\264\246\345\215\225.xlsx" "b/ruoyi-service/ruoyi-chargingPile/src/main/resources/template/\350\264\246\346\210\267\347\273\223\347\256\227\350\264\246\345\215\225.xlsx" index fe8f3b0..b004de2 100644 --- "a/ruoyi-service/ruoyi-chargingPile/src/main/resources/template/\350\264\246\346\210\267\347\273\223\347\256\227\350\264\246\345\215\225.xlsx" +++ "b/ruoyi-service/ruoyi-chargingPile/src/main/resources/template/\350\264\246\346\210\267\347\273\223\347\256\227\350\264\246\345\215\225.xlsx" Binary files differ diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java index fefdb02..255389b 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java @@ -75,12 +75,13 @@ List<ChargingBillListVO> records = res.getList().getRecords(); accountListVO.setBillCount(records.size()); accountListVO.setTotalAmount(res.getPaymentAmount().subtract(res.getRefundAmount()) - .subtract(res.getCommissionAmount()).subtract(res.getSharingAmount())); - accountListVO.setPaymentAmount(res.getPaymentAmount()); - accountListVO.setRefundAmount(res.getRefundAmount()); - accountListVO.setCommissionAmount(res.getCommissionAmount()); - accountListVO.setSharingAmount(res.getSharingAmount()); + .subtract(res.getCommissionAmount().setScale(2,BigDecimal.ROUND_DOWN)).subtract(res.getSharingAmount()).setScale(2, BigDecimal.ROUND_DOWN)); + accountListVO.setPaymentAmount(res.getPaymentAmount().setScale(2, BigDecimal.ROUND_DOWN)); + accountListVO.setRefundAmount(res.getRefundAmount().setScale(2, BigDecimal.ROUND_DOWN)); + accountListVO.setCommissionAmount(res.getCommissionAmount().setScale(2, BigDecimal.ROUND_DOWN)); + accountListVO.setSharingAmount(res.getSharingAmount().setScale(2, BigDecimal.ROUND_DOWN)); accountListVO.setList(res.getList()); + accountListVO.setOrderList(res.getExportList()); return R.ok(accountListVO); } @PostMapping(value = "/chargingBillList") @@ -337,7 +338,7 @@ chargingBillPayExport.setRechargeSerialNumber(tChargingOrder.getRechargeSerialNumber()); chargingBillPayExport.setCode(tChargingOrder.getCode()); chargingBillPayExport.setPayTime(tChargingOrder.getPayTime()!=null?DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss",DateUtils.toDate(tChargingOrder.getPayTime())):""); - chargingBillPayExport.setPaymentAmount(tChargingOrder.getOrderAmount().toString()); + chargingBillPayExport.setPaymentAmount(tChargingOrder.getChargeAmount().toString()); chargingBillPayExport.setTotal(""); chargingBillPayExports.add(chargingBillPayExport); i++; diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java index f178bcf..986c4db 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java @@ -189,7 +189,7 @@ BigDecimal size = new BigDecimal(stageCost.size()); for (TChargingOrderAccountingStrategy tChargingOrderAccountingStrategy : stageCost) { - bigDecimal1 = bigDecimal1.add(tChargingOrderAccountingStrategy.getElectrovalence()); + bigDecimal1 = bigDecimal1.add(tChargingOrderAccountingStrategy.getPeriodElectricPrice()); bigDecimal2 = bigDecimal2.add(tChargingOrderAccountingStrategy.getPeriodServicePrice()); bigDecimal3 = bigDecimal3.add(tChargingOrderAccountingStrategy.getPeriodOriginalServicePrice()); } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java index 831f5a2..3f5c27d 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java @@ -10,6 +10,7 @@ import com.ruoyi.chargingPile.api.model.Site; import com.ruoyi.chargingPile.api.model.TChargingGun; import com.ruoyi.chargingPile.api.model.TChargingPile; +import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.integration.api.feignClient.UploadRealTimeMonitoringDataClient; import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; import com.ruoyi.order.api.model.TChargingOrder; @@ -78,8 +79,7 @@ } } ChargingBillVO chargingBillVO = new ChargingBillVO(); - List<TChargingOrder> exports = new ArrayList<>(); - + List<TChargingOrder> tChargingOrders1 = new ArrayList<>(); String startTime1 = null; String startTime2 = null; if (StringUtils.hasLength(dto.getStartTime())){ @@ -101,10 +101,8 @@ BigDecimal sharingAmountTotal = new BigDecimal("0"); BigDecimal chargingCapacityTotal = new BigDecimal("0"); BigDecimal discountTotal = new BigDecimal("0"); - BigDecimal refundAmount = new BigDecimal("0"); int orderCount = 0; for (ChargingBillListVO chargingBillListVO : list) { - String temp = ""; String temp1 = ""; switch (chargingBillListVO.getType()){ @@ -161,6 +159,7 @@ BigDecimal commissionAmount = new BigDecimal("0"); BigDecimal sharingAmount = new BigDecimal("0"); BigDecimal chargingCapacity = new BigDecimal("0"); + BigDecimal refundAmount = new BigDecimal("0"); orderCount+=tChargingOrders.size(); chargingBillVO.setCategory(""); chargingBillVO.setExportList(tChargingOrders); @@ -300,7 +299,6 @@ } } - exports.addAll(tChargingOrders); // 将chargingSecond 这是以秒为单位存放的总秒数 将其转化为xx小时xx分钟xx秒 int hours = chargingSecond / 3600; int minutes = (chargingSecond % 3600) / 60; @@ -317,11 +315,11 @@ chargingBillListVO.setRefundAmount(refundAmount == null?BigDecimal.ZERO:refundAmount); chargingBillListVO.setElectrovalence(electrovalence == null?BigDecimal.ZERO:electrovalence); chargingBillListVO.setServiceCharge(serviceCharge == null?BigDecimal.ZERO:serviceCharge); - chargingBillListVO.setCommissionAmount(commissionAmount == null?BigDecimal.ZERO:commissionAmount.setScale(2, RoundingMode.HALF_DOWN)); + chargingBillListVO.setCommissionAmount(commissionAmount == null?BigDecimal.ZERO:commissionAmount.setScale(2,BigDecimal.ROUND_DOWN)); chargingBillListVO.setSharingAmount(sharingAmount == null?BigDecimal.ZERO:sharingAmount); chargingBillListVO.setChargingCapacity(chargingCapacity == null?BigDecimal.ZERO:chargingCapacity); - chargingBillListVO.setBillMoney(paymentAmount.subtract(refundAmount==null?BigDecimal.ZERO:chargingBillListVO.getRefundAmount() - .subtract(commissionAmount).subtract(sharingAmount).setScale(2, RoundingMode.HALF_DOWN))); + chargingBillListVO.setBillMoney(paymentAmount.subtract(refundAmount==null?BigDecimal.ZERO:refundAmount) + .subtract(commissionAmount.setScale(2,BigDecimal.ROUND_DOWN)).subtract(sharingAmount).setScale(2, BigDecimal.ROUND_DOWN)); switch (chargingBillListVO.getType()){ case 1: chargingBillListVO.setSiteName("全站"); @@ -371,6 +369,7 @@ eq.eq("site_id", chargingBillListVO.getSiteId()); } List<TChargingOrder> tChargingOrders = chargingOrderList.selectList(eq); + tChargingOrders1.addAll(tChargingOrders); orderCount+=tChargingOrders.size(); chargingBillVO.setCategory(""); chargingBillVO.setExportList(tChargingOrders); @@ -391,6 +390,10 @@ .eq(TChargingOrderRefund::getRefundStatus, 2).list(); for (TChargingOrderRefund tChargingOrderRefund : list2) { refundAmountTotal =refundAmountTotal.add(tChargingOrderRefund.getRefundAmount()); + tChargingOrder.setRefundAmount(tChargingOrderRefund.getRefundAmount()); + tChargingOrder.setRefundContent(tChargingOrderRefund.getRefundReason()); + tChargingOrder.setRefundCode(tChargingOrderRefund.getRefundCode()); + tChargingOrder.setRefundTime1(DateUtils.localDateTimeToString(tChargingOrderRefund.getRefundTime())); } // 累加累计服务费 if (tChargingOrder.getServiceCharge()!=null){ @@ -419,16 +422,16 @@ } } chargingBillVO.setChargingCapacity(chargingCapacityTotal); - chargingBillVO.setPaymentAmount(paymentAmountTotal.setScale(2, RoundingMode.HALF_DOWN)); + chargingBillVO.setPaymentAmount(paymentAmountTotal); chargingBillVO.setOrderAmount(paymentAmountTotal.subtract(refundAmountTotal).subtract(commissionAmountTotal).subtract(sharingAmountTotal)); - chargingBillVO.setElectrovalence(electrovalenceTotal.setScale(2, RoundingMode.HALF_DOWN)); - chargingBillVO.setServiceCharge(serviceChargeTotal.setScale(2, RoundingMode.HALF_DOWN)); + chargingBillVO.setElectrovalence(electrovalenceTotal); + chargingBillVO.setServiceCharge(serviceChargeTotal); chargingBillVO.setOrderCount(orderCount); - chargingBillVO.setCommissionAmount(commissionAmountTotal.setScale(2, RoundingMode.HALF_DOWN)); - chargingBillVO.setSharingAmount(sharingAmountTotal.setScale(2, RoundingMode.HALF_DOWN)); + chargingBillVO.setCommissionAmount(commissionAmountTotal); + chargingBillVO.setSharingAmount(sharingAmountTotal); chargingBillVO.setDiscount(discountTotal); chargingBillVO.setRefundAmount(refundAmountTotal); - + chargingBillVO.setExportList(tChargingOrders1); pageInfo.setRecords(list); chargingBillVO.setList(pageInfo); return chargingBillVO; @@ -662,12 +665,12 @@ String timeString = String.format("%d小时%d分钟%d秒", hours, minutes, seconds); chargingBillVO.setChargingTime(timeString); - chargingBillListVO.setPaymentAmount(orderAmount.subtract(commissionAmount).subtract(sharingAmount).setScale(2,RoundingMode.HALF_DOWN)); + chargingBillListVO.setPaymentAmount(orderAmount.subtract(commissionAmount).subtract(sharingAmount).setScale(2,BigDecimal.ROUND_DOWN)); chargingBillListVO.setOrderAmount(orderAmount); chargingBillListVO.setElectrovalence(electrovalence); - chargingBillListVO.setServiceCharge(serviceCharge.setScale(2,RoundingMode.HALF_DOWN)); - chargingBillListVO.setCommissionAmount(commissionAmount.setScale(2,RoundingMode.HALF_DOWN)); - chargingBillListVO.setSharingAmount(sharingAmount.setScale(2,RoundingMode.HALF_DOWN)); + chargingBillListVO.setServiceCharge(serviceCharge.setScale(2,BigDecimal.ROUND_DOWN)); + chargingBillListVO.setCommissionAmount(commissionAmount.setScale(2,BigDecimal.ROUND_DOWN)); + chargingBillListVO.setSharingAmount(sharingAmount.setScale(2,BigDecimal.ROUND_DOWN)); chargingBillListVO.setChargingCapacity(chargingCapacity); switch (chargingBillListVO.getType()){ case 1: @@ -777,14 +780,14 @@ } } chargingBillVO.setChargingCapacity(chargingCapacityTotal); - chargingBillVO.setPaymentAmount(orderAmountTotal.subtract(commissionAmountTotal).subtract(sharingAmountTotal).setScale(2, RoundingMode.HALF_DOWN)); - chargingBillVO.setOrderAmount(orderAmountTotal.setScale(2, RoundingMode.HALF_DOWN)); - chargingBillVO.setElectrovalence(electrovalenceTotal.setScale(2, RoundingMode.HALF_DOWN)); - chargingBillVO.setServiceCharge(serviceChargeTotal.setScale(2, RoundingMode.HALF_DOWN)); + chargingBillVO.setPaymentAmount(orderAmountTotal.subtract(commissionAmountTotal).subtract(sharingAmountTotal).setScale(2, BigDecimal.ROUND_DOWN)); + chargingBillVO.setOrderAmount(orderAmountTotal.setScale(2, BigDecimal.ROUND_DOWN)); + chargingBillVO.setElectrovalence(electrovalenceTotal.setScale(2, BigDecimal.ROUND_DOWN)); + chargingBillVO.setServiceCharge(serviceChargeTotal.setScale(2, BigDecimal.ROUND_DOWN)); chargingBillVO.setOrderCount(orderCount); - chargingBillVO.setCommissionAmount(commissionAmountTotal.setScale(2, RoundingMode.HALF_DOWN)); - chargingBillVO.setSharingAmount(sharingAmountTotal.setScale(2, RoundingMode.HALF_DOWN)); - chargingBillVO.setDiscount(discountTotal.setScale(2, RoundingMode.HALF_DOWN)); + chargingBillVO.setCommissionAmount(commissionAmountTotal.setScale(2, BigDecimal.ROUND_DOWN)); + chargingBillVO.setSharingAmount(sharingAmountTotal.setScale(2, BigDecimal.ROUND_DOWN)); + chargingBillVO.setDiscount(discountTotal.setScale(2, BigDecimal.ROUND_DOWN)); pageInfo.setRecords(list); chargingBillVO.setList(pageInfo); return chargingBillVO; diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java index f82ff76..97cbfec 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java @@ -1298,9 +1298,9 @@ payOrderDto.setFinalAmount(payOrderDto.getOrderAmount()); } if (payOrderDto.getType()==1&&payOrderDto.getStatus()==3){ - payOrderDto.setFinalAmount(payOrderDto.getRechargeAmount()); - payOrderDto.setOrderAmount(payOrderDto.getRechargeAmount()); - payOrderDto.setPaymentAmount(payOrderDto.getRechargeAmount()); + payOrderDto.setFinalAmount(payOrderDto.getOrderAmount()); + payOrderDto.setOrderAmount(payOrderDto.getOrderAmount()); + payOrderDto.setPaymentAmount(payOrderDto.getOrderAmount()); } } pageInfo.setRecords(list); @@ -2586,6 +2586,7 @@ } } + // 三方交易手续费 三方收费*0.6% commissionAmount = sharingAmount.multiply(new BigDecimal("0.006")); // 订单手续费 订单支付金额 - 退款金额*0.6% @@ -2593,7 +2594,7 @@ tSettlementConfirm.setSharingAmount(sharingAmount.setScale(2, RoundingMode.HALF_DOWN)); tSettlementConfirm.setCommissionAmount(commissionAmount.setScale(2, RoundingMode.HALF_DOWN)); tSettlementConfirm.setElectrovalence(electrovalence.setScale(2, RoundingMode.HALF_DOWN)); - tSettlementConfirm.setServiceCharge(serviceCharge.subtract(commissionAmount).setScale(2, RoundingMode.HALF_DOWN)); + tSettlementConfirm.setServiceCharge(serviceCharge.subtract(orderCommission).setScale(2, RoundingMode.HALF_DOWN)); tSettlementConfirm.setOrderCommission(orderCommission); tSettlementConfirm.setVipDiscount(vipDiscount); tSettlementConfirm.setCouponDiscount(couponDiscount); @@ -2605,6 +2606,8 @@ tSettlementConfirm.setType(dto.getType()); if (dto.getState() == 2){ + tSettlementConfirm.setServiceMoney(dto.getServiceCharge().subtract(dto.getVenue()).subtract(dto.getClean()) + .subtract(dto.getMaintain()).multiply(dto.getServicePartner())); tSettlementConfirm.setSupplyElectronic(dto.getSupplyElectronic()); tSettlementConfirm.setVenue(dto.getVenue()); tSettlementConfirm.setMetering(dto.getMetering()); @@ -2619,26 +2622,26 @@ tSettlementConfirm.setTotalService(dto.getTotalService()); tSettlementConfirm.setRemark(dto.getRemark()); tSettlementConfirm.setServicePartner(dto.getServicePartner()); - tSettlementConfirm.setServiceMoney(dto.getServiceMoney()); - BigDecimal subtract = new BigDecimal("1").subtract(dto.getProportionPartner().multiply(new BigDecimal("0.01"))); + BigDecimal subtract = new BigDecimal("1").subtract(dto.getProportionPartner()); + BigDecimal subtract9 = new BigDecimal("1").subtract(dto.getServicePartner()); // 总电损费用 BigDecimal divide = tSettlementConfirm.getProportionMoney().divide(subtract, 2, RoundingMode.HALF_DOWN); // 平台承担电损 BigDecimal subtract1 = divide.subtract(tSettlementConfirm.getProportionMoney()); BigDecimal multiply = dto.getServiceMoney().multiply(subtract); BigDecimal subtract2 = multiply.subtract(subtract1); - tSettlementConfirm.setNewMoney(subtract2); + tSettlementConfirm.setNewMoney(dto.getServiceCharge().subtract(dto.getVenue()).subtract(dto.getClean()) + .subtract(dto.getMaintain()).multiply(subtract9).subtract(subtract1)); tSettlementConfirm.setTotalService(dto.getTotalService()); tSettlementConfirm.setServiceRemark(dto.getServiceRemark()); tSettlementConfirm.setDistribution(dto.getDistribution()); tSettlementConfirm.setIncome(dto.getElectrovalence().add(dto.getServiceCharge())); tSettlementConfirm.setCost(dto.getVenue().add(dto.getClean()).add(dto.getMaintain()).add(dto.getSupplyElectronic())); - BigDecimal divide1 = tSettlementConfirm.getProportionMoney().divide(tSettlementConfirm.getProportionPartner(), 2, RoundingMode.HALF_DOWN); - tSettlementConfirm.setProfitMoney(tSettlementConfirm.getServiceCharge().multiply(tSettlementConfirm.getServicePartner()) - .subtract(divide1)); - tSettlementConfirm.setNewSettlement(subtract2.subtract(tSettlementConfirm.getCost())); - + tSettlementConfirm.setProfitMoney(tSettlementConfirm.getIncome().subtract(tSettlementConfirm.getCost())); + tSettlementConfirm.setNewSettlement(tSettlementConfirm.getProfitMoney().add(tSettlementConfirm.getCost())); + tSettlementConfirm.setServiceMoney(dto.getServiceCharge().subtract(dto.getVenue()).subtract(dto.getClean()) + .subtract(dto.getMaintain()).multiply(dto.getServicePartner())); tSettlementConfirmMapper.insert(tSettlementConfirm); } return tSettlementConfirm; -- Gitblit v1.7.1