From 60b6e612ead55833d01d671d254310adcf4db62d Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期一, 26 一月 2026 11:47:18 +0800
Subject: [PATCH] 订单推送返回,设备状态推送接收
---
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/tulaidian/controller/NotifyController.java | 84 ++++++++++++++++++++++++++++++++---------
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/tulaidian/domain/TContent.java | 2
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/tulaidian/domain/ConnectorStatusInfos.java | 24 ++++++++++++
3 files changed, 90 insertions(+), 20 deletions(-)
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/tulaidian/controller/NotifyController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/tulaidian/controller/NotifyController.java
index 7d0a7a6..0a33568 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/tulaidian/controller/NotifyController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/tulaidian/controller/NotifyController.java
@@ -3,19 +3,16 @@
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient;
import com.ruoyi.chargingPile.api.model.TChargingGun;
-import com.ruoyi.chargingPile.api.model.TChargingPile;
import com.ruoyi.chargingPile.service.ISiteService;
import com.ruoyi.chargingPile.service.TChargingGunService;
import com.ruoyi.chargingPile.service.TChargingPileService;
import com.ruoyi.chargingPile.tulaidian.domain.ChargeRecord;
import com.ruoyi.chargingPile.tulaidian.domain.ChargeStatus;
+import com.ruoyi.chargingPile.tulaidian.domain.ConnectorStatusInfos;
import com.ruoyi.chargingPile.tulaidian.domain.TContent;
import com.ruoyi.chargingPile.tulaidian.service.IContentService;
import com.ruoyi.chargingPile.tulaidian.util.AesEncryption;
-import com.ruoyi.chargingPile.tulaidian.util.HMacMD5Util;
-import com.ruoyi.chargingPile.tulaidian.util.SequenceGenerator;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.order.api.feignClient.ChargingOrderClient;
@@ -26,7 +23,6 @@
import java.math.BigDecimal;
import java.text.ParseException;
-import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.HashMap;
@@ -64,9 +60,9 @@
// 结束充电后 特来电主动 推送充电订单信息
@ResponseBody
@PostMapping("/notification_charge_order_info")
- public R notification_charge_order_info(@RequestBody String json) throws ParseException {
+ public Map<String, Object> notification_charge_order_info(@RequestBody String json) throws ParseException {
TContent tContent = new TContent();
- tContent.setType(5);
+ tContent.setType(1);
tContent.setContent(json);
tContent.setCreateTime(new Date());
contentService.save(tContent);
@@ -113,14 +109,43 @@
if(orderIdR.getCode() == 200){
// TODO 充电明细
}
- return R.ok();
+ Map<String,Object> map = new HashMap<>();
+ map.put("StartChargeSeq",chargeRecord.getStartChargeSeq());
+ map.put("ConnectorID",chargeRecord.getConnectorID());
+ map.put("ConfirmResult",0);
+ return map;
}
+// @ResponseBody
+// @PostMapping("/notification_equip_charge_status")
+// public R notification_equip_charge_status(@RequestBody String json) throws ParseException {
+// TContent tContent = new TContent();
+// tContent.setType(2);
+// tContent.setContent(json);
+// tContent.setCreateTime(new Date());
+// contentService.save(tContent);
+// JSONObject jsonObject1 = JSONObject.parseObject(json);
+// String data = jsonObject1.getString("Data");
+// String decrypt = AesEncryption.decrypt(DataSecret, DataSecretIV, data);
+// System.err.println(decrypt);
+// JSONObject jsonObject = JSONObject.parseObject(decrypt);
+// System.err.println("特来电主动推送订单状态");
+// ChargeStatus chargeStatus = JSON.parseObject(jsonObject.toJSONString(), ChargeStatus.class);
+// R<TChargingOrder> chargeOrderR = chargingOrderClient.getChargingOrderByStartChargeSeq(chargeStatus.getStartChargeSeq());
+// TChargingOrder chargingOrder = chargeOrderR.getData();
+// if (chargingOrder!=null){
+// // 修改订单状态
+// chargingOrder.setStatus(chargeStatus.getStartChargeSeqStat());
+// chargingOrderClient.updateChargingOrder(chargingOrder);
+// }
+// return R.ok();
+// }
+
@ResponseBody
- @PostMapping("/notification_equip_charge_status")
- public R notification_equip_charge_status(@RequestBody String json) throws ParseException {
+ @PostMapping("/notification_stationStatus")
+ public Map<String,Integer> notification_stationStatus(@RequestBody String json) {
TContent tContent = new TContent();
- tContent.setType(1);
+ tContent.setType(3);
tContent.setContent(json);
tContent.setCreateTime(new Date());
contentService.save(tContent);
@@ -129,15 +154,36 @@
String decrypt = AesEncryption.decrypt(DataSecret, DataSecretIV, data);
System.err.println(decrypt);
JSONObject jsonObject = JSONObject.parseObject(decrypt);
- System.err.println("特来电主动推送订单状态");
- ChargeStatus chargeStatus = JSON.parseObject(jsonObject.toJSONString(), ChargeStatus.class);
- R<TChargingOrder> chargeOrderR = chargingOrderClient.getChargingOrderByStartChargeSeq(chargeStatus.getStartChargeSeq());
- TChargingOrder chargingOrder = chargeOrderR.getData();
- if (chargingOrder!=null){
+ System.err.println("特来电主动推送设备状态");
+ ConnectorStatusInfos connectorStatusInfos = JSON.parseObject(jsonObject.toJSONString(), ConnectorStatusInfos.class);
+ TChargingGun chargingGun = chargingGunService.getOne(Wrappers.lambdaQuery(TChargingGun.class)
+ .eq(TChargingGun::getCode, connectorStatusInfos.getConnectorID()));
+ if (Objects.nonNull(chargingGun)){
// 修改订单状态
- chargingOrder.setStatus(chargeStatus.getStartChargeSeqStat());
- chargingOrderClient.updateChargingOrder(chargingOrder);
+ switch (connectorStatusInfos.getStatus()){
+ case 0:
+ chargingGun.setStatus(1);
+ break;
+ case 1:
+ chargingGun.setStatus(2);
+ break;
+ case 2:
+ chargingGun.setStatus(3);
+ break;
+ case 3:
+ chargingGun.setStatus(4);
+ break;
+ case 4:
+ chargingGun.setStatus(6);
+ break;
+ case 255:
+ chargingGun.setStatus(7);
+ break;
+ }
+ chargingGunService.updateById(chargingGun);
}
- return R.ok();
+ Map<String,Integer> map = new HashMap<>();
+ map.put("Status",0);
+ return map;
}
}
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/tulaidian/domain/ConnectorStatusInfos.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/tulaidian/domain/ConnectorStatusInfos.java
new file mode 100644
index 0000000..41c9949
--- /dev/null
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/tulaidian/domain/ConnectorStatusInfos.java
@@ -0,0 +1,24 @@
+package com.ruoyi.chargingPile.tulaidian.domain;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class ConnectorStatusInfos implements Serializable {
+
+
+ @ApiModelProperty(value = "充电设备接口编码")
+ private String ConnectorID;
+
+ @ApiModelProperty(value = "接口状态 0:离网; 1:空闲; 2:占用(未充电); 3:占用(充电中); 4:占用(预约锁定); 255:故障")
+ private Integer Status;
+
+ @ApiModelProperty(value = "车位状态 0:未知 10:空闲 50:占用")
+ private Integer ParkStatus;
+
+ @ApiModelProperty(value = "地锁状态 0:未知 10:已解锁 50:已上锁")
+ private Integer LockStatus;
+
+}
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/tulaidian/domain/TContent.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/tulaidian/domain/TContent.java
index 0b12035..e482c5f 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/tulaidian/domain/TContent.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/tulaidian/domain/TContent.java
@@ -27,7 +27,7 @@
@TableId(value="id", type= IdType.AUTO)
private Integer id;
/**
- * 类型1推送订单结束 2结束充电 3请求充电 4特来电请求token 5推送订单状态
+ * 类型1推送订单结束 2订单状态 3设备状态
*/
private Integer type;
/**
--
Gitblit v1.7.1