xuhy
2026-01-26 60b6e612ead55833d01d671d254310adcf4db62d
订单推送返回,设备状态推送接收
1个文件已添加
2个文件已修改
110 ■■■■■ 已修改文件
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/tulaidian/controller/NotifyController.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/tulaidian/domain/ConnectorStatusInfos.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/tulaidian/domain/TContent.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
    }
}
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/tulaidian/domain/ConnectorStatusInfos.java
New file
@@ -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;
}
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;
    /**