update 对接第三方平台

This commit is contained in:
2024-03-23 08:46:46 +08:00
parent 9e358f010f
commit bda2919bcd
7 changed files with 448 additions and 267 deletions

View File

@@ -12,6 +12,7 @@ import com.jsowell.pile.domain.PileConnectorInfo;
import com.jsowell.pile.domain.PileStationInfo;
import com.jsowell.pile.domain.ThirdPartyPlatformConfig;
import com.jsowell.pile.dto.*;
import com.jsowell.pile.dto.ningxiajiaotou.NXJTQueryStationInfoDTO;
import com.jsowell.pile.service.*;
import com.jsowell.pile.vo.web.PileModelInfoVO;
import com.jsowell.thirdparty.lianlian.dto.CommonParamsDTO;
@@ -74,36 +75,25 @@ public abstract class AbsInterfaceWithPlatformLogic implements InitializingBean
@Autowired
protected ZDLService zdlService;
// =================================================================================== //
// ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ 由我方平台实现此接口,对方平台调用的查询接口 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ //
// =================================================================================== //
/**
* 查询运营商信息
* 查询运营商信息 supervise_query_operator_info
* @param dto 查询运营商信息DTO
*/
public abstract Map<String, String> queryOperatorInfo(QueryOperatorInfoDTO dto);
/**
* 6.2 查询充电站信息
*
* 6.2 查询充电站信息 query_stations_info
* 此接口用于查询对接平台的充电站的信息
* @param dto 查询站点信息dto
*/
public abstract Map<String, String> queryStationsInfo(QueryStationInfoDTO dto);
/**
* 6.3 设备状态变化推送
*
* @param pileConnectorCode 充电枪口编号
* @param status 枪口状态
*/
public abstract String notificationStationStatus(String pileConnectorCode, String status);
/**
* 6.4 充电订单推送
*
* @param orderCode 订单编号
*/
public abstract String pushChargeOrderInfo(String orderCode);
/**
* 6.5 设备接口状态查询
* 6.5 设备接口状态查询 query_station_status
*
* @param dto 查询站点信息dto
*/
@@ -116,81 +106,171 @@ public abstract class AbsInterfaceWithPlatformLogic implements InitializingBean
*/
public abstract Map<String, String> queryStationStats(QueryStationInfoDTO dto);
/////////////////////////////////
/// 业务信息交换 10 个接口 Start ///
/////////////////////////////////
/**
* 请求设备认证
* 查询充电电量信息 query_order_info
*/
public abstract Map<String, String> queryOrderInfo(String orderCode);
/**
* 请求设备认证 query_equip_auth
* 业务信息交换
*
* @param dto 联联平台请求设备认证
*/
public abstract Map<String, String> queryEquipAuth(QueryEquipmentDTO dto);
/**
* 查询业务策略信息结果
*
* @param dto 请求启动充电DTO
*/
public abstract Map<String, String> queryEquipBusinessPolicy(QueryStartChargeDTO dto);
/**
* 请求启动充电
* 请求启动充电 query_start_charge
*
* @param dto 请求启动充电DTO
*/
public abstract Map<String, String> queryStartCharge(QueryStartChargeDTO dto);
/**
* 推送启动充电结果
*
* @param orderCode 订单编号
*/
public abstract String notificationStartChargeResult(String orderCode);
/**
* 查询充电状态
* 查询充电状态 query_equip_charge_status
*
* @param dto 查询充电状态DTO
*/
public abstract Map<String, String> queryEquipChargeStatus(QueryEquipChargeStatusDTO dto);
/**
* 推送充电状态
*
* @param orderCode 订单编号
*/
public abstract String notificationEquipChargeStatus(String orderCode);
/**
* 请求停止充电
* 请求停止充电 query_stop_charge
*
* @param dto 请求启动充电DTO
*/
public abstract Map<String, String> queryStopCharge(QueryStartChargeDTO dto);
/**
* 推送停止充电结果
*
* @param orderCode 订单编号
* 充电站内充电桩空闲状态查询 query_free_pile_number
*/
public abstract String notificationStopChargeResult(String orderCode);
public abstract Map<String, String> queryFreePileNumber(NXJTQueryStationInfoDTO dto);
/**
* 推送充电订单信息
*
* 某车牌号消费记录查询 query_orders_info_by_Plate_number
*/
public abstract Map<String, String> queryOrdersInfoByPlateNumber(NXJTQueryStationInfoDTO dto);
/**
* 某段时间内消费记录查询 query_orders_info
*/
public abstract Map<String, String> queryOrdersInfo(NXJTQueryStationInfoDTO dto);
/**
* 查询业务策略信息结果
* 请求计费策略 request_equip_business_policy
* @param dto 请求启动充电DTO
*/
public abstract Map<String, String> queryEquipBusinessPolicy(QueryStartChargeDTO dto);
/**
* 请求计费策略 request_equip_business_policy
* 华为平台
* 合并到上面 查询业务策略信息结果
*/
// public abstract Map<String, String> requestEquipBusinessPolicy(QueryStationInfoDTO dto);
/**
* VIN码充电 insert_start_charge
* 华为平台
*/
public abstract Map<String, String> insertStartCharge(QueryStationInfoDTO dto);
/**
* 下发计费策略响应 notification_deliver_equip_business_policy_result
* 华为平台
*/
public abstract Map<String, String> notificationDeliverEquipBusinessPolicyResult(QueryStationInfoDTO dto);
// =================================================================================== //
// ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ 由对方平台实现此接口,我方平台调用的通知接口 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ //
// =================================================================================== //
/**
* 充电站信息变化推送 notification_stationInfo
* 新站需要推送。当站点信息发生变化时,推送新的信息通知到市级平台
* @param stationId 充电站id
*/
public abstract String notificationStationInfo(String stationId);
/**
* 设备状态变化推送 notification_stationStatus
* 推送充电设备接口状态信息 supervise_notification_station_status
* @param pileConnectorCode 充电枪口编号
* @param status 枪口状态
*/
public abstract String notificationStationStatus(String pileConnectorCode, String status);
/**
* 设备充电中状态变化推送 notification_connector_charge_status
* @param pileConnectorCode 充电枪口编号
* @param status 枪口状态
*/
public abstract String notificationConnectorChargeStatus(String pileConnectorCode, String status);
/**
* 订单信息推送 notification_orderInfo
*/
public abstract String notificationOrderInfo(String orderCode);
/**
* 站点费率变化推送 notification_stationFee
*/
public abstract String notificationStationFee(String stationId);
/**
* 充电订单推送 notification_charge_order_info
* TODO 海南一张网文档中的接口检查一下是否和订单信息推送notification_orderInfo一致
* TODO 甬城泊车平台文档中的接口检查一下是否和订单信息推送notification_orderInfo一致
* TODO 华为平台文档中的接口检查一下是否和订单信息推送notification_orderInfo一致
* TODO 内蒙古平台文档中的接口检查一下是否和订单信息推送notification_orderInfo一致
* @param orderCode 订单编号
*/
public abstract String notificationChargeOrderInfo(String orderCode);
/**
* 告警信息推送 notification_alarmInfo
*/
public abstract String notificationAlarmInfo();
/**
* 推送启动充电结果 notification_start_charge_result
* @param orderCode 订单编号
*/
public abstract String notificationStartChargeResult(String orderCode);
/**
* 推送充电状态 notification_equip_charge_status
* 推送充电状态信息 supervise_notification_equip_charge_status
* @param orderCode 订单编号
*/
public abstract String notificationEquipChargeStatus(String orderCode);
/**
* 推送停止充电结果 notification_stop_charge_result
* @param orderCode 订单编号
*/
public abstract String notificationStopChargeResult(String orderCode);
/**
* 华为平台
* 平台充电设备编码同步 notification_operation_system_info
*/
public abstract String notificationOperationSystemInfo(String orderCode);
/**
* 推送充换电站用能统计信息 supervise_notification_operation_stats_info
*/
public abstract String notificationOperationStatsInfo(String stationId);
/**
* 推送充电站历史充电订单信息 supervise_notification_charge_order_info_history
*/
public abstract String notificationChargeOrderInfoHistory(String stationId);
/**
* 推送充电订单对账信息
*/
public abstract Map<String, String> checkChargeOrders();
///////////////////////////////
/// 业务信息交换 10 个接口 end ///
///////////////////////////////
// public abstract Map<String, String> checkChargeOrders();
// -------------------------------------- 以下是公用方法 --------------------------------------- //
/**

View File

@@ -20,6 +20,7 @@ import com.jsowell.common.util.StringUtils;
import com.jsowell.pile.domain.*;
import com.jsowell.pile.domain.ykcCommond.StartChargingCommand;
import com.jsowell.pile.dto.*;
import com.jsowell.pile.dto.ningxiajiaotou.NXJTQueryStationInfoDTO;
import com.jsowell.pile.vo.base.ConnectorInfoVO;
import com.jsowell.pile.vo.base.ThirdPartyStationInfoVO;
import com.jsowell.pile.vo.base.ThirdPartyStationRelationVO;
@@ -72,6 +73,16 @@ public class HaiNanPlatformLogic extends AbsInterfaceWithPlatformLogic {
return zdlService.pushStationInfoV2(dto);
}
/**
* 查询运营商信息
*
* @param dto 查询运营商信息DTO
*/
@Override
public Map<String, String> queryOperatorInfo(QueryOperatorInfoDTO dto) {
return null;
}
/**
* 6.2 查询充电站信息
*/
@@ -266,13 +277,44 @@ public class HaiNanPlatformLogic extends AbsInterfaceWithPlatformLogic {
return result;
}
/**
* 设备充电中状态变化推送 notification_connector_charge_status
*
* @param pileConnectorCode 充电枪口编号
* @param status 枪口状态
*/
@Override
public String notificationConnectorChargeStatus(String pileConnectorCode, String status) {
return null;
}
/**
* 订单信息推送 notification_orderInfo
*
* @param orderCode
*/
@Override
public String notificationOrderInfo(String orderCode) {
return null;
}
/**
* 站点费率变化推送 notification_stationFee
*
* @param stationId
*/
@Override
public String notificationStationFee(String stationId) {
return null;
}
/**
* 6.4 充电订单推送
*
* @param orderCode
*/
@Override
public String pushChargeOrderInfo(String orderCode) {
public String notificationChargeOrderInfo(String orderCode) {
// 获取数据
OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode(orderCode);
OrderDetail orderDetail = orderBasicInfoService.getOrderDetailByOrderCode(orderCode);
@@ -314,6 +356,14 @@ public class HaiNanPlatformLogic extends AbsInterfaceWithPlatformLogic {
return result;
}
/**
* 告警信息推送 notification_alarmInfo
*/
@Override
public String notificationAlarmInfo() {
return null;
}
/**
* 6.5 设备接口状态查询
*
@@ -504,6 +554,27 @@ public class HaiNanPlatformLogic extends AbsInterfaceWithPlatformLogic {
return resultMap;
}
/**
* 查询充电电量信息 query_order_info
*
* @param orderCode
*/
@Override
public Map<String, String> queryOrderInfo(String orderCode) {
return null;
}
/**
* 充电站信息变化推送 notification_stationInfo
* 新站需要推送。当站点信息发生变化时,推送新的信息通知到市级平台
*
* @param stationId 充电站id
*/
@Override
public String notificationStationInfo(String stationId) {
return null;
}
/**
* 请求设备认证
*
@@ -622,6 +693,30 @@ public class HaiNanPlatformLogic extends AbsInterfaceWithPlatformLogic {
return resultMap;
}
/**
* VIN码充电 insert_start_charge
* 华为平台
*
* @param dto
*/
@Override
public Map<String, String> insertStartCharge(QueryStationInfoDTO dto) {
//方法未实现,抛出异常
throw new UnsupportedOperationException("This method is not yet implemented");
}
/**
* 下发计费策略响应 notification_deliver_equip_business_policy_result
* 华为平台
*
* @param dto
*/
@Override
public Map<String, String> notificationDeliverEquipBusinessPolicyResult(QueryStationInfoDTO dto) {
//方法未实现,抛出异常
throw new UnsupportedOperationException("This method is not yet implemented");
}
/**
* 推送启动充电结果
*
@@ -933,6 +1028,39 @@ public class HaiNanPlatformLogic extends AbsInterfaceWithPlatformLogic {
return resultMap;
}
/**
* 充电站内充电桩空闲状态查询 query_free_pile_number
*
* @param dto
*/
@Override
public Map<String, String> queryFreePileNumber(NXJTQueryStationInfoDTO dto) {
//方法未实现,抛出异常
throw new UnsupportedOperationException("This method is not yet implemented");
}
/**
* 某车牌号消费记录查询 query_orders_info_by_Plate_number
*
* @param dto
*/
@Override
public Map<String, String> queryOrdersInfoByPlateNumber(NXJTQueryStationInfoDTO dto) {
//方法未实现,抛出异常
throw new UnsupportedOperationException("This method is not yet implemented");
}
/**
* 某段时间内消费记录查询 query_orders_info
*
* @param dto
*/
@Override
public Map<String, String> queryOrdersInfo(NXJTQueryStationInfoDTO dto) {
//方法未实现,抛出异常
throw new UnsupportedOperationException("This method is not yet implemented");
}
/**
* 推送停止充电结果
*
@@ -980,58 +1108,37 @@ public class HaiNanPlatformLogic extends AbsInterfaceWithPlatformLogic {
}
/**
* 推送充电订单信息
* 华为平台
* 平台充电设备编码同步 notification_operation_system_info
*
* @param orderCode
*/
@Override
public String notificationChargeOrderInfo(String orderCode) {
OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode(orderCode);
OrderDetail orderDetail = orderBasicInfoService.getOrderDetailByOrderCode(orderCode);
// 通过站点id查询相关配置信息
ThirdPartyStationRelation relation = new ThirdPartyStationRelation();
relation.setStationId(Long.parseLong(orderBasicInfo.getStationId()));
ThirdPartyStationRelationVO relationInfo = thirdPartyStationRelationService.selectRelationInfo(relation);
// ThirdPartySettingInfo settingInfo = thirdPartySettingInfoService.getInfoByStationId(Long.parseLong(orderBasicInfo.getStationId()));
if (relationInfo == null) {
return null;
}
String operatorId = relationInfo.getOperatorId();
String operatorSecret = relationInfo.getOperatorSecret();
String signSecret = relationInfo.getSignSecret();
String dataSecret = relationInfo.getDataSecret();
String dataSecretIv = relationInfo.getDataSecretIv();
String urlAddress = relationInfo.getUrlAddress();
String thirdPartyType = relationInfo.getThirdPartyType();
String url = urlAddress + BusinessInformationExchangeEnum.NOTIFICATION_CHARGE_ORDER_INFO.getValue();
JSONObject json = new JSONObject();
json.put("StartChargeSeq", orderCode);
json.put("ConnectorID", orderBasicInfo.getPileConnectorCode());
json.put("StartTime", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, orderBasicInfo.getChargeStartTime()));
json.put("EndTime", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, orderBasicInfo.getChargeEndTime()));
json.put("TotalPower", orderDetail.getTotalUsedElectricity().setScale(2, BigDecimal.ROUND_HALF_UP));
json.put("TotalElecMoney", orderDetail.getTotalElectricityAmount().setScale(2, BigDecimal.ROUND_HALF_UP));
json.put("TotalSeviceMoney", orderDetail.getTotalServiceAmount().setScale(2, BigDecimal.ROUND_HALF_UP));
json.put("TotalMoney", orderDetail.getTotalOrderAmount().setScale(2, BigDecimal.ROUND_HALF_UP));
json.put("StopReason", 2); // 2BMS 停止充电
String jsonString = JSON.toJSONString(json);
// 获取令牌
String token = getToken(urlAddress, operatorId, operatorSecret, dataSecretIv, signSecret, dataSecret);
String result = HttpRequestUtil.sendPost(token, jsonString, url, dataSecret, dataSecretIv, operatorId, signSecret);
return result;
public String notificationOperationSystemInfo(String orderCode) {
//方法未实现,抛出异常
throw new UnsupportedOperationException("This method is not yet implemented");
}
/**
* 推送充电订单对账信息
* 推送充换电站用能统计信息 supervise_notification_operation_stats_info
*
* @param stationId
*/
@Override
public Map<String, String> checkChargeOrders() {
return null;
public String notificationOperationStatsInfo(String stationId) {
//方法未实现,抛出异常
throw new UnsupportedOperationException("This method is not yet implemented");
}
/**
* 推送充电站历史充电订单信息 supervise_notification_charge_order_info_history
*
* @param stationId
*/
@Override
public String notificationChargeOrderInfoHistory(String stationId) {
//方法未实现,抛出异常
throw new UnsupportedOperationException("This method is not yet implemented");
}
}

View File

@@ -1,10 +1,7 @@
package com.jsowell.thirdparty.platform.neimenggu.service;
import com.jsowell.common.enums.thirdparty.ThirdPlatformTypeEnum;
import com.jsowell.pile.dto.QueryEquipChargeStatusDTO;
import com.jsowell.pile.dto.QueryEquipmentDTO;
import com.jsowell.pile.dto.QueryStartChargeDTO;
import com.jsowell.pile.dto.QueryStationInfoDTO;
import com.jsowell.pile.dto.*;
import com.jsowell.thirdparty.platform.AbsInterfaceWithPlatformLogic;
import com.jsowell.thirdparty.platform.InterfaceWithPlatformLogicFactory;
@@ -20,6 +17,16 @@ public class NeiMengGuPlatformLogic extends AbsInterfaceWithPlatformLogic {
InterfaceWithPlatformLogicFactory.register(ThirdPlatformTypeEnum.NEI_MENG_GU_PLATFORM.getCode(), this);
}
/**
* 查询运营商信息
*
* @param dto 查询运营商信息DTO
*/
@Override
public Map<String, String> queryOperatorInfo(QueryOperatorInfoDTO dto) {
return null;
}
/**
* 6.2 查询充电站信息
*
@@ -47,7 +54,7 @@ public class NeiMengGuPlatformLogic extends AbsInterfaceWithPlatformLogic {
* @param orderCode
*/
@Override
public String pushChargeOrderInfo(String orderCode) {
public String notificationChargeOrderInfo(String orderCode) {
return null;
}
@@ -152,16 +159,6 @@ public class NeiMengGuPlatformLogic extends AbsInterfaceWithPlatformLogic {
return null;
}
/**
* 推送充电订单信息
*
* @param orderCode
*/
@Override
public String notificationChargeOrderInfo(String orderCode) {
return null;
}
/**
* 推送充电订单对账信息
*/