From 6958d89bfec79450782f8352d5716d6603549b98 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期日, 26 一月 2025 17:25:56 +0800
Subject: [PATCH] 新增加互联互通扩展接口

---
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java                                |  169 ++++++++++++++++++++
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingRecordClient.java                  |    9 +
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/kuaidian/model/OrderInfo.java                      |   86 ++++++++++
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationChargeOrderInfo.java             |   10 +
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java                  |   14 +
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/kuaidian/model/NotificationChargeCarnumResult.java |   34 ++++
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java                           |    4 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/kuaidian/model/QueryChargeOrderInfoResult.java     |   18 ++
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/kuaidian/model/QueryChargeOrderInfo.java           |   18 ++
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/AddTripartitePlatformOrder.java                               |    2 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipChargeStatus.java                  |   11 +
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java                                |   12 +
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStartCharge.java                        |    7 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/kuaidian/model/NotificationChargeCarnum.java       |   24 +++
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipChargeStatusResult.java            |    5 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java                                |   14 +
 16 files changed, 424 insertions(+), 13 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingRecordClient.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingRecordClient.java
index b86ad6d..277804b 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingRecordClient.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingRecordClient.java
@@ -44,6 +44,15 @@
 	R<TParkingRecord> getParkingRecordById(@RequestParam("id") Long id);
 	
 	
+	
+	/**
+	 * 根据充电订单id获取数据
+	 * @return
+	 */
+	@PostMapping("/t-parking-record/getParkingRecordByChargingOrderId")
+	R<TParkingRecord> getParkingRecordByChargingOrderId(@RequestParam("chargingOrderId") Long chargingOrderId);
+	
+	
 	/**
 	 * 添加数据
 	 * @param parkingRecord
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 23c64cf..bd97a7c 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
@@ -191,6 +191,10 @@
                 return R.fail("根据三方平台订单id获取充电数据失败:" + throwable.getMessage());
             }
     
+            @Override
+            public R<List<TChargingOrder>> getChargingOrderByStartChargeSeqs(List<String> startChargeSeqs) {
+                return R.fail("根据三方平台订单ids获取充电数据失败" + throwable.getMessage());
+            }
     
             @Override
             public R tripartitePlatformStopCharge(String startChargeSeq) {
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 ffd6ad3..ea681f5 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
@@ -267,6 +267,18 @@
     R<TChargingOrder> getChargingOrderByStartChargeSeq(@RequestParam("startChargeSeq") String startChargeSeq);
     
     
+    
+    /**
+     * 根据三方平台订单ids获取充电数据
+     * @param startChargeSeqs
+     * @return
+     */
+    @PostMapping("/t-charging-order/getChargingOrderByStartChargeSeqs")
+    R<List<TChargingOrder>> getChargingOrderByStartChargeSeqs(@RequestParam("startChargeSeqs") List<String> startChargeSeqs);
+    
+    
+    
+    
     /**
      * 三方平台请求停止充电
      * @param startChargeSeq
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/AddTripartitePlatformOrder.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/AddTripartitePlatformOrder.java
index 5c3b5f6..ec4f3da 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/AddTripartitePlatformOrder.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/AddTripartitePlatformOrder.java
@@ -24,7 +24,7 @@
 	 */
 	private String operatorId;
 	/**
-	 * 支付方式(1=微信,2=支付宝)
+	 * 支付方式(0=未知,1=微信,2=支付宝)
 	 */
 	private Integer rechargePaymentType;
 	/**
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 7b17c17..54d1169 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
@@ -264,6 +264,20 @@
     }
     
     
+    
+    /**
+     * 根据充电订单id获取数据
+     * @return
+     */
+    @PostMapping("/getParkingRecordByChargingOrderId")
+    public R<TParkingRecord> getParkingRecordByChargingOrderId(@RequestParam("chargingOrderId") Long chargingOrderId){
+        TParkingRecord parkingRecord = parkingRecordService.getOne(new LambdaQueryWrapper<TParkingRecord>()
+                .eq(TParkingRecord::getChargingOrderId, chargingOrderId));
+        return R.ok(parkingRecord);
+    }
+    
+    
+    
     /**
      * 添加数据
      * @param parkingRecord
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java
index ca33eb3..6294bf2 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java
@@ -3,14 +3,13 @@
 import com.alibaba.fastjson.JSON;
 import com.ruoyi.chargingPile.api.feignClient.*;
 import com.ruoyi.chargingPile.api.model.*;
+import com.ruoyi.chargingPile.api.vo.GetParkingRecord;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.dto.ChargingPercentProvinceDto;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.integration.drainage.kuaidian.TCECKDUtil;
-import com.ruoyi.integration.drainage.kuaidian.model.NotificationStationChangeResult;
-import com.ruoyi.integration.drainage.kuaidian.model.QueryTerminalCode;
-import com.ruoyi.integration.drainage.kuaidian.model.QueryTerminalCodeResult;
+import com.ruoyi.integration.drainage.kuaidian.model.*;
 import com.ruoyi.integration.drainage.model.*;
 import com.ruoyi.integration.drainage.model.enu.*;
 import com.ruoyi.order.api.feignClient.ChargingOrderAccountingStrategyClient;
@@ -74,6 +73,9 @@
 	
 	@Resource
 	private ParkingLotClient parkingLotClient;
+	
+	@Resource
+	private ParkingRecordClient parkingRecordClient;
 	
 	
 	
@@ -809,7 +811,7 @@
 	
 	
 	/**
-	 * 请求定充电
+	 * 请求开始充电
 	 * @return
 	 */
 	@PostMapping("/query_start_charge")
