From 60117d199e9345ac3e5287f1e82d51f74f14dddb Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期二, 13 一月 2026 15:57:23 +0800
Subject: [PATCH] yys 付款,回款改为绑定台账,产品
---
src/main/java/com/ruoyi/purchase/service/IPaymentRegistrationService.java | 2
src/main/java/com/ruoyi/sales/service/ReceiptPaymentService.java | 2
src/main/java/com/ruoyi/purchase/pojo/PaymentRegistration.java | 7 +
src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java | 1
src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java | 12 ++
src/main/java/com/ruoyi/sales/dto/ReceiptPaymentDto.java | 2
src/main/java/com/ruoyi/purchase/controller/PaymentRegistrationController.java | 2
src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java | 56 ++++-----
src/main/java/com/ruoyi/sales/controller/ReceiptPaymentController.java | 2
src/main/java/com/ruoyi/sales/dto/SalesLedgerProductDto.java | 45 +++++++
src/main/java/com/ruoyi/sales/pojo/ReceiptPayment.java | 7 +
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java | 32 +++++
src/main/resources/mapper/sales/SalesLedgerProductMapper.xml | 62 ++++++++++
src/main/java/com/ruoyi/sales/service/ISalesLedgerProductService.java | 7 +
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java | 1
src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java | 59 +++++----
src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java | 24 ++++
src/main/java/com/ruoyi/sales/mapper/SalesLedgerProductMapper.java | 6 +
18 files changed, 267 insertions(+), 62 deletions(-)
diff --git a/src/main/java/com/ruoyi/purchase/controller/PaymentRegistrationController.java b/src/main/java/com/ruoyi/purchase/controller/PaymentRegistrationController.java
index 71f1b5d..15673cc 100644
--- a/src/main/java/com/ruoyi/purchase/controller/PaymentRegistrationController.java
+++ b/src/main/java/com/ruoyi/purchase/controller/PaymentRegistrationController.java
@@ -69,7 +69,7 @@
*/
@Log(title = "浠樻鐧昏", businessType = BusinessType.INSERT)
@PostMapping
- public AjaxResult add(@RequestBody PaymentRegistration paymentRegistration) {
+ public AjaxResult add(@RequestBody List<PaymentRegistration> paymentRegistration) {
return toAjax(paymentRegistrationService.insertPaymentRegistration(paymentRegistration));
}
diff --git a/src/main/java/com/ruoyi/purchase/pojo/PaymentRegistration.java b/src/main/java/com/ruoyi/purchase/pojo/PaymentRegistration.java
index 91f0540..5e69409 100644
--- a/src/main/java/com/ruoyi/purchase/pojo/PaymentRegistration.java
+++ b/src/main/java/com/ruoyi/purchase/pojo/PaymentRegistration.java
@@ -37,6 +37,11 @@
private Long purchaseLedgerId;
/**
+ * 閲囪喘璁㈠崟浜у搧id
+ */
+ private Long saleLedgerProductId;
+
+ /**
* 渚涘簲鍟唅d
*/
private Long supplierId;
@@ -66,9 +71,11 @@
/**
* 鐧昏浜�
*/
+ @TableField(fill = FieldFill.INSERT)
private Long registrantId;
// 绉熸埛id
+ @TableField(fill = FieldFill.INSERT)
private Long tenantId;
/**
diff --git a/src/main/java/com/ruoyi/purchase/service/IPaymentRegistrationService.java b/src/main/java/com/ruoyi/purchase/service/IPaymentRegistrationService.java
index c975099..15fa498 100644
--- a/src/main/java/com/ruoyi/purchase/service/IPaymentRegistrationService.java
+++ b/src/main/java/com/ruoyi/purchase/service/IPaymentRegistrationService.java
@@ -41,7 +41,7 @@
* @param paymentRegistration 浠樻鐧昏
* @return 缁撴灉
*/
- public int insertPaymentRegistration(PaymentRegistration paymentRegistration);
+ public int insertPaymentRegistration(List<PaymentRegistration> paymentRegistration);
/**
* 淇敼浠樻鐧昏
diff --git a/src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java
index 30e838f..dd3a341 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java
@@ -22,10 +22,12 @@
import com.ruoyi.purchase.service.IPaymentRegistrationService;
import com.ruoyi.sales.mapper.SalesLedgerMapper;
import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
+import com.ruoyi.sales.pojo.ReceiptPayment;
import com.ruoyi.sales.pojo.SalesLedger;
import com.ruoyi.sales.pojo.SalesLedgerProduct;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import java.math.BigDecimal;
@@ -91,43 +93,33 @@
/**
* 鏂板浠樻鐧昏
*
- * @param paymentRegistration 浠樻鐧昏
+ * @param paymentRegistrationList 浠樻鐧昏
* @return 缁撴灉
*/
@Override
- public int insertPaymentRegistration(PaymentRegistration paymentRegistration) {
- PurchaseLedger purchaseLedger = purchaseLedgerMapper.selectById(paymentRegistration.getPurchaseLedgerId());
- SalesLedger salesLedger = salesLedgerMapper.selectOne(new QueryWrapper<SalesLedger>().
- eq("sales_contract_no", purchaseLedger.getSalesContractNo()));
-// if (salesLedger == null) {
-// throw new RuntimeException("鍏宠仈閿�鍞悎鍚屽彿涓嶅瓨鍦�");
-// }
- if (salesLedger != null) {
- paymentRegistration.setSaleLedgerId(salesLedger.getId());
+ public int insertPaymentRegistration(List<PaymentRegistration> paymentRegistrationList) {
+ for (PaymentRegistration paymentRegistration : paymentRegistrationList) {
+ PaymentRegistration byId = paymentRegistration;
+ if (!ObjectUtils.isEmpty(paymentRegistration.getId())){
+ paymentRegistration = this.getById(paymentRegistration.getId());
+ }
+ PurchaseLedger purchaseLedger = purchaseLedgerMapper.selectById(paymentRegistration.getPurchaseLedgerId());
+ if(null==purchaseLedger) throw new RuntimeException("鏈壘鍒伴噰璐崟");
+ // 宸插洖娆鹃噾棰�
+ SalesLedgerProduct salesLedgerProduct = salesLedgerProductMapper.selectById(paymentRegistration.getSaleLedgerProductId());
+ if(null==salesLedgerProduct) throw new RuntimeException("鏈壘鍒伴噰璐崟浜у搧");
+ if (salesLedgerProduct.getPendingInvoiceTotal().compareTo(paymentRegistration.getCurrentPaymentAmount())<0){
+ throw new RuntimeException("鏈鍥炴閲戦涓嶈兘澶т簬寰呭洖娆鹃噾棰�");
+ }
+ paymentRegistration.setCreateTime(DateUtils.getNowDate());
+ paymentRegistration.setUpdateTime(DateUtils.getNowDate());
+ salesLedgerProduct.setInvoiceTotal(salesLedgerProduct.getInvoiceTotal().add(paymentRegistration.getCurrentPaymentAmount()));
+ salesLedgerProduct.setPendingInvoiceTotal(salesLedgerProduct.getTaxInclusiveTotalPrice().subtract(salesLedgerProduct.getInvoiceTotal()));
+ paymentRegistrationMapper.insert(paymentRegistration);
+ salesLedgerProductMapper.updateById(salesLedgerProduct);
}
- paymentRegistration.setSupplierId(purchaseLedger.getSupplierId());
+ return 1;
- TicketRegistration tr = ticketRegistrationMapper.selectOne(new LambdaQueryWrapper<TicketRegistration>().eq(TicketRegistration::getId, paymentRegistration.getTicketRegistrationId()));
-
- if (tr == null) {
- throw new RuntimeException("鍏宠仈鍙戠エ涓嶅瓨鍦�");
- }
-
- List<PaymentRegistration> paymentRegistrations = paymentRegistrationMapper.selectList(new QueryWrapper<PaymentRegistration>()
- .eq("ticket_registration_id", tr.getId()));
- BigDecimal total = paymentRegistrations.stream().map(PaymentRegistration::getCurrentPaymentAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
-
- if (total.add(paymentRegistration.getCurrentPaymentAmount()).compareTo(tr.getInvoiceAmount()) > 0) {
- throw new RuntimeException("浠樻閲戦瓒呭嚭鍙戠エ閲戦");
- }
-
- LoginUser loginUser = SecurityUtils.getLoginUser();
- Long tenantId = loginUser.getTenantId();
- paymentRegistration.setTenantId(tenantId);
- paymentRegistration.setRegistrantId(loginUser.getUserId());
- paymentRegistration.setCreateTime(DateUtils.getNowDate());
- paymentRegistration.setUpdateTime(DateUtils.getNowDate());
- return paymentRegistrationMapper.insert(paymentRegistration);
}
/**
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 583c7d9..cf2184b 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -331,6 +331,7 @@
LocalDateTime localDateTime = entryDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
salesLedgerProduct.setRegisterDate(localDateTime);
+ salesLedgerProduct.setInvoiceTotal(salesLedgerProduct.getTaxInclusiveTotalPrice());
salesLedgerProductMapper.insert(salesLedgerProduct);
}
}
diff --git a/src/main/java/com/ruoyi/sales/controller/ReceiptPaymentController.java b/src/main/java/com/ruoyi/sales/controller/ReceiptPaymentController.java
index 582589d..0748154 100644
--- a/src/main/java/com/ruoyi/sales/controller/ReceiptPaymentController.java
+++ b/src/main/java/com/ruoyi/sales/controller/ReceiptPaymentController.java
@@ -40,7 +40,7 @@
* @return
*/
@PostMapping("/saveOrUpdate")
- public AjaxResult receiptPaymentSaveOrUpdate (@RequestBody ReceiptPayment receiptPayment) {
+ public AjaxResult receiptPaymentSaveOrUpdate (@RequestBody List<ReceiptPayment> receiptPayment) {
receiptPaymentService.receiptPaymentSaveOrUpdate(receiptPayment);
return AjaxResult.success();
}
diff --git a/src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java b/src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java
index 058360b..b964e4c 100644
--- a/src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java
+++ b/src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java
@@ -8,6 +8,7 @@
import com.ruoyi.procurementrecord.dto.ProcurementPageDto;
import com.ruoyi.procurementrecord.dto.ProcurementPageDtoCopy;
import com.ruoyi.procurementrecord.service.ProcurementRecordService;
+import com.ruoyi.sales.dto.SalesLedgerProductDto;
import com.ruoyi.sales.pojo.SalesLedgerProduct;
import com.ruoyi.sales.service.ISalesLedgerProductService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -40,6 +41,28 @@
private ISalesLedgerProductService salesLedgerProductService;
@Autowired
private ProcurementRecordService procurementRecordService;
+
+
+ /**
+ * 鍥炴鐧昏鍒嗛〉鏌ヨ
+ */
+ @GetMapping("/listPageSalesLedger")
+ public AjaxResult listPage(Page page, SalesLedgerProductDto salesLedgerProduct) {
+ IPage<SalesLedgerProductDto> list = salesLedgerProductService.listPage(page,salesLedgerProduct);
+ return AjaxResult.success(list);
+ }
+
+
+ /**
+ * 浠樻鐧昏鍒嗛〉鏌ヨ
+ */
+ @GetMapping("/listPagePurchaseLedger")
+ public AjaxResult listPagePurchaseLedger(Page page, SalesLedgerProductDto salesLedgerProduct) {
+ IPage<SalesLedgerProductDto> list = salesLedgerProductService.listPagePurchaseLedger(page,salesLedgerProduct);
+ return AjaxResult.success(list);
+ }
+
+
/**
* 鏌ヨ浜у搧淇℃伅鍒楄〃
*/
@@ -52,6 +75,7 @@
procurementDto.setSalesLedgerProductId(item.getId());
procurementDto.setProductCategory(item.getProductCategory());
IPage<ProcurementPageDtoCopy> result = procurementRecordService.listPageCopyByProduction(new Page<>(1,-1), procurementDto);
+ if(result.getTotal()==0) return;
ProcurementPageDtoCopy procurementDtoCopy = result.getRecords().get(0);
if(item.getQuantity().compareTo(procurementDtoCopy.getInboundNum0())>=0){
item.setApproveStatus(1);
diff --git a/src/main/java/com/ruoyi/sales/dto/ReceiptPaymentDto.java b/src/main/java/com/ruoyi/sales/dto/ReceiptPaymentDto.java
index 5bbf31f..1afb02c 100644
--- a/src/main/java/com/ruoyi/sales/dto/ReceiptPaymentDto.java
+++ b/src/main/java/com/ruoyi/sales/dto/ReceiptPaymentDto.java
@@ -44,7 +44,7 @@
@ApiModelProperty(value = "閿�鍞彴璐ales_ledger")
@Excel(isExport = false)
- private Integer salesLedgerId;
+ private Long salesLedgerId;
@ApiModelProperty(value = "閿�鍞悎鍚屽彿")
@Excel(name = "閿�鍞悎鍚屽彿")
diff --git a/src/main/java/com/ruoyi/sales/dto/SalesLedgerProductDto.java b/src/main/java/com/ruoyi/sales/dto/SalesLedgerProductDto.java
index c51e642..53157d7 100644
--- a/src/main/java/com/ruoyi/sales/dto/SalesLedgerProductDto.java
+++ b/src/main/java/com/ruoyi/sales/dto/SalesLedgerProductDto.java
@@ -1,4 +1,47 @@
package com.ruoyi.sales.dto;
-public class SalesLedgerProductDto {
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import com.ruoyi.sales.pojo.SalesLedgerProduct;
+import lombok.Data;
+
+
+import com.ruoyi.sales.pojo.SalesLedgerProduct;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+@Data
+public class SalesLedgerProductDto extends SalesLedgerProduct {
+
+ /**
+ * 閲囪喘鍚堝悓鍙�
+ */
+ @Excel(name = "閲囪喘鍚堝悓鍙�")
+ private String purchaseContractNumber;
+ /**
+ * 閿�鍞悎鍚屽彿
+ */
+ private String salesContractNo;
+ /**
+ * 瀹㈡埛鍚堝悓鍙�
+ */
+ private String customerContractNo;
+ /**
+ * 椤圭洰鍚嶇О
+ */
+ private String projectName;
+ /**
+ * 瀹㈡埛鍚嶇О
+ */
+ private String customerName;
+ /**
+ * 鐘舵��
+ */
+ private String statusName;
+ /**
+ * true:涓嶆樉绀哄緟浠樻锛屽洖娆句负0鐨勬暟鎹�
+ */
+ private Boolean status;
+
}
diff --git a/src/main/java/com/ruoyi/sales/mapper/SalesLedgerProductMapper.java b/src/main/java/com/ruoyi/sales/mapper/SalesLedgerProductMapper.java
index 58e8d9c..8777851 100644
--- a/src/main/java/com/ruoyi/sales/mapper/SalesLedgerProductMapper.java
+++ b/src/main/java/com/ruoyi/sales/mapper/SalesLedgerProductMapper.java
@@ -1,6 +1,9 @@
package com.ruoyi.sales.mapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.config.MyBaseMapper;
+import com.ruoyi.sales.dto.SalesLedgerProductDto;
import com.ruoyi.sales.pojo.SalesLedgerProduct;
import org.apache.ibatis.annotations.Param;
@@ -17,4 +20,7 @@
SalesLedgerProduct selectSalesLedgerProductByMainId(@Param("productMainId") Long productMainId);
+ IPage<SalesLedgerProductDto> listPage(Page page, @Param("req") SalesLedgerProductDto salesLedgerProduct);
+
+ IPage<SalesLedgerProductDto> listPagePurchaseLedger(Page page,@Param("req") SalesLedgerProductDto salesLedgerProduct);
}
diff --git a/src/main/java/com/ruoyi/sales/pojo/ReceiptPayment.java b/src/main/java/com/ruoyi/sales/pojo/ReceiptPayment.java
index 7963758..d53ae6a 100644
--- a/src/main/java/com/ruoyi/sales/pojo/ReceiptPayment.java
+++ b/src/main/java/com/ruoyi/sales/pojo/ReceiptPayment.java
@@ -12,6 +12,7 @@
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
+import java.util.List;
@Data
public class ReceiptPayment {
@@ -34,6 +35,12 @@
@ApiModelProperty(value = "invoice_ledger寮�绁ㄥ彴璐︿富閿甀D")
private Integer invoiceLedgerId;
+ @ApiModelProperty(value = "sales_ledger閿�鍞彴璐︿富閿甀D")
+ private Long salesLedgerId;
+
+ @ApiModelProperty(value = "sales_ledger_product閿�鍞彴璐︿骇鍝佷富閿甀D")
+ private Long salesLedgerProductId;
+
@ApiModelProperty(value = "鏉ユ鏃ユ湡")
@JsonFormat(pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
index c4e21b2..308c7bf 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
@@ -209,4 +209,16 @@
// @TableField(exist = false)
@ApiModelProperty(value = "瀹℃壒鐘舵�侊細0鏈敓浜�,1宸茬敓浜�,2寰呭鏍�(瀹℃牳涓�),3瀹℃牳瀹屾垚,4瀹℃牳澶辫触")
private Integer approveStatus;
+
+ @ApiModelProperty(value = "寰呭洖娆炬�婚噾棰�")
+ private BigDecimal pendingInvoiceTotal;
+
+ @ApiModelProperty(value = "鍥炴鎬婚噾棰�")
+ private BigDecimal invoiceTotal;
+
+ @ApiModelProperty(value = "寰呬粯娆炬�婚噾棰�")
+ private BigDecimal pendingTicketsTotal;
+
+ @ApiModelProperty(value = "浠樻鎬婚噾棰�")
+ private BigDecimal ticketsTotal;
}
diff --git a/src/main/java/com/ruoyi/sales/service/ISalesLedgerProductService.java b/src/main/java/com/ruoyi/sales/service/ISalesLedgerProductService.java
index ccc28a7..b8fd0fa 100644
--- a/src/main/java/com/ruoyi/sales/service/ISalesLedgerProductService.java
+++ b/src/main/java/com/ruoyi/sales/service/ISalesLedgerProductService.java
@@ -1,6 +1,9 @@
package com.ruoyi.sales.service;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.sales.dto.SalesLedgerProductDto;
import com.ruoyi.sales.pojo.SalesLedgerProduct;
import java.util.List;
@@ -20,4 +23,8 @@
int deleteSalesLedgerProductByIds(Long[] ids);
int addOrUpdateSalesLedgerProduct(SalesLedgerProduct salesLedgerProduct);
+
+ IPage<SalesLedgerProductDto> listPage(Page page, SalesLedgerProductDto salesLedgerProduct);
+
+ IPage<SalesLedgerProductDto> listPagePurchaseLedger(Page page, SalesLedgerProductDto salesLedgerProduct);
}
diff --git a/src/main/java/com/ruoyi/sales/service/ReceiptPaymentService.java b/src/main/java/com/ruoyi/sales/service/ReceiptPaymentService.java
index 85a7a4c..525217f 100644
--- a/src/main/java/com/ruoyi/sales/service/ReceiptPaymentService.java
+++ b/src/main/java/com/ruoyi/sales/service/ReceiptPaymentService.java
@@ -19,7 +19,7 @@
* @param receiptPayment
* @return
*/
- int receiptPaymentSaveOrUpdate(ReceiptPayment receiptPayment);
+ int receiptPaymentSaveOrUpdate(List<ReceiptPayment> receiptPayment);
/**
* 鍥炴鐧昏淇敼
diff --git a/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java
index 48056a9..e93d62f 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java
@@ -13,12 +13,15 @@
import com.ruoyi.sales.mapper.InvoiceLedgerMapper;
import com.ruoyi.sales.mapper.ReceiptPaymentMapper;
import com.ruoyi.sales.mapper.SalesLedgerMapper;
+import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
import com.ruoyi.sales.pojo.InvoiceLedger;
import com.ruoyi.sales.pojo.ReceiptPayment;
import com.ruoyi.sales.pojo.SalesLedger;
+import com.ruoyi.sales.pojo.SalesLedgerProduct;
import com.ruoyi.sales.service.ReceiptPaymentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
@@ -37,39 +40,47 @@
@Autowired
private SalesLedgerMapper salesLedgerMapper;
+
+ @Autowired
+ private SalesLedgerProductMapper salesLedgerProductMapper;
@Autowired
private InvoiceLedgerMapper invoiceLedgerMapper;
/**
* 鍥炴鐧昏鏂板
- * @param receiptPayment
+ * @param receiptPaymentList
* @return
*/
@Override
- public int receiptPaymentSaveOrUpdate(ReceiptPayment receiptPayment) {
- ReceiptPayment byId = receiptPayment;
- if (!ObjectUtils.isEmpty(receiptPayment.getId())){
- byId = this.getById(receiptPayment.getId());
+ @Transactional(rollbackFor = Exception.class)
+ public int receiptPaymentSaveOrUpdate(List<ReceiptPayment> receiptPaymentList) {
+ for (ReceiptPayment receiptPayment : receiptPaymentList) {
+ ReceiptPayment byId = receiptPayment;
+ if (!ObjectUtils.isEmpty(receiptPayment.getId())){
+ receiptPayment = this.getById(receiptPayment.getId());
+ }
+// InvoiceLedger invoiceLedger = invoiceLedgerMapper.selectById(byId.getInvoiceLedgerId());
+ SalesLedger salesLedger = salesLedgerMapper.selectById(receiptPayment.getSalesLedgerId());
+ if(null==salesLedger) throw new RuntimeException("鏈壘鍒伴攢鍞崟");
+ // 宸插洖娆鹃噾棰�
+ SalesLedgerProduct salesLedgerProduct = salesLedgerProductMapper.selectById(receiptPayment.getSalesLedgerProductId());
+ if(null==salesLedgerProduct) throw new RuntimeException("鏈壘鍒伴攢鍞崟浜у搧");
+ if (salesLedgerProduct.getPendingInvoiceTotal().compareTo(receiptPayment.getReceiptPaymentAmount())<0){
+ throw new RuntimeException("鏈鍥炴閲戦涓嶈兘澶т簬寰呭洖娆鹃噾棰�");
+ }
+ if(null==receiptPayment.getId()){
+ salesLedgerProduct.setInvoiceTotal(salesLedgerProduct.getInvoiceTotal().add(receiptPayment.getReceiptPaymentAmount()));
+ salesLedgerProduct.setPendingInvoiceTotal(salesLedgerProduct.getTaxInclusiveTotalPrice().subtract(salesLedgerProduct.getInvoiceTotal()));
+ receiptPaymentMapper.insert(receiptPayment);
+ }else {
+ BigDecimal subtract = receiptPayment.getReceiptPaymentAmount().subtract(byId.getReceiptPaymentAmount());
+ salesLedgerProduct.setInvoiceTotal(salesLedgerProduct.getInvoiceTotal().add(subtract));
+ salesLedgerProduct.setPendingInvoiceTotal(salesLedgerProduct.getTaxInclusiveTotalPrice().subtract(salesLedgerProduct.getInvoiceTotal()));
+ receiptPaymentMapper.updateById(receiptPayment);
+ }
+ salesLedgerProductMapper.updateById(salesLedgerProduct);
}
- InvoiceLedger invoiceLedger = invoiceLedgerMapper.selectById(byId.getInvoiceLedgerId());
- Page<ReceiptPaymentDto> objectPage = new Page<>();
- ReceiptPaymentDto receiptPaymentDto = new ReceiptPaymentDto();
- receiptPaymentDto.setInvoiceLedgerId(invoiceLedger.getId());
- IPage<ReceiptPaymentDto> receiptPaymentDtoIPage = receiptPaymentMapper.bindInvoiceNoRegPage(objectPage, receiptPaymentDto);
- ReceiptPaymentDto receiptPaymentDto1 = receiptPaymentDtoIPage.getRecords().get(0);
- if (!ObjectUtils.isEmpty(byId.getId())){
- receiptPaymentDto1.setNoReceiptAmount(receiptPaymentDto1.getNoReceiptAmount().add(byId.getReceiptPaymentAmount()));
- }
- if (receiptPaymentDto1.getNoReceiptAmount().compareTo(receiptPayment.getReceiptPaymentAmount())<0){
- throw new RuntimeException("鏈鍥炴閲戦涓嶈兘澶т簬寰呭洖娆鹃噾棰�");
- }
- if(null==receiptPayment.getId()){
-
- return receiptPaymentMapper.insert(receiptPayment);
- }else {
-
- return receiptPaymentMapper.updateById(receiptPayment);
- }
+ return 1;
}
/**
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
index 1dafbe4..c2fa99c 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
@@ -3,12 +3,16 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.production.mapper.*;
import com.ruoyi.production.pojo.*;
import com.ruoyi.purchase.mapper.PurchaseLedgerMapper;
import com.ruoyi.purchase.pojo.PurchaseLedger;
import com.ruoyi.sales.dto.InvoiceRegistrationProductDto;
+import com.ruoyi.sales.dto.SalesLedgerProductDto;
import com.ruoyi.sales.mapper.InvoiceRegistrationProductMapper;
import com.ruoyi.sales.mapper.SalesLedgerMapper;
import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
@@ -270,6 +274,34 @@
return result;
}
+ @Override
+ public IPage<SalesLedgerProductDto> listPage(Page page, SalesLedgerProductDto salesLedgerProduct) {
+ IPage<SalesLedgerProductDto> salesLedgerProductDtoIPage = salesLedgerProductMapper.listPage(page, salesLedgerProduct);
+ salesLedgerProductDtoIPage.getRecords().forEach(item -> {
+ // 鍒ゆ柇鐘舵��
+ if(item.getTaxInclusiveTotalPrice().compareTo(item.getInvoiceTotal()) == 0){
+ item.setStatusName("宸插畬鎴愪粯娆�");
+ }else{
+ item.setStatusName("鏈畬鎴愪粯娆�");
+ }
+ });
+ return salesLedgerProductDtoIPage;
+ }
+
+ @Override
+ public IPage<SalesLedgerProductDto> listPagePurchaseLedger(Page page, SalesLedgerProductDto salesLedgerProduct) {
+ IPage<SalesLedgerProductDto> salesLedgerProductDtoIPage = salesLedgerProductMapper.listPagePurchaseLedger(page, salesLedgerProduct);
+ salesLedgerProductDtoIPage.getRecords().forEach(item -> {
+ // 鍒ゆ柇鐘舵��
+ if(item.getTaxInclusiveTotalPrice().compareTo(item.getInvoiceTotal()) == 0){
+ item.setStatusName("宸插畬鎴愪粯娆�");
+ }else{
+ item.setStatusName("鏈畬鎴愪粯娆�");
+ }
+ });
+ return salesLedgerProductDtoIPage;
+ }
+
/**
* 閫氱敤鏂规硶锛氭牴鎹富琛↖D鍜屽瓙琛ㄥ垪琛紝鏇存柊涓昏〃鐨勫悎鍚岄噾棰�
*/
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
index 66fabe0..7b86b68 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -680,6 +680,7 @@
salesLedgerProduct.setType(type);
salesLedgerProduct.setNoInvoiceNum(salesLedgerProduct.getQuantity());
salesLedgerProduct.setNoInvoiceAmount(salesLedgerProduct.getTaxInclusiveTotalPrice());
+ salesLedgerProduct.setInvoiceTotal(salesLedgerProduct.getTaxInclusiveTotalPrice());
salesLedgerProductMapper.insert(salesLedgerProduct);
ProductOrder productOrder = new ProductOrder();
diff --git a/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml b/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
index 8982caf..5db186a 100644
--- a/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
+++ b/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
@@ -33,4 +33,66 @@
</select>
+ <select id="listPage" resultType="com.ruoyi.sales.dto.SalesLedgerProductDto">
+ select slp.*,
+ sl.project_name,
+ sl.customer_name,
+ sl.sales_contract_no,
+ sl.customer_contract_no
+ from sales_ledger_product slp
+ left join sales_ledger sl on slp.sales_ledger_id = sl.id
+ <where>
+ slp.type = 1
+ <if test="req.salesContractNo != null and req.salesContractNo != '' ">
+ AND sl.sales_contract_no like concat('%',#{req.salesContractNo},'%')
+ </if>
+ <if test="req.customerContractNo != null and req.customerContractNo != '' ">
+ AND sl.customer_contract_no like concat('%',#{req.customerContractNo},'%')
+ </if>
+ <if test="req.projectName != null and req.projectName != '' ">
+ AND sl.project_name like concat('%',#{req.projectName},'%')
+ </if>
+ <if test="req.customerName != null and req.customerName != '' ">
+ AND sl.customer_name like concat('%',#{req.customerName},'%')
+ </if>
+ <if test="req.productCategory != null and req.productCategory != '' ">
+ AND slp.product_category like concat('%',#{req.productCategory},'%')
+ </if>
+ <if test="req.status != null and req.status ">
+ AND slp.pending_invoice_total > 0
+ </if>
+ </where>
+ order by slp.register_date desc
+ </select>
+ <select id="listPagePurchaseLedger" resultType="com.ruoyi.sales.dto.SalesLedgerProductDto">
+ select slp.*,
+ sl.project_name,
+ sl.customer_name,
+ sl.sales_contract_no,
+ sl.customer_contract_no
+ from sales_ledger_product slp
+ left join purchase_ledger sl on slp.sales_ledger_id = sl.id
+ <where>
+ slp.type = 2
+ <if test="req.purchaseContractNumber != null and req.purchaseContractNumber != '' ">
+ AND sl.purchase_contract_number like concat('%',#{req.purchaseContractNumber},'%')
+ </if>
+ <if test="req.customerContractNo != null and req.customerContractNo != '' ">
+ AND sl.customer_contract_no like concat('%',#{req.customerContractNo},'%')
+ </if>
+ <if test="req.projectName != null and req.projectName != '' ">
+ AND sl.project_name like concat('%',#{req.projectName},'%')
+ </if>
+ <if test="req.customerName != null and req.customerName != '' ">
+ AND sl.customer_name like concat('%',#{req.customerName},'%')
+ </if>
+ <if test="req.productCategory != null and req.productCategory != '' ">
+ AND slp.product_category like concat('%',#{req.productCategory},'%')
+ </if>
+ <if test="req.status != null and req.status ">
+ AND slp.pending_invoice_total > 0
+ </if>
+ </where>
+ order by slp.register_date desc
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.9.3