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.PaymentRegistrationDto; 
 | 
import com.ruoyi.purchase.dto.ProductRecordDto; 
 | 
import com.ruoyi.purchase.dto.TicketRegistrationDto; 
 | 
import com.ruoyi.purchase.pojo.PaymentRegistration; 
 | 
import com.ruoyi.purchase.pojo.ProductRecord; 
 | 
import com.ruoyi.purchase.pojo.TicketRegistration; 
 | 
import com.ruoyi.purchase.service.IPaymentRegistrationService; 
 | 
import com.ruoyi.purchase.service.IProductRecordService; 
 | 
import com.ruoyi.purchase.service.ITicketRegistrationService; 
 | 
import com.ruoyi.purchase.service.impl.PaymentRegistrationServiceImpl; 
 | 
import com.ruoyi.sales.service.ICommonFileService; 
 | 
import io.swagger.annotations.Api; 
 | 
import io.swagger.annotations.ApiModelProperty; 
 | 
import io.swagger.annotations.ApiOperation; 
 | 
import lombok.AllArgsConstructor; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.security.core.parameters.P; 
 | 
import org.springframework.transaction.annotation.Transactional; 
 | 
import org.springframework.web.bind.annotation.*; 
 | 
import org.springframework.web.multipart.MultipartFile; 
 | 
  
 | 
import javax.servlet.http.HttpServletResponse; 
 | 
import java.io.IOException; 
 | 
import java.util.List; 
 | 
  
 | 
/** 
 | 
 * 来票登记Controller 
 | 
 * 
 | 
 * @author ruoyi 
 | 
 * @date 2025-05-13 
 | 
 */ 
 | 
@RestController 
 | 
@RequestMapping("/purchase/registration") 
 | 
@AllArgsConstructor 
 | 
@Api(tags = "来票登记") 
 | 
public class TicketRegistrationController extends BaseController { 
 | 
  
 | 
    private final PaymentRegistrationServiceImpl paymentRegistrationServiceImpl; 
 | 
    private ITicketRegistrationService ticketRegistrationService; 
 | 
  
 | 
    private ICommonFileService commonFileService; 
 | 
  
 | 
    private IProductRecordService productRecordService; 
 | 
  
 | 
    @Autowired 
 | 
    private IPaymentRegistrationService paymentRegistrationService; 
 | 
  
 | 
    /** 
 | 
     * 查询来票登记列表 
 | 
     */ 
 | 
    @GetMapping("/list") 
 | 
    public TableDataInfo list(TicketRegistration ticketRegistration) { 
 | 
        startPage(); 
 | 
        List<TicketRegistration> list = ticketRegistrationService.selectTicketRegistrationList(ticketRegistration); 
 | 
        return getDataTable(list); 
 | 
    } 
 | 
  
 | 
    @ApiOperation("根据id查询付款流水信息") 
 | 
    @GetMapping("/getById") 
 | 
    public List<PaymentRegistrationDto> getById( Long id ) { 
 | 
        return ticketRegistrationService.getPaymentRegistrationDtoById(id); 
 | 
    } 
 | 
  
 | 
    @ApiOperation("根据id查询付款流水") 
 | 
    @GetMapping("/getPaymentRegistrationById") 
 | 
    public AjaxResult getPaymentRegistrationById(Long id) { 
 | 
        PaymentRegistration byId = paymentRegistrationService.getById(id); 
 | 
        return AjaxResult.success(byId); 
 | 
    } 
 | 
  
 | 
    @ApiOperation("修改付款流水") 
 | 
    @PutMapping("/updatePaymentRegistration") 
 | 
    @Log(title = "修改付款流水", businessType = BusinessType.UPDATE) 
 | 
    public AjaxResult updatePaymentRegistration(@RequestBody PaymentRegistration paymentRegistratio) { 
 | 
        return AjaxResult.success(paymentRegistrationService.updatePaymentRegistration(paymentRegistratio)); 
 | 
    } 
 | 
  
