From 1fad0578c97abbb7fc30f59eb1de0f23f08ddde1 Mon Sep 17 00:00:00 2001
From: zhangmei <645025773@qq.com>
Date: 星期四, 27 三月 2025 15:21:15 +0800
Subject: [PATCH] 流水、开票营业部权限

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInvoiceController.java |  101 +++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 99 insertions(+), 2 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInvoiceController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInvoiceController.java
index b6f8562..1acd81e 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInvoiceController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInvoiceController.java
@@ -1,9 +1,29 @@
 package com.ruoyi.web.controller.api;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.TencentMailUtil;
+import com.ruoyi.system.dto.TBillDto;
+import com.ruoyi.system.model.TBill;
+import com.ruoyi.system.model.TInvoice;
+import com.ruoyi.system.query.TInvoiceQuery;
+import com.ruoyi.system.service.TBillService;
+import com.ruoyi.system.service.TInvoiceService;
+import com.ruoyi.web.controller.tool.TencentCosUtil;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
 
-import org.springframework.web.bind.annotation.RestController;
+import javax.servlet.http.HttpServletResponse;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.*;
+
 
 /**
  * <p>
@@ -16,6 +36,83 @@
 @RestController
 @RequestMapping("/t-invoice")
 public class TInvoiceController {
+    @Autowired
+    private TInvoiceService invoiceService;
+    @Autowired
+    TBillService tBillService;
+    @Autowired
+    TencentCosUtil tencentCosUtil;
+    @PreAuthorize("@ss.hasPermi('invoice:list')")
+    @ApiOperation(value = "获取开票列表")
+    @PostMapping("/list")
+    public R<PageInfo<TInvoice>> list(@RequestBody TInvoiceQuery query) {
+        query.setBusinessDeptId(SecurityUtils.getBusinessDeptId());
+        return R.ok(invoiceService.pageList(query));
+    }
 
+    @PreAuthorize("@ss.hasPermi('invoice:list:del')")
+    @Log(title = "开票信息-删除开票", businessType = BusinessType.DELETE)
+    @ApiOperation(value = "删除开票")
+    @DeleteMapping(value = "/deleteById")
+    public R<Boolean> deleteById(@RequestParam String id) {
+        return R.ok(invoiceService.removeById(id));
+    }
+
+    @ApiOperation(value = "关联账单信息")
+    @GetMapping(value = "/getBillByInvoiceId/{invoiceId}")
+    public R<PageInfo<TBillDto>> getBillByInvoiceId(@PathVariable String invoiceId){
+        return R.ok(tBillService.getBillByInvoiceId(invoiceId));
+    }
+
+    @ApiOperation(value = "上传开票凭证")
+    @PostMapping("/uploadVoucher")
+    @PreAuthorize("@ss.hasPermi('invoice:list:payment')")
+    public R<Boolean> uploadVoucher(@RequestBody TInvoiceQuery query) {
+        String invoiceVoucher = query.getInvoiceVoucher();
+        String invoiceVoucherName = query.getInvoiceVoucherName();
+        if (invoiceVoucher == null || invoiceVoucherName == null) {
+            return R.fail("请上传发票文件");
+        }
+        String[] voucherUrls = invoiceVoucher.split(",");
+        String[] voucherNames = invoiceVoucherName.split(",");
+
+        // 确保两个数组长度一致
+        int length = Math.min(voucherUrls.length, voucherNames.length);
+        if (length == 0) {
+            return R.fail("请上传发票文件");
+        }
+        // 构建附件列表
+        List<Map<String, String>> attachments = new ArrayList<>(length);
+        for (int i = 0; i < length; i++) {
+            String voucherUrl = voucherUrls[i];
+            String fileName = voucherNames[i];
+            Map<String, String> attachment = new HashMap<>(2); // 初始容量为2,避免扩容
+            String tempDir = System.getProperty("java.io.tmpdir");
+            Path filePath = Paths.get(tempDir, fileName);
+            // 保存到临时目录
+            tencentCosUtil.download(voucherUrl,filePath.toString(),fileName);
+
+            attachment.put("filePath", filePath.toString());
+            attachment.put("fileName", fileName);
+            attachments.add(attachment);
+        }
+        return R.ok(invoiceService.uploadVoucher(query,attachments));
+    }
 }
 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

--
Gitblit v1.7.1