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.PaymentHistoryRecordVo; 
 | 
import com.ruoyi.purchase.dto.PaymentLedgerDto; 
 | 
import com.ruoyi.purchase.dto.PaymentRegistrationDto; 
 | 
import com.ruoyi.purchase.pojo.PaymentRegistration; 
 | 
import com.ruoyi.purchase.service.IPaymentRegistrationService; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.web.bind.annotation.*; 
 | 
  
 | 
import javax.servlet.http.HttpServletResponse; 
 | 
import java.util.List; 
 | 
import java.util.Map; 
 | 
  
 | 
/** 
 | 
 * 付款登记Controller 
 | 
 * 
 | 
 * @author ruoyi 
 | 
 * @date 2025-05-15 
 | 
 */ 
 | 
@RestController 
 | 
@RequestMapping("/purchase/paymentRegistration") 
 | 
public class PaymentRegistrationController extends BaseController { 
 | 
    @Autowired 
 | 
    private IPaymentRegistrationService paymentRegistrationService; 
 | 
  
 | 
    /** 
 | 
     * 查询付款登记列表 
 | 
     */ 
 | 
//    @PreAuthorize("@ss.hasPermi('system:registration:list')") 
 | 
    @GetMapping("/list") 
 | 
    public TableDataInfo list(PaymentRegistrationDto paymentRegistrationDto) { 
 | 
        startPage(); 
 | 
        List<PaymentRegistrationDto> list = paymentRegistrationService.selectPaymentRegistrationList(paymentRegistrationDto); 
 | 
        return getDataTable(list); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 导出付款流水列表 
 | 
     */ 
 | 
    @Log(title = "导出付款流水列表", businessType = BusinessType.EXPORT) 
 | 
    @PostMapping("/export") 
 | 
    public void export(HttpServletResponse response, PaymentRegistrationDto paymentRegistrationDto) 
 | 
    { 
 | 
        Page page = new Page<>(-1,-1); 
 | 
        IPage<PaymentRegistrationDto> paymentRegistrationDtoIPage = paymentHistoryListPage(page, paymentRegistrationDto); 
 | 
        ExcelUtil<PaymentRegistrationDto> util = new ExcelUtil<PaymentRegistrationDto>(PaymentRegistrationDto.class); 
 | 
        util.exportExcel(response, paymentRegistrationDtoIPage.getRecords(), "导出付款流水列表"); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 获取付款登记详细信息 
 | 
     */ 
 | 
    @GetMapping(value = "/{id}") 
 | 
    public AjaxResult getInfo(@PathVariable("id") Long id) { 
 | 
        return success(paymentRegistrationService.selectPaymentRegistrationById(id)); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 新增付款登记 
 | 
     */ 
 | 
    @Log(title = "付款登记", businessType = BusinessType.INSERT) 
 | 
    @PostMapping 
 | 
    public AjaxResult add(@RequestBody PaymentRegistration paymentRegistration) { 
 | 
        return toAjax(paymentRegistrationService.insertPaymentRegistration(paymentRegistration)); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 修改付款登记 
 | 
     */ 
 | 
    @Log(title = "付款登记", businessType = BusinessType.UPDATE) 
 | 
    @PutMapping 
 | 
    public AjaxResult edit(@RequestBody PaymentRegistration paymentRegistration) { 
 | 
        return toAjax(paymentRegistrationService.updatePaymentRegistration(paymentRegistration)); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 删除付款登记 
 | 
     */ 
 | 
    @Log(title = "付款登记", businessType = BusinessType.DELETE) 
 | 
    @DeleteMapping("/del") 
 | 
    public AjaxResult remove(@RequestBody Long[] ids) { 
 | 
        return toAjax(paymentRegistrationService.deletePaymentRegistrationByIds(ids)); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 删除付款登记 
 | 
     */ 
 | 
    @Log(title = "付款登记", businessType = BusinessType.DELETE) 
 | 
    @DeleteMapping("/delete") 
 | 
    public AjaxResult delete(@RequestBody Long[] ids) { 
 | 
        return toAjax(paymentRegistrationService.delete(ids)); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 获取付款登记详细信息 
 | 
     */ 
 | 
    @GetMapping(value = "/byPurchaseId/{id}") 
 | 
    public AjaxResult getPurchaseInfo(@PathVariable("id") Long id) { 
 | 
        return success(paymentRegistrationService.selectPaymentRegistrationByPurchaseId(id)); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 获取付款登记详细信息 
 | 
     */ 
 | 
    @GetMapping(value = "/paymentLedgerList") 
 | 
    public AjaxResult paymentLedgerList(PaymentLedgerDto paymentLedgerDto, Page page, 
 | 
                                        Integer detailPageNum, 
 | 
                                        Integer detailPageSize) { 
 | 
        IPage<Map<String, Object>> mapIPage = paymentRegistrationService.selectPaymentLedgerList(paymentLedgerDto, page, detailPageNum, detailPageSize); 
 | 
        return success(mapIPage); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 获取本月应付信息 
 | 
     */ 
 | 
    @GetMapping(value = "/paymentMonthList") 
 | 
    public AjaxResult paymentMonthList() { 
 | 
        return success(paymentRegistrationService.paymentMonthList()); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 查询付款登记列表 
 | 
     * 
 | 
     * @param paymentRegistrationDto 付款登记 
 | 
     * @return 付款登记集合 
 | 
     */ 
 | 
    @GetMapping("/paymentHistoryList") 
 | 
    public TableDataInfo paymentHistoryList(PaymentRegistrationDto paymentRegistrationDto) { 
 | 
        startPage(); 
 | 
        List<PaymentRegistrationDto> list = paymentRegistrationService.paymentHistoryList(paymentRegistrationDto); 
 | 
        return getDataTable(list); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 查询供应商往来记录 
 | 
     * @param supplierId 
 | 
     * @return 
 | 
     */ 
 | 
    @GetMapping("/getPaymentRecordList/{supplierId}") 
 | 
    public AjaxResult getPaymentRecordList(@PathVariable Long supplierId) { 
 | 
        List<PaymentHistoryRecordVo> paymentRecordList = paymentRegistrationService.getPaymentRecordList(supplierId); 
 | 
        return success(paymentRecordList); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 查询付款登记列表 
 | 
     * 
 | 
     * @param paymentRegistrationDto 付款登记 
 | 
     * @return 付款登记集合 
 | 
     */ 
 | 
    @GetMapping("/paymentHistoryListPage") 
 | 
    public IPage<PaymentRegistrationDto> paymentHistoryListPage(Page page, PaymentRegistrationDto paymentRegistrationDto) { 
 | 
        return paymentRegistrationService.paymentHistoryListPage(page,paymentRegistrationDto); 
 | 
    } 
 | 
} 
 |