From a9413f69dd00ae9285bb6bd4d00855ad274a6552 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期三, 16 七月 2025 19:25:18 +0800
Subject: [PATCH] 修改bug
---
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyDetailController.java | 57 +++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 43 insertions(+), 14 deletions(-)
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyDetailController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyDetailController.java
index 3bd8ac6..cd9f0d4 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyDetailController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyDetailController.java
@@ -10,12 +10,17 @@
import com.ruoyi.chargingPile.service.*;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.exception.ServiceException;
+import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.log.enums.OperatorType;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
+import java.time.LocalTime;
import java.util.List;
import java.util.Objects;
@@ -100,10 +105,16 @@
public R<TAccountingStrategyDetail> getDetailBySiteId(@RequestParam("siteId") Integer siteId){
Site site = siteService.getById(siteId);
TAccountingStrategy accountingStrategy = accountingStrategyService.getById(site.getAccountingStrategyId());
- TAccountingStrategyDetail one = accountingStrategyDetailService.getOne(Wrappers.<TAccountingStrategyDetail>lambdaQuery()
- .eq(TAccountingStrategyDetail::getAccountingStrategyId, accountingStrategy.getId())
- .last(" and DATE_FORMAT(now(), '%H:%i') between start_time and end_time"));
- return R.ok(one);
+ List<TAccountingStrategyDetail> list = accountingStrategyDetailService.list(Wrappers.<TAccountingStrategyDetail>lambdaQuery()
+ .eq(TAccountingStrategyDetail::getAccountingStrategyId, accountingStrategy.getId()));
+ list.stream().filter(item -> "00:00".equals(item.getEndTime())).forEach(item -> item.setEndTime("23:59:59"));
+ for (TAccountingStrategyDetail accountingStrategyDetail : list) {
+ if(DateUtils.string2LocalTime(accountingStrategyDetail.getStartTime() + ":00").compareTo(LocalTime.now()) <= 0
+ && DateUtils.string2LocalTime(accountingStrategyDetail.getEndTime() + ("23:59:59".equals(accountingStrategyDetail.getEndTime())?"":":00")).compareTo(LocalTime.now()) > 0){
+ return R.ok(accountingStrategyDetail);
+ }
+ }
+ return R.ok();
}
/**
* 通过桩id查询当前时段使用的策略明细
@@ -123,19 +134,31 @@
.eq(TChargingGun::getChargingPileId, chargingPile.getId()).eq(TChargingGun::getDelFlag, 0)
.last("LIMIT 1"));
TAccountingStrategy accountingStrategy = accountingStrategyService.getById(chargingGun.getAccountingStrategyId());
- TAccountingStrategyDetail one;
+ TAccountingStrategyDetail one = null;
if(Objects.nonNull(accountingStrategy)){
- one = accountingStrategyDetailService.getOne(Wrappers.<TAccountingStrategyDetail>lambdaQuery()
- .eq(TAccountingStrategyDetail::getAccountingStrategyId, accountingStrategy.getId())
- .last(" and DATE_FORMAT(now(), '%H:%i') between start_time and end_time"));
+ List<TAccountingStrategyDetail> list = accountingStrategyDetailService.list(Wrappers.<TAccountingStrategyDetail>lambdaQuery()
+ .eq(TAccountingStrategyDetail::getAccountingStrategyId, accountingStrategy.getId()));
+ list.stream().filter(item -> "00:00".equals(item.getEndTime())).forEach(item -> item.setEndTime("23:59:59"));
+ for (TAccountingStrategyDetail accountingStrategyDetail : list) {
+ if(DateUtils.string2LocalTime(accountingStrategyDetail.getStartTime() + ":00").compareTo(LocalTime.now()) <= 0
+ && DateUtils.string2LocalTime(accountingStrategyDetail.getEndTime() + ("23:59:59".equals(accountingStrategyDetail.getEndTime())?"":":00")).compareTo(LocalTime.now()) > 0){
+ return R.ok(accountingStrategyDetail);
+ }
+ }
}else {
Site site = siteService.getById(chargingPile.getSiteId());
accountingStrategy = accountingStrategyService.getById(site.getAccountingStrategyId());
- one = accountingStrategyDetailService.getOne(Wrappers.<TAccountingStrategyDetail>lambdaQuery()
- .eq(TAccountingStrategyDetail::getAccountingStrategyId, accountingStrategy.getId())
- .last(" and DATE_FORMAT(now(), '%H:%i') between start_time and end_time"));
+ List<TAccountingStrategyDetail> list = accountingStrategyDetailService.list(Wrappers.<TAccountingStrategyDetail>lambdaQuery()
+ .eq(TAccountingStrategyDetail::getAccountingStrategyId, accountingStrategy.getId()));
+ list.stream().filter(item -> "00:00".equals(item.getEndTime())).forEach(item -> item.setEndTime("23:59:59"));
+ for (TAccountingStrategyDetail accountingStrategyDetail : list) {
+ if(DateUtils.string2LocalTime(accountingStrategyDetail.getStartTime() + ":00").compareTo(LocalTime.now()) <= 0
+ && DateUtils.string2LocalTime(accountingStrategyDetail.getEndTime() + ("23:59:59".equals(accountingStrategyDetail.getEndTime())?"":":00")).compareTo(LocalTime.now()) > 0){
+ return R.ok(accountingStrategyDetail);
+ }
+ }
}
- return R.ok(one);
+ return R.ok();
}
/**
* 校验充电桩计费模版是否准确
@@ -153,9 +176,14 @@
}
Site site = siteService.getById(chargingPile.getSiteId());
TAccountingStrategy accountingStrategy = accountingStrategyService.getById(site.getAccountingStrategyId());
+ if(null == accountingStrategy){
+ List<TChargingGun> list = chargingGunService.list(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getChargingPileId, chargingPile.getId()));
+ accountingStrategy = accountingStrategyService.getById(list.get(0).getAccountingStrategyId());
+ }
+
TAccountingStrategyDetail one = accountingStrategyDetailService.getOne(Wrappers.<TAccountingStrategyDetail>lambdaQuery()
.eq(TAccountingStrategyDetail::getAccountingStrategyId, accountingStrategy.getId())
- .last(" and DATE_FORMAT(now(), '%H:%i') between start_time and end_time"));
+ .last(" and DATE_FORMAT(now(), '%H:%i') between start_time and (if(end_time = '00:00', '23:59', end_time))"));
return R.ok(dto.getStrategyDetailId().equals(one.getId()));
}
@@ -167,7 +195,8 @@
*/
@GetMapping("/getListByAccountingStrategyId")
public R<List<TAccountingStrategyDetail>> getListByAccountingStrategyId(@RequestParam("id") Integer id){
- List<TAccountingStrategyDetail> list = accountingStrategyDetailService.list(new LambdaQueryWrapper<TAccountingStrategyDetail>().eq(TAccountingStrategyDetail::getAccountingStrategyId, id));
+ List<TAccountingStrategyDetail> list = accountingStrategyDetailService.list(new LambdaQueryWrapper<TAccountingStrategyDetail>()
+ .eq(TAccountingStrategyDetail::getAccountingStrategyId, id).orderByAsc(TAccountingStrategyDetail::getStartTime));
return R.ok(list);
}
--
Gitblit v1.7.1