From 2190401551e7eed22a17777b8733d0e7092d7c3e Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期二, 01 九月 2026 18:40:46 +0800
Subject: [PATCH] 修改VIN码管理和卡片管理两个模块测试bug
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TVinChargingOrderServiceImpl.java | 71 ++++++++++++++++++++++++++++++++++-
1 files changed, 69 insertions(+), 2 deletions(-)
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TVinChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TVinChargingOrderServiceImpl.java
index ab59f2e..683000b 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TVinChargingOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TVinChargingOrderServiceImpl.java
@@ -3,11 +3,16 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.chargingPile.api.dto.GetSiteListDTO;
import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient;
+import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient;
import com.ruoyi.chargingPile.api.feignClient.SiteClient;
import com.ruoyi.chargingPile.api.model.Site;
import com.ruoyi.chargingPile.api.model.TChargingGun;
+import com.ruoyi.chargingPile.api.model.TChargingPile;
+import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.common.security.service.TokenService;
+import com.ruoyi.integration.api.feignClient.SendMessageClient;
+import com.ruoyi.integration.api.model.PlatformStopCharging;
import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData;
import com.ruoyi.order.api.model.TVinChargingOrder;
import com.ruoyi.order.api.query.VinChargingOrderQuery;
@@ -19,6 +24,7 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
+import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.Collections;
@@ -39,6 +45,10 @@
private SiteClient siteClient;
@Resource
private ChargingGunClient chargingGunClient;
+ @Resource
+ private ChargingPileClient chargingPileClient;
+ @Resource
+ private SendMessageClient sendMessageClient;
@Resource
private UploadRealTimeMonitoringDataService monitoringDataService;
@@ -87,7 +97,7 @@
return Collections.emptyMap();
}
Map<String, Object> result = new HashMap<>();
- result.put("id", order.getId());
+ result.put("id", order.getId() == null ? null : String.valueOf(order.getId()));
result.put("code", order.getCode());
result.put("vin", order.getVin());
result.put("actualVin", order.getActualVin());
@@ -104,13 +114,70 @@
result.put("paymentAmount", order.getPaymentAmount());
result.put("electrovalence", order.getElectrovalence());
result.put("serviceCharge", order.getServiceCharge());
+ if (order.getStartTime() != null && order.getEndTime() != null) {
+ result.put("chargingSecond", ChronoUnit.SECONDS.between(order.getStartTime(), order.getEndTime()));
+ }
+ List<Site> sites = order.getSiteId() == null ? Collections.emptyList()
+ : Optional.ofNullable(siteClient.getSiteByIds(Collections.singletonList(order.getSiteId())).getData()).orElse(Collections.emptyList());
+ Site site = sites.stream().findFirst().orElse(null);
+ result.put("siteName", site == null ? null : site.getName());
+ List<TChargingGun> guns = order.getChargingGunId() == null ? Collections.emptyList()
+ : Optional.ofNullable(chargingGunClient.getChargingGunByIds(Collections.singletonList(order.getChargingGunId())).getData()).orElse(Collections.emptyList());
+ TChargingGun gun = guns.stream().findFirst().orElse(null);
+ result.put("terminalName", gun == null ? null : gun.getName());
List<UploadRealTimeMonitoringData> monitoring = monitoringDataService.getDataByOrderCodeAsc(order.getCode());
- result.put("list", monitoring == null ? Collections.emptyList() : monitoring);
+ if (monitoring == null) {
+ monitoring = Collections.emptyList();
+ }
+ for (UploadRealTimeMonitoringData data : monitoring) {
+ if (data.getOutput_current() != null && data.getOutput_voltage() != null) {
+ data.setPower(data.getOutput_voltage().multiply(data.getOutput_current()).divide(new BigDecimal(1000), 2, BigDecimal.ROUND_HALF_UP));
+ }
+ }
+ result.put("list", monitoring);
result.put("list1", baseMapper.accountingStrategyList(order.getId()));
return result;
}
@Override
+ public AjaxResult stopCharging(String chargingOrderId, Integer chargingGunId) {
+ Long orderId;
+ try {
+ orderId = Long.valueOf(chargingOrderId);
+ } catch (NumberFormatException e) {
+ return AjaxResult.error("VIN码充电订单ID无效");
+ }
+ TVinChargingOrder order = getAuthorizedOrder(orderId);
+ if (order == null) {
+ return AjaxResult.error("VIN码充电订单不存在或无权操作");
+ }
+ if (order.getChargingGunId() == null || !order.getChargingGunId().equals(chargingGunId)) {
+ return AjaxResult.error("充电枪与订单不匹配");
+ }
+ Integer status = order.getStatus();
+ if (status == null || !status.equals(3)) {
+ return AjaxResult.error(status != null && (status.equals(4) || status.equals(5)) ? "不能重复操作" : "还未开始充电");
+ }
+ TChargingGun chargingGun = chargingGunClient.getChargingGunById(chargingGunId).getData();
+ TChargingPile chargingPile = order.getChargingPileId() == null ? null
+ : chargingPileClient.getChargingPileById(order.getChargingPileId()).getData();
+ if (chargingGun == null || chargingPile == null) {
+ return AjaxResult.error("未找到订单对应的充电设备");
+ }
+ order.setStatus(4);
+ order.setEndMode(1);
+ order.setEndTime(LocalDateTime.now());
+ if (!updateById(order)) {
+ return AjaxResult.error("更新VIN码充电订单状态失败");
+ }
+ PlatformStopCharging command = new PlatformStopCharging();
+ command.setCharging_pile_code(chargingPile.getCode());
+ command.setCharging_gun_code(chargingGun.getCode());
+ sendMessageClient.platformStopCharging(command);
+ return AjaxResult.success();
+ }
+
+ @Override
public List<Map<String, Object>> accountingStrategyList(Long chargingOrderId) {
TVinChargingOrder order = getAuthorizedOrder(chargingOrderId);
return order == null ? Collections.emptyList() : baseMapper.accountingStrategyList(chargingOrderId);
--
Gitblit v1.7.1