From 11291e5cb187703b26f29090c466d5c702e74cf1 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期四, 17 十月 2024 10:03:42 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java                   |   31 +++-
 ruoyi-service/ruoyi-order/src/main/resources/bootstrap.yml                                                            |    8 
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityStatisticslVO.java                            |   15 +-
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java                   |   20 +-
 ruoyi-service/ruoyi-chargingPile/src/main/resources/bootstrap.yml                                                     |    9 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java      |  130 +++++++++++---------
 ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml                                                            |    7 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderAccountingStrategyServiceImpl.java |   15 +-
 ruoyi-service/ruoyi-payment/src/main/resources/bootstrap.yml                                                          |   51 ++------
 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/model/UploadRealTimeMonitoringData.java       |    7 +
 ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml                                                           |    7 
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityVO.java                                       |    1 
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java                              |    2 
 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingBillMapper.xml                                     |    2 
 14 files changed, 156 insertions(+), 149 deletions(-)

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 89c2c9f..58f341b 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
@@ -7,6 +7,8 @@
 import org.springframework.data.mongodb.core.mapping.Document;
 
 import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.Date;
 
 /**
  * 上传实时监测数据
@@ -45,6 +47,11 @@
 
     private BigDecimal period_charging_degree;// @ApiModelProperty("时段充电度数")
 
+    private Integer orderType; //1=充电订单(小程序),2=充电订单(刷卡))
+    private Integer siteId;
+    private Integer status; //状态(0=未知,1=等待中/已插枪,2=启动中,3=充电中,4=停止中,5=已结束)"
+    private Date startTime; //充电开始时间
+    private Date endTime; //充电结束时间
 
 }
 
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java
index 9678610..300a830 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java
@@ -56,7 +56,7 @@
      * @return
      */
     @PostMapping(value = "/t-exchange-order/activityStatistics")
-    public R<TActivityVO> activityStatistics(@RequestBody TActivityStatisticsQuery dto);
+    R<TActivityVO> activityStatistics(@RequestBody TActivityStatisticsQuery dto);
     @PostMapping(value = "/chargingBill/accountBillList")
     @ApiOperation(value = "列表查询", tags = {"管理后台-账户结算账单"})
     R<AccountListVO> accountBillList(@RequestBody ChargingListQuery dto);
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityStatisticslVO.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityStatisticslVO.java
index f20373b..5d6df4a 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityStatisticslVO.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityStatisticslVO.java
@@ -1,5 +1,6 @@
 package com.ruoyi.order.api.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.databind.ser.Serializers;
 import com.ruoyi.common.core.web.domain.BasePojo;
 import com.ruoyi.order.api.model.*;
@@ -8,6 +9,7 @@
 import lombok.Data;
 
 import java.math.BigDecimal;
+import java.time.LocalDateTime;
 
 @Data
 @ApiModel(value = "管理后台活动费用统计分页列表", description = "管理后台活动费用统计分页列表")
@@ -33,16 +35,17 @@
     @ApiModelProperty(value = "实付")
     private BigDecimal paymentAmount;
     @ApiModelProperty(value = "消费时间")
-    private String time;
-    @ApiModelProperty(value = "消费时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private LocalDateTime time;
+    @ApiModelProperty(value = "总计优惠")
     private BigDecimal total;
-    @ApiModelProperty(value = "消费时间")
+    @ApiModelProperty(value = "优惠券优惠")
     private BigDecimal coupon;
-    @ApiModelProperty(value = "消费时间")
+    @ApiModelProperty(value = "会员抵扣")
     private BigDecimal discount;
-    @ApiModelProperty(value = "消费时间")
+    @ApiModelProperty(value = "会员活动")
     private BigDecimal vipActivity;
-    @ApiModelProperty(value = "消费时间")
+    @ApiModelProperty(value = "赠送会员")
     private BigDecimal grantVip;
 
 }
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityVO.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityVO.java
index 24ef5be..9f0b476 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityVO.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityVO.java
@@ -7,7 +7,6 @@
 import lombok.Data;
 
 import java.math.BigDecimal;
