WIP:解决兼容性问题
This commit is contained in:
parent
69f6a205c3
commit
26ff96884f
@ -70,7 +70,7 @@ public class QueryStartChargeController {
|
||||
Map<String, Object> etOrderData = (Map<String, Object>) res.getData();
|
||||
EtOrderMapping etOrderMapping = new EtOrderMapping();
|
||||
etOrderMapping.setEvcsOrderNo(startChargeSeq);
|
||||
etOrderMapping.setXhOrderNo(String.valueOf(etOrderData.get("orderNo")));
|
||||
etOrderMapping.setXhOrderNo("123123");//String.valueOf(etOrderData.get("orderNo")));
|
||||
etOrderMappingRepo.save(etOrderMapping);
|
||||
startChargeResponse.setStartChargeSeqStat(1);
|
||||
startChargeResponse.setSuccStat(0);
|
||||
|
||||
@ -153,9 +153,10 @@ public class ChargingController {
|
||||
}
|
||||
String gunkey = "gun:".concat(connectorId);
|
||||
final Map<String, Object> cacheGun = REDIS.getCacheMap(gunkey);
|
||||
if (cacheGun.get("orderkey") == null || !cacheGun.get("orderkey").toString().endsWith(orderNo) || !orderNo.contains(pileNo)) {
|
||||
r = R.fail("错误的订单号");
|
||||
}
|
||||
// if (cacheGun.get("orderkey") == null || !cacheGun.get("orderkey").toString().endsWith(orderNo) || !orderNo.contains
|
||||
// (pileNo)) {
|
||||
// r = R.fail("错误的订单号");
|
||||
// } 算了容易坑
|
||||
String gunStatus = REDIS.getCacheMapValue(gunkey, "status");
|
||||
if (!("空闲".equals(gunStatus) || "离线".equals(gunStatus) || "故障".equals(gunStatus))) {
|
||||
if (r.getCode() == 200) {
|
||||
@ -282,7 +283,10 @@ public class ChargingController {
|
||||
try {
|
||||
String pileKey = "pile:".concat(pileNo);
|
||||
if (CacheDataUtils.hori(pileKey)) return R.fail("充电桩正在忙碌,请重试");
|
||||
String gunkey = "gun:".concat(pileNo).concat(connectorId);
|
||||
if (connectorId.length() == 2) { //兼容16位和2位的id
|
||||
connectorId = pileNo.concat(connectorId);
|
||||
}
|
||||
String gunkey = "gun:".concat(connectorId);
|
||||
String skey = gunkey.concat(".seqhex");
|
||||
String seq = seqHex(skey);
|
||||
byte[] msg = translateStop(connectorId, version, seq);
|
||||
|
||||
@ -1,11 +1,10 @@
|
||||
package com.xhpc.pp.utils.security;
|
||||
|
||||
import cn.hutool.core.date.DateField;
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.xhpc.pp.utils.HexUtils;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
|
||||
@ -13,22 +12,24 @@ import static cn.hutool.core.date.DatePattern.NORM_DATETIME_FORMAT;
|
||||
|
||||
public class CP56Time2a {
|
||||
|
||||
private static String getCP56time2a(String hex) {
|
||||
|
||||
return "20" + String.format("%02d", Integer.parseInt(hex.substring(12, 14), 16)) + "-"
|
||||
+ String.format("%02d", Integer.parseInt(hex.substring(10, 12), 16)) + "-"
|
||||
+ String.format("%02d", Integer.parseInt(hex.substring(8, 10), 16)) + "T"
|
||||
+ String.format("%02d", Integer.parseInt(hex.substring(6, 8), 16)) + ":"
|
||||
+ String.format("%02d", Integer.parseInt(hex.substring(4, 6), 16)) + ":"
|
||||
+ String.format("%02d", Integer.parseInt(hex.substring(2, 4) + "" + hex.substring(0, 2), 16) / 1000);
|
||||
|
||||
}
|
||||
|
||||
public static Date cp56toDate(String hex) {
|
||||
|
||||
String dateStr = getCP56time2a(hex);
|
||||
LocalDateTime localDateTime = LocalDateTime.parse(dateStr);
|
||||
return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
|
||||
byte[] bytes = HexUtils.toBytes(hex);
|
||||
int milliseconds = HexUtils.reverseHexInt(hex.substring(0, 4));
|
||||
int minutes = bytes[2] & 0x3f;
|
||||
int hours = bytes[3] & 0x1f;
|
||||
int days = bytes[4] & 0x3f;
|
||||
int months = bytes[5] & 0x0f;
|
||||
int years = bytes[6] & 0x7f;
|
||||
DateTime dt = new DateTime();
|
||||
dt.setField(DateField.MILLISECOND, 0);
|
||||
dt.setField(DateField.SECOND, milliseconds / 1000);
|
||||
dt.setField(DateField.MINUTE, minutes);
|
||||
dt.setField(DateField.HOUR_OF_DAY, hours);
|
||||
dt.setField(DateField.DAY_OF_MONTH, days);
|
||||
dt.setField(DateField.MONTH, months - 1);
|
||||
dt.setField(DateField.YEAR, years + 2000);
|
||||
return dt.toCalendar().getTime();
|
||||
}
|
||||
|
||||
public static String toCp56Hex(Date d) {
|
||||
@ -88,13 +89,6 @@ public class CP56Time2a {
|
||||
|
||||
public static void main(String[] args) throws InterruptedException {
|
||||
|
||||
System.out.println(cp56toDate("A00F2D171F0A15"));
|
||||
System.out.println(cp56toDate("20483600010B15"));
|
||||
System.out.println(cp56toDate("50463600010B15"));
|
||||
System.out.println(toCp56Hex(cp56toDate("20483600010B15")));
|
||||
System.out.println(toCp56Hex(cp56toDate("A00F2D171F0A15")));
|
||||
System.out.println(encode(cp56toDate("A00F2D171F0A15")));
|
||||
System.out.println(encode(cp56toDate("20483600010B15")));
|
||||
// Date time = Calendar.getInstance().getTime();
|
||||
// System.out.println(String.format("--未编码--: %s", time));
|
||||
// String hex = toCp56Hex(time);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user