From 8b0cf2731d2b61999fdd1aeee91567dc47d67e14 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 11 七月 2025 14:26:08 +0800
Subject: [PATCH] Merge branch 'dev' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java       |    8 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TScreenContentServiceImpl.java       |   79 -------
 ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/produce/ChargingMessageListener.java |   27 ++
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TScreenContentController.java          |   20 +
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/EnergyRefreshService.java                    |  299 -----------------------------
 ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/ali/v2/H5PayUtil.java                         |    4 
 ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/util/GovernmentCloudTask.java               |  121 +++++++++++
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/KsolarUtils.java                             |   18 +
 ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/H5AliPayController.java            |    2 
 9 files changed, 197 insertions(+), 381 deletions(-)

diff --git a/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/produce/ChargingMessageListener.java b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/produce/ChargingMessageListener.java
index e1206f3..6fb7674 100644
--- a/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/produce/ChargingMessageListener.java
+++ b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/produce/ChargingMessageListener.java
@@ -223,6 +223,8 @@
                     JSONObject jsonObject = new JSONObject();
                     jsonObject.put("StartChargeSeq",chargingOrder2.getCode());
                     jsonObject.put("ConnectorID",chargingGun2.getFullNumber());
+                    LocalDateTime startTime = chargingOrder2.getStartTime();
+
                     //状态(0=未知,1=等待中/已插枪,2=启动中,3=充电中,4=停止中,5=已结束)
                     int tempStatus = 0;
                     switch (chargingOrder2.getStatus()){
@@ -232,7 +234,18 @@
                         case 2:
                             tempStatus=1;
                             jsonObject.put("StartChargeSeqStat",tempStatus);
-                            LocalDateTime startTime = chargingOrder2.getStartTime();
+                            if (startTime!=null){
+                                jsonObject.put("StartTime",startTime.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+                            }else{
+                                LocalDateTime now = LocalDateTime.now();
+                                // 转化为yyyy-MM-dd HH:mm:ss格式字符串
+                                jsonObject.put("StartTime",now.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+                            }
+                            chuanYiChongSuperviseUtil.notificationStationStatus(new Operator(), jsonObject);
+                            break;
+                        case 3:
+                            tempStatus=2;
+                            jsonObject.put("StartChargeSeqStat",tempStatus);
                             if (startTime!=null){
                                 jsonObject.put("StartTime",startTime.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
                             }else{
@@ -243,7 +256,17 @@
                             chuanYiChongSuperviseUtil.notificationStationStatus(new Operator(), jsonObject);
                             break;
                         case 4:
-
+                            tempStatus=3;
+                            jsonObject.put("StartChargeSeqStat",tempStatus);
+                            if (startTime!=null){
+                                jsonObject.put("StartTime",startTime.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+                            }else{
+                                LocalDateTime now = LocalDateTime.now();
+                                // 转化为yyyy-MM-dd HH:mm:ss格式字符串
+                                jsonObject.put("StartTime",now.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+                            }
+                            chuanYiChongSuperviseUtil.notificationStationStatus(new Operator(), jsonObject);
+                            break;
                         case 5:
                             jsonObject.put("StartChargeSeqStat",4);
                             int temp = 0;
diff --git a/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/util/GovernmentCloudTask.java b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/util/GovernmentCloudTask.java
index 5ca58b5..5fa4fe5 100644
--- a/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/util/GovernmentCloudTask.java
+++ b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/util/GovernmentCloudTask.java
@@ -81,6 +81,7 @@
 import com.ruoyi.other.api.vo.GovernmentCloudOtherVO;
 import com.ruoyi.system.api.feignClient.JianGuanSystemClient;
 import com.ruoyi.system.api.vo.GovernmentCloudSystemVO;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
@@ -94,6 +95,7 @@
  * @date 2023/7/11 8:39
  */
 @Component
+@Slf4j
 public class GovernmentCloudTask {
 
 
@@ -274,50 +276,68 @@
     @Resource
     private JianGuanSystemClient  jianGuanSystemClient;
 
-    // 每天早上9点执行的定时任务
-    @Scheduled(cron = "0 0 9 * * ?")
+    // 每两小时执行一次的定时任务
+//    @Scheduled(cron = "0 0 0/2 * * ?")
     public void taskMonth() {
+        log.info("市政云传数据");
         // account服务
         GovernmentCloudAccountVO data = jianGuanAccountClient.listAll().getData();
         if (data != null) {
             List<TAppCoupon> appCoupons = data.getAppCoupons();
             if (!appCoupons.isEmpty()) {
+                log.info("用户优惠券"+appCoupons);
                 appCouponService.saveBatch(appCoupons);
             }
             List<TAppUser> appUsers = data.getAppUsers();
             if (!appUsers.isEmpty()) {
+                log.info("用户"+appUsers);
+
                 appUserService.saveBatch(appUsers);
             }
             List<TAppUserAddress> appUserAddresses = data.getAppUserAddresses();
             if (!appUserAddresses.isEmpty()) {
+                log.info("用户地址"+appUserAddresses);
+
                 appUserAddressService.saveBatch(appUserAddresses);
             }
             List<TAppUserCar> appUserCars = data.getAppUserCars();
             if (!appUserCars.isEmpty()) {
+                log.info("用户车辆"+appUserCars);
+
                 appUserCarService.saveBatch(appUserCars);
             }
             List<TAppUserIntegralChange> appUserIntegralChanges = data.getAppUserIntegralChanges();
             if (!appUserIntegralChanges.isEmpty()) {
+                log.info("用户积分变动"+appUserIntegralChanges);
+
                 appUserIntegralChangeService.saveBatch(appUserIntegralChanges);
             }
             List<TAppUserSign> appUserSigns = data.getAppUserSigns();
             if (!appUserSigns.isEmpty()) {
+                log.info("用户签到"+appUserSigns);
+
                 appUserSignService.saveBatch(appUserSigns);
             }
             List<TAppUserTag> appUserTags = data.getAppUserTags();
             if (!appUserTags.isEmpty()) {
+                log.info("用户标签"+appUserTags);
+
                 appUserTagService.saveBatch(appUserTags);
             }
             List<TAppUserVipDetail> appUserVipDetails = data.getAppUserVipDetails();
             if (!appUserVipDetails.isEmpty()) {
+                log.info("用户会员明细"+appUserVipDetails);
+
                 appUserVipDetailService.saveBatch(appUserVipDetails);
             }
             List<TInviteUser> inviteUsers = data.getInviteUsers();
             if (!inviteUsers.isEmpty()) {
+                log.info("邀请用户"+inviteUsers);
                 inviteUserService.saveBatch(inviteUsers);
             }
             List<TInvoiceInformation> invoiceInformations = data.getInvoiceInformations();
             if (!invoiceInformations.isEmpty()) {
+                log.info("开票"+invoiceInformations);
                 tInvoiceInformationService.saveBatch(invoiceInformations);
             }
         }
@@ -326,54 +346,80 @@
         if (data1 != null) {
             List<Partner> partners = data1.getPartners();
             if (!partners.isEmpty()) {
+                log.info("合作商"+partners);
+
                 partnerService.saveBatch(partners);
             }
             List<Site> sites = data1.getSites();
             if (!sites.isEmpty()) {
+                log.info("站点"+sites);
+
                 siteService.saveBatch(sites);
             }
             List<TAccountingStrategy> accountingStrategies = data1.getAccountingStrategies();
             if (!accountingStrategies.isEmpty()) {
+                log.info("策略"+accountingStrategies);
+
                 accountingStrategyService.saveBatch(accountingStrategies);
             }
             List<TAccountingStrategyDetail> accountingStrategyDetails = data1.getAccountingStrategyDetails();
             if (!accountingStrategyDetails.isEmpty()) {
+                log.info("策略明细"+accountingStrategyDetails);
+
                 accountingStrategyDetailService.saveBatch(accountingStrategyDetails);
             }
             List<TApplyChargingPile> applyChargingPiles = data1.getApplyChargingPiles();
             if (!applyChargingPiles.isEmpty()) {
+                log.info("申请充电桩"+applyChargingPiles);
+
                 applyChargingPileService.saveBatch(applyChargingPiles);
             }
             List<TCarport> carports = data1.getCarports();
             if (!carports.isEmpty()) {
+                log.info("停车场"+carports);
+
                 carportService.saveBatch(carports);
             }
             List<TChargingGun> chargingGuns = data1.getChargingGuns();
             if (!chargingGuns.isEmpty()) {
+                log.info("充电枪"+chargingGuns);
+
                 chargingGunService.saveBatch(chargingGuns);
             }
             List<TChargingPile> chargingPiles = data1.getChargingPiles();
             if (!chargingPiles.isEmpty()) {
+                log.info("充电桩"+chargingPiles);
+
                 chargingPileService.saveBatch(chargingPiles);
             }
             List<TChargingPileNotification> chargingPileNotifications = data1.getChargingPileNotifications();
             if (!chargingPileNotifications.isEmpty()) {
+                log.info("通知"+chargingPileNotifications);
+
                 chargingPileNotificationService.saveBatch(chargingPileNotifications);
             }
             List<TFaultMessage> faultMessages = data1.getFaultMessages();
             if (!faultMessages.isEmpty()) {
+                log.info("故障"+faultMessages);
+
                 faultMessageService.saveBatch(faultMessages);
             }
             List<TMonitoringEquipment> monitoringEquipments = data1.getMonitoringEquipments();
             if (!monitoringEquipments.isEmpty()) {
+                log.info("监控设备"+monitoringEquipments);
+
                 monitoringEquipmentService.saveBatch(monitoringEquipments);
             }
             List<TParkingLot> parkingLots = data1.getParkingLots();
             if (!parkingLots.isEmpty()) {
+                log.info("停车场"+parkingLots);
+
                 parkingLotService.saveBatch(parkingLots);
             }
             List<TParkingRecord> parkingRecords = data1.getParkingRecords();
             if (!parkingRecords.isEmpty()) {
+                log.info("停车记录"+parkingRecords);
+
                 parkingRecordService.saveBatch(parkingRecords);
             }
 //            List<TPartnerSite> partnerSites = data1.getPartnerSites();
@@ -382,6 +428,8 @@
 //            }
             List<TRepair> repairs = data1.getRepairs();
             if (!repairs.isEmpty()) {
+                log.info("报修"+repairs);
+
                 repairService.saveBatch(repairs);
             }
 //            List<TSiteMenu> siteMenus = data1.getSiteMenus();
@@ -390,6 +438,8 @@
 //            }
             List<TVehicleRamp> vehicleRamps = data1.getVehicleRamps();
             if (!vehicleRamps.isEmpty()) {
+                log.info("车道"+vehicleRamps);
+
                 vehicleRampService.saveBatch(vehicleRamps);
             }
         }
@@ -400,74 +450,110 @@
         if (data2 != null) {
             List<AccountingStrategyDetailOrder> accountingStrategyDetailOrders = data2.getAccountingStrategyDetailOrders();
             if (!accountingStrategyDetailOrders.isEmpty()) {
+                log.info("订单明细策略"+accountingStrategyDetailOrders);
+
                 accountingStrategyDetailOrderService.saveBatch(accountingStrategyDetailOrders);
             }
             List<AccountingStrategyOrder> accountingStrategyOrders = data2.getAccountingStrategyOrders();
             if (!accountingStrategyOrders.isEmpty()) {
+                log.info("订单策略"+accountingStrategyOrders);
+
                 accountingStrategyOrderService.saveBatch(accountingStrategyOrders);
             }
             List<TChargingBill> chargingBills = data2.getChargingBills();
             if (!chargingBills.isEmpty()) {
+                log.info("账单"+chargingBills);
+
                 chargingBillService.saveBatch(chargingBills);
             }
             List<TChargingOrder> chargingOrders = data2.getChargingOrders();
             if (!chargingOrders.isEmpty()) {
+                log.info("充电订单"+chargingOrders);
+
                 chargingOrderService.saveBatch(chargingOrders);
             }
             List<TChargingOrderAccountingStrategy> chargingOrderAccountingStrategies = data2.getChargingOrderAccountingStrategies();
             if (!chargingOrderAccountingStrategies.isEmpty()) {
+                log.info("充电订单策略"+chargingOrderAccountingStrategies);
+
                 chargingOrderAccountingStrategyService.saveBatch(chargingOrderAccountingStrategies);
             }
             List<TChargingOrderRefund> chargingOrderRefunds = data2.getChargingOrderRefunds();
             if (!chargingOrderRefunds.isEmpty()) {
+                log.info("充电订单退款"+chargingOrderRefunds);
+
                 chargingOrderRefundService.saveBatch(chargingOrderRefunds);
             }
             List<TExchangeOrder> exchangeOrders = data2.getExchangeOrders();
             if (!exchangeOrders.isEmpty()) {
+                log.info("兑换订单"+exchangeOrders);
+
                 exchangeOrderService.saveBatch(exchangeOrders);
             }
             List<TGrantVip> grantVips = data2.getGrantVips();
             if (!grantVips.isEmpty()) {
+                log.info("赠送vip"+grantVips);
+
                 grantVipService.saveBatch(grantVips);
             }
             List<TOrderAppeal> orderAppeals = data2.getOrderAppeals();
             if (!orderAppeals.isEmpty()) {
+                log.info("订单申诉"+orderAppeals);
+
                 orderAppealService.saveBatch(orderAppeals);
             }
             List<TOrderEvaluate> orderEvaluates = data2.getOrderEvaluates();
             if (!orderEvaluates.isEmpty()) {
+                log.info("订单评价"+orderEvaluates);
+
                 orderEvaluateService.saveBatch(orderEvaluates);
             }
             List<TOrderEvaluateTag> orderEvaluateTags = data2.getOrderEvaluateTags();
             if (!orderEvaluateTags.isEmpty()) {
+                log.info("订单评价标签"+orderEvaluateTags);
+
                 orderEvaluateTagService.saveBatch(orderEvaluateTags);
             }
             List<TOrderInvoice> orderInvoices = data2.getOrderInvoices();
             if (!orderInvoices.isEmpty()) {
+                log.info("订单开票"+orderInvoices);
+
                 orderInvoiceService.saveBatch(orderInvoices);
             }
             List<TOrderInvoiceDetail> orderInvoiceDetails = data2.getOrderInvoiceDetails();
             if (!orderInvoiceDetails.isEmpty()) {
+                log.info("订单开票明细"+orderInvoiceDetails);
+
                 orderInvoiceDetailService.saveBatch(orderInvoiceDetails);
             }
             List<TSettlementConfirm> settlementConfirms = data2.getSettlementConfirms();
             if (!settlementConfirms.isEmpty()) {
+                log.info("账单结算"+settlementConfirms);
+
                 settlementConfirmService.saveBatch(settlementConfirms);
             }
             List<TShoppingOrder> shoppingOrders = data2.getShoppingOrders();
             if (!shoppingOrders.isEmpty()) {
+                log.info("购物订单"+shoppingOrders);
+
                 shoppingOrderService.saveBatch(shoppingOrders);
             }
             List<TShoppingOrderRefund> shoppingOrderRefunds = data2.getShoppingOrderRefunds();
             if (!shoppingOrderRefunds.isEmpty()) {
+                log.info("购物订单退款"+shoppingOrderRefunds);
+
                 shoppingOrderRefundService.saveBatch(shoppingOrderRefunds);
             }
             List<TVipOrder> vipOrders = data2.getVipOrders();
             if (!vipOrders.isEmpty()) {
+                log.info("会员订单"+vipOrders);
+
                 vipOrderService.saveBatch(vipOrders);
             }
             List<TVipOrderRefund> vipOrderRefunds = data2.getVipOrderRefunds();
             if (!vipOrderRefunds.isEmpty()) {
+                log.info("会员订单退款"+vipOrderRefunds);
+
                 vipOrderRefundService.saveBatch(vipOrderRefunds);
             }
         }
@@ -476,62 +562,89 @@
         if (data3 != null) {
             List<Operator> operators = data3.getOperators();
             if (!operators.isEmpty()) {
+                log.info("运营商"+operators);
+
                 operatorService.saveOrUpdateBatch(operators);
             }
             List<TActivity> activities = data3.getActivities();
             if (!activities.isEmpty()) {
+                log.info("活动"+activities);
+
                 activityService.saveBatch(activities);
             }
             List<TAdvertising> advertisings = data3.getAdvertisings();
             if (!advertisings.isEmpty()) {
+                log.info("广告"+advertisings);
+
                 advertisingService.saveBatch(advertisings);
             }
             List<TCompany> companies = data3.getCompanies();
             if (!companies.isEmpty()) {
+                log.info("公司"+companies);
+
                 companyService.saveBatch(companies);
             }
             List<TCoupon> coupons = data3.getCoupons();
             if (!coupons.isEmpty()) {
+                log.info("优惠券"+coupons);
+
                 couponService.saveBatch(coupons);
             }
             List<TEnterpriseUserApplication> enterpriseUserApplications = data3.getEnterpriseUserApplications();
             if (!enterpriseUserApplications.isEmpty()) {
+                log.info("公司申请"+enterpriseUserApplications);
+
                 enterpriseUserApplicationService.saveBatch(enterpriseUserApplications);
             }
             List<TEvaluationTag> evaluationTags = data3.getEvaluationTags();
             if (!evaluationTags.isEmpty()) {
+                log.info("评价标签"+evaluationTags);
+
                 evaluationTagService.saveBatch(evaluationTags);
             }
             List<TGoods> goods = data3.getGoods();
             if (!goods.isEmpty()) {
+                log.info("商品"+goods);
+
                 goodsService.saveBatch(goods);
             }
             List<THtml> htmls = data3.getHtmls();
             if (!htmls.isEmpty()) {
+                log.info("html"+htmls);
+
                 htmlService.saveOrUpdateBatch(htmls);
             }
             List<TIntegralRule> integralRules = data3.getIntegralRules();
             if (!integralRules.isEmpty()) {
+                log.info("积分规则"+integralRules);
+
                 integralRuleService.saveBatch(integralRules);
             }
             List<TInvoiceType> invoiceTypes = data3.getInvoiceTypes();
             if (!invoiceTypes.isEmpty()) {
+                log.info("开票类型"+invoiceTypes);
+
                 invoiceTypeService.saveBatch(invoiceTypes);
             }
             List<TNotice> notices = data3.getNotices();
             if (!notices.isEmpty()) {
+                log.info("通知"+notices);
+
                 noticeService.saveBatch(notices);
             }
             List<TSystemConfiguration> systemConfigurations = data3.getSystemConfigurations();
             if (!systemConfigurations.isEmpty()) {
+                log.info("系统设置"+systemConfigurations);
                 systemConfigurationService.saveOrUpdateBatch(systemConfigurations);
             }
             List<TUserTag> userTags = data3.getUserTags();
             if (!userTags.isEmpty()) {
+                log.info("用户标签"+userTags);
                 userTagService.saveBatch(userTags);
             }
             List<TVip> vips = data3.getVips();
             if (!vips.isEmpty()) {
+                log.info("会员"+vips);
                 vipService.saveBatch(vips);
             }
         }
@@ -539,18 +652,22 @@
         if (data4 != null) {
             List<SysLoginLog> loginLogs = data4.getLoginLogs();
             if (!loginLogs.isEmpty()) {
+                log.info("登录日志"+loginLogs);
                 sysLoginLogService.saveBatch(loginLogs);
             }
             List<SysOperLog> sysOperLogs = data4.getSysOperLogs();
             if (!sysOperLogs.isEmpty()) {
+                log.info("操作日志"+sysOperLogs);
                 sysOperLogService.saveBatch(sysOperLogs);
             }
             List<SysRole> sysRoles = data4.getSysRoles();
             if (!sysRoles.isEmpty()) {
+                log.info("角色"+sysRoles);
                 sysRoleService.saveBatch(sysRoles);
             }
             List<SysUser> sysUsers = data4.getSysUsers();
             if (!sysUsers.isEmpty()) {
+                log.info("系统用户"+sysUsers);
                 sysUserService.saveBatch(sysUsers);
             }
         }
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 3bff3ab..a2db0c8 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
@@ -1040,7 +1040,7 @@
 				dto.setRefundAmount(rechargeAmount.toString());
 				dto.setRefundReason("充电失败,取消充电订单");
 				RefundResp resp = h5AliPaymentClient.refund(dto).getData();
-				if(null != resp){
+				if(null != resp && "10000".equals(resp.getCode())){
 					chargingOrderRefundService.save(chargingOrderRefund);
 					//回退会员折扣次数
 					if(chargingOrder.getVipDiscountAmount().compareTo(BigDecimal.ZERO) > 0){
@@ -1137,7 +1137,7 @@
 				dto.setRefundAmount(money.toString());
 				dto.setRefundReason("充电完成退款");
 				RefundResp resp = h5AliPaymentClient.refund(dto).getData();
-				if(null != resp){
+				if(null != resp && "10000".equals(resp.getCode())){
 					chargingOrderRefundService.save(chargingOrderRefund);
 					try {
 						Thread.sleep(1000);
@@ -2737,7 +2737,7 @@
 						dto.setRefundAmount(refundAmount.toString());
 						dto.setRefundReason("充电完成退款");
 						RefundResp resp = h5AliPaymentClient.refund(dto).getData();
-						if(null != resp){
+						if(null != resp && "10000".equals(resp.getCode())){
 							chargingOrderRefundService.save(chargingOrderRefund);
 							this.chargingOrderStartupFailureWxRefund(chargingOrderRefund.getRefundCode(), resp.getTradeNo(), "SUCCESS", null);
 						}
@@ -2954,7 +2954,7 @@
 					dto.setRefundAmount(payOrderQueryDto.getRefundAmount().toString());
 					dto.setRefundReason("取消订单");
 					RefundResp resp = h5AliPaymentClient.refund(dto).getData();
-					if(null != resp){
+					if(null != resp && "10000".equals(resp.getCode())){
 						chargingOrderRefund.setRefundStatus(2);
 						chargingOrderRefund.setRefundAmount((tChargingOrder.getRefundAmount()==null? BigDecimal.valueOf(0) :tChargingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount()));
 						this.baseMapper.updateById(tChargingOrder);
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TScreenContentController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TScreenContentController.java
index ba04879..1dbf64a 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TScreenContentController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TScreenContentController.java
@@ -94,12 +94,22 @@
     @ApiOperation(tags = {"储能放电情况"},value = "充电桩数据大屏")
     @GetMapping(value = "/energyStorageDischarge")
     public AjaxResult<EnergyStorageDischargeVO> energyStorageDischarge() {
-        //需调用接口 获取光伏发电量
+        String electricity = KsolarUtils.getElectricity();
+        List<TSystemConfiguration> list = systemConfigurationService.list(new LambdaQueryWrapper<TSystemConfiguration>().in(TSystemConfiguration::getType, 4, 5));
+        // 昨日放能
+        TSystemConfiguration sysConfig = list.stream().filter(e -> e.getType() == 4).findFirst().orElse(null);
+        // 昨日储能
+        TSystemConfiguration sysConfig1 = list.stream().filter(e -> e.getType() == 5).findFirst().orElse(null);
+        // 总储能
+        String s = electricity.split("_")[0];
+        // 总放能
+        String s1 = electricity.split("_")[1];
+
         EnergyStorageDischargeVO vo = new EnergyStorageDischargeVO();
-        //今日放能   10:00-11:59 每1分钟随机增值0.5-1,放满90停止;用第一次放能值为基数(85)开始累加,17:00-21:59 每1分钟随机增值0.5-1,放满90停止。
-        vo.setTodayDischarge(energyRefreshService.getTodayDischarge());
-        //今日储能  00:00-次日7:59 每1分钟随机增长0.5-1,储满115停止,12:00-16:59 每1分钟随机增长0.5-1,增加到115减第一次放能剩余值(如放能值为85,则放能剩余值为90-85)结束;
-        vo.setTodayStorage(energyRefreshService.getTodayStorage());
+        BigDecimal subtract = new BigDecimal(s1).subtract(new BigDecimal(sysConfig.getContent()));
+                vo.setTodayDischarge(subtract);
+        BigDecimal subtract1 = new BigDecimal(s).subtract(new BigDecimal(sysConfig1.getContent()));
+        vo.setTodayStorage(subtract1);
         return AjaxResult.success(vo);
     }
 
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TScreenContentServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TScreenContentServiceImpl.java
index 569de12..bee6136 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TScreenContentServiceImpl.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TScreenContentServiceImpl.java
@@ -57,11 +57,11 @@
         EmissionReductionVO vo = new EmissionReductionVO();
         //获取总电量 计算累计充电二氧化碳减排量
         BigDecimal charge=top.getCarCharge();
+        BigDecimal multiplier = new BigDecimal("0.1404");
         //计算累计充电二氧化碳减排量
         if (charge.compareTo(BigDecimal.ZERO) != 0) {
             // 定义乘数和除数
-            BigDecimal multiplier = new BigDecimal("0.1404"); // 0.1404
-            BigDecimal divisor = new BigDecimal("1000");    // 1000
+           // 0.1404
             // 计算:charge × 0.1404 ÷ 1000
             charge = charge
                     .multiply(multiplier)      // 乘以 0.1404
@@ -70,42 +70,16 @@
         vo.setCharge(charge);
 
         //获取累计储能放电量
-        TSystemConfiguration sysConfig = systemConfigurationMapper.selectOne(new LambdaQueryWrapper<TSystemConfiguration>()
-                .eq(TSystemConfiguration::getType,3));
-        //解析
-        ScreenStorageConfigVO configVO = JSON.parseObject(sysConfig.getContent(), ScreenStorageConfigVO.class);
-        LocalDate today = LocalDate.now();
-        // 判断是否等于今天
-        if (configVO.getLastUpdated().equals(today)) {
-            vo.setEnergyStorage(configVO.getStorageDisCharge().multiply(new BigDecimal("0.1404")).divide(new BigDecimal("1000"),2,RoundingMode.DOWN));
-        }else {
-            //判断离今天还有几天
-            int count = (int) ChronoUnit.DAYS.between(configVO.getLastUpdated(), today) +1;//包括今天
-            BigDecimal storageDisCharge = configVO.getStorageDisCharge();
-            // 每天生成一个随机值(不超过100)并累加
-            for (int i = 0; i < count; i++) {
-                int dailyCharge = ThreadLocalRandom.current().nextInt(0, 101); // 0-100的随机数
-                storageDisCharge = storageDisCharge.add(new BigDecimal(dailyCharge));
-            }
+        String s = KsolarUtils.getElectricity().split("_")[0];
+        vo.setEnergyStorage(new BigDecimal(s).multiply(multiplier)      // 乘以 0.1404
+                .divide(new BigDecimal("1000"),2, RoundingMode.HALF_DOWN));
 
-            // 更新回对象
-            configVO.setStorageDisCharge(storageDisCharge);
-            configVO.setLastUpdated(today);
-            String json = JSON.toJSONString(configVO);
-            sysConfig.setContent(json);
-
-            systemConfigurationMapper.updateById(sysConfig);
-            vo.setEnergyStorage(storageDisCharge.multiply(new BigDecimal("0.1404")).divide(new BigDecimal("1000"),2,RoundingMode.DOWN));
-        }
         //获取累计发电
         vo.setPhotovoltaic(KsolarUtils.getYearAllEnergy());
-
 
         //总数:
         BigDecimal total = vo.getPhotovoltaic().add(vo.getEnergyStorage()).add(vo.getCharge());
         vo.setTotal(total);
-
-
 
 
 
@@ -173,49 +147,14 @@
         vo.setCarDisCharge(carCharge);
         vo.setGreenElectricity(greenElectricity);
 
-        //获取系统建设日期和累计储能放电量
-        TSystemConfiguration sysConfig = systemConfigurationMapper.selectOne(new LambdaQueryWrapper<TSystemConfiguration>()
-                .eq(TSystemConfiguration::getType,3));
-        //解析
-        ScreenStorageConfigVO configVO = JSON.parseObject(sysConfig.getContent(), ScreenStorageConfigVO.class);
         //计算储能充电量
-        LocalDate systemCreateTime = configVO.getSystemCreateTime();
-        LocalDate today = LocalDate.now();
-        int days = (int) ChronoUnit.DAYS.between(systemCreateTime, today) +1;//包括今天
-
-        BigDecimal dailyRate = new BigDecimal("100");
-        BigDecimal totalCharge = dailyRate.multiply(BigDecimal.valueOf(days));
-        vo.setStorageCharge(totalCharge);
+        String electricity = KsolarUtils.getElectricity();
+        vo.setStorageCharge(new BigDecimal( electricity.split("_")[0]));
 
         vo.setPhotovoltaic(new BigDecimal(KsolarUtils.getAllEnergy(LocalDate.now().toString())));
         vo.setGreenElectricity(vo.getPhotovoltaic().multiply(new BigDecimal("0.94")).setScale(2,  RoundingMode.HALF_UP));
-
-        //获取储能放电量
-        // 判断是否等于今天
-        if (configVO.getLastUpdated().equals(today)) {
-            vo.setStorageDisCharge(configVO.getStorageDisCharge());
-            return vo;
-        }
-        //判断离今天还有几天
-        int count = (int) ChronoUnit.DAYS.between(configVO.getLastUpdated(), today) +1;//包括今天
-        BigDecimal storageDisCharge = configVO.getStorageDisCharge();
-        // 每天生成一个随机值(不超过100)并累加
-        for (int i = 0; i < count; i++) {
-            int dailyCharge = ThreadLocalRandom.current().nextInt(0, 101); // 0-100的随机数
-            storageDisCharge = storageDisCharge.add(new BigDecimal(dailyCharge));
-        }
-
-        // 更新回对象
-        configVO.setStorageDisCharge(storageDisCharge);
-        configVO.setLastUpdated(today);
-        String json = JSON.toJSONString(configVO);
-        sysConfig.setContent(json);
-
-        systemConfigurationMapper.updateById(sysConfig);
-        vo.setStorageDisCharge(storageDisCharge);
-
-
-         return vo;
+        vo.setStorageDisCharge(new BigDecimal(electricity.split("_")[1]));
+        return vo;
     }
 
     @Override
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/EnergyRefreshService.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/EnergyRefreshService.java
index b5d03b8..d7aa1f6 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/EnergyRefreshService.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/EnergyRefreshService.java
@@ -29,304 +29,21 @@
     @Resource
     private TSystemConfigurationMapper systemConfigurationMapper;
 
-    // 储能相关参数
-    private final BigDecimal storageMax = new BigDecimal("115"); // 储能最大值
-    private final BigDecimal targetDischargeTotal = new BigDecimal("97.75"); // 目标总放电量
-    private final double minChargeIncrement = 0.5; // 充电最小增量
-    private final double maxChargeIncrement = 1.0; // 充电最大增量
-    private final int minDischargeTimes = 3; // 最小放电次数
-    private final int maxDischargeTimes = 4; // 最大放电次数
-    private final BigDecimal minDischargeAmount = new BigDecimal("25"); // 单次最小放电量
-    private final BigDecimal maxDischargeAmount = new BigDecimal("35"); // 单次最大放电量
 
-    // 充电阶段标记
-    private boolean isFirstChargeCompleted = false;
-    private boolean isSecondChargeCompleted = false;
-    // 放电次数计数器
-    private int dischargeCount = 0;
-    // 当前阶段总放电量
-    private BigDecimal currentPhaseDischarge = BigDecimal.ZERO;
-
-    // 定时任务方法 - 能量刷新
-//    @Scheduled(cron = "0 * * * * ?") // 每分钟执行一次
-    public synchronized void refreshValue() {
-        LocalTime now = LocalTime.now();
-
-        // 第一轮充电阶段 (0:00-3:00)
-        if (now.isAfter(LocalTime.of(0, 0)) && now.isBefore(LocalTime.of(3, 0))) {
-            handleChargePhase();
-        }
-        // 第一轮放电阶段 (3:10开始,每10分钟一次)
-        else if (now.isAfter(LocalTime.of(3, 0)) && now.isBefore(LocalTime.of(15, 0))
-                && now.getMinute() % 10 == 0 && now.getSecond() == 0) {
-            handleDischargePhase(false);
-        }
-        // 第二轮充电阶段 (15:00-17:00)
-        else if (now.isAfter(LocalTime.of(15, 0)) && now.isBefore(LocalTime.of(17, 0))) {
-            handleChargePhase();
-        }
-        // 第二轮放电阶段 (17:10开始,每10分钟一次)
-        else if (now.isAfter(LocalTime.of(17, 0)) && now.isBefore(LocalTime.of(23, 59))
-                && now.getMinute() % 10 == 0 && now.getSecond() == 0) {
-            handleDischargePhase(true);
-        }
-    }
-
-    // 充电阶段处理逻辑
-    private void handleChargePhase() {
-        BigDecimal todayStorage = getTodayStorage();
-
-        // 如果已经充满,则不再充电
-        if (todayStorage.compareTo(storageMax) >= 0) {
-            if (!isFirstChargeCompleted && todayStorage.compareTo(storageMax) >= 0) {
-                isFirstChargeCompleted = true;
-                System.out.println("第一轮充电已完成,当前储能: " + todayStorage);
-            } else if (!isSecondChargeCompleted && todayStorage.compareTo(storageMax.multiply(new BigDecimal("2"))) >= 0) {
-                isSecondChargeCompleted = true;
-                System.out.println("第二轮充电已完成,当前储能: " + todayStorage);
-            }
-            return;
-        }
-
-        // 随机增量0.5-1.0
-        BigDecimal increment = randomBigDecimal(minChargeIncrement, maxChargeIncrement);
-        BigDecimal newStorage = todayStorage.add(increment).setScale(2, RoundingMode.HALF_UP);
-
-        // 确保不超过最大值
-        BigDecimal maxAllowed = isFirstChargeCompleted ? storageMax.multiply(new BigDecimal("2")) : storageMax;
-        if (newStorage.compareTo(maxAllowed) > 0) {
-            newStorage = maxAllowed;
-        }
-
-        updateStorageValue(newStorage);
-        System.out.printf("充电阶段:当前时间 %s,今日储能:%.2f%n", LocalTime.now(), newStorage);
-    }
-
-    // 放电阶段处理逻辑
-    private void handleDischargePhase(boolean isSecondPhase) {
-        // 如果是第二轮放电且第一轮未完成,则不执行
-        if (isSecondPhase && !isFirstChargeCompleted) {
-            return;
-        }
-
-        // 如果已经达到目标放电量,则不再放电
-        BigDecimal todayDischarge = getTodayDischarge();
-        BigDecimal target = isSecondPhase ? targetDischargeTotal.multiply(new BigDecimal("2")) : targetDischargeTotal;
-        if (todayDischarge.compareTo(target) >= 0) {
-            return;
-        }
-
-        // 如果是新一轮放电阶段,重置计数器
-        if (currentPhaseDischarge.compareTo(BigDecimal.ZERO) == 0) {
-            dischargeCount = 0;
-        }
-
-        // 计算剩余需要放电的量
-        BigDecimal remainingDischarge = target.subtract(todayDischarge);
-
-        // 随机本次放电量 (25-35)
-        BigDecimal dischargeAmount = randomBigDecimal(minDischargeAmount.doubleValue(), maxDischargeAmount.doubleValue());
-
-        // 如果剩余量不足,则只放剩余量
-        if (dischargeAmount.compareTo(remainingDischarge) > 0) {
-            dischargeAmount = remainingDischarge;
-        }
-
-        // 更新放电量
-        BigDecimal newDischarge = todayDischarge.add(dischargeAmount).setScale(2, RoundingMode.HALF_UP);
-        updateDischargeValue(newDischarge);
-
-        // 更新当前阶段放电总量
-        currentPhaseDischarge = currentPhaseDischarge.add(dischargeAmount);
-        dischargeCount++;
-
-        System.out.printf("放电阶段:当前时间 %s,第%d次放电,本次放电:%.2f,今日总放电:%.2f%n",
-                LocalTime.now(), dischargeCount, dischargeAmount, newDischarge);
-
-        // 如果达到最大放电次数或完成目标放电量,重置当前阶段放电量
-        if (dischargeCount >= maxDischargeTimes || remainingDischarge.subtract(dischargeAmount).compareTo(BigDecimal.ZERO) <= 0) {
-            currentPhaseDischarge = BigDecimal.ZERO;
-        }
-    }
-
-    // 重置任务(每天凌晨0点)
+    // 记录截至昨天的总量(每天凌晨0点)
     @Scheduled(cron = "0 0 0 * * ?")
     public void reset() {
-        // 重置所有状态
-        isFirstChargeCompleted = false;
-        isSecondChargeCompleted = false;
-        dischargeCount = 0;
-        currentPhaseDischarge = BigDecimal.ZERO;
-
-        // 初始化今日储能和放电为0
-        updateStorageValue(BigDecimal.ZERO);
-        updateDischargeValue(BigDecimal.ZERO);
-        System.out.println("每日重置完成:今日储能和放电已清零");
-
-
+        String electricity = KsolarUtils.getElectricity();
 
         TSystemConfiguration sysConfig = systemConfigurationMapper.selectOne(new LambdaQueryWrapper<TSystemConfiguration>()
-                .eq(TSystemConfiguration::getType,4));
-        sysConfig.setContent("0");
+                .eq(TSystemConfiguration::getType,5));
+        sysConfig.setContent(electricity.split("_")[0]);
         systemConfigurationMapper.updateById(sysConfig);
 
-
-    }
-
-    /**
-     * 生成指定范围内的随机 BigDecimal(两位小数)
-     * @param min 最小值(包含)
-     * @param max 最大值(包含)
-     * @return 随机 BigDecimal
-     */
-    private BigDecimal randomBigDecimal(double min, double max) {
-        // 生成 [0, 1) 随机数
-        double randomValue = random.nextDouble();
-        // 计算范围内的随机值
-        double range = max - min;
-        double value = min + (randomValue * range);
-
-        // 转换为两位小数的 BigDecimal
-        return BigDecimal.valueOf(value).setScale(2, RoundingMode.HALF_UP);
-    }
-
-
-    // 通用配置更新方法
-    private void updateConfigField(String field, BigDecimal value) {
-        TSystemConfiguration sysConfig = systemConfigurationMapper.selectOne(
-                new LambdaQueryWrapper<TSystemConfiguration>()
-                        .eq(TSystemConfiguration::getType, 3)
-        );
-        if (sysConfig != null) {
-            ScreenStorageConfigVO configVO = JSON.parseObject(sysConfig.getContent(), ScreenStorageConfigVO.class);
-            if ("todayStorage".equals(field)) {
-                configVO.setTodayStorage(value);
-            } else {
-                configVO.setTodayDischarge(value);
-            }
-            sysConfig.setContent(JSON.toJSONString(configVO));
-            systemConfigurationMapper.updateById(sysConfig);
-        }
-    }
-    // 时间段判断方法
-    private boolean isInStorageMorning(LocalTime time) {
-        return time.isAfter(LocalTime.of(0, 0)) && time.isBefore(LocalTime.of(8, 0));
-    }
-
-    private boolean isInDischargeMorning(LocalTime time) {
-        return time.isAfter(LocalTime.of(10, 0)) && time.isBefore(LocalTime.of(12, 0));
-    }
-
-    private boolean isInStorageAfternoon(LocalTime time) {
-        return time.isAfter(LocalTime.of(12, 0)) && time.isBefore(LocalTime.of(17, 0));
-    }
-
-    private boolean isInDischargeAfternoon(LocalTime time) {
-        return time.isAfter(LocalTime.of(17, 0)) && time.isBefore(LocalTime.of(22, 0));
-    }
-
-
-    // 更新今日储能值到数据库
-    private void updateStorageValue(BigDecimal value) {
-        updateConfigField("todayStorage", value);
-    }
-
-    // 更新今日放电值到数据库(原逻辑保留)
-    private void updateDischargeValue(BigDecimal value) {
-        updateConfigField("todayDischarge", value);
-    }
-
-    public BigDecimal getTodayStorage() {
-        TSystemConfiguration sysConfig = systemConfigurationMapper.selectOne(
-                new LambdaQueryWrapper<TSystemConfiguration>()
-                        .eq(TSystemConfiguration::getType, 3)
-        );
-        if (sysConfig != null) {
-            ScreenStorageConfigVO configVO = JSON.parseObject(sysConfig.getContent(), ScreenStorageConfigVO.class);
-            return configVO.getTodayStorage();
-        }
-        return BigDecimal.ZERO;
-    }
-
-    public BigDecimal getTodayDischarge() {
-        TSystemConfiguration sysConfig = systemConfigurationMapper.selectOne(
-                new LambdaQueryWrapper<TSystemConfiguration>()
-                        .eq(TSystemConfiguration::getType, 3)
-        );
-        if (sysConfig != null) {
-            ScreenStorageConfigVO configVO = JSON.parseObject(sysConfig.getContent(), ScreenStorageConfigVO.class);
-            return configVO.getTodayDischarge();
-        }
-        return BigDecimal.ZERO;
-    }
-
-
-
-
-    /**
-     *光伏发电和消纳
-     */
-//    @Scheduled(cron = "0 */1 * * * ?")  // 每分钟点执行
-    public void refreshValueOne() {
-        // 判断时间是否在6:00到8:59
-        LocalTime now = LocalTime.now();
-//        if (now.isAfter(LocalTime.of(6, 0)) && now.isBefore(LocalTime.of(8, 59))) {
-//            List<TSystemConfiguration> sysConfigs = systemConfigurationMapper.selectList(new LambdaQueryWrapper<TSystemConfiguration>()
-//                    .in(TSystemConfiguration::getType,4,5));
-//            TSystemConfiguration sysConfig = sysConfigs.stream().filter(e -> e.getType() == 4).findFirst().orElse(null);
-//
-//            sysConfig.setContent(new BigDecimal(sysConfig.getContent()).add(new BigDecimal("0.5")).toString());
-//            systemConfigurationMapper.updateById(sysConfig);
-//
-//
-//            TSystemConfiguration sysConfig1 = sysConfigs.stream().filter(e -> e.getType() == 5).findFirst().orElse(null);
-//            String string = new BigDecimal(sysConfig1.getContent()).add(new BigDecimal("0.5")).toString();
-//            sysConfig1.setContent(string);
-//            systemConfigurationMapper.updateById(sysConfig1);
-//            // 在6:00到8:59之间,不执行
-//            return;
-//        }
-        // 9:00-16:59每分钟增加随机3 到 3.5
-        if (now.isAfter(LocalTime.of(6, 0)) && now.isBefore(LocalTime.of(12, 0))) {
-            List<TSystemConfiguration> sysConfigs = systemConfigurationMapper.selectList(new LambdaQueryWrapper<TSystemConfiguration>()
-                    .in(TSystemConfiguration::getType,4,5));
-
-            TSystemConfiguration sysConfig = sysConfigs.stream().filter(e -> e.getType() == 4).findFirst().orElse(null);
-            sysConfig.setContent( new BigDecimal(sysConfig.getContent()).add(new BigDecimal(0.1 + (1 - 0.1) * random.nextDouble())
-                    .setScale(2, RoundingMode.HALF_UP)).toString());
-            systemConfigurationMapper.updateById(sysConfig);
-
-
-            TSystemConfiguration sysConfig1 = sysConfigs.stream().filter(e -> e.getType() == 5).findFirst().orElse(null);
-            String string = new BigDecimal(sysConfig1.getContent()).add(new BigDecimal(0.1 + (1 - 0.1) * random.nextDouble())).toString();
-            sysConfig1.setContent(string);
-            systemConfigurationMapper.updateById(sysConfig1);
-            return;
-        }
-
-        //17:00-18:59 每分钟增加0.5
-//        if (now.isAfter(LocalTime.of(17, 0)) && now.isBefore(LocalTime.of(18, 59))) {
-//            List<TSystemConfiguration> sysConfigs = systemConfigurationMapper.selectList(new LambdaQueryWrapper<TSystemConfiguration>()
-//                    .in(TSystemConfiguration::getType,4,5));
-//
-//            TSystemConfiguration sysConfig = sysConfigs.stream().filter(e -> e.getType() == 4).findFirst().orElse(null);
-//
-//            sysConfig.setContent(new BigDecimal(sysConfig.getContent()).add(new BigDecimal("0.5")).toString());
-//            systemConfigurationMapper.updateById(sysConfig);
-//
-//
-//            TSystemConfiguration sysConfig1 = sysConfigs.stream().filter(e -> e.getType() == 5).findFirst().orElse(null);
-//            String string = new BigDecimal(sysConfig1.getContent()).add(new BigDecimal("0.5")).toString();
-//            sysConfig1.setContent(string);
-//            systemConfigurationMapper.updateById(sysConfig1);
-//        }
-    }
-
-
-    public static void main(String[] args) {
-        Random random = new Random();
-        BigDecimal bigDecimal = new BigDecimal(0.1 + (1 - 0.1) * random.nextDouble());
-        System.out.println(bigDecimal);
+        TSystemConfiguration sysConfig1 = systemConfigurationMapper.selectOne(new LambdaQueryWrapper<TSystemConfiguration>()
+                .eq(TSystemConfiguration::getType,4));
+        sysConfig1.setContent(electricity.split("_")[1]);
+        systemConfigurationMapper.updateById(sysConfig1);
 
     }
 
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/KsolarUtils.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/KsolarUtils.java
index eb3cf11..06ab4ac 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/KsolarUtils.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/KsolarUtils.java
@@ -199,6 +199,7 @@
      * @return
      */
     public static String getElectricity(){
+        String valueTotal = "0";
         String value = "0";
         HttpRequest post = HttpRequest.post("https://www.zsdcloud.cn:8443/openApi/equipment/select.action");
         post.form("token", accessToken);
@@ -215,16 +216,23 @@
         }
         String string1 = jsonObject.getString("result");
         JSONObject jsonObject1 = JSONObject.parseObject(string1);
-        String realInfo = jsonObject1.getString("realInfo");
+        String realInfo = jsonObject1.getString("childList");
         JSONArray jsonArray = JSONArray.parseArray(realInfo);
         for (Object o : jsonArray) {
             JSONObject jsonObject2 = JSONObject.parseObject(o.toString());
-            if(jsonObject2.get("Name").toString().equals("累积日充电量")){
-                value=  jsonObject2.get("Value").toString();
-                break;
+            String string2 = jsonObject2.get("valueList").toString();
+            JSONArray jsonArray1 = JSONArray.parseArray(string2);
+            for (Object o1 : jsonArray1) {
+                JSONObject jsonObject3 = JSONObject.parseObject(o1.toString());
+                if(jsonObject3.get("Name").toString().equals("系统累计充电量")){
+                    valueTotal=  jsonObject3.get("Value").toString();
+                }
+                if(jsonObject3.get("Name").toString().equals("系统累计放电量")){
+                    value=  jsonObject3.get("Value").toString();
+                }
             }
         }
-        return value;
+        return valueTotal+"_"+value;
     }
     public static void main(String[] args) throws Exception {
         String electricity = getElectricity();
diff --git a/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/ali/v2/H5PayUtil.java b/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/ali/v2/H5PayUtil.java
index ad4a16e..b370613 100644
--- a/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/ali/v2/H5PayUtil.java
+++ b/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/ali/v2/H5PayUtil.java
@@ -199,11 +199,12 @@
      * 支付宝退款
      *
      * @param trade_no      支付宝交易号
+     * @param outRequestNo 退款业务流水号
      * @param refund_amount 退款金额
      * @return
      * @throws AlipayApiException
      */
-    public Map<String, String> aliRefund(String trade_no, String refund_amount) {
+    public Map<String, String> aliRefund(String trade_no,String outRequestNo, String refund_amount) {
         try {
             // 初始化SDK
             AlipayClient alipayClient = new DefaultAlipayClient(getAlipayConfig());
@@ -212,6 +213,7 @@
             // 设置订单支付时传入的商户订单号
             model.setTradeNo(trade_no);
             model.setRefundAmount(refund_amount);
+            model.setOutRequestNo(outRequestNo);
             model.setRefundReason("充电退款");
             request.setBizModel(model);
             AlipayTradeRefundResponse response = alipayClient.execute(request);
diff --git a/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/H5AliPayController.java b/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/H5AliPayController.java
index 10cf628..7d61713 100644
--- a/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/H5AliPayController.java
+++ b/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/H5AliPayController.java
@@ -79,7 +79,7 @@
 	 */
 	@PostMapping("/refund")
 	public R<RefundResp> refund(@RequestBody RefundReq dto){
-		Map<String, String> map = h5PayUtil.aliRefund(dto.getOutTradeNo(), dto.getRefundAmount());
+		Map<String, String> map = h5PayUtil.aliRefund(dto.getOutTradeNo(),dto.getOutRequestNo(), dto.getRefundAmount());
 		RefundResp refundResp = new RefundResp();
 		refundResp.setCode(map.get("code"));
 		refundResp.setMsg(map.get("msg"));

--
Gitblit v1.7.1