package com.ruoyi.purchase.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.controller.BaseController; 
 | 
import com.ruoyi.framework.web.domain.AjaxResult; 
 | 
import com.ruoyi.framework.web.page.TableDataInfo; 
 | 
import com.ruoyi.purchase.dto.PurchaseLedgerDto; 
 | 
import com.ruoyi.purchase.pojo.PurchaseLedger; 
 | 
import com.ruoyi.purchase.service.IPurchaseLedgerService; 
 | 
import com.ruoyi.sales.service.ISalesLedgerService; 
 | 
import io.swagger.annotations.ApiOperation; 
 | 
import lombok.AllArgsConstructor; 
 | 
import org.springframework.web.bind.annotation.*; 
 | 
  
 | 
import javax.servlet.http.HttpServletResponse; 
 | 
import java.io.IOException; 
 | 
import java.util.List; 
 | 
  
 | 
/** 
 | 
 * 采购台账Controller 
 | 
 * 
 | 
 * @author ruoyi 
 | 
 * @date 2025-05-09 
 | 
 */ 
 | 
@RestController 
 | 
@RequestMapping("/purchase/ledger") 
 | 
@AllArgsConstructor 
 | 
public class PurchaseLedgerController extends BaseController { 
 | 
    private IPurchaseLedgerService purchaseLedgerService; 
 | 
  
 | 
    private ISalesLedgerService salesLedgerService; 
 | 
  
 | 
    /** 
 | 
     * 查询采购台账列表 
 | 
     */ 
 | 
    @GetMapping("/list") 
 | 
    public TableDataInfo list(PurchaseLedger purchaseLedger) { 
 | 
        startPage(); 
 | 
        List<PurchaseLedger> list = purchaseLedgerService.selectPurchaseLedgerList(purchaseLedger); 
 | 
        return getDataTable(list); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 导出采购台账列表 
 | 
     */ 
 | 
    @Log(title = "采购台账", businessType = BusinessType.EXPORT) 
 | 
    @PostMapping("/export") 
 | 
    public void export(HttpServletResponse response, PurchaseLedger purchaseLedger) { 
 | 
        List<PurchaseLedger> list = purchaseLedgerService.selectPurchaseLedgerList(purchaseLedger); 
 | 
        ExcelUtil<PurchaseLedger> util = new ExcelUtil<PurchaseLedger>(PurchaseLedger.class); 
 | 
        util.exportExcel(response, list, "【请填写功能名称】数据"); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 导出来票登记列表 
 | 
     */ 
 | 
    @Log(title = "导出来票登记列表", businessType = BusinessType.EXPORT) 
 | 
    @PostMapping("/exportOne") 
 | 
    public void exportOne(HttpServletResponse response, PurchaseLedger purchaseLedger) { 
 | 
        Page page = new Page(); 
 | 
        page.setCurrent(-1); 
 | 
        page.setSize(-1); 
 | 
        IPage<PurchaseLedgerDto> purchaseLedgerDtoIPage = purchaseLedgerService.selectPurchaseLedgerListPage(page, new PurchaseLedgerDto()); 
 | 
        ExcelUtil<PurchaseLedgerDto> util = new ExcelUtil<PurchaseLedgerDto>(PurchaseLedgerDto.class); 
 | 
        util.exportExcel(response, purchaseLedgerDtoIPage.getRecords(), "导出来票登记列表"); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 新增修改采购台账 
 | 
     */ 
 | 
    @Log(title = "采购台账", businessType = BusinessType.INSERT) 
 | 
    @PostMapping("/addOrEditPurchase") 
 | 
    public AjaxResult addOrEditPurchase(@RequestBody PurchaseLedgerDto purchaseLedgerDto) throws IOException { 
 | 
        return toAjax(purchaseLedgerService.addOrEditPurchase(purchaseLedgerDto)); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 查询采购台账和产品父子列表 
 | 
     */ 
 | 
    @GetMapping("/getPurchaseById") 
 | 
    public PurchaseLedgerDto getPurchaseById(PurchaseLedgerDto purchaseLedgerDto) { 
 | 
        return purchaseLedgerService.getPurchaseById(purchaseLedgerDto); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 删除采购台账 
 | 
     */ 
 | 
    @Log(title = "采购台账", businessType = BusinessType.DELETE) 
 | 
    @DeleteMapping("/delPurchase") 
 | 
    public AjaxResult remove(@RequestBody Long[] ids) { 
 | 
        return toAjax(purchaseLedgerService.deletePurchaseLedgerByIds(ids)); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 查询销售合同号 
 | 
     */ 
 | 
    @GetMapping("/getSalesNo") 
 | 
    public List getSalesNo() { 
 | 
        return salesLedgerService.getSalesNo(); 
 | 
    } 
 | 
  
 | 
  
 | 
    /** 
 | 
     * 根据销售合同查询产品信息 
 | 
     */ 
 | 
    @GetMapping("/getProductBySalesNo") 
 | 
    public AjaxResult getProductBySalesNo(Long id) { 
 | 
        return AjaxResult.success(purchaseLedgerService.getProductBySalesNo(id)); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 查询采购合同号 
 | 
     */ 
 | 
    @GetMapping("/getPurchaseNo") 
 | 
    public List getPurchasesNo() { 
 | 
        return purchaseLedgerService.getPurchasesNo(); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 根据id查询采购合同号 
 | 
     */ 
 | 
    @GetMapping("/getPurchaseNoById") 
 | 
    public AjaxResult getPurchaseNoById(Long id) { 
 | 
        return AjaxResult.success(purchaseLedgerService.getPurchaseNoById(id)); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 根据采购合同号查询产品 
 | 
     */ 
 | 
    @GetMapping("/getProduct") 
 | 
    public List getProduct(PurchaseLedgerDto purchaseLedgerDto) { 
 | 
        return purchaseLedgerService.getProduct(purchaseLedgerDto); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 根据采购合同号查询产品 
 | 
     */ 
 | 
    @GetMapping("/getInfo") 
 | 
    public AjaxResult getInfo(PurchaseLedgerDto purchaseLedgerDto) { 
 | 
        return AjaxResult.success(purchaseLedgerService.getInfo(purchaseLedgerDto)); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 查询采购台账列表 
 | 
     */ 
 | 
    @GetMapping("/listPage") 
 | 
    public AjaxResult listPage(Page page, PurchaseLedgerDto purchaseLedger) { 
 | 
         return AjaxResult.success(purchaseLedgerService.selectPurchaseLedgerListPage(page ,purchaseLedger)); 
 | 
    } 
 | 
  
 | 
    @ApiOperation("生成采购序列号") 
 | 
    @GetMapping("/createPurchaseNo") 
 | 
    @Log(title = "生成采购序列号", businessType = BusinessType.OTHER) 
 | 
    public AjaxResult createPurchaseNo() { 
 | 
        return AjaxResult.success("生成成功",purchaseLedgerService.getPurchaseNo()); 
 | 
    } 
 | 
} 
 |