From 390b4243dff25a50f1d3302228e7dd16e9c2f18a Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期三, 14 五月 2025 17:56:24 +0800
Subject: [PATCH] 1.合同金额优化 2.来票台账
---
src/main/java/com/ruoyi/purchase/mapper/PurchaseLedgerMapper.java | 4
src/main/java/com/ruoyi/purchase/service/IInvoicePurchaseService.java | 21 +++
src/main/java/com/ruoyi/purchase/service/impl/InvoicePurchaseServiceImpl.java | 45 +++++++
src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java | 4
src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java | 17 ++
src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml | 12 ++
src/main/java/com/ruoyi/purchase/pojo/TicketRegistration.java | 6 +
src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java | 1
src/main/java/com/ruoyi/purchase/controller/InvoicePurchaseController.java | 73 ++++++++++++
src/main/java/com/ruoyi/purchase/dto/InvoicePurchaseDto.java | 7 +
src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java | 2
src/main/java/com/ruoyi/purchase/mapper/InvoicePurchaseMapper.java | 14 ++
src/main/java/com/ruoyi/purchase/pojo/InvoicePurchase.java | 98 ++++++++++++++++
13 files changed, 299 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/ruoyi/purchase/controller/InvoicePurchaseController.java b/src/main/java/com/ruoyi/purchase/controller/InvoicePurchaseController.java
new file mode 100644
index 0000000..256f9c5
--- /dev/null
+++ b/src/main/java/com/ruoyi/purchase/controller/InvoicePurchaseController.java
@@ -0,0 +1,73 @@
+package com.ruoyi.purchase.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.purchase.pojo.InvoicePurchase;
+import com.ruoyi.purchase.service.IInvoicePurchaseService;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
+import com.ruoyi.framework.web.controller.BaseController;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.framework.web.page.TableDataInfo;
+
+/**
+ * 鍙戠エ淇℃伅Controller
+ *
+ * @author ruoyi
+ * @date 2025-05-14
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/purchase/invoice")
+public class InvoicePurchaseController extends BaseController {
+
+ private IInvoicePurchaseService invoicePurchaseService;
+
+ /**
+ * 鏌ヨ鍙戠エ淇℃伅鍒楄〃
+ */
+ @GetMapping("/list")
+ public TableDataInfo list(InvoicePurchase invoicePurchase) {
+ startPage();
+ List<InvoicePurchase> list = invoicePurchaseService.selectInvoicePurchaseList(invoicePurchase);
+ return getDataTable(list);
+ }
+
+ /**
+ * 瀵煎嚭鍙戠エ淇℃伅鍒楄〃
+ */
+ @Log(title = "鍙戠エ淇℃伅", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, InvoicePurchase invoicePurchase) {
+ List<InvoicePurchase> list = invoicePurchaseService.selectInvoicePurchaseList(invoicePurchase);
+ ExcelUtil<InvoicePurchase> util = new ExcelUtil<InvoicePurchase>(InvoicePurchase.class);
+ util.exportExcel(response, list, "鍙戠エ淇℃伅鏁版嵁");
+ }
+
+ /**
+ * 鏂板淇敼鍙戠エ淇℃伅
+ */
+ @Log(title = "鍙戠エ淇℃伅", businessType = BusinessType.INSERT)
+ @PostMapping ("/addOrUpdateInvoice")
+ public AjaxResult addOrUpdateInvoice(@RequestBody InvoicePurchase invoicePurchase) {
+ return toAjax(invoicePurchaseService.addOrUpdateInvoice(invoicePurchase));
+ }
+
+ /**
+ * 鍒犻櫎鍙戠エ淇℃伅
+ */
+ @Log(title = "鍙戠エ淇℃伅", businessType = BusinessType.DELETE)
+ @DeleteMapping("/delInvoice")
+ public AjaxResult remove(@RequestBody Long[] ids) {
+ return toAjax(invoicePurchaseService.delInvoice(ids));
+ }
+}
diff --git a/src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java b/src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java
index 1e210f0..3eddb4c 100644
--- a/src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java
+++ b/src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java
@@ -69,7 +69,7 @@
}
/**
- * 鏌ヨ閿�鍞彴璐﹀拰浜у搧鐖跺瓙鍒楄〃
+ * 鏌ヨ閲囪喘鍙拌处鍜屼骇鍝佺埗瀛愬垪琛�
*/
@GetMapping("/getPurchaseById")
public PurchaseLedgerDto getPurchaseById(PurchaseLedgerDto purchaseLedgerDto) {
diff --git a/src/main/java/com/ruoyi/purchase/dto/InvoicePurchaseDto.java b/src/main/java/com/ruoyi/purchase/dto/InvoicePurchaseDto.java
new file mode 100644
index 0000000..8a51b96
--- /dev/null
+++ b/src/main/java/com/ruoyi/purchase/dto/InvoicePurchaseDto.java
@@ -0,0 +1,7 @@
+package com.ruoyi.purchase.dto;
+
+import lombok.Data;
+
+@Data
+public class InvoicePurchaseDto {
+}
diff --git a/src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java b/src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java
index 6a9b1e8..cddb7b8 100644
--- a/src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java
+++ b/src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java
@@ -91,6 +91,10 @@
private List<String> tempFileIds;
private List<SalesLedgerFile> SalesLedgerFiles;
+ /**
+ * 涓氬姟鍛樻墜鏈哄彿
+ */
+ private String phoneNumber;
/**
* 涓氬姟鍛榠d
diff --git a/src/main/java/com/ruoyi/purchase/mapper/InvoicePurchaseMapper.java b/src/main/java/com/ruoyi/purchase/mapper/InvoicePurchaseMapper.java
new file mode 100644
index 0000000..39f245a
--- /dev/null
+++ b/src/main/java/com/ruoyi/purchase/mapper/InvoicePurchaseMapper.java
@@ -0,0 +1,14 @@
+package com.ruoyi.purchase.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.purchase.pojo.InvoicePurchase;
+
+/**
+ * 鍙戠エ淇℃伅Mapper鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2025-05-14
+ */
+public interface InvoicePurchaseMapper extends BaseMapper<InvoicePurchase> {
+}
diff --git a/src/main/java/com/ruoyi/purchase/mapper/PurchaseLedgerMapper.java b/src/main/java/com/ruoyi/purchase/mapper/PurchaseLedgerMapper.java
index 1328588..dc2b362 100644
--- a/src/main/java/com/ruoyi/purchase/mapper/PurchaseLedgerMapper.java
+++ b/src/main/java/com/ruoyi/purchase/mapper/PurchaseLedgerMapper.java
@@ -3,6 +3,9 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.purchase.pojo.PurchaseLedger;
+import org.apache.ibatis.annotations.Param;
+
+import java.math.BigDecimal;
/**
* 閲囪喘鍙拌处Mapper鎺ュ彛
@@ -12,4 +15,5 @@
*/
public interface PurchaseLedgerMapper extends BaseMapper<PurchaseLedger> {
+ int updateContractAmountById(@Param("id") Long id, @Param("totalTaxInclusiveAmount") BigDecimal totalTaxInclusiveAmount);
}
diff --git a/src/main/java/com/ruoyi/purchase/pojo/InvoicePurchase.java b/src/main/java/com/ruoyi/purchase/pojo/InvoicePurchase.java
new file mode 100644
index 0000000..5097798
--- /dev/null
+++ b/src/main/java/com/ruoyi/purchase/pojo/InvoicePurchase.java
@@ -0,0 +1,98 @@
+package com.ruoyi.purchase.pojo;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import lombok.Data;
+
+/**
+ * 鍙戠エ淇℃伅瀵硅薄 invoice_purchase
+ *
+ * @author ruoyi
+ * @date 2025-05-14
+ */
+@TableName("invoice_purchase")
+@Data
+public class InvoicePurchase {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 涓婚敭ID
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ /**
+ * 閲囪喘鍚堝悓鍙�
+ */
+ @Excel(name = "閲囪喘鍚堝悓鍙�")
+ private String purchaseContractNo;
+
+ /**
+ * 閿�鍞悎鍚屽彿
+ */
+ @Excel(name = "閿�鍞悎鍚屽彿")
+ private String salesContractNo;
+
+ /**
+ * 渚涘簲鍟嗗悕绉�
+ */
+ @Excel(name = "渚涘簲鍟嗗悕绉�")
+ private String supplierName;
+
+ /**
+ * 鍙戠エ鍙�
+ */
+ @Excel(name = "鍙戠エ鍙�")
+ private String invoiceNumber;
+
+ /**
+ * 鍙戠エ閲戦锛堝厓锛�
+ */
+ @Excel(name = "鍙戠エ閲戦", readConverterExp = "鍏�=")
+ private BigDecimal invoiceAmount;
+
+ /**
+ * 绋庣巼
+ */
+ @Excel(name = "绋庣巼")
+ private BigDecimal taxRate;
+
+ /**
+ * 寮�绁ㄤ汉
+ */
+ @Excel(name = "寮�绁ㄤ汉")
+ private String issuer;
+
+ /**
+ * 寮�绁ㄦ棩鏈�
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "寮�绁ㄦ棩鏈�", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date issueDate;
+
+ /**
+ * 鍙戠エ鏂囦欢锛圥DF鏍煎紡锛�
+ */
+ @Excel(name = "鍙戠エ鏂囦欢", readConverterExp = "P=DF鏍煎紡")
+ private String invoiceFile;
+
+ /**
+ * 鍒涘缓鏃堕棿
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date createdAt;
+
+ /**
+ * 鏇存柊鏃堕棿
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date updatedAt;
+
+ @TableField(fill = FieldFill.INSERT)
+ private Long tenantId;
+
+}
diff --git a/src/main/java/com/ruoyi/purchase/pojo/TicketRegistration.java b/src/main/java/com/ruoyi/purchase/pojo/TicketRegistration.java
index b74d863..1452949 100644
--- a/src/main/java/com/ruoyi/purchase/pojo/TicketRegistration.java
+++ b/src/main/java/com/ruoyi/purchase/pojo/TicketRegistration.java
@@ -1,5 +1,6 @@
package com.ruoyi.purchase.pojo;
+import java.math.BigDecimal;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.*;
@@ -91,6 +92,11 @@
*/
private Long salesLedgerId;
+ /**
+ * 鍚堝悓閲戦锛堜骇鍝佸惈绋庢�讳环锛�
+ */
+ private BigDecimal contractAmount;
+
@TableField(fill = FieldFill.INSERT)
private Long tenantId;
diff --git a/src/main/java/com/ruoyi/purchase/service/IInvoicePurchaseService.java b/src/main/java/com/ruoyi/purchase/service/IInvoicePurchaseService.java
new file mode 100644
index 0000000..ae99e9d
--- /dev/null
+++ b/src/main/java/com/ruoyi/purchase/service/IInvoicePurchaseService.java
@@ -0,0 +1,21 @@
+package com.ruoyi.purchase.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.purchase.pojo.InvoicePurchase;
+
+import java.util.List;
+
+/**
+ * 鍙戠エ淇℃伅Service鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2025-05-14
+ */
+public interface IInvoicePurchaseService extends IService<InvoicePurchase> {
+ List<InvoicePurchase> selectInvoicePurchaseList(InvoicePurchase invoicePurchase);
+
+ int delInvoice(Long[] ids);
+
+ int addOrUpdateInvoice(InvoicePurchase invoicePurchase);
+}
diff --git a/src/main/java/com/ruoyi/purchase/service/impl/InvoicePurchaseServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/InvoicePurchaseServiceImpl.java
new file mode 100644
index 0000000..f9a2487
--- /dev/null
+++ b/src/main/java/com/ruoyi/purchase/service/impl/InvoicePurchaseServiceImpl.java
@@ -0,0 +1,45 @@
+package com.ruoyi.purchase.service.impl;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.purchase.mapper.InvoicePurchaseMapper;
+import com.ruoyi.purchase.pojo.InvoicePurchase;
+import com.ruoyi.purchase.service.IInvoicePurchaseService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 鍙戠エ淇℃伅Service涓氬姟灞傚鐞�
+ *
+ * @author ruoyi
+ * @date 2025-05-14
+ */
+@Service
+@AllArgsConstructor
+public class InvoicePurchaseServiceImpl extends ServiceImpl<InvoicePurchaseMapper, InvoicePurchase> implements IInvoicePurchaseService {
+
+ private InvoicePurchaseMapper invoicePurchaseMapper;
+
+ @Override
+ public List<InvoicePurchase> selectInvoicePurchaseList(InvoicePurchase invoicePurchase) {
+ return invoicePurchaseMapper.selectList(new LambdaQueryWrapper<>());
+ }
+
+ @Override
+ public int delInvoice(Long[] ids) {
+ return invoicePurchaseMapper.deleteBatchIds(Arrays.asList(ids));
+ }
+
+ @Override
+ public int addOrUpdateInvoice(InvoicePurchase invoicePurchase) {
+ if (invoicePurchase.getId() == null) {
+ return invoicePurchaseMapper.insert(invoicePurchase);
+ } else {
+ return invoicePurchaseMapper.updateById(invoicePurchase);
+ }
+ }
+}
diff --git a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
index 1074d31..f49faf8 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -28,6 +28,7 @@
import org.springframework.stereotype.Service;
import java.io.IOException;
+import java.math.BigDecimal;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
@@ -108,7 +109,6 @@
List<SalesLedgerProduct> productList = purchaseLedgerDto.getProductData();
if (productList != null && !productList.isEmpty()) {
handleSalesLedgerProducts(purchaseLedger.getId(), productList, purchaseLedgerDto.getType());
-
}
// 5. 杩佺Щ涓存椂鏂囦欢鍒版寮忕洰褰�
@@ -141,6 +141,18 @@
salesLedgerProduct.setType(type);
salesLedgerProductMapper.insert(salesLedgerProduct);
}
+ }
+
+ // 璁$畻鎬诲惈绋庨噾棰�
+ BigDecimal totalTaxInclusiveAmount = products.stream()
+ .map(SalesLedgerProduct::getTaxInclusiveTotalPrice)
+ .filter(Objects::nonNull)
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
+
+ // 鏇存柊涓昏〃鐨勬�婚噾棰濆瓧娈�
+ if (salesLedgerId != null) {
+ // 鐩存帴鏇存柊鎸囧畾ID鐨勮褰曠殑contractAmount瀛楁涓簍otalTaxInclusiveAmount
+ purchaseLedgerMapper.updateContractAmountById(salesLedgerId, totalTaxInclusiveAmount);
}
}
@@ -256,9 +268,6 @@
// 鑾峰彇鍘熷鏌ヨ缁撴灉
List<Map<String, Object>> result = purchaseLedgerMapper.selectMaps(queryWrapper);
-
- //鏌ヨ閿�鍞悎鍚屽彿
-
// 灏嗕笅鍒掔嚎鍛藉悕杞崲涓洪┘宄板懡鍚�
return result.stream().map(map -> map.entrySet().stream()
diff --git a/src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java
index ef3bc4d..4e39558 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java
@@ -59,6 +59,7 @@
ticketRegistration.setPurchaseContractNumber(purchaseLedger.getPurchaseContractNumber());
ticketRegistration.setBusinessPerson(sysUser.getNickName());
ticketRegistration.setTenantId(purchaseLedger.getTenantId());
+ ticketRegistration.setContractAmount(purchaseLedger.getContractAmount());
// 澶勭悊瀛愯〃鏁版嵁
List<SalesLedgerProduct> productData = ticketRegistrationDto.getProductData();
diff --git a/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml b/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
new file mode 100644
index 0000000..f007228
--- /dev/null
+++ b/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.purchase.mapper.PurchaseLedgerMapper">
+
+ <update id="updateContractAmountById">
+ UPDATE purchase_ledger
+ SET contract_amount = #{totalTaxInclusiveAmount}
+ WHERE id = #{id}
+ </update>
+</mapper>
\ No newline at end of file
--
Gitblit v1.9.3