diff --git a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java index 9138ea7eb..4d513509b 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java @@ -626,7 +626,7 @@ public class OrderService { String pileConnectorCode = orderBasicInfo.getPileSn() + orderBasicInfo.getConnectorCode(); QueryConnectorListDTO dto = new QueryConnectorListDTO(); dto.setConnectorCodeList(Lists.newArrayList(pileConnectorCode)); - List chargingRealTimeDataList = orderBasicInfoService.getChargingRealTimeData(orderCode); + List chargingRealTimeDataList = orderBasicInfoService.getChargingRealTimeData(orderBasicInfo.getTransactionCode()); if (CollectionUtils.isNotEmpty(chargingRealTimeDataList)) { List infoList = Lists.newArrayList(); for (RealTimeMonitorData realTimeMonitorData : chargingRealTimeDataList) { @@ -733,7 +733,9 @@ public class OrderService { vo.setPileConnectorCode(orderBasicInfo.getPileSn() + orderBasicInfo.getConnectorCode()); String orderStatus = orderBasicInfo.getOrderStatus(); vo.setOrderStatus(orderStatus); - vo.setStartChargingTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, orderBasicInfo.getChargeStartTime())); + if (Objects.nonNull(orderBasicInfo.getChargeStartTime())) { + vo.setStartChargingTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, orderBasicInfo.getChargeStartTime())); + } Date chargeEndTime = orderBasicInfo.getChargeEndTime(); if (Objects.nonNull(chargeEndTime)) { vo.setEndChargingTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, chargeEndTime)); @@ -768,7 +770,7 @@ public class OrderService { } // 获取订单充电数据 - List monitorDataList = orderBasicInfoService.getChargingRealTimeData(orderCode); + List monitorDataList = orderBasicInfoService.getChargingRealTimeData(orderBasicInfo.getTransactionCode()); if (CollectionUtils.isNotEmpty(monitorDataList)) { List chargingDataList = Lists.newArrayList(); UniAppOrderVO.ChargingData data = null; @@ -821,7 +823,11 @@ public class OrderService { * @return */ public String selectPileStarterStatus(String orderCode) { - List chargingRealTimeData = orderBasicInfoService.getChargingRealTimeData(orderCode); + OrderBasicInfo orderInfoByOrderCode = orderBasicInfoService.getOrderInfoByOrderCode(orderCode); + if (orderInfoByOrderCode == null) { + return Constants.ZERO; + } + List chargingRealTimeData = orderBasicInfoService.getChargingRealTimeData(orderInfoByOrderCode.getTransactionCode()); // 只有充电桩上传的实时数据中的状态为充电,才能查到实时数据列表 return CollectionUtils.isNotEmpty(chargingRealTimeData) ? Constants.ONE : Constants.ZERO; } diff --git a/jsowell-admin/src/main/java/com/jsowell/service/PileService.java b/jsowell-admin/src/main/java/com/jsowell/service/PileService.java index 05ca0a5b6..a7416ce08 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/PileService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/PileService.java @@ -337,7 +337,7 @@ public class PileService { } String orderCode = basicInfo.getOrderCode(); // 根据订单号从redis中获取实时数据信息(默认时间倒叙排列,所以取第一条) - List chargingRealTimeData = orderBasicInfoService.getChargingRealTimeData(orderCode); + List chargingRealTimeData = orderBasicInfoService.getChargingRealTimeData(basicInfo.getTransactionCode()); if (CollectionUtils.isEmpty(chargingRealTimeData)) { throw new BusinessException(ReturnCodeEnum.CODE_NO_REAL_TIME_INFO); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileBillingTemplateMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileBillingTemplateMapper.java index efa70171f..100c8ff54 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileBillingTemplateMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileBillingTemplateMapper.java @@ -105,6 +105,14 @@ public interface PileBillingTemplateMapper { List queryStationBillingTemplateList(@Param("stationId") String stationId, @Param("stationDeptIds") List stationDeptIds); + /** + * 根据站点id查询站点计费模板列表 + * 根据发布时间倒序,最新一条就是目前正在使用的计费模板 + * @param stationId 站点id + * @return + */ + List queryStationBillingTemplateListForUniApp(@Param("stationId") String stationId); + /** * 通过桩sn号查询计费模板 * diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileBillingTemplateService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileBillingTemplateService.java index 380072c96..0b81f733a 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileBillingTemplateService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileBillingTemplateService.java @@ -89,6 +89,14 @@ public interface IPileBillingTemplateService { */ List queryStationBillingTemplateList(String stationId); + /** + * 查询站点计费模板 + * + * @param stationId 站点id + * @return + */ + List queryStationBillingTemplateListForUniApp(String stationId); + /** * 查询正在使用中的计费模板 * @param stationId 站点id diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 6058d099b..3c2930897 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -314,7 +314,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { continue; } // 获取订单的实时检测数据,有实时数据说明充电了,没有实时数据说明桩确实没有充电 - List chargingRealTimeData = getChargingRealTimeData(orderCode); + List chargingRealTimeData = getChargingRealTimeData(orderBasicInfo.getTransactionCode()); if (CollectionUtils.isEmpty(chargingRealTimeData)) { // 充电桩在线,并且没有0x13实时数据,则执行结算退款操作 chargingPileFailedToStart(orderCode, "充电桩启动失败,执行退款处理"); @@ -690,17 +690,18 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { * 根据订单编号获取充电实时数据 时间倒序 * 订单只有在充电中,才会把实时数据保存到redis * - * @param orderCode 订单编号 + * @param transactionCode 订单编号 * @return */ @Override - public List getChargingRealTimeData(String orderCode) { + public List getChargingRealTimeData(String transactionCode) { List resultList = Lists.newArrayList(); - if (StringUtils.isBlank(orderCode)) { + if (StringUtils.isBlank(transactionCode)) { return resultList; } - String pileConnectorCode = orderCode.substring(0, 16); - String redisKey = CacheConstants.PILE_REAL_TIME_MONITOR_DATA + pileConnectorCode + "_" + orderCode; + logger.info("transactionCode:{}", transactionCode); + String pileConnectorCode = transactionCode.substring(0, 16); + String redisKey = CacheConstants.PILE_REAL_TIME_MONITOR_DATA + pileConnectorCode + "_" + transactionCode; // 拿到所有数据 Map map = redisCache.hmget(redisKey); if (map != null && !map.isEmpty()) { diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java index b7c7623c9..3d71241e3 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java @@ -457,7 +457,7 @@ public class PileBasicInfoServiceImpl implements IPileBasicInfoService { @Override public void saveRealTimeMonitorData2Redis(RealTimeMonitorData realTimeMonitorData) { // 保存到redis - String redisKey = CacheConstants.PILE_REAL_TIME_MONITOR_DATA + realTimeMonitorData.getPileConnectorCode() + "_" + realTimeMonitorData.getConnectorCode(); + String redisKey = CacheConstants.PILE_REAL_TIME_MONITOR_DATA + realTimeMonitorData.getPileConnectorCode() + "_" + realTimeMonitorData.getTransactionCode(); // 设置接收到实时数据的时间 Date now = new Date(); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBillingTemplateServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBillingTemplateServiceImpl.java index 6a3521be6..645989583 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBillingTemplateServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBillingTemplateServiceImpl.java @@ -359,6 +359,11 @@ public class PileBillingTemplateServiceImpl implements IPileBillingTemplateServi return pileBillingTemplateMapper.queryStationBillingTemplateList(stationId, authorizedMap.getStationDeptIds()); } + @Override + public List queryStationBillingTemplateListForUniApp(String stationId) { + return pileBillingTemplateMapper.queryStationBillingTemplateListForUniApp(stationId); + } + /** * 查询正在使用中的计费模板 * 1 发布时间不为null @@ -368,7 +373,7 @@ public class PileBillingTemplateServiceImpl implements IPileBillingTemplateServi */ @Override public BillingTemplateVO queryUsedBillingTemplate(String stationId) { - List list = queryStationBillingTemplateList(stationId); + List list = queryStationBillingTemplateListForUniApp(stationId); Optional max = list.stream() .filter(x -> StringUtils.isNotBlank(x.getPublishTime())) .max(Comparator.comparing(BillingTemplateVO::getPublishTime)); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileConnectorInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileConnectorInfoServiceImpl.java index 86434eae2..b8e5d7311 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileConnectorInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileConnectorInfoServiceImpl.java @@ -412,8 +412,10 @@ public class PileConnectorInfoServiceImpl implements IPileConnectorInfoService { // 获取枪口的日志记录 for (PileConnectorInfoVO pileConnectorInfoVO : pileConnectorInfoList) { // 从redis中获取实时数据信息 - if (StringUtils.isNotBlank(pileConnectorInfoVO.getOrderCode())) { - List chargingRealTimeDataList = orderBasicInfoService.getChargingRealTimeData(pileConnectorInfoVO.getOrderCode()); + String orderCode = pileConnectorInfoVO.getOrderCode(); + if (StringUtils.isNotBlank(orderCode)) { + OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode(orderCode); + List chargingRealTimeDataList = orderBasicInfoService.getChargingRealTimeData(orderBasicInfo.getTransactionCode()); RealTimeMonitorData realTimeMonitorData = chargingRealTimeDataList.get(0); BigDecimal outputVoltage = new BigDecimal(realTimeMonitorData.getOutputVoltage()); pileConnectorInfoVO.setVoltage(outputVoltage); diff --git a/jsowell-pile/src/main/resources/mapper/pile/PileBillingTemplateMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/PileBillingTemplateMapper.xml index be77391f5..604751239 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/PileBillingTemplateMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/PileBillingTemplateMapper.xml @@ -438,4 +438,37 @@ order by t2.publish_time DESC limit 1 + + \ No newline at end of file