From 31e408fb7efa3b8352d420d3cb4dbf4ca7f1d47a Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期六, 31 八月 2024 16:46:44 +0800
Subject: [PATCH] 8.31
---
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/dto/ChargingOrderGroup.java | 13
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 50 +
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/UploadRealTimeMonitoringDataFallbackFactory.java | 6
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java | 13
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingRecordServiceImpl.java | 7
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TParkingRecord.java | 2
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/SixCircleDto.java | 11
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TParkingRecordMapper.java | 5
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/UploadRealTimeMonitoringDataController.java | 9
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java | 14
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java | 21
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml | 185 ++++++
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TVipOrderMapper.java | 6
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/dto/ChargingPercentProvinceDto.java | 13
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/SixChargingDto.java | 19
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/SixVipDto.java | 13
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java | 20
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/BaseModel.java | 1
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/PreviousSixMonths.java | 20
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java | 3
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java | 14
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingLotClient.java | 5
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/dto/ChargingPercentBack.java | 14
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/SiteClient.java | 6
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TVipOrderServiceImpl.java | 13
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/SiteFallbackFactory.java | 6
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/SixShopDto.java | 13
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/UploadRealTimeMonitoringDataService.java | 4
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java | 27
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TVipOrderService.java | 9
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TShoppingOrderService.java | 10
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/UploadRealTimeMonitoringData.java | 9
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TParkingRecordService.java | 4
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java | 22
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java | 119 ++++
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java | 7
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TShoppingOrderMapper.java | 6
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/UploadRealTimeMonitoringDataClient.java | 4
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ParkingLotFallbackFactory.java | 7
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java | 506 ++++++++++++++---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/ChargingStatisticsQueryDto.java | 18
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/SixMonthTotal.java | 5
ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml | 3
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TVipOrderMapper.xml | 41 +
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java | 34 +
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrderAccountingStrategy.java | 8
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml | 36 +
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/ChargingOrderAndUploadRealTimeMonitoringDataDto.java | 209 +++++++
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java | 44 +
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/dto/ParkingRecordPageQuery.java | 16
50 files changed, 1,522 insertions(+), 128 deletions(-)
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ParkingLotFallbackFactory.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ParkingLotFallbackFactory.java
index ef7c322..d66b799 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ParkingLotFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ParkingLotFallbackFactory.java
@@ -11,6 +11,8 @@
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
+import java.math.BigDecimal;
+import java.time.LocalDate;
import java.util.List;
/**
@@ -37,6 +39,11 @@
public R<TParkingRecord> getRecordById(Long siteId) {
return R.fail("通过id查询停车场记录:" + throwable.getMessage());
}
+
+ @Override
+ public R<BigDecimal> getRecordAmount(LocalDate sixBefore) {
+ return null;
+ }
};
}
}
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/SiteFallbackFactory.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/SiteFallbackFactory.java
index ed6ce4b..b4cdc47 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/SiteFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/SiteFallbackFactory.java
@@ -1,5 +1,6 @@
package com.ruoyi.chargingPile.api.factory;
+import com.ruoyi.chargingPile.api.dto.GetSiteListDTO;
import com.ruoyi.chargingPile.api.feignClient.SiteClient;
import com.ruoyi.chargingPile.api.model.Site;
import com.ruoyi.common.core.domain.R;
@@ -34,6 +35,11 @@
public R<List<Site>> getSiteAll() {
return R.fail("获取所有站点调用失败:" + throwable.getMessage());
}
+
+ @Override
+ public R<List<GetSiteListDTO>> getSiteListByUserId(Long userId) {
+ return null;
+ }
};
}
}
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingLotClient.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingLotClient.java
index 5c45bcf..bc3338a 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingLotClient.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingLotClient.java
@@ -12,6 +12,8 @@
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
+import java.math.BigDecimal;
+import java.time.LocalDate;
import java.util.List;
/**
@@ -30,4 +32,7 @@
@PostMapping(value = "/t-parking-lot/getRecordById")
public R<TParkingRecord> getRecordById(@RequestParam("id") Long siteId);
+ @PostMapping(value = "/t-parking-lot/getRecordAmount")
+ public R<BigDecimal> getRecordAmount(@RequestParam("sixBefore") LocalDate sixBefore);
+
}
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/SiteClient.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/SiteClient.java
index 2412cf2..a56392f 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/SiteClient.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/SiteClient.java
@@ -1,12 +1,15 @@
package com.ruoyi.chargingPile.api.feignClient;
+import com.ruoyi.chargingPile.api.dto.GetSiteListDTO;
import com.ruoyi.chargingPile.api.factory.SiteFallbackFactory;
import com.ruoyi.chargingPile.api.model.Site;
import com.ruoyi.common.core.constant.ServiceNameConstants;
import com.ruoyi.common.core.domain.R;
import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
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;
@@ -31,4 +34,7 @@
*/
@PostMapping("/site/getSiteAll")
R<List<Site>> getSiteAll();
+
+ @GetMapping("/site/getSiteList/byUserId")
+ R<List<GetSiteListDTO>> getSiteListByUserId(@RequestParam("userId") Long userId);
}
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TParkingRecord.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TParkingRecord.java
index 69bfa7e..9148387 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TParkingRecord.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TParkingRecord.java
@@ -39,6 +39,8 @@
@ApiModelProperty(value = "车牌号")
@TableField("license_plate")
private String licensePlate;
+ @TableField(exist = false)
+ private String name;
@ApiModelProperty(value = "订单编号")
@TableField("code")
private String code;
diff --git a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/UploadRealTimeMonitoringDataFallbackFactory.java b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/UploadRealTimeMonitoringDataFallbackFactory.java
index cd5fa43..2586a69 100644
--- a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/UploadRealTimeMonitoringDataFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/UploadRealTimeMonitoringDataFallbackFactory.java
@@ -9,6 +9,7 @@
import org.springframework.stereotype.Component;
import java.util.List;
+import java.util.Set;
/**
* 充电桩服务降级处理
@@ -35,6 +36,11 @@
public R<List<UploadRealTimeMonitoringData>> getDataByOrderCode(String code) {
return R.fail("根据订单编号获取所有监测数据失败:" + throwable.getMessage());
}
+
+ @Override
+ public R<List<UploadRealTimeMonitoringData>> getAll(Set<String> values, Integer page, Integer size) {
+ return null;
+ }
};
}
}
diff --git a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/UploadRealTimeMonitoringDataClient.java b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/UploadRealTimeMonitoringDataClient.java
index d6da53d..902dff5 100644
--- a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/UploadRealTimeMonitoringDataClient.java
+++ b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/UploadRealTimeMonitoringDataClient.java
@@ -9,6 +9,7 @@
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
+import java.util.Set;
/**
* @author zhibing.pu
@@ -32,4 +33,7 @@
*/
@PostMapping("/uploadRealTimeMonitoringData/getDataByOrderCode")
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);
}
diff --git a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/BaseModel.java b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/BaseModel.java
index 3ec6eb0..fe393ff 100644
--- a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/BaseModel.java
+++ b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/BaseModel.java
@@ -10,6 +10,7 @@
*/
@Data
public class BaseModel {
+ private Date last_time = new Date();
private Date create_time = new Date();
}
diff --git a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/ChargingOrderAndUploadRealTimeMonitoringDataDto.java b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/ChargingOrderAndUploadRealTimeMonitoringDataDto.java
new file mode 100644
index 0000000..3090700
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/ChargingOrderAndUploadRealTimeMonitoringDataDto.java
@@ -0,0 +1,209 @@
+package com.ruoyi.integration.api.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 上传实时监测数据
+ **/
+
+@Data
+@Document(collection = "upload_real_time_monitoring_data") //指定要对应的文档名(表名)
+@Accessors(chain = true)
+public class ChargingOrderAndUploadRealTimeMonitoringDataDto extends BaseModel {
+
+ @Id
+ private String id;
+ private String transaction_serial_number; // 交易流水号
+ private String charging_pile_code; // 桩编码
+ private String charging_gun_code; // 抢号
+ private Integer charging_gun_status; // 状态(0:离线,1:故障,2:空闲,3:充电)
+ private Integer homing_status; // 枪是否归位(0:否,1:是,2:未知)
+ private Integer insertion_status; // 是否插枪(0:否,1:是)
+ private BigDecimal output_voltage; // 输出电压,精确到小数点后一位;待机置零
+ private BigDecimal output_current; // 输出电流,精确到小数点后一位;待机置零
+ private Integer gun_line_temperature; // 枪线温度,整形,偏移量-50;待机置零
+ private String gun_line_code; // 枪线编码,没有置零
+ private Integer soc; // SOC待机置零;交流桩置零
+ private Integer battery_temperature; // 电池组最高温度,整形,偏移量-50 ºC;待机置零;交流桩置零
+ private Integer cumulative_charging_time; // 累计充电时间,单位:min;待机置零
+ private Integer time_remaining; // 剩余时间,单位:min;待机置零、交流桩置零
+ @ApiModelProperty("充电度数")
+ private BigDecimal charging_degree; // 充电度数,精确到小数点后四位;待机置零
+ private BigDecimal loss_of_charging_degree; // 计损充电度数,精确到小数点后四位;待机置零,未设置计损比例时等于充电度数
+ private BigDecimal paid_amount; // 已充金额,精确到小数点后四位;待机置零(电费+服务费)*计损充电度数
+
+ @ApiModelProperty("时段电价")
+ private BigDecimal electrovalence_all;
+ @ApiModelProperty("时段服务费单价")
+ private BigDecimal service_charge;
+ @ApiModelProperty("时段电费")
+ private BigDecimal period_electric_price;
+ @ApiModelProperty("时段服务费")
+ private BigDecimal period_service_price;
+ private Integer hardware_fault; // 硬件故障(1:急停按钮动作故障;2:无可用整流模块;3:出风口温度过高;4:交流防雷故障;5:交直流模块 DC20 通信中断;6:绝缘检测模块 FC08 通信中断;7:电度表通信中断;8:读卡器通信中断;9:RC10 通信中断;10:风扇调速板故障;11:直流熔断器故障;12:高压接触器故障;13:门打开)、
+
+ @ApiModelProperty(value = "订单编号")
+ @TableField("code")
+ private String code;
+
+ @ApiModelProperty(value = "订单类型(1=充电订单(小程序),2=充电订单(刷卡))")
+ @TableField("order_type")
+ private Integer orderType;
+ @ApiModelProperty(value = "0平台1其他")
+ @TableField("order_source")
+ private Integer orderSource;
+
+ @ApiModelProperty(value = "平台或其他第三分名字")
+ @TableField("source_name")
+ private String sourceName;
+ @ApiModelProperty(value = "手续费")
+ @TableField("commission_amount")
+ private BigDecimal commissionAmount;
+ @ApiModelProperty(value = "分佣")
+ @TableField("sharing_amount")
+ private BigDecimal sharingAmount;
+
+ @ApiModelProperty(value = "订单分类(1=线上,2=线下)")
+ @TableField("order_classification")
+ private Integer orderClassification;
+
+ @ApiModelProperty(value = "用户id")
+ @TableField("app_user_id")
+ private Long appUserId;
+
+ @ApiModelProperty(value = "充电车辆 id")
+ @TableField("app_user_car_id")
+ private Long appUserCarId;
+
+ @ApiModelProperty(value = "站点 id")
+ @TableField("site_id")
+ private Integer siteId;
+
+ @ApiModelProperty(value = "停车场id")
+ @TableField("parking_lot_id")
+ private Integer parkingLotId;
+
+ @ApiModelProperty(value = "充电桩id")
+ @TableField("charging_pile_id")
+ private Integer chargingPileId;
+
+ @ApiModelProperty(value = "充电枪id")
+ @TableField("charging_gun_id")
+ private Integer chargingGunId;
+
+ @ApiModelProperty(value = "充电总度数")
+ @TableField("charging_capacity")
+ private BigDecimal chargingCapacity;
+
+ @ApiModelProperty(value = "充电功率")
+ @TableField("charging_power")
+ private BigDecimal chargingPower;
+
+ @ApiModelProperty(value = "充电开始时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @TableField("start_time")
+ private LocalDateTime startTime;
+
+ @ApiModelProperty(value = "充电结束时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @TableField("end_time")
+ private LocalDateTime endTime;
+
+ @ApiModelProperty(value = "状态(0=未知,1=等待中/已插枪,2=启动中,3=充电中,4=停止中,5=已结束)")
+ @TableField("status")
+ private Integer status;
+
+ @ApiModelProperty(value = "结束方式(0=异常终止,1=主动终止,2=满电终止,3=费用不足终止)")
+ @TableField("end_mode")
+ private Integer endMode;
+
+ @ApiModelProperty(value = "充值金额")
+ @TableField("recharge_amount")
+ private BigDecimal rechargeAmount;
+
+ @ApiModelProperty(value = "充值支付方式(1=微信,2=支付宝)")
+ @TableField("recharge_payment_type")
+ private Integer rechargePaymentType;
+
+ @ApiModelProperty(value = "充值支付状态(1=待支付,2=已支付)")
+ @TableField("recharge_payment_status")
+ private Integer rechargePaymentStatus;
+
+ @ApiModelProperty(value = "充值支付第三方流水号")
+ @TableField("recharge_serial_number")
+ private String rechargeSerialNumber;
+
+ @ApiModelProperty(value = "订单金额(总金额)")
+ @TableField("order_amount")
+ private BigDecimal orderAmount;
+
+ @ApiModelProperty(value = "优惠券id")
+ @TableField("app_coupon_id")
+ private Long appCouponId;
+
+ @ApiModelProperty(value = "优惠券抵扣金额")
+ @TableField("coupon_discount_amount")
+ private BigDecimal couponDiscountAmount;
+
+ @ApiModelProperty(value = "会员折扣")
+ @TableField("vip_discount")
+ private BigDecimal vipDiscount;
+
+ @ApiModelProperty(value = "会员优惠金额")
+ @TableField("vip_discount_amount")
+ private BigDecimal vipDiscountAmount;
+
+ @ApiModelProperty(value = "支付金额(实付)")
+ @TableField("payment_amount")
+ private BigDecimal paymentAmount;
+
+ @ApiModelProperty(value = "退款流水号")
+ @TableField("refund_code")
+ private String refundCode;
+
+ @ApiModelProperty(value = "退款金额")
+ @TableField("refund_amount")
+ private BigDecimal refundAmount;
+
+ @ApiModelProperty(value = "累计服务费")
+ @TableField("service_charge")
+ private BigDecimal serviceCharge;
+
+ @ApiModelProperty(value = "累计电费")
+ @TableField("electrovalence")
+ private BigDecimal electrovalence;
+
+ @ApiModelProperty(value = "退款状态(1=退款中,2=退款成功)")
+ @TableField("refund_status")
+ private Integer refundStatus;
+
+ @ApiModelProperty(value = "退款第三方流水号")
+ @TableField("refund_serial_number")
+ private String refundSerialNumber;
+
+ @ApiModelProperty(value = "退款成功时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @TableField("refund_time")
+ private LocalDateTime refundTime;
+
+
+ @ApiModelProperty(value = "支付时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @TableField("pay_time")
+ private LocalDateTime payTime;
+
+
+}
+
+
diff --git a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/UploadRealTimeMonitoringData.java b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/UploadRealTimeMonitoringData.java
index b131c91..bfbc261 100644
--- a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/UploadRealTimeMonitoringData.java
+++ b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/UploadRealTimeMonitoringData.java
@@ -1,5 +1,6 @@
package com.ruoyi.integration.api.model;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.data.annotation.Id;
@@ -36,6 +37,14 @@
private BigDecimal paid_amount; // 已充金额,精确到小数点后四位;待机置零(电费+服务费)*计损充电度数
private Integer hardware_fault; // 硬件故障(1:急停按钮动作故障;2:无可用整流模块;3:出风口温度过高;4:交流防雷故障;5:交直流模块 DC20 通信中断;6:绝缘检测模块 FC08 通信中断;7:电度表通信中断;8:读卡器通信中断;9:RC10 通信中断;10:风扇调速板故障;11:直流熔断器故障;12:高压接触器故障;13:门打开)
+ private BigDecimal electrovalence_all;// @ApiModelProperty("时段电价")
+
+ private BigDecimal service_charge;//@ApiModelProperty("时段服务费单价")
+
+ private BigDecimal period_electric_price;// @ApiModelProperty("时段电费")
+
+ private BigDecimal period_service_price;// @ApiModelProperty("时段服务费")
+
}
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java
index ee6192f..4f1db3a 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java
@@ -1,6 +1,8 @@
package com.ruoyi.order.api.factory;
import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.dto.ChargingOrderGroup;
+import com.ruoyi.common.core.dto.ChargingPercentProvinceDto;
import com.ruoyi.order.api.feignClient.ChargingOrderClient;
import com.ruoyi.order.api.model.TChargingOrder;
import com.ruoyi.order.api.query.TChargingCountQuery;
@@ -8,6 +10,8 @@
import org.slf4j.LoggerFactory;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
+
+import java.util.List;
/**
* 充电订单服务降级处理
@@ -36,6 +40,16 @@
}
@Override
+ public R<List<TChargingOrder>> getList(Integer siteId) {
+ return R.fail("根据站点id查询充电订单:" + throwable.getMessage());
+ }
+
+ @Override
+ public R<List<ChargingOrderGroup>> getBySiteIdAndTime(ChargingPercentProvinceDto chargingPercentProvinceDto) {
+ return null;
+ }
+
+ @Override
public R<Integer> getChargingCount(TChargingCountQuery req) {
return R.fail("根据会员id和有效期查询有效期内享受充电折扣次数:" + throwable.getMessage());
}
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java
index 5d19dd8..8576cd9 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java
@@ -2,6 +2,8 @@
import com.ruoyi.common.core.constant.ServiceNameConstants;
import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.dto.ChargingOrderGroup;
+import com.ruoyi.common.core.dto.ChargingPercentProvinceDto;
import com.ruoyi.order.api.factory.ChargingOrderFallbackFactory;
import com.ruoyi.order.api.model.TChargingOrder;
import com.ruoyi.order.api.query.TChargingCountQuery;
@@ -10,6 +12,8 @@
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;
/**
* 充电订单服务
@@ -23,6 +27,16 @@
@PostMapping(value = "/t-charging-order/detail")
R<TChargingOrder> orderDetail(@RequestParam("orderId") Long orderId);
+
+ @PostMapping(value = "/t-charging-order/getList")
+ R<List<TChargingOrder>> getList(@RequestParam("siteId") Integer siteId);
+
+ @PostMapping(value = "/t-charging-order/getBySiteIdAndTime")
+ R<List<ChargingOrderGroup>> getBySiteIdAndTime(@RequestBody ChargingPercentProvinceDto chargingPercentProvinceDto);
+
+
+
+
/**
* 查询会员在本月有多少次享受了充电折扣
* @param req
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java
index 737d918..0e9cab6 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java
@@ -39,6 +39,19 @@
@ApiModelProperty(value = "订单类型(1=充电订单(小程序),2=充电订单(刷卡))")
@TableField("order_type")
private Integer orderType;
+ @ApiModelProperty(value = "0平台1其他")
+ @TableField("order_source")
+ private Integer orderSource;
+
+ @ApiModelProperty(value = "平台或其他第三分名字")
+ @TableField("source_name")
+ private String sourceName;
+ @ApiModelProperty(value = "手续费")
+ @TableField("commission_amount")
+ private BigDecimal commissionAmount;
+ @ApiModelProperty(value = "分佣")
+ @TableField("sharing_amount")
+ private BigDecimal sharingAmount;
@ApiModelProperty(value = "订单分类(1=线上,2=线下)")
@TableField("order_classification")
@@ -142,6 +155,14 @@
@TableField("refund_amount")
private BigDecimal refundAmount;
+ @ApiModelProperty(value = "累计服务费")
+ @TableField("service_charge")
+ private BigDecimal serviceCharge;
+
+ @ApiModelProperty(value = "累计电费")
+ @TableField("electrovalence")
+ private BigDecimal electrovalence;
+
@ApiModelProperty(value = "退款状态(1=退款中,2=退款成功)")
@TableField("refund_status")
private Integer refundStatus;
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrderAccountingStrategy.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrderAccountingStrategy.java
index aeb158e..67a9f61 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrderAccountingStrategy.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrderAccountingStrategy.java
@@ -64,5 +64,13 @@
@TableField("charging_capacity")
private BigDecimal chargingCapacity;
+ @ApiModelProperty(value = "时段电费")
+ @TableField("period_electric_price")
+ private BigDecimal periodElectricPrice;
+
+ @ApiModelProperty(value = "时段服务费")
+ @TableField("period_service_price")
+ private BigDecimal periodServicePrice;
+
}
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/dto/ChargingOrderGroup.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/dto/ChargingOrderGroup.java
new file mode 100644
index 0000000..ada209c
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/dto/ChargingOrderGroup.java
@@ -0,0 +1,13 @@
+package com.ruoyi.common.core.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+@Data
+public class ChargingOrderGroup {
+ @ApiModelProperty("充电量")
+ BigDecimal chargingCapacity;
+ @ApiModelProperty("站点")
+ Integer siteId;
+}
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/dto/ChargingPercentProvinceDto.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/dto/ChargingPercentProvinceDto.java
new file mode 100644
index 0000000..08b4f8c
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/dto/ChargingPercentProvinceDto.java
@@ -0,0 +1,13 @@
+package com.ruoyi.common.core.dto;
+
+import lombok.Data;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+@Data
+public class ChargingPercentProvinceDto {
+ String provinceCode;
+ LocalDate date1;
+ LocalDate date2;
+}
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java
index e073766..d49f395 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java
@@ -11,6 +11,9 @@
import com.ruoyi.chargingPile.api.query.SiteQuery;
import com.ruoyi.chargingPile.api.vo.*;
import com.ruoyi.chargingPile.domain.SiteMenu;
+import com.ruoyi.chargingPile.dto.ChargingPercentBack;
+import com.ruoyi.common.core.dto.ChargingOrderGroup;
+import com.ruoyi.common.core.dto.ChargingPercentProvinceDto;
import com.ruoyi.chargingPile.service.*;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.GeodesyUtil;
@@ -18,6 +21,8 @@
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.common.security.utils.SecurityUtils;
+import com.ruoyi.order.api.feignClient.ChargingOrderClient;
+import com.ruoyi.order.api.model.TChargingOrder;
import com.ruoyi.other.api.feignClient.RoleSiteClient;
import com.ruoyi.other.api.feignClient.UserSiteClient;
import com.ruoyi.system.api.domain.SysUser;
@@ -33,8 +38,11 @@
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
+import java.time.LocalDate;
import java.time.LocalTime;
+import java.time.temporal.ChronoUnit;
import java.util.*;
+import java.util.stream.Collectors;
/**
* @author zhibing.pu
@@ -72,6 +80,9 @@
@Autowired
private TAccountingStrategyDetailService accountingStrategyDetailService;
+ @Resource
+ private ChargingOrderClient chargingOrderClient;
+
/**
* 小程序扫一扫
@@ -105,6 +116,112 @@
PageInfo<GetSiteListDTO> list = siteService.getSiteList(siteList);
return AjaxResult.success(list);
}
+ @GetMapping("/getSiteList/byUserId")
+ @ApiOperation(value = "获取站点列表", tags = {"管理后台-站点管理"})
+ public R<List<GetSiteListDTO>> getSiteListByUserId(@RequestParam("userId") Long userId){
+ PageInfo<GetSiteListDTO> list = siteService.getSiteList1(userId);
+ return R.ok(list.getRecords());
+ }
+
+
+
+ @GetMapping("/map/getSiteList")
+ @ApiOperation(value = "获取站点", tags = {"管理后台-数据分析-电站分析"})
+ public R<List<GetSiteListDTO>> getMapSiteList(GetSiteList siteList){
+ siteList.setPageCurr(1);
+ siteList.setPageCurr(99999);
+ PageInfo<GetSiteListDTO> list = siteService.getSiteList(siteList);
+ return R.ok(list.getRecords());
+ }
+
+
+ @GetMapping("/map/getPercent")
+ @ApiOperation(value = "获取该充电站的利用率", tags = {"管理后台-数据分析-电站分析"})
+ public R getPercent(Integer siteId){
+ BigDecimal bigDecimal = new BigDecimal("0");
+ //获取该站点的总充电度数
+ List<TChargingOrder> chargingOrders = chargingOrderClient.getList(siteId).getData();
+ for (TChargingOrder chargingOrder : chargingOrders) {
+ bigDecimal = bigDecimal.add(chargingOrder.getChargingCapacity());
+ }
+ //获取该站点的所有充电桩
+ List<TChargingPile> chargingPiles = chargingPileService.lambdaQuery().eq(TChargingPile::getSiteId, siteId).list();
+ BigDecimal bigDecimal1 = new BigDecimal("0");
+ for (TChargingPile chargingPile : chargingPiles) {
+ bigDecimal1 = bigDecimal1.add(chargingPile.getRatedPower());
+ }
+ BigDecimal multiply = bigDecimal1.multiply(new BigDecimal("24"));
+
+ BigDecimal divide = bigDecimal.divide(multiply, 0, BigDecimal.ROUND_HALF_UP);
+
+
+ return R.ok(divide);
+ }
+
+
+
+
+ @PostMapping("/map/getPercentByprovinceCode")
+ @ApiOperation(value = "获取该充电站的利用率", tags = {"管理后台-数据分析-电站分析"})
+ public R getPercentByCityCode(@RequestBody ChargingPercentProvinceDto chargingPercentProvinceDto){
+
+ if (chargingPercentProvinceDto.getDate1()==null){
+ LocalDate today = LocalDate.now();
+ LocalDate lastMonth = today.minusMonths(1);
+ LocalDate firstDayOfLastMonth = lastMonth.withDayOfMonth(1);
+ LocalDate lastDayOfLastMonth =lastMonth.withDayOfMonth(lastMonth.lengthOfMonth());
+ chargingPercentProvinceDto.setDate1(firstDayOfLastMonth);
+ chargingPercentProvinceDto.setDate2(lastDayOfLastMonth);
+ }
+
+
+
+ GetSiteList siteList = new GetSiteList();
+ siteList.setProvinceCode(chargingPercentProvinceDto.getProvinceCode());
+ siteList.setPageCurr(1);
+ siteList.setPageCurr(9999);
+ ChargingPercentBack chargingPercentBack = new ChargingPercentBack();
+
+ //通过省编码获取充电站id
+ List<GetSiteListDTO> records = siteService.getSiteList(siteList).getRecords();
+ List<Integer> collect = records.stream().map(GetSiteListDTO::getId).collect(Collectors.toList());
+ // 通过时间段获取和充电桩id获取各个充电站的充电订单
+ List<ChargingOrderGroup> data = chargingOrderClient.getBySiteIdAndTime(chargingPercentProvinceDto).getData();
+ // 计算利用率展示
+ for (ChargingOrderGroup datum : data) {
+ List<TChargingPile> chargingPiles = chargingPileService.lambdaQuery().eq(TChargingPile::getSiteId, datum.getSiteId()).list();
+ BigDecimal bigDecimal1 = new BigDecimal("0");
+ for (TChargingPile chargingPile : chargingPiles) {
+ bigDecimal1 = bigDecimal1.add(chargingPile.getRatedPower());
+ }
+
+ long daysBetween = ChronoUnit.DAYS.between(chargingPercentProvinceDto.getDate1(), chargingPercentProvinceDto.getDate2()) + 1;
+ BigDecimal multiply = bigDecimal1.multiply(new BigDecimal("24")).multiply(BigDecimal.valueOf(daysBetween));
+ //得到利用率
+ BigDecimal divide = datum.getChargingCapacity().divide(multiply, 0, BigDecimal.ROUND_HALF_UP);
+ //如果利用率大于等于10
+ if (divide.compareTo(BigDecimal.valueOf(10))>=0){
+ chargingPercentBack.setCount1(chargingPercentBack.getCount1()+1);
+ }
+
+ //如果利用率大于等于5小于10
+ if (divide.compareTo(BigDecimal.valueOf(5))>=0 && divide.compareTo(BigDecimal.valueOf(10))<0){
+ chargingPercentBack.setCount2(chargingPercentBack.getCount2()+1);
+ }
+ //如果利用率大于等于1小于5
+ if (divide.compareTo(BigDecimal.valueOf(1))>=0 && divide.compareTo(BigDecimal.valueOf(5))<0){
+ chargingPercentBack.setCount3(chargingPercentBack.getCount3()+1);
+ }
+ //如果利用率小于1
+ if (divide.compareTo(BigDecimal.valueOf(1))<0){
+ chargingPercentBack.setCount4(chargingPercentBack.getCount4()+1);
+ }
+
+ }
+ return R.ok(chargingPercentBack);
+ }
+
+
@GetMapping("/getSiteList1")
@ApiOperation(value = "获取站点列表 不分页", tags = {"管理后台-活动费用统计"})
public AjaxResult<List<Site>> getSiteList1(){
@@ -162,7 +279,7 @@
return AjaxResult.success(chargingPileService.getChargingGunList(siteId,type));
}
- @ApiOperation(value = "获取站点下充电枪数量统计", tags = {"小程序-站点管理-站点详情"})
+ @ApiOperation(value = "获取站点下充电枪数量统计", tags = {"小程序-站点管理-站点详情","管理后台-数据分析-电站分析"})
@GetMapping("/getChargingGunCount")
public AjaxResult<Map<String,ChargingGunCountVO>> getChargingGunCount(@RequestParam(value = "siteId")@ApiParam(value = "站点id", required = true)Integer siteId){
return AjaxResult.success(chargingGunService.getChargingGunCount(siteId));
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java
index 08e5674..22746d3 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java
@@ -26,6 +26,8 @@
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.time.LocalDate;
import java.util.Arrays;
import java.util.List;
@@ -149,5 +151,10 @@
public R<TParkingRecord> getRecordById(@RequestParam("id") Long id){
return R.ok(parkingRecordService.getById(id));
}
+ @PostMapping(value = "/getRecordAmount")
+ public R<BigDecimal> getRecordAmount(@RequestParam("sixBefore") LocalDate sixBefore){
+ BigDecimal sum = parkingRecordService.getSum(sixBefore);
+ return R.ok();
+ }
}
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java
index dbe9c26..78b4ddd 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java
@@ -1,8 +1,18 @@
package com.ruoyi.chargingPile.controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.chargingPile.api.model.TParkingLot;
+import com.ruoyi.chargingPile.api.model.TParkingRecord;
+import com.ruoyi.chargingPile.dto.ParkingRecordPageQuery;
+import com.ruoyi.chargingPile.service.TParkingLotService;
+import com.ruoyi.chargingPile.service.TParkingRecordService;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
/**
* <p>
@@ -15,6 +25,26 @@
@RestController
@RequestMapping("/t-parking-record")
public class TParkingRecordController {
+ @Resource
+ private TParkingRecordService parkingRecordService;
+ @Resource
+ private TParkingLotService parkingLotService;
+
+ @ApiOperation(tags = {"后台-订单管理-停车记录"},value = "列表")
+ @GetMapping(value = "/page")
+ public R<Page<TParkingRecord>> page(@RequestBody ParkingRecordPageQuery query) {
+ Page<TParkingRecord> page = parkingRecordService.lambdaQuery().ge(query.getStart() != null, TParkingRecord::getCreateTime, query.getStart())
+ .le(query.getEnd() != null, TParkingRecord::getCreateTime, query.getEnd())
+ .like(query.getLicensePlate() != null, TParkingRecord::getLicensePlate, query.getLicensePlate())
+ .eq(query.getStatus() != null, TParkingRecord::getStatus, query.getStatus())
+ .eq(query.getOutParkingType() != null, TParkingRecord::getOutParkingType, query.getOutParkingType())
+ .page(Page.of(query.getPageCurr(), query.getPageSize()));
+
+ for (TParkingRecord record : page.getRecords()) {
+ record.setName(parkingLotService.getById(record.getParkingLotId()).getName());
+ }
+ return R.ok(page);
+ }
}
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/dto/ChargingPercentBack.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/dto/ChargingPercentBack.java
new file mode 100644
index 0000000..5ea0ad0
--- /dev/null
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/dto/ChargingPercentBack.java
@@ -0,0 +1,14 @@
+package com.ruoyi.chargingPile.dto;
+
+import lombok.Data;
+import org.apache.poi.hpsf.Decimal;
+
+import java.math.BigDecimal;
+
+@Data
+public class ChargingPercentBack {
+ private Long count1 = 0L;
+ private Long count2= 0L;
+ private Long count3= 0L;
+ private Long count4= 0L;
+}
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/dto/ParkingRecordPageQuery.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/dto/ParkingRecordPageQuery.java
new file mode 100644
index 0000000..0062f60
--- /dev/null
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/dto/ParkingRecordPageQuery.java
@@ -0,0 +1,16 @@
+package com.ruoyi.chargingPile.dto;
+
+import com.ruoyi.common.core.web.page.BasePage;
+import lombok.Data;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+@Data
+public class ParkingRecordPageQuery extends BasePage {
+ LocalDate start;
+ LocalDate end;
+ String licensePlate;
+ Integer status;
+ Integer outParkingType;
+}
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TParkingRecordMapper.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TParkingRecordMapper.java
index 0876ee7..248c63f 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TParkingRecordMapper.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TParkingRecordMapper.java
@@ -2,6 +2,10 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.chargingPile.api.model.TParkingRecord;
+import org.apache.ibatis.annotations.Param;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
/**
* <p>
@@ -13,4 +17,5 @@
*/
public interface TParkingRecordMapper extends BaseMapper<TParkingRecord> {
+ BigDecimal getSum(@Param("sixBefore") LocalDate sixBefore);
}
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java
index b24a0eb..15cf0c5 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java
@@ -28,7 +28,8 @@
* @return
*/
PageInfo<GetSiteListDTO> getSiteList(GetSiteList siteList);
-
+ PageInfo<GetSiteListDTO> getSiteList1(Long userId);
+
/**
* 添加站点信息
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TParkingRecordService.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TParkingRecordService.java
index 1a1b349..2af1069 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TParkingRecordService.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TParkingRecordService.java
@@ -3,6 +3,9 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.chargingPile.api.model.TParkingRecord;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
/**
* <p>
* 服务类
@@ -13,4 +16,5 @@
*/
public interface TParkingRecordService extends IService<TParkingRecord> {
+ BigDecimal getSum(LocalDate sixBefore);
}
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
index 1a3a90f..38e0916 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
@@ -107,10 +107,46 @@
}
return pageInfo.setRecords(list);
}
-
-
-
-
+
+
+ @Override
+ public PageInfo<GetSiteListDTO> getSiteList1(Long userId) {
+ GetSiteList siteList = new GetSiteList();
+ siteList.setPageCurr(1);
+ siteList.setPageSize(9999);
+ Set<Integer> ids = null;
+ //校验合作商权限
+ SysUser sysUser = sysUserClient.getSysUser(userId).getData();
+ Integer roleType = sysUser.getRoleType();
+ Integer objectId = sysUser.getObjectId();
+ //合作商
+ if(roleType == 2){
+ ids = partnerService.authSite(objectId, SiteMenu.SITE_LIST);
+ }else{
+ //非管理员需要根据角色和用户配置查询允许的站点数据
+ if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){
+ List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData();
+ List<Integer> data1 = roleSiteClient.getSiteIds(sysUser.getRoleId()).getData();
+ data.addAll(data1);
+ ids = new HashSet<>(data);
+ }
+ }
+ PageInfo<GetSiteListDTO> pageInfo = new PageInfo<>(siteList.getPageCurr(), siteList.getPageSize());
+ List<GetSiteListDTO> list = this.baseMapper.getSiteList(pageInfo, siteList, ids);
+ for (GetSiteListDTO getSiteListDTO : list) {
+ Integer siteId = getSiteListDTO.getId();
+ getSiteListDTO.setAuthAccountingStrategy(roleType == 1 ? true : partnerService.authMenu(objectId, siteId, SiteMenu.SITE_ACCOUNTING_STRATEGY));
+ //平台账号才有此权限
+ getSiteListDTO.setAuthPartner(roleType == 1 ? true : false);
+ getSiteListDTO.setAuthUpdate(roleType == 1 ? true : partnerService.authMenu(objectId, siteId, SiteMenu.SITE_UPDATE));
+ getSiteListDTO.setAuthDelete(roleType == 1 ? true : partnerService.authMenu(objectId, siteId, SiteMenu.SITE_DELETE));
+ }
+ return pageInfo.setRecords(list);
+ }
+
+
+
+
/**
* 添加站点信息
* @param site
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingRecordServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingRecordServiceImpl.java
index 12d98fa..73fccbb 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingRecordServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingRecordServiceImpl.java
@@ -6,6 +6,9 @@
import com.ruoyi.chargingPile.service.TParkingRecordService;
import org.springframework.stereotype.Service;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
/**
* <p>
* 服务实现类
@@ -17,4 +20,8 @@
@Service
public class TParkingRecordServiceImpl extends ServiceImpl<TParkingRecordMapper, TParkingRecord> implements TParkingRecordService {
+ @Override
+ public BigDecimal getSum(LocalDate sixBefore) {
+ return this.baseMapper.getSum(sixBefore);
+ }
}
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml
index 1ef7f1a..defbedf 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml
@@ -23,5 +23,8 @@
<sql id="Base_Column_List">
id, app_user_id, license_plate, vehicle_color, charging_order_id, parking_lot_id, in_parking_time, out_parking_time, parking_duration, order_amount, status, out_parking_type, create_time
</sql>
+ <select id="getSum" resultType="java.math.BigDecimal">
+ select sum(timeout_amount) from t_parking_record where in_parking_time >= #{sixBefore}
+ </select>
</mapper>
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/UploadRealTimeMonitoringDataController.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/UploadRealTimeMonitoringDataController.java
index 7928fbe..aedff15 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/UploadRealTimeMonitoringDataController.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/UploadRealTimeMonitoringDataController.java
@@ -10,6 +10,7 @@
import javax.annotation.Resource;
import java.util.List;
+import java.util.Set;
/**
* <p>
@@ -51,6 +52,14 @@
List<UploadRealTimeMonitoringData> list = uploadRealTimeMonitoringDataService.getDataByOrderCode(code);
return R.ok(list);
}
+
+
+ @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);
+ return R.ok(list);
+ }
+
}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/UploadRealTimeMonitoringDataService.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/UploadRealTimeMonitoringDataService.java
index c63f3f5..e142505 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/UploadRealTimeMonitoringDataService.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/UploadRealTimeMonitoringDataService.java
@@ -5,6 +5,7 @@
import com.ruoyi.integration.mongodb.base.BaseService;
import java.util.List;
+import java.util.Set;
public interface UploadRealTimeMonitoringDataService extends BaseService<UploadRealTimeMonitoringData> {
@@ -14,5 +15,6 @@
* @return
*/
List<UploadRealTimeMonitoringData> getDataByOrderCode(String code);
-
+ List<UploadRealTimeMonitoringData> getDataAll(Set<String> values, Integer page, Integer size);
+
}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java
index adfda0b..89cf4d0 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java
@@ -6,6 +6,8 @@
import com.ruoyi.integration.iotda.constant.IotConstant;
import com.ruoyi.integration.mongodb.service.UploadRealTimeMonitoringDataService;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
@@ -13,6 +15,7 @@
import org.springframework.stereotype.Service;
import java.util.List;
+import java.util.Set;
@Service
public class UploadRealTimeMonitoringDataServiceImpl implements UploadRealTimeMonitoringDataService {
@@ -53,4 +56,21 @@
, UploadRealTimeMonitoringData.class);
return uploadRealTimeMonitoringData;
}
+
+ @Override
+ public List<UploadRealTimeMonitoringData> getDataAll(Set<String> values, Integer page, Integer size) {
+ Query query = new Query();
+ if (!values.isEmpty()){
+ query.addCriteria(Criteria.where("transaction_serial_number").in(values));
+ }
+ // 设置分页
+ Pageable pageable = PageRequest.of(page, size);
+ query.with(pageable);
+
+ List<UploadRealTimeMonitoringData> uploadRealTimeMonitoringData = mongoTemplate.find(
+ query.with(Sort.by("create_time"))
+ , UploadRealTimeMonitoringData.class);
+ return uploadRealTimeMonitoringData;
+ }
+
}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
index f08ce69..f405a62 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -1,5 +1,7 @@
package com.ruoyi.order.controller;
import java.math.BigDecimal;
+import java.time.DayOfWeek;
+import java.time.LocalDate;
import java.time.LocalDateTime;
@@ -7,6 +9,7 @@
import com.ruoyi.account.api.feignClient.AppUserCarClient;
import com.ruoyi.account.api.feignClient.AppUserClient;
import com.ruoyi.account.api.model.TAppUserCar;
+import com.ruoyi.chargingPile.api.dto.GetSiteListDTO;
import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient;
import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient;
import com.ruoyi.chargingPile.api.feignClient.ParkingLotClient;
@@ -17,11 +20,18 @@
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.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.order.api.query.TChargingCountQuery;
@@ -34,12 +44,15 @@
import com.ruoyi.order.dto.OrderEvaluateVo;
import com.ruoyi.order.dto.*;
import com.ruoyi.order.service.*;
+import com.ruoyi.order.util.PreviousSixMonths;
import com.ruoyi.payment.api.feignClient.AliPaymentClient;
import com.ruoyi.payment.api.feignClient.WxPaymentClient;
import com.ruoyi.payment.api.vo.AliQueryOrder;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
+import jdk.nashorn.internal.runtime.ListAdapter;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
@@ -48,10 +61,12 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
-import java.util.Collections;
+import java.time.YearMonth;
+import java.time.temporal.ChronoUnit;
+import java.time.temporal.TemporalAdjusters;
+import java.util.*;
import java.util.List;
-import java.util.Map;
-import java.util.List;
+import java.util.stream.Collectors;
/**
* <p>
@@ -72,18 +87,18 @@
private TokenService tokenService;
@Autowired
private TOrderEvaluateService orderEvaluateService;
-
+
@Resource
private WxPaymentClient wxPaymentClient;
-
+
@Resource
private RedisService redisService;
-
+
@Resource
private AliPaymentClient aliPaymentClient;
@Resource
private TShoppingOrderService shoppingOrderService;
-
+
@Autowired
private AppUserClient appUserClient;
@@ -91,62 +106,74 @@
private TVipOrderService vipOrderService;
@Resource
private ParkingLotClient parkingLotClient;
- @Resource private TChargingOrderRefundService chargingOrderRefundService;
+ @Resource
+ private TChargingOrderRefundService chargingOrderRefundService;
- @Resource private TShoppingOrderRefundService shoppingOrderRefundService;
- @Resource private TVipOrderRefundService vipOrderRefundService;
- @Resource private SiteClient siteClient;
- @Resource private ChargingPileClient chargingPileClient;
- @Resource private ChargingGunClient chargingGunClient;
- @Resource private AppUserCarClient appUserCarClient;
- @Resource private TChargingOrderAccountingStrategyService chargingOrderAccountingStrategyService;
+ @Resource
+ private TShoppingOrderRefundService shoppingOrderRefundService;
+ @Resource
+ private TVipOrderRefundService vipOrderRefundService;
+ @Resource
+ private SiteClient siteClient;
+ @Resource
+ private ChargingPileClient chargingPileClient;
+ @Resource
+ private ChargingGunClient chargingGunClient;
+ @Resource
+ private AppUserCarClient appUserCarClient;
+ @Resource
+ private TChargingOrderAccountingStrategyService chargingOrderAccountingStrategyService;
+
+
+
+
@ResponseBody
@PostMapping(value = "/pay/order/list")
@ApiOperation(value = "列表", tags = {"管理后台-支付订单-订单信息"})
- public R<PageInfo<PayOrderDto>> payOrderList(@RequestBody PayOrderQueryDto payOrderQueryDto){
- return chargingOrderService.payOrderQuery(payOrderQueryDto);
+ public R<PageInfo<PayOrderDto>> payOrderList(@RequestBody PayOrderQueryDto payOrderQueryDto) {
+ return chargingOrderService.payOrderQuery(payOrderQueryDto);
}
@ResponseBody
@GetMapping(value = "/pay/order/pay/detail")
@ApiOperation(value = "支付信息", tags = {"管理后台-支付订单-订单信息"})
- public R<PayOrderInfoDto> payOrderList(Long orderId,Integer type){
- switch (type){
- case 1:
- TChargingOrder byId = chargingOrderService.getById(orderId);
- PayOrderInfoDto payOrderInfoDto = new PayOrderInfoDto();
- payOrderInfoDto.setOrderId(byId.getId().toString());
- payOrderInfoDto.setCode(byId.getCode());
- payOrderInfoDto.setTradeNo(byId.getRechargeSerialNumber());
- payOrderInfoDto.setPayType(byId.getRechargePaymentType());
- payOrderInfoDto.setPayAmount(byId.getPaymentAmount());
- payOrderInfoDto.setPayTime(byId.getPayTime());
- payOrderInfoDto.setRefundAmount(byId.getRefundAmount());
- return R.ok(payOrderInfoDto);
- case 2:
- TShoppingOrder byId1 = shoppingOrderService.getById(orderId);
- PayOrderInfoDto payOrderInfoDto1 = new PayOrderInfoDto();
- payOrderInfoDto1.setOrderId(byId1.getId().toString());
- payOrderInfoDto1.setCode(byId1.getCode());
- payOrderInfoDto1.setTradeNo(byId1.getSerialNumber());
- payOrderInfoDto1.setPayType(byId1.getPaymentType());
- payOrderInfoDto1.setPayAmount(byId1.getPaymentAmount());
- payOrderInfoDto1.setPayTime(byId1.getPayTime());
- payOrderInfoDto1.setRefundAmount(byId1.getRefundAmount());
- return R.ok(payOrderInfoDto1);
- case 3 :
- TVipOrder byId2 = vipOrderService.getById(orderId);
- PayOrderInfoDto payOrderInfoDto2 = new PayOrderInfoDto();
- payOrderInfoDto2.setOrderId(byId2.getId().toString());
- payOrderInfoDto2.setCode(byId2.getCode());
- payOrderInfoDto2.setTradeNo(byId2.getSerialNumber());
- payOrderInfoDto2.setPayType(byId2.getPaymentType());
- payOrderInfoDto2.setPayAmount(byId2.getPaymentAmount());
- payOrderInfoDto2.setPayTime(byId2.getPayTime());
- payOrderInfoDto2.setRefundAmount(byId2.getRefundAmount());
- return R.ok(payOrderInfoDto2);
- //todo luo 停车场订单
+ public R<PayOrderInfoDto> payOrderList(Long orderId, Integer type) {
+ switch (type) {
+ case 1:
+ TChargingOrder byId = chargingOrderService.getById(orderId);
+ PayOrderInfoDto payOrderInfoDto = new PayOrderInfoDto();
+ payOrderInfoDto.setOrderId(byId.getId().toString());
+ payOrderInfoDto.setCode(byId.getCode());
+ payOrderInfoDto.setTradeNo(byId.getRechargeSerialNumber());
+ payOrderInfoDto.setPayType(byId.getRechargePaymentType());
+ payOrderInfoDto.setPayAmount(byId.getPaymentAmount());
+ payOrderInfoDto.setPayTime(byId.getPayTime());
+ payOrderInfoDto.setRefundAmount(byId.getRefundAmount());
+ return R.ok(payOrderInfoDto);
+ case 2:
+ TShoppingOrder byId1 = shoppingOrderService.getById(orderId);
+ PayOrderInfoDto payOrderInfoDto1 = new PayOrderInfoDto();
+ payOrderInfoDto1.setOrderId(byId1.getId().toString());
+ payOrderInfoDto1.setCode(byId1.getCode());
+ payOrderInfoDto1.setTradeNo(byId1.getSerialNumber());
+ payOrderInfoDto1.setPayType(byId1.getPaymentType());
+ payOrderInfoDto1.setPayAmount(byId1.getPaymentAmount());
+ payOrderInfoDto1.setPayTime(byId1.getPayTime());
+ payOrderInfoDto1.setRefundAmount(byId1.getRefundAmount());
+ return R.ok(payOrderInfoDto1);
+ case 3:
+ TVipOrder byId2 = vipOrderService.getById(orderId);
+ PayOrderInfoDto payOrderInfoDto2 = new PayOrderInfoDto();
+ payOrderInfoDto2.setOrderId(byId2.getId().toString());
+ payOrderInfoDto2.setCode(byId2.getCode());
+ payOrderInfoDto2.setTradeNo(byId2.getSerialNumber());
+ payOrderInfoDto2.setPayType(byId2.getPaymentType());
+ payOrderInfoDto2.setPayAmount(byId2.getPaymentAmount());
+ payOrderInfoDto2.setPayTime(byId2.getPayTime());
+ payOrderInfoDto2.setRefundAmount(byId2.getRefundAmount());
+ return R.ok(payOrderInfoDto2);
+ //todo luo 停车场订单
// case 4:
// TParkingRecord byId3 = parkingLotClient.getRecordById(orderId).getData();
// PayOrderInfoDto payOrderInfoDto3 = new PayOrderInfoDto();
@@ -159,16 +186,15 @@
// payOrderInfoDto3.setRefundAmount(new BigDecimal("0"));
-
-
- }
+ }
return R.ok();
}
+
@ResponseBody
@GetMapping(value = "/pay/order/refund/detail")
@ApiOperation(value = "退款信息", tags = {"管理后台-支付订单-订单信息"})
- public R refundDetail(Long orderId,Integer type){
+ public R refundDetail(Long orderId, Integer type) {
switch (type) {
case 1:
List<TChargingOrderRefund> byId = chargingOrderRefundService.lambdaQuery().eq(TChargingOrderRefund::getChargingOrderId, orderId).orderByDesc(TChargingOrderRefund::getRefundTime).list();
@@ -188,7 +214,7 @@
@ResponseBody
@GetMapping(value = "/pay/order/charging")
@ApiOperation(value = "充电信息", tags = {"管理后台-支付订单-订单信息"})
- public R refundDetail(Long orderId){
+ public R refundDetail(Long orderId) {
PayOrderChargingInfo payOrderChargingInfo = new PayOrderChargingInfo();
TChargingOrder byId = chargingOrderService.getById(orderId);
List<Site> data = siteClient.getSiteByIds(Collections.singletonList(byId.getSiteId())).getData();
@@ -201,41 +227,39 @@
payOrderChargingInfo.setCarNum(data3.get(0).getLicensePlate());
return R.ok();
}
+
@ResponseBody
@GetMapping(value = "/pay/order/charging/details")
@ApiOperation(value = "充电明细", tags = {"管理后台-支付订单-订单信息"})
- public R<List<TChargingOrderAccountingStrategy>> chargingDetail(Long orderId){
+ public R<List<TChargingOrderAccountingStrategy>> chargingDetail(Long orderId) {
List<TChargingOrderAccountingStrategy> list = chargingOrderAccountingStrategyService.lambdaQuery().eq(TChargingOrderAccountingStrategy::getChargingOrderId, orderId).orderByDesc(TChargingOrderAccountingStrategy::getStartTime).list();
return R.ok(list);
}
-
@ResponseBody
@PostMapping(value = "/pay/order/refund/list")
@ApiOperation(value = "充电信息", tags = {"管理后台-支付订单-退款订单"})
- public R<PageInfo<TChargingOrderRefund>> refundList(@RequestBody ChargingRefundDto chargingRefundDto){
- return chargingOrderService.getRefundList(chargingRefundDto);
+ public R<PageInfo<TChargingOrderRefund>> refundList(@RequestBody ChargingRefundDto chargingRefundDto) {
+ return chargingOrderService.getRefundList(chargingRefundDto);
}
-
-
-
@ResponseBody
@PostMapping(value = "/chargingOrder")
@ApiOperation(value = "充电桩订单列表", tags = {"管理后台-订单管理"})
- public AjaxResult<TCharingOrderVO> chargingOrder(@RequestBody ChargingOrderQuery dto){
+ public AjaxResult<TCharingOrderVO> chargingOrder(@RequestBody ChargingOrderQuery dto) {
List<Long> data = appUserClient.getUserIdsByPhone(dto.getPhone()).getData();
dto.setUserIds(data);
TCharingOrderVO res = chargingOrderService.chargingOrder(dto);
return AjaxResult.success(res);
}
+
@ResponseBody
@PostMapping(value = "/chargingOrderInfo")
@ApiOperation(value = "充电桩订单列表查看详情", tags = {"管理后台-订单管理"})
- public AjaxResult<TCharingOrderVO> chargingOrderInfo(String orderId){
+ public AjaxResult<TCharingOrderVO> chargingOrderInfo(String orderId) {
return AjaxResult.success();
}
@@ -243,11 +267,12 @@
@ResponseBody
@PostMapping(value = "/addEvaluate")
@ApiOperation(value = "添加评价", tags = {"小程序-扫一扫"})
- public AjaxResult getMyChargingOrderList(@RequestBody OrderEvaluateVo dto){
+ public AjaxResult getMyChargingOrderList(@RequestBody OrderEvaluateVo dto) {
dto.setAppUserId(tokenService.getLoginUserApplet().getUserId());
orderEvaluateService.addOrderEvaluate(dto);
return AjaxResult.success();
}
+
/**
* 查询用户最近一次充电记录使用的车辆
* @param
@@ -258,11 +283,11 @@
List<TChargingOrder> list = chargingOrderService.list(new LambdaQueryWrapper<TChargingOrder>()
.eq(TChargingOrder::getAppUserId, tokenService.getLoginUserApplet().getUserId())
.isNotNull(TChargingOrder::getAppUserCarId));
- if (!list.isEmpty()){
+ if (!list.isEmpty()) {
// 最近使用的车辆id
Long size = list.get(0).getAppUserCarId();
return R.ok(size);
- }else{
+ } else {
return R.ok(-1L);
}
}
@@ -276,10 +301,11 @@
public R<Integer> getChargingCount(@RequestBody TChargingCountQuery req) {
int size = chargingOrderService.list(new LambdaQueryWrapper<TChargingOrder>()
.eq(TChargingOrder::getAppUserId, req.getUserId())
- .eq(TChargingOrder::getRechargePaymentStatus,2)
+ .eq(TChargingOrder::getRechargePaymentStatus, 2)
.between(TChargingOrder::getStartTime, req.getStartTime(), req.getEndTime())).size();
return R.ok(size);
}
+
//用户订单数量
@PostMapping(value = "/useOrderCount")
public R<Long> useOrderCount(@RequestParam("userId") Long userId) {
@@ -287,142 +313,400 @@
return R.ok(count);
}
+
//订单详情
@PostMapping(value = "/detail")
public R<TChargingOrder> detail(@RequestParam("orderId") Long orderId) {
return R.ok(chargingOrderService.getById(orderId));
}
-
+
+ @PostMapping(value = "/getList")
+ public R<List<TChargingOrder>> getList(@RequestParam("siteId") Integer siteId) {
+
+ List<TChargingOrder> list = chargingOrderService.lambdaQuery().eq(TChargingOrder::getSiteId, siteId).list();
+ return R.ok(list);
+ }
+
+ @PostMapping(value = "/getBySiteIdAndTime")
+ public R<List<ChargingOrderGroup>> getBySiteIdAndTime(@RequestBody ChargingPercentProvinceDto chargingPercentProvinceDto) {
+
+ List<ChargingOrderGroup> groups = chargingOrderService.chargingOrderGroup(chargingPercentProvinceDto);
+ return R.ok(groups);
+ }
+
/**
* 根据充电枪id获取正在进行中的订单
* @param chargingGunId 充电枪id
* @return
*/
@PostMapping(value = "/getOrderDetailByGunId")
- public R<TChargingOrder> getOrderDetailByGunId(@RequestParam("chargingGunId") Integer chargingGunId){
+ public R<TChargingOrder> getOrderDetailByGunId(@RequestParam("chargingGunId") Integer chargingGunId) {
TChargingOrder one = chargingOrderService.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getChargingGunId, chargingGunId)
.eq(TChargingOrder::getDelFlag, 0).eq(TChargingOrder::getStatus, 3));
return R.ok(one);
}
-
-
-
-
+
+
@ResponseBody
@GetMapping(value = "/getMyChargingOrderList")
@ApiOperation(value = "获取充电记录列表", tags = {"小程序-充电记录"})
- public AjaxResult<Map<String, Object>> getMyChargingOrderList(GetMyChargingOrderList query){
+ public AjaxResult<Map<String, Object>> getMyChargingOrderList(GetMyChargingOrderList query) {
Map<String, Object> orderList = chargingOrderService.getMyChargingOrderList(query);
return AjaxResult.success(orderList);
}
-
-
+
+
@ResponseBody
@GetMapping(value = "/getMyChargingOrderInfo")
@ApiOperation(value = "获取充电记订单明细", tags = {"小程序-充电记录"})
- public AjaxResult<MyChargingOrderInfo> getMyChargingOrderInfo(String id){
+ public AjaxResult<MyChargingOrderInfo> getMyChargingOrderInfo(String id) {
MyChargingOrderInfo myChargingOrderInfo = chargingOrderService.getMyChargingOrderInfo(id);
return AjaxResult.success(myChargingOrderInfo);
}
-
-
-
+
+
@ResponseBody
@GetMapping(value = "/getNoInvoicedOrder")
@ApiOperation(value = "获取未开票的订单数据", tags = {"小程序-充电发票"})
- public AjaxResult<List<MyChargingOrderList>> getNoInvoicedOrder(GetNoInvoicedOrder query){
+ public AjaxResult<List<MyChargingOrderList>> getNoInvoicedOrder(GetNoInvoicedOrder query) {
List<MyChargingOrderList> list = chargingOrderService.getNoInvoicedOrder(query);
return AjaxResult.success(list);
}
-
-
-
+
+
@ResponseBody
@PostMapping(value = "/paymentChargingOrder")
@ApiOperation(value = "支付充电充值费用", tags = {"小程序-扫一扫"})
- public AjaxResult paymentChargingOrder(@RequestBody AddChargingOrder addChargingOrder){
+ public AjaxResult paymentChargingOrder(@RequestBody AddChargingOrder addChargingOrder) {
return chargingOrderService.paymentChargingOrder(addChargingOrder);
}
-
+
/**
* 充电充值支付回调
* @param request
*/
@ResponseBody
@PostMapping(value = "/chargingOrderWXCallback")
- public void chargingOrderWXCallback(HttpServletRequest request){
+ public void chargingOrderWXCallback(HttpServletRequest request) {
Map<String, Object> data = wxPaymentClient.payNotify(request).getData();
- if(null != data){
+ if (null != data) {
String out_trade_no = data.get("out_trade_no").toString();
String transaction_id = data.get("transaction_id").toString();
String attach = data.get("attach").toString();
AjaxResult ajaxResult = chargingOrderService.chargingOrderCallback(1, out_trade_no, transaction_id, attach);
- if(ajaxResult.isSuccess()){
+ if (ajaxResult.isSuccess()) {
wxPaymentClient.ack();
}
}
}
-
-
+
+
/**
* 支付宝支付成功后的回调
*/
@ResponseBody
@PostMapping(value = "/chargingOrderALICallback")
- public void chargingOrderALICallback(@RequestBody AliQueryOrder aliQueryOrder, HttpServletResponse response){
+ public void chargingOrderALICallback(@RequestBody AliQueryOrder aliQueryOrder, HttpServletResponse response) {
try {
String out_trade_no = aliQueryOrder.getOutTradeNo();
String transaction_id = aliQueryOrder.getTradeNo();
String attach = aliQueryOrder.getPassbackParams();
AjaxResult ajaxResult = chargingOrderService.chargingOrderCallback(2, out_trade_no, transaction_id, attach);
- if(ajaxResult.isSuccess()){
+ if (ajaxResult.isSuccess()) {
PrintWriter writer = response.getWriter();
writer.println("success");
writer.flush();
writer.close();
}
- }catch (Exception e){
+ } catch (Exception e) {
e.printStackTrace();
}
}
-
-
-
+
+
@ResponseBody
@GetMapping(value = "/preChargeCheck/{id}")
@ApiOperation(value = "获取安全检测数据", tags = {"小程序-扫一扫"})
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "充电枪id", required = true)
})
- public AjaxResult<PreChargeCheck> preChargeCheck(@PathVariable Integer id){
+ public AjaxResult<PreChargeCheck> preChargeCheck(@PathVariable Integer id) {
String key = "AQJC_" + id;
Object cacheObject = redisService.getCacheObject(key);
return AjaxResult.success(cacheObject);
}
-
-
-
+
+
@ResponseBody
@GetMapping(value = "/getChargingDetails/{id}")
@ApiOperation(value = "获取充电中页面数据", tags = {"小程序-扫一扫"})
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "充电枪id", required = true)
})
- public AjaxResult<ChargingDetails> getChargingDetails(@PathVariable Integer id){
+ public AjaxResult<ChargingDetails> getChargingDetails(@PathVariable Integer id) {
ChargingDetails chargingDetails = chargingOrderService.getChargingDetails(id);
return AjaxResult.success(chargingDetails);
}
-
-
-
+
+
@ResponseBody
@PutMapping(value = "/stopCharging/{id}")
@ApiOperation(value = "手动停止充电", tags = {"小程序-扫一扫"})
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "订单id", required = true)
})
- public AjaxResult stopCharging(@PathVariable String id){
+ public AjaxResult stopCharging(@PathVariable String id) {
return chargingOrderService.stopCharging(id);
}
-}
+ @ResponseBody
+ @GetMapping(value = "/six/charge")
+ @ApiOperation(value = "电站收入分析", tags = {"后台-数据分析-平台收入分析"})
+ public R<List<SixChargingDto>> charge(Integer siteId) {
+ Long userId = SecurityUtils.getUserId();
+ //如果没传siteId,获取当前登陆人所有的siteIds
+ List<Integer> siteIds = new ArrayList<>();
+ if (siteId==null){
+ List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData();
+ for (GetSiteListDTO datum : data) {
+ siteIds.add(datum.getId());
+ }
+ }else {
+ siteIds.add(siteId);
+ }
+ LocalDate sixBefore = PreviousSixMonths.get();
+ //通过siteIds进行sql查询统计
+ List<SixChargingDto> chargingDtos = chargingOrderService.charge(sixBefore, siteIds);
+
+ return R.ok(chargingDtos);
+
+ }
+
+ @ResponseBody
+ @GetMapping(value = "/six/circle")
+ @ApiOperation(value = "电站收入占比", tags = {"后台-数据分析-平台收入分析"})
+ public R<List<SixCircleDto>> circle() {
+ Long userId = SecurityUtils.getUserId();
+ //获取当前登录的siteIds
+ List<Integer> siteIds = new ArrayList<>();
+ List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData();
+ for (GetSiteListDTO datum : data) {
+ siteIds.add(datum.getId());
+ }
+ //进行统计groupBySiteId
+ LocalDate sixBefore = PreviousSixMonths.get();
+
+ List<SixCircleDto> sixCircleDtos = chargingOrderService.circle(siteIds,sixBefore);
+ for (SixCircleDto sixCircleDto : sixCircleDtos) {
+ Site site = siteClient.getSiteByIds(Arrays.asList(sixCircleDto.getSiteId())).getData().get(0);
+ sixCircleDto.setSiteName(site.getName());
+ }
+ return R.ok(sixCircleDtos);
+
+ }
+
+
+ @ResponseBody
+ @GetMapping(value = "/six/shop")
+ @ApiOperation(value = "购物收入", tags = {"后台-数据分析-平台收入分析"})
+ public R<List<SixShopDto>> shop(Integer status) {
+ //count近6个月的数据
+ LocalDate sixBefore = PreviousSixMonths.get();
+ List<SixShopDto> sixShopDtos = shoppingOrderService.sixBefore(sixBefore,status);
+ return R.ok(sixShopDtos);
+ }
+
+ @ResponseBody
+ @GetMapping(value = "/six/vip")
+ @ApiOperation(value = "vip收入", tags = {"后台-数据分析-平台收入分析"})
+ public R<List<SixVipDto>> vip() {
+ //count近6个月的数据
+ LocalDate sixBefore = PreviousSixMonths.get();
+ List<SixVipDto> vipDtos = vipOrderService.sixBefore(sixBefore);
+ return R.ok(vipDtos);
+ }
+
+ @ResponseBody
+ @GetMapping(value = "/six/total")
+ @ApiOperation(value = "底部数据分类", tags = {"后台-数据分析-平台收入分析"})
+ public R<Map<String,BigDecimal>> total() {
+ //count近6个月的数据
+ LocalDate sixBefore = PreviousSixMonths.get();
+ Map<String,BigDecimal> map = chargingOrderService.countAll(sixBefore);
+ BigDecimal data = parkingLotClient.getRecordAmount(sixBefore).getData();
+ map.put("parkingAmount",data);
+ BigDecimal data1 = shoppingOrderService.getSumAmount(sixBefore);
+ map.put("shopAmount",data1);
+ BigDecimal data2 = vipOrderService.getSumAmout(sixBefore);
+ map.put("vipAmount",data2);
+
+ return R.ok(map);
+ }
+
+ @Resource
+ private UploadRealTimeMonitoringDataClient uploadRealTimeMonitoringDataClient;
+ @ResponseBody
+ @PostMapping(value = "/watch/chargingOrder")
+ @ApiOperation(value = "监控订单", tags = {"管理后台-订单管理"})
+ public AjaxResult<TCharingOrderVO> 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();
+
+
+ List<UploadRealTimeMonitoringData> data1 = uploadRealTimeMonitoringDataClient.getAll(strings, page, pageSize).getData();
+
+ List<ChargingOrderAndUploadRealTimeMonitoringDataDto> dtos = new ArrayList<>();
+ for (UploadRealTimeMonitoringData uploadRealTimeMonitoringData : data1) {
+ ChargingOrderAndUploadRealTimeMonitoringDataDto dataDto = new ChargingOrderAndUploadRealTimeMonitoringDataDto();
+ BeanUtils.copyProperties(uploadRealTimeMonitoringData,dataDto);
+ BeanUtils.copyProperties(map.get(uploadRealTimeMonitoringData.getCharging_pile_code()),dataDto);
+ dtos.add(dataDto);
+ }
+
+
+ return AjaxResult.success(res);
+ }
+
+
+
+
+// @ResponseBody
+// @PostMapping(value = "/charging/statistics")
+// @ApiOperation(value = "统计", tags = {"管理后台-数据分析-充电运营分析"})
+// public R<TCharingOrderVO> watchChargingOrder(@RequestBody ChargingStatisticsQueryDto statisticsQueryDto){
+// List<Integer> siteIds =new ArrayList<>();
+// if (statisticsQueryDto.getSiteId()==null) {
+// Long userId = SecurityUtils.getUserId();
+// //获取当前登录的siteIds
+// List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData();
+// for (GetSiteListDTO datum : data) {
+// siteIds.add(datum.getId());
+// }
+// }else {
+// siteIds.add(statisticsQueryDto.getSiteId());
+// }
+//
+//
+// LocalDate start = null;
+// LocalDate end = null;
+// if (statisticsQueryDto.getDayType()==1){
+// start = LocalDate.now();
+//
+// }else if (statisticsQueryDto.getDayType()==2){
+// LocalDate today = LocalDate.now();
+//
+// // 获取本周一的日期
+// LocalDate mondayThisWeek = today.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
+//
+// System.out.println("本周一是: " + mondayThisWeek);
+// }
+// else if (statisticsQueryDto.getDayType()==3){
+// // 获取当前日期
+// LocalDate today = LocalDate.now();
+//
+// // 获取本月1号的日期
+// YearMonth yearMonth = YearMonth.from(today);
+// start = yearMonth.atDay(1);
+//
+// System.out.println("本月1号是: " + start);
+// }else if (statisticsQueryDto.getDayType()==4){
+// LocalDate today = LocalDate.now();
+// // 获取当前年份
+// int currentYear = today.getYear();
+// // 获取今年1月1日的日期
+// start = LocalDate.of(currentYear, 1, 1);
+// System.out.println("今年1月1日是: " + start);
+// }else if (statisticsQueryDto.getDayType()==5){
+//
+// // 获取今年1月1日的日期
+// start = statisticsQueryDto.getStartTime();
+// end = statisticsQueryDto.getEndTime();
+// }
+// List<TChargingOrder> list = chargingOrderService.lambdaQuery().ge(TChargingOrder::getStartTime, start).le(TChargingOrder::getEndTime, end).in(TChargingOrder::getSiteId, siteIds).list();
+// List<Long> chargingOrderIds = list.stream().map(TChargingOrder::getId).collect(Collectors.toList());
+// //上方饼图
+// List<Map<String,BigDecimal>> maps = chargingOrderService.getSumByType(chargingOrderIds);
+//
+// if (statisticsQueryDto.getDayType()==1){
+// List<Map<String,BigDecimal>> maps1 = chargingOrderService.getDateData(chargingOrderIds);
+//
+// }else if (statisticsQueryDto.getDayType()==2){
+// List<Map<String,BigDecimal>> maps1 = chargingOrderService.getWeekData(chargingOrderIds);
+// }else if (statisticsQueryDto.getDayType()==3){
+// List<Map<String,BigDecimal>> maps1 = chargingOrderService.getMonthData(chargingOrderIds);
+// }else if (statisticsQueryDto.getDayType()==4){
+// List<Map<String,BigDecimal>> maps1 = chargingOrderService.getYearData(chargingOrderIds);
+// }
+//
+//
+//
+//
+//
+//
+// }
+
+ public static void main(String[] args) {
+ // 示例数据
+ List<TChargingOrder> list = getSampleData();
+ System.err.println(list);
+ List<Map<String, BigDecimal>> result = processData(list);
+
+ result.forEach(System.out::println);
+ }
+
+
+ private static List<TChargingOrder> getSampleData() {
+ // 这里可以替换为实际查询逻辑
+ List<TChargingOrder> list = new ArrayList<>();
+ // 示例数据
+ for (int i = 0; i < 24; i++) {
+ TChargingOrder order = new TChargingOrder();
+ order.setStartTime(LocalDateTime.now().minusHours(23 - i));
+ order.setOrderAmount(BigDecimal.valueOf(i + 1));
+ list.add(order);
+ }
+ return list;
+ }
+
+ private static List<Map<String, BigDecimal>> processData(List<TChargingOrder> list) {
+ Map<LocalDateTime, BigDecimal> hourlySum = new HashMap<>();
+
+ // 按每个小时分组并求和
+ for (TChargingOrder order : list) {
+ LocalDateTime hour = order.getStartTime().truncatedTo(ChronoUnit.HOURS);
+ BigDecimal amount = order.getOrderAmount();
+ hourlySum.merge(hour, amount, BigDecimal::add);
+ }
+
+ // 创建结果列表
+ List<Map<String, BigDecimal>> resultList = new ArrayList<>();
+ for (int i = 1; i <= 23; i++) {
+ LocalDateTime keyHour = LocalDateTime.now().withHour(i);
+ BigDecimal sum = BigDecimal.ZERO;
+
+ // 计算键之后的一小时的数据之和
+ for (int j = i + 1; j <= 23; j++) {
+ LocalDateTime nextHour = LocalDateTime.now().withHour(j);
+ sum = sum.add(hourlySum.getOrDefault(nextHour, BigDecimal.ZERO));
+ }
+
+ Map<String, BigDecimal> entry = new HashMap<>();
+ entry.put(String.valueOf(i), sum);
+ resultList.add(entry);
+ }
+
+ return resultList;
+ }
+
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/ChargingStatisticsQueryDto.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/ChargingStatisticsQueryDto.java
new file mode 100644
index 0000000..c75710d
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/ChargingStatisticsQueryDto.java
@@ -0,0 +1,18 @@
+package com.ruoyi.order.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDate;
+
+@Data
+public class ChargingStatisticsQueryDto {
+ @ApiModelProperty("电站id")
+ private Integer siteId;
+ @ApiModelProperty("1今日2本周3本月4今年5自定义")
+ private Integer dayType;
+ @ApiModelProperty("开始时间")
+ private LocalDate startTime;
+ @ApiModelProperty("结束时间")
+ private LocalDate endTime;
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/SixChargingDto.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/SixChargingDto.java
new file mode 100644
index 0000000..1d0784b
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/SixChargingDto.java
@@ -0,0 +1,19 @@
+package com.ruoyi.order.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+@Data
+public class SixChargingDto {
+ private String month;
+ @ApiModelProperty("电费")
+ private BigDecimal electrovalence;
+ @ApiModelProperty("服务费")
+ private BigDecimal serviceCharge;
+
+
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/SixCircleDto.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/SixCircleDto.java
new file mode 100644
index 0000000..e87b6ed
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/SixCircleDto.java
@@ -0,0 +1,11 @@
+package com.ruoyi.order.dto;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+@Data
+public class SixCircleDto {
+ Integer siteId;
+ BigDecimal paymentAmount;
+ String siteName;
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/SixMonthTotal.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/SixMonthTotal.java
new file mode 100644
index 0000000..060b7bf
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/SixMonthTotal.java
@@ -0,0 +1,5 @@
+package com.ruoyi.order.dto;
+
+public class SixMonthTotal {
+
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/SixShopDto.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/SixShopDto.java
new file mode 100644
index 0000000..28ea1b6
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/SixShopDto.java
@@ -0,0 +1,13 @@
+package com.ruoyi.order.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class SixShopDto {
+ private String month;
+ private Long count;
+ private BigDecimal paymentAmount;
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/SixVipDto.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/SixVipDto.java
new file mode 100644
index 0000000..52df141
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/SixVipDto.java
@@ -0,0 +1,13 @@
+package com.ruoyi.order.dto;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class SixVipDto {
+ private String month;
+ private String vipName;
+ private Integer vipId;
+ private BigDecimal paymentAmount;
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java
index d001f09..4c5c6d6 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java
@@ -1,18 +1,19 @@
package com.ruoyi.order.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.common.core.dto.ChargingOrderGroup;
+import com.ruoyi.common.core.dto.ChargingPercentProvinceDto;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.order.api.model.TChargingOrder;
import com.ruoyi.order.api.model.TChargingOrderRefund;
import com.ruoyi.order.api.query.ChargingOrderQuery;
import com.ruoyi.order.api.vo.ChargingOrderVO;
-import com.ruoyi.order.dto.ChargingRefundDto;
-import com.ruoyi.order.dto.GetNoInvoicedOrder;
-import com.ruoyi.order.dto.PayOrderDto;
-import com.ruoyi.order.dto.PayOrderQueryDto;
+import com.ruoyi.order.dto.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
+import java.math.BigDecimal;
+import java.time.LocalDate;
import java.util.List;
import java.util.Map;
@@ -55,4 +56,22 @@
List<PayOrderDto> payOrderQuery(@Param("pageInfo")PageInfo<PayOrderDto> pageInfo,@Param("data") PayOrderQueryDto payOrderQueryDto);
List<TChargingOrderRefund> getRefundList(@Param("pageInfo")PageInfo<TChargingOrderRefund> pageInfo,@Param("data") ChargingRefundDto chargingRefundDto);
+
+ List<ChargingOrderGroup> chargingOrderGroup(@Param("chargingPercentProvinceDto")ChargingPercentProvinceDto chargingPercentProvinceDto);
+
+ List<SixChargingDto> charge(@Param("sixBefore")LocalDate sixBefore,@Param("siteIds") List<Integer> siteIds);
+
+ List<SixCircleDto> circle(@Param("siteIds")List<Integer> siteIds,@Param("sixBefore")LocalDate sixBefore);
+
+ Map<String, BigDecimal> countAll(@Param("sixBefore")LocalDate sixBefore);
+
+ List<Map<String, BigDecimal>> getSumByType(@Param("chargingOrderIds")List<Long> chargingOrderIds);
+
+ List<Map<String, BigDecimal>> getDateData(List<Long> chargingOrderIds);
+
+ List<Map<String, BigDecimal>> getWeekData(List<Long> chargingOrderIds);
+
+ List<Map<String, BigDecimal>> getMonthData(List<Long> chargingOrderIds);
+
+ List<Map<String, BigDecimal>> getYearData(List<Long> chargingOrderIds);
}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TShoppingOrderMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TShoppingOrderMapper.java
index ca946f5..4dd50d6 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TShoppingOrderMapper.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TShoppingOrderMapper.java
@@ -6,9 +6,12 @@
import com.ruoyi.order.api.query.ShoppingOrderQuery;
import com.ruoyi.order.api.query.TActivityStatisticsQuery;
import com.ruoyi.order.api.vo.TActivityStatisticslVO;
+import com.ruoyi.order.dto.SixShopDto;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
+import java.math.BigDecimal;
+import java.time.LocalDate;
import java.util.List;
/**
@@ -38,4 +41,7 @@
List<TShoppingOrder> pageList(@Param("pageInfo")PageInfo<TShoppingOrder> pageInfo, @Param("req")ShoppingOrderQuery query, @Param("startTime1")String startTime1, @Param("startTime2")String startTime2);
+ List<SixShopDto> sixBefore(@Param("sixBefore")LocalDate sixBefore,@Param("status") Integer status);
+
+ BigDecimal getSumAmount(@Param("sixBefore")LocalDate sixBefore);
}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TVipOrderMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TVipOrderMapper.java
index 5f85ad8..67c387d 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TVipOrderMapper.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TVipOrderMapper.java
@@ -6,9 +6,12 @@
import com.ruoyi.order.api.model.TVipOrder;
import com.ruoyi.order.api.query.ShoppingOrderQuery;
import com.ruoyi.order.api.query.VipShoppingOrderQuery;
+import com.ruoyi.order.dto.SixVipDto;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
+import java.math.BigDecimal;
+import java.time.LocalDate;
import java.util.List;
/**
@@ -25,4 +28,7 @@
List<TVipOrder> pageList(@Param("pageInfo")PageInfo<TVipOrder> pageInfo, @Param("req") VipShoppingOrderQuery query, @Param("startTime1")String startTime1, @Param("startTime2")String startTime2);
+ List<SixVipDto> sixBefore(@Param("sixBefore")LocalDate sixBefore);
+
+ BigDecimal getSumAmout(@Param("sixBefore")LocalDate sixBefore);
}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
index abf4b75..340dda8 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
@@ -2,6 +2,8 @@
import com.baomidou.mybatisplus.extension.service.IService;
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.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.BasePage;
import com.ruoyi.common.core.web.page.PageInfo;
@@ -13,6 +15,8 @@
import com.ruoyi.order.dto.*;
import org.springframework.web.bind.annotation.RequestBody;
+import java.math.BigDecimal;
+import java.time.LocalDate;
import java.util.List;
import java.util.Map;
@@ -90,4 +94,22 @@
R<PageInfo<PayOrderDto>> payOrderQuery(PayOrderQueryDto payOrderQueryDto);
R<PageInfo<TChargingOrderRefund>> getRefundList(ChargingRefundDto chargingRefundDto);
+
+ List<ChargingOrderGroup> chargingOrderGroup(ChargingPercentProvinceDto chargingPercentProvinceDto);
+
+ List<SixChargingDto> charge(LocalDate sixBefore, List<Integer> siteIds);
+
+ List<SixCircleDto> circle(List<Integer> siteIds,LocalDate sixBefore);
+
+ Map<String, BigDecimal> countAll(LocalDate sixBefore);
+
+ List<Map<String, BigDecimal>> getSumByType(List<Long> chargingOrderIds);
+
+ List<Map<String, BigDecimal>> getDateData(List<Long> chargingOrderIds);
+
+ List<Map<String, BigDecimal>> getWeekData(List<Long> chargingOrderIds);
+
+ List<Map<String, BigDecimal>> getMonthData(List<Long> chargingOrderIds);
+
+ List<Map<String, BigDecimal>> getYearData(List<Long> chargingOrderIds);
}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TShoppingOrderService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TShoppingOrderService.java
index a103b1d..c75e0b8 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TShoppingOrderService.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TShoppingOrderService.java
@@ -8,13 +8,12 @@
import com.ruoyi.order.api.query.TActivityStatisticsQuery;
import com.ruoyi.order.api.vo.TActivityStatisticslVO;
import com.ruoyi.order.api.vo.TActivityVO;
-import com.ruoyi.order.dto.GetMyShoppingOrderList;
-import com.ruoyi.order.dto.GetNoInvoicedOrder;
-import com.ruoyi.order.dto.MyShoppingOrderInfo;
-import com.ruoyi.order.dto.MyShoppingOrderList;
+import com.ruoyi.order.dto.*;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
+import java.math.BigDecimal;
+import java.time.LocalDate;
import java.util.List;
/**
@@ -65,4 +64,7 @@
PageInfo<TShoppingOrder> pageList(ShoppingOrderQuery query);
+ List<SixShopDto> sixBefore(LocalDate sixBefore, Integer status);
+
+ BigDecimal getSumAmount(LocalDate sixBefore);
}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TVipOrderService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TVipOrderService.java
index 7090ba3..88ab8e6 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TVipOrderService.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TVipOrderService.java
@@ -4,6 +4,11 @@
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.order.api.model.TVipOrder;
import com.ruoyi.order.api.query.VipShoppingOrderQuery;
+import com.ruoyi.order.dto.SixVipDto;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.List;
/**
* <p>
@@ -16,4 +21,8 @@
public interface TVipOrderService extends IService<TVipOrder> {
PageInfo<TVipOrder> pageList(VipShoppingOrderQuery query);
+
+ List<SixVipDto> sixBefore(LocalDate sixBefore);
+
+ BigDecimal getSumAmout(LocalDate sixBefore);
}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
index 196a5ce..c4a7a3c 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.account.api.feignClient.AppUserCarClient;
import com.ruoyi.account.api.feignClient.AppUserClient;
@@ -17,6 +18,8 @@
import com.ruoyi.chargingPile.api.model.TChargingGun;
import com.ruoyi.chargingPile.api.model.TChargingPile;
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.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.BasePage;
import com.ruoyi.common.core.web.page.PageInfo;
@@ -46,6 +49,7 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
+import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
@@ -584,4 +588,50 @@
return R.ok(pageInfo);
}
+
+ @Override
+ public List<ChargingOrderGroup> chargingOrderGroup(ChargingPercentProvinceDto chargingPercentProvinceDto) {
+
+ return this.baseMapper.chargingOrderGroup(chargingPercentProvinceDto);
+ }
+
+ @Override
+ public List<SixChargingDto> charge(LocalDate sixBefore, List<Integer> siteIds) {
+ return this.baseMapper.charge(sixBefore,siteIds);
+ }
+
+ @Override
+ public List<SixCircleDto> circle(List<Integer> siteIds,LocalDate sixBefore) {
+ return this.baseMapper.circle(siteIds,sixBefore);
+ }
+
+ @Override
+ public Map<String, BigDecimal> countAll(LocalDate sixBefore) {
+ return this.baseMapper.countAll(sixBefore);
+ }
+
+ @Override
+ public List<Map<String, BigDecimal>> getSumByType(List<Long> chargingOrderIds) {
+ return this.baseMapper.getSumByType(chargingOrderIds);
+ }
+
+ @Override
+ public List<Map<String, BigDecimal>> getDateData(List<Long> chargingOrderIds) {
+ return this.baseMapper.getDateData(chargingOrderIds);
+ }
+
+ @Override
+ public List<Map<String, BigDecimal>> getWeekData(List<Long> chargingOrderIds) {
+ return this.baseMapper.getWeekData(chargingOrderIds);
+ }
+
+ @Override
+ public List<Map<String, BigDecimal>> getMonthData(List<Long> chargingOrderIds) {
+ return this.baseMapper.getMonthData(chargingOrderIds);
+ }
+
+ @Override
+ public List<Map<String, BigDecimal>> getYearData(List<Long> chargingOrderIds) {
+ return this.baseMapper.getYearData(chargingOrderIds);
+ }
}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java
index e894029..9034b92 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java
@@ -30,6 +30,7 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
+import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
@@ -355,4 +356,16 @@
pageInfo.setRecords(list);
return pageInfo;
}
+
+ @Override
+ public List<SixShopDto> sixBefore(LocalDate sixBefore, Integer status) {
+ return this.baseMapper.sixBefore(sixBefore,status);
+ }
+
+ @Override
+ public BigDecimal getSumAmount(LocalDate sixBefore) {
+ return this.baseMapper.getSumAmount(sixBefore);
+ }
+
+
}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TVipOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TVipOrderServiceImpl.java
index d022a8c..ffd14da 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TVipOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TVipOrderServiceImpl.java
@@ -5,11 +5,14 @@
import com.ruoyi.order.api.model.TShoppingOrder;
import com.ruoyi.order.api.model.TVipOrder;
import com.ruoyi.order.api.query.VipShoppingOrderQuery;
+import com.ruoyi.order.dto.SixVipDto;
import com.ruoyi.order.mapper.TVipOrderMapper;
import com.ruoyi.order.service.TVipOrderService;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
+import java.math.BigDecimal;
+import java.time.LocalDate;
import java.util.List;
/**
@@ -40,4 +43,14 @@
pageInfo.setRecords(list);
return pageInfo;
}
+
+ @Override
+ public List<SixVipDto> sixBefore(LocalDate sixBefore) {
+ return this.baseMapper.sixBefore(sixBefore);
+ }
+
+ @Override
+ public BigDecimal getSumAmout(LocalDate sixBefore) {
+ return this.baseMapper.getSumAmout(sixBefore);
+ }
}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/PreviousSixMonths.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/PreviousSixMonths.java
new file mode 100644
index 0000000..809b978
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/PreviousSixMonths.java
@@ -0,0 +1,20 @@
+package com.ruoyi.order.util;
+
+import java.time.LocalDate;
+import java.time.Period;
+import java.time.temporal.TemporalAdjusters;
+
+public class PreviousSixMonths {
+ public static LocalDate get() {
+ // 获取当前日期
+ LocalDate currentDate = LocalDate.now();
+
+ // 计算六个月前的日期
+ LocalDate sixMonthsAgo = currentDate.minusMonths(6);
+
+ // 调整为该月的第一天
+ LocalDate firstDayOfSixMonthsAgo = sixMonthsAgo.with(TemporalAdjusters.firstDayOfMonth());
+ return firstDayOfSixMonthsAgo;
+
+ }
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
index 4a8d45d..151b6c1 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
@@ -233,4 +233,189 @@
</select>
+ <select id="chargingOrderGroup" resultType="com.ruoyi.common.core.dto.ChargingOrderGroup">
+ SELECT SUM(charging_capacity) ,site_id
+ FROM t_charging_order
+ GROUP BY site_id
+ <where>
+ <if test="chargingPercentProvinceDto.date1 != null">
+ AND create_time >= #{chargingPercentProvinceDto.date1}
+ </if>
+ <if test="chargingPercentProvinceDto.date2 != null">
+ AND create_time <= #{chargingPercentProvinceDto.date2}
+ </if>
+ <if test="chargingPercentProvinceDto.provinceCode != null">
+ AND province_code = #{chargingPercentProvinceDto.provinceCode}
+ </if>
+ </where>
+
+
+ </select>
+ <select id="charge" resultType="com.ruoyi.order.dto.SixChargingDto">
+ SELECT
+ DATE_FORMAT( subquery.create_time, '%m' ) AS MONTH,
+ SUM(electrovalence) AS electrovalence,
+ SUM(service_charge) AS service_charge
+ FROM
+ (
+ SELECT
+ create_time,
+ electrovalence,
+ service_charge
+ FROM
+ t_charging_order
+ <where>
+ del_flag = 0 and recharge_payment_status = 2 and ISNULL(refund_status)
+ <if test="sixBefore != null">
+ AND create_time >= #{sixBefore}
+ </if>
+ <if test="siteIds != null and siteIds.size() > 0">
+ AND site_id IN
+ <foreach collection="siteIds" item="siteId" open="(" separator="," close=")">
+ #{siteId}
+ </foreach>
+ </if>
+ </where>
+ ) AS subquery
+ GROUP BY
+ DATE_FORMAT( subquery.create_time, '%m' )
+
+
+ </select>
+ <select id="circle" resultType="com.ruoyi.order.dto.SixCircleDto">
+ SELECT
+ site_id as siteId,SUM(payment_amount) as paymentAmount
+ FROM
+ t_charging_order
+ <where>
+ del_flag = 0 and recharge_payment_status = 2 and ISNULL(refund_status)
+ <if test="siteIds != null and siteIds.size() > 0">
+ AND site_id IN
+ <foreach collection="siteIds" item="siteId" open="(" separator="," close=")">
+ #{siteId}
+ </foreach>
+ </if>
+ <if test="sixBefore != null">
+ AND create_time >= #{sixBefore}
+ </if>
+ </where>
+ GROUP BY
+ site_id
+
+
+ </select>
+ <select id="countAll" resultType="java.util.Map">
+ select sum(electrovalence),sum(service_charge),sum(commission_amount),sum(sharing_amount)
+ from t_charging_order
+ where create_time >= #{sixBefore} and del_flag = 0 and recharge_payment_status = 2 and ISNULL(refund_status)
+ </select>
+ <select id="getSumByType" resultType="java.util.Map">
+ SELECT
+ type,
+ SUM( charging_capacity ) as charging_capacity ,
+ SUM( period_service_price ) as period_electric_price,
+ SUM(period_electric_price+period_service_price) as total_amount
+ FROM
+ t_charging_order_accounting_strategy
+ <where>
+ <if test="chargingOrderIds != null and chargingOrderIds.size() > 0">
+ AND charging_order_id IN
+ <foreach collection="chargingOrderIds" item="chargingOrderId" open="(" separator="," close=")">
+ #{chargingOrderId}
+ </foreach>
+ </if>
+ </where>
+ GROUP BY
+ type
+ </select>
+ <select id="getDateData" resultType="java.util.Map">
+ SELECT
+ DATE_FORMAT( create_time, '%Y-%m-%d %H' ) as time,
+ SUM(service_charge) as servicecharge,
+ SUM(electrovalence) as electrovalence
+ FROM
+ t_charging_order
+ <where>
+ del_flag = 0 and recharge_payment_status = 2 and ISNULL(refund_status) and DATE(create_time) = CURDATE()
+ <if test="chargingOrderIds != null and chargingOrderIds.size() > 0">
+ AND id IN
+ <foreach collection="chargingOrderIds" item="chargingOrderId" open="(" separator="," close=")">
+ #{chargingOrderId}
+ </foreach>
+ </if>
+ </where>
+ GROUP BY
+ time
+ ORDER BY
+ time
+
+ </select>
+ <select id="getWeekData" resultType="java.util.Map">
+ SELECT
+ DATE_FORMAT( create_time, '%Y-%m-%d' ) as time,
+ SUM(service_charge) as servicecharge,
+ SUM(electrovalence) as electrovalence
+ FROM
+ t_charging_order
+ <where>
+ del_flag = 0 and recharge_payment_status = 2 and ISNULL(refund_status) and YEARWEEK(DATE_FORMAT(create_time, '%Y-%m-%d'), 1) = YEARWEEK(NOW(), 1)
+ <if test="chargingOrderIds != null and chargingOrderIds.size() > 0">
+ AND id IN
+ <foreach collection="chargingOrderIds" item="chargingOrderId" open="(" separator="," close=")">
+ #{chargingOrderId}
+ </foreach>
+ </if>
+ </where>
+ GROUP BY
+ time
+ ORDER BY
+ time
+
+ </select>
+ <select id="getMonthData" resultType="java.util.Map">
+ SELECT
+ DATE_FORMAT( create_time, '%Y-%m-%d' ) as time,
+ SUM(service_charge) as servicecharge,
+ SUM(electrovalence) as electrovalence
+ FROM
+ t_charging_order
+ <where>
+ del_flag = 0 and recharge_payment_status = 2 and ISNULL(refund_status) and MONTH(create_time) = MONTH(NOW()) AND YEAR(create_time) = YEAR(NOW())
+ <if test="chargingOrderIds != null and chargingOrderIds.size() > 0">
+ AND id IN
+ <foreach collection="chargingOrderIds" item="chargingOrderId" open="(" separator="," close=")">
+ #{chargingOrderId}
+ </foreach>
+ </if>
+ </where>
+ GROUP BY
+ time
+ ORDER BY
+ time
+
+ </select>
+ <select id="getYearData" resultType="java.util.Map">
+ SELECT
+ DATE_FORMAT( create_time, '%Y-%m-%d' ) as time,
+ SUM(service_charge) as servicecharge,
+ SUM(electrovalence) as electrovalence
+ FROM
+ t_charging_order
+ <where>
+ del_flag = 0 and recharge_payment_status = 2 and ISNULL(refund_status) and YEAR(createTime) = YEAR(NOW())
+ <if test="chargingOrderIds != null and chargingOrderIds.size() > 0">
+ AND id IN
+ <foreach collection="chargingOrderIds" item="chargingOrderId" open="(" separator="," close=")">
+ #{chargingOrderId}
+ </foreach>
+ </if>
+ </where>
+ GROUP BY
+ time
+ ORDER BY
+ time
+
+
+ </select>
+
</mapper>
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml
index c81d371..4aa2f35 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml
@@ -256,4 +256,40 @@
and t1.payment_status = 2
AND t1.del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()}
</select>
+ <select id="sixBefore" resultType="com.ruoyi.order.dto.SixShopDto">
+ SELECT
+ DATE_FORMAT( subquery.create_time, '%m' ) AS MONTH,
+ count(1) AS orderNum,
+ SUM(payment_amount) AS paymentAmount
+ FROM
+ (
+ SELECT
+ create_time,
+ payment_amount
+ FROM
+ t_shopping_order
+ <where>
+ WHERE del_flag = 0 and payment_status = 2 and ISNULL(refund_status) and status!=4
+ <if test="null != sixBefore">
+ and DATE_FORMAT(create_time, '%Y-%m-%d') >= DATE_FORMAT(#{sixBefore}, '%Y-%m-%d')
+ </if>
+ <if test="null != status">
+ and status = #{status}
+ </if>
+ </where>
+
+ ) AS subquery
+ GROUP BY
+ DATE_FORMAT( subquery.create_time, '%m' );
+
+
+ </select>
+ <select id="getSumAmount" resultType="java.math.BigDecimal">
+ select sum(payment_amount)
+ from t_shopping_order
+ where del_flag = 0 and payment_status = 2 and ISNULL(refund_status) and status!=4
+ <if test="null != sixBefore">
+ and DATE_FORMAT(create_time, '%Y-%m-%d') >= DATE_FORMAT(#{sixBefore}, '%Y-%m-%d')
+ </if>
+ </select>
</mapper>
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TVipOrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TVipOrderMapper.xml
index 724cef3..70127f8 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TVipOrderMapper.xml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TVipOrderMapper.xml
@@ -46,5 +46,46 @@
</if>
AND t1.del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()}
</select>
+ <select id="sixBefore" resultType="com.ruoyi.order.dto.SixVipDto">
+ SELECT
+ DATE_FORMAT(subquery.create_time, '%Y-%m') AS MONTH,
+ subquery.vip_id,
+ COUNT(1) AS orderNum,
+ SUM(subquery.payment_amount) AS paymentAmount
+ FROM (
+ SELECT
+ vip_id,
+ create_time,
+ payment_amount
+ FROM
+ t_vip_order
+ <where>
+ del_flag = 0 AND
+ payment_status = 2 AND
+ refund_amount IS NULL
+ <if test="sixBefore != null">
+ AND create_time > #{sixBefore}
+ </if>
+ </where>
+ ) AS subquery
+ GROUP BY
+ DATE_FORMAT(subquery.create_time, '%Y-%m'),
+ subquery.vip_id;
+
+
+ </select>
+ <select id="getSumAmout" resultType="java.math.BigDecimal">
+ SELECT
+ SUM(payment_amount) AS paymentAmount
+ FROM
+ t_vip_order
+ WHERE
+ del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()} AND
+ payment_status = 2 AND
+ refund_amount IS NULL
+ <if test="sixBefore != null">
+ AND create_time > #{sixBefore}
+ </if>
+ </select>
</mapper>
--
Gitblit v1.7.1