From e25b31c6abf9b26f2b61768ad6039961574b10a1 Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期四, 31 十月 2024 09:34:17 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java                                   |  329 +++++++++++---
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyServiceImpl.java                |   22 +
 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/UploadRealTimeMonitoringDataFallbackFactory.java      |    5 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java                                   |    3 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingPileClient.java                         |    2 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserVipDetail.java                                          |    3 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TParkingRecord.java                                   |    9 
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/AccountingStrategyDetailOrderVo.java                                   |   47 ++
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TVehicleRampController.java                          |    2 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java                       |    2 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserVipDetailController.java                               |   11 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java                                      |   16 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java                                   |   24 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/UploadRealTimeMonitoringDataController.java            |    6 
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java                                      |    8 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java                            |    2 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserSign.java                                               |    2 
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TChargingOrderVo.java                                                  |   15 
 ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TAccountingStrategyMapper.xml                                 |   19 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderEvaluateController.java                                      |   10 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java                                    |   20 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/SignDayUtil.java                                                     |   27 +
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java |   44 +
 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/BaseModel.java                                          |    4 
 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderEvaluateMapper.xml                                                    |    1 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java                      |   85 ++-
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java                                 |    5 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingPileFallbackFactory.java                    |    2 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TVip.java                                                       |  156 +++++++
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/model/SwitchwayGate.java                              |    5 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java                         |  128 ++++-
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java                    |   42 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TShoppingOrderController.java                                      |   10 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java                                    |    2 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/SiteInfoVO.java                                          |    2 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/UploadRealTimeMonitoringDataService.java          |    4 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TRepairController.java                               |   12 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java                                              |    3 
 ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml                                                |   12 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/SwitchwayGateService.java                      |   14 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserCar.java                                                |    2 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java                                            |    9 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java                                  |    4 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java                   |    9 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java                                      |    5 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java                                        |   13 
 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/UploadRealTimeMonitoringDataClient.java           |    3 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TAccountingStrategyService.java                         |    3 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java                                      |   30 +
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java                                          |    7 
 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/MD5Util.java                                                 |   31 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java                                        |    3 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java                        |    1 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TAccountingStrategyMapper.java                           |    3 
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrderAccountingStrategy.java                               |    1 
 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml                                                    |    6 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java                                           |    2 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java                               |    4 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java                                             |    5 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/ChargingMessageListener.java                       |   55 --
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TGoodsServiceImpl.java                                           |    3 
 61 files changed, 985 insertions(+), 329 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserCar.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserCar.java
index fc25220..1d09ba7 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserCar.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserCar.java
@@ -33,6 +33,8 @@
     @TableId("id")
     private Long id;
     @TableField(exist = false)
+    private String id_;
+    @TableField(exist = false)
     private String uid;
 
     @ApiModelProperty(value = "app用户id")
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserSign.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserSign.java
index 9f40e3a..022da3d 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserSign.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserSign.java
@@ -54,6 +54,8 @@
     @TableField("create_time")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private LocalDateTime createTime;
+    @TableField(exist = false)
+    private Integer continueDays;
 
 
 }
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserVipDetail.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserVipDetail.java
index 865d080..701a010 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserVipDetail.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserVipDetail.java
@@ -91,6 +91,9 @@
     @TableField(exist = false)
     private Integer type;
 
+    @TableField(exist = false)
+    private TVip vip;
+
 
 
 }
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TVip.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TVip.java
new file mode 100644
index 0000000..830ebda
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TVip.java
@@ -0,0 +1,156 @@
+package com.ruoyi.account.api.model;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.web.domain.BasePojo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 无关风月
+ * @since 2024-08-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("t_vip")
+@ApiModel(value="TVip对象", description="")
+public class TVip extends BasePojo {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "会员名称")
+    @TableField("name")
+    private String name;
+
+    @ApiModelProperty(value = "前端是否显示(0=否,1=是)")
+    @TableField("reveal")
+    private Integer reveal;
+
+    @ApiModelProperty(value = "月卡价格")
+    @TableField("monthly_card")
+    private BigDecimal monthlyCard;
+
+    @ApiModelProperty(value = "月卡显示(0=否,1=是)")
+    @TableField("monthly_card_reveal")
+    private Integer monthlyCardReveal;
+
+    @ApiModelProperty(value = "月卡折扣")
+    @TableField("monthly_card_discount")
+    private BigDecimal monthlyCardDiscount;
+
+    @ApiModelProperty(value = "月卡折扣开始时间")
+    @TableField("monthly_card_discount_start")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private LocalDateTime monthlyCardDiscountStart;
+
+    @ApiModelProperty(value = "月卡折扣结束时间")
+    @TableField("monthly_card_discount_end")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private LocalDateTime monthlyCardDiscountEnd;
+
+    @ApiModelProperty(value = "月卡折扣显示(0=否,1=是)")
+    @TableField("monthly_card_discount_reveal")
+    private Integer monthlyCardDiscountReveal;
+
+    @ApiModelProperty(value = "季卡价格")
+    @TableField("season_card")
+    private BigDecimal seasonCard;
+
+    @ApiModelProperty(value = "季卡显示(0=否,1=是)")
+    @TableField("season_card_reveal")
+    private Integer seasonCardReveal;
+
+    @ApiModelProperty(value = "季卡折扣")
+    @TableField("season_card_discount")
+    private BigDecimal seasonCardDiscount;
+
+    @ApiModelProperty(value = "季卡折扣开始时间")
+    @TableField("season_card_discount_start")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private LocalDateTime seasonCardDiscountStart;
+
+    @ApiModelProperty(value = "季卡折扣结束时间")
+    @TableField("season_card_discount_end")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private LocalDateTime seasonCardDiscountEnd;
+
+    @ApiModelProperty(value = "季卡折扣显示(0=否,1=是)")
+    @TableField("season_card_discount_reveal")
+    private Integer seasonCardDiscountReveal;
+
+    @ApiModelProperty(value = "年卡价格")
+    @TableField("annual_card")
+    private BigDecimal annualCard;
+
+    @ApiModelProperty(value = "年卡显示(0=否,1=是)")
+    @TableField("annual_card_reveal")
+    private Integer annualCardReveal;
+
+    @ApiModelProperty(value = "年卡折扣")
+    @TableField("annual_card_discount")
+    private BigDecimal annualCardDiscount;
+
+    @ApiModelProperty(value = "年卡折扣开始时间")
+    @TableField("annual_card_discount_start")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private LocalDateTime annualCardDiscountStart;
+
+    @ApiModelProperty(value = "年卡折扣结束时间")
+    @TableField("annual_card_discount_end")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private LocalDateTime annualCardDiscountEnd;
+
+    @ApiModelProperty(value = "年卡折扣显示(0=否,1=是)")
+    @TableField("annual_card_discount_reveal")
+    private Integer annualCardDiscountReveal;
+
+    @ApiModelProperty(value = "折扣次数")
+    @TableField("discount_times")
+    private Integer discountTimes;
+
+    @ApiModelProperty(value = "最高抵扣金额")
+    @TableField("maximum_deduction")
+    private BigDecimal maximumDeduction;
+
+    @ApiModelProperty(value = "抵扣类型(1=服务费)")
+    @TableField("deduction_type")
+    private Integer deductionType;
+
+    @ApiModelProperty(value = "优惠券[{\"id\":1,\"number\":1}]")
+    @TableField("coupon")
+    private String coupon;
+
+    @ApiModelProperty(value = "双倍积分开关(0=否,1=是)")
+    @TableField("double_integration")
+    private Integer doubleIntegration;
+
+    @ApiModelProperty(value = "商城专享价开关(0=否,1=是)")
+    @TableField("mall_exclusive_price")
+    private Integer mallExclusivePrice;
+    @ApiModelProperty(value = "内部会员折扣")
+    @TableField("discount")
+    private BigDecimal discount;
+    @ApiModelProperty(value = "添加的会员类型 1常规 2内部")
+    @TableField("type")
+    private Integer type;
+
+    @ApiModelProperty(value = "优惠券名称和张数 后台列表展示使用")
+    @TableField(exist = false)
+    private String couponName;
+
+
+}
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingPileFallbackFactory.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingPileFallbackFactory.java
index 2948838..eb221dd 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingPileFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingPileFallbackFactory.java
@@ -58,7 +58,7 @@
             }
     
             @Override
-            public void updateChargingPileStatus(String code, Integer status) {
+            public void updateChargingPileStatus(String pile_code, String gun_code, Integer status) {
                 log.error("修改充电桩状态失败:" + throwable.getMessage());
             }
             
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingPileClient.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingPileClient.java
index 9b19c6f..60448b2 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingPileClient.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingPileClient.java
@@ -57,5 +57,5 @@
      * @param status
      */
     @PostMapping("/t-charging-pile/updateChargingPileStatus")
-    void updateChargingPileStatus(@RequestParam("code") String code, @RequestParam("status") Integer status);
+    void updateChargingPileStatus(@RequestParam("pile_code") String pile_code, @RequestParam("gun_code") String gun_code, @RequestParam("status") Integer status);
 }
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TParkingRecord.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TParkingRecord.java
index 3e5d867..81b5024 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TParkingRecord.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TParkingRecord.java
@@ -37,13 +37,14 @@
     @TableField("app_user_id")
     private Long appUserId;
 
+    @ApiModelProperty(value = "停车场名称")
+    @TableField("name")
+    private String name;
+
     @ApiModelProperty(value = "车牌号")
     @TableField("license_plate")
     private String licensePlate;
-    
-    @TableField(exist = false)
-    private String name;
-    
+
     @TableField(exist = false)
     private String uid;
     
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/SiteInfoVO.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/SiteInfoVO.java
index 485fae2..7507994 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/SiteInfoVO.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/SiteInfoVO.java
@@ -42,5 +42,5 @@
     @ApiModelProperty(value = "上次选择车辆品牌")
     private String vehicleBrand;
     @ApiModelProperty(value = "上次选择车辆id")
-    private Long id;
+    private String id;
 }
diff --git a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/UploadRealTimeMonitoringDataFallbackFactory.java b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/UploadRealTimeMonitoringDataFallbackFactory.java
index 3f5bf8b..5a46c09 100644
--- a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/UploadRealTimeMonitoringDataFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/UploadRealTimeMonitoringDataFallbackFactory.java
@@ -47,6 +47,11 @@
             public R<UploadRealTimeMonitoringPageData> getAll(MongoChargingOrderQuery mongoChargingOrderQuery) {
                 return null;
             }
+
+            @Override
+            public R delete(String id) {
+                return null;
+            }
         };
     }
 }
diff --git a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/UploadRealTimeMonitoringDataClient.java b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/UploadRealTimeMonitoringDataClient.java
index 824cb1f..5d89233 100644
--- a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/UploadRealTimeMonitoringDataClient.java
+++ b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/UploadRealTimeMonitoringDataClient.java
@@ -46,4 +46,7 @@
 
 	@PostMapping("/uploadRealTimeMonitoringData/getAll")
 	R<UploadRealTimeMonitoringPageData> getAll(@RequestBody MongoChargingOrderQuery mongoChargingOrderQuery);
+
+	@PostMapping("/uploadRealTimeMonitoringData/delete")
+	R delete(@RequestParam("id") String id);
 }
diff --git a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/BaseModel.java b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/BaseModel.java
index fe393ff..342055e 100644
--- a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/BaseModel.java
+++ b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/BaseModel.java
@@ -1,5 +1,6 @@
 package com.ruoyi.integration.api.model;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
 import java.util.Date;
@@ -10,7 +11,8 @@
  */
 @Data
 public class BaseModel {
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
 	private Date last_time = new Date();
-	
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
 	private Date create_time = new Date();
 }
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java
index e4a99c5..a6ff664 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java
@@ -158,6 +158,11 @@
             public void endChargeBillingCharge(TransactionRecordMessageVO vo) {
                 log.error("停止充电返回账单后计算费用处理失败:" + throwable.getMessage());
             }
+    
+            @Override
+            public R<List<TChargingOrder>> getChargingOrder(TChargingOrderVo order) {
+                return R.fail("获取充电订单数据失败:" + throwable.getMessage());
+            }
         };
     }
 }
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java
index 3f10657..94b480a 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java
@@ -206,4 +206,12 @@
      */
     @PostMapping("/t-charging-order/endChargeBillingCharge")
     void endChargeBillingCharge(@RequestBody TransactionRecordMessageVO vo);
+    
+    /**
+     * 获取充电订单数据
+     * @param order
+     * @return
+     */
+    @PostMapping("/t-charging-order/getChargingOrder")
+    R<List<TChargingOrder>> getChargingOrder(@RequestBody TChargingOrderVo order);
 }
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrderAccountingStrategy.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrderAccountingStrategy.java
index 39f3408..53137bd 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrderAccountingStrategy.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrderAccountingStrategy.java
@@ -105,5 +105,4 @@
 
 
 
-
 }
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/AccountingStrategyDetailOrderVo.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/AccountingStrategyDetailOrderVo.java
new file mode 100644
index 0000000..b99cac8
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/AccountingStrategyDetailOrderVo.java
@@ -0,0 +1,47 @@
+package com.ruoyi.order.api.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/9/3 14:00
+ */
+@Data
+public class AccountingStrategyDetailOrderVo {
+	@ApiModelProperty(value = "主键")
+	private Integer id;
+	@ApiModelProperty(value = "策略id")
+	private Integer accountingStrategyId;
+	
+	@ApiModelProperty(value = "阶段(1=尖阶段,2=峰阶段,3=平阶段,4=谷阶段)")
+	private Integer type;
+	
+	@ApiModelProperty(value = "开始时间")
+	private String startTime;
+	
+	@ApiModelProperty(value = "结束时间")
+	private String endTime;
+	
+	@ApiModelProperty(value = "电价")
+	private BigDecimal electrovalence;
+	
+	@ApiModelProperty(value = "服务费")
+	private BigDecimal serviceCharge;
+	
+	@ApiModelProperty(value = "原价服务费")
+	private BigDecimal costServiceCharge;
+	
+	@ApiModelProperty(value = "充电订单id")
+	private Long chargingOrderId;
+	
+	private Long start;
+	private Long end;
+	private BigDecimal chargingCapacity;
+}
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TChargingOrderVo.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TChargingOrderVo.java
new file mode 100644
index 0000000..ee3dbbf
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TChargingOrderVo.java
@@ -0,0 +1,15 @@
+package com.ruoyi.order.api.vo;
+
+import com.ruoyi.order.api.model.TChargingOrder;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/10/29 13:35
+ */
+@Data
+public class TChargingOrderVo extends TChargingOrder {
+	private List<Integer> statusList;
+}
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java
index acc6b84..64de41c 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java
@@ -7,10 +7,7 @@
 import com.ruoyi.system.api.factory.SysUserFallbackFactory;
 import com.ruoyi.system.api.model.*;
 import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.*;
 
 import javax.management.relation.Role;
 import java.util.List;
