diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcHistoryOrderServiceImpl.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcHistoryOrderServiceImpl.java index 442fa7db..bb0859c8 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcHistoryOrderServiceImpl.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcHistoryOrderServiceImpl.java @@ -519,7 +519,12 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis if(map !=null){ BigDecimal powerPriceTotal = new BigDecimal(map.get("powerPriceTotal").toString()); BigDecimal servicePriceTotal = new BigDecimal(map.get("servicePriceTotal").toString()); - xhpcRealTimeOrderService.getExamine(chargeOrderId,powerPriceTotal,servicePriceTotal,null,null,null); + BigDecimal chargingDegree = new BigDecimal(map.get("chargingDegree").toString()); + if(map.get("startTime")!=null && map.get("endTime")!=null){ + xhpcRealTimeOrderService.getExamine(chargeOrderId,powerPriceTotal,servicePriceTotal,chargingDegree,map.get("startTime").toString(),map.get("endTime").toString()); + }else{ + xhpcRealTimeOrderService.getExamine(chargeOrderId,powerPriceTotal,servicePriceTotal,chargingDegree,null,null); + } } } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcRealTimeOrderServiceImpl.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcRealTimeOrderServiceImpl.java index 26c08c9a..63b29335 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcRealTimeOrderServiceImpl.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcRealTimeOrderServiceImpl.java @@ -175,19 +175,38 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe //基本信息 Map message = xhpcRealTimeOrderMapper.getMessage(realTimeOrderId); try{ - if(message ==null || message.get("chargeOrderId") ==null){ + XhpcChargeOrder chargeOrder = xhpcChargeOrderService.getChargingOrderId(Long.parseLong(message.get("chargeOrderId").toString())); + Map cacheMap = redisService.getCacheMap("order:" + chargeOrder.getSerialNumber()); + if (cacheMap !=null && cacheMap.get("startTime")!=null && cacheMap.get("lastOrderTime")!=null) { + String startTime = cacheMap.get("startTime").toString(); + String lastOrderTime = cacheMap.get("lastOrderTime").toString(); + chargeOrder.setStartTime(DateUtil.parse(startTime)); + chargeOrder.setEndTime(DateUtil.parse(lastOrderTime)); + message.put("startTime",startTime); + message.put("endTime",lastOrderTime); + if (cacheMap.get("totalPower")!=null && cacheMap.get("totalMoney")!=null) { + String totalPower = cacheMap.get("totalPower").toString(); + //String totalPowerSub = totalPower.substring(0, totalPower.length() - 1); + String totalMoney = cacheMap.get("totalMoney").toString(); + //String totalMoneySub = totalMoney.substring(0, totalMoney.length() - 1); + chargeOrder.setChargingDegree(new BigDecimal(totalPower)); + chargeOrder.setAmountCharged(new BigDecimal(totalMoney)); + message.put("chargingDegree",new BigDecimal(totalPower)); + } + } + if(message.get("chargeOrderId") == null){ message.put("powerPriceTotal",0); message.put("servicePriceTotal",0); return message; } //获取开始充电时间、结束时间、计费模型、充电度数、已充金额 - XhpcChargeOrder chargeOrder = xhpcChargeOrderService.getChargingOrderId(Long.parseLong(message.get("chargeOrderId").toString())); + if(chargeOrder.getRateModelId()==null || "".equals(chargeOrder.getRateModelId().toString())){ Map xhpcChargingStationMap = xhpcRealTimeOrderMapper.getXhpcChargingStationById(chargeOrder.getChargingStationId()); chargeOrder.setRateModelId(Long.valueOf(xhpcChargingStationMap.get("rateModelId").toString())); } //获取该订单最后一条实时数据 - Map cacheMap = redisService.getCacheMap("order:" + chargeOrder.getSerialNumber()); + Long rateModelId = chargeOrder.getRateModelId(); if(cacheMap !=null && cacheMap.get("orderData") !=null){ CacheOrderData cacheOrderData = (CacheOrderData)cacheMap.get("orderData"); @@ -268,12 +287,16 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe } chargeOrder.setAmountCharged(money); }else{ - if (cacheMap.get("startTime")!=null && cacheMap.get("lastOrderTime")!=null && cacheMap.get("totalPower")!=null && cacheMap.get("totalMoney")!=null) { + if (cacheMap.get("startTime")!=null && cacheMap.get("lastOrderTime")!=null) { chargeOrder.setStartTime(DateUtil.parse(cacheMap.get("startTime").toString())); - chargeOrder.setStartTime(DateUtil.parse(cacheMap.get("lastOrderTime").toString())); - String totalPower = cacheMap.get("totalPower").toString(); - String totalPowerSub = totalPower.substring(0, totalPower.length() - 1); - chargeOrder.setChargingDegree(new BigDecimal(totalPowerSub)); + chargeOrder.setEndTime(DateUtil.parse(cacheMap.get("lastOrderTime").toString())); + if (cacheMap.get("totalPower")!=null && cacheMap.get("totalMoney")!=null) { + String totalPower = cacheMap.get("totalPower").toString(); + //String totalPowerSub = totalPower.substring(0, totalPower.length() - 1); + String totalMoney = cacheMap.get("totalMoney").toString(); + chargeOrder.setChargingDegree(new BigDecimal(totalPower)); + chargeOrder.setAmountCharged(new BigDecimal(totalMoney)); + } }else{ //没有获取到时间 1.获取缓存数据 2.缓存没有获取数据库数据 List list = (List) cacheMap.get("realtimeDataList"); @@ -285,7 +308,7 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe endData =list.get(list.size()-1); for (int i = 0; i 0 && startData.getChargingTime()>0){ + if(startData.getAmountCharged()>0){ break; } } @@ -390,8 +413,10 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe if(cacheMap.get("stopReasonHex") !=null && "".equals(cacheMap.get("stopReasonHex").toString())){ chargeOrder.setType(cacheMap.get("stopReasonHex").toString()); }else{ - chargeOrder.setType("平台停止充电"); + chargeOrder.setType("90"); } + message.put("startTime",chargeOrder.getStartTime()); + message.put("endTime",chargeOrder.getEndTime()); //修改充电订单 xhpcChargeOrderService.updateXhpcChargeOrder(chargeOrder);