@@ -863,8 +865,8 @@
 		addTripartitePlatformOrder.setStartChargeSeq(queryStartCharge.getStartChargeSeq());
 		addTripartitePlatformOrder.setChargingGunId(tChargingGun.getId());
 		addTripartitePlatformOrder.setOperatorId(operator.getOperatorId());
-		addTripartitePlatformOrder.setPaymentAmount(queryStartCharge.getPaymentAmount());
-		addTripartitePlatformOrder.setRechargePaymentType(queryStartCharge.getPaymentType());
+		addTripartitePlatformOrder.setPaymentAmount(queryStartCharge.getChargingAmt());
+		addTripartitePlatformOrder.setRechargePaymentType(0);
 		addTripartitePlatformOrder.setPlateNum(queryStartCharge.getPlateNum());
 		R order = chargingOrderClient.addTripartitePlatformOrder(addTripartitePlatformOrder);
 		//启动失败
@@ -1267,6 +1269,12 @@
 		notificationChargeOrderInfo.setTotalElecMoney(chargingOrder.getTotalElectricity());
 		notificationChargeOrderInfo.setTotalSeviceMoney(chargingOrder.getServiceCharge());
 		notificationChargeOrderInfo.setTotalMoney(chargingOrder.getTotalElectricity().add(chargingOrder.getServiceCharge()));
+		notificationChargeOrderInfo.setTotalDelayMoney(BigDecimal.ZERO);
+		TParkingRecord parkingRecord = parkingRecordClient.getParkingRecordByChargingOrderId(chargingOrder.getId()).getData();
+		if(null != parkingRecord && parkingRecord.getStatus() == 3){
+			notificationChargeOrderInfo.setTotalDelayMoney(parkingRecord.getPayment());
+		}
+		
 		//结束方式(0=异常终止,1=主动终止,2=满电终止,3=费用不足终止)
 		switch (chargingOrder.getEndMode()){
 			case 0:
@@ -1349,4 +1357,153 @@
 		baseResult.setSig(TCECUtil.buildSign(baseResult));
 		return baseResult;
 	}
+	
+	
+	/**
+	 * 推送充电车牌号
+	 * 客户归属运营商向设备运营商推送充电用户车牌号减免停车费,多次推送以最后一次车牌号为准
+	 * @param baseRequest
+	 * @param request
+	 * @return
+	 */
+	@PostMapping("/notification_charge_carnum")
+	public BaseResult notificationChargeCarnum(@RequestBody BaseRequest baseRequest, HttpServletRequest request){
+		//校验token和签名
+		BaseResult baseResult = requestCheck(true, baseRequest, request);
+		if(0 != baseResult.getRet()){
+			baseResult.setData("");
+			baseResult.setSig(TCECUtil.buildSign(baseResult));
+			return baseResult;
+		}
+		Operator operator = baseResult.getOperator();
+		//解密参数
+		String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getDataSecret(), operator.getDataSecretIv());
+		NotificationChargeCarnum notificationChargeCarnum = JSON.parseObject(decrypt, NotificationChargeCarnum.class);
+		
+		NotificationChargeCarnumResult notificationChargeCarnumResult = new NotificationChargeCarnumResult();
+		notificationChargeCarnumResult.setStartChargeSeqs(notificationChargeCarnum.getStartChargeSeqs());
+		notificationChargeCarnumResult.setSuccStat(0);
+		notificationChargeCarnumResult.setFailReason(0);
+		TChargingOrder chargingOrder = chargingOrderClient.getChargingOrderByStartChargeSeq(notificationChargeCarnum.getStartChargeSeqs()).getData();
+		if(null == chargingOrder){
+			notificationChargeCarnumResult.setSuccStat(1);
+			notificationChargeCarnumResult.setFailReason(1);
+		}else{
+			//待处理相关业务逻辑
+		}
+		//参数加密
+		String jsonString = JSON.toJSONString(notificationChargeCarnumResult);
+		String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+		baseResult.setData(encrypt);
+		baseResult.setSig(TCECUtil.buildSign(baseResult));
+		return baseResult;
+	}
+	
+	
+	/**
+	 * 账单拉取(快电)
+	 * @param baseRequest
+	 * @param request
+	 * @return
+	 */
+	@PostMapping("/query_charge_order_info")
+	public BaseResult queryChargeOrderInfo(@RequestBody BaseRequest baseRequest, HttpServletRequest request){
+		//校验token和签名
+		BaseResult baseResult = requestCheck(true, baseRequest, request);
+		if(0 != baseResult.getRet()){
+			baseResult.setData("");
+			baseResult.setSig(TCECUtil.buildSign(baseResult));
+			return baseResult;
+		}
+		Operator operator = baseResult.getOperator();
+		//解密参数
+		String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getDataSecret(), operator.getDataSecretIv());
+		QueryChargeOrderInfo queryChargeOrderInfo = JSON.parseObject(decrypt, QueryChargeOrderInfo.class);
+		//构建返回结果
+		QueryChargeOrderInfoResult result = buildQueryChargeOrderInfoResult(queryChargeOrderInfo);
+		//参数加密
+		String jsonString = JSON.toJSONString(result);
+		String encrypt = AESUtil.encrypt(jsonString, operator.getDataSecret(), operator.getDataSecretIv());
+		baseResult.setData(encrypt);
+		baseResult.setSig(TCECUtil.buildSign(baseResult));
+		return baseResult;
+	}
+	
+	
+	
+	/**
+	 * 构建充电账单拉取实体
+	 * @param queryChargeOrderInfo
+	 * @return
+	 */
+	public QueryChargeOrderInfoResult buildQueryChargeOrderInfoResult(QueryChargeOrderInfo queryChargeOrderInfo){
+		//构建返回结果
+		QueryChargeOrderInfoResult queryChargeOrderInfoResult = new QueryChargeOrderInfoResult();
+		List<OrderInfo> orderInfos = new ArrayList<>();
+		List<String> startChargeSeqs = queryChargeOrderInfo.getStartChargeSeqs();
+		List<TChargingOrder> chargingOrders = chargingOrderClient.getChargingOrderByStartChargeSeqs(startChargeSeqs).getData();
+		for (TChargingOrder chargingOrder : chargingOrders) {
+			if(null == chargingOrder){
+				return null;
+			}
+			OrderInfo orderInfo = new OrderInfo();
+			orderInfo.setStartChargeSeq(chargingOrder.getStartChargeSeq());
+			orderInfo.setConnectorID(chargingOrder.getChargingGunId().toString());
+			orderInfo.setStartTime((null == chargingOrder.getStartTime() ? chargingOrder.getCreateTime() : chargingOrder.getStartTime()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+			orderInfo.setEndTime((null == chargingOrder.getStartTime() ? LocalDateTime.now() : chargingOrder.getEndTime()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+			orderInfo.setTotalPower(chargingOrder.getTotalElectricity());
+			orderInfo.setTotalElecMoney(chargingOrder.getElectrovalence());
+			orderInfo.setTotalSeviceMoney(chargingOrder.getServiceCharge());
+			orderInfo.setTotalMoney(chargingOrder.getTotalElectricity().add(chargingOrder.getServiceCharge()));
+			//结束方式(0=异常终止,1=主动终止,2=满电终止,3=费用不足终止)
+			switch (chargingOrder.getEndMode()){
+				case 0:
+					orderInfo.setStopReason(3);
+					break;
+				case 1:
+					orderInfo.setStopReason(0);
+					break;
+				case 2:
+					orderInfo.setStopReason(2);
+					break;
+				case 3:
+					orderInfo.setStopReason(4);
+					break;
+			}
+			//构建充电明细
+			List<ChargeDetail> chargeDetails = new ArrayList<>();
+			List<TChargingOrderAccountingStrategy> data = chargingOrderAccountingStrategyClient.getChargingOrderAccountingStrategyByOrderId(chargingOrder.getId()).getData();
+			
+			LocalDateTime startTime = chargingOrder.getStartTime();
+			LocalDateTime endTime = chargingOrder.getEndTime();
+			String s_format = startTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+			String e_format = endTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+			for (TChargingOrderAccountingStrategy datum : data) {
+				ChargeDetail chargeDetail = new ChargeDetail();
+				if(s_format.equals(e_format)){
+					chargeDetail.setDetailStartTime(s_format + " " + datum.getStartTime() + ":00");
+					chargeDetail.setDetailEndTime(s_format + " " + datum.getEndTime() + ":59");
+				}else{
+					String substring = datum.getEndTime().substring(0, datum.getEndTime().indexOf(":"));
+					if(Integer.valueOf(substring) > 12){
+						chargeDetail.setDetailStartTime(s_format + " " + datum.getStartTime() + ":00");
+						chargeDetail.setDetailEndTime(s_format + " " + datum.getEndTime() + ":59");
+					}else{
+						chargeDetail.setDetailStartTime(e_format + " " + datum.getStartTime() + ":00");
+						chargeDetail.setDetailEndTime(e_format + " " + datum.getEndTime() + ":59");
+					}
+				}
+				chargeDetail.setElecPrice(datum.getElectrovalence());
+				chargeDetail.setSevicePrice(datum.getServiceCharge());
+				chargeDetail.setDetailPower(datum.getChargingCapacity());
+				chargeDetail.setDetailElecMoney(datum.getPeriodElectricPrice());
+				chargeDetail.setDetailSeviceMoney(datum.getPeriodServicePrice());
+				chargeDetails.add(chargeDetail);
+			}
+			orderInfo.setChargeDetails(chargeDetails);
+			orderInfos.add(orderInfo);
+		}
+		queryChargeOrderInfoResult.setOrderInfos(orderInfos);
+		return queryChargeOrderInfoResult;
+	}
 }
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/kuaidian/model/NotificationChargeCarnum.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/kuaidian/model/NotificationChargeCarnum.java
new file mode 100644
index 0000000..7640864
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/kuaidian/model/NotificationChargeCarnum.java
@@ -0,0 +1,24 @@
+package com.ruoyi.integration.drainage.kuaidian.model;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * 推送充电车牌号
+ * @author zhibing.pu
+ * @Date 2025/1/26 14:38
+ */
+@Data
+public class NotificationChargeCarnum {
+	/**
+	 * 充电订单号
+	 */
+	@NotNull
+	private String StartChargeSeqs;
+	/**
+	 * 充电车牌号
+	 */
+	@NotNull
+	private String Carnum;
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/kuaidian/model/NotificationChargeCarnumResult.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/kuaidian/model/NotificationChargeCarnumResult.java
new file mode 100644
index 0000000..02125de
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/kuaidian/model/NotificationChargeCarnumResult.java
@@ -0,0 +1,34 @@
+package com.ruoyi.integration.drainage.kuaidian.model;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * 推送充电车牌号返回结果
+ * @author zhibing.pu
+ * @Date 2025/1/26 14:43
+ */
+@Data
+public class NotificationChargeCarnumResult {
+	/**
+	 * 充电订单号
+	 */
+	@NotNull
+	private String StartChargeSeqs;
+	/**
+	 * 成功状态
+	 * 0:成功
+	 * 1:失败
+	 */
+	@NotNull
+	private Integer SuccStat;
+	/**
+	 * 失败原因
+	 * 0:无
+	 * 1:无此订单
+	 * 2`9自定义
+	 */
+	@NotNull
+	private Integer FailReason;
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/kuaidian/model/OrderInfo.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/kuaidian/model/OrderInfo.java
new file mode 100644
index 0000000..fa1630a
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/kuaidian/model/OrderInfo.java
@@ -0,0 +1,86 @@
+package com.ruoyi.integration.drainage.kuaidian.model;
+
+import com.ruoyi.integration.drainage.model.ChargeDetail;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Null;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 账单实体
+ * @author zhibing.pu
+ * @Date 2025/1/26 15:29
+ */
+@Data
+public class OrderInfo {
+	/**
+	 * 充电订单号
+	 */
+	@NotNull
+	private String StartChargeSeq;
+	/**
+	 * 充电设备接口编码
+	 */
+	@NotNull
+	private String ConnectorID;
+	/**
+	 * 开始充电时间
+	 * yyyy-MM-dd HH:mm:ss
+	 */
+	@NotNull
+	private String StartTime;
+	/**
+	 * 结束充电时间
+	 * yyyy-MM-dd HH:mm:ss
+	 */
+	@NotNull
+	private String EndTime;
+	/**
+	 * 累计充电电量
+	 */
+	@NotNull
+	private BigDecimal TotalPower;
+	/**
+	 * 总电费
+	 */
+	@NotNull
+	private BigDecimal TotalElecMoney;
+	/**
+	 * 总服务费
+	 */
+	@NotNull
+	private BigDecimal TotalSeviceMoney;
+	/**
+	 * 累计总金额
+	 */
+	@NotNull
+	private BigDecimal TotalMoney;
+	/**
+	 * 车辆识别码
+	 */
+	@Null
+	private String VIN;
+	/**
+	 * 充电结束原因
+	 * 0:用户手动停止充电
+	 * 1:客户归属地运营商平台停止充电
+	 * 2:BMS停止充电
+	 * 3:充电机设备故障
+	 * 4:连接器断开
+	 * 5`99:自定义
+	 */
+	@NotNull
+	private Integer StopReason;
+	/**
+	 * 时段数N
+	 * 范围0`23
+	 */
+	@Null
+	private Integer SumPeriod;
+	/**
+	 * 充电明细信息
+	 */
+	private List<ChargeDetail> ChargeDetails;
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/kuaidian/model/QueryChargeOrderInfo.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/kuaidian/model/QueryChargeOrderInfo.java
new file mode 100644
index 0000000..7acc4cb
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/kuaidian/model/QueryChargeOrderInfo.java
@@ -0,0 +1,18 @@
+package com.ruoyi.integration.drainage.kuaidian.model;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 账单拉取
+ * @author zhibing.pu
+ * @Date 2025/1/26 15:26
+ */
+@Data
+public class QueryChargeOrderInfo {
+	/**
+	 * 充电订单号集合
+	 */
+	private List<String> StartChargeSeqs;
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/kuaidian/model/QueryChargeOrderInfoResult.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/kuaidian/model/QueryChargeOrderInfoResult.java
new file mode 100644
index 0000000..544ae8e
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/kuaidian/model/QueryChargeOrderInfoResult.java
@@ -0,0 +1,18 @@
+package com.ruoyi.integration.drainage.kuaidian.model;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 账单拉取
+ * @author zhibing.pu
+ * @Date 2025/1/26 15:28
+ */
+@Data
+public class QueryChargeOrderInfoResult {
+	/**
+	 * 充电订单账单集合
+	 */
+	private List<OrderInfo> OrderInfos;
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationChargeOrderInfo.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationChargeOrderInfo.java
index 63f2d13..512b98a 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationChargeOrderInfo.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationChargeOrderInfo.java
@@ -78,5 +78,15 @@
 	 */
 	@Null
 	private List<ChargeDetail> ChargeDetails;
+	/**
+	 * 占位费
+	 */
+	@Null
+	private BigDecimal TotalDelayMoney;
+	/**
+	 * 车辆识别码
+	 */
+	@Null
+	private String VIN;
 	
 }
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipChargeStatus.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipChargeStatus.java
index a23736b..b4bd767 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipChargeStatus.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipChargeStatus.java
@@ -3,6 +3,7 @@
 import lombok.Data;
 
 import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Null;
 
 /**
  * 查询充电状态
@@ -16,4 +17,14 @@
 	 */
 	@NotNull
 	private String StartChargeSeq;
+	/**
+	 * 抢号
+	 */
+	@NotNull
+	private String ConnectorID;
+	/**
+	 * 车辆识别码
+	 */
+	@Null
+	private String VIN;
 }
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipChargeStatusResult.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipChargeStatusResult.java
index ae19f5e..8060b20 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipChargeStatusResult.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipChargeStatusResult.java
@@ -120,5 +120,10 @@
 	 */
 	@Null
 	private List<ChargeDetail> ChargeDetails;
+	/**
+	 * 车辆识别码
+	 */
+	@Null
+	private String VIN;
 	
 }
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStartCharge.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStartCharge.java
index e930446..3993406 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStartCharge.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStartCharge.java
@@ -29,15 +29,10 @@
 	@NotNull
 	private String QRCode;
 	/**
-	 * 支付方式(1=微信,2=支付宝)
-	 */
-	@NotNull
-	private Integer paymentType;
-	/**
 	 * 充电余额
 	 */
 	@NotNull
-	private BigDecimal paymentAmount;
+	private BigDecimal chargingAmt;
 	/**
 	 * 充电车牌号
 	 */
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 cd0f8ee..64340cf 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
@@ -2120,6 +2120,20 @@
     }
     
     
+    
+    
+    /**
+     * 根据三方平台订单ids获取充电数据
+     * @param startChargeSeqs
+     * @return
+     */
+    @PostMapping("/getChargingOrderByStartChargeSeqs")
+    public R<List<TChargingOrder>> getChargingOrderByStartChargeSeqs(@RequestParam("startChargeSeqs") List<String> startChargeSeqs){
+        List<TChargingOrder> list = chargingOrderService.list(new LambdaQueryWrapper<TChargingOrder>().in(TChargingOrder::getStartChargeSeq, startChargeSeqs));
+        return R.ok(list);
+    }
+    
+    
     /**
      * 三方平台请求停止充电
      * @param startChargeSeq

--
Gitblit v1.7.1