package com.ruoyi.production.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.dto.ProductionPlanDto; import com.ruoyi.production.bean.dto.ProductionPlanImportDto; import com.ruoyi.production.bean.vo.ProductionPlanVo; import com.ruoyi.production.service.ProductionPlanService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.math.BigDecimal; import java.util.List; /** *

* 生产计划表 前端控制器 *

* * @author 芯导软件(江苏)有限公司 * @since 2026-04-21 02:11:10 */ @RestController @RequestMapping("/productionPlan") @RequiredArgsConstructor @Api(tags = "主生产计划") public class ProductionPlanController { private final ProductionPlanService productionPlanService; @GetMapping("/listPage") @ApiOperation("获取生产计划列表") public R> productionPlanListPage(Page page, ProductionPlanDto productionPlanDto) { return R.ok(productionPlanService.listPage(page, productionPlanDto)); } @PostMapping("/combine") @Log(title = "合并生产计划", businessType = BusinessType.INSERT) @ApiOperation("合并生产计划") public R combine(@RequestBody ProductionPlanDto productionPlanDto) { if (productionPlanDto.getIds() == null || productionPlanDto.getIds().isEmpty()) { return R.fail("请选择要下发的生产计划"); } if (productionPlanDto.getTotalAssignedQuantity() == null || productionPlanDto.getTotalAssignedQuantity().compareTo(BigDecimal.ZERO) <= 0) { return R.fail("请输入下发数量"); } return R.ok(productionPlanService.combine(productionPlanDto)); } @PostMapping("addProductionPlan") @Log(title = "创建生产计划", businessType = BusinessType.INSERT) @ApiOperation("创建生产计划") public R add(@RequestBody ProductionPlanDto productionPlanDto) { return R.ok(productionPlanService.add(productionPlanDto)); } @PutMapping("updateProductionPlan") @Log(title = "更新生产计划", businessType = BusinessType.UPDATE) @ApiOperation("更新生产计划") public R update(@RequestBody ProductionPlanDto productionPlanDto) { return R.ok(productionPlanService.update(productionPlanDto)); } @DeleteMapping("deleteProductionPlan") @Log(title = "删除生产计划", businessType = BusinessType.DELETE) @ApiOperation("删除生产计划") public R delete(@RequestBody List ids) { return R.ok(productionPlanService.removeByIds(ids)); } @PostMapping("/downloadTemplate") @Log(title = "下载主生产计划导入模板", businessType = BusinessType.EXPORT) @ApiOperation("下载主生产计划导入模板") public void importTemplate(HttpServletResponse response) { ExcelUtil excelUtil = new ExcelUtil<>(ProductionPlanImportDto.class); excelUtil.importTemplateExcel(response, "主生产计划导入模板"); } @PostMapping("/import") @ApiOperation("主生产计划数据导入") @Log(title = "主生产计划数据导入", businessType = BusinessType.IMPORT) public R importProdData(@RequestParam("file") MultipartFile file) { productionPlanService.importProdData(file); return R.ok("导入成功"); } @PostMapping("/export") @ApiOperation("主生产计划数据导出") @Log(title = "主生产计划数据导出", businessType = BusinessType.EXPORT) public void exportProdData(HttpServletResponse response, @RequestBody(required = false) List ids) { productionPlanService.exportProdData(response, ids); } }