package com.ruoyi.production.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.framework.aspectj.lang.annotation.Log; import com.ruoyi.framework.aspectj.lang.enums.BusinessType; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.production.dto.ProductBomDto; import com.ruoyi.production.dto.ProductProcessDto; import com.ruoyi.production.pojo.ProcessRoute; import com.ruoyi.production.pojo.ProductBom; import com.ruoyi.production.pojo.ProductProcess; import com.ruoyi.production.service.ProcessRouteService; import com.ruoyi.production.service.ProductBomService; import com.ruoyi.production.service.ProductProcessService; import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import java.util.List; /** *

* BOM主表 前端控制器 *

* * @author 芯导软件(江苏)有限公司 * @since 2026-01-15 09:59:27 */ @RestController @RequestMapping("/productBom") public class ProductBomController { @Autowired private ProductBomService productBomService; @Autowired private ProcessRouteService processRouteService; @GetMapping("/listPage") @Log(title = "BOM-分页查询", businessType = BusinessType.OTHER) @ApiOperation("BOM-分页查询") public AjaxResult listPage(Page page, ProductBomDto productBomDto) { IPage listPage = productBomService.listPage(page, productBomDto); return AjaxResult.success(listPage); } @ApiModelProperty("新增BOM") @PostMapping("/add") @Log(title = "新增", businessType = BusinessType.INSERT) public AjaxResult add( @RequestBody ProductBom productBom) { return productBomService.add(productBom); } @ApiOperation("更新BOM") @Log(title = "修改", businessType = BusinessType.UPDATE) @PutMapping("/update") public AjaxResult update(@RequestBody ProductBom productBom) { return AjaxResult.success(productBomService.updateById(productBom)); } @ApiOperation("删除BOM") @DeleteMapping("/batchDelete") @Log(title = "删除", businessType = BusinessType.DELETE) public AjaxResult batchDelete(@RequestBody List ids) { List list = processRouteService.list(Wrappers.lambdaQuery().in(ProcessRoute::getBomId, ids)); if (list.size()>0){ return AjaxResult.error("该BOM已经存在对应的工艺路线,无法进行删除"); } if(CollectionUtils.isEmpty(ids)){ return AjaxResult.error("请选择至少一条数据"); } return AjaxResult.success(productBomService.removeBatchByIds(ids)); } @GetMapping("/getByModel") @Log(title = "BOM-根据选择的规格型号id查询存在的bom", businessType = BusinessType.OTHER) @ApiOperation("BOM-根据选择的规格型号id查询存在的bom") public AjaxResult getByModel(Long productModelId) { List productBoms = productBomService.list(Wrappers.lambdaQuery().eq(ProductBom::getProductModelId, productModelId)); return AjaxResult.success(productBoms); } }