-
 @Data
 @ApiModel(value = "TOrderAppealVO对象", description = "订单申诉VO对象")
 public class TActivityVO  {
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
index dbd2ab0..a6d6b80 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
@@ -12,7 +12,6 @@
   profiles:
     # 环境配置
     active: dev
-#    active: prod
 ---
 spring:
   config:
@@ -55,7 +54,7 @@
     type: nacos
     nacos:
       # 开发环境
-      server-addr: 192.168.110.169:8848
+      server-addr: 127.0.0.1:8848
       namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
       group: DEFAULT_GROUP
       data-id: seata-server.properties
@@ -73,7 +72,7 @@
     nacos:
       application: seata-server
       # 开发环境
-      server-addr: 192.168.110.169:8848
+      server-addr: 127.0.0.1:8848
       namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
       group: DEFAULT_GROUP
       username: nacos
@@ -88,7 +87,7 @@
     nacos:
       discovery:
         # 开发环境
-        server-addr: 192.168.110.169:8848 # nacos注册中心地址
+        server-addr: 127.0.0.1:8848 # nacos注册中心地址
         namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间
         group: DEFAULT_GROUP
         application: seata-server #Nacos 中 Seata 名称
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
index 3477646..cddd92b 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
@@ -320,7 +320,7 @@
 	public ChargeMonitoring chargeMonitoring(Integer siteId) {
 		//获取当前登录账户的站点权限数据
 		Set<Integer> siteIds = new HashSet<>();
-		if(null == siteId){
+		if(0 == siteId){
 			SysUser sysUser = sysUserClient.getSysUser(SecurityUtils.getUserId()).getData();
 			Integer roleType = sysUser.getRoleType();
 			Integer objectId = sysUser.getObjectId();
@@ -334,12 +334,20 @@
                     List<Integer> data1 = roleSiteClient.getSiteIds(data2.get(0).getRoleId()).getData();
 					data.addAll(data1);
 					siteIds = new HashSet<>(data);
+				}else{
+					siteIds = null;
 				}
 			}
 		}else{
 			siteIds.add(siteId);
 		}
-		List<Site> sites = siteService.listByIds(siteIds);
+		List<Site> sites = null;
+		if(null == siteIds){
+			sites = siteService.list(new LambdaQueryWrapper<Site>().eq(Site::getDelFlag, 0));
+			siteIds = sites.stream().map(Site::getId).collect(Collectors.toSet());
+		}else{
+			sites = siteService.listByIds(siteIds);
+		}
 		List<TChargingGun> total = chargingGunService.list(new LambdaQueryWrapper<TChargingGun>().in(TChargingGun::getSiteId, siteIds).eq(TChargingGun::getDelFlag, 0));
 		List<TChargingGun> charging = chargingGunService.list(new LambdaQueryWrapper<TChargingGun>().in(TChargingGun::getSiteId, siteIds).eq(TChargingGun::getStatus, 4).eq(TChargingGun::getDelFlag, 0));
 		BigDecimal ratedPower = total.stream().map(TChargingGun::getRatedPower).reduce(BigDecimal.ZERO, BigDecimal::add);
@@ -361,9 +369,9 @@
 		}
 
 		List<String> dates = new ArrayList<>();
-		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MMM-dd");
-		Calendar calendar = Calendar.getInstance();
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
 		for (int i = 6; i >= 0; i--) {
+			Calendar calendar = Calendar.getInstance();
 			calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - i);
 			dates.add(sdf.format(calendar.getTime()));
 		}
@@ -382,7 +390,7 @@
 			if(list.size() == 0){
 				value2.add(0D);
 			}else{
-				Double datum1 = new BigDecimal(datum).divide(new BigDecimal(list.size()).multiply(v).multiply(new BigDecimal(24))).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
+				Double datum1 = new BigDecimal(datum).divide(new BigDecimal(list.size()).multiply(v).multiply(new BigDecimal(24)), new MathContext(4, RoundingMode.HALF_EVEN)).multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
 				value2.add(datum1);
 			}
 		}
