package com.ruoyi.cost.controller;
|
|
import com.ruoyi.common.utils.poi.ExcelUtil;
|
import com.ruoyi.cost.bean.vo.CostMissingPriceVo;
|
import com.ruoyi.cost.bean.vo.CostStatVo;
|
import com.ruoyi.cost.bean.vo.CostSummaryVo;
|
import com.ruoyi.cost.service.CostAccountingService;
|
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.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("/costAccounting")
|
@RequiredArgsConstructor
|
@Tag(name = "成本核算分析")
|
public class CostAccountingController {
|
|
private final CostAccountingService costAccountingService;
|
|
@GetMapping("/stat")
|
@Operation(summary = "成本核算明细(材料+人工+能耗,按生产订单)")
|
public R<List<CostStatVo>> 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) {
|
return R.ok(costAccountingService.stat(startDate, endDate, npsNo, productName));
|
}
|
|
@GetMapping("/summary")
|
@Operation(summary = "成本构成汇总,groupBy=month/product")
|
public R<List<CostSummaryVo>> summary(
|
@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, defaultValue = "month") String groupBy) {
|
return R.ok(costAccountingService.summary(startDate, endDate, npsNo, productName, groupBy));
|
}
|
|
@GetMapping("/missingPrice")
|
@Operation(summary = "缺采购单价的消耗物料清单")
|
public R<List<CostMissingPriceVo>> missingPrice(
|
@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) {
|
return R.ok(costAccountingService.missingPrice(startDate, endDate, npsNo, productName));
|
}
|
|
@GetMapping("/stat/export")
|
@Log(title = "Export cost stat", businessType = BusinessType.EXPORT)
|
@Operation(summary = "成本核算明细导出")
|
public void exportStat(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) {
|
List<CostStatVo> list = costAccountingService.stat(startDate, endDate, npsNo, productName);
|
ExcelUtil<CostStatVo> util = new ExcelUtil<>(CostStatVo.class);
|
util.exportExcel(response, list, "成本核算明细");
|
}
|
|
@GetMapping("/summary/export")
|
@Log(title = "Export cost summary", businessType = BusinessType.EXPORT)
|
@Operation(summary = "成本构成汇总导出")
|
public void exportSummary(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, defaultValue = "month") String groupBy) {
|
List<CostSummaryVo> list = costAccountingService.summary(startDate, endDate, npsNo, productName, groupBy);
|
ExcelUtil<CostSummaryVo> util = new ExcelUtil<>(CostSummaryVo.class);
|
util.exportExcel(response, list, "成本构成汇总");
|
}
|
|
@GetMapping("/missingPrice/export")
|
@Log(title = "Export missing price materials", businessType = BusinessType.EXPORT)
|
@Operation(summary = "缺价物料清单导出")
|
public void exportMissingPrice(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) {
|
List<CostMissingPriceVo> list = costAccountingService.missingPrice(startDate, endDate, npsNo, productName);
|
ExcelUtil<CostMissingPriceVo> util = new ExcelUtil<>(CostMissingPriceVo.class);
|
util.exportExcel(response, list, "缺价物料清单");
|
}
|
}
|