 | 
    @ApiOperation("删除付款流水") 
 | 
    @DeleteMapping("/delPaymentRegistration") 
 | 
    public AjaxResult delPaymentRegistration(@RequestBody Long id) { 
 | 
        return toAjax(paymentRegistrationService.delPaymentRegistration(id)); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 导出来票登记列表 
 | 
     */ 
 | 
    @Log(title = "来票登记", businessType = BusinessType.EXPORT) 
 | 
    @PostMapping("/export") 
 | 
    public void export(HttpServletResponse response, TicketRegistration ticketRegistration) { 
 | 
        List<TicketRegistration> list = ticketRegistrationService.selectTicketRegistrationList(ticketRegistration); 
 | 
        ExcelUtil<TicketRegistration> util = new ExcelUtil<TicketRegistration>(TicketRegistration.class); 
 | 
        util.exportExcel(response, list, "来票登记数据"); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 付款登记导出 
 | 
     */ 
 | 
    @Log(title = "付款登记导出", businessType = BusinessType.EXPORT) 
 | 
    @PostMapping("/exportOne") 
 | 
    public void exportOne(HttpServletResponse response, TicketRegistration ticketRegistration) { 
 | 
        Page page = new Page<>(-1, -1); 
 | 
        IPage<TicketRegistration> ticketRegistrationIPage = listPage(page, ticketRegistration); 
 | 
        ExcelUtil<TicketRegistration> util = new ExcelUtil<TicketRegistration>(TicketRegistration.class); 
 | 
        util.exportExcel(response, ticketRegistrationIPage.getRecords(), "付款登记导出"); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 查询来票登记和产品父子列表 
 | 
     */ 
 | 
    @GetMapping("/getRegistrationById") 
 | 
    public TicketRegistrationDto getRegistrationById(TicketRegistrationDto ticketRegistrationDto) { 
 | 
        return ticketRegistrationService.getRegistrationById(ticketRegistrationDto); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 新增修改来票登记 
 | 
     */ 
 | 
    @Log(title = "来票登记", businessType = BusinessType.INSERT) 
 | 
    @PostMapping("/addOrUpdateRegistration") 
 | 
    public AjaxResult addOrUpdateRegistration(@RequestBody TicketRegistrationDto ticketRegistrationDto) throws IOException { 
 | 
        return toAjax(ticketRegistrationService.addOrUpdateRegistration(ticketRegistrationDto)); 
 | 
    } 
 | 
  
 | 
  
 | 
    @GetMapping("/getProductRecordById") 
 | 
    public AjaxResult getProductRecordById(Long id) { 
 | 
        if (id == null) { 
 | 
            return AjaxResult.error("参数错误"); 
 | 
        } 
 | 
        return AjaxResult.success(productRecordService.getProductRecordById(id)); 
 | 
    } 
 | 
  
 | 
    @ApiModelProperty("修改来票登记") 
 | 
    @PostMapping("/updateRegistration") 
 | 
    public AjaxResult updateRegistration(@RequestBody ProductRecordDto productRecordDto) { 
 | 
  
 | 
        return productRecordService.updateRecord(productRecordDto); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 删除来票登记(来票台账) 
 | 
     */ 
 | 
    @Log(title = "删除来票登记(来票台账)", businessType = BusinessType.DELETE) 
 | 
    @DeleteMapping("/delRegistration") 
 | 
    @Transactional(rollbackFor = Exception.class) 
 | 
    public AjaxResult delRegistration(@RequestBody Long[] ids) { 
 | 
        return toAjax(ticketRegistrationService.delRegistration(ids)); 
 | 
    } 
 | 
  
 | 
    @PostMapping("/upload") 
 | 
    public AjaxResult uploadFile(MultipartFile file, Long id, Integer type) { 
 | 
        try { 
 | 
            return AjaxResult.success(commonFileService.uploadFile(file, id, type)); 
 | 
        } catch (Exception e) { 
 | 
            return AjaxResult.error(e.getMessage()); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 查询产品信息开票记录列表 
 | 
     */ 
 | 
    @GetMapping("/productRecordList") 
 | 
    public List<ProductRecord> productRecordList(TicketRegistrationDto ticketRegistrationDto) { 
 | 
        List<ProductRecord> list = productRecordService.selectProductRecordList(ticketRegistrationDto); 
 | 
        return list; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 分页查询产品信息开票记录列表 
 | 
     */ 
 | 
    @GetMapping("/productRecordPage") 
 | 
    public AjaxResult productRecordPage(Page page, TicketRegistrationDto ticketRegistrationDto) { 
 | 
  
 | 
        IPage<ProductRecordDto> list = productRecordService.productRecordPage(page,ticketRegistrationDto); 
 | 
        return AjaxResult.success(list); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 查询发票号 
 | 
     */ 
 | 
    @GetMapping("/getTicketNo") 
 | 
    public AjaxResult getTicketNo(TicketRegistrationDto ticketRegistrationDto) { 
 | 
        return AjaxResult.success(ticketRegistrationService.getTicketNo(ticketRegistrationDto)); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 查询来票登记列表 
 | 
     */ 
 | 
    @GetMapping("/listPage") 
 | 
    public IPage<TicketRegistration> listPage(Page page, TicketRegistration ticketRegistration) { 
 | 
        return ticketRegistrationService.selectTicketRegistrationListPage(page,ticketRegistration); 
 | 
    } 
 | 
  
 | 
    @ApiModelProperty("根据id查询来漂登记") 
 | 
    @GetMapping("/getPuargeById") 
 | 
    public AjaxResult getPuargeById(Long id) { 
 | 
        return AjaxResult.success(ticketRegistrationService.getPuargeById( id)); 
 | 
    } 
 | 
  
 | 
  
 | 
  
 | 
} 
 |