@@ -404,7 +412,7 @@
 	public ChargingGunCountMonitoring getChargingGunCountMonitoring(Integer siteId) {
 		//获取当前登录账户的站点权限数据
 		Set<Integer> siteIds = new HashSet<>();
-		if(null == siteId){
+		if(0 == siteId){
 			SysUser sysUser = sysUserClient.getSysUser(SecurityUtils.getUserId()).getData();
 			Integer roleType = sysUser.getRoleType();
 			Integer objectId = sysUser.getObjectId();
@@ -418,6 +426,9 @@
                     List<Integer> data1 = roleSiteClient.getSiteIds(data2.get(0).getRoleId()).getData();
 					data.addAll(data1);
 					siteIds = new HashSet<>(data);
+				}else{
+					List<Site> list = siteService.list(new LambdaQueryWrapper<Site>().eq(Site::getDelFlag, 0));
+					siteIds = list.stream().map(Site::getId).collect(Collectors.toSet());
 				}
 			}
 		}else{
@@ -452,7 +463,7 @@
 	public PageInfo<ChargingGunMonitoring> getChargingGunMonitoring(GetChargingGunMonitoring query) {
 		//获取当前登录账户的站点权限数据
 		Set<Integer> siteIds = new HashSet<>();
-		if(null == query.getSiteId()){
+		if(0 == query.getSiteId()){
 			SysUser sysUser = sysUserClient.getSysUser(SecurityUtils.getUserId()).getData();
 			Integer roleType = sysUser.getRoleType();
 			Integer objectId = sysUser.getObjectId();
@@ -466,6 +477,9 @@
                     List<Integer> data1 = roleSiteClient.getSiteIds(data2.get(0).getRoleId()).getData();
 					data.addAll(data1);
 					siteIds = new HashSet<>(data);
+				}else{
+					List<Site> list = siteService.list(new LambdaQueryWrapper<Site>().eq(Site::getDelFlag, 0));
+					siteIds = list.stream().map(Site::getId).collect(Collectors.toSet());
 				}
 			}
 		}else{
@@ -489,62 +503,60 @@
 				Integer id = gunMonitoring.getId();
 				//根据订单数据查询车牌号
 				TChargingOrder chargingOrder = chargingOrderClient.getOrderDetailByGunId(id).getData();
-				Long appUserCarId = chargingOrder.getAppUserCarId();
-				if(null != appUserCarId){
+				if(null != chargingOrder){
+					Long appUserCarId = chargingOrder.getAppUserCarId();
 					TAppUserCar tAppUserCar = appUserCarClient.getCarByIds(Arrays.asList(appUserCarId)).getData().get(0);
 					gunMonitoring.setLicensePlate(tAppUserCar.getLicensePlate());
-				}
-				
-				UploadRealTimeMonitoringData data = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrder.getCode()).getData();
-				gunMonitoring.setChargingRatio(BigDecimal.valueOf(data.getSoc()));
-				gunMonitoring.setElectricQuantity(data.getCharging_degree().toString());
-				gunMonitoring.setSoc(data.getSoc().toString());
-				gunMonitoring.setElectricCurrent(data.getOutput_current().toString());
-				gunMonitoring.setVoltage(data.getOutput_voltage().toString());
-				switch (data.getHardware_fault()){
-					case 1:
-						gunMonitoring.setFaultCause("急停按钮动作故障");
-						break;
-					case 2:
-						gunMonitoring.setFaultCause("无可用整流模块");
-						break;
-					case 3:
-						gunMonitoring.setFaultCause("出风口温度过高");
-						break;
-					case 4:
-						gunMonitoring.setFaultCause("交流防雷故障");
-						break;
-					case 5:
-						gunMonitoring.setFaultCause("交直流模块 DC20 通信中断");
-						break;
-					case 6:
-						gunMonitoring.setFaultCause("绝缘检测模块 FC08 通信中断");
-						break;
-					case 7:
-						gunMonitoring.setFaultCause("电度表通信中断");
-						break;
-					case 8:
-						gunMonitoring.setFaultCause("读卡器通信中断");
-						break;
-					case 9:
-						gunMonitoring.setFaultCause("RC10 通信中断");
-						break;
-					case 10:
-						gunMonitoring.setFaultCause("风扇调速板故障");
-						break;
-					case 11:
-						gunMonitoring.setFaultCause("直流熔断器故障");
-						break;
-					case 12:
-						gunMonitoring.setFaultCause("高压接触器故障");
-						break;
-					case 13:
-						gunMonitoring.setFaultCause("门打开");
-						break;
+
+					UploadRealTimeMonitoringData data = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrder.getCode()).getData();
+					gunMonitoring.setChargingRatio(BigDecimal.valueOf(data.getSoc()));
+					gunMonitoring.setElectricQuantity(data.getCharging_degree().toString());
+					gunMonitoring.setSoc(data.getSoc().toString());
+					gunMonitoring.setElectricCurrent(data.getOutput_current().toString());
+					gunMonitoring.setVoltage(data.getOutput_voltage().toString());
+					switch (data.getHardware_fault()){
+						case 1:
+							gunMonitoring.setFaultCause("急停按钮动作故障");
+							break;
+						case 2:
+							gunMonitoring.setFaultCause("无可用整流模块");
+							break;
+						case 3:
+							gunMonitoring.setFaultCause("出风口温度过高");
+							break;
+						case 4:
+							gunMonitoring.setFaultCause("交流防雷故障");
+							break;
+						case 5:
+							gunMonitoring.setFaultCause("交直流模块 DC20 通信中断");
+							break;
+						case 6:
+							gunMonitoring.setFaultCause("绝缘检测模块 FC08 通信中断");
+							break;
+						case 7:
+							gunMonitoring.setFaultCause("电度表通信中断");
+							break;
+						case 8:
+							gunMonitoring.setFaultCause("读卡器通信中断");
+							break;
+						case 9:
+							gunMonitoring.setFaultCause("RC10 通信中断");
+							break;
+						case 10:
+							gunMonitoring.setFaultCause("风扇调速板故障");
+							break;
+						case 11:
+							gunMonitoring.setFaultCause("直流熔断器故障");
+							break;
+						case 12:
+							gunMonitoring.setFaultCause("高压接触器故障");
+							break;
+						case 13:
+							gunMonitoring.setFaultCause("门打开");
+							break;
+					}
 				}
 			}
