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