From e843bfbb3a1d5aa993b96fc175c177012a282662 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期五, 23 八月 2024 19:05:34 +0800 Subject: [PATCH] 计费模板校验 --- ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TAccountingStrategyDetailService.java | 6 ++++++ ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java | 8 ++++++++ ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java | 17 +++++++++++++++++ 3 files changed, 31 insertions(+), 0 deletions(-) diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java index cbde3e9..58e94fb 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java @@ -105,6 +105,10 @@ if(null != dto.getSiteId()){ dto.setAuditStatus(3); } + Boolean flag = accountingStrategyDetailService.isStrategy24Hour(dto.getAccountingStrategyDetails()); + if(flag){ + return AjaxResult.error("计费模板时间设置有误差"); + } Long userId = SecurityUtils.getLoginUser().getUserid(); dto.setUserId(userId); accountingStrategyService.save(dto); @@ -122,6 +126,10 @@ @ApiOperation(tags = {"后台-计费策略", "管理后台-站点管理"},value = "修改计费策略") @PostMapping(value = "/update") public AjaxResult<Boolean> update(@RequestBody TAccountingStrategyDTO dto) { + Boolean flag = accountingStrategyDetailService.isStrategy24Hour(dto.getAccountingStrategyDetails()); + if(flag){ + return AjaxResult.error("计费模板时间设置有误差"); + } // 删除计费策略明细信息 accountingStrategyDetailService.remove(Wrappers.lambdaQuery(TAccountingStrategyDetail.class) .eq(TAccountingStrategyDetail::getAccountingStrategyId, dto.getId())); diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TAccountingStrategyDetailService.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TAccountingStrategyDetailService.java index 178d0cf..245e8d3 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TAccountingStrategyDetailService.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TAccountingStrategyDetailService.java @@ -38,4 +38,10 @@ * @return */ StrategyPriceVO queryPrice(Integer siteId); + /** + * 判断是否满足24小时策略 + * @param accountingStrategyDetails + * @return + */ + Boolean isStrategy24Hour(List<TAccountingStrategyDetail> accountingStrategyDetails); } diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java index ea793af..2385665 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java @@ -22,8 +22,10 @@ import java.math.BigDecimal; import java.time.LocalTime; import java.util.ArrayList; +import java.util.Comparator; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** * <p> @@ -122,4 +124,19 @@ strategyPriceVO.setServiceFeeDiscount(monthlyCardDiscount.getMonthlyCardDiscount()); return strategyPriceVO; } + + @Override + public Boolean isStrategy24Hour(List<TAccountingStrategyDetail> accountingStrategyDetails) { + List<TAccountingStrategyDetail> accountingStrategyDetailList = accountingStrategyDetails.stream() + .sorted(Comparator.comparing(TAccountingStrategyDetail::getStartTime)).collect(Collectors.toList()); + boolean flag = false; + for (int i = 0; i < accountingStrategyDetailList.size(); i++) { + if(i != 0){ + if(!accountingStrategyDetailList.get(i).getStartTime().equals(accountingStrategyDetailList.get(i-1).getEndTime())) { + flag = true; + } + } + } + return flag; + } } -- Gitblit v1.7.1