-			
-			
 		}
 		return pageInfo.setRecords(chargingGunMonitoring);
 	}
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/bootstrap.yml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/bootstrap.yml
index 7c025cd..3f4955b 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/bootstrap.yml
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/bootstrap.yml
@@ -13,7 +13,6 @@
   profiles:
     # 环境配置
     active: dev
-#    active: prod
 ---
 spring:
   config:
@@ -47,7 +46,7 @@
   enabled: true
   application-id: ${spring.application.name}
   tx-service-group: seata_tx_group    #此处配置自定义的seata事务分组名称
-  enable-auto-data-source-proxy: false
+  enable-auto-data-source-proxy: true
   service:
     vgroup-mapping:
       seata_tx_group: default
@@ -56,7 +55,7 @@
     type: nacos
     nacos:
       # 开发环境
-      server-addr: 192.168.110.169:8848
+      server-addr: 127.0.0.1:8848
       namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
       group: DEFAULT_GROUP
       data-id: seata-server.properties
@@ -74,7 +73,7 @@
     nacos:
       application: seata-server
       # 开发环境
-      server-addr: 192.168.110.169:8848
+      server-addr: 127.0.0.1:8848
       namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
       group: DEFAULT_GROUP
       username: nacos
@@ -89,7 +88,7 @@
     nacos:
       discovery:
         # 开发环境
-        server-addr: 192.168.110.169:8848 # nacos注册中心地址
+        server-addr: 127.0.0.1:8848 # nacos注册中心地址
         namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间
         group: DEFAULT_GROUP
         application: seata-server #Nacos 中 Seata 名称
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderAccountingStrategyServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderAccountingStrategyServiceImpl.java
index f242070..cff3804 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderAccountingStrategyServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderAccountingStrategyServiceImpl.java
@@ -13,8 +13,10 @@
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.time.Duration;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.LongStream;
@@ -43,19 +45,20 @@
 	@Override
 	public List<List<Map<String, Object>>> getTotalElectricQuantity(Integer days, Set<Integer> siteIds) {
 		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+		DateTimeFormatter sdf1 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
 		Calendar calendar = Calendar.getInstance();
 		calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - days);
 		String startTime = sdf.format(calendar.getTime()) + " 00:00:00";
 		List<TChargingOrder> list = chargingOrderService.list(new LambdaQueryWrapper<TChargingOrder>().in(TChargingOrder::getSiteId, siteIds).eq(TChargingOrder::getStatus, 5)
-				.eq(TChargingOrder::getDelFlag, 0).last(" and end_time between '" + startTime + "' and DATE_FORMAT('%Y-%m-%d %H:%i:%s', now())"));
+				.eq(TChargingOrder::getDelFlag, 0).last(" and start_time between '" + startTime + "' and DATE_FORMAT(now(), '%Y-%m-%d %H:%i:%s')"));
 		List<Long> orderId = list.stream().map(TChargingOrder::getId).collect(Collectors.toList());
 		List<TChargingOrderAccountingStrategy> list1 = this.list(new LambdaQueryWrapper<TChargingOrderAccountingStrategy>().in(TChargingOrderAccountingStrategy::getChargingOrderId, orderId));
 		
 		List<List<Map<String, Object>>> list2 = new ArrayList<>();
