对时记录

This commit is contained in:
ZZ 2021-08-17 14:33:02 +08:00
parent a436d200e5
commit a7131add83
2 changed files with 11 additions and 14 deletions

View File

@ -13,7 +13,6 @@ import org.springframework.stereotype.Component;
import java.util.Map;
import static cn.hutool.core.date.DatePattern.UTC_FORMAT;
import static cn.hutool.core.date.DatePattern.UTC_PATTERN;
import static com.xhpc.pp.server.ChargingPileServer.REDIS;
import static com.xhpc.pp.utils.security.CP56Time2a.cp56toDate;
@ -32,15 +31,11 @@ public class PileTimeConfigReplyDataLogic implements ServiceLogic {
PileTimeConfigReplyData pileTimeConfigReplyData = objectMapper.convertValue(req, PileTimeConfigReplyData.class);
String pileNo = (String) req.get("pileNo");
String pk = "pile:".concat(pileNo);
String configTime = DateUtil.format(cp56toDate(pileTimeConfigReplyData.getSetTime()), UTC_PATTERN);
Map<String, Object> cachePile = REDIS.getCacheMap(pk);
String setTime = (String) cachePile.get("setTime");
String configTime = pileTimeConfigReplyData.getSetTime();
if (configTime.equals(setTime)) {
log.info("({}) set time success: √[{}]", pileNo, DateUtil.format(cp56toDate(setTime), UTC_PATTERN));
} else {
// todo may call back mgmt backend
log.error("({}) set time failed: √[{}] ×[{}]", pileNo, DateUtil.format(cp56toDate(setTime), UTC_PATTERN), DateUtil.format(cp56toDate(configTime), UTC_FORMAT));
}
cachePile.put("configTime", configTime);
REDIS.setCacheMap(pk, cachePile);
log.info("({}) set time success: √[{}]", pileNo, configTime);
return new ServiceResult(false);
}

View File

@ -1,5 +1,6 @@
package com.xhpc.pp.server;
import cn.hutool.core.date.DateUtil;
import com.alibaba.nacos.api.exception.NacosException;
import com.xhpc.common.api.dto.ChargingStationDto;
import com.xhpc.pp.domain.ServiceField;
@ -20,6 +21,7 @@ import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.util.*;
import static cn.hutool.core.date.DatePattern.UTC_PATTERN;
import static com.xhpc.common.data.redis.SeqUtil.seqHex;
import static com.xhpc.pp.server.ChargingPileServer.REDIS;
import static com.xhpc.pp.tx.ServiceResult.OK;
@ -92,10 +94,10 @@ public class ChargingPileBinaryHandler implements ClientBinaryHandler {
String pilekey = "pile:".concat(pileNo);
if (SERVICE_REGISTER.equals(serviceName) && OK.equals(resultCode)) {
regHandler(handler, pileNo, req);
Calendar calendar = Calendar.getInstance();
String timebin = getTimeBin(seqHex(pilekey.concat("seqhex")), pileNo, calendar);
Date date = Calendar.getInstance().getTime();
String timebin = getTimeBin(seqHex(pilekey.concat("seqhex")), pileNo, date);
Map<String, Object> cachePile = REDIS.getCacheMap(pilekey);
cachePile.put("setTime", toCp56Hex(calendar.getTime()));
cachePile.put("configTime", DateUtil.format(date, UTC_PATTERN));
REDIS.setCacheMap(pilekey, cachePile);
log.info("server send time config msg >>>> ({}) |{}|", pileNo, timebin);
handler.sendClientBinary(HexUtils.toBytes(timebin));
@ -111,9 +113,9 @@ public class ChargingPileBinaryHandler implements ClientBinaryHandler {
}
}
private String getTimeBin(String seqhex, String pileNo, Calendar calendar) {
private String getTimeBin(String seqhex, String pileNo, Date date) {
String timebin = "6812".concat(seqhex).concat("0056").concat(pileNo).concat(toCp56Hex(calendar.getTime()));
String timebin = "6812".concat(seqhex).concat("0056").concat(pileNo).concat(toCp56Hex(date));
timebin = timebin.concat(CRCCalculator.calcCrc(timebin));
return timebin;
}