From a878aac2cc6d82a870056d8fd2bf7584fa4659ca Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期三, 09 七月 2025 19:09:26 +0800 Subject: [PATCH] 添加定时退款功能 --- ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java | 38 +++++++++++++++++++++++--------------- 1 files changed, 23 insertions(+), 15 deletions(-) diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java index 3d77b64..39ad475 100644 --- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java +++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java @@ -252,7 +252,7 @@ @PostMapping("/query_token_jianguan") public BaseResult queryTokenJianguan(@RequestBody BaseRequest baseRequest, HttpServletRequest request){ log.info("三方平台获取token请求参数:" + JacksonUtils.toJson(baseRequest)); - BaseResult baseResult = requestCheckJianGuan(false, baseRequest, request); + BaseResult baseResult = requestCheck(false, baseRequest, request); if(0 != baseResult.getRet()){ log.info("三方平台获取token响应Data:"); baseResult.setData(""); @@ -300,7 +300,7 @@ public BaseResult queryStationsInfo(@RequestBody BaseRequest baseRequest, HttpServletRequest request){ log.info("三方平台查询充电站信息请求参数:" + JacksonUtils.toJson(baseRequest)); //校验token和签名 - BaseResult baseResult = requestCheckJianGuan(true, baseRequest, request); + BaseResult baseResult = requestCheck(true, baseRequest, request); if(0 != baseResult.getRet()){ log.info("三方平台查询充电站信息响应Data:"); baseResult.setData(""); @@ -399,8 +399,8 @@ stationInfo.setCountryCode(StringUtils.isNotEmpty(datum.getCountryCode()) ? datum.getCountryCode() : "CN"); stationInfo.setAreaCode(datum.getDistrictsCode()); stationInfo.setAddress(datum.getAddress()); - stationInfo.setStationTel(datum.getPhone()); - stationInfo.setServiceTel(serviceTel); + stationInfo.setStationTel(StringUtils.isNotEmpty(serviceTel) ? serviceTel.split(",")[0] : ""); + stationInfo.setServiceTel(StringUtils.isNotEmpty(serviceTel) ? serviceTel.split(",")[0] : ""); switch (datum.getSiteType()){ case 0: stationInfo.setStationType(StationTypeEnum.OTHER.getType()); @@ -588,7 +588,7 @@ * @return */ @PostMapping("/pushChargingGunStatus") - public R pushChargingGunStatus(@RequestParam("fullNumber") String fullNumber, @RequestParam("status") Integer status){ + public R pushChargingGunStatus(@RequestParam(value = "fullNumber") String fullNumber, @RequestParam(value = "status") Integer status){ ConnectorStatusInfo connectorStatusInfo = new ConnectorStatusInfo(); connectorStatusInfo.setConnectorID(fullNumber); switch (status){ @@ -1245,17 +1245,23 @@ queryEquipChargeStatusResult.setEndTime((null == chargingOrder.getEndTime() ? LocalDateTime.now() : chargingOrder.getEndTime()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); queryEquipChargeStatusResult.setTotalPower(chargingOrder.getElectricity()); + List<TChargingOrderAccountingStrategy> data = chargingOrderAccountingStrategyClient.getChargingOrderAccountingStrategyByOrderId(chargingOrder.getId()).getData(); if(data.size() > 0){ BigDecimal totalElectricity = data.stream().map(TChargingOrderAccountingStrategy::getPeriodElectricPrice).reduce(BigDecimal.ZERO, BigDecimal::add); BigDecimal serviceCharge = data.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal totalMoney = totalElectricity.add(serviceCharge).setScale(4, RoundingMode.HALF_EVEN); queryEquipChargeStatusResult.setElecMoney(totalElectricity); queryEquipChargeStatusResult.setSeviceMoney(serviceCharge); - queryEquipChargeStatusResult.setTotalMoney(chargingOrder.getPaymentAmount()); - }else{ + queryEquipChargeStatusResult.setTotalMoney(totalMoney); + }else if(null != chargingOrder.getRechargeAmount() && null != chargingOrder.getResidualAmount()){ queryEquipChargeStatusResult.setElecMoney(chargingOrder.getRechargeAmount().subtract(chargingOrder.getResidualAmount())); queryEquipChargeStatusResult.setSeviceMoney(BigDecimal.ZERO); queryEquipChargeStatusResult.setTotalMoney(chargingOrder.getRechargeAmount().subtract(chargingOrder.getResidualAmount())); + }else{ + queryEquipChargeStatusResult.setElecMoney(BigDecimal.ZERO); + queryEquipChargeStatusResult.setSeviceMoney(BigDecimal.ZERO); + queryEquipChargeStatusResult.setTotalMoney(BigDecimal.ZERO); } //构建充电明细 @@ -1282,7 +1288,7 @@ } chargeDetail.setElecPrice(datum.getElectrovalence()); chargeDetail.setSevicePrice(datum.getServiceCharge()); - chargeDetail.setDetailPower(datum.getChargingCapacity()); + chargeDetail.setDetailPower(datum.getChargingCapacity().setScale(2, BigDecimal.ROUND_HALF_UP)); chargeDetail.setDetailElecMoney(datum.getPeriodElectricPrice()); chargeDetail.setDetailSeviceMoney(datum.getPeriodServicePrice()); chargeDetails.add(chargeDetail); @@ -1489,6 +1495,7 @@ notificationChargeOrderInfo.setStartChargeSeq(startChargeSeq); TChargingOrder chargingOrder = chargingOrderClient.getChargingOrderByStartChargeSeq(startChargeSeq).getData(); if(null == chargingOrder){ + log.info("三方平台流水号获取订单失败"); return null; } TChargingGun chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData(); @@ -1499,11 +1506,12 @@ List<TChargingOrderAccountingStrategy> data = chargingOrderAccountingStrategyClient.getChargingOrderAccountingStrategyByOrderId(chargingOrder.getId()).getData(); if(data.size() > 0){ - BigDecimal totalElectricity = data.stream().map(TChargingOrderAccountingStrategy::getPeriodElectricPrice).reduce(BigDecimal.ZERO, BigDecimal::add); - BigDecimal serviceCharge = data.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add); - notificationChargeOrderInfo.setTotalElecMoney(totalElectricity.setScale(2, RoundingMode.HALF_EVEN)); - notificationChargeOrderInfo.setTotalSeviceMoney(serviceCharge.setScale(2, RoundingMode.HALF_EVEN)); - notificationChargeOrderInfo.setTotalMoney(chargingOrder.getPaymentAmount()); + BigDecimal totalElectricity = data.stream().map(TChargingOrderAccountingStrategy::getPeriodElectricPrice).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(4, RoundingMode.HALF_EVEN); + BigDecimal serviceCharge = data.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(4, RoundingMode.HALF_EVEN); + BigDecimal totalMoney = totalElectricity.add(serviceCharge).setScale(4, RoundingMode.HALF_EVEN); + notificationChargeOrderInfo.setTotalElecMoney(totalElectricity); + notificationChargeOrderInfo.setTotalSeviceMoney(serviceCharge); + notificationChargeOrderInfo.setTotalMoney(totalMoney); }else{ notificationChargeOrderInfo.setTotalElecMoney(chargingOrder.getRechargeAmount().subtract(chargingOrder.getResidualAmount())); notificationChargeOrderInfo.setTotalSeviceMoney(BigDecimal.ZERO); @@ -1556,7 +1564,7 @@ } chargeDetail.setElecPrice(datum.getElectrovalence()); chargeDetail.setSevicePrice(datum.getServiceCharge()); - chargeDetail.setDetailPower(datum.getChargingCapacity()); + chargeDetail.setDetailPower(datum.getChargingCapacity().setScale(2, BigDecimal.ROUND_HALF_UP)); chargeDetail.setDetailElecMoney(datum.getPeriodElectricPrice()); chargeDetail.setDetailSeviceMoney(datum.getPeriodServicePrice()); chargeDetails.add(chargeDetail); @@ -1751,7 +1759,7 @@ } chargeDetail.setElecPrice(datum.getElectrovalence()); chargeDetail.setSevicePrice(datum.getServiceCharge()); - chargeDetail.setDetailPower(datum.getChargingCapacity()); + chargeDetail.setDetailPower(datum.getChargingCapacity().setScale(2, BigDecimal.ROUND_HALF_EVEN)); chargeDetail.setDetailElecMoney(datum.getPeriodElectricPrice()); chargeDetail.setDetailSeviceMoney(datum.getPeriodServicePrice()); chargeDetails.add(chargeDetail); -- Gitblit v1.7.1