-		Calendar nowDateTime = Calendar.getInstance();
 		for (int i = days; i >= 0; i--) {
+			Calendar nowDateTime = Calendar.getInstance();
 			nowDateTime.set(Calendar.DAY_OF_YEAR, nowDateTime.get(Calendar.DAY_OF_YEAR) - i);
-			List<TChargingOrder> collect = list.stream().filter(s -> sdf.format(s.getEndTime()).equals(sdf.format(nowDateTime.getTime()))).collect(Collectors.toList());
+			List<TChargingOrder> collect = list.stream().filter(s -> s.getStartTime().format(sdf1).equals(sdf.format(nowDateTime.getTime()))).collect(Collectors.toList());
 			List<Long> orderIds = collect.stream().map(TChargingOrder::getId).collect(Collectors.toList());
 			
 			
@@ -105,15 +108,15 @@
 		calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - days);
 		String startTime = sdf.format(calendar.getTime()) + " 00:00:00";
 		List<TChargingOrder> list = chargingOrderService.list(new LambdaQueryWrapper<TChargingOrder>().in(TChargingOrder::getSiteId, siteIds).eq(TChargingOrder::getStatus, 5)
-				.eq(TChargingOrder::getDelFlag, 0).last(" and end_time between '" + startTime + "' and DATE_FORMAT('%Y-%m-%d %H:%i:%s', now())"));
+				.eq(TChargingOrder::getDelFlag, 0).last(" and start_time between '" + startTime + "' and DATE_FORMAT(now(), '%Y-%m-%d %H:%i:%s')"));
 		
 		List<Double> list2 = new ArrayList<>();
