mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-06-11 10:49:52 +08:00
新增 联联平台设备充电中状态变化推送接口
This commit is contained in:
@@ -153,10 +153,10 @@ public interface IOrderBasicInfoService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取充电实时数据
|
* 获取充电实时数据
|
||||||
* @param orderCode 订单编号
|
* @param transactionCode 交易流水号
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<RealTimeMonitorData> getChargingRealTimeData(String orderCode);
|
List<RealTimeMonitorData> getChargingRealTimeData(String transactionCode);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 首页订单数据展示
|
* 首页订单数据展示
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.jsowell.thirdparty.domain;
|
package com.jsowell.thirdparty.domain;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson2.annotation.JSONField;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -19,13 +20,15 @@ public class ConnectorChargeStatusInfo {
|
|||||||
* 充电订单号 Y
|
* 充电订单号 Y
|
||||||
* 对接平台系统订单编号
|
* 对接平台系统订单编号
|
||||||
*/
|
*/
|
||||||
private String StartChargeSeq;
|
@JSONField(name = "StartChargeSeq")
|
||||||
|
private String startChargeSeq;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 充电设备接口编码 Y
|
* 充电设备接口编码 Y
|
||||||
* 平台下唯一枪口号
|
* 平台下唯一枪口号
|
||||||
*/
|
*/
|
||||||
private String ConnectorID;
|
@JSONField(name = "ConnectorID")
|
||||||
|
private String connectorID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 充电设备接口状态 Y
|
* 充电设备接口状态 Y
|
||||||
@@ -35,88 +38,103 @@ public class ConnectorChargeStatusInfo {
|
|||||||
* 4:占用(预约锁定)
|
* 4:占用(预约锁定)
|
||||||
* 255:故障
|
* 255:故障
|
||||||
*/
|
*/
|
||||||
private Integer ConnectorStatus;
|
@JSONField(name = "ConnectorStatus")
|
||||||
|
private Integer connectorStatus;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 车辆识别码 N
|
* 车辆识别码 N
|
||||||
* 车辆识别号码或车架号码,由17位英数组成
|
* 车辆识别号码或车架号码,由17位英数组成
|
||||||
*/
|
*/
|
||||||
private String Vin;
|
@JSONField(name = "Vin")
|
||||||
|
private String vin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A相电流 Y
|
* A相电流 Y
|
||||||
* 单位:A,默认:0 含直流(输出)
|
* 单位:A,默认:0 含直流(输出)
|
||||||
*/
|
*/
|
||||||
private BigDecimal CurrentA;
|
@JSONField(name = "CurrentA")
|
||||||
|
private BigDecimal currentA;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* B相电流 N
|
* B相电流 N
|
||||||
* 单位:A,默认:0
|
* 单位:A,默认:0
|
||||||
*/
|
*/
|
||||||
private BigDecimal CurrentB;
|
@JSONField(name = "CurrentB")
|
||||||
|
private BigDecimal currentB;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* C相电流 N
|
* C相电流 N
|
||||||
* 单位:A,默认:0
|
* 单位:A,默认:0
|
||||||
*/
|
*/
|
||||||
private BigDecimal CurrentC;
|
@JSONField(name = "CurrentC")
|
||||||
|
private BigDecimal currentC;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A相电压 Y
|
* A相电压 Y
|
||||||
* 单位:V,默认:0含直流(输出)
|
* 单位:V,默认:0含直流(输出)
|
||||||
*/
|
*/
|
||||||
private BigDecimal VoltageA;
|
@JSONField(name = "VoltageA")
|
||||||
|
private BigDecimal voltageA;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* B相电压 N
|
* B相电压 N
|
||||||
* 单位:V,默认:0
|
* 单位:V,默认:0
|
||||||
*/
|
*/
|
||||||
private BigDecimal VoltageB;
|
@JSONField(name = "VoltageB")
|
||||||
|
private BigDecimal voltageB;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* C相电压 N
|
* C相电压 N
|
||||||
* 单位:V,默认:0
|
* 单位:V,默认:0
|
||||||
*/
|
*/
|
||||||
private BigDecimal VoltageC;
|
@JSONField(name = "VoltageC")
|
||||||
|
private BigDecimal voltageC;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 电池剩余电量(默认:0) Y
|
* 电池剩余电量(默认:0) Y
|
||||||
*/
|
*/
|
||||||
private BigDecimal Soc;
|
@JSONField(name = "Soc")
|
||||||
|
private BigDecimal soc;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 开始充电时间 Y
|
* 开始充电时间 Y
|
||||||
* 格式“yyyy-MM-dd HH:mm:ss”
|
* 格式“yyyy-MM-dd HH:mm:ss”
|
||||||
*/
|
*/
|
||||||
private String StartTime;
|
@JSONField(name = "StartTime")
|
||||||
|
private String startTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 本次采样时间 Y
|
* 本次采样时间 Y
|
||||||
* 格式“yyyy-MM-dd HH:mm:ss”
|
* 格式“yyyy-MM-dd HH:mm:ss”
|
||||||
*/
|
*/
|
||||||
private String EndTime;
|
@JSONField(name = "EndTime")
|
||||||
|
private String endTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 累计充电量 Y
|
* 累计充电量 Y
|
||||||
* 单位:度,小数点后2位
|
* 单位:度,小数点后2位
|
||||||
*/
|
*/
|
||||||
private BigDecimal TotalPower;
|
@JSONField(name = "TotalPower")
|
||||||
|
private BigDecimal totalPower;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 累计电费 Y
|
* 累计电费 Y
|
||||||
* 单位:元,小数点后2位
|
* 单位:元,小数点后2位
|
||||||
*/
|
*/
|
||||||
private BigDecimal ElecMoney;
|
@JSONField(name = "ElecMoney")
|
||||||
|
private BigDecimal elecMoney;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 累计服务费 Y
|
* 累计服务费 Y
|
||||||
* 单位:元,小数点后2位
|
* 单位:元,小数点后2位
|
||||||
*/
|
*/
|
||||||
private BigDecimal SeviceMoney;
|
@JSONField(name = "SeviceMoney")
|
||||||
|
private BigDecimal seviceMoney;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 累计总金额 Y
|
* 累计总金额 Y
|
||||||
* 单位:元,小数点后2位
|
* 单位:元,小数点后2位
|
||||||
*/
|
*/
|
||||||
private BigDecimal TotalMoney;
|
@JSONField(name = "TotalMoney")
|
||||||
|
private BigDecimal totalMoney;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -142,4 +142,11 @@ public interface LianLianService {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
String pushOrderReconciliationInfo(String orderCode);
|
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
|
* @param dto
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@@ -276,7 +276,7 @@ public class LianLianServiceImpl implements LianLianService {
|
|||||||
// 充电中
|
// 充电中
|
||||||
ConnectorChargeStatusInfo info = new ConnectorChargeStatusInfo();
|
ConnectorChargeStatusInfo info = new ConnectorChargeStatusInfo();
|
||||||
OrderBasicInfo orderBasicInfo = orderBasicInfoService.queryChargingByPileConnectorCode(connectorInfoVO.getPileConnectorCode());
|
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);
|
RealTimeMonitorData realTimeMonitorData = chargingRealTimeData.get(0);
|
||||||
|
|
||||||
info.setStartChargeSeq(orderBasicInfo.getOrderCode());
|
info.setStartChargeSeq(orderBasicInfo.getOrderCode());
|
||||||
@@ -640,7 +640,7 @@ public class LianLianServiceImpl implements LianLianService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 联联平台推送 设备状态变化推送
|
* 联联平台推送 设备状态变化推送 notification_stationStatus
|
||||||
* @param pileConnectorCode
|
* @param pileConnectorCode
|
||||||
* @param status
|
* @param status
|
||||||
* @return
|
* @return
|
||||||
@@ -683,7 +683,7 @@ public class LianLianServiceImpl implements LianLianService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 推送订单信息
|
* 推送订单信息 notification_orderInfo
|
||||||
* @param orderCode
|
* @param orderCode
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@@ -1120,6 +1120,58 @@ public class LianLianServiceImpl implements LianLianService {
|
|||||||
return result;
|
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 请求打印充电小票
|
* TODO 请求打印充电小票
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user