package com.ruoyi.sales.controller; import cn.hutool.core.collection.CollUtil; 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.controller.BaseController; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.framework.web.domain.R; import com.ruoyi.sales.pojo.SalesLedgerProduct; import com.ruoyi.sales.service.ISalesLedgerProductService; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; import java.util.List; /** * 产品信息Controller * * @author ruoyi * @date 2025-05-08 */ @RestController @RequiredArgsConstructor @RequestMapping("/sales/product") public class SalesLedgerProductController extends BaseController { private final ISalesLedgerProductService salesLedgerProductService; /** * 查询产品信息列表 */ @GetMapping("/list") public AjaxResult list(SalesLedgerProduct salesLedgerProduct) { List list = salesLedgerProductService.selectSalesLedgerProductList(salesLedgerProduct); if (CollUtil.isNotEmpty(list)) { list.forEach(item -> { if (item.getApproveStatus() != 2) { if (item.getHasSufficientStock() == 0) { item.setApproveStatus(0); } else { item.setApproveStatus(1); } } java.math.BigDecimal returnQuantity = item.getReturnQuantity() == null ? java.math.BigDecimal.ZERO : item.getReturnQuantity(); java.math.BigDecimal quantity = item.getQuantity() == null ? java.math.BigDecimal.ZERO : item.getQuantity(); item.setReturnQuantity(returnQuantity); item.setAvailableQuality(quantity.subtract(returnQuantity)); }); } return AjaxResult.success(list); } /** * 导出产品信息列表 */ @Log(title = "产品信息", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, SalesLedgerProduct salesLedgerProduct) { List list = salesLedgerProductService.selectSalesLedgerProductList(salesLedgerProduct); ExcelUtil util = new ExcelUtil(SalesLedgerProduct.class); util.exportExcel(response, list, "产品信息数据"); } /** * 获取产品信息详细信息 */ @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { return success(salesLedgerProductService.selectSalesLedgerProductById(id)); } /** * 新增修改产品信息 */ @Log(title = "产品信息", businessType = BusinessType.INSERT) @PostMapping ("/addOrUpdateSalesLedgerProduct") public AjaxResult add(@RequestBody SalesLedgerProduct salesLedgerProduct) { return toAjax(salesLedgerProductService.addOrUpdateSalesLedgerProduct(salesLedgerProduct)); } /** * 删除产品信息 */ @Log(title = "产品信息", businessType = BusinessType.DELETE) @DeleteMapping("/delProduct") public AjaxResult remove(@RequestBody Long[] ids) { if (ids == null || ids.length == 0) { return AjaxResult.error("请传入要删除的ID"); } return toAjax(salesLedgerProductService.deleteSalesLedgerProductByIds(ids)); } //根据产品id获取bom判断库存是否充足 @GetMapping("/judgmentInventory") public R judgmentInventory(SalesLedgerProduct salesLedgerProduct) { return salesLedgerProductService.judgmentInventory(salesLedgerProduct); } }