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