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 | 82 ++++++++++++++++++++++++++++++++++++----- 1 files changed, 72 insertions(+), 10 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 0e57fff..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,22 +1,29 @@ package com.ruoyi.web.controller.api; -import com.mysql.cj.x.protobuf.MysqlxDatatypes; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.basic.PageInfo; -import com.ruoyi.common.core.domain.AjaxResult; 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 java.util.List; +import javax.servlet.http.HttpServletResponse; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.*; + /** * <p> @@ -31,14 +38,19 @@ public class TInvoiceController { @Autowired private TInvoiceService invoiceService; - @PreAuthorize("@ss.hasPermi('system:invoice:list')") + @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('system:invoice:delete')") + @PreAuthorize("@ss.hasPermi('invoice:list:del')") @Log(title = "开票信息-删除开票", businessType = BusinessType.DELETE) @ApiOperation(value = "删除开票") @DeleteMapping(value = "/deleteById") @@ -46,11 +58,61 @@ return R.ok(invoiceService.removeById(id)); } - // @ApiOperation(value = "关联账单信息") - // @GetMapping(value = "/getBillByInvoiceId") - // public AjaxResult<List<TBill>> getBillByInvoiceId(String invoiceId){ - // return AjaxResult.success(invoiceService.getBillByInvoiceId(invoiceId)); - // } + @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