@@ -22,7 +19,7 @@
     R<List<CompanyUserListVo>> getSysUserFromCompanyId(@RequestBody CompanySysUserReq companySysUserReq);
 
     @PostMapping("/user/getSysUser")
-    R<SysUser> getSysUser(Long userId);
+    R<SysUser> getSysUser(@RequestParam("userId")Long userId);
 
     @PostMapping("/user/updateSysUser")
     R<Boolean>  updateSysUser(@RequestBody SysUser sysUser);
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/MD5Util.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/MD5Util.java
index 0f28ea6..1037459 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/MD5Util.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/MD5Util.java
@@ -52,27 +52,20 @@
     public static String getMD5(String str) {
         if (StringUtils.isNotEmpty(str)) {
             try {
+                // 创建MD5加密实例
                 MessageDigest md = MessageDigest.getInstance("MD5");
-                md.update(str.getBytes());
-                byte b[] = md.digest();
-                int i;
-                StringBuffer buf = new StringBuffer("");
-                for (int offset = 0; offset < b.length; offset++) {
-                    i = b[offset];
-                    if (i < 0)
-                        i += 256;
-                    if (i < 16)
-                        buf.append("0");
-                    buf.append(Integer.toHexString(i));
+    
+                // 执行加密操作
+                byte[] messageDigest = md.digest(str.getBytes());
+    
+                // 将得到的散列值转换为十六进制
+                StringBuilder sb = new StringBuilder();
+                for (byte b : messageDigest) {
+                    sb.append(String.format("%02x", b));
                 }
-                //32位加密(小写)
-            return buf.toString();
-            //32位加密(大写)
-            //return buf.toString().toUpperCase();
-            // 16位的加密(小写)
-            //return buf.toString().substring(8, 24);
-            // 16位的加密(大写)
-            //return buf.toString().substring(8, 24).toUpperCase();
+    
+                // 返回MD5散列值
+                return sb.toString();
             } catch (NoSuchAlgorithmException e) {
                 e.printStackTrace();
             }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
index 30e4c24..d69b216 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
@@ -354,7 +354,7 @@
     }
 
     @PostMapping("/getSysUser")
-    public R<SysUser> getSysUser(@RequestBody Long userId) {
+    public R<SysUser> getSysUser(@RequestParam("userId") Long userId) {
         try {
             SysUser sysUser = userService.selectUserById(userId);
             return R.ok(sysUser);
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
index d11a972..3f0099d 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
@@ -122,13 +122,13 @@
                 // 没有充电订单 展示最新添加的车辆
                 data.setLicensePlate(cars.get(0).getLicensePlate());
                 data.setVehicleBrand(cars.get(0).getVehicleBrand());
-                data.setId(cars.get(0).getId());
+                data.setId(cars.get(0).getId().toString());
             }else{
                 for (TAppUserCar car : cars) {
                     if (car.getId().equals(data1)){
                         data.setLicensePlate(car.getLicensePlate());
                         data.setVehicleBrand(car.getVehicleBrand());
-                        data.setId(car.getId());
+                        data.setId(car.getId().toString());
                     }
                 }
             }
@@ -164,6 +164,7 @@
     public R<List<TAppUserCar>> carList() {
         List<TAppUserCar> appUserId = appUserCarService.list(new QueryWrapper<TAppUserCar>()
                 .eq("app_user_id",tokenService.getLoginUserApplet().getUserId()));
+        appUserId.forEach(s->s.setId_(s.getId().toString()));
         return R.ok(appUserId);
     }
 
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
index 2062fdb..70d9802 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
@@ -41,6 +41,7 @@
 import com.ruoyi.order.api.model.TGrantVip;
 import com.ruoyi.other.api.domain.*;
 import com.ruoyi.other.api.domain.TCoupon;
+import com.ruoyi.other.api.domain.TVip;
 import com.ruoyi.other.api.dto.UnitListQueryDto;
 import com.ruoyi.other.api.feignClient.IntegralRuleClient;
 import com.ruoyi.other.api.feignClient.OtherClient;
@@ -710,7 +711,7 @@
 
 
     @ApiOperation(value = "优惠卷详情(1可使用2不可用)", tags = {"小程序-个人中心"})
-    @GetMapping(value = "/user/coupon/getById")
+    @PostMapping(value = "/user/coupon/getById")
     public R<TAppCoupon> couponGetById(@RequestParam("id")Long id) {
         TAppCoupon appCoupon = appCouponService.getById(id);
         appCoupon.setUid(id.toString());
@@ -741,13 +742,13 @@
             TVip info = vipClient.getInfo1(giveVipDto.getVipId()).getData();
         switch (giveVipDto.getType()){
             case 1:
-                bigDecimal = bigDecimal.add(info.getMonthlyCard());
+                bigDecimal = bigDecimal.add(info.getMonthlyCard()==null?new BigDecimal(0):info.getMonthlyCard());
                 break;
             case 2:
-                bigDecimal = bigDecimal.add(info.getSeasonCard());
+                bigDecimal = bigDecimal.add(info.getSeasonCard()==null?new BigDecimal(0):info.getSeasonCard());
                 break;
             case 3:
-                bigDecimal = bigDecimal.add(info.getAnnualCard());
+                bigDecimal = bigDecimal.add(info.getAnnualCard()==null?new BigDecimal(0):info.getAnnualCard());
                 break;
         }
             //增加vipDetail
@@ -969,6 +970,10 @@
                 .eq(TAppUserSign::getAppUserId, userId)
                 .orderByDesc(TAppUserSign::getSignDay)
                 .list();
+        for (TAppUserSign signRecord : signRecords) {
+            int i = signDayUtil.calculateContinuousSignDays1(signRecord.getAppUserId(), signRecord.getSignDay());
+            signRecord.setContinueDays(i);
+        }
         return R.ok(signRecords);
 
     }
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserVipDetailController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserVipDetailController.java
index 196895d..27c8667 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserVipDetailController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserVipDetailController.java
@@ -1,15 +1,16 @@
 package com.ruoyi.account.controller;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ruoyi.account.api.dto.SendCouponDto;
 import com.ruoyi.account.api.model.TAppUserVipDetail;
+import com.ruoyi.account.api.model.TVip;
 import com.ruoyi.account.api.vo.GetAppUserVipDetail;
 import com.ruoyi.account.service.TAppUserVipDetailService;
 import com.ruoyi.account.util.VipInfoDto;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.other.api.domain.TCoupon;
-import com.ruoyi.other.api.domain.TVip;
 import com.ruoyi.other.api.dto.VipCouponDto;
 import com.ruoyi.other.api.feignClient.OtherClient;
 import com.ruoyi.other.api.feignClient.VipClient;
@@ -62,9 +63,11 @@
 
 		for (TAppUserVipDetail tAppUserVipDetail : list) {
             if(null != tAppUserVipDetail.getVipId()){
-                TVip data = vipClient.getInfo1(tAppUserVipDetail.getVipId()).getData();
-                tAppUserVipDetail.setVipName(data.getName());
-				tAppUserVipDetail.setType(data.getType());
+				TVip tVip = JSONObject.parseObject(tAppUserVipDetail.getVipJson(), TVip.class);
+//				TVip data = vipClient.getInfo1(tAppUserVipDetail.getVipId()).getData();
+                tAppUserVipDetail.setVipName(tVip.getName());
+				tAppUserVipDetail.setType(tVip.getType());
+				tAppUserVipDetail.setVip(tVip);
             }
         }
 
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/SignDayUtil.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/SignDayUtil.java
index 3431f5f..f2f1b87 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/SignDayUtil.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/SignDayUtil.java
@@ -4,7 +4,9 @@
 import cn.hutool.core.date.DateUtil;
 import com.ruoyi.account.api.model.TAppUserSign;
 import com.ruoyi.account.service.TAppUserSignService;
+import org.springframework.cglib.core.Local;
 import org.springframework.stereotype.Component;
+import sun.rmi.server.LoaderHandler;
 
 import javax.annotation.Resource;
 import java.time.LocalDate;
@@ -48,6 +50,31 @@
         return calculateMaxContinuousSignDays(signDays);
     }
 
+    public int calculateContinuousSignDays1(Long userId, LocalDate date) {
+        DateTime startOfMonth = DateUtil.beginOfMonth(new Date());
+//        DateTime endOfMonth = DateUtil.endOfMonth(new Date());
+        // 获取用户的所有签到记录
+        List<TAppUserSign> signRecords = signService.lambdaQuery()
+                .between(TAppUserSign::getSignDay, startOfMonth, date)
+                .eq(TAppUserSign::getAppUserId, userId)
+                .orderByDesc(TAppUserSign::getSignDay)
+                .list();
+
+        // 如果没有签到记录,则返回0
+        if (signRecords.isEmpty()) {
+            return 0;
+        }
+
+        // 将签到日期转换为 LocalDate 列表,并按照日期排序
+        List<LocalDate> signDays = signRecords.stream()
+                .map(TAppUserSign::getSignDay)
+                .sorted()
+                .collect(Collectors.toList());
+
+        // 计算连续签到的最大天数
+        return calculateMaxContinuousSignDays(signDays);
+    }
+
     /**
      * 根据签到日期列表计算连续签到的最大天数
      * @param signDays 签到日期列表
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java
index dbd0aa4..171a350 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java
@@ -123,8 +123,8 @@
 		SiteInfoVO siteInfoVO = new SiteInfoVO();
 		TChargingGun chargingGun = chargingGunService.getOne(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getFullNumber, number));
 		TChargingPile one = chargingPileService.getById(chargingGun.getChargingPileId());
-		Site byId = siteService.getById(one.getSiteId());
-		TAccountingStrategy byId1 = accountingStrategyService.getById(byId.getAccountingStrategyId());
+		Site byId = siteService.getById(chargingGun.getSiteId());
+		TAccountingStrategy byId1 = accountingStrategyService.getById(chargingGun.getAccountingStrategyId());
 		List<TAccountingStrategyDetail> list = accountingStrategyDetailService.lambdaQuery().eq(TAccountingStrategyDetail::getAccountingStrategyId, byId1.getId()).list();
 		list.stream().filter(item -> "00:00".equals(item.getEndTime())).forEach(item -> item.setEndTime("23:59:59"));
 		for (TAccountingStrategyDetail tAccountingStrategyDetail : list) {
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java
index 2670e36..562043a 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java
@@ -327,7 +327,7 @@
     @PostMapping(value = "/auth/pageList")
     public AjaxResult<PageInfo<TAccountingStrategyVO>> authPageList(@RequestBody TAccountingStrategyQuery query) {
 
-        return AjaxResult.ok(accountingStrategyService.pageList(query));
+        return AjaxResult.ok(accountingStrategyService.pageList1(query));
     }
     
 
@@ -361,8 +361,11 @@
                     byId.setSiteId(one.getSiteId());
                     //将site表对应的模板id修改为新的这个
                     Site byId1 = siteService.getById(one.getSiteId());
-                    byId1.setAccountingStrategyId(byId.getId());
-                    siteService.updateById(byId1);
+                    if (byId1!=null) {
+                        byId1.setAccountingStrategyId(byId.getId());
+                        siteService.updateById(byId1);
+                    }
+                    accountingStrategyService.removeById(one.getId());
                 }
                 //硬件
                 List<TChargingPile> list = chargingPileService.lambdaQuery().eq(TChargingPile::getSiteId, byId.getSiteId()).list();
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java
index 8c10da3..aba788a 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java
@@ -390,7 +390,6 @@
         TSettlementConfirm data = chargingOrderClient.downloadSettlement(uid.getUid()).getData();
         for (TChargingOrder chargingOrder : data.getList()) {
             SettlementExportVO settlementExportVO = new SettlementExportVO();
-
             BeanUtils.copyProperties(data, settlementExportVO);
             List<Site> data3 = siteClient.getSiteByIds(Arrays.asList(data.getSiteId())).getData();
             if (data3!=null && (!data3.isEmpty())){
@@ -484,26 +483,28 @@
             settlementExportVO.setCreateTime1(createTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
             settlementExportVO.setStartTime1(startTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
             settlementExportVO.setEndTime1(endTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
-            switch (settlementExportVO.getStatus()){
-                case 0:
-                    settlementExportVO.setStatusName("未知");
-                    break;
-                case 1:
-                    settlementExportVO.setStatusName("等待中/已插枪");
-                    break;
-                case 2:
-                    settlementExportVO.setStatusName("启动中");
-                    break;
-                case 3:
-                    settlementExportVO.setStatusName("充电中");
-                    break;
-                case 4:
-                    settlementExportVO.setStatusName("停止中");
-                    break;
-                case 5:
-                    settlementExportVO.setStatusName("已结束");
-                    break;
+            if (chargingOrder.getStatus()!=null){
+                switch (chargingOrder.getStatus()){
+                    case 0:
+                        settlementExportVO.setStatusName("未知");
+                        break;
+                    case 1:
+                        settlementExportVO.setStatusName("等待中/已插枪");
+                        break;
+                    case 2:
+                        settlementExportVO.setStatusName("启动中");
+                        break;
+                    case 3:
+                        settlementExportVO.setStatusName("充电中");
+                        break;
+                    case 4:
+                        settlementExportVO.setStatusName("停止中");
+                        break;
+                    case 5:
+                        settlementExportVO.setStatusName("已结束");
+                        break;
 
+                }
             }
             settlementExportVO.setOrderTypeName("充电订单");
             settlementExportVO.setChargingType("单桩双充");
@@ -590,7 +591,6 @@
                 excelWriter.fill(new FillWrapper("data1", chargingBillVOS), fillConfig, writeSheet);
                 excelWriter.fill(new FillWrapper("data2", chargingBillVOS), fillConfig, writeSheet2);
                 excelWriter.fill(new FillWrapper("data3", data.getList()), fillConfig, writeSheet3);
-                excelWriter.fill(new FillWrapper("data4", data.getList()), fillConfig, writeSheet3);
                 excelWriter.finish();
             } catch (Exception e) {
                 return R.fail("excel导出失败!");
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java
index ff411ec..4a4feea 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java
@@ -27,6 +27,9 @@
 import com.ruoyi.common.log.enums.BusinessType;
 import com.ruoyi.common.log.enums.OperatorType;
 import com.ruoyi.common.redis.service.RedisService;
+import com.ruoyi.order.api.feignClient.ChargingOrderClient;
+import com.ruoyi.order.api.model.TChargingOrder;
+import com.ruoyi.order.api.vo.TChargingOrderVo;
 import com.ruoyi.other.api.domain.TVip;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -41,9 +44,8 @@
 
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -66,6 +68,9 @@
 
 	@Resource
 	private TFaultMessageService faultMessageService;
+	
+	@Resource
+	private ChargingOrderClient chargingOrderClient;
 
 
     @Autowired
@@ -206,7 +211,7 @@
 	 */
 	@ResponseBody
 	@PostMapping("/getChargingPileById/{id}")
-	public R<TChargingPile> getChargingPileById(@PathVariable Integer id){
+	public R<TChargingPile> getChargingPileById(@PathVariable("id") Integer id){
 		TChargingPile chargingPile = chargingPileService.getById(id);
 		return R.ok(chargingPile);
 	}
@@ -214,49 +219,94 @@
 
 	/**
 	 * 更新充电桩状态
-	 * @param code
 	 * @param status
 	 */
 	@ResponseBody
 	@PostMapping("/updateChargingPileStatus")
-	public void updateChargingPileStatus(@RequestParam("code") String code, @RequestParam("status") Integer status){
-		TChargingPile chargingPile = chargingPileService.getOne(new LambdaQueryWrapper<TChargingPile>()
-				.eq(TChargingPile::getCode, code).eq(TChargingPile::getDelFlag, 0));
-		if(null != chargingPile){
-			//充电桩正常,返回异常,处理充电桩状态和添加故障记录
-			if(chargingPile.getStatus() == 1 && 1 == status){
-				TFaultMessage faultMessage = faultMessageService.getOne(new LambdaQueryWrapper<TFaultMessage>().eq(TFaultMessage::getChargingPileId, chargingPile.getId())
-						.eq(TFaultMessage::getStatus, 2).eq(TFaultMessage::getDelFlag, 0).isNull(TFaultMessage::getEndTime));
-				if(null == faultMessage){
-					faultMessage = new TFaultMessage();
-					faultMessage.setSiteId(chargingPile.getSiteId());
-					faultMessage.setChargingPileId(chargingPile.getId());
-					faultMessage.setStatus(2);
-					faultMessage.setDownTime(LocalDateTime.now());
-					faultMessage.setCreateTime(LocalDateTime.now());
-					faultMessage.setDelFlag(false);
-					faultMessage.setContent("设备故障");
-					faultMessageService.save(faultMessage);
-
-					chargingPile.setStatus(0 == status ? 1 : 3);
-					chargingPileService.updateById(chargingPile);
+	public void updateChargingPileStatus(@RequestParam("pile_code") String pile_code, @RequestParam("gun_code") String gun_code, @RequestParam("status") Integer status){
+		Map<String, Object> charging_pile_online = redisService.getCacheMap("charging_gun_online");
+		Long time = (Long) charging_pile_online.get(pile_code + gun_code);
+		//小于30秒才处理数据,防止频繁查询数据
+		if(null != time && (System.currentTimeMillis() - time) < 30000){
+			return;
+		}
+		TChargingGun tChargingGun = chargingGunService.getOne(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getFullNumber, (pile_code + gun_code)).eq(TChargingGun::getDelFlag, 0));
+		if(null != tChargingGun){
+			TChargingPile chargingPile = chargingPileService.getById(tChargingGun.getChargingPileId());
+			//枪处于离线或者故障,返回状态为正常,则修改其状态
+			if(0 == status && tChargingGun.getStatus() != 2){
+				TChargingGun tChargingGun1 = new TChargingGun();
+				tChargingGun1.setId(tChargingGun.getId());
+				tChargingGun1.setStatus(2);
+				chargingGunService.updateById(tChargingGun1);
+				if(chargingPile.getStatus() != 1){
+					TChargingPile chargingPile1 = new TChargingPile();
+					chargingPile1.setId(chargingPile.getId());
+					chargingPile1.setStatus(1);
+					chargingPileService.updateById(chargingPile1);
 				}
-			}
-			if(chargingPile.getStatus() != 1 && 0 == status){
-				TFaultMessage one = faultMessageService.getOne(new LambdaQueryWrapper<TFaultMessage>().eq(TFaultMessage::getChargingPileId, chargingPile.getId())
+				
+				List<TFaultMessage> list = faultMessageService.list(new LambdaQueryWrapper<TFaultMessage>().eq(TFaultMessage::getChargingGunId, tChargingGun.getId())
 						.isNull(TFaultMessage::getEndTime));
-				if(null != one){
-					one.setEndTime(LocalDateTime.now());
-					faultMessageService.updateById(one);
+				if(!list.isEmpty()){
+					list.forEach(s->s.setEndTime(LocalDateTime.now()));
+					faultMessageService.updateBatchById(list);
 				}
-
-				chargingPile.setStatus(0 == status ? 1 : 3);
-				chargingPileService.updateById(chargingPile);
 			}
-			if(0 == status){
-				Map<String, Object> charging_pile_online = redisService.getCacheMap("charging_pile_online");
-				charging_pile_online.put(code, System.currentTimeMillis());
-				redisService.setCacheMap("charging_pile_online", charging_pile_online);
+			//枪处于正常,返回状态为故障,则修改其状态
+			if(1 == status && tChargingGun.getStatus() != 1 && tChargingGun.getStatus() != 7){
+				TChargingGun tChargingGun1 = new TChargingGun();
+				tChargingGun1.setId(tChargingGun.getId());
+				tChargingGun1.setStatus(7);
+				chargingGunService.updateById(tChargingGun1);
+				
+				//桩处于正常,桩所属的枪都处于非正常,修改桩状态为异常
+				List<TChargingGun> list = chargingGunService.list(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getChargingPileId, chargingPile.getId()).eq(TChargingGun::getDelFlag, 0));
+				int size = list.stream().filter(s -> s.getStatus() == 1 || s.getStatus() == 7).collect(Collectors.toList()).size();
+				if(chargingPile.getStatus() == 1 && list.size() == size){
+					TChargingPile chargingPile1 = new TChargingPile();
+					chargingPile1.setId(chargingPile.getId());
+					chargingPile1.setStatus(3);
+					chargingPileService.updateById(chargingPile1);
+				}
+				
+				TFaultMessage faultMessage = new TFaultMessage();
+				faultMessage.setSiteId(chargingPile.getSiteId());
+				faultMessage.setChargingPileId(chargingPile.getId());
+				faultMessage.setChargingGunId(tChargingGun.getId());
+				faultMessage.setStatus(2);
+				faultMessage.setDownTime(LocalDateTime.now());
+				faultMessage.setCreateTime(LocalDateTime.now());
+				faultMessage.setDelFlag(false);
+				faultMessage.setContent("设备故障");
+				faultMessageService.save(faultMessage);
+			}
+			
+			if(1 != status){
+				charging_pile_online.put(tChargingGun.getFullNumber(), System.currentTimeMillis());
+				redisService.setCacheMap("charging_gun_online", charging_pile_online);
+			}
+			if(2 == status){
+				TChargingOrderVo order = new TChargingOrderVo();
+				order.setChargingPileId(tChargingGun.getChargingPileId());
+				order.setChargingGunId(tChargingGun.getId());
+				order.setStatusList(Arrays.asList(1, 2, 3, 4, 5));
+				List<TChargingOrder> orders = chargingOrderClient.getChargingOrder(order).getData();
+				if(orders.size() > 0){
+					TChargingOrder chargingOrder = orders.get(0);
+					TChargingGun tChargingGun1 = new TChargingGun();
+					if(Arrays.asList(1, 2).contains(chargingOrder.getStatus())){
+						tChargingGun1.setStatus(3);
+					}
+					if(Arrays.asList(3).contains(chargingOrder.getStatus())){
+						tChargingGun1.setStatus(4);
+					}
+					if(Arrays.asList(4).contains(chargingOrder.getStatus()) && chargingOrder.getEndMode() == 2){
+						tChargingGun1.setStatus(5);
+					}
+					tChargingGun1.setId(tChargingGun.getId());
+					chargingGunService.updateById(tChargingGun1);
+				}
 			}
 		}
 	}
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java
index 041fbc6..8c9284b 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java
@@ -70,7 +70,6 @@
                 .page(Page.of(query.getPageCurr(), query.getPageSize()));
 
         for (TParkingRecord record : page.getRecords()) {
-            record.setName(parkingLotService.getById(record.getParkingLotId()).getName());
             record.setUid(record.getId().toString());
         }
         return R.ok(page);
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TRepairController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TRepairController.java
index 7fb53ff..5ae633b 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TRepairController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TRepairController.java
@@ -1,6 +1,8 @@
 package com.ruoyi.chargingPile.controller;
 
 
+import com.ruoyi.account.api.feignClient.AppUserClient;
+import com.ruoyi.account.api.model.TAppUser;
 import com.ruoyi.chargingPile.api.model.TFaultMessage;
 import com.ruoyi.chargingPile.api.model.TRepair;
 import com.ruoyi.chargingPile.service.TRepairService;
@@ -38,8 +40,8 @@
 	private TRepairService repairService;
 	@Resource
 	private TokenService tokenService;
-	@Autowired
-	private SysUserClient userClient;
+	@Resource
+	private AppUserClient appUserClient;
 
 	/**
 	 * 添加故障报修管理
@@ -50,9 +52,9 @@
 	public AjaxResult<String> add(@Validated @RequestBody TRepair dto) {
 		Long userId = tokenService.getLoginUserApplet().getUserId();
 		// 查询报修人员信息
-		SysUser user = userClient.getSysUser(userId).getData();
-		if(Objects.nonNull(user)){
-			dto.setRepairman(user.getUserName());
+        TAppUser user = appUserClient.getUserById(userId).getData();
+        if(Objects.nonNull(user)){
+			dto.setRepairman(user.getName());
 		}
 		repairService.add(dto);
 		return AjaxResult.success();
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TVehicleRampController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TVehicleRampController.java
index c15b6af..dfe127a 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TVehicleRampController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TVehicleRampController.java
@@ -113,7 +113,7 @@
         TVehicleRamp vehicleRamp = vehicleRampService.getById(dto.getId());
         TParkingLot parkingLot = parkingLotService.getById(vehicleRamp.getParkingLotId());
         SwitchwayGateReq req = new SwitchwayGateReq();
-        req.setAction(vehicleRamp.getAction());
+        req.setAction(dto.getAction());
         req.setChannel(vehicleRamp.getCarportNum());
         req.setAppkey(parkingLot.getAppKey());
         req.setSecretkey(parkingLot.getSecretKey());
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TAccountingStrategyMapper.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TAccountingStrategyMapper.java
index 6b3ce5d..efbf492 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TAccountingStrategyMapper.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TAccountingStrategyMapper.java
@@ -28,7 +28,8 @@
      * @return
      */
     List<TAccountingStrategyVO> pageList(@Param("query") TAccountingStrategyQuery query, @Param("pageInfo")PageInfo<TAccountingStrategyVO> pageInfo);
-    
+    List<TAccountingStrategyVO> pageList1(@Param("query") TAccountingStrategyQuery query, @Param("pageInfo")PageInfo<TAccountingStrategyVO> pageInfo);
+
     
     /**
      * 获取平台添加的计费策略
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TAccountingStrategyService.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TAccountingStrategyService.java
index 06834ef..f805cd0 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TAccountingStrategyService.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TAccountingStrategyService.java
@@ -24,7 +24,8 @@
      * @return
      */
     PageInfo<TAccountingStrategyVO> pageList(TAccountingStrategyQuery query);
-    
+    PageInfo<TAccountingStrategyVO> pageList1(TAccountingStrategyQuery query);
+
     /**
      * 获取平台添加的计费策略
      * @return
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java
index e02da4e..ea74c61 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java
@@ -375,7 +375,7 @@
 				child.put("selected", collect.contains(siteMenu.getMenuId()));
 				list2.add(child);
 			}
-			menu.put("selected", list2.size() > 0 ? true : false);
+			menu.put("selected", collect.contains(tSiteMenu.getMenuId()));
 			menu.put("child", list2);
 			list1.add(menu);
 		}
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
index 6bd9fe3..627d205 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
@@ -300,7 +300,9 @@
 			TVip vip = vipClient.getInfo1(appUser.getVipId()).getData();
 			if(Objects.nonNull(vip) && vip.getType() == 2){
 				list.forEach(item -> {
-					item.setVipElectrovalence(vip.getDiscount().divide(new BigDecimal(10)).multiply(item.getServiceCharge()).add(item.getElectrovalenceOriginal()));
+					if(Objects.nonNull(vip.getDiscount())){
+						item.setVipElectrovalence(vip.getDiscount().divide(new BigDecimal(10)).multiply(item.getServiceCharge()).add(item.getElectrovalenceOriginal()));
+					}
 				});
 			}
 		}
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyServiceImpl.java
index 472d616..29d8c4a 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyServiceImpl.java
@@ -64,6 +64,28 @@
         pageInfo.setRecords(list);
         return pageInfo;
     }
+    @Override
+    public PageInfo<TAccountingStrategyVO> pageList1(TAccountingStrategyQuery query) {
+        PageInfo<TAccountingStrategyVO> pageInfo = new PageInfo<>(query.getPageCurr(),query.getPageSize());
+        List<TAccountingStrategyVO> list = this.baseMapper.pageList1(query,pageInfo);
+        List<Integer> parentIds = list.stream().map(TAccountingStrategyVO::getId).collect(Collectors.toList());
+
+        for (TAccountingStrategyVO tAccountingStrategyVO : list) {
+            SysUser data = sysUserClient.getSysUser(tAccountingStrategyVO.getUserId()).getData();
+            tAccountingStrategyVO.setUserName(data.getNickName());
+            if (tAccountingStrategyVO.getFirstUserId()!=null){
+                SysUser first = sysUserClient.getSysUser(tAccountingStrategyVO.getFirstUserId()).getData();
+                tAccountingStrategyVO.setFirstUserName(first==null?null:first.getNickName());
+            }
+            if (tAccountingStrategyVO.getTwoUserId()!=null){
+                SysUser two = sysUserClient.getSysUser(tAccountingStrategyVO.getTwoUserId()).getData();
+                tAccountingStrategyVO.setTwoUserName(two==null?null:two.getNickName());
+            }
+
+        }
+        pageInfo.setRecords(list);
+        return pageInfo;
+    }
     
     
     /**
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
index 41f00fb..f7019e4 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
@@ -170,19 +170,19 @@
 			return AjaxResult.error("设备编号已存在");
 		}
 		//调用华为Iot创建设备
-		AddDevice addDevice = new AddDevice();
-		addDevice.setProductId("66da68d21837002b28b34ec0");
-		addDevice.setNodeId(chargingPile.getCode());
-		addDevice.setDeviceName(chargingPile.getName());
-		addDevice.setDescription(chargingPile.getNumber().toString());
-		AddDeviceResp deviceResp = iotInterfaceClient.addDevice(addDevice).getData();
-		if(null != deviceResp){
-			int httpStatusCode = deviceResp.getHttpStatusCode();
-			if(httpStatusCode == 201){
-				chargingPile.setIotdDeviceId(deviceResp.getDeviceId());
-				this.save(chargingPile);
-			}
-		}
+//		AddDevice addDevice = new AddDevice();
+//		addDevice.setProductId("66da68d21837002b28b34ec0");
+//		addDevice.setNodeId(chargingPile.getCode());
+//		addDevice.setDeviceName(chargingPile.getName());
+//		addDevice.setDescription(chargingPile.getNumber().toString());
+//		AddDeviceResp deviceResp = iotInterfaceClient.addDevice(addDevice).getData();
+//		if(null != deviceResp){
+//			int httpStatusCode = deviceResp.getHttpStatusCode();
+//			if(httpStatusCode == 201){
+//				chargingPile.setIotdDeviceId(deviceResp.getDeviceId());
+//			}
+//		}
+		this.save(chargingPile);
 		return AjaxResult.success();
 	}
 	
@@ -266,12 +266,12 @@
 		for (Integer id : ids) {
 			TChargingPile chargingPile = this.getById(id);
 			//调用华为Iot删除设备
-			if(StringUtils.isNotEmpty(chargingPile.getIotdDeviceId())){
-				DeleteDeviceResp deviceResp = iotInterfaceClient.deleteDevice(chargingPile.getIotdDeviceId()).getData();
-				if(null != deviceResp && deviceResp.getHttpStatusCode() == 0){
-					this.removeById(chargingPile);
-				}
-			}
+//			if(StringUtils.isNotEmpty(chargingPile.getIotdDeviceId())){
+//				DeleteDeviceResp deviceResp = iotInterfaceClient.deleteDevice(chargingPile.getIotdDeviceId()).getData();
+//				if(null != deviceResp && deviceResp.getHttpStatusCode() == 0){
+//				}
+//			}
+			this.removeById(chargingPile);
 		}
 		return AjaxResult.success();
 	}
@@ -586,25 +586,39 @@
 	 */
 	@Override
 	public void updateStatus() {
-		List<TChargingPile> list = this.list(new LambdaQueryWrapper<TChargingPile>().eq(TChargingPile::getDelFlag, 0));
-		List<TChargingPile> datas = new ArrayList();
-		Map<String, Object> charging_pile_online = redisService.getCacheMap("charging_pile_online");
-		for (TChargingPile chargingPile : list) {
-			Long time = (Long) charging_pile_online.get(chargingPile.getCode());
-			if(null != time && System.currentTimeMillis() - time > 60000){
-				chargingPile.setStatus(2);
-				datas.add(chargingPile);
-			}
+		Map<String, Object> charging_gun_online = redisService.getCacheMap("charging_gun_online");
+		Set<String> keySet = charging_gun_online.keySet();
+		List<TChargingGun> list = new ArrayList<>();
+		if(keySet.size() > 0){
+			list = chargingGunService.list(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getDelFlag, 0).in(TChargingGun::getFullNumber, keySet));
 		}
-		
-		if(datas.size() > 0){
-			for (TChargingPile data : datas) {
-				TFaultMessage faultMessage = faultMessageService.getOne(new LambdaQueryWrapper<TFaultMessage>().eq(TFaultMessage::getChargingPileId, data.getId())
-						.eq(TFaultMessage::getStatus, 1).eq(TFaultMessage::getDelFlag, 0).isNull(TFaultMessage::getEndTime));
+		for (TChargingGun chargingGun : list) {
+			Long time = (Long) charging_gun_online.get(chargingGun.getFullNumber());
+			if(null != time && System.currentTimeMillis() - time > 60000){
+				TChargingGun chargingGun1 = new TChargingGun();
+				chargingGun1.setId(chargingGun.getId());
+				chargingGun1.setStatus(1);
+				chargingGunService.updateById(chargingGun1);
+				
+				//桩处于正常,桩所属的枪都处于非正常,修改桩状态为异常
+				TChargingPile chargingPile = this.getById(chargingGun.getChargingPileId());
+				List<TChargingGun> list1 = chargingGunService.list(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getChargingPileId, chargingPile.getId()).eq(TChargingGun::getDelFlag, 0));
+				int size = list1.stream().filter(s -> s.getStatus() == 1 || s.getStatus() == 7).collect(Collectors.toList()).size();
+				if(chargingPile.getStatus() == 1 && list1.size() == size){
+					TChargingPile chargingPile1 = new TChargingPile();
+					chargingPile1.setId(chargingGun.getChargingPileId());
+					chargingPile1.setStatus(2);
+					this.updateById(chargingPile1);
+				}
+				
+				//添加记录
+				TFaultMessage faultMessage = faultMessageService.getOne(new LambdaQueryWrapper<TFaultMessage>().eq(TFaultMessage::getChargingPileId, chargingGun.getChargingPileId())
+						.eq(TFaultMessage::getChargingGunId, chargingGun.getId()).eq(TFaultMessage::getStatus, 1).eq(TFaultMessage::getDelFlag, 0).isNull(TFaultMessage::getEndTime));
 				if(null == faultMessage){
 					faultMessage = new TFaultMessage();
-					faultMessage.setSiteId(data.getSiteId());
-					faultMessage.setChargingPileId(data.getId());
+					faultMessage.setSiteId(chargingGun.getSiteId());
+					faultMessage.setChargingPileId(chargingGun.getChargingPileId());
+					faultMessage.setChargingGunId(chargingGun.getId());
 					faultMessage.setStatus(1);
 					faultMessage.setDownTime(LocalDateTime.now());
 					faultMessage.setCreateTime(LocalDateTime.now());
@@ -613,7 +627,6 @@
 					faultMessageService.save(faultMessage);
 				}
 			}
-			this.updateBatchById(datas);
 		}
 	}
 }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml
index 934b624..4851c30 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml
@@ -154,13 +154,14 @@
 			a.service_charge AS serviceCharge,
 			a.electrovalence AS electrovalenceOriginal,
 			(a.electrovalence+a.service_charge) AS electrovalence,
-			(a.electrovalence + (a.service_charge*b.discount)) AS vipElectrovalence
+			(a.electrovalence + (a.service_charge*(CASE WHEN b.discount IS NULL THEN 1 ELSE b.discount END))) AS vipElectrovalence
 		from
 		    t_accounting_strategy_detail a
 		left join
 		        t_accounting_strategy b on (a.accounting_strategy_id = b.id)
 		where b.del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()}
-		AND DATE_FORMAT(NOW(), '%H:%i:%s') between a.start_time and a.end_time) tasd on (ts.accounting_strategy_id = tasd.accounting_strategy_id)
+		AND DATE_FORMAT(NOW(), '%H:%i:%s') between a.start_time and
+		CASE WHEN a.end_time = '00:00' THEN '23:59:59' ELSE a.end_time END) tasd on (ts.accounting_strategy_id = tasd.accounting_strategy_id)
 		<where>
 			<if test="null != query.name and '' != query.name">
 				and ts.`name` like CONCAT('%', #{query.name}, '%')
@@ -288,19 +289,20 @@
 		a.service_charge AS serviceCharge,
 		a.electrovalence AS electrovalenceOriginal,
 		(a.electrovalence+a.service_charge) AS electrovalence,
-		(a.electrovalence+(a.service_charge*b.discount)) AS vipElectrovalence
+		(a.electrovalence+(a.service_charge*(CASE WHEN b.discount IS NULL THEN 1 ELSE b.discount END))) AS vipElectrovalence
 		from
 		t_accounting_strategy_detail a
 		left join
 		t_accounting_strategy b on (a.accounting_strategy_id = b.id)
 		where b.del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()}
-		AND DATE_FORMAT(NOW(), '%H:%i:%s') between a.start_time and a.end_time) tasd on (ts.accounting_strategy_id = tasd.accounting_strategy_id)
+		AND DATE_FORMAT(NOW(), '%H:%i:%s') between a.start_time AND
+		CASE WHEN a.end_time = '00:00' THEN '23:59:59' ELSE a.end_time END) tasd on (ts.accounting_strategy_id = tasd.accounting_strategy_id)
 		<where>
 			<if test="null != query.name and '' != query.name">
 				and ts.`name` like CONCAT('%', #{query.name}, '%')
 			</if>
 			<if test="null != query.cityCode and '' != query.cityCode">
-				and ts.cityCode = #{query.cityCode}
+				and ts.city_code = #{query.cityCode}
 			</if>
 			AND ts.del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()}
 			AND ts.status = ${@com.ruoyi.common.core.enums.status.SiteStatusEnum@NORMAL_USE.getCode()}
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TAccountingStrategyMapper.xml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TAccountingStrategyMapper.xml
index e218c2a..c9b1ea5 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TAccountingStrategyMapper.xml
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TAccountingStrategyMapper.xml
@@ -43,6 +43,25 @@
         ORDER BY create_time DESC
     </select>
 
+
+    <select id="pageList1" resultType="com.ruoyi.chargingPile.api.vo.TAccountingStrategyVO">
+        SELECT
+        id, site_id, `name`, description, discount,first_user_id,two_user_id,first_remark,two_remark,audit_status,first_audit_time,two_audit_time, create_time, del_flag,user_id,parent_id
+        FROM t_accounting_strategy
+        <where>
+            <if test="query.name != null and query.name != ''">
+                AND `name` LIKE concat('%',#{query.name}, '%')
+            </if>
+            <if test="query.auditStatus != null">
+                AND audit_status = #{query.auditStatus}
+            </if>
+            AND site_id IS NULL
+            AND (parent_id IS NULL OR audit_status = 1 OR audit_status = 2)
+            AND del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()}
+        </where>
+        ORDER BY create_time DESC
+    </select>
+
     
     
     <select id="getPlatformAccountingStrategy" resultType="com.ruoyi.chargingPile.api.vo.TAccountingStrategyVO">
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/model/SwitchwayGate.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/model/SwitchwayGate.java
index 2ab74a0..c7750d3 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/model/SwitchwayGate.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/model/SwitchwayGate.java
@@ -1,9 +1,13 @@
 package com.ruoyi.integration.barrierGate.model;
 
+import com.alibaba.nacos.common.utils.MD5Utils;
 import com.ruoyi.common.core.utils.MD5Util;
 import lombok.Data;
 import lombok.experimental.Accessors;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.tomcat.util.security.MD5Encoder;
+
+import java.nio.charset.Charset;
 
 /**
  * @author zhibing.pu
@@ -46,5 +50,4 @@
 		this.setSign(encoder);
 		return this;
 	}
-	
 }
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java
index f3ece3c..1a3c63c 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java
@@ -51,6 +51,7 @@
 		parkingRecord.setCode(code);
 		parkingRecord.setVehicleColor(order.getPlateColor());
 		TParkingLot data = parkingLotClient.getParkingLotByAppKey(order.getAppkey()).getData();
+		parkingRecord.setName(data.getName());
 		parkingRecord.setParkingLotId(data.getId());
 		parkingRecord.setInParkingTime(LocalDateTime.parse(order.getEnterDateTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
 		parkingRecord.setStatus(1);
@@ -101,6 +102,7 @@
 		parkingRecord.setCode(code);
 		parkingRecord.setVehicleColor(order.getPlatecolor());
 		TParkingLot data = parkingLotClient.getParkingLotByAppKey(order.getAppkey()).getData();
+		parkingRecord.setName(data.getName());
 		parkingRecord.setParkingLotId(data.getId());
 		parkingRecord.setInParkingTime(LocalDateTime.parse(order.getEntertime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
 		parkingRecord.setStatus(1);
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/SwitchwayGateService.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/SwitchwayGateService.java
index 4904d6b..ab49ae7 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/SwitchwayGateService.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/SwitchwayGateService.java
@@ -40,18 +40,4 @@
 		}
 		return success;
 	}
-	
-	
-//	public static void main(String[] args) {
-//		SwitchwayGateService switchwayGateService = new SwitchwayGateService();
-//		SwitchwayGateReq req = new SwitchwayGateReq();
-//		req.setAction("close");
-//		req.setChannel("001");
-//		Boolean success = switchwayGateService.gateService(req);
-//		if(success){
-//			log.info("调用成功");
-//		}else{
-//			log.info("调用失败");
-//		}
-//	}
 }
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/UploadRealTimeMonitoringDataController.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/UploadRealTimeMonitoringDataController.java
index e2a7f77..f1271ae 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/UploadRealTimeMonitoringDataController.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/UploadRealTimeMonitoringDataController.java
@@ -79,6 +79,12 @@
         return R.ok(list);
     }
 
+    @PostMapping(value = "/delete")
+    public R delete(@RequestParam String id) throws ParseException {
+        uploadRealTimeMonitoringDataService.delete(id);
+        return R.ok();
+    }
+
     
 }
 
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/UploadRealTimeMonitoringDataService.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/UploadRealTimeMonitoringDataService.java
index c5b2e12..ed002bf 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/UploadRealTimeMonitoringDataService.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/UploadRealTimeMonitoringDataService.java
@@ -6,6 +6,7 @@
 import com.ruoyi.common.core.dto.MongoChargingOrderQuery;
 
 import java.text.ParseException;
+import java.util.Date;
 import java.util.List;
 
 public interface UploadRealTimeMonitoringDataService extends BaseService<UploadRealTimeMonitoringData> {
@@ -25,4 +26,7 @@
 	 */
     UploadRealTimeMonitoringData getLastDataById(String transaction_serial_number);
 
+	void delete(String id);
+
+	void updateById(String id);
 }
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java
index 689c62c..529427e 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java
@@ -8,12 +8,14 @@
 import com.ruoyi.integration.mongodb.service.UploadRealTimeMonitoringDataService;
 import com.ruoyi.common.core.dto.MongoChargingOrderQuery;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.domain.Sort;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
+import org.springframework.data.mongodb.core.query.Update;
 import org.springframework.stereotype.Service;
 
 import java.text.ParseException;
@@ -68,9 +70,8 @@
 //            query.addCriteria(Criteria.where("transaction_serial_number").in(values));
 //        }
         if (mongoChargingOrderQuery.getCode() != null && !mongoChargingOrderQuery.getCode().isEmpty()) {
-            query.addCriteria(Criteria.where("transaction_serial_number").regex(mongoChargingOrderQuery.getCode(), "i")); // "i" 表示不区分大小写
+            query.addCriteria(Criteria.where("transaction_serial_number").regex(mongoChargingOrderQuery.getCode(),"i")); // "i" 表示不区分大小写
         }
-        
         if (mongoChargingOrderQuery.getOrderType() !=null){
             query.addCriteria(Criteria.where("orderType").is(mongoChargingOrderQuery.getOrderType()));
         }
@@ -109,20 +110,35 @@
 
 
 
-        // 设置分页
 
 
 
         long totalElements = mongoTemplate.count(query, UploadRealTimeMonitoringData.class);
-        Pageable pageable = PageRequest.of(mongoChargingOrderQuery.getPageCurr(), mongoChargingOrderQuery.getPageSize());
+
+        // 创建带有排序的 Pageable 对象
+        Pageable pageable = PageRequest.of(
+                mongoChargingOrderQuery.getPageCurr()-1,
+                mongoChargingOrderQuery.getPageSize(),
+                Sort.by(Sort.Direction.DESC, "create_time")
+        );
+
+        // 设置分页和排序
         query.with(pageable);
-        query.with(Sort.by(Sort.Direction.DESC,"create_time"));
+
+        // 执行查询并获取 Page 对象
+        List<UploadRealTimeMonitoringData> page = mongoTemplate.find(query, UploadRealTimeMonitoringData.class,"upload_real_time_monitoring_data");
+
+        // 设置分页
+//        Pageable pageable = PageRequest.of(mongoChargingOrderQuery.getPageSize()*(mongoChargingOrderQuery.getPageCurr()-1), mongoChargingOrderQuery.getPageSize());
+//        query.with(pageable);
+//        query.with(Sort.by(Sort.Direction.DESC,"create_time"));
         List<UploadRealTimeMonitoringData> uploadRealTimeMonitoringData = mongoTemplate.find(
                 query
                 , UploadRealTimeMonitoringData.class);
+
         UploadRealTimeMonitoringPageData uploadRealTimeMonitoringPageData = new UploadRealTimeMonitoringPageData();
         uploadRealTimeMonitoringPageData.setCount(totalElements);
-        uploadRealTimeMonitoringPageData.setRecords(uploadRealTimeMonitoringData);
+        uploadRealTimeMonitoringPageData.setRecords(page);
         return uploadRealTimeMonitoringPageData;
     }
 
@@ -139,4 +155,20 @@
         return mongoTemplate.findOne(query, UploadRealTimeMonitoringData.class);
     }
 
+    @Override
+    public void delete(String id) {
+        UploadRealTimeMonitoringData byId = findById(id.toString());
+        mongoTemplate.remove(byId);
+    }
+
+    @Override
+    public void updateById(String id) {
+        // 创建查询条件
+        Query query = new Query(Criteria.where("_id").is(id));
+        // 创建更新对象
+        Update update = new Update().set("last_time", new Date());
+        // 执行更新操作
+        mongoTemplate.updateFirst(query, update, UploadRealTimeMonitoringData.class);
+    }
+
 }
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/ChargingMessageListener.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/ChargingMessageListener.java
index 15700f9..4a4cb95 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/ChargingMessageListener.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/ChargingMessageListener.java
@@ -149,7 +149,7 @@
                 BeanUtils.copyProperties(pingMessage,ping);
                 pingService.create(ping);
     
