diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java index 360db83f3..059235812 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java @@ -153,10 +153,10 @@ public interface IOrderBasicInfoService { /** * 获取充电实时数据 - * @param orderCode 订单编号 + * @param transactionCode 交易流水号 * @return */ - List getChargingRealTimeData(String orderCode); + List getChargingRealTimeData(String transactionCode); /** * 首页订单数据展示 diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/domain/ConnectorChargeStatusInfo.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/domain/ConnectorChargeStatusInfo.java index 0c34e1e4f..6c204b6b9 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/domain/ConnectorChargeStatusInfo.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/domain/ConnectorChargeStatusInfo.java @@ -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; } diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/service/LianLianService.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/service/LianLianService.java index b753e3fd7..0fad2558f 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/service/LianLianService.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/service/LianLianService.java @@ -142,4 +142,11 @@ public interface LianLianService { * @return */ String pushOrderReconciliationInfo(String orderCode); + + /** + * 设备充电中状态变化推送 + * @param pileConnectorCode + * @return + */ + String pushPileChargeStatusChange(String pileConnectorCode); } diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/service/impl/LianLianServiceImpl.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/service/impl/LianLianServiceImpl.java index 6082e36ac..3a4bcc197 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/service/impl/LianLianServiceImpl.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/service/impl/LianLianServiceImpl.java @@ -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 chargingRealTimeData = orderBasicInfoService.getChargingRealTimeData(orderBasicInfo.getOrderCode()); + List 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 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 请求打印充电小票 */