无关风月
2024-10-18 e125d529c1c3748bcf15c619576b2c9e1cc69d54
Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile
27个文件已修改
1个文件已添加
1423 ■■■■ 已修改文件
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TFaultMessage.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TRepair.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/UploadRealTimeMonitoringDataFallbackFactory.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/UploadRealTimeMonitoringDataClient.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/ChargingOrderAndUploadRealTimeMonitoringDataDto.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/TransactionRecord.java 313 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TransactionRecordMessageVO.java 301 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/dto/MongoChargingOrderQuery.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysOperlogController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingGunServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TFaultMessageServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/resources/bootstrap.yml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/UploadRealTimeMonitoringDataController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/UploadRealTimeMonitoringDataService.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java 55 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/TransactionRecordMessage.java 313 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/ChargingDetails.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java 136 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java 106 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TAdvertisingController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-payment/src/main/resources/bootstrap.yml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TFaultMessage.java
@@ -8,6 +8,7 @@
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.time.LocalDateTime;
@@ -64,6 +65,7 @@
    @ApiModelProperty(value = "故障时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("down_time")
    private LocalDateTime downTime;
    @ApiModelProperty(value = "结束时间")
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TRepair.java
@@ -6,6 +6,7 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.time.LocalDateTime;
@@ -54,6 +55,7 @@
    @ApiModelProperty(value = "报修时间")
    @TableField("repair_time")
    @DateTimeFormat(pattern = "yyyy-MM-ddTHH:mm:ss")
    private LocalDateTime repairTime;
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/UploadRealTimeMonitoringDataFallbackFactory.java
@@ -1,6 +1,7 @@
package com.ruoyi.integration.api.factory;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.dto.MongoChargingOrderQuery;
import com.ruoyi.integration.api.feignClient.UploadRealTimeMonitoringDataClient;
import com.ruoyi.integration.api.model.*;
import org.slf4j.Logger;
@@ -43,7 +44,7 @@
            }
            @Override
            public R<List<UploadRealTimeMonitoringData>> getAll(Set<String> values, Integer page, Integer size) {
            public R<List<UploadRealTimeMonitoringData>> getAll(MongoChargingOrderQuery mongoChargingOrderQuery) {
                return null;
            }
        };
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/UploadRealTimeMonitoringDataClient.java
@@ -2,10 +2,12 @@
import com.ruoyi.common.core.constant.ServiceNameConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.dto.MongoChargingOrderQuery;
import com.ruoyi.integration.api.factory.UploadRealTimeMonitoringDataFallbackFactory;
import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
@@ -42,5 +44,5 @@
    R<List<UploadRealTimeMonitoringData>> getDataByOrderCode(@RequestParam("code") String code);
    @PostMapping("/uploadRealTimeMonitoringData/getAll")
    R<List<UploadRealTimeMonitoringData>> getAll(@RequestParam("values") Set<String> values, @RequestParam("page") Integer page, @RequestParam("size")Integer size);
    R<List<UploadRealTimeMonitoringData>> getAll(@RequestBody MongoChargingOrderQuery mongoChargingOrderQuery);
}
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/ChargingOrderAndUploadRealTimeMonitoringDataDto.java
@@ -199,6 +199,25 @@
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField("pay_time")
    private LocalDateTime payTime;
    @ApiModelProperty(value = "站点名称")
    private String siteName;
    @ApiModelProperty(value = "充电终端名称 桩+枪")
    private String terminalName;
    @ApiModelProperty(value = "充电时间 秒")
    private Long chargingSecond;
    @ApiModelProperty(value = "平台手续费")
    private BigDecimal platFormMoney;
    @ApiModelProperty(value = "三方平台分佣")
    private BigDecimal commission;
    @ApiModelProperty(value = "车牌号")
    private String licensePlate;
    @ApiModelProperty(value = "手机号")
    private String phone;
    @ApiModelProperty(value = "时段数")
    private Integer count;
}
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/TransactionRecord.java
@@ -20,172 +20,169 @@
    private String charging_gun_code;// 抢号
    private String start_time;// 开始时间
    private String end_time;// 结束时间
    private BigDecimal total_initial_value;// 电表总起值
    private BigDecimal total_stop_value;// 电表总止值
    private BigDecimal total_electricity;// 总电量
    private BigDecimal loss_total_electricity;// 计损总电量
    private BigDecimal payment_amount;// 消费金额
    private String vin;// 电动汽车唯一标识
    private Integer start_method;// 交易标识(1:app 启动,2:卡启动,4:离线卡启动,5: vin 码启动充电)
    private BigDecimal pay_amount;// 消费金额
    private Integer method;// 交易标识(1:app 启动,2:卡启动,4:离线卡启动,5: vin 码启动充电)
    private String trade_date;// 交易日期、时间
    private Integer stop_reason;// 停止原因
    private String physical_card_number;// 物理卡号
    private String time1;// 计费时段
    private BigDecimal sharp_peak_charge1;// 尖电量
    private BigDecimal loss_sharp_peak_charge1;// 计损尖电量
    private BigDecimal sharp_peak_amount1;// 尖金额
    private BigDecimal flat_peak_charge1;// 平电量
    private BigDecimal loss_flat_peak_char1;// 计损平电量
    private BigDecimal flat_peak_amount1;// 平金额
    private String billing_model_code1;// 计费模型编号
    private BigDecimal spike_charge1;// 尖电量
    private BigDecimal loss_spike_charge1;// 计损尖电量
    private BigDecimal spike_amount1;// 尖金额
    private BigDecimal flat_charge1;// 平电量
    private BigDecimal loss_flat_charge1;// 计损平电量
    private BigDecimal flat_amount1;// 平金额
    private BigDecimal peak_charge1;// 峰电量
    private BigDecimal loss_peak_charge1;// 计损峰电量
    private BigDecimal peak_amount1;// 峰金额
    private BigDecimal low_peak_charge1;// 谷电量
    private BigDecimal loss_low_peak_charge1;// 计损谷电量
    private BigDecimal low_peak_amount1;// 谷金额
    private String time2;// 计费时段
    private BigDecimal sharp_peak_charge2;// 电量
    private BigDecimal loss_sharp_peak_charge2;// 计损电量
    private BigDecimal sharp_peak_amount2;// 金额
    private BigDecimal flat_peak_charge2;// 电量
    private BigDecimal loss_flat_peak_char2;// 计损电量
    private BigDecimal flat_peak_amount2;// 金额
    private BigDecimal peak_charge2;// 电量
    private BigDecimal loss_peak_charge2;// 计损电量
    private BigDecimal peak_amount2;// 金额
    private BigDecimal low_peak_charge2;// 电量
    private BigDecimal loss_low_peak_charge2;// 计损电量
    private BigDecimal low_peak_amount2;// 金额
    private String time3;// 计费时段
    private BigDecimal sharp_peak_charge3;// 电量
    private BigDecimal loss_sharp_peak_charge3;// 计损电量
    private BigDecimal sharp_peak_amount3;// 金额
    private BigDecimal flat_peak_charge3;// 电量
    private BigDecimal loss_flat_peak_char3;// 计损电量
    private BigDecimal flat_peak_amount3;// 金额
    private BigDecimal peak_charge3;// 电量
    private BigDecimal loss_peak_charge3;// 计损电量
    private BigDecimal peak_amount3;// 金额
    private BigDecimal low_peak_charge3;// 电量
    private BigDecimal loss_low_peak_charge3;// 计损电量
    private BigDecimal low_peak_amount3;// 金额
    private String time4;// 计费时段
    private BigDecimal sharp_peak_charge4;// 电量
    private BigDecimal loss_sharp_peak_charge4;// 计损电量
    private BigDecimal sharp_peak_amount4;// 金额
    private BigDecimal flat_peak_charge4;// 电量
    private BigDecimal loss_flat_peak_char4;// 计损电量
    private BigDecimal flat_peak_amount4;// 金额
    private BigDecimal peak_charge4;// 电量
    private BigDecimal loss_peak_charge4;// 计损电量
    private BigDecimal peak_amount4;// 金额
    private BigDecimal low_peak_charge4;// 电量
    private BigDecimal loss_low_peak_charge4;// 计损电量
    private BigDecimal low_peak_amount4;// 金额
    private String time5;// 计费时段
    private BigDecimal sharp_peak_charge5;// 电量
    private BigDecimal loss_sharp_peak_charge5;// 计损电量
    private BigDecimal sharp_peak_amount5;// 金额
    private BigDecimal flat_peak_charge5;// 电量
    private BigDecimal loss_flat_peak_char5;// 计损电量
    private BigDecimal flat_peak_amount5;// 金额
    private BigDecimal peak_charge5;// 电量
    private BigDecimal loss_peak_charge5;// 计损电量
    private BigDecimal peak_amount5;// 金额
    private BigDecimal low_peak_charge5;// 电量
    private BigDecimal loss_low_peak_charge5;// 计损电量
    private BigDecimal low_peak_amount5;// 金额
    private String time6;// 计费时段
    private BigDecimal sharp_peak_charge6;// 电量
    private BigDecimal loss_sharp_peak_charge6;// 计损电量
    private BigDecimal sharp_peak_amount6;// 金额
    private BigDecimal flat_peak_charge6;// 电量
    private BigDecimal loss_flat_peak_char6;// 计损电量
    private BigDecimal flat_peak_amount6;// 金额
    private BigDecimal peak_charge6;// 电量
    private BigDecimal loss_peak_charge6;// 计损电量
    private BigDecimal peak_amount6;// 金额
    private BigDecimal low_peak_charge6;// 电量
    private BigDecimal loss_low_peak_charge6;// 计损电量
    private BigDecimal low_peak_amount6;// 金额
    private String time7;// 计费时段
    private BigDecimal sharp_peak_charge7;// 电量
    private BigDecimal loss_sharp_peak_charge7;// 计损电量
    private BigDecimal sharp_peak_amount7;// 金额
    private BigDecimal flat_peak_charge7;// 电量
    private BigDecimal loss_flat_peak_char7;// 计损电量
    private BigDecimal flat_peak_amount7;// 金额
    private BigDecimal peak_charge7;// 电量
    private BigDecimal loss_peak_charge7;// 计损电量
    private BigDecimal peak_amount7;// 金额
    private BigDecimal low_peak_charge7;// 电量
    private BigDecimal loss_low_peak_charge7;// 计损电量
    private BigDecimal low_peak_amount7;// 金额
    private String time8;// 计费时段
    private BigDecimal sharp_peak_charge8;// 电量
    private BigDecimal loss_sharp_peak_charge8;// 计损电量
    private BigDecimal sharp_peak_amount8;// 金额
    private BigDecimal flat_peak_charge8;// 电量
    private BigDecimal loss_flat_peak_char8;// 计损电量
    private BigDecimal flat_peak_amount8;// 金额
    private BigDecimal peak_charge8;// 电量
    private BigDecimal loss_peak_charge8;// 计损电量
    private BigDecimal peak_amount8;// 金额
    private BigDecimal low_peak_charge8;// 电量
    private BigDecimal loss_low_peak_charge8;// 计损电量
    private BigDecimal low_peak_amount8;// 金额
    private String time9;// 计费时段
    private BigDecimal sharp_peak_charge9;// 电量
    private BigDecimal loss_sharp_peak_charge9;// 计损电量
    private BigDecimal sharp_peak_amount9;// 金额
    private BigDecimal flat_peak_charge9;// 电量
    private BigDecimal loss_flat_peak_char9;// 计损电量
    private BigDecimal flat_peak_amount9;// 金额
    private BigDecimal peak_charge9;// 电量
    private BigDecimal loss_peak_charge9;// 计损电量
    private BigDecimal peak_amount9;// 金额
    private BigDecimal low_peak_charge9;// 电量
    private BigDecimal loss_low_peak_charge9;// 计损电量
    private BigDecimal low_peak_amount9;// 金额
    private String time10;// 计费时段
    private BigDecimal sharp_peak_charge10;// 电量
    private BigDecimal loss_sharp_peak_charge10;// 计损电量
    private BigDecimal sharp_peak_amount10;// 金额
    private BigDecimal flat_peak_charge10;// 电量
    private BigDecimal loss_flat_peak_char10;// 计损电量
    private BigDecimal flat_peak_amount10;// 金额
    private BigDecimal peak_charge10;// 电量
    private BigDecimal loss_peak_charge10;// 计损电量
    private BigDecimal peak_amount10;// 金额
    private BigDecimal low_peak_charge10;// 电量
    private BigDecimal loss_low_peak_charge10;// 计损电量
    private BigDecimal low_peak_amount10;// 金额
    private String time11;// 计费时段
    private BigDecimal sharp_peak_charge11;// 电量
    private BigDecimal loss_sharp_peak_charge11;// 计损电量
    private BigDecimal sharp_peak_amount11;// 金额
    private BigDecimal flat_peak_charge11;// 电量
    private BigDecimal loss_flat_peak_char11;// 计损电量
    private BigDecimal flat_peak_amount11;// 金额
    private BigDecimal peak_charge11;// 电量
    private BigDecimal loss_peak_charge11;// 计损电量
    private BigDecimal peak_amount11;// 金额
    private BigDecimal low_peak_charge11;// 电量
    private BigDecimal loss_low_peak_charge11;// 计损电量
    private BigDecimal low_peak_amount11;// 金额
    private String time12;// 计费时段
    private BigDecimal sharp_peak_charge12;// 电量
    private BigDecimal loss_sharp_peak_charge12;// 计损电量
    private BigDecimal sharp_peak_amount12;// 金额
    private BigDecimal flat_peak_charge12;// 电量
    private BigDecimal loss_flat_peak_char12;// 计损电量
    private BigDecimal flat_peak_amount12;// 金额
    private BigDecimal peak_charge12;// 电量
    private BigDecimal loss_peak_charge12;// 计损电量
    private BigDecimal peak_amount12;// 金额
    private BigDecimal low_peak_charge12;// 电量
    private BigDecimal loss_low_peak_charge12;// 计损电量
    private BigDecimal low_peak_amount12;// 金额
    private BigDecimal valley_charge1;// 谷电量
    private BigDecimal loss_valley_charge1;// 计损谷电量
    private BigDecimal valley_amount1;// 谷金额
    private String billing_model_code2;// 计费模型编号
    private BigDecimal spike_charge2;// 尖电量
    private BigDecimal loss_spike_charge2;// 计损尖电量
    private BigDecimal spike_amount2;// 尖金额
    private BigDecimal flat_charge2;// 平电量
    private BigDecimal loss_flat_charge2;// 计损平电量
    private BigDecimal flat_amount2;// 平金额
    private BigDecimal peak_charge2;// 峰电量
    private BigDecimal loss_peak_charge2;// 计损峰电量
    private BigDecimal peak_amount2;// 峰金额
    private BigDecimal valley_charge2;// 谷电量
    private BigDecimal loss_valley_charge2;// 计损谷电量
    private BigDecimal valley_amount2;// 谷金额
    private String billing_model_code3;// 计费模型编号
    private BigDecimal spike_charge3;// 尖电量
    private BigDecimal loss_spike_charge3;// 计损尖电量
    private BigDecimal spike_amount3;// 尖金额
    private BigDecimal flat_charge3;// 平电量
    private BigDecimal loss_flat_charge3;// 计损平电量
    private BigDecimal flat_amount3;// 平金额
    private BigDecimal peak_charge3;// 峰电量
    private BigDecimal loss_peak_charge3;// 计损峰电量
    private BigDecimal peak_amount3;// 峰金额
    private BigDecimal valley_charge3;// 谷电量
    private BigDecimal loss_valley_charge3;// 计损谷电量
    private BigDecimal valley_amount3;// 谷金额
    private String billing_model_code4;// 计费模型编号
    private BigDecimal spike_charge4;// 尖电量
    private BigDecimal loss_spike_charge4;// 计损尖电量
    private BigDecimal spike_amount4;// 尖金额
    private BigDecimal flat_charge4;// 平电量
    private BigDecimal loss_flat_charge4;// 计损平电量
    private BigDecimal flat_amount4;// 平金额
    private BigDecimal peak_charge4;// 峰电量
    private BigDecimal loss_peak_charge4;// 计损峰电量
    private BigDecimal peak_amount4;// 峰金额
    private BigDecimal valley_charge4;// 谷电量
    private BigDecimal loss_valley_charge4;// 计损谷电量
    private BigDecimal valley_amount4;// 谷金额
    private String billing_model_code5;// 计费模型编号
    private BigDecimal spike_charge5;// 尖电量
    private BigDecimal loss_spike_charge5;// 计损尖电量
    private BigDecimal spike_amount5;// 尖金额
    private BigDecimal flat_charge5;// 平电量
    private BigDecimal loss_flat_charge5;// 计损平电量
    private BigDecimal flat_amount5;// 平金额
    private BigDecimal peak_charge5;// 峰电量
    private BigDecimal loss_peak_charge5;// 计损峰电量
    private BigDecimal peak_amount5;// 峰金额
    private BigDecimal valley_charge5;// 谷电量
    private BigDecimal loss_valley_charge5;// 计损谷电量
    private BigDecimal valley_amount5;// 谷金额
    private String billing_model_code6;// 计费模型编号
    private BigDecimal spike_charge6;// 尖电量
    private BigDecimal loss_spike_charge6;// 计损尖电量
    private BigDecimal spike_amount6;// 尖金额
    private BigDecimal flat_charge6;// 平电量
    private BigDecimal loss_flat_charge6;// 计损平电量
    private BigDecimal flat_amount6;// 平金额
    private BigDecimal peak_charge6;// 峰电量
    private BigDecimal loss_peak_charge6;// 计损峰电量
    private BigDecimal peak_amount6;// 峰金额
    private BigDecimal valley_charge6;// 谷电量
    private BigDecimal loss_valley_charge6;// 计损谷电量
    private BigDecimal valley_amount6;// 谷金额
    private String billing_model_code7;// 计费模型编号
    private BigDecimal spike_charge7;// 尖电量
    private BigDecimal loss_spike_charge7;// 计损尖电量
    private BigDecimal spike_amount7;// 尖金额
    private BigDecimal flat_charge7;// 平电量
    private BigDecimal loss_flat_charge7;// 计损平电量
    private BigDecimal flat_amount7;// 平金额
    private BigDecimal peak_charge7;// 峰电量
    private BigDecimal loss_peak_charge7;// 计损峰电量
    private BigDecimal peak_amount7;// 峰金额
    private BigDecimal valley_charge7;// 谷电量
    private BigDecimal loss_valley_charge7;// 计损谷电量
    private BigDecimal valley_amount7;// 谷金额
    private String billing_model_code8;// 计费模型编号
    private BigDecimal spike_charge8;// 尖电量
    private BigDecimal loss_spike_charge8;// 计损尖电量
    private BigDecimal spike_amount8;// 尖金额
    private BigDecimal flat_charge8;// 平电量
    private BigDecimal loss_flat_charge8;// 计损平电量
    private BigDecimal flat_amount8;// 平金额
    private BigDecimal peak_charge8;// 峰电量
    private BigDecimal loss_peak_charge8;// 计损峰电量
    private BigDecimal peak_amount8;// 峰金额
    private BigDecimal valley_charge8;// 谷电量
    private BigDecimal loss_valley_charge8;// 计损谷电量
    private BigDecimal valley_amount8;// 谷金额
    private String billing_model_code9;// 计费模型编号
    private BigDecimal spike_charge9;// 尖电量
    private BigDecimal loss_spike_charge9;// 计损尖电量
    private BigDecimal spike_amount9;// 尖金额
    private BigDecimal flat_charge9;// 平电量
    private BigDecimal loss_flat_charge9;// 计损平电量
    private BigDecimal flat_amount9;// 平金额
    private BigDecimal peak_charge9;// 峰电量
    private BigDecimal loss_peak_charge9;// 计损峰电量
    private BigDecimal peak_amount9;// 峰金额
    private BigDecimal valley_charge9;// 谷电量
    private BigDecimal loss_valley_charge9;// 计损谷电量
    private BigDecimal valley_amount9;// 谷金额
    private String billing_model_code10;// 计费模型编号
    private BigDecimal spike_charge10;// 尖电量
    private BigDecimal loss_spike_charge10;// 计损尖电量
    private BigDecimal spike_amount10;// 尖金额
    private BigDecimal flat_charge10;// 平电量
    private BigDecimal loss_flat_charge10;// 计损平电量
    private BigDecimal flat_amount10;// 平金额
    private BigDecimal peak_charge10;// 峰电量
    private BigDecimal loss_peak_charge10;// 计损峰电量
    private BigDecimal peak_amount10;// 峰金额
    private BigDecimal valley_charge10;// 谷电量
    private BigDecimal loss_valley_charge10;// 计损谷电量
    private BigDecimal valley_amount10;// 谷金额
    private String billing_model_code11;// 计费模型编号
    private BigDecimal spike_charge11;// 尖电量
    private BigDecimal loss_spike_charge11;// 计损尖电量
    private BigDecimal spike_amount11;// 尖金额
    private BigDecimal flat_charge11;// 平电量
    private BigDecimal loss_flat_charge11;// 计损平电量
    private BigDecimal flat_amount11;// 平金额
    private BigDecimal peak_charge11;// 峰电量
    private BigDecimal loss_peak_charge11;// 计损峰电量
    private BigDecimal peak_amount11;// 峰金额
    private BigDecimal valley_charge11;// 谷电量
    private BigDecimal loss_valley_charge11;// 计损谷电量
    private BigDecimal valley_amount11;// 谷金额
    private String billing_model_code12;// 计费模型编号
    private BigDecimal spike_charge12;// 尖电量
    private BigDecimal loss_spike_charge12;// 计损尖电量
    private BigDecimal spike_amount12;// 尖金额
    private BigDecimal flat_charge12;// 平电量
    private BigDecimal loss_flat_charge12;// 计损平电量
    private BigDecimal flat_amount12;// 平金额
    private BigDecimal peak_charge12;// 峰电量
    private BigDecimal loss_peak_charge12;// 计损峰电量
    private BigDecimal peak_amount12;// 峰金额
    private BigDecimal valley_charge12;// 谷电量
    private BigDecimal loss_valley_charge12;// 计损谷电量
    private BigDecimal valley_amount12;// 谷金额
}
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TransactionRecordMessageVO.java
@@ -16,172 +16,157 @@
    private String charging_gun_code;// 抢号
    private String start_time;// 开始时间
    private String end_time;// 结束时间
    private BigDecimal total_initial_value;// 电表总起值
    private BigDecimal total_stop_value;// 电表总止值
    private BigDecimal total_electricity;// 总电量
    private BigDecimal loss_total_electricity;// 计损总电量
    private BigDecimal payment_amount;// 消费金额
    private String vin;// 电动汽车唯一标识
    private Integer start_method;// 交易标识(1:app 启动,2:卡启动,4:离线卡启动,5: vin 码启动充电)
    private BigDecimal pay_amount;// 消费金额
    private Integer method;// 交易标识(1:app 启动,2:卡启动,4:离线卡启动,5: vin 码启动充电)
    private String trade_date;// 交易日期、时间
    private Integer stop_reason;// 停止原因
    private String physical_card_number;// 物理卡号
    private String time1;// 计费时段
    private BigDecimal sharp_peak_charge1;// 尖电量
    private BigDecimal loss_sharp_peak_charge1;// 计损尖电量
    private BigDecimal sharp_peak_amount1;// 尖金额
    private BigDecimal flat_peak_charge1;// 平电量
    private BigDecimal loss_flat_peak_char1;// 计损平电量
    private BigDecimal flat_peak_amount1;// 平金额
    private BigDecimal spike_charge1;// 尖电量
    private BigDecimal loss_spike_charge1;// 计损尖电量
    private BigDecimal spike_amount1;// 尖金额
    private BigDecimal flat_charge1;// 平电量
    private BigDecimal loss_flat_charge1;// 计损平电量
    private BigDecimal flat_amount1;// 平金额
    private BigDecimal peak_charge1;// 峰电量
    private BigDecimal loss_peak_charge1;// 计损峰电量
    private BigDecimal peak_amount1;// 峰金额
    private BigDecimal low_peak_charge1;// 谷电量
    private BigDecimal loss_low_peak_charge1;// 计损谷电量
    private BigDecimal low_peak_amount1;// 谷金额
    private String time2;// 计费时段
    private BigDecimal sharp_peak_charge2;// 电量
    private BigDecimal loss_sharp_peak_charge2;// 计损电量
    private BigDecimal sharp_peak_amount2;// 金额
    private BigDecimal flat_peak_charge2;// 电量
    private BigDecimal loss_flat_peak_char2;// 计损电量
    private BigDecimal flat_peak_amount2;// 金额
    private BigDecimal peak_charge2;// 电量
    private BigDecimal loss_peak_charge2;// 计损电量
    private BigDecimal peak_amount2;// 金额
    private BigDecimal low_peak_charge2;// 电量
    private BigDecimal loss_low_peak_charge2;// 计损电量
    private BigDecimal low_peak_amount2;// 金额
    private String time3;// 计费时段
    private BigDecimal sharp_peak_charge3;// 电量
    private BigDecimal loss_sharp_peak_charge3;// 计损电量
    private BigDecimal sharp_peak_amount3;// 金额
    private BigDecimal flat_peak_charge3;// 电量
    private BigDecimal loss_flat_peak_char3;// 计损电量
    private BigDecimal flat_peak_amount3;// 金额
    private BigDecimal peak_charge3;// 电量
    private BigDecimal loss_peak_charge3;// 计损电量
    private BigDecimal peak_amount3;// 金额
    private BigDecimal low_peak_charge3;// 电量
    private BigDecimal loss_low_peak_charge3;// 计损电量
    private BigDecimal low_peak_amount3;// 金额
    private String time4;// 计费时段
    private BigDecimal sharp_peak_charge4;// 电量
    private BigDecimal loss_sharp_peak_charge4;// 计损电量
    private BigDecimal sharp_peak_amount4;// 金额
    private BigDecimal flat_peak_charge4;// 电量
    private BigDecimal loss_flat_peak_char4;// 计损电量
    private BigDecimal flat_peak_amount4;// 金额
    private BigDecimal peak_charge4;// 电量
    private BigDecimal loss_peak_charge4;// 计损电量
    private BigDecimal peak_amount4;// 金额
    private BigDecimal low_peak_charge4;// 电量
    private BigDecimal loss_low_peak_charge4;// 计损电量
    private BigDecimal low_peak_amount4;// 金额
    private String time5;// 计费时段
    private BigDecimal sharp_peak_charge5;// 电量
    private BigDecimal loss_sharp_peak_charge5;// 计损电量
    private BigDecimal sharp_peak_amount5;// 金额
    private BigDecimal flat_peak_charge5;// 电量
    private BigDecimal loss_flat_peak_char5;// 计损电量
    private BigDecimal flat_peak_amount5;// 金额
    private BigDecimal peak_charge5;// 电量
    private BigDecimal loss_peak_charge5;// 计损电量
    private BigDecimal peak_amount5;// 金额
    private BigDecimal low_peak_charge5;// 电量
    private BigDecimal loss_low_peak_charge5;// 计损电量
    private BigDecimal low_peak_amount5;// 金额
    private String time6;// 计费时段
    private BigDecimal sharp_peak_charge6;// 电量
    private BigDecimal loss_sharp_peak_charge6;// 计损电量
    private BigDecimal sharp_peak_amount6;// 金额
    private BigDecimal flat_peak_charge6;// 电量
    private BigDecimal loss_flat_peak_char6;// 计损电量
    private BigDecimal flat_peak_amount6;// 金额
    private BigDecimal peak_charge6;// 电量
    private BigDecimal loss_peak_charge6;// 计损电量
    private BigDecimal peak_amount6;// 金额
    private BigDecimal low_peak_charge6;// 电量
    private BigDecimal loss_low_peak_charge6;// 计损电量
    private BigDecimal low_peak_amount6;// 金额
    private String time7;// 计费时段
    private BigDecimal sharp_peak_charge7;// 电量
    private BigDecimal loss_sharp_peak_charge7;// 计损电量
    private BigDecimal sharp_peak_amount7;// 金额
    private BigDecimal flat_peak_charge7;// 电量
    private BigDecimal loss_flat_peak_char7;// 计损电量
    private BigDecimal flat_peak_amount7;// 金额
    private BigDecimal peak_charge7;// 电量
    private BigDecimal loss_peak_charge7;// 计损电量
    private BigDecimal peak_amount7;// 金额
    private BigDecimal low_peak_charge7;// 电量
    private BigDecimal loss_low_peak_charge7;// 计损电量
    private BigDecimal low_peak_amount7;// 金额
    private String time8;// 计费时段
    private BigDecimal sharp_peak_charge8;// 电量
    private BigDecimal loss_sharp_peak_charge8;// 计损电量
    private BigDecimal sharp_peak_amount8;// 金额
    private BigDecimal flat_peak_charge8;// 电量
    private BigDecimal loss_flat_peak_char8;// 计损电量
    private BigDecimal flat_peak_amount8;// 金额
    private BigDecimal peak_charge8;// 电量
    private BigDecimal loss_peak_charge8;// 计损电量
    private BigDecimal peak_amount8;// 金额
    private BigDecimal low_peak_charge8;// 电量
    private BigDecimal loss_low_peak_charge8;// 计损电量
    private BigDecimal low_peak_amount8;// 金额
    private String time9;// 计费时段
    private BigDecimal sharp_peak_charge9;// 电量
    private BigDecimal loss_sharp_peak_charge9;// 计损电量
    private BigDecimal sharp_peak_amount9;// 金额
    private BigDecimal flat_peak_charge9;// 电量
    private BigDecimal loss_flat_peak_char9;// 计损电量
    private BigDecimal flat_peak_amount9;// 金额
    private BigDecimal peak_charge9;// 电量
    private BigDecimal loss_peak_charge9;// 计损电量
    private BigDecimal peak_amount9;// 金额
    private BigDecimal low_peak_charge9;// 电量
    private BigDecimal loss_low_peak_charge9;// 计损电量
    private BigDecimal low_peak_amount9;// 金额
    private String time10;// 计费时段
    private BigDecimal sharp_peak_charge10;// 电量
    private BigDecimal loss_sharp_peak_charge10;// 计损电量
    private BigDecimal sharp_peak_amount10;// 金额
    private BigDecimal flat_peak_charge10;// 电量
    private BigDecimal loss_flat_peak_char10;// 计损电量
    private BigDecimal flat_peak_amount10;// 金额
    private BigDecimal peak_charge10;// 电量
    private BigDecimal loss_peak_charge10;// 计损电量
    private BigDecimal peak_amount10;// 金额
    private BigDecimal low_peak_charge10;// 电量
    private BigDecimal loss_low_peak_charge10;// 计损电量
    private BigDecimal low_peak_amount10;// 金额
    private String time11;// 计费时段
    private BigDecimal sharp_peak_charge11;// 电量
    private BigDecimal loss_sharp_peak_charge11;// 计损电量
    private BigDecimal sharp_peak_amount11;// 金额
    private BigDecimal flat_peak_charge11;// 电量
    private BigDecimal loss_flat_peak_char11;// 计损电量
    private BigDecimal flat_peak_amount11;// 金额
    private BigDecimal peak_charge11;// 电量
    private BigDecimal loss_peak_charge11;// 计损电量
    private BigDecimal peak_amount11;// 金额
    private BigDecimal low_peak_charge11;// 电量
    private BigDecimal loss_low_peak_charge11;// 计损电量
    private BigDecimal low_peak_amount11;// 金额
    private String time12;// 计费时段
    private BigDecimal sharp_peak_charge12;// 电量
    private BigDecimal loss_sharp_peak_charge12;// 计损电量
    private BigDecimal sharp_peak_amount12;// 金额
    private BigDecimal flat_peak_charge12;// 电量
    private BigDecimal loss_flat_peak_char12;// 计损电量
    private BigDecimal flat_peak_amount12;// 金额
    private BigDecimal peak_charge12;// 电量
    private BigDecimal loss_peak_charge12;// 计损电量
    private BigDecimal peak_amount12;// 金额
    private BigDecimal low_peak_charge12;// 电量
    private BigDecimal loss_low_peak_charge12;// 计损电量
    private BigDecimal low_peak_amount12;// 金额
    private BigDecimal valley_charge1;// 谷电量
    private BigDecimal loss_valley_charge1;// 计损谷电量
    private BigDecimal valley_amount1;// 谷金额
    private BigDecimal spike_charge2;// 尖电量
    private BigDecimal loss_spike_charge2;// 计损尖电量
    private BigDecimal spike_amount2;// 尖金额
    private BigDecimal flat_charge2;// 平电量
    private BigDecimal loss_flat_charge2;// 计损平电量
    private BigDecimal flat_amount2;// 平金额
    private BigDecimal peak_charge2;// 峰电量
    private BigDecimal loss_peak_charge2;// 计损峰电量
    private BigDecimal peak_amount2;// 峰金额
    private BigDecimal valley_charge2;// 谷电量
    private BigDecimal loss_valley_charge2;// 计损谷电量
    private BigDecimal valley_amount2;// 谷金额
    private BigDecimal spike_charge3;// 尖电量
    private BigDecimal loss_spike_charge3;// 计损尖电量
    private BigDecimal spike_amount3;// 尖金额
    private BigDecimal flat_charge3;// 平电量
    private BigDecimal loss_flat_charge3;// 计损平电量
    private BigDecimal flat_amount3;// 平金额
    private BigDecimal peak_charge3;// 峰电量
    private BigDecimal loss_peak_charge3;// 计损峰电量
    private BigDecimal peak_amount3;// 峰金额
    private BigDecimal valley_charge3;// 谷电量
    private BigDecimal loss_valley_charge3;// 计损谷电量
    private BigDecimal valley_amount3;// 谷金额
    private BigDecimal spike_charge4;// 尖电量
    private BigDecimal loss_spike_charge4;// 计损尖电量
    private BigDecimal spike_amount4;// 尖金额
    private BigDecimal flat_charge4;// 平电量
    private BigDecimal loss_flat_charge4;// 计损平电量
    private BigDecimal flat_amount4;// 平金额
    private BigDecimal peak_charge4;// 峰电量
    private BigDecimal loss_peak_charge4;// 计损峰电量
    private BigDecimal peak_amount4;// 峰金额
    private BigDecimal valley_charge4;// 谷电量
    private BigDecimal loss_valley_charge4;// 计损谷电量
    private BigDecimal valley_amount4;// 谷金额
    private BigDecimal spike_charge5;// 尖电量
    private BigDecimal loss_spike_charge5;// 计损尖电量
    private BigDecimal spike_amount5;// 尖金额
    private BigDecimal flat_charge5;// 平电量
    private BigDecimal loss_flat_charge5;// 计损平电量
    private BigDecimal flat_amount5;// 平金额
    private BigDecimal peak_charge5;// 峰电量
    private BigDecimal loss_peak_charge5;// 计损峰电量
    private BigDecimal peak_amount5;// 峰金额
    private BigDecimal valley_charge5;// 谷电量
    private BigDecimal loss_valley_charge5;// 计损谷电量
    private BigDecimal valley_amount5;// 谷金额
    private BigDecimal spike_charge6;// 尖电量
    private BigDecimal loss_spike_charge6;// 计损尖电量
    private BigDecimal spike_amount6;// 尖金额
    private BigDecimal flat_charge6;// 平电量
    private BigDecimal loss_flat_charge6;// 计损平电量
    private BigDecimal flat_amount6;// 平金额
    private BigDecimal peak_charge6;// 峰电量
    private BigDecimal loss_peak_charge6;// 计损峰电量
    private BigDecimal peak_amount6;// 峰金额
    private BigDecimal valley_charge6;// 谷电量
    private BigDecimal loss_valley_charge6;// 计损谷电量
    private BigDecimal valley_amount6;// 谷金额
    private BigDecimal spike_charge7;// 尖电量
    private BigDecimal loss_spike_charge7;// 计损尖电量
    private BigDecimal spike_amount7;// 尖金额
    private BigDecimal flat_charge7;// 平电量
    private BigDecimal loss_flat_charge7;// 计损平电量
    private BigDecimal flat_amount7;// 平金额
    private BigDecimal peak_charge7;// 峰电量
    private BigDecimal loss_peak_charge7;// 计损峰电量
    private BigDecimal peak_amount7;// 峰金额
    private BigDecimal valley_charge7;// 谷电量
    private BigDecimal loss_valley_charge7;// 计损谷电量
    private BigDecimal valley_amount7;// 谷金额
    private BigDecimal spike_charge8;// 尖电量
    private BigDecimal loss_spike_charge8;// 计损尖电量
    private BigDecimal spike_amount8;// 尖金额
    private BigDecimal flat_charge8;// 平电量
    private BigDecimal loss_flat_charge8;// 计损平电量
    private BigDecimal flat_amount8;// 平金额
    private BigDecimal peak_charge8;// 峰电量
    private BigDecimal loss_peak_charge8;// 计损峰电量
    private BigDecimal peak_amount8;// 峰金额
    private BigDecimal valley_charge8;// 谷电量
    private BigDecimal loss_valley_charge8;// 计损谷电量
    private BigDecimal valley_amount8;// 谷金额
    private BigDecimal spike_charge9;// 尖电量
    private BigDecimal loss_spike_charge9;// 计损尖电量
    private BigDecimal spike_amount9;// 尖金额
    private BigDecimal flat_charge9;// 平电量
    private BigDecimal loss_flat_charge9;// 计损平电量
    private BigDecimal flat_amount9;// 平金额
    private BigDecimal peak_charge9;// 峰电量
    private BigDecimal loss_peak_charge9;// 计损峰电量
    private BigDecimal peak_amount9;// 峰金额
    private BigDecimal valley_charge9;// 谷电量
    private BigDecimal loss_valley_charge9;// 计损谷电量
    private BigDecimal valley_amount9;// 谷金额
    private BigDecimal spike_charge10;// 尖电量
    private BigDecimal loss_spike_charge10;// 计损尖电量
    private BigDecimal spike_amount10;// 尖金额
    private BigDecimal flat_charge10;// 平电量
    private BigDecimal loss_flat_charge10;// 计损平电量
    private BigDecimal flat_amount10;// 平金额
    private BigDecimal peak_charge10;// 峰电量
    private BigDecimal loss_peak_charge10;// 计损峰电量
    private BigDecimal peak_amount10;// 峰金额
    private BigDecimal valley_charge10;// 谷电量
    private BigDecimal loss_valley_charge10;// 计损谷电量
    private BigDecimal valley_amount10;// 谷金额
    private BigDecimal spike_charge11;// 尖电量
    private BigDecimal loss_spike_charge11;// 计损尖电量
    private BigDecimal spike_amount11;// 尖金额
    private BigDecimal flat_charge11;// 平电量
    private BigDecimal loss_flat_charge11;// 计损平电量
    private BigDecimal flat_amount11;// 平金额
    private BigDecimal peak_charge11;// 峰电量
    private BigDecimal loss_peak_charge11;// 计损峰电量
    private BigDecimal peak_amount11;// 峰金额
    private BigDecimal valley_charge11;// 谷电量
    private BigDecimal loss_valley_charge11;// 计损谷电量
    private BigDecimal valley_amount11;// 谷金额
    private BigDecimal spike_charge12;// 尖电量
    private BigDecimal loss_spike_charge12;// 计损尖电量
    private BigDecimal spike_amount12;// 尖金额
    private BigDecimal flat_charge12;// 平电量
    private BigDecimal loss_flat_charge12;// 计损平电量
    private BigDecimal flat_amount12;// 平金额
    private BigDecimal peak_charge12;// 峰电量
    private BigDecimal loss_peak_charge12;// 计损峰电量
    private BigDecimal peak_amount12;// 峰金额
    private BigDecimal valley_charge12;// 谷电量
    private BigDecimal loss_valley_charge12;// 计损谷电量
    private BigDecimal valley_amount12;// 谷金额
}
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/dto/MongoChargingOrderQuery.java
New file
@@ -0,0 +1,35 @@
package com.ruoyi.common.core.dto;
import com.ruoyi.common.core.web.page.BasePage;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel(value = "ChargingOrderQuery充电桩订单查询对象",description = "管理后台充电桩订单查询对象")
public class MongoChargingOrderQuery extends BasePage {
    @ApiModelProperty(value = "订单编号")
    private String code;
    @ApiModelProperty(value = "订单类型(1=充电订单(小程序),2=充电订单(刷卡))")
    private Integer orderType;
    @ApiModelProperty(value = "手机号")
    private String phone;
    @ApiModelProperty(value = "状态(0=未知,1=等待中,2=启动中,3=充电中,4=停止中,5=已结束)")
    private Integer status;
    @ApiModelProperty(value = "站点id")
    private Integer siteId;
    @ApiModelProperty(value = "充电桩code ")
    private String chargingPileCode;
    @ApiModelProperty(value = "充电枪code ")
    private String chargingGunCode;
    @ApiModelProperty(value = "开始时间2020-01-01 00:00:00 - 2021-01-01 23:59:59")
    private String startTime;
    @ApiModelProperty(value = "结束时间2020-01-01 00:00:00 - 2021-01-01 23:59:59")
    private String endTime;
    @ApiModelProperty(value = "订单来源 1明星 2快电 3新电途")
    private Integer orderSource;
    @ApiModelProperty(value = "用户ids 前端忽略")
    private List<Long> userIds;
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysOperlogController.java
@@ -55,7 +55,7 @@
        if(null != query.getStartTime() && null != query.getEndTime()){
            wrapper.between(SysOperLog::getOperTime, query.getStartTime(), query.getEndTime());
        }
        PageInfo<SysOperLog> page = operLogService.page(pageInfo, wrapper);
        PageInfo<SysOperLog> page = operLogService.page(pageInfo, wrapper.orderByDesc(SysOperLog::getOperTime));
        return AjaxResult.success(page);
    }
    
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -537,11 +537,11 @@
                data1.addAll(data);
            }
            Set<Integer> siteIds = new HashSet<>(data1);
            sysUser.setSiteIds(siteIds.stream().collect(Collectors.toList()));
            List<Site> data = siteClient.getSiteByIds(siteIds.stream().collect(Collectors.toList())).getData();
            if (null != data) {
                List<String> siteNames = data.stream().map(Site::getName).collect(Collectors.toList());
                sysUser.setSiteNames(siteNames);
                sysUser.setSiteIds(data.stream().map(Site::getId).collect(Collectors.toList()));
            }
            List<String> roleNames = new ArrayList<>();
            for (SysUserRole sysUserRole : list1) {
ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
@@ -54,7 +54,7 @@
    type: nacos
    nacos:
      # 开发环境
      server-addr: 127.0.0.1:8848
      server-addr: 192.168.110.169:8848
      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
      group: DEFAULT_GROUP
      data-id: seata-server.properties
@@ -72,7 +72,7 @@
    nacos:
      application: seata-server
      # 开发环境
      server-addr: 127.0.0.1:8848
      server-addr: 192.168.110.169:8848
      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
      group: DEFAULT_GROUP
      username: nacos
@@ -87,7 +87,7 @@
    nacos:
      discovery:
        # 开发环境
        server-addr: 127.0.0.1:8848 # nacos注册中心地址
        server-addr: 192.168.110.169:8848 # nacos注册中心地址
        namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间
        group: DEFAULT_GROUP
        application: seata-server #Nacos 中 Seata 名称
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
@@ -370,7 +370,7 @@
            }
            if(appUser.getCityCode()!=null){
                Region data = otherClient.getRegionBuyCode(appUser.getCityCode()).getData();
                appUser.setProvince(data.getName());
                appUser.setCity(data.getName());
            }
            //拿到最新的tagId
            TAppUserTag one = appUserTagService.lambdaQuery().eq(TAppUserTag::getAppUserId, appUser.getId()).orderByDesc(TAppUserTag::getCreateTime).last("limit 1").one();
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java
@@ -284,12 +284,12 @@
    public AjaxResult delPartner(List<Integer> ids) {
        //查询有无关联数据
        //站点
        long count = siteService.count(new LambdaQueryWrapper<Site>().in(Site::getPartnerId, Arrays.asList(ids)).eq(Site::getDelFlag, 0));
        long count = siteService.count(new LambdaQueryWrapper<Site>().in(Site::getPartnerId, ids).eq(Site::getDelFlag, 0));
        if(count > 0){
            return AjaxResult.error("该合作商已关联站点不可删除!");
            return AjaxResult.error("该合作商已关联站点不可删除");
        }
        //充电桩
        long count1 = chargingPileService.count(new LambdaQueryWrapper<TChargingPile>().in(TChargingPile::getPartnerId, Arrays.asList(ids)).eq(TChargingPile::getDelFlag, 0));
        long count1 = chargingPileService.count(new LambdaQueryWrapper<TChargingPile>().in(TChargingPile::getPartnerId, ids).eq(TChargingPile::getDelFlag, 0));
        if(count1 > 0){
            return AjaxResult.error("该合作商已关联充电桩不可删除!");
        }
@@ -298,7 +298,7 @@
            if(null == partner){
                return AjaxResult.error("删除失败");
            }
            this.removeById(partner);
            this.removeById(id);
            SysUser user = sysUserClient.queryUserByUserName(partner.getAccount()).getData();
            user.setDelFlag("2");
            sysUserClient.updateUser(user);
@@ -338,6 +338,9 @@
    @Override
    public GetPermissionConfigurationDTO getPermissionConfiguration(Integer siteId, Integer partnerId) {
        Partner partner = this.getById(partnerId);
        if(null == partner){
            throw new RuntimeException("该站点合作商无效");
        }
        GetPermissionConfigurationDTO dto = new GetPermissionConfigurationDTO();
        dto.setPermissionRemarks(partner.getPermissionRemarks());
        List<TPartnerSite> list = partnerSiteService.list(new LambdaQueryWrapper<TPartnerSite>()
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingGunServiceImpl.java
@@ -4,6 +4,11 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.chargingPile.api.dto.TChargingGunDTO;
import com.ruoyi.chargingPile.api.feignClient.SiteClient;
import com.ruoyi.chargingPile.api.model.Site;
import com.ruoyi.chargingPile.api.model.TAccountingStrategy;
import com.ruoyi.chargingPile.api.feignClient.SiteClient;
import com.ruoyi.chargingPile.api.model.Site;
import com.ruoyi.chargingPile.api.model.TChargingGun;
import com.ruoyi.chargingPile.api.model.TChargingPile;
import com.ruoyi.chargingPile.api.query.TChargingGunQuery;
@@ -11,6 +16,7 @@
import com.ruoyi.chargingPile.domain.SiteMenu;
import com.ruoyi.chargingPile.mapper.TChargingGunMapper;
import com.ruoyi.chargingPile.service.IPartnerService;
import com.ruoyi.chargingPile.service.TAccountingStrategyService;
import com.ruoyi.chargingPile.service.TChargingGunService;
import com.ruoyi.chargingPile.service.TChargingPileService;
import com.ruoyi.common.core.enums.status.ChargingGunModeEnum;
@@ -66,7 +72,10 @@
    @Resource
    private SendMessageClient sendMessageClient;
    @Resource
    private SiteClient siteClient;
    
    
    @Override
@@ -99,6 +108,10 @@
            tChargingGunVO.setAuthQueryInfo(roleType == 1 ? true : partnerService.authMenu(objectId, siteId, SiteMenu.CHARGING_GUN_QUERY_INFO));
            tChargingGunVO.setAuthUpdate(roleType == 1 ? true : partnerService.authMenu(objectId, siteId, SiteMenu.CHARGING_GUN_UPDATE));
            tChargingGunVO.setAuthViewRates(roleType == 1 ? true : partnerService.authMenu(objectId, siteId, SiteMenu.CHARGING_GUN_VIEW_RATES));
            if(null == tChargingGunVO.getAccountingStrategyId()){
                Site site = siteClient.getSiteByIds(Arrays.asList(tChargingGunVO.getSiteId())).getData().get(0);
                tChargingGunVO.setAccountingStrategyId(site.getAccountingStrategyId());
            }
        }
        pageInfo.setRecords(list);
        return pageInfo;
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TFaultMessageServiceImpl.java
@@ -18,6 +18,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.List;
/**
@@ -52,6 +53,7 @@
            siteName = siteName.substring(0,10);
        }
        chargingPileNotificationService.saveData(4,dto.getSiteId(),dto.getChargingPileId(),site.getPhone(),"检测到"+siteName+"..."+chargingPile.getNumber()+"号桩设备离线,请及时查看处理!");
        dto.setDownTime(LocalDateTime.now());
        this.save(dto);
    }
    
ruoyi-service/ruoyi-chargingPile/src/main/resources/bootstrap.yml
@@ -55,7 +55,7 @@
    type: nacos
    nacos:
      # 开发环境
      server-addr: 127.0.0.1:8848
      server-addr: 192.168.110.169:8848
      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
      group: DEFAULT_GROUP
      data-id: seata-server.properties
@@ -73,7 +73,7 @@
    nacos:
      application: seata-server
      # 开发环境
      server-addr: 127.0.0.1:8848
      server-addr: 192.168.110.169:8848
      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
      group: DEFAULT_GROUP
      username: nacos
@@ -88,7 +88,7 @@
    nacos:
      discovery:
        # 开发环境
        server-addr: 127.0.0.1:8848 # nacos注册中心地址
        server-addr: 192.168.110.169:8848
        namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间
        group: DEFAULT_GROUP
        application: seata-server #Nacos 中 Seata 名称
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/UploadRealTimeMonitoringDataController.java
@@ -1,17 +1,15 @@
package com.ruoyi.integration.controller;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData;
import com.ruoyi.integration.mongodb.service.UploadRealTimeMonitoringDataService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.ruoyi.common.core.dto.MongoChargingOrderQuery;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
/**
 * <p>
@@ -75,8 +73,8 @@
    @PostMapping(value = "/getAll")
    public R<List<UploadRealTimeMonitoringData>> getAll(@RequestParam("values") Set<String> values,@RequestParam("page") Integer page, @RequestParam("size")Integer size){
        List<UploadRealTimeMonitoringData> list = uploadRealTimeMonitoringDataService.getDataAll(values,page,size);
    public R<List<UploadRealTimeMonitoringData>> getAll(@RequestBody MongoChargingOrderQuery mongoChargingOrderQuery) throws ParseException {
        List<UploadRealTimeMonitoringData> list = uploadRealTimeMonitoringDataService.getDataAll(mongoChargingOrderQuery);
        return R.ok(list);
    }
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/UploadRealTimeMonitoringDataService.java
@@ -1,11 +1,11 @@
package com.ruoyi.integration.mongodb.service;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData;
import com.ruoyi.integration.mongodb.base.BaseService;
import com.ruoyi.common.core.dto.MongoChargingOrderQuery;
import java.text.ParseException;
import java.util.List;
import java.util.Set;
public interface UploadRealTimeMonitoringDataService extends BaseService<UploadRealTimeMonitoringData> {
    
@@ -15,7 +15,7 @@
     * @return
     */
    List<UploadRealTimeMonitoringData> getDataByOrderCode(String code);
    List<UploadRealTimeMonitoringData> getDataAll(Set<String> values, Integer page, Integer size);
    List<UploadRealTimeMonitoringData> getDataAll(MongoChargingOrderQuery mongoChargingOrderQuery) throws ParseException;
    /**
     * 查询订单最新一条数据
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java
@@ -1,10 +1,10 @@
package com.ruoyi.integration.mongodb.service.impl;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData;
import com.ruoyi.integration.iotda.constant.IotConstant;
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.PageRequest;
import org.springframework.data.domain.Pageable;
@@ -14,8 +14,10 @@
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Set;
@Service
public class UploadRealTimeMonitoringDataServiceImpl implements UploadRealTimeMonitoringDataService {
@@ -58,13 +60,54 @@
    }
    @Override
    public List<UploadRealTimeMonitoringData> getDataAll(Set<String> values, Integer page, Integer size) {
    public List<UploadRealTimeMonitoringData> getDataAll(MongoChargingOrderQuery mongoChargingOrderQuery) throws ParseException {
        Query query = new Query();
        if (!values.isEmpty()){
            query.addCriteria(Criteria.where("transaction_serial_number").in(values));
//        if (!values.isEmpty()){
//            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" 表示不区分大小写
        }
        if (mongoChargingOrderQuery.getOrderType() !=null){
            query.addCriteria(Criteria.where("order_type").is(mongoChargingOrderQuery.getOrderType()));
        }
        if (mongoChargingOrderQuery.getSiteId() != null){
            query.addCriteria(Criteria.where("site_id").is(mongoChargingOrderQuery.getSiteId()));
        }
        if (mongoChargingOrderQuery.getChargingPileCode() != null && !mongoChargingOrderQuery.getChargingPileCode().isEmpty()) {
            query.addCriteria(Criteria.where("charging_pile_code").is(mongoChargingOrderQuery.getChargingPileCode()));
        }
        if (mongoChargingOrderQuery.getChargingGunCode() != null && !mongoChargingOrderQuery.getChargingGunCode().isEmpty()){
            query.addCriteria(Criteria.where("charging_gun_code").is(mongoChargingOrderQuery.getChargingGunCode()));
        }
        if (mongoChargingOrderQuery.getStatus() != null){
            query.addCriteria(Criteria.where("status").is(mongoChargingOrderQuery.getStatus()));
        }
        if (mongoChargingOrderQuery.getStartTime() != null) {
            String[] split = mongoChargingOrderQuery.getStartTime().split(" - ");
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date start = dateFormat.parse(split[0]);
            Date end = dateFormat.parse(split[1]);
            query.addCriteria(Criteria.where("startTime").gte(start).lt(end));
        }
        if (mongoChargingOrderQuery.getEndTime() != null && mongoChargingOrderQuery.getEndTime() != null) {
            String[] split = mongoChargingOrderQuery.getEndTime().split(" - ");
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date start = dateFormat.parse(split[0]);
            Date end = dateFormat.parse(split[1]);
            query.addCriteria(Criteria.where("lastTime").gte(start).lt(end));
        }
        // 设置分页
        Pageable pageable = PageRequest.of(page, size);
        Pageable pageable = PageRequest.of(mongoChargingOrderQuery.getPageCurr(), mongoChargingOrderQuery.getPageSize());
        query.with(pageable);
        List<UploadRealTimeMonitoringData> uploadRealTimeMonitoringData = mongoTemplate.find(
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/TransactionRecordMessage.java
@@ -19,172 +19,169 @@
    private String charging_gun_code;// 抢号
    private String start_time;// 开始时间
    private String end_time;// 结束时间
    private BigDecimal total_initial_value;// 电表总起值
    private BigDecimal total_stop_value;// 电表总止值
    private BigDecimal total_electricity;// 总电量
    private BigDecimal loss_total_electricity;// 计损总电量
    private BigDecimal payment_amount;// 消费金额
    private String vin;// 电动汽车唯一标识
    private Integer start_method;// 交易标识(1:app 启动,2:卡启动,4:离线卡启动,5: vin 码启动充电)
    private BigDecimal pay_amount;// 消费金额
    private Integer method;// 交易标识(1:app 启动,2:卡启动,4:离线卡启动,5: vin 码启动充电)
    private String trade_date;// 交易日期、时间
    private Integer stop_reason;// 停止原因
    private String physical_card_number;// 物理卡号
    private String time1;// 计费时段
    private BigDecimal sharp_peak_charge1;// 尖电量
    private BigDecimal loss_sharp_peak_charge1;// 计损尖电量
    private BigDecimal sharp_peak_amount1;// 尖金额
    private BigDecimal flat_peak_charge1;// 平电量
    private BigDecimal loss_flat_peak_char1;// 计损平电量
    private BigDecimal flat_peak_amount1;// 平金额
    private String billing_model_code1;// 计费模型编号
    private BigDecimal spike_charge1;// 尖电量
    private BigDecimal loss_spike_charge1;// 计损尖电量
    private BigDecimal spike_amount1;// 尖金额
    private BigDecimal flat_charge1;// 平电量
    private BigDecimal loss_flat_charge1;// 计损平电量
    private BigDecimal flat_amount1;// 平金额
    private BigDecimal peak_charge1;// 峰电量
    private BigDecimal loss_peak_charge1;// 计损峰电量
    private BigDecimal peak_amount1;// 峰金额
    private BigDecimal low_peak_charge1;// 谷电量
    private BigDecimal loss_low_peak_charge1;// 计损谷电量
    private BigDecimal low_peak_amount1;// 谷金额
    private String time2;// 计费时段
    private BigDecimal sharp_peak_charge2;// 电量
    private BigDecimal loss_sharp_peak_charge2;// 计损电量
    private BigDecimal sharp_peak_amount2;// 金额
    private BigDecimal flat_peak_charge2;// 电量
    private BigDecimal loss_flat_peak_char2;// 计损电量
    private BigDecimal flat_peak_amount2;// 金额
    private BigDecimal peak_charge2;// 电量
    private BigDecimal loss_peak_charge2;// 计损电量
    private BigDecimal peak_amount2;// 金额
    private BigDecimal low_peak_charge2;// 电量
    private BigDecimal loss_low_peak_charge2;// 计损电量
    private BigDecimal low_peak_amount2;// 金额
    private String time3;// 计费时段
    private BigDecimal sharp_peak_charge3;// 电量
    private BigDecimal loss_sharp_peak_charge3;// 计损电量
    private BigDecimal sharp_peak_amount3;// 金额
    private BigDecimal flat_peak_charge3;// 电量
    private BigDecimal loss_flat_peak_char3;// 计损电量
    private BigDecimal flat_peak_amount3;// 金额
    private BigDecimal peak_charge3;// 电量
    private BigDecimal loss_peak_charge3;// 计损电量
    private BigDecimal peak_amount3;// 金额
    private BigDecimal low_peak_charge3;// 电量
    private BigDecimal loss_low_peak_charge3;// 计损电量
    private BigDecimal low_peak_amount3;// 金额
    private String time4;// 计费时段
    private BigDecimal sharp_peak_charge4;// 电量
    private BigDecimal loss_sharp_peak_charge4;// 计损电量
    private BigDecimal sharp_peak_amount4;// 金额
    private BigDecimal flat_peak_charge4;// 电量
    private BigDecimal loss_flat_peak_char4;// 计损电量
    private BigDecimal flat_peak_amount4;// 金额
    private BigDecimal peak_charge4;// 电量
    private BigDecimal loss_peak_charge4;// 计损电量
    private BigDecimal peak_amount4;// 金额
    private BigDecimal low_peak_charge4;// 电量
    private BigDecimal loss_low_peak_charge4;// 计损电量
    private BigDecimal low_peak_amount4;// 金额
    private String time5;// 计费时段
    private BigDecimal sharp_peak_charge5;// 电量
    private BigDecimal loss_sharp_peak_charge5;// 计损电量
    private BigDecimal sharp_peak_amount5;// 金额
    private BigDecimal flat_peak_charge5;// 电量
    private BigDecimal loss_flat_peak_char5;// 计损电量
    private BigDecimal flat_peak_amount5;// 金额
    private BigDecimal peak_charge5;// 电量
    private BigDecimal loss_peak_charge5;// 计损电量
    private BigDecimal peak_amount5;// 金额
    private BigDecimal low_peak_charge5;// 电量
    private BigDecimal loss_low_peak_charge5;// 计损电量
    private BigDecimal low_peak_amount5;// 金额
    private String time6;// 计费时段
    private BigDecimal sharp_peak_charge6;// 电量
    private BigDecimal loss_sharp_peak_charge6;// 计损电量
    private BigDecimal sharp_peak_amount6;// 金额
    private BigDecimal flat_peak_charge6;// 电量
    private BigDecimal loss_flat_peak_char6;// 计损电量
    private BigDecimal flat_peak_amount6;// 金额
    private BigDecimal peak_charge6;// 电量
    private BigDecimal loss_peak_charge6;// 计损电量
    private BigDecimal peak_amount6;// 金额
    private BigDecimal low_peak_charge6;// 电量
    private BigDecimal loss_low_peak_charge6;// 计损电量
    private BigDecimal low_peak_amount6;// 金额
    private String time7;// 计费时段
    private BigDecimal sharp_peak_charge7;// 电量
    private BigDecimal loss_sharp_peak_charge7;// 计损电量
    private BigDecimal sharp_peak_amount7;// 金额
    private BigDecimal flat_peak_charge7;// 电量
    private BigDecimal loss_flat_peak_char7;// 计损电量
    private BigDecimal flat_peak_amount7;// 金额
    private BigDecimal peak_charge7;// 电量
    private BigDecimal loss_peak_charge7;// 计损电量
    private BigDecimal peak_amount7;// 金额
    private BigDecimal low_peak_charge7;// 电量
    private BigDecimal loss_low_peak_charge7;// 计损电量
    private BigDecimal low_peak_amount7;// 金额
    private String time8;// 计费时段
    private BigDecimal sharp_peak_charge8;// 电量
    private BigDecimal loss_sharp_peak_charge8;// 计损电量
    private BigDecimal sharp_peak_amount8;// 金额
    private BigDecimal flat_peak_charge8;// 电量
    private BigDecimal loss_flat_peak_char8;// 计损电量
    private BigDecimal flat_peak_amount8;// 金额
    private BigDecimal peak_charge8;// 电量
    private BigDecimal loss_peak_charge8;// 计损电量
    private BigDecimal peak_amount8;// 金额
    private BigDecimal low_peak_charge8;// 电量
    private BigDecimal loss_low_peak_charge8;// 计损电量
    private BigDecimal low_peak_amount8;// 金额
    private String time9;// 计费时段
    private BigDecimal sharp_peak_charge9;// 电量
    private BigDecimal loss_sharp_peak_charge9;// 计损电量
    private BigDecimal sharp_peak_amount9;// 金额
    private BigDecimal flat_peak_charge9;// 电量
    private BigDecimal loss_flat_peak_char9;// 计损电量
    private BigDecimal flat_peak_amount9;// 金额
    private BigDecimal peak_charge9;// 电量
    private BigDecimal loss_peak_charge9;// 计损电量
    private BigDecimal peak_amount9;// 金额
    private BigDecimal low_peak_charge9;// 电量
    private BigDecimal loss_low_peak_charge9;// 计损电量
    private BigDecimal low_peak_amount9;// 金额
    private String time10;// 计费时段
    private BigDecimal sharp_peak_charge10;// 电量
    private BigDecimal loss_sharp_peak_charge10;// 计损电量
    private BigDecimal sharp_peak_amount10;// 金额
    private BigDecimal flat_peak_charge10;// 电量
    private BigDecimal loss_flat_peak_char10;// 计损电量
    private BigDecimal flat_peak_amount10;// 金额
    private BigDecimal peak_charge10;// 电量
    private BigDecimal loss_peak_charge10;// 计损电量
    private BigDecimal peak_amount10;// 金额
    private BigDecimal low_peak_charge10;// 电量
    private BigDecimal loss_low_peak_charge10;// 计损电量
    private BigDecimal low_peak_amount10;// 金额
    private String time11;// 计费时段
    private BigDecimal sharp_peak_charge11;// 电量
    private BigDecimal loss_sharp_peak_charge11;// 计损电量
    private BigDecimal sharp_peak_amount11;// 金额
    private BigDecimal flat_peak_charge11;// 电量
    private BigDecimal loss_flat_peak_char11;// 计损电量
    private BigDecimal flat_peak_amount11;// 金额
    private BigDecimal peak_charge11;// 电量
    private BigDecimal loss_peak_charge11;// 计损电量
    private BigDecimal peak_amount11;// 金额
    private BigDecimal low_peak_charge11;// 电量
    private BigDecimal loss_low_peak_charge11;// 计损电量
    private BigDecimal low_peak_amount11;// 金额
    private String time12;// 计费时段
    private BigDecimal sharp_peak_charge12;// 电量
    private BigDecimal loss_sharp_peak_charge12;// 计损电量
    private BigDecimal sharp_peak_amount12;// 金额
    private BigDecimal flat_peak_charge12;// 电量
    private BigDecimal loss_flat_peak_char12;// 计损电量
    private BigDecimal flat_peak_amount12;// 金额
    private BigDecimal peak_charge12;// 电量
    private BigDecimal loss_peak_charge12;// 计损电量
    private BigDecimal peak_amount12;// 金额
    private BigDecimal low_peak_charge12;// 电量
    private BigDecimal loss_low_peak_charge12;// 计损电量
    private BigDecimal low_peak_amount12;// 金额
    private BigDecimal valley_charge1;// 谷电量
    private BigDecimal loss_valley_charge1;// 计损谷电量
    private BigDecimal valley_amount1;// 谷金额
    private String billing_model_code2;// 计费模型编号
    private BigDecimal spike_charge2;// 尖电量
    private BigDecimal loss_spike_charge2;// 计损尖电量
    private BigDecimal spike_amount2;// 尖金额
    private BigDecimal flat_charge2;// 平电量
    private BigDecimal loss_flat_charge2;// 计损平电量
    private BigDecimal flat_amount2;// 平金额
    private BigDecimal peak_charge2;// 峰电量
    private BigDecimal loss_peak_charge2;// 计损峰电量
    private BigDecimal peak_amount2;// 峰金额
    private BigDecimal valley_charge2;// 谷电量
    private BigDecimal loss_valley_charge2;// 计损谷电量
    private BigDecimal valley_amount2;// 谷金额
    private String billing_model_code3;// 计费模型编号
    private BigDecimal spike_charge3;// 尖电量
    private BigDecimal loss_spike_charge3;// 计损尖电量
    private BigDecimal spike_amount3;// 尖金额
    private BigDecimal flat_charge3;// 平电量
    private BigDecimal loss_flat_charge3;// 计损平电量
    private BigDecimal flat_amount3;// 平金额
    private BigDecimal peak_charge3;// 峰电量
    private BigDecimal loss_peak_charge3;// 计损峰电量
    private BigDecimal peak_amount3;// 峰金额
    private BigDecimal valley_charge3;// 谷电量
    private BigDecimal loss_valley_charge3;// 计损谷电量
    private BigDecimal valley_amount3;// 谷金额
    private String billing_model_code4;// 计费模型编号
    private BigDecimal spike_charge4;// 尖电量
    private BigDecimal loss_spike_charge4;// 计损尖电量
    private BigDecimal spike_amount4;// 尖金额
    private BigDecimal flat_charge4;// 平电量
    private BigDecimal loss_flat_charge4;// 计损平电量
    private BigDecimal flat_amount4;// 平金额
    private BigDecimal peak_charge4;// 峰电量
    private BigDecimal loss_peak_charge4;// 计损峰电量
    private BigDecimal peak_amount4;// 峰金额
    private BigDecimal valley_charge4;// 谷电量
    private BigDecimal loss_valley_charge4;// 计损谷电量
    private BigDecimal valley_amount4;// 谷金额
    private String billing_model_code5;// 计费模型编号
    private BigDecimal spike_charge5;// 尖电量
    private BigDecimal loss_spike_charge5;// 计损尖电量
    private BigDecimal spike_amount5;// 尖金额
    private BigDecimal flat_charge5;// 平电量
    private BigDecimal loss_flat_charge5;// 计损平电量
    private BigDecimal flat_amount5;// 平金额
    private BigDecimal peak_charge5;// 峰电量
    private BigDecimal loss_peak_charge5;// 计损峰电量
    private BigDecimal peak_amount5;// 峰金额
    private BigDecimal valley_charge5;// 谷电量
    private BigDecimal loss_valley_charge5;// 计损谷电量
    private BigDecimal valley_amount5;// 谷金额
    private String billing_model_code6;// 计费模型编号
    private BigDecimal spike_charge6;// 尖电量
    private BigDecimal loss_spike_charge6;// 计损尖电量
    private BigDecimal spike_amount6;// 尖金额
    private BigDecimal flat_charge6;// 平电量
    private BigDecimal loss_flat_charge6;// 计损平电量
    private BigDecimal flat_amount6;// 平金额
    private BigDecimal peak_charge6;// 峰电量
    private BigDecimal loss_peak_charge6;// 计损峰电量
    private BigDecimal peak_amount6;// 峰金额
    private BigDecimal valley_charge6;// 谷电量
    private BigDecimal loss_valley_charge6;// 计损谷电量
    private BigDecimal valley_amount6;// 谷金额
    private String billing_model_code7;// 计费模型编号
    private BigDecimal spike_charge7;// 尖电量
    private BigDecimal loss_spike_charge7;// 计损尖电量
    private BigDecimal spike_amount7;// 尖金额
    private BigDecimal flat_charge7;// 平电量
    private BigDecimal loss_flat_charge7;// 计损平电量
    private BigDecimal flat_amount7;// 平金额
    private BigDecimal peak_charge7;// 峰电量
    private BigDecimal loss_peak_charge7;// 计损峰电量
    private BigDecimal peak_amount7;// 峰金额
    private BigDecimal valley_charge7;// 谷电量
    private BigDecimal loss_valley_charge7;// 计损谷电量
    private BigDecimal valley_amount7;// 谷金额
    private String billing_model_code8;// 计费模型编号
    private BigDecimal spike_charge8;// 尖电量
    private BigDecimal loss_spike_charge8;// 计损尖电量
    private BigDecimal spike_amount8;// 尖金额
    private BigDecimal flat_charge8;// 平电量
    private BigDecimal loss_flat_charge8;// 计损平电量
    private BigDecimal flat_amount8;// 平金额
    private BigDecimal peak_charge8;// 峰电量
    private BigDecimal loss_peak_charge8;// 计损峰电量
    private BigDecimal peak_amount8;// 峰金额
    private BigDecimal valley_charge8;// 谷电量
    private BigDecimal loss_valley_charge8;// 计损谷电量
    private BigDecimal valley_amount8;// 谷金额
    private String billing_model_code9;// 计费模型编号
    private BigDecimal spike_charge9;// 尖电量
    private BigDecimal loss_spike_charge9;// 计损尖电量
    private BigDecimal spike_amount9;// 尖金额
    private BigDecimal flat_charge9;// 平电量
    private BigDecimal loss_flat_charge9;// 计损平电量
    private BigDecimal flat_amount9;// 平金额
    private BigDecimal peak_charge9;// 峰电量
    private BigDecimal loss_peak_charge9;// 计损峰电量
    private BigDecimal peak_amount9;// 峰金额
    private BigDecimal valley_charge9;// 谷电量
    private BigDecimal loss_valley_charge9;// 计损谷电量
    private BigDecimal valley_amount9;// 谷金额
    private String billing_model_code10;// 计费模型编号
    private BigDecimal spike_charge10;// 尖电量
    private BigDecimal loss_spike_charge10;// 计损尖电量
    private BigDecimal spike_amount10;// 尖金额
    private BigDecimal flat_charge10;// 平电量
    private BigDecimal loss_flat_charge10;// 计损平电量
    private BigDecimal flat_amount10;// 平金额
    private BigDecimal peak_charge10;// 峰电量
    private BigDecimal loss_peak_charge10;// 计损峰电量
    private BigDecimal peak_amount10;// 峰金额
    private BigDecimal valley_charge10;// 谷电量
    private BigDecimal loss_valley_charge10;// 计损谷电量
    private BigDecimal valley_amount10;// 谷金额
    private String billing_model_code11;// 计费模型编号
    private BigDecimal spike_charge11;// 尖电量
    private BigDecimal loss_spike_charge11;// 计损尖电量
    private BigDecimal spike_amount11;// 尖金额
    private BigDecimal flat_charge11;// 平电量
    private BigDecimal loss_flat_charge11;// 计损平电量
    private BigDecimal flat_amount11;// 平金额
    private BigDecimal peak_charge11;// 峰电量
    private BigDecimal loss_peak_charge11;// 计损峰电量
    private BigDecimal peak_amount11;// 峰金额
    private BigDecimal valley_charge11;// 谷电量
    private BigDecimal loss_valley_charge11;// 计损谷电量
    private BigDecimal valley_amount11;// 谷金额
    private String billing_model_code12;// 计费模型编号
    private BigDecimal spike_charge12;// 尖电量
    private BigDecimal loss_spike_charge12;// 计损尖电量
    private BigDecimal spike_amount12;// 尖金额
    private BigDecimal flat_charge12;// 平电量
    private BigDecimal loss_flat_charge12;// 计损平电量
    private BigDecimal flat_amount12;// 平金额
    private BigDecimal peak_charge12;// 峰电量
    private BigDecimal loss_peak_charge12;// 计损峰电量
    private BigDecimal peak_amount12;// 峰金额
    private BigDecimal valley_charge12;// 谷电量
    private BigDecimal loss_valley_charge12;// 计损谷电量
    private BigDecimal valley_amount12;// 谷金额
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -1,6 +1,5 @@
package com.ruoyi.order.controller;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.google.common.collect.Lists;
import java.math.BigDecimal;
import java.math.RoundingMode;
@@ -21,29 +20,24 @@
import com.ruoyi.chargingPile.api.model.Site;
import com.ruoyi.chargingPile.api.model.TChargingGun;
import com.ruoyi.chargingPile.api.model.TChargingPile;
import com.ruoyi.chargingPile.api.model.TParkingRecord;
import com.ruoyi.chargingPile.api.vo.SiteVO;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.dto.ChargingOrderGroup;
import com.ruoyi.common.core.dto.ChargingPercentProvinceDto;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.BasePage;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.integration.api.feignClient.UploadRealTimeMonitoringDataClient;
import com.ruoyi.integration.api.model.ChargingOrderAndUploadRealTimeMonitoringDataDto;
import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData;
import com.ruoyi.order.api.model.*;
import com.ruoyi.order.api.query.ChargingOrderQuery;
import com.ruoyi.common.core.dto.MongoChargingOrderQuery;
import com.ruoyi.order.api.query.TChargingCountQuery;
import com.ruoyi.order.api.query.UploadRealTimeMonitoringDataQuery;
import com.ruoyi.order.api.vo.*;
import com.ruoyi.order.api.vo.ChargingOrderInfoVO;
import com.ruoyi.order.api.vo.ChargingOrderVO;
import com.ruoyi.order.api.vo.GetChargingOrderByLicensePlate;
import com.ruoyi.order.api.vo.TCharingOrderVO;
import com.ruoyi.order.dto.GetMyChargingOrderList;
@@ -53,18 +47,14 @@
import com.ruoyi.order.dto.OrderEvaluateVo;
import com.ruoyi.order.dto.*;
import com.ruoyi.order.service.*;
import com.ruoyi.order.service.impl.TChargingOrderServiceImpl;
import com.ruoyi.order.util.PreviousSixMonths;
import com.ruoyi.order.vo.EndOfChargePageInfo;
import com.ruoyi.payment.api.feignClient.AliPaymentClient;
import com.ruoyi.payment.api.feignClient.WxPaymentClient;
import com.ruoyi.payment.api.vo.AliQueryOrder;
import com.ruoyi.payment.api.vo.WxRefundNotifyResp;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.models.auth.In;
import jdk.nashorn.internal.runtime.ListAdapter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
@@ -73,15 +63,12 @@
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
import java.time.YearMonth;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.time.temporal.TemporalAdjusters;
import java.util.*;
import java.util.*;
import java.util.List;
import java.util.stream.Collectors;
@@ -697,31 +684,33 @@
    @ResponseBody
    @PostMapping(value = "/watch/chargingOrder")
    @ApiOperation(value = "监控订单", tags = {"管理后台-订单管理"})
    public R<List<ChargingOrderAndUploadRealTimeMonitoringDataDto>> watchChargingOrder(@RequestBody ChargingOrderQuery dto) {
        Integer page = dto.getPageCurr();
        Integer pageSize = dto.getPageSize();
        List<Long> data = appUserClient.getUserIdsByPhone(dto.getPhone()).getData();
        dto.setUserIds(data);
        dto.setPageCurr(1);
        dto.setPageSize(99999);
        TCharingOrderVO res = chargingOrderService.chargingOrder(dto);
        Map<String,TChargingOrder> map = new HashMap<>();
        //吧list放入map中
        for (ChargingOrderVO record : res.getList().getRecords()) {
            map.put(record.getCode(),record);
        }
        Set<String> strings = map.keySet();
    public R watchChargingOrder(@RequestBody MongoChargingOrderQuery mongoChargingOrderQuery) {
//        Integer page = dto.getPageCurr();
//        Integer pageSize = dto.getPageSize();
//        List<Long> data = appUserClient.getUserIdsByPhone(dto.getPhone()).getData();
//        dto.setUserIds(data);
//        dto.setPageCurr(1);
//        dto.setPageSize(99999);
//        Map<String,TChargingOrder> map = new HashMap<>();
//        //吧list放入map中
//        for (ChargingOrderVO record : res.getList().getRecords()) {
//            map.put(record.getCode(),record);
//        }
//        Set<String> strings = map.keySet();
        List<UploadRealTimeMonitoringData> data1 = uploadRealTimeMonitoringDataClient.getAll(strings, page, pageSize).getData();
        List<UploadRealTimeMonitoringData> data1 = uploadRealTimeMonitoringDataClient.getAll(mongoChargingOrderQuery).getData();
        List<ChargingOrderAndUploadRealTimeMonitoringDataDto> dtos = new ArrayList<>();
        for (UploadRealTimeMonitoringData uploadRealTimeMonitoringData : data1) {
            ChargingOrderAndUploadRealTimeMonitoringDataDto dataDto = new ChargingOrderAndUploadRealTimeMonitoringDataDto();
            BeanUtils.copyProperties(uploadRealTimeMonitoringData,dataDto);
            TChargingOrder tChargingOrder = map.get(uploadRealTimeMonitoringData.getCharging_pile_code());
            if (tChargingOrder!=null) {
                BeanUtils.copyProperties(tChargingOrder, dataDto);
            ChargingOrderQuery dto = new ChargingOrderQuery();
            TCharingOrderVO vo = chargingOrderService.chargingOrder(dto);
            ChargingOrderVO chargingOrderVO = vo.getList().getRecords().get(0);
            if (chargingOrderVO!=null) {
                BeanUtils.copyProperties(chargingOrderVO, dataDto);
            }
            dtos.add(dataDto);
        }
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/ChargingDetails.java
@@ -34,7 +34,7 @@
    @ApiModelProperty("已充电度数")
    private BigDecimal chargedDegrees;
    @ApiModelProperty("已充电时间")
    private Integer chargedTime;
    private String chargedTime;
    @ApiModelProperty("充电费用")
    private BigDecimal chargingCost;
    @ApiModelProperty("充电状态(0=未知,1=等待中,2=启动中,3=充电中,4=停止中,5=已结束)")
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -205,6 +205,7 @@
        Map<String, Object> map = new HashMap<>();
        int size = this.baseMapper.getMyChargingOrderList(appUserId, 1, null, null).size();
        map.put("number", size);
        query.setPageCurr((query.getPageCurr() - 1) * query.getPageSize());
        List<TChargingOrder> list = this.baseMapper.getMyChargingOrderList(appUserId, query.getType(), query.getPageCurr(), query.getPageSize());
        List<MyChargingOrderList> orderLists = new ArrayList<>();
        for (TChargingOrder tChargingOrder : list) {
@@ -317,6 +318,8 @@
    @Override
    public List<MyChargingOrderList> getNoInvoicedOrder(GetNoInvoicedOrder query) {
        Long appUserId = tokenService.getLoginUserApplet().getUserId();
        query.setPageCurr((query.getPageCurr() - 1) * query.getPageSize());
        List<TChargingOrder> orderList = this.baseMapper.getNoInvoicedOrder(appUserId, query.getMonth(), query.getPageCurr(), query.getPageSize());
        List<MyChargingOrderList> list = new ArrayList<>();
        for (TChargingOrder tChargingOrder : orderList) {
@@ -930,7 +933,9 @@
            chargingDetails.setCompletionRatio(data.getSoc());
            chargingDetails.setRemainingChargeTime(data.getTime_remaining());
            chargingDetails.setChargedDegrees(data.getCharging_degree());
            chargingDetails.setChargedTime(data.getCumulative_charging_time());
            Integer h = Integer.valueOf(data.getCumulative_charging_time() / 60);
            Integer m = Integer.valueOf(data.getCumulative_charging_time() % 60);
            chargingDetails.setChargedTime(String.format("%02d", h) + ":" + String.format("%02d", m));
        }
        ChargingHandshake chargingHandshake = chargingHandshakeClient.getDataByOrderCode(one.getCode()).getData();
        if(null != chargingHandshake && null != data && null != one.getAppUserCarId()){
@@ -1775,72 +1780,64 @@
        
        //获取订单的计费策略
        List<AccountingStrategyDetailOrder> accountingStrategyDetailOrderList = accountingStrategyDetailOrderClient.getAllAccountingStrategyDetailOrder(chargingOrder.getId()).getData();
        AccountingStrategyDetailOrder accountingStrategyDetailOrder = accountingStrategyDetailOrderList.get(accountingStrategyDetailOrderList.size() - 1);
        if(accountingStrategyDetailOrder.getEndTime().equals("00:00")){
            accountingStrategyDetailOrder.setEndTime("24:00");
        }
        chargingOrderAccountingStrategyService.remove(new LambdaQueryWrapper<TChargingOrderAccountingStrategy>().eq(TChargingOrderAccountingStrategy::getChargingOrderId, chargingOrder.getId()));
        for (int i = 0; i < 12; i++) {
        for (int i = 0; i < accountingStrategyDetailOrderList.size(); i++) {
            Class<? extends TransactionRecordMessageVO> clazz = vo.getClass();
            try {
                Object invoke1 = clazz.getMethod("getTime" + (i + 1)).invoke(vo);
                if(null != invoke1){
                    String[] split = invoke1.toString().split("-");
                    AccountingStrategyDetailOrder strategyDetail = accountingStrategyDetailOrderList.stream().filter(s -> s.getStartTime().equals(split[0]) && s.getEndTime().equals(split[1])).findFirst().get();
                    //阶段(1=尖阶段,2=峰阶段,3=平阶段,4=谷阶段)
                    Object invoke = null;
                    switch (strategyDetail.getType()){
                        case 1:
                            //充电度数
                            invoke = clazz.getMethod("getSharp_peak_charge" + (i + 1)).invoke(vo);
                            break;
                        case 2:
                            //充电度数
                            invoke = clazz.getMethod("getPeak_charge" + (i + 1)).invoke(vo);
                            break;
                        case 3:
                            //充电度数
                            invoke = clazz.getMethod("getFlat_peak_charge" + (i + 1)).invoke(vo);
                            break;
                        case 4:
                            //充电度数
                            invoke = clazz.getMethod("getLow_peak_charge" + (i + 1)).invoke(vo);
                            break;
                    }
                    if(null == invoke || invoke.toString().equals("0")){
                        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);
                    BigDecimal originalServicePrice = strategyDetail.getServiceCharge().multiply(Sharp_peak_charge);
                    BigDecimal serviceCharge = originalServicePrice;
                    //计算优惠金额
                    if(null != chargingOrder.getVipDiscount()){
                        serviceCharge = serviceCharge.multiply(chargingOrder.getVipDiscount().divide(new BigDecimal(10)));
                    }
                    chargingOrderAccountingStrategy.setChargingCapacity(Sharp_peak_charge);
                    chargingOrderAccountingStrategy.setPeriodElectricPrice(electrovalenc);
                    chargingOrderAccountingStrategy.setPeriodServicePrice(serviceCharge);
                    chargingOrderAccountingStrategy.setPeriodOriginalServicePrice(originalServicePrice);
                    chargingOrderAccountingStrategy.setCreateTime(LocalDateTime.now());
                    chargingOrderAccountingStrategyService.save(chargingOrderAccountingStrategy);
                    BigDecimal periodElectricPrice = chargingOrderAccountingStrategy.getPeriodElectricPrice();
                    BigDecimal periodServicePrice = chargingOrderAccountingStrategy.getPeriodOriginalServicePrice();
                    periodElectricPrice_total = periodElectricPrice_total.add(periodElectricPrice);
                    periodServicePrice_total = periodServicePrice_total.add(periodServicePrice);
                    total = total.add(periodElectricPrice).add(periodServicePrice);
                AccountingStrategyDetailOrder strategyDetail = accountingStrategyDetailOrderList.get(i);
                //阶段(1=尖阶段,2=峰阶段,3=平阶段,4=谷阶段)
                Object invoke = null;
                switch (strategyDetail.getType()){
                    case 1:
                        //充电度数
                        invoke = clazz.getMethod("getSpike_charge" + (i + 1)).invoke(vo);
                        break;
                    case 2:
                        //充电度数
                        invoke = clazz.getMethod("getPeak_charge" + (i + 1)).invoke(vo);
                        break;
                    case 3:
                        //充电度数
                        invoke = clazz.getMethod("getFlat_charge" + (i + 1)).invoke(vo);
                        break;
                    case 4:
                        //充电度数
                        invoke = clazz.getMethod("getValley_charge" + (i + 1)).invoke(vo);
                        break;
                }
                if(null == invoke || Integer.valueOf(invoke.toString()) == 0){
                    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;
                //计算优惠金额
                if(null != chargingOrder.getVipDiscount()){
                    serviceCharge = serviceCharge.multiply(chargingOrder.getVipDiscount().divide(new BigDecimal(10))).setScale(2, RoundingMode.DOWN);
                }
                chargingOrderAccountingStrategy.setChargingCapacity(sharp_peak_charge);
                chargingOrderAccountingStrategy.setPeriodElectricPrice(electrovalenc);
                chargingOrderAccountingStrategy.setPeriodServicePrice(serviceCharge);
                chargingOrderAccountingStrategy.setPeriodOriginalServicePrice(originalServicePrice);
                chargingOrderAccountingStrategy.setCreateTime(LocalDateTime.now());
                chargingOrderAccountingStrategyService.save(chargingOrderAccountingStrategy);
                BigDecimal periodElectricPrice = chargingOrderAccountingStrategy.getPeriodElectricPrice();
                BigDecimal periodServicePrice = chargingOrderAccountingStrategy.getPeriodOriginalServicePrice();
                periodElectricPrice_total = periodElectricPrice_total.add(periodElectricPrice);
                periodServicePrice_total = periodServicePrice_total.add(periodServicePrice);
                total = total.add(periodElectricPrice.add(periodServicePrice));
            } catch (IllegalAccessException e) {
                throw new RuntimeException(e);
            } catch (InvocationTargetException e) {
@@ -1901,11 +1898,12 @@
        order.setStartTime(LocalDateTime.parse(vo.getStart_time(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS")));
        order.setEndTime(LocalDateTime.parse(vo.getEnd_time(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS")));
        order.setStatus(5);
        order.setOrderAmount(orderAmount.setScale(2, RoundingMode.DOWN));
        order.setVipDiscountAmount(discountAmount.setScale(2, RoundingMode.DOWN));
        order.setServiceCharge(periodServicePrice_total.setScale(2, RoundingMode.DOWN));
        order.setElectrovalence(periodElectricPrice_total.setScale(2, RoundingMode.DOWN));
        order.setOrderAmount(orderAmount);
        order.setVipDiscountAmount(discountAmount);
        order.setServiceCharge(periodServicePrice_total);
        order.setElectrovalence(periodElectricPrice_total);
        order.setChargingCapacity(vo.getTotal_electricity());
        order.setElectricity(vo.getTotal_electricity());
        
        //计算优惠券
        if(null != chargingOrder.getAppCouponId()){
@@ -1942,8 +1940,8 @@
                }
            }
        }
        order.setPaymentAmount(payAmount.setScale(2, RoundingMode.DOWN));
        order.setRefundAmount(refundAmount.setScale(2, RoundingMode.DOWN));
        order.setPaymentAmount(payAmount);
        order.setRefundAmount(refundAmount);
        order.setRefundStatus(1);
        this.updateById(order);
        chargingOrder = this.getById(order.getId());
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java
@@ -215,7 +215,7 @@
                myChargingOrderList.setEndMode(tChargingOrder.getEndMode());
                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.setCreateTime(tChargingOrder.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy.MM.dd HH:mm:ss")));
                chargingOrder.add(myChargingOrderList);
            }
            myOrderInvoiceInfo.setChargingOrder(chargingOrder);
@@ -245,6 +245,7 @@
                myShoppingOrderList.setUnitPrice(unitPrice);
                myShoppingOrderList.setNumber(tShoppingOrder.getPurchaseQuantity());
                myShoppingOrderList.setPaymentAmount(tShoppingOrder.getPaymentAmount());
                myShoppingOrderList.setCreateTime(tShoppingOrder.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy.MM.dd HH:mm:ss")));
                shoppingOrder.add(myShoppingOrderList);
            }
            myOrderInvoiceInfo.setShoppingOrder(shoppingOrder);
@@ -295,6 +296,8 @@
                if (e.getBillingUserId()!=null){
                    e.setUserPhone(finalTAppUsers.stream().filter(t->t.getId()!=null).filter(m->m.getId().equals(Long.parseLong(e.getBillingUserId().toString()))).findFirst().get().getPhone());
                }
                TAppUser appUser = appUserClient.getUserById(e.getAppUserId()).getData();
                e.setUserPhone(appUser.getPhone());
            });
        }
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java
@@ -202,7 +202,7 @@
    public Map<String, Object> getMyShoppingOrderList(GetMyShoppingOrderList query) {
        Long userId = tokenService.getLoginUserApplet().getUserId();
        LambdaQueryWrapper<TShoppingOrder> wrapper = new LambdaQueryWrapper<TShoppingOrder>().eq(TShoppingOrder::getDelFlag, 0)
                .eq(TShoppingOrder::getAppUserId, userId).eq(TShoppingOrder::getPaymentStatus, 2);
                .eq(TShoppingOrder::getAppUserId, userId).eq(TShoppingOrder::getPaymentStatus, 2).notIn(TShoppingOrder::getStatus, Arrays.asList(4, 5));
        if(query.getStatus() != 0){
            wrapper.eq(TShoppingOrder::getStatus, query.getStatus());
        }
@@ -255,7 +255,7 @@
        TAppUserAddress userAddress = appUserAddressClient.getAppUserAddressById(shoppingOrder.getAppUserAddressId()).getData();
        info.setConsignee(userAddress.getName());
        info.setPhone(userAddress.getPhone());
        info.setAddress(userAddress.getProvince() + userAddress.getCity() + userAddress.getDistrict() + userAddress.getAddress());
        info.setAddress(userAddress.getProvince() + userAddress.getCity() + userAddress.getDistrict() + userAddress.getAddress() + userAddress.getHouseNumber());
        info.setExpressCompany(shoppingOrder.getExpressCompany());
        info.setExpressNumber(shoppingOrder.getExpressNumber());
        String name = "";
@@ -372,8 +372,8 @@
            model.setOut_trade_no(shoppingOrder.getCode());
            model.setTransaction_id(shoppingOrder.getSerialNumber());
            model.setOut_refund_no(shoppingOrderRefund.getRefundCode());
            model.setReason("取消订单");
            model.setNotify_url("/order/t-shopping-order/cancelShoppingOrderWxRefund");
            model.setReason("取消商城订单");
            model.setNotify_url("/payment/wx/refund/notify");
            WxPaymentRefundModel.RefundAmount amount = new WxPaymentRefundModel.RefundAmount();
            amount.setRefund(refundAmount.multiply(new BigDecimal(100)).intValue());
            amount.setTotal(shoppingOrder.getPaymentAmount().multiply(new BigDecimal(100)).intValue());
@@ -390,7 +390,7 @@
            dto.setOutTradeNo(shoppingOrder.getCode());
            dto.setOutRequestNo(shoppingOrderRefund.getCode());
            dto.setRefundAmount(refundAmount.toString());
            dto.setRefundReason("取消订单");
            dto.setRefundReason("取消商城订单");
            RefundResp resp = aliPaymentClient.refund(dto).getData();
            if(null != resp){
                this.updateById(shoppingOrder);
@@ -413,58 +413,56 @@
    @Override
    @GlobalTransactional(rollbackFor = Exception.class)//分布式事务
    public AjaxResult cancelShoppingOrderWxRefund(String out_refund_no, String refund_id, String refund_status, String success_time) {
        if("SUCCESS".equals(refund_status)){
            TShoppingOrderRefund one = shoppingOrderRefundService.getOne(new LambdaQueryWrapper<TShoppingOrderRefund>().eq(TShoppingOrderRefund::getRefundCode, out_refund_no));
            one.setRefundStatus(2);
            one.setRefundSerialNumber(refund_id);
            one.setRefundTime(LocalDateTime.parse(success_time, DateTimeFormatter.ofPattern("yyyy-MM-DDTHH:mm:ss+TIMEZONE")));
            shoppingOrderRefundService.updateById(one);
            //判断是否需要回退库存
            TShoppingOrder shoppingOrder = this.getById(one.getShoppingOrderId());
            shoppingOrder.setStatus(4);
            shoppingOrder.setRefundCode(one.getRefundSerialNumber());
            shoppingOrder.setRefundAmount(one.getRefundAmount());
            shoppingOrder.setRefundStatus(2);
            shoppingOrder.setRefundTime(one.getRefundTime());
            this.updateById(shoppingOrder);
            //商品
            if(shoppingOrder.getOrderType() == 1){
                //redis锁 和支付使用同一个锁
                RedisLock redisLock = new RedisLock(redisTemplate, "SHOPPING_GOODS_LOCK", 5, 30000);
                try {
                    redisLock.lock();
                    TGoods goods = goodsClient.getGoodsById(shoppingOrder.getGoodsId()).getData();
                    Integer inventory = goods.getInventory();
                    if(-1 != inventory){
                        goods.setInventory(inventory + shoppingOrder.getPurchaseQuantity());
                        goodsClient.updateGoods(goods);
                    }
                }catch (Exception e){
                    e.printStackTrace();
                }finally {
                    //解锁
                    redisLock.unlock();
        TShoppingOrderRefund one = shoppingOrderRefundService.getOne(new LambdaQueryWrapper<TShoppingOrderRefund>().eq(TShoppingOrderRefund::getRefundCode, out_refund_no));
        one.setRefundStatus(2);
        one.setRefundSerialNumber(refund_id);
        one.setRefundTime(LocalDateTime.now());
        shoppingOrderRefundService.updateById(one);
        //判断是否需要回退库存
        TShoppingOrder shoppingOrder = this.getById(one.getShoppingOrderId());
        shoppingOrder.setStatus(4);
        shoppingOrder.setRefundCode(one.getRefundSerialNumber());
        shoppingOrder.setRefundAmount(one.getRefundAmount());
        shoppingOrder.setRefundStatus(2);
        shoppingOrder.setRefundTime(one.getRefundTime());
        this.updateById(shoppingOrder);
        //商品
        if(shoppingOrder.getOrderType() == 1){
            //redis锁 和支付使用同一个锁
            RedisLock redisLock = new RedisLock(redisTemplate, "SHOPPING_GOODS_LOCK", 5, 30000);
            try {
                redisLock.lock();
                TGoods goods = goodsClient.getGoodsById(shoppingOrder.getGoodsId()).getData();
                Integer inventory = goods.getInventory();
                if(-1 != inventory){
                    goods.setInventory(inventory + shoppingOrder.getPurchaseQuantity());
                    goodsClient.updateGoods(goods);
                }
            }catch (Exception e){
                e.printStackTrace();
            }finally {
                //解锁
                redisLock.unlock();
            }
            //优惠券
            if(shoppingOrder.getOrderType() == 2){
                //redis锁 和支付使用同一个锁
                RedisLock redisLock = new RedisLock(redisTemplate, "SHOPPING_COUPON_LOCK", 5, 30000);
                try {
                    redisLock.lock();
                    TCoupon coupon = couponClient.getCouponById1(shoppingOrder.getCouponId()).getData();
                    Integer inventory = coupon.getInventoryQuantity();
                    if(-1 != inventory){
                        coupon.setInventoryQuantity(inventory + shoppingOrder.getPurchaseQuantity());
                        couponClient.updateCoupon(coupon);
                    }
                }catch (Exception e){
                    e.printStackTrace();
                }finally {
                    //解锁
                    redisLock.unlock();
        }
        //优惠券
        if(shoppingOrder.getOrderType() == 2){
            //redis锁 和支付使用同一个锁
            RedisLock redisLock = new RedisLock(redisTemplate, "SHOPPING_COUPON_LOCK", 5, 30000);
            try {
                redisLock.lock();
                TCoupon coupon = couponClient.getCouponById1(shoppingOrder.getCouponId()).getData();
                Integer inventory = coupon.getInventoryQuantity();
                if(-1 != inventory){
                    coupon.setInventoryQuantity(inventory + shoppingOrder.getPurchaseQuantity());
                    couponClient.updateCoupon(coupon);
                }
            }catch (Exception e){
                e.printStackTrace();
            }finally {
                //解锁
                redisLock.unlock();
            }
        }
        return AjaxResult.success();
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
@@ -102,10 +102,10 @@
            and t1.charging_gun_id = #{req.gunId}
        </if>
        <if test="startTime1 != null and startTime1!=''">
            and (t1.start_time between #{startTime1} and #{startTime2}
            and (t1.start_time between #{startTime1} and #{startTime2})
        </if>
        <if test="endTime1 != null and endTime1!=''">
            and (t1.end_time between #{endTime1} and #{endTime2}
            and (t1.end_time between #{endTime1} and #{endTime2})
        </if>
    </select>
    <select id="payOrderQuery" resultType="com.ruoyi.order.dto.PayOrderDto">
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TAdvertisingController.java
@@ -68,7 +68,7 @@
    @ApiOperation(tags = {"管理后台-广告管理"},value = "广告修改")
    @Log(title = "【广告管理】修改广告", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE)
    public AjaxResult updateVip(@RequestBody TAdvertising dto) {
        if (dto.getJumpType() == 2){
        if (dto.getJumpType()!=null && dto.getJumpType() == 2){
            // 清空跳转地址
            advertisingService.updateById(dto);
            LambdaUpdateWrapper<TAdvertising> tAdvertisingLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
ruoyi-service/ruoyi-payment/src/main/resources/bootstrap.yml
@@ -53,7 +53,7 @@
  config:
    type: nacos
    nacos:
      server-addr: 127.0.0.1:8848
      server-addr: 192.168.110.169:8848
      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
      group: DEFAULT_GROUP
      data-id: seata-server.properties
@@ -63,7 +63,7 @@
    type: nacos
    nacos:
      application: seata-server
      server-addr: 127.0.0.1:8848
      server-addr: 192.168.110.169:8848
      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
      group: DEFAULT_GROUP
      username: nacos
@@ -71,7 +71,7 @@
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848 # nacos注册中心地址
        server-addr: 192.168.110.169:8848
        namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间
        group: DEFAULT_GROUP
        application: seata-server #Nacos 中 Seata 名称