mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-22 12:05:05 +08:00
新增 联联平台设备充电中状态变化推送接口
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package com.jsowell.thirdparty.domain;
|
||||
|
||||
import com.alibaba.fastjson2.annotation.JSONField;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
@@ -19,13 +20,15 @@ public class ConnectorChargeStatusInfo {
|
||||
* 充电订单号 Y
|
||||
* 对接平台系统订单编号
|
||||
*/
|
||||
private String StartChargeSeq;
|
||||
@JSONField(name = "StartChargeSeq")
|
||||
private String startChargeSeq;
|
||||
|
||||
/**
|
||||
* 充电设备接口编码 Y
|
||||
* 平台下唯一枪口号
|
||||
*/
|
||||
private String ConnectorID;
|
||||
@JSONField(name = "ConnectorID")
|
||||
private String connectorID;
|
||||
|
||||
/**
|
||||
* 充电设备接口状态 Y
|
||||
@@ -35,88 +38,103 @@ public class ConnectorChargeStatusInfo {
|
||||
* 4:占用(预约锁定)
|
||||
* 255:故障
|
||||
*/
|
||||
private Integer ConnectorStatus;
|
||||
@JSONField(name = "ConnectorStatus")
|
||||
private Integer connectorStatus;
|
||||
|
||||
/**
|
||||
* 车辆识别码 N
|
||||
* 车辆识别号码或车架号码,由17位英数组成
|
||||
*/
|
||||
private String Vin;
|
||||
@JSONField(name = "Vin")
|
||||
private String vin;
|
||||
|
||||
/**
|
||||
* A相电流 Y
|
||||
* 单位:A,默认:0 含直流(输出)
|
||||
*/
|
||||
private BigDecimal CurrentA;
|
||||
@JSONField(name = "CurrentA")
|
||||
private BigDecimal currentA;
|
||||
|
||||
/**
|
||||
* B相电流 N
|
||||
* 单位:A,默认:0
|
||||
*/
|
||||
private BigDecimal CurrentB;
|
||||
@JSONField(name = "CurrentB")
|
||||
private BigDecimal currentB;
|
||||
|
||||
/**
|
||||
* C相电流 N
|
||||
* 单位:A,默认:0
|
||||
*/
|
||||
private BigDecimal CurrentC;
|
||||
@JSONField(name = "CurrentC")
|
||||
private BigDecimal currentC;
|
||||
|
||||
/**
|
||||
* A相电压 Y
|
||||
* 单位:V,默认:0含直流(输出)
|
||||
*/
|
||||
private BigDecimal VoltageA;
|
||||
@JSONField(name = "VoltageA")
|
||||
private BigDecimal voltageA;
|
||||
|
||||
/**
|
||||
* B相电压 N
|
||||
* 单位:V,默认:0
|
||||
*/
|
||||
private BigDecimal VoltageB;
|
||||
@JSONField(name = "VoltageB")
|
||||
private BigDecimal voltageB;
|
||||
|
||||
/**
|
||||
* C相电压 N
|
||||
* 单位:V,默认:0
|
||||
*/
|
||||
private BigDecimal VoltageC;
|
||||
@JSONField(name = "VoltageC")
|
||||
private BigDecimal voltageC;
|
||||
|
||||
/**
|
||||
* 电池剩余电量(默认:0) Y
|
||||
*/
|
||||
private BigDecimal Soc;
|
||||
@JSONField(name = "Soc")
|
||||
private BigDecimal soc;
|
||||
|
||||
/**
|
||||
* 开始充电时间 Y
|
||||
* 格式“yyyy-MM-dd HH:mm:ss”
|
||||
*/
|
||||
private String StartTime;
|
||||
@JSONField(name = "StartTime")
|
||||
private String startTime;
|
||||
|
||||
/**
|
||||
* 本次采样时间 Y
|
||||
* 格式“yyyy-MM-dd HH:mm:ss”
|
||||
*/
|
||||
private String EndTime;
|
||||
@JSONField(name = "EndTime")
|
||||
private String endTime;
|
||||
|
||||
/**
|
||||
* 累计充电量 Y
|
||||
* 单位:度,小数点后2位
|
||||
*/
|
||||
private BigDecimal TotalPower;
|
||||
@JSONField(name = "TotalPower")
|
||||
private BigDecimal totalPower;
|
||||
|
||||
/**
|
||||
* 累计电费 Y
|
||||
* 单位:元,小数点后2位
|
||||
*/
|
||||
private BigDecimal ElecMoney;
|
||||
@JSONField(name = "ElecMoney")
|
||||
private BigDecimal elecMoney;
|
||||
|
||||
/**
|
||||
* 累计服务费 Y
|
||||
* 单位:元,小数点后2位
|
||||
*/
|
||||
private BigDecimal SeviceMoney;
|
||||
@JSONField(name = "SeviceMoney")
|
||||
private BigDecimal seviceMoney;
|
||||
|
||||
/**
|
||||
* 累计总金额 Y
|
||||
* 单位:元,小数点后2位
|
||||
*/
|
||||
private BigDecimal TotalMoney;
|
||||
@JSONField(name = "TotalMoney")
|
||||
private BigDecimal totalMoney;
|
||||
}
|
||||
|
||||
@@ -142,4 +142,11 @@ public interface LianLianService {
|
||||
* @return
|
||||
*/
|
||||
String pushOrderReconciliationInfo(String orderCode);
|
||||
|
||||
/**
|
||||
* 设备充电中状态变化推送
|
||||
* @param pileConnectorCode
|
||||
* @return
|
||||
*/
|
||||
String pushPileChargeStatusChange(String pileConnectorCode);
|
||||
}
|
||||
|
||||
@@ -92,7 +92,7 @@ public class LianLianServiceImpl implements LianLianService {
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据站点id推送站点信息
|
||||
* 根据站点id推送站点信息 notification_stationInfo
|
||||
* @param dto
|
||||
*/
|
||||
@Override
|
||||
@@ -276,7 +276,7 @@ public class LianLianServiceImpl implements LianLianService {
|
||||
// 充电中
|
||||
ConnectorChargeStatusInfo info = new ConnectorChargeStatusInfo();
|
||||
OrderBasicInfo orderBasicInfo = orderBasicInfoService.queryChargingByPileConnectorCode(connectorInfoVO.getPileConnectorCode());
|
||||
List<RealTimeMonitorData> chargingRealTimeData = orderBasicInfoService.getChargingRealTimeData(orderBasicInfo.getOrderCode());
|
||||
List<RealTimeMonitorData> chargingRealTimeData = orderBasicInfoService.getChargingRealTimeData(orderBasicInfo.getTransactionCode());
|
||||
RealTimeMonitorData realTimeMonitorData = chargingRealTimeData.get(0);
|
||||
|
||||
info.setStartChargeSeq(orderBasicInfo.getOrderCode());
|
||||
@@ -640,7 +640,7 @@ public class LianLianServiceImpl implements LianLianService {
|
||||
}
|
||||
|
||||
/**
|
||||
* 联联平台推送 设备状态变化推送
|
||||
* 联联平台推送 设备状态变化推送 notification_stationStatus
|
||||
* @param pileConnectorCode
|
||||
* @param status
|
||||
* @return
|
||||
@@ -683,7 +683,7 @@ public class LianLianServiceImpl implements LianLianService {
|
||||
}
|
||||
|
||||
/**
|
||||
* 推送订单信息
|
||||
* 推送订单信息 notification_orderInfo
|
||||
* @param orderCode
|
||||
* @return
|
||||
*/
|
||||
@@ -1120,6 +1120,58 @@ public class LianLianServiceImpl implements LianLianService {
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设备充电中状态变化推送 notification_connector_charge_status
|
||||
* @param pileConnectorCode
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String pushPileChargeStatusChange(String pileConnectorCode) {
|
||||
String url = TEST_URL + "notification_connector_charge_status";
|
||||
// 根据枪口号查询充电实时状态
|
||||
OrderBasicInfo orderBasicInfo = orderBasicInfoService.queryChargingByPileConnectorCode(pileConnectorCode);
|
||||
List<RealTimeMonitorData> list = orderBasicInfoService.getChargingRealTimeData(orderBasicInfo.getTransactionCode());
|
||||
RealTimeMonitorData realTimeMonitorData = list.get(0);
|
||||
// 拼装联联参数
|
||||
ConnectorChargeStatusInfo info = ConnectorChargeStatusInfo.builder()
|
||||
.startChargeSeq(orderBasicInfo.getOrderCode())
|
||||
.connectorID(pileConnectorCode)
|
||||
.connectorStatus(Integer.valueOf(realTimeMonitorData.getConnectorStatus()))
|
||||
.currentA(new BigDecimal(realTimeMonitorData.getOutputCurrent()))
|
||||
.voltageA(new BigDecimal(realTimeMonitorData.getOutputVoltage()))
|
||||
.soc(new BigDecimal(realTimeMonitorData.getSOC()))
|
||||
.startTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, orderBasicInfo.getChargeStartTime()))
|
||||
.endTime(DateUtils.getTime())
|
||||
.totalPower(new BigDecimal(realTimeMonitorData.getChargingDegree()))
|
||||
.elecMoney(new BigDecimal("0")) // TODO
|
||||
.seviceMoney(new BigDecimal("0")) // TODO
|
||||
.totalMoney(new BigDecimal(realTimeMonitorData.getChargingAmount()).setScale(2, BigDecimal.ROUND_HALF_UP))
|
||||
|
||||
.build();
|
||||
|
||||
// 通过站点id查询相关配置信息
|
||||
ThirdPartySettingInfo settingInfo = thirdPartySettingInfoService.getInfoByStationId(Long.parseLong(orderBasicInfo.getStationId()));
|
||||
if (settingInfo == null) {
|
||||
return null;
|
||||
}
|
||||
String operatorId = settingInfo.getOperatorId();
|
||||
String operatorSecret = settingInfo.getOperatorSecret();
|
||||
String signSecret = settingInfo.getSignSecret();
|
||||
String dataSecret = settingInfo.getDataSecret();
|
||||
String dataSecretIv = settingInfo.getDataSecretIv();
|
||||
|
||||
// 获取令牌
|
||||
String token = getToken(operatorId, operatorSecret);
|
||||
if (StringUtils.isBlank(token)){
|
||||
return null;
|
||||
}
|
||||
String jsonString = JSONObject.toJSONString(info);
|
||||
// 发送请求
|
||||
String result = HttpRequestUtil.sendPost(token, jsonString, url, dataSecret, dataSecretIv, operatorId, signSecret);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO 请求打印充电小票
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user