diff --git a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/notification/NotificationEquipChargeStatusTask.java b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/notification/NotificationEquipChargeStatusTask.java index 4da67c8f..39d6b729 100644 --- a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/notification/NotificationEquipChargeStatusTask.java +++ b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/notification/NotificationEquipChargeStatusTask.java @@ -54,43 +54,45 @@ public class NotificationEquipChargeStatusTask extends CoreDispatcher { for (String gunkey : gunkeys) { if (!gunkey.endsWith(".seqdec") && !gunkey.endsWith(".seqhex") && !gunkey.endsWith(".hori")) { final Map cacheGun = REDIS.getCacheMap(gunkey); - final String status = cacheGun.get("status").toString(); - if (isInteger(status)) { - String orderkey = (String) cacheGun.get("orderkey"); - if (orderkey == null) continue; - EquipChargeStatus equipChargeStatus = new EquipChargeStatus(); - final String internetSerialNumber = REDIS.getCacheMapValue(orderkey.replace("order:", "pushOrder:"), - "internetSerialNumber"); - if (internetSerialNumber == null || !internetSerialNumber.startsWith(authSecretToken.getOperatorId3irdpty())) { - continue; + final String status = (String) cacheGun.get("status"); + if (status != null) { + if (isInteger(status)) { + String orderkey = (String) cacheGun.get("orderkey"); + if (orderkey == null) continue; + EquipChargeStatus equipChargeStatus = new EquipChargeStatus(); + final String internetSerialNumber = REDIS.getCacheMapValue(orderkey.replace("order:", "pushOrder:"), + "internetSerialNumber"); + if (internetSerialNumber == null || !internetSerialNumber.startsWith(authSecretToken.getOperatorId3irdpty())) { + continue; + } + equipChargeStatus.setStartChargeSeq(internetSerialNumber); + equipChargeStatus.setStartChargeSeqStat(2); + equipChargeStatus.setConnectorID(orderkey.substring(6, 22)); + equipChargeStatus.setConnectorStatus(3); + String current = REDIS.getCacheMapValue(gunkey, "current"); + equipChargeStatus.setCurrentA(HexUtils.reverseHexInt(current == null ? "9600" : current) / 10.0); + String voltage = REDIS.getCacheMapValue(gunkey, "voltage"); + equipChargeStatus.setVoltageA(HexUtils.reverseHexInt(voltage == null ? "D80E" : voltage) / 10.0); + Integer soc = REDIS.getCacheMapValue(orderkey, "endSoc"); + equipChargeStatus.setSoc(soc == null ? 0.0 : Double.valueOf(soc.toString())); + CacheRealtimeData lord = REDIS.getCacheObject(orderkey.concat(".lord")); + String lordTime; + if (lord != null) { + lordTime = lord.getCreateTime(); + } else { + lordTime = DateUtil.date2String(Calendar.getInstance().getTime(), DATE_FORMAT_DATE_TIME); + } + equipChargeStatus.setStartTime(REDIS.getCacheMapValue(orderkey, "startTime")); + equipChargeStatus.setEndTime(lordTime); + equipChargeStatus.setChargeModel(3); + equipChargeStatus.setTotalPower(REDIS.getCacheMapValue(orderkey, "totalPower")); + equipChargeStatus.setTotalMoney(REDIS.getCacheMapValue(orderkey, "totalMoney")); + final Long rateModelId = REDIS.getCacheMapValue(gunkey.replace("gun", "pile").substring(0, 19), + "rateModelId"); + final CacheRateModel cacheRateModel = REDIS.getCacheObject("rateModel:" + rateModelId); + calculateEm(equipChargeStatus, cacheRateModel); + notify(equipChargeStatus, authSecretToken); } - equipChargeStatus.setStartChargeSeq(internetSerialNumber); - equipChargeStatus.setStartChargeSeqStat(2); - equipChargeStatus.setConnectorID(orderkey.substring(6, 22)); - equipChargeStatus.setConnectorStatus(3); - String current = REDIS.getCacheMapValue(gunkey, "current"); - equipChargeStatus.setCurrentA(HexUtils.reverseHexInt(current == null ? "9600" : current) / 10.0); - String voltage = REDIS.getCacheMapValue(gunkey, "voltage"); - equipChargeStatus.setVoltageA(HexUtils.reverseHexInt(voltage == null ? "D80E" : voltage) / 10.0); - Integer soc = REDIS.getCacheMapValue(orderkey, "endSoc"); - equipChargeStatus.setSoc(soc == null ? 0.0 : Double.valueOf(soc.toString())); - CacheRealtimeData lord = REDIS.getCacheObject(orderkey.concat(".lord")); - String lordTime; - if (lord != null) { - lordTime = lord.getCreateTime(); - } else { - lordTime = DateUtil.date2String(Calendar.getInstance().getTime(), DATE_FORMAT_DATE_TIME); - } - equipChargeStatus.setStartTime(REDIS.getCacheMapValue(orderkey, "startTime")); - equipChargeStatus.setEndTime(lordTime); - equipChargeStatus.setChargeModel(3); - equipChargeStatus.setTotalPower(REDIS.getCacheMapValue(orderkey, "totalPower")); - equipChargeStatus.setTotalMoney(REDIS.getCacheMapValue(orderkey, "totalMoney")); - final Long rateModelId = REDIS.getCacheMapValue(gunkey.replace("gun", "pile").substring(0, 19), - "rateModelId"); - final CacheRateModel cacheRateModel = REDIS.getCacheObject("rateModel:" + rateModelId); - calculateEm(equipChargeStatus, cacheRateModel); - notify(equipChargeStatus, authSecretToken); } } }