-                chargingPileClient.updateChargingPileStatus(pingMessage.getCharging_pile_code(), pingMessage.getCharging_gun_status());
+                chargingPileClient.updateChargingPileStatus(pingMessage.getCharging_pile_code(), pingMessage.getCharging_gun_code(), pingMessage.getCharging_gun_status());
                 break;
             case SendTagConstant.END_CHARGE:
                 EndChargeMessage endChargeMessage = message.getEndChargeMessage();
@@ -201,7 +201,7 @@
                     uploadRealTimeMonitoringData.setElectrovalence_all(accountingStrategyDetail.getElectrovalence());
                     uploadRealTimeMonitoringData.setService_charge(accountingStrategyDetail.getServiceCharge());
                     if (Objects.nonNull(data)) {
-                        data.setLast_time(new Date());
+                        uploadRealTimeMonitoringDataService.updateById(data.getId());
                         uploadRealTimeMonitoringData.setPeriod_electric_price(uploadRealTimeMonitoringDataMessage.getPaid_amount().subtract(data.getPaid_amount()));
                         uploadRealTimeMonitoringData.setPeriod_charging_degree(uploadRealTimeMonitoringDataMessage.getCharging_degree().subtract(data.getCharging_degree()));
                         uploadRealTimeMonitoringData.setPeriod_service_price(uploadRealTimeMonitoringDataMessage.getCharging_degree().multiply(accountingStrategyDetail.getServiceCharge()).setScale(4, RoundingMode.HALF_UP));
@@ -224,47 +224,6 @@
                     UploadRealTimeMonitoringDataQuery query = new UploadRealTimeMonitoringDataQuery();
                     BeanUtils.copyProperties(uploadRealTimeMonitoringData, query);
                     chargingOrderClient.chargeMonitoring(query);
-                    GetChargingGunByCode code = new GetChargingGunByCode();
-                    code.setCharging_pile_code(uploadRealTimeMonitoringDataMessage.getCharging_pile_code());
-                    code.setCharging_gun_code(uploadRealTimeMonitoringDataMessage.getCharging_gun_code());
-                    TChargingGun chargingGun = chargingGunClient.getChargingGunByCode(code).getData();
-                    if(Objects.nonNull(chargingGun)){
-                        // 存储状态信息
-                        TFaultMessage faultMessage = new TFaultMessage();
-                        if(uploadRealTimeMonitoringDataMessage.getCharging_gun_status().equals(0) || uploadRealTimeMonitoringDataMessage.getCharging_gun_status().equals(1)){
-                            faultMessage.setSiteId(chargingGun.getSiteId());
-                            faultMessage.setChargingPileId(chargingGun.getChargingPileId());
-                            faultMessage.setChargingGunId(chargingGun.getId());
-                            switch (uploadRealTimeMonitoringDataMessage.getCharging_gun_status()){
-                                case 0:
-                                    faultMessage.setStatus(1);
-                                    chargingGun.setStatus(1);
-                                    break;
-                                case 1:
-                                    faultMessage.setStatus(2);
-                                    chargingGun.setStatus(7);
-                                    break;
-                            }
-                            faultMessage.setDownTime(LocalDateTime.now());
-                            faultMessageClient.createFaultMessage(faultMessage);
-                        }else {
-                            switch (uploadRealTimeMonitoringDataMessage.getCharging_gun_status()){
-                                case 2:
-                                    chargingGun.setStatus(2);
-                                    break;
-                                case 3:
-                                    chargingGun.setStatus(4);
-                                    break;
-                            }
-                            // 空闲 充电 查询是否该设备之前存在离线记录或者故障记录
-                            faultMessage = faultMessageClient.getFaultMessageByGunId(chargingGun.getId()).getData();
-                            if(Objects.nonNull(faultMessage)){
-                                faultMessage.setEndTime(LocalDateTime.now());
-                                faultMessageClient.updateFaultMessage(faultMessage);
-                            }
-                        }
-                        chargingGunClient.updateChargingGunById(chargingGun);
-                    }
                 } catch (Exception e) {
                     e.printStackTrace();
                 }