-		Calendar nowDateTime = Calendar.getInstance();
 		//遍历获取每天的数值
 		for (int i = days; i >= 0; i--) {
+			Calendar nowDateTime = Calendar.getInstance();
 			nowDateTime.set(Calendar.DAY_OF_YEAR, nowDateTime.get(Calendar.DAY_OF_YEAR) - i);
 			//充电量
-			BigDecimal reduce = list.stream().filter(s -> sdf.format(s.getEndTime()).equals(sdf.format(nowDateTime.getTime())))
+			BigDecimal reduce = list.stream().filter(s -> s.getStartTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")).equals(sdf.format(nowDateTime.getTime())))
 					.map(TChargingOrder::getChargingCapacity).reduce(BigDecimal.ZERO, BigDecimal::add);
 			list2.add(reduce.doubleValue());
 		}
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 6e5e235..e1dfdfd 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
@@ -294,7 +294,7 @@
 			myChargingOrderInfo.setCurrentAndVoltage(currentAndVoltage);
 			//在MongoDB中获取数据
 			List<Integer> soc = dataList.stream().map(UploadRealTimeMonitoringData::getSoc).collect(Collectors.toList());
-			List<BigDecimal> po = dataList.stream().map(s -> s.getOutput_current().multiply(s.getOutput_voltage()).divide(new BigDecimal(1000))).collect(Collectors.toList());
+			List<BigDecimal> po = dataList.stream().map(s -> s.getOutput_current().multiply(s.getOutput_voltage()).divide(new BigDecimal(1000),2, RoundingMode.HALF_DOWN)).collect(Collectors.toList());
 			List<Map<String, Object>> power = new ArrayList<>();
 			for (int i = 0; i < time.size(); i++) {
 				Map<String, Object> map = new HashMap<>();
@@ -2460,9 +2460,13 @@
 			if (!data1.isEmpty()){
 				tSettlementConfirm.setSiteName(data1.get(0).getName());
 			}
-			meteringElectronic = meteringElectronic.add(tSettlementConfirm.getMeteringElectronic());
-			chargingElectronic = chargingElectronic.add(tSettlementConfirm.getChargingElectronic());
-			lossElectronic = lossElectronic.add(tSettlementConfirm.getLossElectronic());
+			if (tSettlementConfirm.getMeteringElectronic()!=null){
+				meteringElectronic = meteringElectronic.add(tSettlementConfirm.getMeteringElectronic());
+				chargingElectronic = chargingElectronic.add(tSettlementConfirm.getChargingElectronic());
+			}
+			if (tSettlementConfirm.getLossElectronic()!=null){
+				lossElectronic = lossElectronic.add(tSettlementConfirm.getLossElectronic());
+			}
 			income = income.add(tSettlementConfirm.getIncome());
 			venue = venue.add(tSettlementConfirm.getVenue());
 			metering = metering.add(tSettlementConfirm.getMetering());
@@ -2526,13 +2530,22 @@
 				settlementConfirm.setIncome(settlementConfirm.getElectrovalence().add(settlementConfirm.getServiceCharge()));
 				if (tSettlementConfirm.getSiteId().equals(settlementConfirm.getSiteId())){
 					// 电站相同比较收入涨幅跌幅
-					BigDecimal subtract = tSettlementConfirm.getIncome().subtract(settlementConfirm.getIncome()).divide(tSettlementConfirm.getIncome()).setScale(2, RoundingMode.HALF_DOWN).multiply(new BigDecimal("100"));
-					tSettlementConfirm.setIncomePercentage(subtract+"%");
+					if (tSettlementConfirm.getIncome().compareTo(BigDecimal.ZERO)>0){
+						BigDecimal subtract = tSettlementConfirm.getIncome().subtract(settlementConfirm.getIncome()).divide(tSettlementConfirm.getIncome()).setScale(2, RoundingMode.HALF_DOWN).multiply(new BigDecimal("100"));
+						tSettlementConfirm.setIncomePercentage(subtract+"%");
+					}else {
+						tSettlementConfirm.setIncomePercentage("100"+"%");
+
+					}
+
 					// 比较总利润 收入合计-成本合计
 					BigDecimal subtract1 = tSettlementConfirm.getIncome().subtract(tSettlementConfirm.getCost());
 					BigDecimal subtract2 = settlementConfirm.getIncome().subtract(settlementConfirm.getCost());
-					tSettlementConfirm.setTotalPercentage(subtract1.subtract(subtract2).divide(subtract2).setScale(2, RoundingMode.HALF_DOWN).multiply(new BigDecimal("100"))+"%");
-				}
+					BigDecimal bigDecimal1 = subtract1.subtract(subtract2)
+							.divide(subtract2, 2, RoundingMode.HALF_DOWN)
+							.multiply(new BigDecimal("100"))
+							.setScale(2, RoundingMode.HALF_DOWN);
+					tSettlementConfirm.setTotalPercentage(bigDecimal1+"%");				}
 				beforeCost = beforeCost.add(settlementConfirm.getCost());
 				beforeIncome = beforeIncome.add(settlementConfirm.getIncome());
 
@@ -2582,7 +2595,7 @@
 		if (subtract2.compareTo(new BigDecimal("0")) == 0){
 			tSettlementConfirm.setTotalPercentage(0+"%");
 		}else{
-			tSettlementConfirm.setTotalPercentage(subtract1.subtract(subtract2).divide(subtract2).setScale(2, RoundingMode.HALF_DOWN).multiply(new BigDecimal("100"))+"%");
+			tSettlementConfirm.setTotalPercentage(subtract1.subtract(subtract2).divide(subtract2,2, RoundingMode.HALF_DOWN).setScale(2, RoundingMode.HALF_DOWN).multiply(new BigDecimal("100"))+"%");
 		}
 		tSettlementConfirm.setElectronicRefund(0);
 		// 查询上次汇报数据 进行比对涨幅跌幅
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 1093912..3680d02 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
@@ -127,15 +127,15 @@
                         coupon = coupon.add(tActivityStatisticslVO.getCouponDiscountAmount());
                         stringBuilder.append("优惠券抵扣").append("+");
                 }
-                    if (tActivityStatisticslVO.getVipDiscountAmount()!=null
-                            &&
-                            (tActivityStatisticslVO.getCouponDiscountAmount().compareTo(BigDecimal.ZERO)>0)){
+                    if (tActivityStatisticslVO.getVipDiscountAmount()!=null &&(tActivityStatisticslVO.getVipDiscountAmount().compareTo(BigDecimal.ZERO)>0)){
                         discount = discount.add(tActivityStatisticslVO.getVipDiscountAmount());
                         stringBuilder.append("会员抵扣").append("+");
                     }
-                    stringBuilder.deleteCharAt(stringBuilder.length()-1);
-                    tActivityStatisticslVO.setType(stringBuilder.toString());
-                    tActivityStatisticslVO.setTime(simpleDateFormat.format(tActivityStatisticslVO.getCreateTime()));
+                    if (stringBuilder.length()>0){
+                        stringBuilder.deleteCharAt(stringBuilder.length()-1);
+                        tActivityStatisticslVO.setType(stringBuilder.toString());
+                    }
+                    tActivityStatisticslVO.setTime(tActivityStatisticslVO.getCreateTime());
                     break;
                 case 2:
                     StringBuilder stringBuilder1 = new StringBuilder();
@@ -155,7 +155,7 @@
                     }
                     stringBuilder1.deleteCharAt(stringBuilder1.length()-1);
                     tActivityStatisticslVO.setType(stringBuilder1.toString());
