From bc4aefe8d0a0ac6e5ef1f2e65709549c2415ed8f Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期五, 11 十月 2024 14:51:40 +0800 Subject: [PATCH] 10.11 --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 74 ++++++++++++++++++++++++++++-------- 1 files changed, 57 insertions(+), 17 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 10f849d..4f4c9a1 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 @@ -1,9 +1,7 @@ package com.ruoyi.order.service.impl; -import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -34,7 +32,6 @@ import com.ruoyi.order.api.dto.SettlementConfirmAdd; import com.ruoyi.order.api.feignClient.AccountingStrategyDetailOrderClient; import com.ruoyi.order.api.feignClient.AccountingStrategyOrderClient; -import com.ruoyi.order.api.feignClient.ChargingOrderAccountingStrategyClient; import com.ruoyi.order.api.model.*; import com.ruoyi.order.api.query.ChargingOrderQuery; import com.ruoyi.order.api.query.SettlementListQuery; @@ -58,15 +55,11 @@ import com.ruoyi.payment.api.model.WxPaymentRefundModel; import com.ruoyi.payment.api.vo.*; import com.ruoyi.system.api.feignClient.SysUserClient; -import com.sun.org.apache.bcel.internal.generic.NEW; import io.seata.spring.annotation.GlobalTransactional; -import io.swagger.annotations.ApiModelProperty; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; import javax.annotation.Resource; @@ -190,6 +183,9 @@ @Resource private AppUserTagClient appUserTagClient; + + @Resource + private SecurityDetectionClient securityDetectionClient; //计数器 private Map<String, Integer> counter_map = new HashMap<>(); @@ -650,6 +646,19 @@ //执行5分钟的定时任务检测 ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); scheduler.scheduleAtFixedRate(()->{ + //获取安全校验 + SecurityDetection securityDetection = securityDetectionClient.getSecurityDetection(chargingOrder.getCode()).getData(); + if(null != securityDetection){ + PreChargeCheck preChargeCheck1 = redisService.getCacheObject("AQJC_" + chargingOrder.getChargingGunId()); + if(null != preChargeCheck1){ + preChargeCheck1.setElectronicLockLock(preChargeCheck1.getElectronicLockLock()); + preChargeCheck1.setInsulationTesting(true); + preChargeCheck1.setSecureConnectionDetection(preChargeCheck1.getSecureConnectionDetection()); + preChargeCheck1.setStartupSuccess(1); + redisService.setCacheObject("AQJC_" + chargingOrder.getChargingGunId(), preChargeCheck1); + } + } + List<PlatformStartChargingReply> data = platformStartChargingReplyClient.getPlatformStartChargingReply(code).getData(); System.err.println("-------------------开始检查调起充电结果-------------------"); System.err.println(data.toString()); @@ -659,10 +668,9 @@ Integer failure_cause = platformStartChargingReply.getFailure_cause(); Integer counter = counter_map.get(code); PreChargeCheck preChargeCheck1 = redisService.getCacheObject(key); - //状态为5的时候,硬件会间隔60秒后再次检测,依然未插枪,则不启动充电 - //因这里是间隔5秒执行检测,所以累计次数在30次以上 - if(failure_cause == 5 && (null == counter || counter < 35)){ - counter++; + //5分钟内还未插枪则取消充电,退回金额。 + if(failure_cause == 5 && (null == counter || counter < 300)){ + counter = (null == counter ? 0 : counter) + 1; counter_map.put(code, counter); //启动失败 preChargeCheck1.setStartupSuccess(3); @@ -670,9 +678,9 @@ redisService.setCacheObject(key, preChargeCheck1); return; } + //清除计时器中的无效数据 counter_map.remove(code); - //开始处理退款 TChargingOrder order = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getCode, code)); if(0 == startup_result){ //启动失败 @@ -683,6 +691,7 @@ order.setStatus(-1); order.setEndMode(0); }else{ + //启动成功 preChargeCheck1.setStartupSuccess(2); order.setStatus(3); order.setStartTime(LocalDateTime.now()); @@ -691,8 +700,10 @@ redisService.setCacheObject(key, preChargeCheck1); //提前结束定时任务 scheduler.shutdown(); + }else{ + log.error("未上传开启充电结果........"); } - }, 5000, 300, TimeUnit.MILLISECONDS); + }, 5, 1, TimeUnit.SECONDS); return AjaxResult.success(); } @@ -946,6 +957,9 @@ throw new RuntimeException(failure_cause); } + // 将枪状态重置为空闲 + chargingGun.setStatus(2); + chargingGunClient.updateChargingGunById(chargingGun); //计算费用,处理退款 endCharge(chargingOrder); break; @@ -1851,6 +1865,11 @@ } @Override + public List<Map<String, Object>> usersDay1() { + return this.baseMapper.usersDay1(); + } + + @Override public List<Map<String, Object>> usersByQuery(ChargingStatisticsQueryDto statisticsQueryDto) { return this.baseMapper.usersByQuery(statisticsQueryDto); } @@ -1898,6 +1917,8 @@ @Resource private TShoppingOrderService shoppingOrderService; + @Resource + private TShoppingOrderRefundService shoppingOrderRefundService; @Override public R payRefund(PayOrderRefundDto payOrderQueryDto) { if (payOrderQueryDto.getType()==1){ @@ -1932,6 +1953,9 @@ model.setAmount(amount); R<String> orderR = wxPaymentClient.refundOrderR(model); if(200 == orderR.getCode()){ + tChargingOrder.setRefundStatus(2); + tChargingOrder.setRefundAmount((tChargingOrder.getRefundAmount()==null? BigDecimal.valueOf(0) :tChargingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount())); + this.baseMapper.updateById(tChargingOrder); chargingOrderRefundService.save(chargingOrderRefund); } } @@ -1945,6 +1969,9 @@ RefundResp resp = aliPaymentClient.refund(dto).getData(); if(null != resp){ SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-DDTHH:mm:ss+TIMEZONE"); + tChargingOrder.setRefundStatus(2); + tChargingOrder.setRefundAmount((tChargingOrder.getRefundAmount()==null? BigDecimal.valueOf(0) :tChargingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount())); + this.baseMapper.updateById(tChargingOrder); chargingOrderRefundService.save(chargingOrderRefund); } @@ -1957,8 +1984,8 @@ } if (payOrderQueryDto.getType()==2){ TShoppingOrder tChargingOrder = shoppingOrderService.getById(payOrderQueryDto.getOrderId()); - TChargingOrderRefund chargingOrderRefund = new TChargingOrderRefund(); - chargingOrderRefund.setChargingOrderId(tChargingOrder.getId()); + TShoppingOrderRefund chargingOrderRefund = new TShoppingOrderRefund(); + chargingOrderRefund.setShoppingOrderId(tChargingOrder.getId()); chargingOrderRefund.setRefundAmount(payOrderQueryDto.getRefundAmount()); chargingOrderRefund.setRefundStatus(1); chargingOrderRefund.setPayType(tChargingOrder.getPaymentType()); @@ -1987,7 +2014,10 @@ model.setAmount(amount); R<String> orderR = wxPaymentClient.refundOrderR(model); if(200 == orderR.getCode()){ - chargingOrderRefundService.save(chargingOrderRefund); + tChargingOrder.setRefundStatus(2); + tChargingOrder.setRefundAmount((tChargingOrder.getRefundAmount()==null? BigDecimal.valueOf(0) :tChargingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount())); + shoppingOrderService.updateById(tChargingOrder); + shoppingOrderRefundService.save(chargingOrderRefund); } } @@ -2000,7 +2030,12 @@ RefundResp resp = aliPaymentClient.refund(dto).getData(); if(null != resp){ SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-DDTHH:mm:ss+TIMEZONE"); - chargingOrderRefundService.save(chargingOrderRefund); + + tChargingOrder.setRefundStatus(2); + tChargingOrder.setRefundAmount((tChargingOrder.getRefundAmount()==null? BigDecimal.valueOf(0) :tChargingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount())); + shoppingOrderService.updateById(tChargingOrder); + + shoppingOrderRefundService.save(chargingOrderRefund); } } @@ -2444,6 +2479,11 @@ return this.baseMapper.countAllUserData(); } + @Override + 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")); -- Gitblit v1.7.1