package com.ruoyi.sales.controller; import javax.servlet.http.HttpServletResponse; 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.procurementrecord.dto.ProcurementPageDto; import com.ruoyi.procurementrecord.dto.ProcurementPageDtoCopy; import com.ruoyi.procurementrecord.service.ProcurementRecordService; import com.ruoyi.sales.dto.SalesLedgerProductDto; import com.ruoyi.sales.pojo.SalesLedgerProduct; import com.ruoyi.sales.service.ISalesLedgerProductService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; 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.page.TableDataInfo; import java.util.List; /** * 产品信息Controller * * @author ruoyi * @date 2025-05-08 */ @RestController @RequestMapping("/sales/product") public class SalesLedgerProductController extends BaseController { @Autowired private ISalesLedgerProductService salesLedgerProductService; @Autowired private ProcurementRecordService procurementRecordService; /** * 回款登记分页查询 */ @GetMapping("/listPageSalesLedger") public AjaxResult listPage(Page page, SalesLedgerProductDto salesLedgerProduct) { IPage list = salesLedgerProductService.listPage(page,salesLedgerProduct); return AjaxResult.success(list); } /** * 付款登记分页查询 */ @GetMapping("/listPagePurchaseLedger") public AjaxResult listPagePurchaseLedger(Page page, SalesLedgerProductDto salesLedgerProduct) { IPage list = salesLedgerProductService.listPagePurchaseLedger(page,salesLedgerProduct); return AjaxResult.success(list); } /** * 查询产品信息列表 */ @GetMapping("/list") public AjaxResult list(SalesLedgerProduct salesLedgerProduct) { List list = salesLedgerProductService.selectSalesLedgerProductList(salesLedgerProduct); list.forEach(item -> { ProcurementPageDto procurementDto = new ProcurementPageDto(); procurementDto.setSalesLedgerProductId(item.getId()); procurementDto.setProductCategory(item.getProductCategory()); IPage result = procurementRecordService.listPageCopyByProduction(new Page<>(1,-1), procurementDto); if(result.getRecords().size()>0) { ProcurementPageDtoCopy procurementDtoCopy = result.getRecords().get(0); if (item.getQuantity().compareTo(procurementDtoCopy.getInboundNum0()) >= 0) { item.setApproveStatus(1); salesLedgerProductService.addOrUpdateSalesLedgerProduct(item); } } }); 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)); } }