package com.ruoyi.production.controller; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.framework.aspectj.lang.annotation.Log; import com.ruoyi.framework.aspectj.lang.enums.BusinessType; import com.ruoyi.framework.web.domain.R; import com.ruoyi.production.bean.vo.MaterialConsumptionStatVo; import com.ruoyi.production.service.MaterialConsumptionService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.time.LocalDate; import java.util.List; @RestController @RequestMapping("/materialConsumption") @RequiredArgsConstructor @Tag(name = "材料消耗核算") public class MaterialConsumptionController { private final MaterialConsumptionService materialConsumptionService; @GetMapping("/stat") @Operation(summary = "材料消耗核算(BOM标准vs实际投入)") public R> stat( @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate startDate, @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate endDate, @RequestParam(required = false) String npsNo, @RequestParam(required = false) String productName, @RequestParam(required = false) Boolean onlyDiff) { return R.ok(materialConsumptionService.stat(startDate, endDate, npsNo, productName, onlyDiff)); } @GetMapping("/stat/export") @Log(title = "Export material consumption", businessType = BusinessType.EXPORT) @Operation(summary = "材料消耗核算导出") public void export(HttpServletResponse response, @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate startDate, @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate endDate, @RequestParam(required = false) String npsNo, @RequestParam(required = false) String productName, @RequestParam(required = false) Boolean onlyDiff) { List list = materialConsumptionService.stat(startDate, endDate, npsNo, productName, onlyDiff); ExcelUtil util = new ExcelUtil<>(MaterialConsumptionStatVo.class); util.exportExcel(response, list, "材料消耗核算"); } }