diff --git a/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/OrderDataLogic.java b/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/OrderDataLogic.java index 1a0190a7..65172d16 100644 --- a/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/OrderDataLogic.java +++ b/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/OrderDataLogic.java @@ -52,10 +52,14 @@ public class OrderDataLogic implements ServiceLogic { Map cacheGun = REDIS.getCacheMap(gunkey); cacheGun.put("orderstoptime", cacheOrderData.getEndTime()); cacheGun.put("orderkey", null); + REDIS.setCacheObject(gunkey, cacheGun); + Long rdtime = (Long) cacheOrder.get("rdtime"); String resultStr = "6815".concat(req.get("seqhex").toString()).concat("0040").concat(orderNo).concat(ServiceResult.HEX_00); resultStr = resultStr.concat(CRCCalculator.calcCrc(resultStr)); - pileOrderService.pileEndOrder(orderNo); + if (rdtime != null && (DateUtil.calendar().getTimeInMillis() - rdtime) < 3600000) { + pileOrderService.pileEndOrder(orderNo); + } return new ServiceResult(HexUtils.toBytes(resultStr), ServiceResult.OK); } diff --git a/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/RealtimeDataLogic.java b/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/RealtimeDataLogic.java index 3053d3bb..feb21fbe 100644 --- a/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/RealtimeDataLogic.java +++ b/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/RealtimeDataLogic.java @@ -104,7 +104,7 @@ public class RealtimeDataLogic implements ServiceLogic { REDIS.setCacheMap(stationTermStatusKey, cacheTerminalStatusMap); Map cacheOrder = REDIS.getCacheMap(orderkey); List realtimeDataList = (List) cacheOrder.get("realtimeDataList"); - if (!orderNo.equals("00000000000000000000000000000000") && statusInt != 2) { + if (!orderNo.equals("00000000000000000000000000000000") && statusInt == 3) { if (realtimeDataList == null) { realtimeDataList = new ArrayList<>(); } @@ -129,6 +129,7 @@ public class RealtimeDataLogic implements ServiceLogic { // cacheOrder.put("em", realtimeData.()); //todo 实时时段明细数据是否由桩直接上传? cacheOrder.put("rbalance", balance); cacheOrder.put("remainingTime", tr); + cacheOrder.put("rdtime", DateUtil.calendar().getTime().getTime()); cacheOrder.put("status", statusplain); cacheOrder.put("totalPower", cacheRealtimeData.getChargingDegree() / 10000.0); cacheOrder.put("totalMoney", cacheRealtimeData.getAmountCharged() / 10000.0); @@ -165,6 +166,8 @@ public class RealtimeDataLogic implements ServiceLogic { REDIS.setCacheMap(orderkey, cacheOrder); } REDIS.setCacheMap(orderkey, cacheOrder); + } else { + //todo invoke 异常订单 } return new ServiceResult(false); }