@@ -378,10 +337,12 @@
                 // 添加实时上传记录结束记录
                 // 查询mogondb上一条数据
                 UploadRealTimeMonitoringData data = uploadRealTimeMonitoringDataService.getLastDataById(transactionRecordMessage.getTransaction_serial_number());
-                UploadRealTimeMonitoringData uploadRealTimeMonitoringData = new UploadRealTimeMonitoringData();
-                BeanUtils.copyProperties(data,uploadRealTimeMonitoringData);
-                uploadRealTimeMonitoringData.setStatus(5);
-                uploadRealTimeMonitoringDataService.create(uploadRealTimeMonitoringData);
+                if(Objects.nonNull(data) && data.getStatus() != 5){
+                    UploadRealTimeMonitoringData uploadRealTimeMonitoringData = new UploadRealTimeMonitoringData();
+                    BeanUtils.copyProperties(data,uploadRealTimeMonitoringData);
+                    uploadRealTimeMonitoringData.setStatus(5);
+                    uploadRealTimeMonitoringDataService.create(uploadRealTimeMonitoringData);
+                }
                 break;
             case SendTagConstant.UPDATE_BALANCE_REPLY:
                 UpdateBalanceReplyMessage updateBalanceReplyMessage = message.getUpdateBalanceReplyMessage();
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 a89d01e..4fa0440 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
@@ -74,7 +74,8 @@
         ChargingBillVO res = chargingBillService.chargingBillList1(dto);
         List<ChargingBillListVO> records = res.getList().getRecords();
         accountListVO.setBillCount(records.size());
