package com.ruoyi.sales.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.sales.dto.InvoiceLedgerDto; import com.ruoyi.sales.dto.InvoiceRegistrationProductDto; import com.ruoyi.sales.mapper.InvoiceRegistrationProductMapper; import com.ruoyi.sales.pojo.InvoiceRegistrationProduct; import com.ruoyi.sales.service.InvoiceLedgerService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; import java.util.List; @RestController @RequestMapping("/invoiceLedger") public class InvoiceLedgerController { @Autowired private InvoiceLedgerService invoiceLedgerService; @Autowired private InvoiceRegistrationProductMapper invoiceRegistrationProductMapper; /** * 开票台账新增 * @param productDto * @return */ @PostMapping("/saveOrUpdate") public AjaxResult invoiceLedgerSaveOrUpdate(@RequestBody InvoiceRegistrationProductDto productDto) { invoiceLedgerService.invoiceLedgerSaveOrUpdate(productDto); return AjaxResult.success(); } /** * 开票台账删除 * @param ids * @return */ @DeleteMapping("/del") public AjaxResult invoiceLedgerDel(@RequestBody List ids) { invoiceLedgerService.invoiceLedgerDel(ids); return AjaxResult.success(); } /** * 开票台账分页查询 * @param page * @param invoiceLedgerDto * @return */ @GetMapping("/page") public AjaxResult invoiceLedgerPage(Page page, InvoiceLedgerDto invoiceLedgerDto) { return AjaxResult.success(invoiceLedgerService.invoiceLedgerPage(page, invoiceLedgerDto)); } /** * 开票台账文件查询 * @param invoiceLedgerId * @return */ @GetMapping("/fileList") public AjaxResult invoiceLedgerFileList(Integer invoiceLedgerId) { return AjaxResult.success(invoiceLedgerService.invoiceLedgerFileList(invoiceLedgerId)); } /** * 开票台账文件上传 * @param file * @return */ @PostMapping("/uploadFile") public AjaxResult invoiceLedgerUploadFile(MultipartFile file) { try { return AjaxResult.success(invoiceLedgerService.invoiceLedgerUploadFile(file)); }catch (Exception e) { return AjaxResult.error(e.getMessage()); } } /** * 开票台账导出 * @param response * @param invoiceRegistrationProductDto * @return */ @PostMapping("/export") public void invoiceLedgerExport(HttpServletResponse response, InvoiceRegistrationProductDto invoiceRegistrationProductDto) { invoiceLedgerService.invoiceLedgerExport(response, invoiceRegistrationProductDto); } /** * 开票台账详情 * @param id * @return */ @GetMapping("/info") public AjaxResult invoiceLedgerInfo(Integer id) { return AjaxResult.success(invoiceLedgerService.invoiceLedgerDetail(id)); } /** * 文件提交 * @param invoiceLedgerDto * @return */ @PostMapping("/commitFile") public AjaxResult invoiceLedgerCommitFile(@RequestBody InvoiceLedgerDto invoiceLedgerDto) { try { invoiceLedgerService.invoiceLedgerCommitFile(invoiceLedgerDto); return AjaxResult.success(); }catch (Exception e) { return AjaxResult.error(e.getMessage()); } } /** * 开票台账查询 * @param invoiceLedgerDto * @return */ @GetMapping("/list") public AjaxResult invoiceLedgerList(InvoiceLedgerDto invoiceLedgerDto) { return AjaxResult.success(invoiceLedgerService.invoiceLedgerList(invoiceLedgerDto)); } /** * 客户销售记录 * @param page * @param invoiceLedgerDto * @return */ @GetMapping("/salesAccount") public AjaxResult invoiceLedgerSalesAccount(Page page, InvoiceLedgerDto invoiceLedgerDto) { return AjaxResult.success(invoiceLedgerService.invoiceLedgerSalesAccount(page,invoiceLedgerDto)); } /** * 本月开票金额 */ @GetMapping("/getInvoiceAmount") public AjaxResult getInvoiceAmount() { try { BigDecimal amount = invoiceLedgerService.getInvoiceAmount(); return AjaxResult.success(amount != null ? amount : BigDecimal.ZERO); } catch (Exception e) { return AjaxResult.error("获取开票金额失败:" + e.getMessage()); } } /** * 产品开票记录查询 * @param page * @param registrationProductDto * @return */ @GetMapping("/registrationProductPage") public AjaxResult registrationProductPage(Page page, InvoiceRegistrationProductDto registrationProductDto) { return AjaxResult.success(invoiceLedgerService.registrationProductPage(page,registrationProductDto)); } /** * 产品开票详情 * @param id * @return */ @GetMapping("/invoiceLedgerProductInfo") public AjaxResult invoiceLedgerProductDetail(Integer id) { return AjaxResult.success(invoiceLedgerService.invoiceLedgerProductDetail(id)); } }