From d0b83b31dba32844fc6fe8ff84afa0d960e18de7 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期三, 12 二月 2025 16:09:01 +0800 Subject: [PATCH] bug修改 --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 99 ++++++++++++++++++++++++++++++------------------- 1 files changed, 60 insertions(+), 39 deletions(-) diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java index eca8912..098dd01 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java @@ -396,7 +396,7 @@ if(null != data){ //支付失败,删除无效的订单 String tradeStatus = data.getTradeStatus(); - if(tradeStatus.equals("TRADE_CLOSED")){ + if(null != tradeStatus && tradeStatus.equals("TRADE_CLOSED")){ this.removeById(tChargingOrder.getId()); } } @@ -1100,7 +1100,7 @@ if(1 == doubleIntegration){ num1 *= 2; } - + } GetInviteUser query = new GetInviteUser(); @@ -1190,8 +1190,12 @@ @Override public TCharingOrderVO chargingOrder(ChargingOrderQuery dto) { TCharingOrderVO tCharingOrderVO = new TCharingOrderVO(); - - + List<TChargingGun> allGun = chargingGunClient.getAllGun().getData(); + List<TChargingPile> allPile = chargingGunClient.getAllPile().getData(); + List<Site> data9 = siteClient.getSiteAll().getData(); + List<TAppUser> data6 = appUserClient.getAllUser().getData(); + List<Partner> data7 = siteClient.getAllPartner().getData(); + List<TAppUserCar> data4 = appUserCarClient.getAllCar().getData(); String startTime1 = null; String startTime2 = null; String endTime1 = null; @@ -1208,7 +1212,7 @@ endTime2 = split[1]; } PageInfo<ChargingOrderVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize()); - PageInfo<ChargingOrderVO> pageInfo1 = new PageInfo<>(1,9999999); + PageInfo<ChargingOrderVO> pageInfo1 = new PageInfo<>(1,999999999); if (StringUtils.hasLength(dto.getPhone())){ List<Long> data = appUserClient.getUserIdsByPhone(dto.getPhone()).getData(); @@ -1264,6 +1268,8 @@ BigDecimal refundMoney = new BigDecimal("0"); BigDecimal paymentMoney = new BigDecimal("0"); List<String> collect2 = list.stream().map(TChargingOrder::getCode).collect(Collectors.toList()); + List<TChargingOrderAccountingStrategy> list3 = chargingOrderAccountingStrategyService.list(new QueryWrapper<TChargingOrderAccountingStrategy>()); + for (ChargingOrderVO chargingOrderVO : list) { if (roleType == 2){ for (Integer siteId : siteIds) { @@ -1276,20 +1282,19 @@ chargingOrderVO.setCommissionAmount(chargingOrderVO.getOrderAmount()!=null?chargingOrderVO.getOrderAmount().multiply(new BigDecimal("0.006")):new BigDecimal("0")); chargingOrderVO.setPlatFormMoney(chargingOrderVO.getOrderAmount()!=null?chargingOrderVO.getOrderAmount().multiply(new BigDecimal("0.006")).setScale(2,BigDecimal.ROUND_DOWN):new BigDecimal("0")); chargingOrderVO.setUid(chargingOrderVO.getId()+""); - TChargingGun data3 = chargingGunClient.getChargingGunById(chargingOrderVO.getChargingGunId()).getData(); - TChargingPile data2 = chargingPileClient.getChargingPileById(chargingOrderVO.getChargingPileId()).getData(); + TChargingGun data3 = allGun.stream().filter(e->e.getId().equals(chargingOrderVO.getChargingGunId())).findFirst().orElse(null); + TChargingPile data2 = allPile.stream().filter(e->e.getId().equals(chargingOrderVO.getChargingPileId())).findFirst().orElse(null); if (chargingOrderVO.getSiteId()!=null){ List<Integer> integers = new ArrayList<>(); integers.add(chargingOrderVO.getSiteId()); - List<Site> data = siteClient.getSiteByIds(integers).getData(); - if (!data.isEmpty())chargingOrderVO.setSiteName(data.get(0).getName()); + Site site = data9.stream().filter(e -> e.getId().equals(chargingOrderVO.getSiteId())).findFirst().orElse(null); + if (site!=null)chargingOrderVO.setSiteName(site.getName()); } if (data2!=null && data3!=null){ chargingOrderVO.setTerminalName(data2.getName()+"-"+data3.getName()); } // 充电订单 明细记录 - List<TChargingOrderAccountingStrategy> chargingOrderId = chargingOrderAccountingStrategyService.list(new QueryWrapper<TChargingOrderAccountingStrategy>() - .eq("charging_order_id", chargingOrderVO.getId())); + List<TChargingOrderAccountingStrategy> chargingOrderId = list3.stream().filter(e -> e.getChargingOrderId().equals(chargingOrderVO.getId())).collect(Collectors.toList()); if (chargingOrderVO.getStartTime()!=null && chargingOrderVO.getEndTime()!=null){ LocalDateTime startTime = chargingOrderVO.getStartTime(); LocalDateTime endTime = chargingOrderVO.getEndTime(); @@ -1302,16 +1307,16 @@ int size = chargingOrderId.size(); chargingOrderVO.setCount(size); // 用户手机号 - TAppUser data = appUserClient.getUserById(chargingOrderVO.getAppUserId()).getData(); + TAppUser data = data6.stream().filter(e -> e.getId().equals(chargingOrderVO.getAppUserId())).findFirst().orElse(null); if (data!=null){ // 车牌号 chargingOrderVO.setPhone(data.getPhone()); List<Long> longs = new ArrayList<>(); if (chargingOrderVO.getAppUserCarId()!=null){ longs.add(chargingOrderVO.getAppUserCarId()); - List<TAppUserCar> data1 = appUserCarClient.getCarByIds(longs).getData(); - if (!data1.isEmpty()){ - chargingOrderVO.setLicensePlate(data1.get(0).getLicensePlate()); + TAppUserCar tAppUserCar = data4.stream().filter(e -> e.getId().equals(chargingOrderVO.getAppUserCarId())).findFirst().orElse(null); + if (tAppUserCar!=null){ + chargingOrderVO.setLicensePlate(tAppUserCar.getLicensePlate()); } } @@ -1438,6 +1443,9 @@ String endTime1 = null; String endTime2 = null; + List<TChargingGun> allGun = chargingGunClient.getAllGun().getData(); + List<TChargingPile> allPile = chargingGunClient.getAllPile().getData(); + if (StringUtils.hasLength(dto.getStartTime())){ String[] split = dto.getStartTime().split(" - "); startTime1 = split[0]; @@ -1534,19 +1542,18 @@ chargingOrderListVO.setSiteName(site.getName()); } if (chargingOrderListVO.getChargingGunId()!=null && chargingOrderListVO.getChargingPileId()!=null){ - TChargingGun data1 = chargingGunClient.getChargingGunById(chargingOrderListVO.getChargingGunId()).getData(); - TChargingPile data2 = chargingPileClient.getChargingPileById(chargingOrderListVO.getChargingPileId()).getData(); + TChargingGun data1 = allGun.stream().filter(e->e.getId().equals(chargingOrderListVO.getChargingGunId())).findFirst().orElse(null); + TChargingPile data2 = allPile.stream().filter(e->e.getId().equals(chargingOrderListVO.getChargingPileId())).findFirst().orElse(null); if (data2 != null && data1 != null) { chargingOrderListVO.setTerminalName(data2.getName() + "-" + data1.getName()); } } - // 获取充电时间 - UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrderListVO.getCode()).getData(); - if (data5!=null){ - if (data5.getTime_remaining()!=null){ - chargingOrderListVO.setChargingSecond(data5.getCumulative_charging_time()*60L); - - } + if (chargingOrderListVO.getStartTime()!=null && chargingOrderListVO.getEndTime()!=null){ + LocalDateTime startTime = chargingOrderListVO.getStartTime(); + LocalDateTime endTime = chargingOrderListVO.getEndTime(); + // 计算时间差 单位秒 + long between = ChronoUnit.SECONDS.between(startTime, endTime); + chargingOrderListVO.setChargingSecond(between); } // 获取开始SOC 结束soc if (chargingOrderListVO.getCode()!=null){ @@ -1637,9 +1644,16 @@ if (site!=null){ chargingOrderListVO.setSiteName(site.getName()); } + if (chargingOrderListVO.getStartTime()!=null && chargingOrderListVO.getEndTime()!=null){ + LocalDateTime startTime = chargingOrderListVO.getStartTime(); + LocalDateTime endTime = chargingOrderListVO.getEndTime(); + // 计算时间差 单位秒 + long between = ChronoUnit.SECONDS.between(startTime, endTime); + chargingOrderListVO.setChargingSecond(between); + } if (chargingOrderListVO.getChargingGunId()!=null && chargingOrderListVO.getChargingPileId()!=null){ - TChargingGun data1 = chargingGunClient.getChargingGunById(chargingOrderListVO.getChargingGunId()).getData(); - TChargingPile data2 = chargingPileClient.getChargingPileById(chargingOrderListVO.getChargingPileId()).getData(); + TChargingGun data1 = allGun.stream().filter(e->e.getId().equals(chargingOrderListVO.getChargingGunId())).findFirst().orElse(null); + TChargingPile data2 = allPile.stream().filter(e->e.getId().equals(chargingOrderListVO.getChargingPileId())).findFirst().orElse(null); if (data2 != null && data1 != null) { chargingOrderListVO.setTerminalName(data2.getName() + "-" + data1.getName()); } @@ -1762,6 +1776,8 @@ public ChargingOrderListInfoVO chargingInfo(String uid) { TChargingOrder chargingOrder= this.getById(uid); ChargingOrderListInfoVO chargingOrderListInfoVO = new ChargingOrderListInfoVO(); + chargingOrderListInfoVO.setStartTime(chargingOrder.getStartTime()); + chargingOrderListInfoVO.setEndTime(chargingOrder.getEndTime()); chargingOrderListInfoVO.setStatus(chargingOrder.getStatus()); BigDecimal bigDecimal = new BigDecimal("0.006"); if (chargingOrder.getOrderAmount()!=null){ @@ -1838,13 +1854,12 @@ chargingOrderListInfoVO.setList(data6); } - // 获取充电时间 - UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrder.getCode()).getData(); - if (data5!=null){ - if (data5.getTime_remaining()!=null){ - chargingOrderListInfoVO.setChargingSecond(data5.getCumulative_charging_time()*60L+""); - - } + if (chargingOrderListInfoVO.getStartTime()!=null && chargingOrderListInfoVO.getEndTime()!=null){ + LocalDateTime startTime = chargingOrderListInfoVO.getStartTime(); + LocalDateTime endTime = chargingOrderListInfoVO.getEndTime(); + // 计算时间差 单位秒 + long between = ChronoUnit.SECONDS.between(startTime, endTime); + chargingOrderListInfoVO.setChargingSecond(between+""); } if (chargingOrder.getAppUserCarId()!=null){ @@ -1938,11 +1953,11 @@ */ @Override @GlobalTransactional(rollbackFor = Exception.class) - public void endChargeBillingCharge(TransactionRecordMessageVO vo) { + public R endChargeBillingCharge(TransactionRecordMessageVO vo) { TChargingOrder chargingOrder = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getCode, vo.getTransaction_serial_number())); Integer status = chargingOrder.getStatus(); if(status == 5){ - return; + return R.ok(); } //如果使用优惠券需要判断优惠券是否满足使用条件 @@ -2082,6 +2097,7 @@ } }catch (Exception e){ e.printStackTrace(); + R.fail("处理失败"); } //开始处理明细 @@ -2169,16 +2185,20 @@ discountAmount = discountAmount.setScale(4, RoundingMode.HALF_EVEN); payAmount = payAmount.subtract(discountAmount); periodServicePrice_total = periodServicePrice_total.subtract(discountAmount); - + TChargingOrder order = new TChargingOrder(); order.setId(chargingOrder.getId()); order.setAppUserId(chargingOrder.getAppUserId()); UploadRealTimeMonitoringData uploadRealTimeMonitoringData = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrder.getCode()).getData(); if(null != uploadRealTimeMonitoringData && null == chargingOrder.getEndMode()){ Integer soc = uploadRealTimeMonitoringData.getSoc(); - order.setEndMode(soc > 98 ? 2 : 3); - }else{ - order.setEndMode(1); + if(soc > 98){ + order.setEndMode(2); + }else if(chargingOrder.getResidualAmount().compareTo(new BigDecimal(1)) <= 0){ + order.setEndMode(3); + }else{ + order.setEndMode(0); + } } order.setResidualAmount(rechargeAmount.subtract(total).setScale(2, RoundingMode.HALF_EVEN)); order.setStartTime(LocalDateTime.parse(vo.getStart_time(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS"))); @@ -2362,6 +2382,7 @@ } } + return R.ok(); } -- Gitblit v1.7.1