-        accountListVO.setTotalAmount(res.getOrderAmount());
+        accountListVO.setTotalAmount(res.getOrderAmount().subtract(res.getRefundAmount())
+                .subtract(res.getCommissionAmount()).subtract(res.getSharingAmount()));
         accountListVO.setPaymentAmount(res.getPaymentAmount());
         accountListVO.setRefundAmount(res.getRefundAmount());
         accountListVO.setCommissionAmount(res.getCommissionAmount());
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
index 4046d55..e5ea233 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -348,7 +348,6 @@
     public AjaxResult<ChargingOrderInfoVO> chargingOrderInfo(String strategyId) {
         TChargingOrder byId = chargingOrderService.getById(strategyId);
         ChargingOrderInfoVO chargingOrderInfoVO = new ChargingOrderInfoVO();
-
         chargingOrderInfoVO.setCdElectronic(byId.getCurrent()!=null?byId.getCurrent().setScale(2, BigDecimal.ROUND_HALF_DOWN)+"":"");
         chargingOrderInfoVO.setCdVoltage(byId.getVoltage()!=null?byId.getVoltage().setScale(2, BigDecimal.ROUND_HALF_DOWN)+"":"");
         chargingOrderInfoVO.setSurplus(byId.getTotalElectricity()!=null?byId.getTotalElectricity().setScale(2, BigDecimal.ROUND_HALF_DOWN)+"":"");
@@ -511,7 +510,7 @@
     @PostMapping(value = "/chargingOrderWXCallback")
     public void chargingOrderWXCallback(@RequestParam("out_trade_no") String out_trade_no, @RequestParam("transaction_id") String transaction_id,
                                         @RequestParam("attach") String attach) {
-        AjaxResult ajaxResult = chargingOrderService.chargingOrderCallback(1, out_trade_no, transaction_id, attach);
+        chargingOrderService.chargingOrderCallback(1, out_trade_no, transaction_id, attach);
     }
     
     
@@ -838,9 +837,16 @@
 
         return R.ok(page);
     }
-    
-    
-    
+
+
+
+    @ResponseBody
+    @GetMapping(value = "/watch/deletes")
+    @ApiOperation(value = "监控订单-删除", tags = {"管理后台-订单管理"})
+    public R watchChargingOrder(@RequestParam String id) {
+        uploadRealTimeMonitoringDataClient.delete(id);
+        return R.ok();
+    }
     
     /**
      * 处理充电订单实时监控数据相关的业务逻辑
@@ -1673,7 +1679,7 @@
         Long userId = tokenService.getLoginUserApplet().getUserId();
         List<TChargingOrder> list = chargingOrderService.list(Wrappers.lambdaQuery(TChargingOrder.class)
                 .eq(TChargingOrder::getAppUserId, userId)
-                .eq(TChargingOrder::getStatus, 3));
+                .in(TChargingOrder::getStatus, Arrays.asList(1,2,3,4)));
         List<Integer> gunIds = list.stream().map(TChargingOrder::getChargingGunId).collect(Collectors.toList());
         return R.ok(gunIds);
     }
@@ -1777,4 +1783,16 @@
         EndOfChargePageInfo endOfChargePageInfo = chargingOrderService.getEndOfChargePageInfo(id);
         return AjaxResult.success(endOfChargePageInfo);
     }
+    
+    
+    /**
+     * 获取订单数据
+     * @param order
+     * @return
+     */
+    @PostMapping("/getChargingOrder")
+    public R<List<TChargingOrder>> getChargingOrder(@RequestBody TChargingOrderVo order){
+        List<TChargingOrder> chargingOrder = chargingOrderService.getChargingOrder(order);
+        return R.ok(chargingOrder);
+    }
 }
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java
index 9dadd2f..e179dab 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java
@@ -28,6 +28,8 @@
 import com.ruoyi.order.service.TShoppingOrderService;
 import com.ruoyi.common.core.dto.ExchangeDto;
 import com.ruoyi.common.core.utils.OrderCodeUtil;
+import com.ruoyi.other.api.domain.TCoupon;
+import com.ruoyi.other.api.domain.TGoods;
 import com.ruoyi.other.api.feignClient.CouponClient;
 import com.ruoyi.other.api.feignClient.GoodsClient;
 import com.ruoyi.payment.api.feignClient.AliPaymentClient;
@@ -119,6 +121,20 @@
                 byId.setReceivingAddress(data.getAddress());
             }
         }
+        switch (byId.getOrderType()){
+            case 1:
+                TGoods data = goodsClient.getGoodsById(byId.getGoodsId()).getData();
+                if (data!=null){
+                    byId.setName(data.getName());
+                }
+                break;
+            case 2:
+                TCoupon data1 = couponClient.getCouponById1(byId.getCouponId()).getData();
+                if (data1!=null){
+                    byId.setName(data1.getName());
+                }
+                break;
+        }
         return AjaxResult.success(byId);
     }
     @Resource
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderEvaluateController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderEvaluateController.java
index 8d1ff8f..00bbda4 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderEvaluateController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderEvaluateController.java
@@ -1,9 +1,11 @@
 package com.ruoyi.order.controller;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.order.api.model.TOrderEvaluate;
