From 907f8421d36050ab7a24d4c151e04cbb4244305c Mon Sep 17 00:00:00 2001
From: longz <longzhaoz@qq.com>
Date: 星期四, 30 七月 2026 16:16:25 +0800
Subject: [PATCH] 各类修复
---
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java | 42 +++++++++++++++++++++++++++++++++++-------
1 files changed, 35 insertions(+), 7 deletions(-)
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java
index 53b2834..50ef6bd 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java
@@ -23,6 +23,7 @@
import com.ruoyi.chargingPile.api.domain.SiteMenu;
import com.ruoyi.chargingPile.dto.ChargingPercentBack;
import com.ruoyi.chargingPile.dto.BatchSetSiteAccountingStrategyDTO;
+import com.ruoyi.chargingPile.dto.ChargingPileFilterOptionsDTO;
import com.ruoyi.chargingPile.dto.SiteExcelDTO;
import com.ruoyi.chargingPile.dto.SiteImportResultDTO;
import com.ruoyi.common.core.dto.ChargingOrderGroup;
@@ -159,7 +160,10 @@
accountingStrategyId = site.getAccountingStrategyId();
}
TChargingPile one = chargingPileService.getById(chargingGun.getChargingPileId());
- TAccountingStrategy byId1 = accountingStrategyService.getById(accountingStrategyId);
+ TAccountingStrategy byId1 = resolveAccountingStrategy(accountingStrategyId, site);
+ if (Objects.isNull(byId1)) {
+ return R.fail("电站未配置有效的计费模板");
+ }
List<TAccountingStrategyDetail> list = accountingStrategyDetailService.lambdaQuery().eq(TAccountingStrategyDetail::getAccountingStrategyId, byId1.getId()).list();
list.stream().filter(item -> "00:00".equals(item.getEndTime())).forEach(item -> item.setEndTime("23:59:59"));
for (TAccountingStrategyDetail tAccountingStrategyDetail : list) {
@@ -228,7 +232,10 @@
if(null == accountingStrategyId){
accountingStrategyId = site.getAccountingStrategyId();
}
- TAccountingStrategy byId1 = accountingStrategyService.getById(accountingStrategyId);
+ TAccountingStrategy byId1 = resolveAccountingStrategy(accountingStrategyId, site);
+ if (Objects.isNull(byId1)) {
+ return R.fail("电站未配置有效的计费模板");
+ }
List<TAccountingStrategyDetail> list = accountingStrategyDetailService.lambdaQuery().eq(TAccountingStrategyDetail::getAccountingStrategyId, byId1.getId()).list();
list.stream().filter(item -> "00:00".equals(item.getEndTime())).forEach(item -> item.setEndTime("23:59:59"));
for (TAccountingStrategyDetail tAccountingStrategyDetail : list) {
@@ -291,6 +298,16 @@
siteInfoVO.setReservationAheadMinute(site.getReservationAheadMinute());
siteInfoVO.setVinFlag(one.getVinFlag());
return R.ok(siteInfoVO);
+ }
+
+ TAccountingStrategy resolveAccountingStrategy(Integer accountingStrategyId, Site site) {
+ TAccountingStrategy strategy = accountingStrategyId == null
+ ? null : accountingStrategyService.getById(accountingStrategyId);
+ if (strategy == null && site != null && site.getAccountingStrategyId() != null
+ && !Objects.equals(accountingStrategyId, site.getAccountingStrategyId())) {
+ strategy = accountingStrategyService.getById(site.getAccountingStrategyId());
+ }
+ return strategy;
}
@RequiresPermissions(value = {"/systemUserManagement/update", "/site", "/platformRevenueAnalysis", "/chargingOperationAnalysis",
@@ -504,6 +521,13 @@
public AjaxResult<List<Site>> getSiteListGun(){
return AjaxResult.success(siteService.getSiteListGun());
}
+
+ @RequiresPermissions(value = {"/chargingPile", "/chargingPile/select"}, logical = Logical.OR)
+ @GetMapping("/chargingPileFilterOptions")
+ @ApiOperation(value = "获取充电桩筛选级联选项", tags = {"管理后台-充电桩管理"})
+ public AjaxResult<ChargingPileFilterOptionsDTO> getChargingPileFilterOptions() {
+ return AjaxResult.success(ChargingPileFilterOptionsDTO.fromSites(siteService.getSiteOptions()));
+ }
@RequiresPermissions(value = {"/parkingLot/add", "/parkingLot/select", "/parkingLot/update"}, logical = Logical.OR)
@@ -544,11 +568,15 @@
// Map<String, Double> distance = GeodesyUtil.getDistance(query.getLat() + "," + query.getLon(), siteDetailVO.getLat() + "," + siteDetailVO.getLon());
// siteDetailVO.setDistance(distance.get("WGS84"));
// 查询绑定车牌提示文案
- TParkingLot parkingLot = parkingLotService.getOne(Wrappers.lambdaQuery(TParkingLot.class)
- .eq(TParkingLot::getSiteId, query.getSiteId()));
- if(Objects.nonNull(parkingLot)){
- siteDetailVO.setRemark(parkingLot.getRemark());
- }
+ // 一个站点允许绑定多个停车场,不能使用 getOne,否则多条数据会直接抛异常。
+ // 详情页只展示一条绑定车牌提示,取最新配置的非空提示。
+ parkingLotService.list(Wrappers.lambdaQuery(TParkingLot.class)
+ .eq(TParkingLot::getSiteId, query.getSiteId()))
+ .stream()
+ .filter(Objects::nonNull)
+ .filter(item -> StringUtils.isNotEmpty(item.getRemark()))
+ .max(Comparator.comparingInt(item -> Objects.isNull(item.getId()) ? 0 : item.getId()))
+ .ifPresent(item -> siteDetailVO.setRemark(item.getRemark()));
return AjaxResult.success(siteDetailVO);
}
--
Gitblit v1.7.1