huminmin
10 天以前 fb602920a002f6ad0f9d7c68ecdabcda0980fe0c
src/main/java/com/ruoyi/sales/controller/InvoiceLedgerController.java
@@ -1,31 +1,50 @@
package com.ruoyi.sales.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.sales.dto.InvoiceLedgerDto;
import com.ruoyi.sales.dto.InvoiceRegistrationProductDto;
import com.ruoyi.sales.mapper.InvoiceLedgerFileMapper;
import com.ruoyi.sales.mapper.InvoiceRegistrationProductMapper;
import com.ruoyi.sales.pojo.InvoiceRegistrationProduct;
import com.ruoyi.sales.service.InvoiceLedgerService;
import io.jsonwebtoken.lang.Collections;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
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.time.LocalDateTime;
import java.util.List;
@RestController
@RequestMapping("/invoiceLedger")
@Api(tags = "开票台账管理")
public class InvoiceLedgerController {
    @Autowired
    private InvoiceLedgerService invoiceLedgerService;
    @Autowired
    private InvoiceRegistrationProductMapper invoiceRegistrationProductMapper;
    @Autowired
    private InvoiceLedgerFileMapper invoiceLedgerFileMapper;
    /**
     * 开票台账新增
     * @param invoiceLedgerDto
     * @param productDto
     * @return
     */
    @PostMapping("/saveOrUpdate")
    public AjaxResult invoiceLedgerSaveOrUpdate(@RequestBody InvoiceLedgerDto invoiceLedgerDto) {
        invoiceLedgerService.invoiceLedgerSaveOrUpdate(invoiceLedgerDto);
    @ApiOperation("开票台账新增")
    public AjaxResult invoiceLedgerSaveOrUpdate(@RequestBody InvoiceRegistrationProductDto productDto) {
        invoiceLedgerService.invoiceLedgerSaveOrUpdate(productDto);
        return AjaxResult.success();
    }
@@ -35,6 +54,7 @@
     * @return
     */
    @DeleteMapping("/del")
    @ApiOperation("开票台账删除")
    public AjaxResult invoiceLedgerDel(@RequestBody List<Integer> ids) {
        invoiceLedgerService.invoiceLedgerDel(ids);
        return AjaxResult.success();
@@ -47,6 +67,7 @@
     * @return
     */
    @GetMapping("/page")
    @ApiOperation("开票台账分页查询")
    public AjaxResult invoiceLedgerPage(Page page, InvoiceLedgerDto invoiceLedgerDto) {
        return AjaxResult.success(invoiceLedgerService.invoiceLedgerPage(page, invoiceLedgerDto));
    }
@@ -57,9 +78,24 @@
     * @return
     */
    @GetMapping("/fileList")
    @ApiOperation("开票台账文件查询")
    public AjaxResult invoiceLedgerFileList(Integer invoiceLedgerId) {
        return AjaxResult.success(invoiceLedgerService.invoiceLedgerFileList(invoiceLedgerId));
    }
    /**
     * 开票台账文件删除
     */
    @DeleteMapping("/delFile")
    @ApiOperation("开票台账文件删除")
    @Log(title = "开票台账", businessType = BusinessType.DELETE)
    public AjaxResult invoiceLedgerDelFile(@RequestBody List<Integer> ids) {
        if(Collections.isEmpty(ids)) return AjaxResult.error("请选择要删除的文件");
        invoiceLedgerFileMapper.deleteBatchIds(ids);
        return AjaxResult.success();
    }
    /**
     * 开票台账文件上传
@@ -67,6 +103,7 @@
     * @return
     */
    @PostMapping("/uploadFile")
    @ApiOperation("开票台账文件上传")
    public AjaxResult invoiceLedgerUploadFile(MultipartFile file) {
        try {
            return AjaxResult.success(invoiceLedgerService.invoiceLedgerUploadFile(file));
@@ -78,12 +115,13 @@
    /**
     * 开票台账导出
     * @param response
     * @param invoiceLedgerDto
     * @param invoiceRegistrationProductDto
     * @return
     */
    @PostMapping("/export")
    public void invoiceLedgerExport(HttpServletResponse response, InvoiceLedgerDto invoiceLedgerDto) {
        invoiceLedgerService.invoiceLedgerExport(response, invoiceLedgerDto);
    @ApiOperation("开票台账导出")
    public void invoiceLedgerExport(HttpServletResponse response, InvoiceRegistrationProductDto invoiceRegistrationProductDto) {
        invoiceLedgerService.invoiceLedgerExport(response, invoiceRegistrationProductDto);
    }
    /**
@@ -92,6 +130,7 @@
     * @return
     */
    @GetMapping("/info")
    @ApiOperation("开票台账详情")
    public AjaxResult invoiceLedgerInfo(Integer id) {
        return AjaxResult.success(invoiceLedgerService.invoiceLedgerDetail(id));
    }
@@ -102,6 +141,7 @@
     * @return
     */
    @PostMapping("/commitFile")
    @ApiOperation("文件提交")
    public AjaxResult invoiceLedgerCommitFile(@RequestBody InvoiceLedgerDto invoiceLedgerDto) {
        try {
            invoiceLedgerService.invoiceLedgerCommitFile(invoiceLedgerDto);
@@ -117,8 +157,75 @@
     * @return
     */
    @GetMapping("/list")
    @ApiOperation("开票台账查询")
    public AjaxResult invoiceLedgerList(InvoiceLedgerDto invoiceLedgerDto) {
        return AjaxResult.success(invoiceLedgerService.invoiceLedgerList(invoiceLedgerDto));
    }
    /**
     * 客户销售记录
     * @param page
     * @param invoiceLedgerDto
     * @return
     */
    @GetMapping("/salesAccount")
    @ApiOperation("客户销售记录")
    public AjaxResult invoiceLedgerSalesAccount(Page page, InvoiceLedgerDto invoiceLedgerDto) {
        return AjaxResult.success(invoiceLedgerService.invoiceLedgerSalesAccount(page,invoiceLedgerDto));
    }
    /**
     * 本月开票金额
     */
    @GetMapping("/getInvoiceAmount")
    @ApiOperation("本月开票金额")
    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")
    @ApiOperation("产品开票记录查询")
    public AjaxResult registrationProductPage(Page page, InvoiceRegistrationProductDto registrationProductDto) {
        return AjaxResult.success(invoiceLedgerService.registrationProductPage(page,registrationProductDto));
    }
    /**
     * 产品开票详情
     * @param id
     * @return
     */
    @GetMapping("/invoiceLedgerProductInfo")
    @ApiOperation("产品开票详情")
    public AjaxResult invoiceLedgerProductDetail(Integer id) {
        return AjaxResult.success(invoiceLedgerService.invoiceLedgerProductDetail(id));
    }
    /**
     * 开票台账删除
     * @param invoiceRegistrationProductId
     * @return
     */
    @DeleteMapping("delInvoiceLedger/{invoiceRegistrationProductId}")
    @ApiOperation("开票台账删除")
    public AjaxResult delInvoiceLedger(@PathVariable Integer invoiceRegistrationProductId) {
        try {
            invoiceLedgerService.delInvoiceLedger(invoiceRegistrationProductId);
            return AjaxResult.success();
        }catch (Exception e) {
            return AjaxResult.error(e.getMessage());
        }
    }
}