mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-05-06 19:10:20 +08:00
update
This commit is contained in:
@@ -88,6 +88,8 @@ public class Constants {
|
||||
|
||||
public static final int one = 1;
|
||||
|
||||
public static final int two = 2;
|
||||
|
||||
public static final int four = 4;
|
||||
|
||||
public static final byte zeroByte = 0x00;
|
||||
|
||||
@@ -15,7 +15,7 @@ public enum ThirdPartyOperatorIdEnum {
|
||||
YONG_CHENG_BO_CHE("4", "330205020"),
|
||||
NING_XIA_JIAO_TOU("5", "MA771QENX"),
|
||||
XIN_DIAN_TU("6", "MA25CNM38"),
|
||||
HUA_WEI("7", ""),
|
||||
HAI_NAN("7", "578725200"),
|
||||
;
|
||||
private String type;
|
||||
|
||||
|
||||
@@ -15,8 +15,8 @@ public enum ThirdPlatformTypeEnum {
|
||||
YONG_CHENG_BO_CHE("4", "甬城泊车平台"),
|
||||
NING_XIA_JIAO_TOU("5", "宁夏交投"),
|
||||
XIN_DIAN_TU("6", "新电途平台"),
|
||||
HUA_WEI("7", "华为平台"),
|
||||
HAI_NAN("8", "海南平台"),
|
||||
HAI_NAN("7", "海南平台"),
|
||||
HUA_WEI("8", "华为平台"),
|
||||
;
|
||||
|
||||
private String code;
|
||||
|
||||
126
jsowell-common/src/main/java/com/jsowell/common/enums/thirdparty/huawei/StartFailedReasonEnum.java
vendored
Normal file
126
jsowell-common/src/main/java/com/jsowell/common/enums/thirdparty/huawei/StartFailedReasonEnum.java
vendored
Normal file
@@ -0,0 +1,126 @@
|
||||
package com.jsowell.common.enums.thirdparty.huawei;
|
||||
|
||||
|
||||
/**
|
||||
* 华为开始启动失败原因对应枚举
|
||||
*
|
||||
* @author Lemon
|
||||
* @Date 2024/1/26 15:00:56
|
||||
*/
|
||||
public enum StartFailedReasonEnum {
|
||||
DISCONNECT_WITH_PLATFORM_STOP(23000, "与平台断链停止"),
|
||||
UNKNOWN_SYSTEM_TYPE(23001, "未知系统类型"),
|
||||
THE_OWNER_ACTIVELY_UNLOCKS_AND_STOPS(23002, "车主主动解锁停止"),
|
||||
STOP_CHARGING_BECAUSE_THE_TEMPERATURE_CONTROL_IS_ABNORMAL(23003, "温控异常需要停止充电"),
|
||||
GUN_TEMPERATURE_ANOMALY(23004, "枪温度异常"),
|
||||
HOST_SYSTEM_EXCEPTION(23005, "主机系统异常"),
|
||||
GUN_HEAD_MOUNTED_ABNORMALLY(23006, "枪头安装异常"),
|
||||
THE_ACCOUNTING_MODEL_DOES_NOT_EXIST(23007, "计费模型不存在"),
|
||||
THE_DEVICE_IS_NOT_CONNECTED_TO_THE_VEHICLE(23066, "设备未连接车辆"),
|
||||
EQUIPMENT_UPGRADING(23067, "设备升级中"),
|
||||
EQUIPMENT_OUTAGE(23068, "设备停运"),
|
||||
EQUIPMENT_RETURN(23069, "设备退运"),
|
||||
EQUIPMENT_FREEZING(23070, "设备冻结"),
|
||||
OTHER_REASONS_FOR_FAILURE(23072, "其他失败原因"),
|
||||
MAIN_ENGINE_EMERGENCY_STOP(23008, "主机急停"),
|
||||
MAIN_ENGINE_SIDE_DOOR_OPENING(23009, "主机侧开门"),
|
||||
MAIN_ENGINE_FLOODING(23010, "主机水浸"),
|
||||
PHASE_SEQUENCE_ANOMALY(23011, "相序异常"),
|
||||
AC_SURGE_PROTECTION_1_IS_FAULTY(23012, "交流防雷1故障"),
|
||||
AC_SURGE_PROTECTION_2_IS_FAULTY(23013, "交流防雷2故障"),
|
||||
AC_SURGE_PROTECTION_3_IS_FAULTY(23014, "交流防雷3故障"),
|
||||
AC_OUTAGE(23015, "交流停电"),
|
||||
AC_OVERVOLTAGE(23016, "交流过压"),
|
||||
AC_UNDERVOLTAGE(23017, "交流欠压"),
|
||||
AC_L1_MISSING_PHASE(23018, "交流L1缺相"),
|
||||
AC_L2_MISSING_PHASE(23019, "交流L2缺相"),
|
||||
AC_L3_MISSING_PHASE(23020, "交流L3缺相"),
|
||||
THE_AC_BRANCH_CURRENT_IS_ABNORMAL_PROCEDURE(23065, "交流支路电流异常"),
|
||||
ALL_COMMUNICATION_BETWEEN_THE_DCDC_GROUP_FAILS(23021, "DCDC组所有通信失败"),
|
||||
THE_DCDC_MODULE_IS_FAULTY(23022, "DCDC模块故障"),
|
||||
THE_SYSTEM_TYPE_ON_THE_HOST_IS_UNKNOWN(23023, "主机上未知系统类型"),
|
||||
PUMP_1_IDLING(23024, "水泵1空转"),
|
||||
PUMP_2_IDLING(23025, "水泵2空转"),
|
||||
PUMP_3_IDLING(23026, "水泵3空转"),
|
||||
WATER_PUMP_1_OVERFLOWS(23027, "水泵1过流"),
|
||||
WATER_PUMP_2_OVERFLOWS(23028, "水泵2过流"),
|
||||
WATER_PUMP_3_OVERFLOWS(23029, "水泵3过流"),
|
||||
PUMP_1_OVERHEATS(23030, "水泵1过温"),
|
||||
PUMP_2_OVERHEATS(23031, "水泵2过温"),
|
||||
PUMP_3_OVERHEATS(23032, "水泵3过温"),
|
||||
WATER_PUMP_1_FAULTY(23033, "水泵1故障"),
|
||||
WATER_PUMP_2_FAULTY(23034, "水泵2故障"),
|
||||
WATER_PUMP_3_FAULTY(23035, "水泵3故障"),
|
||||
PUMP_1_HAS_NO_FEEDBACK(23036, "水泵1无反馈"),
|
||||
PUMP_2_HAS_NO_FEEDBACK(23037, "水泵2无反馈"),
|
||||
PUMP_3_HAS_NO_FEEDBACK(23038, "水泵3无反馈"),
|
||||
THE_TEMPERATURE_CONTROL_DETECTION_UNIT_IS_ABNORMAL(23039, "温控检测单元异常"),
|
||||
THE_SELF_DESCRIPTION_FILE_IS_ABNORMAL(23040, "自描述文件异常"),
|
||||
THE_MATRIX_CONTACTOR_IS_FAULTY(23041, "矩阵接触器故障"),
|
||||
THE_CHARGING_PORT_OVERTEMPERATURE_IS_FAULTY(23042, "充电端口过温故障"),
|
||||
AC_CIRCUIT_BREAKER_1_IS_FAULTY(23043, "交流断路器1故障"),
|
||||
AC_CIRCUIT_BREAKER_2_IS_FAULTY(23044, "交流断路器2故障"),
|
||||
AC_CIRCUIT_BREAKER_3_IS_FAULTY(23045, "交流断路器3故障"),
|
||||
AC_CIRCUIT_BREAKER_4_IS_FAULTY(23046, "交流断路器4故障"),
|
||||
AC_CIRCUIT_BREAKER_5_IS_FAULTY(23047, "交流断路器5故障"),
|
||||
AC_CIRCUIT_BREAKER_6_IS_FAULTY(23048, "交流断路器6故障"),
|
||||
INSULATION_DETECTION_FAULT(23049, "绝缘检测故障"),
|
||||
TERMINAL_FLOODING(23050, "终端水浸"),
|
||||
TOPPLE_AND_FALL(23051, "倾倒"),
|
||||
EMERGENCY_STOP(23052, "急停"),
|
||||
THE_DOOR_OPENS(23053, "门开"),
|
||||
WATER_FLOODING(23054, "温控--水浸"),
|
||||
ULTRALOW_TEMPERATURE(23055, "温控--超低温"),
|
||||
CHARGING_CONTROLLER_COMMUNICATION_FAILED(23056, "充电控制器通信失败"),
|
||||
THE_GUN_DRAW_CODE_ADDRESS_IS_ABNORMAL(23057, "枪拔码地址异常"),
|
||||
GUN_DC_OUTPUT_CONTACTOR_IS_FAULTY(23058, "枪直流输出接触器故障"),
|
||||
GOOSE_MESSAGE_TIMED_OUT(23059, "GOOSE报文超时"),
|
||||
OPERATION_DISABLE(23060, "运营禁用"),
|
||||
THE_CHARGING_PORT_IS_NOT_MATCHED(23061, "未匹配充电端口"),
|
||||
GOOSE_REQUESTS_VOLTAGE_TIMEOUT(23062, "GOOSE请求电压超时(主机超时未收到GOOSE消息)"),
|
||||
TERMINAL_HOT_RESET(23063, "终端热复位"),
|
||||
SEND_SIGNAL_TIMEOUT(23064, "下发信号超时"),
|
||||
TIMEOUT_BETWEEN_OPERATING_PLUGINS_AND_CHARGE_MANAGEMENT(23071, "运营插件和充电管理之间的超时"),
|
||||
UNKNOWN_ERROR_CAUSE(23499, "未知错误原因"),
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String reason;
|
||||
|
||||
public Integer getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(Integer code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public String getReason() {
|
||||
return reason;
|
||||
}
|
||||
|
||||
public void setReason(String reason) {
|
||||
this.reason = reason;
|
||||
}
|
||||
|
||||
StartFailedReasonEnum(Integer code, String reason) {
|
||||
this.code = code;
|
||||
this.reason = reason;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据 code 获取 reason
|
||||
*
|
||||
* @param code 编码
|
||||
* @return reason
|
||||
*/
|
||||
public static String getReasonByCode(Integer code) {
|
||||
for (StartFailedReasonEnum item : StartFailedReasonEnum.values()) {
|
||||
if (item.getCode().equals(code)) {
|
||||
return item.getReason();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -12,7 +12,7 @@ import java.math.BigDecimal;
|
||||
* @Date 2024/1/23 14:34:58
|
||||
*/
|
||||
@Data
|
||||
public class QueryStartChargeDTO {
|
||||
public class HWQueryStartChargeDTO {
|
||||
/**
|
||||
* 充电订单号 Y
|
||||
* 格式“运营商ID+唯一编号”(<=27字符)。
|
||||
@@ -61,4 +61,7 @@ public class QueryStartChargeDTO {
|
||||
*/
|
||||
@JsonProperty(value = "SOCLimit")
|
||||
private BigDecimal socLimit;
|
||||
|
||||
|
||||
private String operatorId;
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
package com.jsowell.pile.dto.huawei;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 接收启动充电结果DTO
|
||||
*
|
||||
* @author Lemon
|
||||
* @Date 2024/1/26 14:23:23
|
||||
*/
|
||||
@Data
|
||||
public class ReceiveStartChargeResultDTO {
|
||||
|
||||
/**
|
||||
* 充电订单号
|
||||
*/
|
||||
@JsonProperty(value = "StartChargeSeq")
|
||||
private String startChargeSeq;
|
||||
|
||||
/**
|
||||
* 充电订单状态
|
||||
*/
|
||||
@JsonProperty(value = "StartChargeSeqStat")
|
||||
private Integer startChargeSeqStat;
|
||||
|
||||
/**
|
||||
* 充电设备接口编码
|
||||
*/
|
||||
@JsonProperty(value = "ConnectorID")
|
||||
private String connectorID;
|
||||
|
||||
/**
|
||||
* 充电启动时间
|
||||
*/
|
||||
@JsonProperty(value = "StartTime")
|
||||
private String startTime;
|
||||
|
||||
/**
|
||||
* 停止充电验证码
|
||||
*/
|
||||
@JsonProperty(value = "IdentCode")
|
||||
private String identCode;
|
||||
|
||||
/**
|
||||
* 启动失败原因
|
||||
*/
|
||||
@JsonProperty(value = "FailReason")
|
||||
private Integer failReason;
|
||||
}
|
||||
@@ -10,7 +10,7 @@ import lombok.Data;
|
||||
* @Date 2024/1/23 15:32:25
|
||||
*/
|
||||
@Data
|
||||
public class requestEquipBusinessPolicyDTO {
|
||||
public class RequestEquipBusinessPolicyDTO {
|
||||
/**
|
||||
* 业务策略查询流水号
|
||||
*/
|
||||
@@ -0,0 +1,173 @@
|
||||
package com.jsowell.pile.vo.huawei;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @author Lemon
|
||||
* @Date 2024/1/26 16:29:29
|
||||
*/
|
||||
@Data
|
||||
public class QueryChargeStatusVO {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@JsonProperty(value = "StartChargeSeq")
|
||||
private String startChargeSeq;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@JsonProperty(value = "StartChargeSeqStat")
|
||||
private String startChargeSeqStat;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@JsonProperty(value = "ConnectorID")
|
||||
private String connectorID;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@JsonProperty(value = "ConnectorStatus")
|
||||
private String connectorStatus;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@JsonProperty(value = "CurrentA")
|
||||
private String currentA;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@JsonProperty(value = "CurrentB")
|
||||
private String currentB;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@JsonProperty(value = "CurrentC")
|
||||
private String currentC;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@JsonProperty(value = "VoltageA")
|
||||
private String voltageA;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@JsonProperty(value = "VoltageB")
|
||||
private String voltageB;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@JsonProperty(value = "VoltageC")
|
||||
private String voltageC;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@JsonProperty(value = "Soc")
|
||||
private String soc;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@JsonProperty(value = "StartTime")
|
||||
private String startTime;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@JsonProperty(value = "EndTime")
|
||||
private String endTime;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@JsonProperty(value = "TotalPower")
|
||||
private String totalPower;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@JsonProperty(value = "ElecMoney")
|
||||
private String elecMoney;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@JsonProperty(value = "SeviceMoney")
|
||||
private String seviceMoney;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@JsonProperty(value = "TotalMoney")
|
||||
private String totalMoney;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@JsonProperty(value = "SumPeriod")
|
||||
private String sumPeriod;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@JsonProperty(value = "ChargeDetails")
|
||||
private List<ChargeDetail> chargeDetails;
|
||||
|
||||
|
||||
@Data
|
||||
public static class ChargeDetail{
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@JsonProperty(value = "DetailStartTime")
|
||||
private String detailStartTime;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@JsonProperty(value = "DetailEndTime")
|
||||
private String detailEndTime;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@JsonProperty(value = "ElecPrice")
|
||||
private String elecPrice;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@JsonProperty(value = "SevicePrice")
|
||||
private String sevicePrice;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@JsonProperty(value = "DetailPower")
|
||||
private String detailPower;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@JsonProperty(value = "DetailElecMoney")
|
||||
private String detailElecMoney;
|
||||
|
||||
@JsonProperty(value = "DetailSeviceMoney")
|
||||
private String detailSeviceMoney;
|
||||
}
|
||||
}
|
||||
@@ -107,6 +107,7 @@
|
||||
<select id="getInfoByOperatorId" resultMap="ThirdPartyPlatformConfigResult">
|
||||
select <include refid="Base_Column_List"/>
|
||||
from thirdparty_platform_config
|
||||
where operator_id = #{operatorId,jdbcType=VARCHAR}
|
||||
where del_flag = '0'
|
||||
and operator_id = #{operatorId,jdbcType=VARCHAR}
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -7,17 +7,22 @@ import com.google.common.collect.Maps;
|
||||
import com.jsowell.common.constant.Constants;
|
||||
import com.jsowell.common.core.redis.RedisCache;
|
||||
import com.jsowell.common.enums.thirdparty.ThirdPlatformTypeEnum;
|
||||
import com.jsowell.common.enums.thirdparty.huawei.StartFailedReasonEnum;
|
||||
import com.jsowell.common.enums.ykc.OrderStatusEnum;
|
||||
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
|
||||
import com.jsowell.common.exception.BusinessException;
|
||||
import com.jsowell.common.util.DateUtils;
|
||||
import com.jsowell.common.util.StringUtils;
|
||||
import com.jsowell.common.util.id.IdUtils;
|
||||
import com.jsowell.pile.domain.*;
|
||||
import com.jsowell.pile.domain.huawei.HWStationInfo;
|
||||
import com.jsowell.pile.dto.PushStationInfoDTO;
|
||||
import com.jsowell.pile.dto.QueryStartChargeDTO;
|
||||
import com.jsowell.pile.dto.huawei.DeliverEquipBusinessDTO;
|
||||
import com.jsowell.pile.dto.huawei.QueryStartChargeDTO;
|
||||
import com.jsowell.pile.dto.huawei.requestEquipBusinessPolicyDTO;
|
||||
import com.jsowell.pile.dto.huawei.HWQueryStartChargeDTO;
|
||||
import com.jsowell.pile.dto.huawei.ReceiveStartChargeResultDTO;
|
||||
import com.jsowell.pile.dto.huawei.RequestEquipBusinessPolicyDTO;
|
||||
import com.jsowell.pile.service.*;
|
||||
import com.jsowell.pile.vo.base.ThirdPartyStationRelationVO;
|
||||
import com.jsowell.pile.vo.huawei.QueryEquipAuthVO;
|
||||
import com.jsowell.pile.vo.huawei.QueryStartChargeVO;
|
||||
import com.jsowell.pile.vo.uniapp.BillingPriceVO;
|
||||
@@ -25,12 +30,10 @@ import com.jsowell.pile.vo.web.PileStationVO;
|
||||
import com.jsowell.thirdparty.lianlian.common.CommonResult;
|
||||
import com.jsowell.thirdparty.lianlian.domain.ConnectorStatusInfo;
|
||||
import com.jsowell.thirdparty.lianlian.domain.StationStatusInfo;
|
||||
import com.jsowell.thirdparty.lianlian.dto.CommonParamsDTO;
|
||||
import com.jsowell.thirdparty.lianlian.util.Cryptos;
|
||||
import com.jsowell.thirdparty.lianlian.util.Encodes;
|
||||
import com.jsowell.thirdparty.lianlian.util.GBSignUtils;
|
||||
import com.jsowell.thirdparty.lianlian.util.HttpRequestUtil;
|
||||
import com.jsowell.thirdparty.zhongdianlian.dto.ZDLGetTokenDTO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -71,6 +74,9 @@ public class HuaweiServiceV2 {
|
||||
@Autowired
|
||||
private PileBillingTemplateService pileBillingTemplateService;
|
||||
|
||||
@Autowired
|
||||
private OrderBasicInfoService orderBasicInfoService;
|
||||
|
||||
@Autowired
|
||||
private ThirdPartyStationRelationService thirdPartyStationRelationService;
|
||||
|
||||
@@ -327,7 +333,7 @@ public class HuaweiServiceV2 {
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
public Map<String, String> requestEquipBusinessPolicy(requestEquipBusinessPolicyDTO dto) {
|
||||
public Map<String, String> requestEquipBusinessPolicy(RequestEquipBusinessPolicyDTO dto) {
|
||||
String pileConnectorCode = dto.getConnectorID();
|
||||
String equipBizSeq = dto.getEquipBizSeq();
|
||||
// 根据枪口号查询计费模板,并返回信息
|
||||
@@ -498,7 +504,7 @@ public class HuaweiServiceV2 {
|
||||
* @param dto
|
||||
* @return QueryStartChargeVO
|
||||
*/
|
||||
public QueryStartChargeVO queryStartCharge(QueryStartChargeDTO dto) {
|
||||
public QueryStartChargeVO queryStartCharge(HWQueryStartChargeDTO dto) {
|
||||
String pileConnectorCode = dto.getConnectorID();
|
||||
BigDecimal chargeAmount = dto.getMoneyLimit();
|
||||
// 获取华为配置参数
|
||||
@@ -513,12 +519,24 @@ public class HuaweiServiceV2 {
|
||||
String urlAddress = settingInfo.getUrlAddress();
|
||||
|
||||
String requestUrl = urlAddress + "query_start_charge";
|
||||
// 生成订单号
|
||||
String orderCode = IdUtils.getOrderCode();
|
||||
|
||||
// 生成订单
|
||||
String orderCode = IdUtils.getOrderCode();
|
||||
String startChargeSeq = Constants.OPERATORID_JIANG_SU + "_C" + orderCode;
|
||||
QueryStartChargeDTO startChargeDTO = new QueryStartChargeDTO();
|
||||
startChargeDTO.setOperatorId(dto.getOperatorId());
|
||||
startChargeDTO.setStartChargeSeq(startChargeSeq);
|
||||
startChargeDTO.setConnectorID(dto.getConnectorID());
|
||||
startChargeDTO.setAccountBalance(dto.getMoneyLimit());
|
||||
Map<String, Object> map = orderBasicInfoService.generateOrderForThirdParty(startChargeDTO);
|
||||
|
||||
if (map == null) {
|
||||
log.error("华为平台生成订单 error");
|
||||
throw new BusinessException(ReturnCodeEnum.CODE_GENERATE_ORDER_ERROR);
|
||||
}
|
||||
// 拼装参数
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("StartChargeSeq", Constants.OPERATORID_JIANG_SU + "_C" + orderCode);
|
||||
jsonObject.put("StartChargeSeq", startChargeSeq);
|
||||
jsonObject.put("ConnectorID", pileConnectorCode);
|
||||
jsonObject.put("MoneyLimit", chargeAmount);
|
||||
|
||||
@@ -549,7 +567,71 @@ public class HuaweiServiceV2 {
|
||||
/**
|
||||
* 接收启动充电结果
|
||||
*/
|
||||
public void receiveStartChargeResult() {
|
||||
public void receiveStartChargeResult(ReceiveStartChargeResultDTO dto) {
|
||||
String startChargeSeq = dto.getStartChargeSeq();
|
||||
Integer startChargeSeqStat = dto.getStartChargeSeqStat(); // 充电订单状态
|
||||
Integer failReason = dto.getFailReason();
|
||||
String startTime = dto.getStartTime();
|
||||
// 根据订单号查询订单信息
|
||||
OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode(startChargeSeq);
|
||||
// 判断订单状态
|
||||
if (startChargeSeqStat == Constants.two) {
|
||||
// 充电中
|
||||
orderBasicInfo.setOrderStatus(OrderStatusEnum.IN_THE_CHARGING.getValue());
|
||||
// 设置开始时间
|
||||
orderBasicInfo.setChargeStartTime(DateUtils.parseDate(startTime));
|
||||
orderBasicInfoService.updateOrderBasicInfo(orderBasicInfo);
|
||||
}
|
||||
if (failReason != 0) {
|
||||
// 启动失败, 将失败原因换成中文
|
||||
String reason = StartFailedReasonEnum.getReasonByCode(failReason);
|
||||
// 给用户退款(执行0x33中启动失败的操作流程)
|
||||
orderBasicInfoService.chargingPileFailedToStart(orderBasicInfo.getTransactionCode(), reason);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询充电状态
|
||||
* @param startChargeSeq
|
||||
*/
|
||||
public void queryChargeStatus(String startChargeSeq) {
|
||||
ThirdPartySettingInfo settingInfo = getHuaWeiSettingInfo();
|
||||
if (settingInfo == null) {
|
||||
return;
|
||||
}
|
||||
String operatorSecret = settingInfo.getOperatorSecret();
|
||||
String dataSecret = settingInfo.getDataSecret();
|
||||
String dataSecretIv = settingInfo.getDataSecretIv();
|
||||
String signSecret = settingInfo.getSignSecret();
|
||||
String urlAddress = settingInfo.getUrlAddress();
|
||||
|
||||
String requestUrl = urlAddress + "query_equip_auth";
|
||||
|
||||
// 拼装参数
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("StartChargeSeq", startChargeSeq);
|
||||
|
||||
// 加密
|
||||
byte[] encryptText = Cryptos.aesEncrypt(jsonObject.toJSONString().getBytes(StandardCharsets.UTF_8),
|
||||
dataSecret.getBytes(), dataSecretIv.getBytes());
|
||||
String strData = Encodes.encodeBase64(encryptText);
|
||||
|
||||
// 向华为发送请求
|
||||
String response = sendRequest2HuaWei(strData, signSecret, requestUrl);
|
||||
|
||||
CommonResult<?> commonResult = JSONObject.parseObject(response, CommonResult.class);
|
||||
if (commonResult.getRet() != 0) {
|
||||
log.error("解析查询华为充电状态接口result error:{}, ", commonResult.getMsg());
|
||||
return;
|
||||
}
|
||||
// 解密data
|
||||
byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64((String) commonResult.getData()),
|
||||
dataSecret.getBytes(), dataSecretIv.getBytes());
|
||||
String dataStr = new String(plainText, StandardCharsets.UTF_8);
|
||||
|
||||
// 转换成对应的对象
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user