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;
|
|
/**
|
* <p>
|
* 能源类型 服务实现类
|
* </p>
|
*
|
* @author 芯导软件(江苏)有限公司
|
* @since 2026-03-10 10:50:18
|
*/
|
@Service
|
public class EnergyServiceImpl extends ServiceImpl<EnergyMapper, Energy> implements EnergyService {
|
|
@Autowired
|
private EnergyMapper energyMapper;
|
|
@Autowired
|
private EnergyConsumptionDetailMapper energyConsumptionDetailMapper;
|
|
@Override
|
public IPage<Energy> pageEnergy(Page<Energy> page, Energy energy) {
|
return energyMapper.pageEnergy(page,energy);
|
}
|
|
@Override
|
public boolean batchDelete(List<Long> ids) {
|
//先判断是否已经有填写的能耗数据
|
List<EnergyConsumptionDetail> energyConsumptionDetails = energyConsumptionDetailMapper.selectList(Wrappers.<EnergyConsumptionDetail>lambdaQuery().in(EnergyConsumptionDetail::getEnergyId, ids));
|
if (CollectionUtils.isNotEmpty(energyConsumptionDetails)){
|
throw new RuntimeException("选中的能源类型已有对应的能耗数据,无法进行删除!");
|
}
|
return removeBatchByIds(ids);
|
}
|
|
@Override
|
public R importData(MultipartFile file) {
|
try {
|
ExcelUtil<Energy> util = new ExcelUtil<Energy>(Energy.class);
|
List<Energy> 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<Energy> list = energyMapper.selectList(null);
|
if(CollectionUtils.isEmpty(list)){
|
throw new RuntimeException("无导出数据");
|
}
|
ExcelUtil<Energy> util = new ExcelUtil<>(Energy.class);
|
util.exportExcel(response, list, "能源类型");
|
}
|
}
|