update 华为设备接口状态查询 接口中枪口状态及时修改

This commit is contained in:
Lemon
2024-03-14 11:32:55 +08:00
parent f232dd614c
commit a2033bf280
3 changed files with 74 additions and 16 deletions

View File

@@ -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;
}
}

View File

@@ -3,6 +3,7 @@ package com.jsowell.thirdparty.huawei;
import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpUtil; import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.jsowell.common.constant.Constants; 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.common.util.id.IdUtils;
import com.jsowell.pile.domain.*; import com.jsowell.pile.domain.*;
import com.jsowell.pile.domain.huawei.HWStationInfo; 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.GenerateOrderDTO;
import com.jsowell.pile.dto.PushStationInfoDTO; import com.jsowell.pile.dto.PushStationInfoDTO;
import com.jsowell.pile.dto.QueryStartChargeDTO; 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 com.jsowell.thirdparty.lianlian.util.HttpRequestUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -242,15 +245,28 @@ public class HuaweiServiceV2 {
// 发送请求 // 发送请求
String result = sendMsg2HuaWei(jsonString, token, requestName); String result = sendMsg2HuaWei(jsonString, token, requestName);
// 转换成 StationStatus 对象 // 转换成 StationStatus 对象
// List<StationStatusInfo> list = JSON.parseArray(result, StationStatusInfo.class); JSONObject jsonStationStatus = JSONObject.parseObject(result);
return 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);
} }
/** /**
@@ -346,8 +362,8 @@ public class HuaweiServiceV2 {
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
DeliverEquipBusinessPolicyVO vo = deliverEquipBusinessPolicy(equipBizSeq, pileConnectorCode); String result = deliverEquipBusinessPolicy(equipBizSeq, pileConnectorCode);
log.info("华为 异步调用 下发计费策略 接口 result:{}", JSONObject.toJSONString(vo)); log.info("华为 异步调用 下发计费策略 接口 result:{}", result);
}); });
resultJson.put("SuccStat", 0); resultJson.put("SuccStat", 0);
@@ -375,7 +391,7 @@ public class HuaweiServiceV2 {
* @param pileConnectorCode 枪口号 * @param pileConnectorCode 枪口号
* @return * @return
*/ */
public DeliverEquipBusinessPolicyVO deliverEquipBusinessPolicy(String equipBizSeq, String pileConnectorCode) { public String deliverEquipBusinessPolicy(String equipBizSeq, String pileConnectorCode) {
String requestName = "deliver_equip_business_policy"; String requestName = "deliver_equip_business_policy";
DeliverEquipBusinessDTO params = new DeliverEquipBusinessDTO(); DeliverEquipBusinessDTO params = new DeliverEquipBusinessDTO();
@@ -471,8 +487,8 @@ public class HuaweiServiceV2 {
return null; return null;
} }
// 转换成 DeliverEquipBusinessPolicyVO 对象 // 转换成 DeliverEquipBusinessPolicyVO 对象
DeliverEquipBusinessPolicyVO vo = JSON.parseObject(result, DeliverEquipBusinessPolicyVO.class); // DeliverEquipBusinessPolicyVO vo = JSON.parseObject(result, DeliverEquipBusinessPolicyVO.class);
return vo; return result;
} }
/** /**

View File

@@ -384,10 +384,11 @@ public class LianLianServiceImpl implements LianLianService {
public static void main(String[] args) throws UnsupportedEncodingException { public static void main(String[] args) throws UnsupportedEncodingException {
String dataSecret = "zd4NrLWJ38XCTaqP"; // SPBNJ1Z5EQNmpK08 VTAEKDPVN9CUS7WO huawei: zd4NrLWJ38XCTaqP E6gnWuz0QzBW75CR String dataSecret = "E6gnWuz0QzBW75CR"; // SPBNJ1Z5EQNmpK08 VTAEKDPVN9CUS7WO huawei: zd4NrLWJ38XCTaqP E6gnWuz0QzBW75CR
String dataSecretIV = "RJJecvNTJ48SGMG7"; // peRoTcb2C7zqKeII 83UZFFRRZDYNF5CR huawei: RJJecvNTJ48SGMG7 SXejaSUx5yud8UHm String dataSecretIV = "SXejaSUx5yud8UHm"; // peRoTcb2C7zqKeII 83UZFFRRZDYNF5CR huawei: RJJecvNTJ48SGMG7 SXejaSUx5yud8UHm
String signSecret = "sRjCDeokckFGpYpA"; // sRjCDeokckFGpYpA String signSecret = "sRjCDeokckFGpYpA"; // sRjCDeokckFGpYpA
String dataString = "E+V2sg+xpOjwWcqI9IQVgrN0gIs6tfyeKltpvB2G4mbQLtZREPk7bo7Q22k00/ufrcz+xZa9x/MyAzA3Eo2ZEo9UFKKKG3VLB+nfYX/kWWk="; String dataString = "Ackhbd9jOvBrjklmluZ3Ox22hiaOqUCe0kNSQdV0o3zekzQbNi8I99RBXLig2YlMVryMo7R4U5BkEomVpSRT6KJxol7N5cD8Tzj94/6zsCVRweMX2DOiwQcsC1NEAmQrFdjsGWVUR\n" +
"VtIOxa4MPISVQ==";
// 解密data // 解密data
byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(dataString), dataSecret.getBytes(), dataSecretIV.getBytes()); byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(dataString), dataSecret.getBytes(), dataSecretIV.getBytes());