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;
|
|
/**
|
* <p>
|
* BOM主表 前端控制器
|
* </p>
|
*
|
* @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<ProductBomDto> 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<Integer> ids) {
|
List<ProcessRoute> list = processRouteService.list(Wrappers.<ProcessRoute>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<ProductBom> productBoms = productBomService.list(Wrappers.<ProductBom>lambdaQuery().eq(ProductBom::getProductModelId, productModelId));
|
return AjaxResult.success(productBoms);
|
}
|
|
}
|