+import com.ruoyi.order.api.model.TOrderEvaluateTag;
 import com.ruoyi.order.api.query.TOrderEvaluateQuery;
 import com.ruoyi.order.api.vo.SiteDetailEvaluateVO;
 import com.ruoyi.order.api.vo.TOrderEvaluateVO;
@@ -11,12 +13,14 @@
 import com.ruoyi.order.dto.GetOrderEvaluatePageListDTO;
 import com.ruoyi.order.dto.OrderEvaluateVo;
 import com.ruoyi.order.service.TOrderEvaluateService;
+import com.ruoyi.order.service.TOrderEvaluateTagService;
 import com.ruoyi.order.vo.ReplyEvaluationVO;
 import com.ruoyi.other.api.vo.TEvaluationTagVO;
 import io.swagger.annotations.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import java.time.LocalDateTime;
 import java.util.List;
 
@@ -35,6 +39,11 @@
 
     @Autowired
     private TOrderEvaluateService orderEvaluateService;
+    
+    @Resource
+    private TOrderEvaluateTagService orderEvaluateTagService;
+    
+    
 
 
     @ApiOperation(tags = {"小程序-订单评价"},value = "充电订单评价标签及数量查询")
@@ -69,6 +78,7 @@
     public AjaxResult delOrderEvaluate(@PathVariable("id") Long id){
         TOrderEvaluate orderEvaluate = orderEvaluateService.getById(id);
         orderEvaluateService.removeById(orderEvaluate);
+        orderEvaluateTagService.remove(new LambdaQueryWrapper<TOrderEvaluateTag>().eq(TOrderEvaluateTag::getOrderEvaluateId, id));
         return AjaxResult.success();
     }
     
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TShoppingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TShoppingOrderController.java
index 68f7c00..a1649f7 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TShoppingOrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TShoppingOrderController.java
@@ -82,6 +82,13 @@
 	private SysUserClient sysUserClient;
 	@Resource
 	private TShoppingOrderRefundService shoppingOrderRefundService;
+	@Resource
+	private AppUserAddressClient appUserAddressClient;
+	
+	
+	
+	
+	
 	/**
 	 * 远程管理后台取消订单后退款回调
 	 */
@@ -350,8 +357,7 @@
 		return AjaxResult.success(list);
 	}
 
-	@Resource
-	private AppUserAddressClient appUserAddressClient;
+	
 	@PostMapping("/create")
 	public R<TShoppingOrder> shopCreate(@RequestBody ExchangeDto exchangeDto) {
 		TShoppingOrder shoppingOrder = new TShoppingOrder();
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
index 705fae3..57b0caa 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
@@ -18,6 +18,7 @@
 import com.ruoyi.order.dto.*;
 import com.ruoyi.order.vo.ChargingOrderListInfoVO;
 import com.ruoyi.order.vo.EndOfChargePageInfo;
+import org.springframework.web.bind.annotation.RequestBody;
 
 import java.time.LocalDate;
 import java.util.List;
@@ -268,4 +269,12 @@
 	EndOfChargePageInfo getEndOfChargePageInfo(String id);
 
 	Long countNoTag();
+	
+	
+	/**
+	 * 获取订单数据
+	 * @param order
+	 * @return
+	 */
+	List<TChargingOrder> getChargingOrder(TChargingOrderVo order);
 }
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 22f1e35..bb69665 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
@@ -91,6 +91,7 @@
         chargingBillVO.setOrderCount(list1.size());
         BigDecimal paymentAmountTotal = new BigDecimal("0");
         BigDecimal orderAmountTotal = new BigDecimal("0");
+        BigDecimal refundAmountTotal = new BigDecimal("0");
         BigDecimal electrovalenceTotal = new BigDecimal("0");
         BigDecimal serviceChargeTotal = new BigDecimal("0");
         BigDecimal commissionAmountTotal = new BigDecimal("0");
@@ -248,11 +249,11 @@
                     }
                 }
                 if (data3!=null)tChargingOrder.setUserName(data3.getName());
-                // 累加实收金额
+                // 累加实收金额 支付结算金额
                 if (tChargingOrder.getOrderAmount()!=null){
                     paymentAmount = paymentAmount.add(tChargingOrder.getOrderAmount());
                 }
-                // 累加订单金额
+                // 入账金额
                 if (tChargingOrder.getOrderAmount()!=null){
                     orderAmount = orderAmount.add(tChargingOrder.getOrderAmount());
                 }
@@ -263,7 +264,7 @@
                 List<TChargingOrderRefund> list2 = chargingOrderRefundService.lambdaQuery().eq(TChargingOrderRefund::getRefundStatus, 2)
                         .eq(TChargingOrderRefund::getChargingOrderId, tChargingOrder.getId()).list();
                 for (TChargingOrderRefund tChargingOrderRefund : list2) {
-                    refundAmount = refundAmount.add(tChargingOrderRefund.getRefundAmount());
+                    refundAmount = refundAmount.add(tChargingOrderRefund.getRefundTotalAmount());
                 }
                 // 累加累计服务费
                 if (tChargingOrder.getServiceCharge()!=null){
@@ -298,8 +299,8 @@
                     .subtract(chargingBillVO.getCommissionAmount()==null?BigDecimal.ZERO:chargingBillVO.getCommissionAmount())
                     .subtract(chargingBillVO.getSharingAmount()==null?BigDecimal.ZERO:chargingBillVO.getSharingAmount()));
             chargingBillListVO.setPaymentAmount(paymentAmount == null?BigDecimal.ZERO:paymentAmount);
-            chargingBillListVO.setOrderAmount(orderAmount == null?BigDecimal.ZERO:orderAmount);
-            chargingBillListVO.setRefundAmount(refundAmount == null?BigDecimal.ZERO:orderAmount);
+            chargingBillListVO.setOrderAmount(orderAmount == null?BigDecimal.ZERO:orderAmount.subtract(refundAmount).subtract(commissionAmount).subtract(sharingAmount));
+            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));
@@ -364,6 +365,7 @@
                 }else if (tChargingOrder.getPaymentAmount()!=null){
                     paymentAmountTotal = paymentAmountTotal.add(tChargingOrder.getPaymentAmount());
                 }
+
                 // 累加订单金额
                 if (tChargingOrder.getOrderAmount()!=null){
                     orderAmountTotal = orderAmountTotal.add(tChargingOrder.getOrderAmount());
@@ -372,8 +374,10 @@
                 if (tChargingOrder.getElectrovalence()!=null){
                     electrovalenceTotal = electrovalenceTotal.add(tChargingOrder.getElectrovalence());
                 }
-                if (tChargingOrder.getRefundAmount()!=null && tChargingOrder.getRefundStatus()!=null&&  tChargingOrder.getRefundStatus()==2){
-                    refundAmount = refundAmount.add(tChargingOrder.getRefundAmount());
+                List<TChargingOrderRefund> list2 = chargingOrderRefundService.lambdaQuery().eq(TChargingOrderRefund::getChargingOrderId, tChargingOrder.getId())
+                        .eq(TChargingOrderRefund::getRefundStatus, 2).list();
+                for (TChargingOrderRefund tChargingOrderRefund : list2) {
+                    refundAmountTotal =refundAmountTotal.add(tChargingOrder.getRefundAmount());
                 }
                 // 累加累计服务费
                 if (tChargingOrder.getServiceCharge()!=null){
@@ -410,7 +414,7 @@
         chargingBillVO.setCommissionAmount(commissionAmountTotal.setScale(2, RoundingMode.HALF_DOWN));
         chargingBillVO.setSharingAmount(sharingAmountTotal.setScale(2, RoundingMode.HALF_DOWN));
         chargingBillVO.setDiscount(discountTotal);
-
+        chargingBillVO.setRefundAmount(refundAmountTotal);
 
         pageInfo.setRecords(list);
         chargingBillVO.setList(pageInfo);
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 e7152ca..cc70d8a 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
@@ -50,6 +50,7 @@
 import com.ruoyi.order.vo.EndOfChargePageInfo;
 import com.ruoyi.other.api.domain.*;
 import com.ruoyi.order.vo.ChargingOrderListInfoVO;
+import com.ruoyi.other.api.domain.TVip;
 import com.ruoyi.other.api.feignClient.*;
 import com.ruoyi.payment.api.feignClient.AliPaymentClient;
 import com.ruoyi.payment.api.feignClient.WxPaymentClient;
@@ -65,10 +66,12 @@
 import org.springframework.util.StringUtils;
 
 import javax.annotation.Resource;
+import javax.crypto.MacSpi;
 import java.lang.reflect.InvocationTargetException;
 import java.math.BigDecimal;
 import java.math.MathContext;
 import java.math.RoundingMode;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.time.*;
 import java.time.format.DateTimeFormatter;
@@ -384,7 +387,7 @@
 		TChargingOrder one = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getChargingGunId, addChargingOrder.getId())
 				.in(TChargingOrder::getStatus, Arrays.asList(1, 2, 3)).eq(TChargingOrder::getDelFlag, 0));
 		if(null != one){
-			return AjaxResult.error("充电枪正在充电桩中,启动失败");
+			return AjaxResult.error("充电枪正在充电中,启动失败");
 		}
 		//查询当前充电枪是否有正在支付的订单
 		one = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getChargingGunId, addChargingOrder.getId())
@@ -444,6 +447,7 @@
 		chargingOrder.setVipDiscountAmount(BigDecimal.ZERO);
 		chargingOrder.setOrderSource(0);
 		chargingOrder.setTitle("【充电桩充电】" + chargingPile.getNumber() + "号桩/" + tChargingGun.getCode() + "号枪");
+		chargingOrder.setStatus(1);
 		
 		Site site = siteClient.getSiteByIds(Arrays.asList(tChargingGun.getSiteId())).getData().get(0);
 		Integer accountingStrategyId = tChargingGun.getAccountingStrategyId();
@@ -656,10 +660,104 @@
 		
 		log.error(chargingOrder.getCode() + ":-------------------远程调起开始充电请求-------------------" + platformStartCharging.toString());
 		sendMessageClient.platformStartCharging(platformStartCharging);
+		//异步线程检测远程启动的应答结果。如果失败,则需要全额退款
+		Long id = chargingOrder.getId();
+		//执行5分钟的定时任务检测
+		ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
+		scheduler.scheduleAtFixedRate(()->{
+			if(timingDetection(id)){
+				scheduler.shutdown();
+			}
+		}, 5, 1, TimeUnit.SECONDS);
 		return AjaxResult.success();
 	}
 	
