From bb1d7eeda426e66393cf4403cb3ef082db696bd9 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期五, 07 八月 2026 15:42:19 +0800
Subject: [PATCH] feat(report): 新增会计报表功能并完善设备维护和首页统计

---
 src/main/java/com/ruoyi/purchase/controller/AccountingReportController.java |   80 +++++++++++++++++++++++++++++++++-------
 1 files changed, 66 insertions(+), 14 deletions(-)

diff --git a/src/main/java/com/ruoyi/purchase/controller/AccountingReportController.java b/src/main/java/com/ruoyi/purchase/controller/AccountingReportController.java
index 08733c7..bc2aa48 100644
--- a/src/main/java/com/ruoyi/purchase/controller/AccountingReportController.java
+++ b/src/main/java/com/ruoyi/purchase/controller/AccountingReportController.java
@@ -2,40 +2,92 @@
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.basic.service.ISupplierService;
+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.domain.AjaxResult;
-import com.ruoyi.purchase.dto.InvoicePurchaseDto;
-import com.ruoyi.purchase.dto.InvoicePurchaseReportDto;
-import com.ruoyi.purchase.pojo.InvoicePurchase;
-import com.ruoyi.purchase.service.IInvoicePurchaseService;
-import io.swagger.annotations.Api;
+import com.ruoyi.framework.web.domain.R;
+import com.ruoyi.purchase.dto.VatDto;
+import com.ruoyi.purchase.dto.VatSummaryDto;
+import com.ruoyi.purchase.service.PurchaseReportService;
+import com.ruoyi.purchase.vo.PurchaseReportVo;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.servlet.http.HttpServletResponse;
 import lombok.AllArgsConstructor;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 @RestController
-@Api(tags = "閲囪喘鎶ヨ〃")
+@Tag(name = "閲囪喘鎶ヨ〃")
 @RequestMapping("/purchase/report")
 @AllArgsConstructor
 public class AccountingReportController {
 
-    @Autowired
-    private IInvoicePurchaseService invoicePurchaseService;
+    private final ISupplierService supplierService;
+    private final PurchaseReportService purchaseReportService;
 
     @GetMapping("/list")
     @Log(title = "閲囪喘鎶ヨ〃-椤圭洰鍒╂鼎", businessType = BusinessType.OTHER)
-    public AjaxResult list(Page page, InvoicePurchaseReportDto invoicePurchaseReportDto) {
-        IPage<InvoicePurchaseReportDto> result =invoicePurchaseService.listPurchaseReport(page, invoicePurchaseReportDto);
-        return AjaxResult.success(result);
+    public R list(Page page, String customerName) {
+        return R.ok(purchaseReportService.list(page, customerName));
+    }
+
+    @Log(title = "閲囪喘鎶ヨ〃-椤圭洰鍒╂鼎瀵煎嚭", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    @Operation(summary = "閲囪喘鎶ヨ〃-椤圭洰鍒╂鼎瀵煎嚭")
+    public void export(HttpServletResponse response, String customerName) {
+        List<PurchaseReportVo> list = purchaseReportService.list(new Page(1, -1), customerName).getRecords();
+        ExcelUtil<PurchaseReportVo> util = new ExcelUtil<>(PurchaseReportVo.class);
+        util.exportExcel(response, list, "椤圭洰鍒╂鼎");
     }
 
     @Log(title = "閲囪喘鎶ヨ〃-澧炲�肩◣姣斿", businessType = BusinessType.OTHER)
     @GetMapping("/listVat")
-    public AjaxResult listVat(Page page, InvoicePurchase invoicePurchase) {
-        IPage<InvoicePurchase> result = invoicePurchaseService.listVat(page, invoicePurchase);
+    public R listVat(Page page, String month, String type) {
+        return R.ok(purchaseReportService.listVat(page, month, type));
+    }
+
+    @Log(title = "閲囪喘鎶ヨ〃-澧炲�肩◣姣斿", businessType = BusinessType.EXPORT)
+    @PostMapping("/exportTwo")
+    @Operation(summary = "閲囪喘鎶ヨ〃-澧炲�肩◣姣斿瀵煎嚭")
+    public void exportTwo(HttpServletResponse response, String month) {
+        List<VatDto> list = purchaseReportService.listVat(new Page(1, -1), month, null).getRecords();
+        ExcelUtil<VatDto> util = new ExcelUtil<>(VatDto.class);
+        util.exportExcel(response, list, "澧炲�肩◣姣斿");
+    }
+
+    @Log(title = "閲囪喘鎶ヨ〃-澧炲�肩◣鍥捐〃鏁版嵁", businessType = BusinessType.OTHER)
+    @GetMapping("/vatChart")
+    @Operation(summary = "澧炲�肩◣杩涢攢椤瑰姣斿浘琛ㄦ暟鎹�")
+    public R vatChart(String year) {
+        List<VatSummaryDto> list = purchaseReportService.vatSummary(year);
+        return R.ok(list);
+    }
+
+    @GetMapping("/listVatDetail")
+    @Operation(summary = "澧炲�肩◣鏄庣粏-鎸夊彂绁�/璁㈠崟灞曠ず")
+    public AjaxResult listVatDetail(Page page, String month) {
+        IPage<VatDto> result = purchaseReportService.listVatDetail(page, month);
         return AjaxResult.success(result);
     }
+
+    @GetMapping("/supplierTransactions")
+    @Log(title = "渚涘簲鍟嗗線鏉�", businessType = BusinessType.OTHER)
+    @Operation(summary = "渚涘簲鍟嗗線鏉�")
+    public R supplierTransactions(Page page, String supplierName) {
+        return R.ok(supplierService.supplierTransactions(page, supplierName));
+    }
+
+    @GetMapping("/supplierTransactionsDetails")
+    @Log(title = "渚涘簲鍟嗗線鏉ユ槑缁�", businessType = BusinessType.OTHER)
+    @Operation(summary = "渚涘簲鍟嗗線鏉ユ槑缁�")
+    public R supplierTransactionsDetails(Page page, Long supplierId) {
+        return R.ok(supplierService.supplierTransactionsDetails(page, supplierId));
+    }
 }

--
Gitblit v1.9.3