From be22cb2494544c850fcc52039d3327e36610b19d Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期六, 12 十月 2024 13:44:44 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 108 +++++++++++++++++++++++++++++++---------------------- 1 files changed, 63 insertions(+), 45 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 cb3d31e..a0b4ccd 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 @@ -47,6 +47,7 @@ import com.ruoyi.order.service.TChargingOrderService; import com.ruoyi.order.service.TOrderEvaluateService; import com.ruoyi.order.service.*; +import com.ruoyi.order.vo.EndOfChargePageInfo; import com.ruoyi.other.api.domain.*; import com.ruoyi.order.vo.ChargingOrderListInfoVO; import com.ruoyi.other.api.feignClient.*; @@ -56,7 +57,6 @@ import com.ruoyi.payment.api.model.RefundResp; import com.ruoyi.payment.api.model.WxPaymentRefundModel; import com.ruoyi.payment.api.vo.*; -import com.ruoyi.system.api.feignClient.SysUserClient; import io.seata.spring.annotation.GlobalTransactional; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -73,6 +73,8 @@ import java.time.LocalDateTime; import java.time.ZoneOffset; import java.time.format.DateTimeFormatter; +import java.time.format.TextStyle; +import java.time.temporal.WeekFields; import java.util.*; import java.util.concurrent.*; import java.util.stream.Collectors; @@ -97,8 +99,7 @@ @Resource private SiteClient siteClient; - - + @Resource private AppUserCarClient appUserCarClient; @Resource @@ -139,8 +140,7 @@ @Resource private TOrderEvaluateService orderEvaluateService; - - + @Resource private AccountingStrategyDetailClient accountingStrategyDetailClient; @@ -627,6 +627,9 @@ } } } + + electrovalence = electrovalence.setScale(4, RoundingMode.HALF_EVEN); + discountAmount = discountAmount.setScale(4, RoundingMode.HALF_EVEN); chargingOrder.setChargeAmount(electrovalence); chargingOrder.setVipDiscountAmount(discountAmount); this.updateById(chargingOrder); @@ -642,9 +645,7 @@ platformStartCharging.setCard_number(chargingOrder.getId().toString()); platformStartCharging.setAccount_balance(electrovalence); - log.error(chargingOrder.getCode() + ":-------------------远程调起开始充电请求-------------------"); - log.error(platformStartCharging.toString()); - + log.error(chargingOrder.getCode() + ":-------------------远程调起开始充电请求-------------------" + platformStartCharging.toString()); sendMessageClient.platformStartCharging(platformStartCharging); //异步线程检测远程启动的应答结果。如果失败,则需要全额退款 Long id = chargingOrder.getId(); @@ -676,7 +677,7 @@ if(null != securityDetection){ PreChargeCheck preChargeCheck1 = redisService.getCacheObject("AQJC_" + chargingOrder.getChargingGunId()); if(null != preChargeCheck1){ - preChargeCheck1.setElectronicLockLock(preChargeCheck1.getElectronicLockLock()); + preChargeCheck1.setElectronicLockLock(true); preChargeCheck1.setInsulationTesting(true); preChargeCheck1.setSecureConnectionDetection(preChargeCheck1.getSecureConnectionDetection()); preChargeCheck1.setStartupSuccess(1); @@ -685,8 +686,10 @@ } List<PlatformStartChargingReply> data = platformStartChargingReplyClient.getPlatformStartChargingReply(code).getData(); - log.error(code + ":-------------------开始检查调起充电结果-------------------"); - log.error(data.toString()); + if(null == data){ + return false; + } + log.error(code + ":-------------------开始检查调起充电结果-------------------" + data.toString()); if(data.size() != 0){ PlatformStartChargingReply platformStartChargingReply = data.get(1); Integer startup_result = platformStartChargingReply.getStartup_result(); @@ -725,9 +728,8 @@ redisService.setCacheObject(key, preChargeCheck1, 24L, TimeUnit.HOURS); return true; }else{ - log.error(code + ":-------------------未上传开启充电结果-------------------"); - Integer counter = boot_failed_map.get(code); + log.error(code + ":-------------------未上传开启充电结果-------------------" + counter); PreChargeCheck preChargeCheck1 = redisService.getCacheObject(key); //5分钟内未启动成功,退回金额。 if(null == counter || counter < 300){ @@ -767,9 +769,9 @@ code.setCharging_pile_code(securityDetection.getCharging_pile_code()); code.setCharging_gun_code(securityDetection.getCharging_gun_code()); TChargingGun chargingGun = chargingGunClient.getChargingGunByCode(code).getData(); - PreChargeCheck preChargeCheck1 = redisService.getCacheObject("AQJC_" + chargingGun.getId()); + PreChargeCheck preChargeCheck1 = redisService.getCacheObject("AQJC_" + chargingGun.getId()); if(null != preChargeCheck1){ - preChargeCheck1.setElectronicLockLock(preChargeCheck1.getElectronicLockLock()); + preChargeCheck1.setElectronicLockLock(true); preChargeCheck1.setInsulationTesting(true); preChargeCheck1.setSecureConnectionDetection(preChargeCheck1.getSecureConnectionDetection()); preChargeCheck1.setStartupSuccess(1); @@ -778,7 +780,7 @@ } /** - * 启动充电应发 + * 启动充电应答 * @param message */ @Override @@ -792,7 +794,7 @@ String code = order.getCode(); PreChargeCheck preChargeCheck1 = redisService.getCacheObject("AQJC_" + order.getChargingGunId()); if(null != preChargeCheck1){ - preChargeCheck1.setElectronicLockLock(preChargeCheck1.getElectronicLockLock()); + preChargeCheck1.setElectronicLockLock(true); preChargeCheck1.setInsulationTesting(true); preChargeCheck1.setSecureConnectionDetection(preChargeCheck1.getSecureConnectionDetection()); preChargeCheck1.setStartupSuccess(1); @@ -890,7 +892,7 @@ TChargingOrderRefund one = chargingOrderRefundService.getOne(new LambdaQueryWrapper<TChargingOrderRefund>().eq(TChargingOrderRefund::getRefundCode, out_refund_no)); one.setRefundSerialNumber(refund_id); one.setRefundStatus(2); - one.setRefundTime(LocalDateTime.parse(success_time, DateTimeFormatter.ofPattern("yyyy-MM-DDTHH:mm:ss+TIMEZONE"))); + one.setRefundTime(LocalDateTime.now()); chargingOrderRefundService.updateById(one); } return AjaxResult.success(); @@ -1044,8 +1046,8 @@ query.setEnd_time(chargingOrder.getEndTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); PlatformStopChargingReply reply = platformStopChargingReplyClient.getPlatformStopChargingReply(query).getData(); log.error(code1 + ":-------------------查询远程停止充电应答-------------------"); - log.error(reply.toString()); if(null == reply){ + log.error(code1 + ":-------------------远程停止充电应答无数据-------------------"); try { Thread.sleep(1000); } catch (InterruptedException e) { @@ -1053,7 +1055,7 @@ } continue; } - + log.error(reply.toString()); TChargingOrder chargingOrder1 = this.getById(id); if(chargingOrder1.getStatus() != 3){ break; @@ -1138,6 +1140,7 @@ appUserIntegralChange.setHistoricalIntegral(appUser1.getPoints()); appUserIntegralChange.setCurrentIntegral(appUser1.getPoints() + num1); appUserIntegralChange.setCreateTime(LocalDateTime.now()); + appUserIntegralChange.setOrderCode(code1); appUserIntegralChangeClient.addAppUserIntegralChange(appUserIntegralChange); appUser1.setPoints(appUser1.getPoints() + num1); @@ -1252,6 +1255,7 @@ appUser.setPoints(appUser.getPoints() + integral); appUserIntegralChange.setCurrentIntegral(appUser.getPoints()); appUserIntegralChange.setCreateTime(LocalDateTime.now()); + appUserIntegralChange.setOrderCode(chargingOrder.getCode()); appUserClient.updateAppUser(appUser); appUserIntegralChangeClient.addAppUserIntegralChange(appUserIntegralChange); } @@ -1529,13 +1533,8 @@ public List<Map<String, Object>> getYearData(List<Long> chargingOrderIds) { return this.baseMapper.getYearData(chargingOrderIds); } - @Resource - private SysUserClient sysUserClient; - @Resource - private UserSiteClient userSiteClient; - @Resource - private RoleSiteClient roleSiteClient; + @Override public ChargingOrderTimeVO chargingList(ChargingListQuery dto) { String startTime1 = null; @@ -1750,10 +1749,8 @@ return chargingOrderTimeVO; } -// @Override -// public R payRefund(PayOrderRefundDto payOrderQueryDto) { -// return null; -// } + + @Override public ChargingOrderListInfoVO chargingInfo(String uid) { @@ -1842,20 +1839,19 @@ */ @Override public void chargeMonitoring(UploadRealTimeMonitoringDataQuery query) { - if(com.ruoyi.common.core.utils.StringUtils.isNotEmpty(query.getCharging_gun_code())){ + if(com.ruoyi.common.core.utils.StringUtils.isNotEmpty(query.getTransaction_serial_number())){ //获取当前的计费策略 - TChargingOrder chargingOrder = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getCode, query.getCharging_gun_code())); + TChargingOrder chargingOrder = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getCode, query.getTransaction_serial_number())); AccountingStrategyDetailOrder strategyDetail = accountingStrategyDetailOrderClient.getNowAccountingStrategyDetailOrder(chargingOrder.getId()).getData(); TChargingOrderAccountingStrategy chargingOrderAccountingStrategy = chargingOrderAccountingStrategyService.getOne(new LambdaQueryWrapper<TChargingOrderAccountingStrategy>() .eq(TChargingOrderAccountingStrategy::getChargingOrderId, chargingOrder.getId()).orderByDesc(TChargingOrderAccountingStrategy::getCreateTime).last(" limit 0, 1")); - SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); if(null == chargingOrderAccountingStrategy){ chargingOrderAccountingStrategy = new TChargingOrderAccountingStrategy(); chargingOrderAccountingStrategy.setChargingOrderId(chargingOrder.getId()); chargingOrderAccountingStrategy.setAccountingStrategyDetailId(strategyDetail.getId()); chargingOrderAccountingStrategy.setType(strategyDetail.getType()); - chargingOrderAccountingStrategy.setStartTime(sdf.format(chargingOrder.getStartTime())); - chargingOrderAccountingStrategy.setEndTime(sdf.format(new Date())); + chargingOrderAccountingStrategy.setStartTime(chargingOrder.getStartTime().format(DateTimeFormatter.ofPattern("HH:mm"))); + chargingOrderAccountingStrategy.setEndTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("HH:mm"))); chargingOrderAccountingStrategy.setElectrovalence(strategyDetail.getElectrovalence()); chargingOrderAccountingStrategy.setServiceCharge(strategyDetail.getServiceCharge()); chargingOrderAccountingStrategy.setCostServiceCharge(strategyDetail.getCostServiceCharge()); @@ -1892,15 +1888,15 @@ chargingOrderAccountingStrategy.setPeriodServicePrice(periodServicePrice); chargingOrderAccountingStrategy.setPeriodOriginalServicePrice(periodOriginalServicePrice); chargingOrderAccountingStrategy.setPeriodElectricPrice(periodElectricPrice); - chargingOrderAccountingStrategy.setEndTime(sdf.format(new Date())); + chargingOrderAccountingStrategy.setEndTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("HH:mm"))); chargingOrderAccountingStrategyService.updateById(chargingOrderAccountingStrategy); }else{ TChargingOrderAccountingStrategy chargingOrderAccountingStrategy1 = new TChargingOrderAccountingStrategy(); chargingOrderAccountingStrategy1.setChargingOrderId(chargingOrder.getId()); chargingOrderAccountingStrategy1.setAccountingStrategyDetailId(strategyDetail.getId()); chargingOrderAccountingStrategy1.setType(strategyDetail.getType()); - chargingOrderAccountingStrategy1.setStartTime(sdf.format(chargingOrderAccountingStrategy.getEndTime())); - chargingOrderAccountingStrategy1.setEndTime(sdf.format(new Date())); + chargingOrderAccountingStrategy1.setStartTime(chargingOrderAccountingStrategy.getEndTime()); + chargingOrderAccountingStrategy1.setEndTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("HH:mm"))); chargingOrderAccountingStrategy1.setElectrovalence(strategyDetail.getElectrovalence()); chargingOrderAccountingStrategy1.setServiceCharge(strategyDetail.getServiceCharge()); chargingOrderAccountingStrategy1.setCostServiceCharge(strategyDetail.getCostServiceCharge()); @@ -1998,6 +1994,7 @@ appUserIntegralChange.setHistoricalIntegral(appUser1.getPoints()); appUserIntegralChange.setCurrentIntegral(appUser1.getPoints() + num1); appUserIntegralChange.setCreateTime(LocalDateTime.now()); + appUserIntegralChange.setOrderCode(chargingOrder.getCode()); appUserIntegralChangeClient.addAppUserIntegralChange(appUserIntegralChange); appUser1.setPoints(appUser1.getPoints() + num1); @@ -2659,12 +2656,33 @@ public List<Map<String, Object>> needElec1(List<Integer> siteIds, ChargingStatisticsQueryDto statisticsQueryDto) { return this.baseMapper.needElec1(siteIds,statisticsQueryDto); } - - public static void main(String[] args) { -// String format = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy年MM月dd日HH:mm:ss")); -// String format1 = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy年MM月dd日HH:mm:ss")); -// System.err.println(format+"至"+format1); -// LocalDateTime parse = LocalDateTime.parse("2024-01-12 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); -// System.err.println(parse.format(DateTimeFormatter.ofPattern("yyyy-dd"))); + + /** + * 获取充电结束页面详情 + * @param id + * @return + */ + @Override + public EndOfChargePageInfo getEndOfChargePageInfo(String id) { + EndOfChargePageInfo info = new EndOfChargePageInfo(); + TChargingOrder chargingOrder = this.getById(id); + info.setId(id); + info.setCode(chargingOrder.getCode()); + info.setPaymentAmount(chargingOrder.getPaymentAmount()); + info.setCouponDiscountAmount(chargingOrder.getCouponDiscountAmount()); + TAppUserIntegralChange integralChange = appUserIntegralChangeClient.getTAppUserIntegralChangeByOrderCode(chargingOrder.getCode()).getData(); + info.setIntegral(null == integralChange ? 0 : integralChange.getCurrentIntegral() - integralChange.getHistoricalIntegral()); + info.setRechargeAmount(chargingOrder.getRechargeAmount()); + info.setRefundAmount(chargingOrder.getRefundAmount()); + LocalDateTime startTime = chargingOrder.getStartTime(); + LocalDateTime endTime = chargingOrder.getEndTime(); + info.setStartDay(startTime.format(DateTimeFormatter.ofPattern("MM月dd日")) + " 周" + startTime.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.SIMPLIFIED_CHINESE)); + info.setStartHour(startTime.format(DateTimeFormatter.ofPattern("HH:mm"))); + info.setEndDay(endTime.format(DateTimeFormatter.ofPattern("MM月dd日")) + " 周" + endTime.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.SIMPLIFIED_CHINESE)); + info.setEndHour(endTime.format(DateTimeFormatter.ofPattern("HH:mm"))); + int hour = endTime.getHour() - startTime.getHour(); + int second = endTime.getSecond() - startTime.getSecond(); + info.setDuration(0 == hour ? String.format("%s分钟", second) : String.format("%s小时%s分钟", hour, second)); + return info; } } -- Gitblit v1.7.1