-                    tActivityStatisticslVO.setTime(simpleDateFormat.format(tActivityStatisticslVO.getCreateTime()));
+                    tActivityStatisticslVO.setTime(tActivityStatisticslVO.getCreateTime());
                     break;
                 case 3:
                     // 会员订单 优惠金额大于0
@@ -165,19 +165,19 @@
                         vipActivity = vipActivity.add(tActivityStatisticslVO.getVipDiscountAmount());
                     }
                     tActivityStatisticslVO.setType("会员活动");
-                    tActivityStatisticslVO.setTime(simpleDateFormat.format(tActivityStatisticslVO.getCreateTime()));
+                    tActivityStatisticslVO.setTime(tActivityStatisticslVO.getCreateTime());
                     break;
                 case 4:
                     // 赠送会员订单 如果支付金额为0 那么就是后台赠送的会员
                     if (tActivityStatisticslVO.getPaymentAmount().compareTo(BigDecimal.ZERO)==0){
                         grantVip = grantVip.add(tActivityStatisticslVO.getOrderAmount());
                         tActivityStatisticslVO.setType("赠送会员");
-                        tActivityStatisticslVO.setTime(simpleDateFormat.format(tActivityStatisticslVO.getCreateTime()));
+                        tActivityStatisticslVO.setTime(tActivityStatisticslVO.getCreateTime());
                     }else{
                         // 赠送
                         grantVip = grantVip.add(tActivityStatisticslVO.getVipDiscountAmount());
                         tActivityStatisticslVO.setType("赠送会员");
-                        tActivityStatisticslVO.setTime(simpleDateFormat.format(tActivityStatisticslVO.getCreateTime()));
+                        tActivityStatisticslVO.setTime(tActivityStatisticslVO.getCreateTime());
                     }
                     break;
             }
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/bootstrap.yml b/ruoyi-service/ruoyi-order/src/main/resources/bootstrap.yml
index 6587762..5e2f534 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/bootstrap.yml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/bootstrap.yml
@@ -29,7 +29,6 @@
         namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
         username: nacos
         password: nacos
-#        ip: 192.168.110.85
       config:
         # 配置中心地址
         server-addr: 192.168.110.169:8848
@@ -57,7 +56,7 @@
     type: nacos
     nacos:
       # 开发环境
-      server-addr: 192.168.110.169:8848
+      server-addr: 127.0.0.1:8848
       namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
       group: DEFAULT_GROUP
       data-id: seata-server.properties
@@ -75,7 +74,7 @@
     nacos:
       application: seata-server
       # 开发环境
-      server-addr: 192.168.110.169:8848
+      server-addr: 127.0.0.1:8848
       namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
       group: DEFAULT_GROUP
       username: nacos
@@ -90,7 +89,7 @@
     nacos:
       discovery:
         # 开发环境
-        server-addr: 192.168.110.169:8848 # nacos注册中心地址
+        server-addr: 127.0.0.1:8848 # nacos注册中心地址
         namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间
         group: DEFAULT_GROUP
         application: seata-server #Nacos 中 Seata 名称
@@ -122,6 +121,7 @@
         namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
         username: nacos
         password: nacos
+        ip: 192.168.110.111
       config:
         # 配置中心地址
         server-addr: 192.168.0.137:8848,192.168.0.123:8848
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingBillMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingBillMapper.xml
index b5dbf43..baad703 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingBillMapper.xml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingBillMapper.xml
@@ -6,7 +6,7 @@
     <select id="chargingBillList" resultType="com.ruoyi.order.api.vo.ChargingBillListVO">
     select t1.* from t_charging_bill t1
     where 1=1
-        <if test="req.type != null ">
+        <if test="req.type != null and req.type!=0">
             and t1.type = #{req.type}
         </if>
       <if test="req.state != null ">
diff --git a/ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml b/ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml
index 6b94607..f26cb9f 100644
--- a/ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml
+++ b/ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml
@@ -29,7 +29,6 @@
         namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
         username: nacos
         password: nacos
