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.mapper.EnergyConsumptionDetailMapper; import com.ruoyi.energy.pojo.Energy; import com.ruoyi.energy.mapper.EnergyMapper; import com.ruoyi.energy.pojo.EnergyConsumptionDetail; import com.ruoyi.energy.service.EnergyService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.framework.web.domain.R; 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; /** *

* 能源类型 服务实现类 *

* * @author 芯导软件(江苏)有限公司 * @since 2026-03-10 10:50:18 */ @Service public class EnergyServiceImpl extends ServiceImpl implements EnergyService { @Autowired private EnergyMapper energyMapper; @Autowired private EnergyConsumptionDetailMapper energyConsumptionDetailMapper; @Override public IPage pageEnergy(Page page, Energy energy) { return energyMapper.pageEnergy(page,energy); } @Override public boolean batchDelete(List ids) { //先判断是否已经有填写的能耗数据 List energyConsumptionDetails = energyConsumptionDetailMapper.selectList(Wrappers.lambdaQuery().in(EnergyConsumptionDetail::getEnergyId, ids)); if (CollectionUtils.isNotEmpty(energyConsumptionDetails)){ throw new RuntimeException("选中的能源类型已有对应的能耗数据,无法进行删除!"); } return removeBatchByIds(ids); } @Override public R importData(MultipartFile file) { try { ExcelUtil util = new ExcelUtil(Energy.class); List energyList = util.importExcel(file.getInputStream()); if(CollectionUtils.isEmpty(energyList)){ return R.fail("模板错误或导入数据为空"); } energyList.forEach(energy -> { if (ObjectUtils.isEmpty(energy)) { throw new RuntimeException("使用模板进行导入"); } if (ObjectUtils.isEmpty(energy.getEnergyTyep())) { throw new RuntimeException("能源类型不能为空"); } }); this.saveOrUpdateBatch(energyList); return R.ok(true); }catch (Exception e){ e.printStackTrace(); return R.fail(e.getMessage()); } } @Override public void export(HttpServletResponse response) { List list = energyMapper.selectList(null); if(CollectionUtils.isEmpty(list)){ throw new RuntimeException("无导出数据"); } ExcelUtil util = new ExcelUtil<>(Energy.class); util.exportExcel(response, list, "能源类型"); } }