From 5c2fc8b317e17d0b194f27937bd9d2af8961502f Mon Sep 17 00:00:00 2001 From: dongyukun <1208714201@qq.com> Date: 星期五, 24 一月 2025 15:06:55 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/impl/ElectricityPriceSegmentedServiceImpl.java | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 111 insertions(+), 0 deletions(-) diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/impl/ElectricityPriceSegmentedServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/impl/ElectricityPriceSegmentedServiceImpl.java new file mode 100644 index 0000000..86981ea --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/impl/ElectricityPriceSegmentedServiceImpl.java @@ -0,0 +1,111 @@ +package com.iailab.module.model.mpk.service.impl; + +import com.alibaba.nacos.common.utils.CollectionUtils; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.iailab.framework.common.page.PageData; +import com.iailab.framework.common.service.impl.BaseServiceImpl; +import com.iailab.framework.common.util.date.DateUtils; +import com.iailab.framework.common.util.object.ConvertUtils; +import com.iailab.module.model.api.mcs.dto.ElectricityPriceSegmentedDTO; +import com.iailab.module.model.mpk.dao.ElectricityPriceSegmentedDao; +import com.iailab.module.model.mpk.entity.ElectricityPriceSegmentedEntity; +import com.iailab.module.model.mpk.service.ElectricityPriceSegmentedService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; + +import java.util.*; + +/** + * @description: + * @author: dzd + * @date: 2024/11/5 11:21 + **/ +@Slf4j +@Service +public class ElectricityPriceSegmentedServiceImpl extends BaseServiceImpl<ElectricityPriceSegmentedDao, ElectricityPriceSegmentedEntity> implements ElectricityPriceSegmentedService { + + @Override + public PageData<ElectricityPriceSegmentedDTO> page(Map<String, Object> params) { + IPage<ElectricityPriceSegmentedEntity> page = baseDao.selectPage( + getPage(params, "create_time", false), + getWrapper(params) + ); + + return getPageData(page, ElectricityPriceSegmentedDTO.class); + } + + @Override + public void create(ElectricityPriceSegmentedDTO dto) { + ElectricityPriceSegmentedEntity entity = ConvertUtils.sourceToTarget(dto, ElectricityPriceSegmentedEntity.class); + entity.setId(UUID.randomUUID().toString()); + entity.setCreateTime(new Date()); + baseDao.insert(entity); + } + + @Override + public void update(ElectricityPriceSegmentedEntity dto) { + ElectricityPriceSegmentedEntity entity = ConvertUtils.sourceToTarget(dto, ElectricityPriceSegmentedEntity.class); + entity.setUpdateTime(new Date()); + baseDao.updateById(entity); + } + + @Override + public ElectricityPriceSegmentedEntity get(String id) { + return baseDao.selectById(id); + } + + + @Override + public void delete(String id) { + baseDao.deleteById(id); + } + + @Override + public void deleteByITimeId(String iTimeId) { + QueryWrapper<ElectricityPriceSegmentedEntity> wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(iTimeId), "i_time_id", iTimeId); + baseDao.delete(wrapper); + } + + @Override + public List<ElectricityPriceSegmentedDTO> getElectricityPriceList(String year, String time) { + List<ElectricityPriceSegmentedDTO> result = new ArrayList<>(); + QueryWrapper<ElectricityPriceSegmentedEntity> wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(year), "year", year) + .orderByDesc( "create_time"); + List<ElectricityPriceSegmentedEntity> list = baseDao.selectList(wrapper); + if(CollectionUtils.isNotEmpty(list)){ + String itimeId = list.get(0).getITimeId(); + QueryWrapper<ElectricityPriceSegmentedEntity> wrapper1 = new QueryWrapper<>(); + wrapper1.eq(StringUtils.isNotBlank(itimeId), "i_time_id", itimeId) + .apply(StringUtils.isNotBlank(time),"TIME(start_time) <= TIME({0})", time) + .apply(StringUtils.isNotBlank(time),"TIME(end_time) > TIME({0})", time) + .orderByDesc( "create_time"); + result = ConvertUtils.sourceToTarget(baseDao.selectList(wrapper1), ElectricityPriceSegmentedDTO.class); + } + return result; + } + + @Override + public List<ElectricityPriceSegmentedDTO> getElectricityPriceListByTime(ElectricityPriceSegmentedDTO dto) { + String startTime = DateUtils.format(dto.getStartTime(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND); + String endTime = DateUtils.format(dto.getEndTime(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND); + Map<String, Object> params = new HashMap<>(); + params.put("startTime", startTime); + params.put("endTime", endTime); + List<ElectricityPriceSegmentedEntity> list = baseDao.selectList(getWrapper(params)); + return ConvertUtils.sourceToTarget(list, ElectricityPriceSegmentedDTO.class); + } + + private QueryWrapper<ElectricityPriceSegmentedEntity> getWrapper(Map<String, Object> params) { + String startTime = (String) params.get("startTime"); + String endTime = (String) params.get("endTime"); + + QueryWrapper<ElectricityPriceSegmentedEntity> wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(startTime), "start_time", startTime) + .eq(StringUtils.isNotBlank(endTime), "end_time", endTime); + return wrapper; + } +} \ No newline at end of file -- Gitblit v1.9.3