-#        ip: 192.168.110.85
       config:
         # 配置中心地址
         server-addr: 192.168.110.169:8848
@@ -57,7 +56,7 @@
     type: nacos
     nacos:
       # 开发环境
-      server-addr: 192.168.110.169:8848
+      server-addr: 127.0.0.1:8848
       namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
       group: DEFAULT_GROUP
       data-id: seata-server.properties
@@ -75,7 +74,7 @@
     nacos:
       application: seata-server
       # 开发环境
-      server-addr: 192.168.110.169:8848
+      server-addr: 127.0.0.1:8848
       namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
       group: DEFAULT_GROUP
       username: nacos
@@ -90,7 +89,7 @@
     nacos:
       discovery:
         # 开发环境
-        server-addr: 192.168.110.169:8848 # nacos注册中心地址
+        server-addr: 127.0.0.1:8848 # nacos注册中心地址
         namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间
         group: DEFAULT_GROUP
         application: seata-server #Nacos 中 Seata 名称
diff --git a/ruoyi-service/ruoyi-payment/src/main/resources/bootstrap.yml b/ruoyi-service/ruoyi-payment/src/main/resources/bootstrap.yml
index 0c4c5ce..2318b12 100644
--- a/ruoyi-service/ruoyi-payment/src/main/resources/bootstrap.yml
+++ b/ruoyi-service/ruoyi-payment/src/main/resources/bootstrap.yml
@@ -1,7 +1,3 @@
-server:
-  port: 9500
-  tomcat:
-    basedir: /data/tomcat
 # Spring
 spring:
   application:
@@ -13,7 +9,6 @@
   profiles:
     # 环境配置
     active: dev
-#    active: prod
 ---
 spring:
   config:
@@ -42,7 +37,10 @@
         # 共享配置
         shared-configs:
           - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
+
+
 ---
+
 seata:
   enabled: true
   application-id: ${spring.application.name}
@@ -55,57 +53,36 @@
   config:
     type: nacos
     nacos:
-      # 开发环境
-      server-addr: 192.168.110.169:8848
+      server-addr: 127.0.0.1:8848
       namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
       group: DEFAULT_GROUP
       data-id: seata-server.properties
       username: nacos
       password: nacos
-      # 生产环境
-#      server-addr: 192.168.0.137:8848,192.168.0.123:8848
-#      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
-#      group: DEFAULT_GROUP
-#      data-id: seata-server.properties
-#      username: nacos
-#      password: nacos
   registry:
     type: nacos
     nacos:
       application: seata-server
-      # 开发环境
-      server-addr: 192.168.110.169:8848
+      server-addr: 127.0.0.1:8848
       namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
       group: DEFAULT_GROUP
       username: nacos
       password: nacos
-      # 生产环境
-#      server-addr: 192.168.0.137:8848,192.168.0.123:8848
-#      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
-#      group: DEFAULT_GROUP
-#      username: nacos
-#      password: nacos
   cloud:
     nacos:
       discovery:
-        # 开发环境
-        server-addr: 192.168.110.169:8848 # nacos注册中心地址
+        server-addr: 127.0.0.1:8848 # nacos注册中心地址
         namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间
         group: DEFAULT_GROUP
         application: seata-server #Nacos 中 Seata 名称
         username: nacos
         password: nacos
-        # 生产环境
-#        server-addr: 192.168.0.137:8848,192.168.0.123:8848
-#        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
-#        group: DEFAULT_GROUP
-#        application: seata-server #Nacos 中 Seata 名称
-#        username: nacos
-#        password: nacos
     sentinel:
       transport:
         dashboard: 127.0.0.1:8080  #  Sentinel控制台地址
       eager: true
+
+
 ---
 spring:
   config:
@@ -115,18 +92,14 @@
     nacos:
       discovery:
         # 服务注册地址
-        server-addr: 192.168.0.137:8848,192.168.0.123:8848
+        server-addr: 127.0.0.1:8848
         service: ${spring.application.name}
         group: DEFAULT_GROUP
-        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
-        username: nacos
-        password: nacos
+        namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2
       config:
         # 配置中心地址
-        server-addr: 192.168.0.137:8848,192.168.0.123:8848
-        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
-        username: nacos
-        password: nacos
+        server-addr: 127.0.0.1:8848
+        namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2
         group: DEFAULT_GROUP
         name: ${spring.application.name}
         # 配置文件格式

--
Gitblit v1.7.1