-
+	
+	/**
+	 * 定时检测mongodb数据库数据
+	 * @param id
+	 * @return
+	 */
+	public boolean timingDetection(Long id){
+		TChargingOrder chargingOrder = this.getById(id);
+		if(chargingOrder.getStatus() != 2){
+			return true;
+		}
+		String code = chargingOrder.getCode();
+		String key = "AQJC_" + chargingOrder.getChargingGunId();
+		List<PlatformStartChargingReply> data = platformStartChargingReplyClient.getPlatformStartChargingReply(code).getData();
+		log.error(code + ":-------------------开始检查调起充电结果-------------------" + data.toString());
+		if(data.size() != 0){
+			PlatformStartChargingReply platformStartChargingReply = data.get(1);
+			Integer startup_result = platformStartChargingReply.getStartup_result();
+			Integer failure_cause = platformStartChargingReply.getFailure_cause();
+			Integer counter = counter_map.get(code);
+			PreChargeCheck preChargeCheck1 = redisService.getCacheObject(key);
+			//5分钟内还未插枪则取消充电,退回金额。
+			if(failure_cause == 5 && (null == counter || counter < 300)){
+				counter = (null == counter ? 0 : counter) + 1;
+				counter_map.put(code, counter);
+				//启动失败
+				preChargeCheck1.setStartupSuccess(3);
+				preChargeCheck1.setFailureCause(failure_cause);
+				redisService.setCacheObject(key, preChargeCheck1, 24L, TimeUnit.HOURS);
+				return false;
+			}
+			
+			//清除计时器中的无效数据
+			counter_map.remove(code);
+			TChargingOrder order = new TChargingOrder();
+			order.setId(id);
+			order.setAppUserId(chargingOrder.getAppUserId());
+			if(0 == startup_result){
+				//启动失败
+				preChargeCheck1.setStartupSuccess(3);
+				preChargeCheck1.setFailureCause(failure_cause);
+				//启动失败后取消订单,退款操作
+				refund(code);
+				order.setStatus(-1);
+				order.setEndMode(0);
+			}else{
+				//启动成功
+				preChargeCheck1.setStartupSuccess(2);
+				order.setStatus(3);
+				order.setStartTime(LocalDateTime.now());
+			}
+			this.updateById(order);
+			redisService.setCacheObject(key, preChargeCheck1, 24L, TimeUnit.HOURS);
+			return true;
+		}else{
+			Integer counter = boot_failed_map.get(code);
+			log.error(code + ":-------------------未上传开启充电结果-------------------" + counter);
+			PreChargeCheck preChargeCheck1 = redisService.getCacheObject(key);
+			//5分钟内未启动成功,退回金额。
+			if(null == counter || counter < 300){
+				counter = (null == counter ? 0 : counter) + 1;
+				boot_failed_map.put(code, counter);
+				//启动失败
+				preChargeCheck1.setStartupSuccess(1);
+				preChargeCheck1.setFailureCause(0);
+				redisService.setCacheObject(key, preChargeCheck1, 24L, TimeUnit.HOURS);
+				return false;
+			}
+			
+			//清除计时器中的无效数据
+			boot_failed_map.remove(code);
+			TChargingOrder order = new TChargingOrder();
+			order.setId(id);
+			order.setAppUserId(chargingOrder.getAppUserId());
+			//启动失败
+			preChargeCheck1.setStartupSuccess(3);
+			preChargeCheck1.setFailureCause(0);
+			//启动失败后取消订单,退款操作
+			refund(code);
+			order.setStatus(-1);
+			order.setEndMode(0);
+			this.updateById(order);
+			redisService.setCacheObject(key, preChargeCheck1, 24L, TimeUnit.HOURS);
+			return true;
+		}
+	}
 	
 	
 	/**
@@ -798,7 +896,10 @@
 		one.setRefundTime(LocalDateTime.now());
 		chargingOrderRefundService.updateById(one);
 		
-		TChargingOrder chargingOrder = this.getById(one.getChargingOrderId());
+		TChargingOrder order = this.getById(one.getChargingOrderId());
+		TChargingOrder chargingOrder = new TChargingOrder();
+		chargingOrder.setId(one.getChargingOrderId());
+		chargingOrder.setAppUserId(order.getAppUserId());
 		chargingOrder.setRefundStatus(2);
 		chargingOrder.setRefundSerialNumber(refund_id);
 		chargingOrder.setRefundTime(LocalDateTime.now());
@@ -866,25 +967,29 @@
 	@Override
 	@GlobalTransactional(rollbackFor = Exception.class)
 	public AjaxResult stopCharging(String id) {
-		TChargingOrder chargingOrder = this.getById(id);
-		Integer status = chargingOrder.getStatus();
+		TChargingOrder order = this.getById(id);
+		Integer status = order.getStatus();
 		if(status != 3){
 			return AjaxResult.error("还未开始充电");
 		}
 		if(status == 4 || status == 5){
 			return AjaxResult.error("不能重复操作");
 		}
+		TChargingOrder chargingOrder = new TChargingOrder();
+		chargingOrder.setId(Long.valueOf(id));
+		chargingOrder.setAppUserId(order.getAppUserId());
 		chargingOrder.setEndTime(LocalDateTime.now());
+		chargingOrder.setStatus(4);
 		chargingOrder.setEndMode(1);
 		this.updateById(chargingOrder);
 		
-		String code1 = chargingOrder.getCode();
-		TChargingGun chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData();
+		String code1 = order.getCode();
+		TChargingGun chargingGun = chargingGunClient.getChargingGunById(order.getChargingGunId()).getData();
 		//异步线程处理停机
 		ExecutorService cachedThreadPool = Executors.newFixedThreadPool(1);
 		cachedThreadPool.execute(()->{
 			//调用硬件停止充电,停止成功后开始计算费用退款
-			TChargingPile chargingPile = chargingPileClient.getChargingPileById(chargingOrder.getChargingPileId()).getData();
+			TChargingPile chargingPile = chargingPileClient.getChargingPileById(order.getChargingPileId()).getData();
 			PlatformStopCharging platformStopCharging = new PlatformStopCharging();
 			platformStopCharging.setCharging_pile_code(chargingPile.getCode());
 			platformStopCharging.setCharging_gun_code(chargingGun.getCode());
@@ -991,20 +1096,22 @@
 				inviteUser.setAward(num1);
 				inviteUserClient.updateInviteUser(inviteUser);
 			}
-			TAppUserIntegralChange appUserIntegralChange = new TAppUserIntegralChange();
-			String code = Double.valueOf(Math.random() * 1000).intValue() + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS"));
-			appUserIntegralChange.setCode(code);
-			appUserIntegralChange.setAppUserId(appUser1.getId());
-			appUserIntegralChange.setChangeType(5);
-			appUserIntegralChange.setHistoricalIntegral(appUser1.getPoints());
-			appUserIntegralChange.setCurrentIntegral(appUser1.getPoints() + num1);
-			appUserIntegralChange.setCreateTime(LocalDateTime.now());
-			appUserIntegralChange.setOrderCode(chargingOrder.getCode());
-			appUserIntegralChange.setExtension(chargingOrder.getId().toString());
-			appUserIntegralChangeClient.addAppUserIntegralChange(appUserIntegralChange);
-			
-			appUser1.setPoints(appUser1.getPoints() + num1);
-			appUserClient.updateAppUser(appUser1);
+			if(num1 > 0){
+				TAppUserIntegralChange appUserIntegralChange = new TAppUserIntegralChange();
+				String code = Double.valueOf(Math.random() * 1000).intValue() + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS"));
+				appUserIntegralChange.setCode(code);
+				appUserIntegralChange.setAppUserId(appUser1.getId());
+				appUserIntegralChange.setChangeType(5);
+				appUserIntegralChange.setHistoricalIntegral(appUser1.getPoints());
+				appUserIntegralChange.setCurrentIntegral(appUser1.getPoints() + num1);
+				appUserIntegralChange.setCreateTime(LocalDateTime.now());
+				appUserIntegralChange.setOrderCode(chargingOrder.getCode());
+				appUserIntegralChange.setExtension(chargingOrder.getId().toString());
+				appUserIntegralChangeClient.addAppUserIntegralChange(appUserIntegralChange);
+				
+				appUser1.setPoints(appUser1.getPoints() + num1);
+				appUserClient.updateAppUser(appUser1);
+			}
 		}
 	}
 	
@@ -1585,7 +1692,6 @@
 		chargingOrderListInfoVO.setCouponDiscountAmount(chargingOrder.getCouponDiscountAmount());
 		chargingOrderListInfoVO.setVipDiscountAmount(chargingOrder.getVipDiscountAmount());
 		chargingOrderListInfoVO.setSharingAmount(chargingOrder.getSharingAmount());
-		chargingOrderListInfoVO.setCommissionAmount(chargingOrder.getCommissionAmount());
 		// 查询费用明细列表
 		List<TChargingOrderAccountingStrategy> list = chargingOrderAccountingStrategyService.lambdaQuery()
 				.eq(TChargingOrderAccountingStrategy::getChargingOrderId, chargingOrder.getId())
@@ -1665,7 +1771,7 @@
 	public void endChargeBillingCharge(TransactionRecordMessageVO vo) {
 		TChargingOrder chargingOrder = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getCode, vo.getTransaction_serial_number()));
 		Integer status = chargingOrder.getStatus();
-		if(status == 4 || status == 5){
+		if(status == 5){
 			return;
 		}
 		
@@ -1681,6 +1787,8 @@
 		
 		//开始处理计费明细数据和优惠数据
 		chargingOrderAccountingStrategyService.remove(new LambdaQueryWrapper<TChargingOrderAccountingStrategy>().eq(TChargingOrderAccountingStrategy::getChargingOrderId, chargingOrder.getId()));
+		SimpleDateFormat sdfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+		List<AccountingStrategyDetailOrderVo> lists = new ArrayList<>();
 		for (int i = 0; i < accountingStrategyDetailOrderList.size(); i++) {
 			Class<? extends TransactionRecordMessageVO> clazz = vo.getClass();
 			try {
@@ -1709,44 +1817,98 @@
 					continue;
 				}
 				BigDecimal sharp_peak_charge = new BigDecimal(invoke.toString());
-				TChargingOrderAccountingStrategy chargingOrderAccountingStrategy = new TChargingOrderAccountingStrategy();
-				chargingOrderAccountingStrategy.setChargingOrderId(chargingOrder.getId());
-				chargingOrderAccountingStrategy.setAccountingStrategyDetailId(strategyDetail.getId());
-				chargingOrderAccountingStrategy.setType(strategyDetail.getType());
-				chargingOrderAccountingStrategy.setStartTime(chargingOrder.getStartTime().format(DateTimeFormatter.ofPattern("HH:mm")));
-				chargingOrderAccountingStrategy.setEndTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("HH:mm")));
-				chargingOrderAccountingStrategy.setElectrovalence(strategyDetail.getElectrovalence());
-				chargingOrderAccountingStrategy.setServiceCharge(strategyDetail.getServiceCharge());
-				chargingOrderAccountingStrategy.setCostServiceCharge(strategyDetail.getCostServiceCharge());
-				//已充电总度数
-				BigDecimal electrovalenc = strategyDetail.getElectrovalence().multiply(sharp_peak_charge).setScale(2, RoundingMode.DOWN);
-				BigDecimal originalServicePrice = strategyDetail.getServiceCharge().multiply(sharp_peak_charge).setScale(2, RoundingMode.DOWN);
-				BigDecimal serviceCharge = originalServicePrice;
-				BigDecimal vipDiscountAmount = BigDecimal.ZERO;
-				//计算优惠金额
-				if(null != chargingOrder.getVipDiscount()){
-					vipDiscountAmount = serviceCharge.multiply(new BigDecimal(1).subtract(chargingOrder.getVipDiscount())).setScale(2, RoundingMode.DOWN);
-					serviceCharge = serviceCharge.multiply(chargingOrder.getVipDiscount()).setScale(2, RoundingMode.DOWN);
-				}
-				chargingOrderAccountingStrategy.setChargingCapacity(sharp_peak_charge);
-				chargingOrderAccountingStrategy.setPeriodElectricPrice(electrovalenc);
-				chargingOrderAccountingStrategy.setPeriodServicePrice(serviceCharge);
-				chargingOrderAccountingStrategy.setPeriodOriginalServicePrice(originalServicePrice);
-				chargingOrderAccountingStrategy.setVipDiscountAmount(vipDiscountAmount);
-				chargingOrderAccountingStrategy.setCreateTime(LocalDateTime.now());
-				chargingOrderAccountingStrategyService.save(chargingOrderAccountingStrategy);
-				
-				periodElectricPrice_total = periodElectricPrice_total.add(electrovalenc);
-				periodServicePrice_total = periodServicePrice_total.add(originalServicePrice);
-				total = total.add(electrovalenc.add(originalServicePrice));
+				AccountingStrategyDetailOrderVo vo1 = new AccountingStrategyDetailOrderVo();
+				BeanUtils.copyProperties(strategyDetail, vo1);
+				vo1.setStart(sdfs.parse(vo.getStart_time().split(" ")[0] + " " + strategyDetail.getStartTime() + ":00").getTime());
+				vo1.setEnd(sdfs.parse(vo.getStart_time().split(" ")[0] + " " + strategyDetail.getEndTime() + ":00").getTime());
+				vo1.setChargingCapacity(sharp_peak_charge);
+				lists.add(vo1);
 			} catch (IllegalAccessException e) {
 				throw new RuntimeException(e);
 			} catch (InvocationTargetException e) {
 				throw new RuntimeException(e);
 			} catch (NoSuchMethodException e) {
 				throw new RuntimeException(e);
+			} catch (ParseException e) {
+				throw new RuntimeException(e);
 			}
 		}
+		Collections.sort(lists, new Comparator<AccountingStrategyDetailOrderVo>() {
+			public int compare(AccountingStrategyDetailOrderVo s1, AccountingStrategyDetailOrderVo s2) {
+				return s1.getStart() < s2.getStart() ? -1 : s1.getStart() == s2.getStart() ? 0 : 1;
+			}
+		});
+		if(!vo.getStart_time().split(" ")[0].equals(vo.getEnd_time().split(" ")[0])){
+			List<AccountingStrategyDetailOrderVo> list1 = new ArrayList<>(lists);
+			for (AccountingStrategyDetailOrderVo orderVo : list1) {
+				Calendar start = Calendar.getInstance();
+				start.setTimeInMillis(orderVo.getStart());
+				start.set(Calendar.DAY_OF_YEAR, start.get(Calendar.DAY_OF_YEAR) + 1);
+				orderVo.setStart(start.getTimeInMillis());
+				Calendar end = Calendar.getInstance();
+				end.setTimeInMillis(orderVo.getEnd());
+				end.set(Calendar.DAY_OF_YEAR, end.get(Calendar.DAY_OF_YEAR) + 1);
+				orderVo.setEnd(end.getTimeInMillis());
+			}
+			lists.addAll(list1);
+		}
+		
+		//开始处理明细
+		SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SS");
+		SimpleDateFormat sdf2 = new SimpleDateFormat("HH:mm");
+		Date start = null;
+		Date end = null;
+		try {
+			start = sdf3.parse(vo.getStart_time());
+			end = sdf3.parse(vo.getEnd_time());
+		} catch (ParseException e) {
+			throw new RuntimeException(e);
+		}
+
+		for (AccountingStrategyDetailOrderVo strategyDetail : lists) {
+			BigDecimal sharp_peak_charge = strategyDetail.getChargingCapacity();
+			TChargingOrderAccountingStrategy chargingOrderAccountingStrategy = new TChargingOrderAccountingStrategy();
+			chargingOrderAccountingStrategy.setChargingOrderId(chargingOrder.getId());
+			chargingOrderAccountingStrategy.setAccountingStrategyDetailId(strategyDetail.getId());
+			chargingOrderAccountingStrategy.setType(strategyDetail.getType());
+			chargingOrderAccountingStrategy.setElectrovalence(strategyDetail.getElectrovalence());
+			chargingOrderAccountingStrategy.setServiceCharge(strategyDetail.getServiceCharge());
+			chargingOrderAccountingStrategy.setCostServiceCharge(strategyDetail.getCostServiceCharge());
+			
+			if(start.getTime() >= strategyDetail.getStart()){
+				chargingOrderAccountingStrategy.setStartTime(sdf2.format(start));
+			}else{
+				chargingOrderAccountingStrategy.setStartTime(strategyDetail.getStartTime());
+			}
+			if(end.getTime() >= strategyDetail.getEnd()){
+				chargingOrderAccountingStrategy.setEndTime(strategyDetail.getEndTime());
+			}else{
+				chargingOrderAccountingStrategy.setEndTime(sdf2.format(end));
+			}
+			
+			//已充电总度数
+			BigDecimal electrovalenc = strategyDetail.getElectrovalence().multiply(sharp_peak_charge).setScale(2, RoundingMode.DOWN);
+			BigDecimal originalServicePrice = strategyDetail.getServiceCharge().multiply(sharp_peak_charge).setScale(2, RoundingMode.DOWN);
+			BigDecimal serviceCharge = originalServicePrice;
+			BigDecimal vipDiscountAmount = BigDecimal.ZERO;
+			//计算优惠金额
+			if(null != chargingOrder.getVipDiscount()){
+				vipDiscountAmount = serviceCharge.multiply(new BigDecimal(1).subtract(chargingOrder.getVipDiscount())).setScale(2, RoundingMode.DOWN);
+				serviceCharge = serviceCharge.multiply(chargingOrder.getVipDiscount()).setScale(2, RoundingMode.DOWN);
+			}
+			chargingOrderAccountingStrategy.setChargingCapacity(sharp_peak_charge);
+			chargingOrderAccountingStrategy.setPeriodElectricPrice(electrovalenc);
+			chargingOrderAccountingStrategy.setPeriodServicePrice(serviceCharge);
+			chargingOrderAccountingStrategy.setPeriodOriginalServicePrice(originalServicePrice);
+			chargingOrderAccountingStrategy.setVipDiscountAmount(vipDiscountAmount);
+			chargingOrderAccountingStrategy.setCreateTime(LocalDateTime.now());
+			chargingOrderAccountingStrategyService.save(chargingOrderAccountingStrategy);
+			
+			periodElectricPrice_total = periodElectricPrice_total.add(electrovalenc);
+			periodServicePrice_total = periodServicePrice_total.add(originalServicePrice);
+			total = total.add(electrovalenc.add(originalServicePrice));
+		}
+		
 		
 		
 		//原金额
@@ -1876,9 +2038,10 @@
 		BigDecimal couponDiscountAmount = order.getCouponDiscountAmount();
 		if(null != couponDiscountAmount && couponDiscountAmount.compareTo(BigDecimal.ZERO) > 0){
 			List<TChargingOrderAccountingStrategy> list = chargingOrderAccountingStrategyService.list(new LambdaQueryWrapper<TChargingOrderAccountingStrategy>().eq(TChargingOrderAccountingStrategy::getChargingOrderId, order.getId()));
+			BigDecimal reduce = list.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add);
 			for (TChargingOrderAccountingStrategy chargingOrderAccountingStrategy : list) {
 				BigDecimal periodServicePrice = chargingOrderAccountingStrategy.getPeriodServicePrice();
-				BigDecimal multiply = couponDiscountAmount.multiply(periodServicePrice.divide(periodServicePrice_total, new MathContext(4, RoundingMode.HALF_EVEN)));
+				BigDecimal multiply = couponDiscountAmount.multiply(periodServicePrice.divide(reduce, new MathContext(4, RoundingMode.HALF_EVEN)));
 				periodServicePrice = periodServicePrice.subtract(multiply);
 				chargingOrderAccountingStrategy.setPeriodServicePrice(periodServicePrice);
 				chargingOrderAccountingStrategy.setCouponDiscountAmount(multiply);
@@ -1908,17 +2071,19 @@
 				}
 			}
 			
-			TAppUserIntegralChange appUserIntegralChange = new TAppUserIntegralChange();
-			appUserIntegralChange.setAppUserId(appUser.getId());
-			appUserIntegralChange.setChangeType(2);
-			appUserIntegralChange.setHistoricalIntegral(appUser.getPoints());
-			appUser.setPoints(appUser.getPoints() + integral);
-			appUserIntegralChange.setCurrentIntegral(appUser.getPoints());
-			appUserIntegralChange.setCreateTime(LocalDateTime.now());
-			appUserIntegralChange.setOrderCode(chargingOrder.getCode());
-			appUserIntegralChange.setExtension(chargingOrder.getId().toString());
-			appUserClient.updateAppUser(appUser);
-			appUserIntegralChangeClient.addAppUserIntegralChange(appUserIntegralChange);
+			if(integral > 0){
+				TAppUserIntegralChange appUserIntegralChange = new TAppUserIntegralChange();
+				appUserIntegralChange.setAppUserId(appUser.getId());
+				appUserIntegralChange.setChangeType(2);
+				appUserIntegralChange.setHistoricalIntegral(appUser.getPoints());
+				appUser.setPoints(appUser.getPoints() + integral);
+				appUserIntegralChange.setCurrentIntegral(appUser.getPoints());
+				appUserIntegralChange.setCreateTime(LocalDateTime.now());
+				appUserIntegralChange.setOrderCode(chargingOrder.getCode());
+				appUserIntegralChange.setExtension(chargingOrder.getId().toString());
+				appUserClient.updateAppUser(appUser);
+				appUserIntegralChangeClient.addAppUserIntegralChange(appUserIntegralChange);
+			}
 		}
 
 		//计算用户标签
@@ -1942,7 +2107,7 @@
 			chargingOrderRefund.setRefundTitle("充电完成退款");
 			chargingOrderRefund.setRefundContent("充电完成退款");
 			chargingOrderRefund.setRefundReason("充电完成退款");
-			chargingOrderRefund.setRefundRemark("实际充电消费金额:" + refundAmount);
+			chargingOrderRefund.setRefundRemark("实际充电消费金额:" + chargingOrder.getPaymentAmount());
 			chargingOrderRefund.setRefundTotalAmount(refundAmount);
 			chargingOrderRefund.setPayAmount(rechargeAmount);
 			if(1 == rechargePaymentType){
@@ -2287,7 +2452,7 @@
 		}
 		TChargingOrder one = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getAppUserCarId, appUserCar.getId())
 				.eq(TChargingOrder::getDelFlag, 0).gt(TChargingOrder::getStartTime, query.getStartTime())
-				.eq(TChargingOrder::getRechargePaymentStatus, 2).ne(TChargingOrder::getStatus, -1));
+				.eq(TChargingOrder::getRechargePaymentStatus, 2).ne(TChargingOrder::getStatus, 5));
 		return one;
 	}
 
@@ -2803,4 +2968,32 @@
 	public Long countNoTag() {
 		return this.baseMapper.countNoTag();
 	}
+	
+	
+	@Override
+	public List<TChargingOrder> getChargingOrder(TChargingOrderVo order) {
+		LambdaQueryWrapper<TChargingOrder> queryWrapper = new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getDelFlag, 0);
+		if(null != order.getChargingPileId()){
+			queryWrapper.eq(TChargingOrder::getChargingPileId, order.getChargingPileId());
+		}
+		if(null != order.getChargingGunId()){
+			queryWrapper.eq(TChargingOrder::getChargingGunId, order.getChargingGunId());
+		}
+		if(null != order.getStatus()){
+			queryWrapper.eq(TChargingOrder::getStatus, order.getStatus());
+		}
+		if(null != order.getAppUserId()){
+			queryWrapper.eq(TChargingOrder::getAppUserId, order.getAppUserId());
+		}
+		if(null != order.getAppUserId()){
+			queryWrapper.eq(TChargingOrder::getAppUserId, order.getAppUserId());
+		}
+		if(null != order.getStatusList()){
+			queryWrapper.in(TChargingOrder::getAppUserId, order.getStatusList());
+		}
+		if(null != order.getEndMode()){
+			queryWrapper.eq(TChargingOrder::getEndMode, order.getEndMode());
+		}
+		return this.list(queryWrapper.orderByDesc(TChargingOrder::getCreateTime));
+	}
 }
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java
index b23259a..d0bf4ea 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java
@@ -139,7 +139,8 @@
         tagList = tagList.stream().sorted(Comparator.comparing(TEvaluationTagVO::getTagCount).reversed()).collect(Collectors.toList());
         // 统计有图,好评,中差评数量
         long imgUrlCount = this.count(Wrappers.lambdaQuery(TOrderEvaluate.class)
-                .isNotNull(TOrderEvaluate::getImgUrl));
+                .isNotNull(TOrderEvaluate::getImgUrl)
+                .ne(TOrderEvaluate::getImgUrl,""));
         packageTagCount(imgUrlCount,"有图",2,tagList);
         long goodCount = this.count(Wrappers.lambdaQuery(TOrderEvaluate.class)
                 .ge(TOrderEvaluate::getMark,4));
@@ -172,9 +173,11 @@
                 orderEvaluateVO.setName(appUser.getName());
                 orderEvaluateVO.setAvatar(appUser.getAvatar());
             }
-            TAppUserCar appUserCar = appUserCars.stream().filter(car -> car.getId().equals(Long.parseLong(String.valueOf(orderEvaluateVO.getAppUserCarId())))).findFirst().orElse(null);
-            if(Objects.nonNull(appUserCar)){
-                orderEvaluateVO.setCarName(appUserCar.getVehicleBrand());
+            if(Objects.nonNull(orderEvaluateVO.getAppUserCarId())){
+                TAppUserCar appUserCar = appUserCars.stream().filter(car -> car.getId().equals(Long.parseLong(String.valueOf(orderEvaluateVO.getAppUserCarId())))).findFirst().orElse(null);
+                if(Objects.nonNull(appUserCar)){
+                    orderEvaluateVO.setCarName(appUserCar.getVehicleBrand());
+                }
             }
         });
         pageInfo.setRecords(list);
@@ -205,6 +208,11 @@
                         List<Integer> tagIds = tOrderEvaluateTagList.stream().map(TOrderEvaluateTag::getEvaluationTagId).collect(Collectors.toList());
                         List<TEvaluationTag> data = evaluationTagClient.getListByIds(tagIds).getData();
                         tOrderEvaluateVO.setOrderEvaluateTags(data);
+                    }
+                    TAppUser data = appUserClient.getUserById(tOrderEvaluateVO.getAppUserId()).getData();
+                    if(Objects.nonNull(data)){
+                        tOrderEvaluateVO.setName(data.getName());
+                        tOrderEvaluateVO.setAvatar(data.getAvatar());
                     }
                 }
             }
@@ -379,9 +387,11 @@
             BeanUtils.copyProperties(orderEvaluate, orderEvaluateVo);
             List<TOrderEvaluateTag> tOrderEvaluateTags = orderEvaluateTagMapper.selectList(new LambdaQueryWrapper<TOrderEvaluateTag>().eq(TOrderEvaluateTag::getOrderEvaluateId, orderEvaluate.getId()));
             List<Integer> tagId = tOrderEvaluateTags.stream().map(TOrderEvaluateTag::getEvaluationTagId).collect(Collectors.toList());
-            List<TEvaluationTag> data = evaluationTagClient.getListByIds(tagId).getData();
-            List<String> collect = data.stream().map(TEvaluationTag::getName).collect(Collectors.toList());
-            orderEvaluateVo.setTagName(collect);
+            if(tagId.size() > 0){
+                List<TEvaluationTag> data = evaluationTagClient.getListByIds(tagId).getData();
+                List<String> collect = data.stream().map(TEvaluationTag::getName).collect(Collectors.toList());
+                orderEvaluateVo.setTagName(collect);
+            }
             return orderEvaluateVo;
         }
         return null;
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java
index a4aed6f..6cd271a 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java
@@ -218,6 +218,8 @@
 				BigDecimal payMoney = tChargingOrder.getStatus() < 4 ? tChargingOrder.getRechargeAmount() : tChargingOrder.getPaymentAmount();
 				myChargingOrderList.setPayMoney(payMoney);
 				myChargingOrderList.setCreateTime(tChargingOrder.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy.MM.dd HH:mm:ss")));
+				myChargingOrderList.setElectricCharge(tChargingOrder.getElectrovalence());
+				myChargingOrderList.setServiceCharge(tChargingOrder.getServiceCharge());
 				chargingOrder.add(myChargingOrderList);
 			}
 			myOrderInvoiceInfo.setChargingOrder(chargingOrder);
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java
index 674d491..f25778c 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java
@@ -1,5 +1,6 @@
 package com.ruoyi.order.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -315,7 +316,7 @@
         MyShoppingOrderInfo info = new MyShoppingOrderInfo();
         info.setId(id);
         info.setStatus(shoppingOrder.getStatus());
-        TAppUserAddress userAddress = appUserAddressClient.getAppUserAddressById(shoppingOrder.getAppUserAddressId()).getData();
+        TAppUserAddress userAddress = JSON.parseObject(shoppingOrder.getAddressJson(), TAppUserAddress.class);
         info.setConsignee(userAddress.getName());
         info.setPhone(userAddress.getPhone());
         info.setAddress(userAddress.getProvince() + userAddress.getCity() + userAddress.getDistrict() + userAddress.getAddress() + userAddress.getHouseNumber());
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderEvaluateMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderEvaluateMapper.xml
index 02e93b7..7a4d65a 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderEvaluateMapper.xml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderEvaluateMapper.xml
@@ -40,6 +40,7 @@
                 <choose>
                     <when test="query.tagType == 2">
                         AND toe.img_url IS NOT NULL
+                        AND toe.img_url != ''
                     </when>
                     <when test="query.tagType == 3">
                         AND toe.mark &gt;= 4
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml
index 51bc3bb..31e9d7b 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml
@@ -152,9 +152,7 @@
                     <if test="null != req.code and req.code!=''">
                         and t3.code  LIKE CONCAT('%',#{req.code},'%')
                     </if>
-                    <if test="req.type == null ">
-                        and t3.discount_amount  > 0
-                    </if>
+                    and t3.discount_amount  > 0
                     <if test="null != req.userIds and req.userIds.size()>0" >
                         and t3.app_user_id in
                         <foreach collection="req.userIds" item="item" index="index" separator="," open="(" close=")">
@@ -203,7 +201,7 @@
     
     
     <select id="getNoInvoicedOrder" resultMap="BaseResultMap">
-        select * from t_shopping_order where del_flag = 0 and payment_status = 2 and status = 3 and app_user_id = #{appUserId}
+        select * from t_shopping_order where del_flag = 0 and payment_status = 2 and status = 3 and app_user_id = #{appUserId} and refund_status is null
         <if test="null != month and '' != month">
             and DATE_FORMAT(create_time, '%Y-%m') = #{month}
         </if>
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java
index 9a00b7d..f666844 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java
@@ -118,7 +118,12 @@
         for (ExchangeRecordVO record : data) {
             TCoupon byId = tCouponService.getById(record.getCouponId());
             if (byId!=null){
+                if (byId.getDiscountAmount()!=null){
                     record.setDiscountAmount("¥"+byId.getDiscountAmount());
+
+                }else{
+                    record.setDiscountAmount("¥"+byId.getMaximumDiscountAmount());
+                }
                 if (Objects.equals(byId.getMeetTheConditions(), BigDecimal.ZERO)){
                     record.setMeetTheConditions("无门槛");
                 }else{
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java
index e09a61f..3ea9ee4 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java
@@ -351,10 +351,11 @@
             //调起支付
             PaymentOrder paymentOrder = new PaymentOrder();
             paymentOrder.setCode(shopOrder.getCode());
-            paymentOrder.setAmount(exchangeDto.getOrderPrice());
+            paymentOrder.setAmount(exchangeDto.getPayPrice());
             paymentOrder.setOpenId(user.getWxOpenid());
             paymentOrder.setDescription("购买商品");
             R<Map<String, Object>> mapR = wxPaymentClient.orderPay(paymentOrder);
+            mapR.getData().put("orderId",shopOrder.getId().toString());
             return    mapR;
         }else {
             //todo 罗 支付宝支付
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TGoodsServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TGoodsServiceImpl.java
index 7a58640..5f390ad 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TGoodsServiceImpl.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TGoodsServiceImpl.java
@@ -60,7 +60,6 @@
     @Override
     public PageInfo<TGoods> pageList1(AppGoodQuery basePage) {
         GoodsDTO dto = new GoodsDTO();
-        dto.setType(2);
         dto.setStatus(1);
         dto.setPageCurr(basePage.getPageCurr());
         dto.setPageSize(basePage.getPageSize());
@@ -81,7 +80,7 @@
         }
         String string = stringBuilder.toString();
         // 订单号加上商品类型
-        String res = string+"-"+dto.getType();
+        String res = string+"-"+basePage.getType();
 
         List<Integer> data = orderClient.getSalesCountByGoodsId(res).getData();
         for (int i = 0; i < list.size(); i++) {

--
Gitblit v1.7.1