mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-20 02:55:04 +08:00
Merge branch 'dev' of http://192.168.2.2:8099/jsowell/jsowell-charger-web into dev
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
package com.jsowell.pile.domain.huawei;
|
||||
|
||||
import com.alibaba.fastjson2.annotation.JSONField;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @author Lemon
|
||||
* @Date 2024/3/14 9:43:21
|
||||
*/
|
||||
@Data
|
||||
public class HWStationStatusInfo {
|
||||
/**
|
||||
* 充电站ID Y
|
||||
* 对接平台自定义的唯一编码,不足长度在前方补0
|
||||
*/
|
||||
@JSONField(name = "StationID")
|
||||
private String stationId;
|
||||
|
||||
/**
|
||||
* 充电设备接口状态列表 Y
|
||||
* 所有充电设备接口的状态
|
||||
*/
|
||||
@JSONField(name = "ConnectorStatusInfos")
|
||||
private List<ConnectorStatusInfo> connectorStatusInfos;
|
||||
|
||||
|
||||
@Data
|
||||
public static class ConnectorStatusInfo{
|
||||
|
||||
@JSONField(name = "ConnectorID")
|
||||
private String connectorId;
|
||||
|
||||
@JSONField(name = "Status")
|
||||
private String status;
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,7 @@ package com.jsowell.thirdparty.huawei;
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import cn.hutool.http.HttpUtil;
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.alibaba.fastjson2.JSONArray;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.jsowell.common.constant.Constants;
|
||||
@@ -21,6 +22,7 @@ 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.domain.huawei.HWStationStatusInfo;
|
||||
import com.jsowell.pile.dto.GenerateOrderDTO;
|
||||
import com.jsowell.pile.dto.PushStationInfoDTO;
|
||||
import com.jsowell.pile.dto.QueryStartChargeDTO;
|
||||
@@ -45,6 +47,7 @@ import com.jsowell.thirdparty.lianlian.util.GBSignUtils;
|
||||
import com.jsowell.thirdparty.lianlian.util.HttpRequestUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -242,17 +245,30 @@ public class HuaweiServiceV2 {
|
||||
// 发送请求
|
||||
String result = sendMsg2HuaWei(jsonString, token, requestName);
|
||||
// 转换成 StationStatus 对象
|
||||
// List<StationStatusInfo> list = JSON.parseArray(result, StationStatusInfo.class);
|
||||
return result;
|
||||
JSONObject jsonStationStatus = JSONObject.parseObject(result);
|
||||
if (jsonStationStatus == null) {
|
||||
return null;
|
||||
}
|
||||
// 先转成 jsonArray
|
||||
JSONArray stationStatusInfos = jsonStationStatus.getJSONArray("StationStatusInfos");
|
||||
// 转成对应的 List
|
||||
List<HWStationStatusInfo> hwStationStatusInfos = stationStatusInfos.toList(HWStationStatusInfo.class);
|
||||
for (HWStationStatusInfo hwStationStatusInfo : hwStationStatusInfos) {
|
||||
String stationId = hwStationStatusInfo.getStationId();
|
||||
List<HWStationStatusInfo
|
||||
.ConnectorStatusInfo> connectorStatusInfos = hwStationStatusInfo.getConnectorStatusInfos();
|
||||
// 获取对应的枪口状态
|
||||
for (HWStationStatusInfo.ConnectorStatusInfo connectorStatusInfo : connectorStatusInfos) {
|
||||
String connectorId = connectorStatusInfo.getConnectorId();
|
||||
String status = connectorStatusInfo.getStatus();
|
||||
// 修改对应枪口状态
|
||||
pileConnectorInfoService.updateConnectorStatus(connectorId, status);
|
||||
}
|
||||
}
|
||||
return jsonStationStatus.toJSONString();
|
||||
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
String result = "{\"StationStatusInfos\":[{\"ConnectorStatusInfos\":[{\"ConnectorID\":\"8823000000112302\",\"Status\":2},{\"ConnectorID\":\"8823000000112301\",\"Status\":2}],\"StationID\":\"19\"}]}";
|
||||
JSONObject jsonObject = JSONObject.parseObject(result);
|
||||
System.out.println(jsonObject);
|
||||
}
|
||||
|
||||
/**
|
||||
* 接收设备接口状态变化推送
|
||||
* 需在Controller传入operatorId
|
||||
@@ -346,8 +362,8 @@ public class HuaweiServiceV2 {
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
DeliverEquipBusinessPolicyVO vo = deliverEquipBusinessPolicy(equipBizSeq, pileConnectorCode);
|
||||
log.info("华为 异步调用 下发计费策略 接口 result:{}", JSONObject.toJSONString(vo));
|
||||
String result = deliverEquipBusinessPolicy(equipBizSeq, pileConnectorCode);
|
||||
log.info("华为 异步调用 下发计费策略 接口 result:{}", result);
|
||||
});
|
||||
|
||||
resultJson.put("SuccStat", 0);
|
||||
@@ -375,7 +391,7 @@ public class HuaweiServiceV2 {
|
||||
* @param pileConnectorCode 枪口号
|
||||
* @return
|
||||
*/
|
||||
public DeliverEquipBusinessPolicyVO deliverEquipBusinessPolicy(String equipBizSeq, String pileConnectorCode) {
|
||||
public String deliverEquipBusinessPolicy(String equipBizSeq, String pileConnectorCode) {
|
||||
String requestName = "deliver_equip_business_policy";
|
||||
DeliverEquipBusinessDTO params = new DeliverEquipBusinessDTO();
|
||||
|
||||
@@ -471,8 +487,8 @@ public class HuaweiServiceV2 {
|
||||
return null;
|
||||
}
|
||||
// 转换成 DeliverEquipBusinessPolicyVO 对象
|
||||
DeliverEquipBusinessPolicyVO vo = JSON.parseObject(result, DeliverEquipBusinessPolicyVO.class);
|
||||
return vo;
|
||||
// DeliverEquipBusinessPolicyVO vo = JSON.parseObject(result, DeliverEquipBusinessPolicyVO.class);
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -384,10 +384,11 @@ public class LianLianServiceImpl implements LianLianService {
|
||||
|
||||
|
||||
public static void main(String[] args) throws UnsupportedEncodingException {
|
||||
String dataSecret = "zd4NrLWJ38XCTaqP"; // SPBNJ1Z5EQNmpK08 VTAEKDPVN9CUS7WO huawei: zd4NrLWJ38XCTaqP E6gnWuz0QzBW75CR
|
||||
String dataSecretIV = "RJJecvNTJ48SGMG7"; // peRoTcb2C7zqKeII 83UZFFRRZDYNF5CR huawei: RJJecvNTJ48SGMG7 SXejaSUx5yud8UHm
|
||||
String dataSecret = "E6gnWuz0QzBW75CR"; // SPBNJ1Z5EQNmpK08 VTAEKDPVN9CUS7WO huawei: zd4NrLWJ38XCTaqP E6gnWuz0QzBW75CR
|
||||
String dataSecretIV = "SXejaSUx5yud8UHm"; // peRoTcb2C7zqKeII 83UZFFRRZDYNF5CR huawei: RJJecvNTJ48SGMG7 SXejaSUx5yud8UHm
|
||||
String signSecret = "sRjCDeokckFGpYpA"; // sRjCDeokckFGpYpA
|
||||
String dataString = "E+V2sg+xpOjwWcqI9IQVgrN0gIs6tfyeKltpvB2G4mbQLtZREPk7bo7Q22k00/ufrcz+xZa9x/MyAzA3Eo2ZEo9UFKKKG3VLB+nfYX/kWWk=";
|
||||
String dataString = "Ackhbd9jOvBrjklmluZ3Ox22hiaOqUCe0kNSQdV0o3zekzQbNi8I99RBXLig2YlMVryMo7R4U5BkEomVpSRT6KJxol7N5cD8Tzj94/6zsCVRweMX2DOiwQcsC1NEAmQrFdjsGWVUR\n" +
|
||||
"VtIOxa4MPISVQ==";
|
||||
|
||||
// 解密data
|
||||
byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(dataString), dataSecret.getBytes(), dataSecretIV.getBytes());
|
||||
|
||||
Reference in New Issue
Block a user