From cf7bc2d68e7d86e7d4b896acf1400f534d594daa Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期二, 10 三月 2026 17:59:19 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_宁夏_中盛建材' into dev_宁夏_中盛建材

---
 src/main/java/com/ruoyi/energy/service/impl/EnergyConsumptionDetailServiceImpl.java |   97 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 97 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/energy/service/impl/EnergyConsumptionDetailServiceImpl.java b/src/main/java/com/ruoyi/energy/service/impl/EnergyConsumptionDetailServiceImpl.java
new file mode 100644
index 0000000..ec91e5a
--- /dev/null
+++ b/src/main/java/com/ruoyi/energy/service/impl/EnergyConsumptionDetailServiceImpl.java
@@ -0,0 +1,97 @@
+package com.ruoyi.energy.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.energy.dto.EnergyConsumptionDetailDto;
+import com.ruoyi.energy.dto.EnergyStatisticsDto;
+import com.ruoyi.energy.mapper.EnergyMapper;
+import com.ruoyi.energy.pojo.Energy;
+import com.ruoyi.energy.pojo.EnergyConsumptionDetail;
+import com.ruoyi.energy.mapper.EnergyConsumptionDetailMapper;
+import com.ruoyi.energy.service.EnergyConsumptionDetailService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.framework.web.domain.R;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 鑳芥簮绫诲瀷-鑳借�楁妱琛ㄦ槑缁� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-03-10 11:22:20
+ */
+@Service
+public class EnergyConsumptionDetailServiceImpl extends ServiceImpl<EnergyConsumptionDetailMapper, EnergyConsumptionDetail> implements EnergyConsumptionDetailService {
+
+    @Autowired
+    private EnergyConsumptionDetailMapper energyConsumptionDetailMapper;
+
+    @Autowired
+    private EnergyMapper energyMapper;
+
+    @Override
+    public IPage<EnergyConsumptionDetailDto> pageEnergyConsumptionDetail(Page<EnergyConsumptionDetailDto> page, EnergyConsumptionDetailDto energyConsumptionDetailDto) {
+        return energyConsumptionDetailMapper.pageEnergyConsumptionDetail(page,energyConsumptionDetailDto);
+    }
+
+    @Override
+    public R importData(MultipartFile file) {
+        try {
+            ExcelUtil<EnergyConsumptionDetailDto> util = new ExcelUtil<EnergyConsumptionDetailDto>(EnergyConsumptionDetailDto.class);
+            List<EnergyConsumptionDetailDto> energyConsumptionDetailDtoList = util.importExcel(file.getInputStream());
+            if(CollectionUtils.isEmpty(energyConsumptionDetailDtoList)){
+                return R.fail("妯℃澘閿欒鎴栧鍏ユ暟鎹负绌�");
+            }
+            List<EnergyConsumptionDetail> list = energyConsumptionDetailDtoList.stream().map(energyConsumptionDetailDto -> {
+                if (ObjectUtils.isEmpty(energyConsumptionDetailDto)) {
+                    throw new RuntimeException("浣跨敤妯℃澘杩涜瀵煎叆");
+                }
+                if (ObjectUtils.isEmpty(energyConsumptionDetailDto.getEnergyTyep()) && ObjectUtils.isEmpty(energyConsumptionDetailDto.getEnergyName())) {
+                    throw new RuntimeException("鑳芥簮绫诲瀷涓嶈兘涓虹┖");
+                }
+                List<Energy> energy = energyMapper.selectList(Wrappers.<Energy>lambdaQuery()
+                        .eq(Energy::getEnergyTyep, energyConsumptionDetailDto.getEnergyTyep())
+                        .eq(Energy::getEnergyName, energyConsumptionDetailDto.getEnergyName()));
+                if (CollectionUtils.isEmpty(energy)) {
+                    throw new RuntimeException("瀵煎叆鏁版嵁涓殑鑳芥簮绫诲瀷鍦ㄧ郴缁熶腑涓嶅瓨鍦�,璇峰厛鍓嶅線鑳芥簮绫诲瀷涓厤缃�!");
+                }
+                EnergyConsumptionDetail energyConsumptionDetail = new EnergyConsumptionDetail();
+                BeanUtils.copyProperties(energyConsumptionDetailDto, energyConsumptionDetail);
+                energyConsumptionDetail.setEnergyId(energy.get(0).getId());
+                return energyConsumptionDetail;
+            }).collect(Collectors.toList());
+            this.saveOrUpdateBatch(list);
+            return R.ok(true);
+        }catch (Exception e){
+            e.printStackTrace();
+            return R.fail(e.getMessage());
+        }
+    }
+
+    @Override
+    public void export(HttpServletResponse response) {
+        List<EnergyConsumptionDetailDto> list = energyConsumptionDetailMapper.pageEnergyConsumptionDetail(new Page<>(-1,-1),new EnergyConsumptionDetailDto()).getRecords();
+        if(CollectionUtils.isEmpty(list)){
+            throw new RuntimeException("鏃犲鍑烘暟鎹�");
+        }
+        ExcelUtil<EnergyConsumptionDetailDto> util = new ExcelUtil<>(EnergyConsumptionDetailDto.class);
+        util.exportExcel(response, list, "鑳借�楁妱琛�");
+    }
+
+    @Override
+    public Object statistics(EnergyStatisticsDto energyStatisticsDto) {
+        return null;
+    }
+}

--
Gitblit v1.9.3