| | |
| | | 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 javax.servlet.http.HttpServletResponse; |
| | | import java.nio.file.Path; |
| | | import java.nio.file.Paths; |
| | | import java.util.*; |
| | | |
| | | |
| | | /** |
| | |
| | | private TInvoiceService invoiceService; |
| | | @Autowired |
| | | TBillService tBillService; |
| | | @PreAuthorize("@ss.hasPermi('system:invoice:list')") |
| | | @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") |
| | |
| | | } |
| | | |
| | | @ApiOperation(value = "关联账单信息") |
| | | @GetMapping(value = "/getBillByInvoiceId") |
| | | public R<PageInfo<TBill>> getBillByInvoiceId(String invoiceId){ |
| | | @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) { |
| | | TInvoice tInvoice = new TInvoice(); |
| | | tInvoice.setId(query.getId()); |
| | | tInvoice.setInvoiceVoucher(query.getInvoiceVoucher()); |
| | | tInvoice.setInvoiceTime(query.getInvoiceTime()); |
| | | tInvoice.setStatus(2); |
| | | return R.ok(invoiceService.updateById(tInvoice)); |
| | | } |
| | | 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)); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |