From d265735c527c15848e8330560aca4d9c403ecffa Mon Sep 17 00:00:00 2001 From: ZZ Date: Wed, 20 Oct 2021 18:51:11 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B6=85=E8=BF=87=E4=B8=A4=E5=B0=8F=E6=97=B6?= =?UTF-8?q?=E7=9A=84=E8=AE=A2=E5=8D=95=E7=BB=93=E7=AE=97=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E4=B8=A2=E5=BC=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/xhpc/pp/logic/OrderDataLogic.java | 6 +++++- .../src/main/java/com/xhpc/pp/logic/RealtimeDataLogic.java | 5 ++++- 2 files changed, 9 insertions(+), 2 deletions(-) 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); }