package com.ruoyi.energy.controller;
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.pojo.EnergyConsumptionDetail;
import com.ruoyi.energy.service.EnergyConsumptionDetailService;
import com.ruoyi.energy.vo.EnergyStatisticsVo;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.R;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
/**
*
* 能源类型-能耗抄表明细 前端控制器
*
*
* @author 芯导软件(江苏)有限公司
* @since 2026-03-10 11:22:20
*/
@RestController
@RequestMapping("/energyConsumptionDetail")
@Api(tags = "能耗管理-能耗抄表明细")
public class EnergyConsumptionDetailController {
@Autowired
private EnergyConsumptionDetailService energyConsumptionDetailService;
@GetMapping("page")
@ApiOperation("分页查询")
public R page(Page page, EnergyConsumptionDetailDto energyConsumptionDetailDto) {
return R.ok(energyConsumptionDetailService.pageEnergyConsumptionDetail(page, energyConsumptionDetailDto));
}
@ApiOperation("新增/修改能耗抄表")
@PostMapping()
public R add(@RequestBody EnergyConsumptionDetail energyConsumptionDetail) {
return R.ok(energyConsumptionDetailService.saveOrUpdate(energyConsumptionDetail));
}
@ApiOperation("删除能耗抄表")
@DeleteMapping("/{ids}")
public R delete(@PathVariable("ids") Long[] ids) {
return R.ok(energyConsumptionDetailService.removeBatchByIds(Arrays.asList(ids)));
}
@Log(title = "能耗抄表明细-导入", businessType = BusinessType.IMPORT)
@PostMapping("/importData")
@ApiOperation("能耗抄表明细-导入")
public R importData(MultipartFile file) throws Exception {
return energyConsumptionDetailService.importData(file);
}
@PostMapping("/downloadTemplate")
@ApiOperation("能耗抄表-下载模板")
@Log(title = "能耗抄表-下载模板", businessType = BusinessType.EXPORT)
public void downloadTemplate(HttpServletResponse response) {
ExcelUtil util = new ExcelUtil(EnergyConsumptionDetailDto.class);
util.importTemplateExcel(response, "能耗抄表模版");
}
@PostMapping("/export")
@ApiOperation("能耗抄表-导出")
@Log(title = "能耗抄表-导出", businessType = BusinessType.EXPORT)
public void export(HttpServletResponse response) {
energyConsumptionDetailService.export(response);
}
/*******************************************汇总统计*****************************************************************************************************************************************************************************/
@GetMapping("/statistics")
@ApiOperation("按日月年汇总统计")
public R statistics(EnergyStatisticsVo energyStatisticsVo) {
return R.ok(energyConsumptionDetailService.statistics(energyStatisticsVo));
}
}