From bf8f19df85be8eff8000f2ff3676dd54036aa7ae Mon Sep 17 00:00:00 2001 From: yuyang Date: Wed, 23 Feb 2022 14:28:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AE=9A=E6=97=B6=E8=AE=A1?= =?UTF-8?q?=E8=B4=B9=E6=A8=A1=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../XhpcTimingChargingModelController.java | 34 ++++ .../mapper/XhpcTimingChargingModelMapper.java | 19 +- .../IXhpcTimingChargingModelService.java | 9 + .../XhpcTimingChargingModelServiceImpl.java | 132 ++++++++++++- .../mapper/XhpcTimingChargingModelMapper.xml | 184 ++++++++++++++++++ .../XhpcTimingChargingCacheRateModel.java | 45 +++++ .../java/com/xhpc/pp/mapper/NormalTest.java | 1 - 7 files changed, 415 insertions(+), 9 deletions(-) create mode 100644 xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/domain/XhpcTimingChargingCacheRateModel.java diff --git a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/controller/XhpcTimingChargingModelController.java b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/controller/XhpcTimingChargingModelController.java index abd789fa..514811a9 100644 --- a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/controller/XhpcTimingChargingModelController.java +++ b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/controller/XhpcTimingChargingModelController.java @@ -8,6 +8,7 @@ import com.xhpc.common.core.web.page.TableDataInfo; import com.xhpc.common.log.annotation.Log; import com.xhpc.common.log.enums.BusinessType; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; import org.springframework.web.bind.annotation.*; import com.xhpc.common.core.domain.R; @@ -62,6 +63,39 @@ public class XhpcTimingChargingModelController extends BaseController { return xhpcTimingChargingModelService.updateXhpcTimingChargingModel(timingChargingModelId); } + /** + * 详情 + * + * @return + */ + @GetMapping(value = "/getXhpcTimingChargingModelMessage") + public R getXhpcTimingChargingModelMessage(Long timingChargingModelId) { + return xhpcTimingChargingModelService.getXhpcTimingChargingModelMessage(timingChargingModelId); + } + + + /** + * 编辑定时计费模型 + * @param xhpcTimingChargingModelDto + * @return + */ + @Log(title = "编辑定时计费模型", businessType = BusinessType.INSERT) + @PostMapping(value = "/updateXhpcTimingChargingModel") + public R updateXhpcTimingChargingModel(HttpServletRequest request, @RequestBody XhpcTimingChargingModelDto xhpcTimingChargingModelDto) { + + if(xhpcTimingChargingModelDto.getTimingChargingModelId()==null){ + return R.fail("定时计费模型id比传"); + } + return xhpcTimingChargingModelService.addXhpcTimingChargingModel(request,xhpcTimingChargingModelDto); + } + + /** + * 每5分钟执行一次 + */ + @Scheduled(cron = "0 0/5 * * * ?") + public void getXhpcTimingChargingModelCron(){ + xhpcTimingChargingModelService.getXhpcTimingChargingModelCron(); + } } diff --git a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/mapper/XhpcTimingChargingModelMapper.java b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/mapper/XhpcTimingChargingModelMapper.java index 8f8cf7dc..3e3253a2 100644 --- a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/mapper/XhpcTimingChargingModelMapper.java +++ b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/mapper/XhpcTimingChargingModelMapper.java @@ -1,5 +1,6 @@ package com.xhpc.charging.station.mapper; +import com.xhpc.common.domain.XhpcTimingChargingCacheRateModel; import com.xhpc.common.domain.XhpcTimingChargingModel; import com.xhpc.common.domain.XhpcTimingChargingTime; import com.xhpc.common.domain.XhpcTtimingChargingRate; @@ -14,7 +15,7 @@ import java.util.Map; */ public interface XhpcTimingChargingModelMapper { - List> list(@Param("reason") String reason,@Param("status") Integer status,@Param("startTime") String startTime,@Param("endTime") String endTime,@Param("chargingStationId") Long chargingStationId,@Param("tenantId")String tenantId); + List> list(@Param("status") Integer status,@Param("startTime") String startTime,@Param("endTime") String endTime,@Param("chargingStationId") Long chargingStationId,@Param("tenantId")String tenantId); int insertXhpcTimingChargingModel(XhpcTimingChargingModel xhpcTimingChargingModel); @@ -23,7 +24,21 @@ public interface XhpcTimingChargingModelMapper { int insertXhpcTimingChargingTime(XhpcTimingChargingTime xhpcTimingChargingTime); - XhpcTimingChargingModel getXhpcTimingChargingModelById(@Param("timingChargingModelId")Long timingChargingModelId); + int insertXhpcTimingChargingCacheRateModel(XhpcTimingChargingCacheRateModel xhpcTimingChargingCacheRateModel); + + XhpcTimingChargingModel getXhpcTimingChargingModelById(@Param("timingChargingModelId")Long timingChargingModelId,@Param("tenantId")String tenantId); int updateXhpcTimingChargingModel(XhpcTimingChargingModel xhpcTimingChargingModel); + + int updateXhpcTtimingChargingRate(@Param("timingChargingModelId")Long timingChargingModelId); + + int updateXhpcTimingChargingTime(@Param("timingChargingModelId")Long timingChargingModelId); + + int updateXhpcTimingChargingCacheRateModel(@Param("timingChargingModelId")Long timingChargingModelId); + + List> getXhpcTimingChargingRateList(@Param("timingChargingModelId") Long timingChargingModelId); + + List> getXhpcTimingChargingTimeTypeList(@Param("timingChargingModelId") Long timingChargingModelId); + + Map getXhpcTimingChargingModelMapById(@Param("timingChargingModelId")Long timingChargingModelId,@Param("tenantId")String tenantId); } diff --git a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/IXhpcTimingChargingModelService.java b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/IXhpcTimingChargingModelService.java index aee66e0f..3ba044f7 100644 --- a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/IXhpcTimingChargingModelService.java +++ b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/IXhpcTimingChargingModelService.java @@ -2,6 +2,8 @@ package com.xhpc.charging.station.service; import com.xhpc.common.api.dto.XhpcTimingChargingModelDto; import com.xhpc.common.core.domain.R; +import com.xhpc.common.domain.XhpcTimingChargingModel; +import org.apache.ibatis.annotations.Param; import javax.servlet.http.HttpServletRequest; import java.util.List; @@ -19,4 +21,11 @@ public interface IXhpcTimingChargingModelService { R updateXhpcTimingChargingModel(Long timingChargingModelId); + R getXhpcTimingChargingModelMessage(Long timingChargingModelId); + + XhpcTimingChargingModel getXhpcTimingChargingModelById(Long timingChargingModelId); + + int updateXhpcTimingChargingModel(XhpcTimingChargingModel xhpcTimingChargingModel); + + void getXhpcTimingChargingModelCron(); } diff --git a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcTimingChargingModelServiceImpl.java b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcTimingChargingModelServiceImpl.java index 0db18570..71fee4c9 100644 --- a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcTimingChargingModelServiceImpl.java +++ b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcTimingChargingModelServiceImpl.java @@ -8,6 +8,7 @@ import com.xhpc.common.api.dto.XhpcTimingChargingModelDto; import com.xhpc.common.core.domain.R; import com.xhpc.common.core.web.domain.AjaxResult; import com.xhpc.common.core.web.service.BaseService; +import com.xhpc.common.data.redis.CacheRateModel; import com.xhpc.common.domain.*; import com.xhpc.common.security.service.TokenService; import com.xhpc.system.api.model.LoginUser; @@ -18,6 +19,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -40,7 +42,7 @@ public class XhpcTimingChargingModelServiceImpl extends BaseService implements I LoginUser loginUser = tokenService.getLoginUser(request); if(loginUser !=null){ startPage(); - return xhpcTimingChargingModelMapper.list(reason,status,startTime,endTime,chargingStationId,loginUser.getTenantId()); + return xhpcTimingChargingModelMapper.list(status,startTime,endTime,chargingStationId,loginUser.getTenantId()); } return new ArrayList<>(); } @@ -132,11 +134,24 @@ public class XhpcTimingChargingModelServiceImpl extends BaseService implements I xhpcTimingChargingModel.setTenantId(loginUser.getTenantId()); xhpcTimingChargingModel.setCreateTime(new Date()); xhpcTimingChargingModel.setChargingStationId(chargingStationId); - int i = xhpcTimingChargingModelMapper.insertXhpcTimingChargingModel(xhpcTimingChargingModel); - if (i == 0) { - return R.fail("1006", "定时计费模型添加失败"); + if(xhpcTimingChargingModelDto.getTimingChargingModelId() !=null){ + xhpcTimingChargingModel.setTimingChargingModelId(xhpcTimingChargingModelDto.getTimingChargingModelId()); + xhpcTimingChargingModelMapper.updateXhpcTimingChargingModel(xhpcTimingChargingModel); + + //删除之前添加的费率和费率时段 + xhpcTimingChargingModelMapper.updateXhpcTtimingChargingRate(xhpcTimingChargingModel.getTimingChargingModelId()); + xhpcTimingChargingModelMapper.updateXhpcTimingChargingTime(xhpcTimingChargingModel.getTimingChargingModelId()); + xhpcTimingChargingModelMapper.updateXhpcTimingChargingCacheRateModel(xhpcTimingChargingModel.getTimingChargingModelId()); + }else{ + int i = xhpcTimingChargingModelMapper.insertXhpcTimingChargingModel(xhpcTimingChargingModel); + if (i == 0) { + return R.fail("1006", "定时计费模型添加失败"); + } } + Long timingChargingModelId = xhpcTimingChargingModel.getTimingChargingModelId(); + + //添加费率 Map map = new HashMap<>(); List xhpcRateList = xhpcTimingChargingModelDto.getXhpcRateList(); @@ -172,6 +187,8 @@ public class XhpcTimingChargingModelServiceImpl extends BaseService implements I //存费率时段,从Map中获取费率id //每个时间段都要存 //返回计费模型 24:00 转成 00:00 + + XhpcRateTimeDto[] xhpcRateTimeDtosArr = new XhpcRateTimeDto[xhpcRateTimeList.size()]; xhpcRateTimeList.toArray(xhpcRateTimeDtosArr); XhpcRateTimeDto[] xhpcRateTimeDtos = bubbleSort(xhpcRateTimeDtosArr); @@ -184,7 +201,10 @@ public class XhpcTimingChargingModelServiceImpl extends BaseService implements I } //默认费率类型值 String rateValue = xhpcTimingChargingModelDto.getDefaultPeriodId(); - + String[] tfPricesSeq = new String[48]; + for (int k = 0; k <48 ; k++) { + tfPricesSeq[k]=rateValue; + } for (int k = 0; k < list.size(); k++) { XhpcRateTimeDto xhpcRateTimeDto = list.get(k); String startTime = xhpcRateTimeDto.getStartTime(); @@ -195,6 +215,9 @@ public class XhpcTimingChargingModelServiceImpl extends BaseService implements I int st= Integer.valueOf(str); String endT = endTime.split(":")[0]; int end= Integer.valueOf(endT); + for (int l = st*2; l map =new HashMap<>(); + LoginUser loginUser = tokenService.getLoginUser(); + if(loginUser ==null){ + return R.ok(map); + } + //查询是否是未执行状态 + map = xhpcTimingChargingModelMapper.getXhpcTimingChargingModelMapById(timingChargingModelId,loginUser.getTenantId()); + //费率 + List> xhpcRateList = xhpcTimingChargingModelMapper.getXhpcTimingChargingRateList(timingChargingModelId); + + map.put("xhpcRateList", xhpcRateList); + //费率时段,先反设置时段,在反默认时段 + List> xhpcRateTimeTypeList = xhpcTimingChargingModelMapper.getXhpcTimingChargingTimeTypeList(timingChargingModelId); + map.put("xhpcRateTimeList", xhpcRateTimeTypeList); + return R.ok(map); + } + + @Override + public XhpcTimingChargingModel getXhpcTimingChargingModelById(Long timingChargingModelId) { + return xhpcTimingChargingModelMapper.getXhpcTimingChargingModelById(timingChargingModelId,null); + } + + @Override + public int updateXhpcTimingChargingModel(XhpcTimingChargingModel xhpcTimingChargingModel) { + return xhpcTimingChargingModelMapper.updateXhpcTimingChargingModel(xhpcTimingChargingModel); + } + + @Override + public void getXhpcTimingChargingModelCron() { + + } + public static XhpcRateTimeDto[] bubbleSort(XhpcRateTimeDto[] args) { //冒泡排序算法 for (int i = 0; i < args.length - 1; i++) { diff --git a/xhpc-modules/xhpc-charging-station/src/main/resources/mapper/XhpcTimingChargingModelMapper.xml b/xhpc-modules/xhpc-charging-station/src/main/resources/mapper/XhpcTimingChargingModelMapper.xml index df7c626a..92b8a9e8 100644 --- a/xhpc-modules/xhpc-charging-station/src/main/resources/mapper/XhpcTimingChargingModelMapper.xml +++ b/xhpc-modules/xhpc-charging-station/src/main/resources/mapper/XhpcTimingChargingModelMapper.xml @@ -307,8 +307,139 @@ + + insert into xhpc_timing_charging_cache_rate_model + + + timing_charging_model_id, + + + one_price, + + + one_svc_price, + + + two_price, + + + two_svc_price, + + + three_price, + + + three_svc_price, + + + four_price, + + + four_svc_price, + + + loss_rate, + + + tf_prices_seq, + + + pp, + + + tenant_id, + + + status, + + + del_flag, + + + create_time, + + + create_by, + + + update_time, + + + update_by, + + + remark + + + + + #{timingChargingModelId}, + + + #{onePrice}, + + + #{oneSvcPrice}, + + + #{twoPrice}, + + + #{twoSvcPrice}, + + + #{threePrice}, + + + #{threeSvcPrice}, + + + #{fourPrice}, + + + #{fourSvcPrice}, + + + #{lossRate}, + + + #{tfPricesSeq}, + + + #{pp}, + + + #{tenantId}, + + + #{status}, + + + #{delFlag}, + + + #{createTime}, + + + #{createBy}, + + + #{updateTime}, + + + #{updateBy}, + + + #{remark} + + + + @@ -330,4 +461,57 @@ where timing_charging_model_id =#{timingChargingModelId} + + update xhpc_timing_charging_rate set del_flag=2 where timing_charging_model_id =#{timingChargingModelId} + + + + update xhpc_timing_charging_time set del_flag=2 where timing_charging_model_id =#{timingChargingModelId} + + + + update xhpc_timing_charging_cache_rate_model set del_flag=2 where timing_charging_model_id =#{timingChargingModelId} + + + + + + + diff --git a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/domain/XhpcTimingChargingCacheRateModel.java b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/domain/XhpcTimingChargingCacheRateModel.java new file mode 100644 index 00000000..2e57679d --- /dev/null +++ b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/domain/XhpcTimingChargingCacheRateModel.java @@ -0,0 +1,45 @@ +package com.xhpc.common.domain; + +import com.xhpc.common.core.web.domain.BaseEntity; +import lombok.Data; + +/** + * @author yuyang + * @date 2022/2/23 13:34 + */ +@Data +public class XhpcTimingChargingCacheRateModel extends BaseEntity { + + + private Long timingChargingCacheRateModelId; + + private Long timingChargingModelId; + + private Integer onePrice; + + private Integer oneSvcPrice; + + private Integer twoPrice; + + private Integer twoSvcPrice; + + private Integer threePrice; + + private Integer threeSvcPrice; + + private Integer fourPrice; + + private Integer fourSvcPrice; + + private Integer lossRate; + + private String tfPricesSeq; + + private String pp; + + private Integer status; + + private Integer delFlag; + + private String tenantId; +} diff --git a/xhpc-modules/xhpc-power-pile/src/test/java/com/xhpc/pp/mapper/NormalTest.java b/xhpc-modules/xhpc-power-pile/src/test/java/com/xhpc/pp/mapper/NormalTest.java index b0497e5d..67484611 100644 --- a/xhpc-modules/xhpc-power-pile/src/test/java/com/xhpc/pp/mapper/NormalTest.java +++ b/xhpc-modules/xhpc-power-pile/src/test/java/com/xhpc/pp/mapper/NormalTest.java @@ -1,6 +1,5 @@ package com.xhpc.pp.mapper; -import com.xhpc.mapper.XhpcMessageMapper; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest;