From 00083c26fde57c0165427ae4cc712d24596fdbc6 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期四, 21 五月 2026 11:09:46 +0800
Subject: [PATCH] refactor(purchase): 删除payment_registration 付款登记 invoice_purchase 发票信息 ticket_registration 来票登记 receipt_payment 回款登记 product_record 采购台账开票记录
---
src/main/java/com/ruoyi/ai/service/PurchaseAiService.java | 24 -
src/main/java/com/ruoyi/purchase/mapper/PurchaseLedgerMapper.java | 3
src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java | 21 -
src/main/java/com/ruoyi/ai/tools/PurchaseAgentTools.java | 68 +--
src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml | 85 -----
src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java | 53 --
/dev/null | 420 --------------------------
src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java | 26 -
src/main/java/com/ruoyi/purchase/controller/AccountingReportController.java | 33 -
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java | 24 -
src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java | 14
src/main/java/com/ruoyi/ai/tools/SalesAgentTools.java | 154 +++------
src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java | 5
13 files changed, 99 insertions(+), 831 deletions(-)
diff --git a/src/main/java/com/ruoyi/ai/service/PurchaseAiService.java b/src/main/java/com/ruoyi/ai/service/PurchaseAiService.java
index 0f24d64..47c914b 100644
--- a/src/main/java/com/ruoyi/ai/service/PurchaseAiService.java
+++ b/src/main/java/com/ruoyi/ai/service/PurchaseAiService.java
@@ -20,8 +20,6 @@
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.purchase.dto.PurchaseLedgerDto;
import com.ruoyi.purchase.dto.PurchaseReturnOrderDto;
-import com.ruoyi.purchase.pojo.PaymentRegistration;
-import com.ruoyi.purchase.service.IPaymentRegistrationService;
import com.ruoyi.purchase.service.IPurchaseLedgerService;
import com.ruoyi.purchase.service.PurchaseReturnOrdersService;
import com.ruoyi.sales.pojo.SalesLedgerProduct;
@@ -48,7 +46,6 @@
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Base64;
-import java.util.Arrays;
import java.time.LocalDate;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
@@ -80,7 +77,6 @@
private final AiFileTextExtractor aiFileTextExtractor;
private final ObjectMapper objectMapper;
private final IPurchaseLedgerService purchaseLedgerService;
- private final IPaymentRegistrationService paymentRegistrationService;
private final PurchaseReturnOrdersService purchaseReturnOrdersService;
private final StorageBlobService storageBlobService;
private final SupplierManageMapper supplierManageMapper;
@@ -94,7 +90,6 @@
AiFileTextExtractor aiFileTextExtractor,
ObjectMapper objectMapper,
IPurchaseLedgerService purchaseLedgerService,
- IPaymentRegistrationService paymentRegistrationService,
PurchaseReturnOrdersService purchaseReturnOrdersService,
StorageBlobService storageBlobService,
SupplierManageMapper supplierManageMapper,
@@ -107,7 +102,6 @@
this.aiFileTextExtractor = aiFileTextExtractor;
this.objectMapper = objectMapper;
this.purchaseLedgerService = purchaseLedgerService;
- this.paymentRegistrationService = paymentRegistrationService;
this.purchaseReturnOrdersService = purchaseReturnOrdersService;
this.storageBlobService = storageBlobService;
this.supplierManageMapper = supplierManageMapper;
@@ -221,7 +215,6 @@
String businessType = request.getBusinessType().trim();
return switch (businessType) {
case "purchase_ledger" -> processPurchaseLedger(request.getPayload());
- case "payment_registration" -> processPaymentRegistration(request.getPayload());
case "purchase_return_order" -> processPurchaseReturnOrder(request.getPayload());
default -> AjaxResult.error("鏆備笉鏀寔璇ヤ笟鍔$被鍨�: " + businessType);
};
@@ -482,7 +475,7 @@
1. 鍙緭鍑哄悎娉� JSON锛屼笉瑕� Markdown锛屼笉瑕侀澶栬В閲娿��
2. JSON 椤跺眰瀛楁鍥哄畾涓�:
- success: boolean
- - businessType: purchase_ledger | payment_registration | purchase_return_order | unknown
+ - businessType: purchase_ledger | purchase_return_order | unknown
- action: confirm_required
- description: 涓枃璇存槑
- confidence: 0鍒�1鐨勫皬鏁�
@@ -507,7 +500,7 @@
entryDateStart, entryDateEnd, id, purchaseContractNumber, supplierId, supplierName, isWhite, recorderId, recorderName, salesContractNo, salesContractNoId, projectName, entryDate, executionDate, remarks, attachmentMaterials, createdAt, updatedAt, salesLedgerId, hasChildren, Type, productData, tempFileIds, SalesLedgerFiles, phoneNumber, businessPersonId, productId, productModelId, invoiceNumber, invoiceAmount, ticketRegistrationId, contractAmount, receiptPaymentAmount, unReceiptPaymentAmount, type, paymentMethod, approvalStatus, templateName
- productData 姣忔潯浜у搧鍙娇鐢ㄨ繖浜� SalesLedgerProduct 瀛楁鍚�:
productCategory, specificationModel, unit, quantity, taxRate, taxInclusiveUnitPrice, taxInclusiveTotalPrice, taxExclusiveTotalPrice, invoiceType, productId, productModelId, isChecked, type
- 4. 濡傛灉鍙垽鏂负浠樻鐧昏锛宐usinessType 浣跨敤 payment_registration锛宲ayload.records 涓轰粯娆剧櫥璁版暟缁勶紝瀛楁灏介噺鍖呭惈 purchaseLedgerId銆乻alesLedgerProductId銆乧urrentPaymentAmount銆乸aymentMethod銆乸aymentDate銆�
+ 4. 濡傛灉鍙垽鏂负浠樻鐧昏锛宐usinessType 浣跨敤 payload.records 涓轰粯娆剧櫥璁版暟缁勶紝瀛楁灏介噺鍖呭惈 purchaseLedgerId銆乻alesLedgerProductId銆乧urrentPaymentAmount銆乸aymentMethod銆乸aymentDate銆�
5. 濡傛灉鍙垽鏂负閲囪喘閫�璐э紝businessType 浣跨敤 purchase_return_order锛宲ayload 鎸� PurchaseReturnOrderDto 缁勭粐锛屾槑缁嗘斁 purchaseReturnOrderProductsDtos銆�
6. 缂哄皯涓氬姟澶勭悊蹇呴』瀛楁鏃讹紝涓嶈缂栭�� ID锛屾妸瀛楁鏀惧叆 missingFields锛屽苟浠嶈繑鍥炲彲纭鐨勮崏绋挎暟鎹��
7. 鎵�鏈変腑鏂囧唴瀹圭洿鎺ヤ繚鐣欙紝涓嶈杞箟鎴� Unicode銆�
@@ -1008,19 +1001,6 @@
}
dto.setSupplierId(supplier.getId());
return null;
- }
-
- private AjaxResult processPaymentRegistration(Map<String, Object> payload) {
- Object recordsValue = payload.get("records");
- List<PaymentRegistration> records;
- if (recordsValue == null) {
- records = Collections.singletonList(objectMapper.convertValue(payload, PaymentRegistration.class));
- } else {
- records = objectMapper.convertValue(recordsValue, new TypeReference<List<PaymentRegistration>>() {
- });
- }
- int result = paymentRegistrationService.insertPaymentRegistration(records);
- return AjaxResult.success("浠樻鐧昏宸插鐞�", result);
}
private AjaxResult processPurchaseReturnOrder(Map<String, Object> payload) {
diff --git a/src/main/java/com/ruoyi/ai/tools/PurchaseAgentTools.java b/src/main/java/com/ruoyi/ai/tools/PurchaseAgentTools.java
index 17b6868..c25aeed 100644
--- a/src/main/java/com/ruoyi/ai/tools/PurchaseAgentTools.java
+++ b/src/main/java/com/ruoyi/ai/tools/PurchaseAgentTools.java
@@ -5,12 +5,8 @@
import com.ruoyi.ai.context.AiSessionUserContext;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.framework.security.LoginUser;
-import com.ruoyi.purchase.mapper.InvoicePurchaseMapper;
-import com.ruoyi.purchase.mapper.PaymentRegistrationMapper;
import com.ruoyi.purchase.mapper.PurchaseLedgerMapper;
import com.ruoyi.purchase.mapper.PurchaseReturnOrdersMapper;
-import com.ruoyi.purchase.pojo.InvoicePurchase;
-import com.ruoyi.purchase.pojo.PaymentRegistration;
import com.ruoyi.purchase.pojo.PurchaseLedger;
import com.ruoyi.purchase.pojo.PurchaseReturnOrders;
import com.ruoyi.procurementrecord.mapper.InboundManagementMapper;
@@ -27,7 +23,6 @@
import java.math.BigDecimal;
import java.time.LocalDate;
-import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Date;
@@ -46,8 +41,6 @@
private static final int MAX_LIMIT = 30;
private final PurchaseLedgerMapper purchaseLedgerMapper;
- private final PaymentRegistrationMapper paymentRegistrationMapper;
- private final InvoicePurchaseMapper invoicePurchaseMapper;
private final PurchaseReturnOrdersMapper purchaseReturnOrdersMapper;
private final SalesLedgerProductMapper salesLedgerProductMapper;
private final ProcurementRecordMapper procurementRecordMapper;
@@ -55,16 +48,12 @@
private final AiSessionUserContext aiSessionUserContext;
public PurchaseAgentTools(PurchaseLedgerMapper purchaseLedgerMapper,
- PaymentRegistrationMapper paymentRegistrationMapper,
- InvoicePurchaseMapper invoicePurchaseMapper,
PurchaseReturnOrdersMapper purchaseReturnOrdersMapper,
SalesLedgerProductMapper salesLedgerProductMapper,
ProcurementRecordMapper procurementRecordMapper,
InboundManagementMapper inboundManagementMapper,
AiSessionUserContext aiSessionUserContext) {
this.purchaseLedgerMapper = purchaseLedgerMapper;
- this.paymentRegistrationMapper = paymentRegistrationMapper;
- this.invoicePurchaseMapper = invoicePurchaseMapper;
this.purchaseReturnOrdersMapper = purchaseReturnOrdersMapper;
this.salesLedgerProductMapper = salesLedgerProductMapper;
this.procurementRecordMapper = procurementRecordMapper;
@@ -130,22 +119,24 @@
DateRange range = resolveDateRange(startDate, endDate, timeRange);
List<PurchaseLedger> ledgers = queryLedgers(loginUser, range);
- List<PaymentRegistration> payments = queryPayments(loginUser, range);
- List<InvoicePurchase> invoices = queryInvoices(loginUser, range);
+// List<PaymentRegistration> payments = queryPayments(loginUser, range);
+// List<InvoicePurchase> invoices = queryInvoices(loginUser, range);
List<PurchaseReturnOrders> returns = queryReturns(loginUser, range);
BigDecimal contractAmount = ledgers.stream()
.map(PurchaseLedger::getContractAmount)
.filter(Objects::nonNull)
.reduce(BigDecimal.ZERO, BigDecimal::add);
- BigDecimal paymentAmount = payments.stream()
- .map(PaymentRegistration::getCurrentPaymentAmount)
- .filter(Objects::nonNull)
- .reduce(BigDecimal.ZERO, BigDecimal::add);
- BigDecimal invoiceAmount = invoices.stream()
- .map(InvoicePurchase::getInvoiceAmount)
- .filter(Objects::nonNull)
- .reduce(BigDecimal.ZERO, BigDecimal::add);
+ BigDecimal paymentAmount = BigDecimal.ZERO;
+// BigDecimal paymentAmount = payments.stream()
+// .map(PaymentRegistration::getCurrentPaymentAmount)
+// .filter(Objects::nonNull)
+// .reduce(BigDecimal.ZERO, BigDecimal::add);
+ BigDecimal invoiceAmount = BigDecimal.ZERO;
+// BigDecimal invoiceAmount = invoices.stream()
+// .map(InvoicePurchase::getInvoiceAmount)
+// .filter(Objects::nonNull)
+// .reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal returnAmount = returns.stream()
.map(PurchaseReturnOrders::getTotalAmount)
.filter(Objects::nonNull)
@@ -156,8 +147,10 @@
summary.put("startDate", range.start().toString());
summary.put("endDate", range.end().toString());
summary.put("ledgerCount", ledgers.size());
- summary.put("paymentCount", payments.size());
- summary.put("invoiceCount", invoices.size());
+ summary.put("paymentCount", 0);
+// summary.put("paymentCount", payments.size());
+// summary.put("invoiceCount", invoices.size());
+ summary.put("invoiceCount", 0);
summary.put("returnCount", returns.size());
summary.put("contractAmount", contractAmount);
summary.put("paymentAmount", paymentAmount);
@@ -420,13 +413,14 @@
}
private BigDecimal sumPaymentAmount(LoginUser loginUser, Long purchaseLedgerId) {
- LambdaQueryWrapper<PaymentRegistration> wrapper = new LambdaQueryWrapper<>();
- applyTenantFilter(wrapper, loginUser.getTenantId(), PaymentRegistration::getTenantId);
- wrapper.eq(PaymentRegistration::getPurchaseLedgerId, purchaseLedgerId);
- return defaultList(paymentRegistrationMapper.selectList(wrapper)).stream()
- .map(PaymentRegistration::getCurrentPaymentAmount)
- .filter(Objects::nonNull)
- .reduce(BigDecimal.ZERO, BigDecimal::add);
+// LambdaQueryWrapper<PaymentRegistration> wrapper = new LambdaQueryWrapper<>();
+// applyTenantFilter(wrapper, loginUser.getTenantId(), PaymentRegistration::getTenantId);
+// wrapper.eq(PaymentRegistration::getPurchaseLedgerId, purchaseLedgerId);
+// return defaultList(paymentRegistrationMapper.selectList(wrapper)).stream()
+// .map(PaymentRegistration::getCurrentPaymentAmount)
+// .filter(Objects::nonNull)
+// .reduce(BigDecimal.ZERO, BigDecimal::add);
+ return BigDecimal.ZERO;
}
private Map<String, Object> toReturnItem(PurchaseReturnOrders item) {
@@ -446,21 +440,7 @@
return value == null ? BigDecimal.ZERO : value;
}
- private List<PaymentRegistration> queryPayments(LoginUser loginUser, DateRange range) {
- LambdaQueryWrapper<PaymentRegistration> wrapper = new LambdaQueryWrapper<>();
- applyTenantFilter(wrapper, loginUser.getTenantId(), PaymentRegistration::getTenantId);
- wrapper.ge(PaymentRegistration::getPaymentDate, toDate(range.start()))
- .lt(PaymentRegistration::getPaymentDate, toExclusiveEndDate(range.end()));
- return defaultList(paymentRegistrationMapper.selectList(wrapper));
- }
- private List<InvoicePurchase> queryInvoices(LoginUser loginUser, DateRange range) {
- LambdaQueryWrapper<InvoicePurchase> wrapper = new LambdaQueryWrapper<>();
- applyTenantFilter(wrapper, loginUser.getTenantId(), InvoicePurchase::getTenantId);
- wrapper.ge(InvoicePurchase::getIssueDate, range.start())
- .le(InvoicePurchase::getIssueDate, range.end());
- return defaultList(invoicePurchaseMapper.selectList(wrapper));
- }
private List<PurchaseReturnOrders> queryReturns(LoginUser loginUser, DateRange range) {
LambdaQueryWrapper<PurchaseReturnOrders> wrapper = new LambdaQueryWrapper<>();
diff --git a/src/main/java/com/ruoyi/ai/tools/SalesAgentTools.java b/src/main/java/com/ruoyi/ai/tools/SalesAgentTools.java
index 41ed0a7..f9b09de 100644
--- a/src/main/java/com/ruoyi/ai/tools/SalesAgentTools.java
+++ b/src/main/java/com/ruoyi/ai/tools/SalesAgentTools.java
@@ -11,11 +11,9 @@
import com.ruoyi.basic.vo.CustomerVo;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.framework.security.LoginUser;
-import com.ruoyi.sales.mapper.ReceiptPaymentMapper;
import com.ruoyi.sales.mapper.SalesLedgerMapper;
import com.ruoyi.sales.mapper.SalesQuotationMapper;
import com.ruoyi.sales.mapper.ShippingInfoMapper;
-import com.ruoyi.sales.pojo.ReceiptPayment;
import com.ruoyi.sales.pojo.SalesLedger;
import com.ruoyi.sales.pojo.SalesQuotation;
import com.ruoyi.sales.pojo.ShippingInfo;
@@ -51,7 +49,6 @@
private final SalesLedgerMapper salesLedgerMapper;
private final SalesQuotationMapper salesQuotationMapper;
private final ShippingInfoMapper shippingInfoMapper;
- private final ReceiptPaymentMapper receiptPaymentMapper;
private final SalesReceiptReturnMapper salesReceiptReturnMapper;
private final AiSessionUserContext aiSessionUserContext;
@@ -59,14 +56,12 @@
SalesLedgerMapper salesLedgerMapper,
SalesQuotationMapper salesQuotationMapper,
ShippingInfoMapper shippingInfoMapper,
- ReceiptPaymentMapper receiptPaymentMapper,
SalesReceiptReturnMapper salesReceiptReturnMapper,
AiSessionUserContext aiSessionUserContext) {
this.customerMapper = customerMapper;
this.salesLedgerMapper = salesLedgerMapper;
this.salesQuotationMapper = salesQuotationMapper;
this.shippingInfoMapper = shippingInfoMapper;
- this.receiptPaymentMapper = receiptPaymentMapper;
this.salesReceiptReturnMapper = salesReceiptReturnMapper;
this.aiSessionUserContext = aiSessionUserContext;
}
@@ -293,55 +288,56 @@
@P(value = "杩斿洖鏉℃暟锛岄粯璁�10锛屾渶澶�30", required = false) Integer limit) {
LoginUser loginUser = currentLoginUser(memoryId);
DateRange range = resolveDateRange(startDate, endDate, null);
- LambdaQueryWrapper<ReceiptPayment> wrapper = new LambdaQueryWrapper<>();
- applyTenantFilter(wrapper, loginUser.getTenantId(), ReceiptPayment::getTenantId);
- applyDeptFilter(wrapper, loginUser.getCurrentDeptId(), ReceiptPayment::getDeptId);
- wrapper.ge(ReceiptPayment::getReceiptPaymentDate, range.start())
- .le(ReceiptPayment::getReceiptPaymentDate, range.end())
- .orderByDesc(ReceiptPayment::getReceiptPaymentDate, ReceiptPayment::getId);
- List<ReceiptPayment> payments = defaultList(receiptPaymentMapper.selectList(wrapper));
- if (payments.isEmpty()) {
- return jsonResponse(true, "sales_customer_interaction_list", "鏈煡璇㈠埌瀹㈡埛寰�鏉ヨ褰�", rangeSummary(range, 0, keyword), Map.of("items", List.of()), Map.of());
- }
+// LambdaQueryWrapper<ReceiptPayment> wrapper = new LambdaQueryWrapper<>();
+// applyTenantFilter(wrapper, loginUser.getTenantId(), ReceiptPayment::getTenantId);
+// applyDeptFilter(wrapper, loginUser.getCurrentDeptId(), ReceiptPayment::getDeptId);
+// wrapper.ge(ReceiptPayment::getReceiptPaymentDate, range.start())
+// .le(ReceiptPayment::getReceiptPaymentDate, range.end())
+// .orderByDesc(ReceiptPayment::getReceiptPaymentDate, ReceiptPayment::getId);
+// List<ReceiptPayment> payments = defaultList(receiptPaymentMapper.selectList(wrapper));
+// if (payments.isEmpty()) {
+// return jsonResponse(true, "sales_customer_interaction_list", "鏈煡璇㈠埌瀹㈡埛寰�鏉ヨ褰�", rangeSummary(range, 0, keyword), Map.of("items", List.of()), Map.of());
+// }
+//
+// List<Long> ledgerIds = payments.stream()
+// .map(ReceiptPayment::getSalesLedgerId)
+// .filter(Objects::nonNull)
+// .distinct()
+// .collect(Collectors.toList());
+// Map<Long, SalesLedger> ledgerMap = defaultList(salesLedgerMapper.selectBatchIds(ledgerIds)).stream()
+// .filter(ledger -> tenantMatched(ledger.getTenantId(), loginUser.getTenantId()))
+// .collect(Collectors.toMap(SalesLedger::getId, item -> item, (a, b) -> a, LinkedHashMap::new));
+//
+// List<ReceiptPayment> filtered = payments.stream()
+// .filter(item -> matchInteractionKeyword(item, ledgerMap.get(item.getSalesLedgerId()), keyword))
+// .limit(normalizeLimit(limit))
+// .collect(Collectors.toList());
+//
+// BigDecimal totalReceiptAmount = filtered.stream()
+// .map(ReceiptPayment::getReceiptPaymentAmount)
+// .filter(Objects::nonNull)
+// .reduce(BigDecimal.ZERO, BigDecimal::add);
- List<Long> ledgerIds = payments.stream()
- .map(ReceiptPayment::getSalesLedgerId)
- .filter(Objects::nonNull)
- .distinct()
- .collect(Collectors.toList());
- Map<Long, SalesLedger> ledgerMap = defaultList(salesLedgerMapper.selectBatchIds(ledgerIds)).stream()
- .filter(ledger -> tenantMatched(ledger.getTenantId(), loginUser.getTenantId()))
- .collect(Collectors.toMap(SalesLedger::getId, item -> item, (a, b) -> a, LinkedHashMap::new));
+// List<Map<String, Object>> items = filtered.stream().map(item -> {
+// SalesLedger ledger = ledgerMap.get(item.getSalesLedgerId());
+// Map<String, Object> map = new LinkedHashMap<>();
+// map.put("id", item.getId());
+// map.put("salesLedgerId", item.getSalesLedgerId());
+// map.put("salesContractNo", ledger == null ? "" : safe(ledger.getSalesContractNo()));
+// map.put("customerName", ledger == null ? "" : safe(ledger.getCustomerName()));
+// map.put("projectName", ledger == null ? "" : safe(ledger.getProjectName()));
+// map.put("receiptPaymentDate", formatDate(item.getReceiptPaymentDate()));
+// map.put("receiptPaymentAmount", item.getReceiptPaymentAmount());
+// map.put("receiptPaymentType", safe(item.getReceiptPaymentType()));
+// map.put("registrant", safe(item.getRegistrant()));
+// return map;
+// }).collect(Collectors.toList());
- List<ReceiptPayment> filtered = payments.stream()
- .filter(item -> matchInteractionKeyword(item, ledgerMap.get(item.getSalesLedgerId()), keyword))
- .limit(normalizeLimit(limit))
- .collect(Collectors.toList());
-
- BigDecimal totalReceiptAmount = filtered.stream()
- .map(ReceiptPayment::getReceiptPaymentAmount)
- .filter(Objects::nonNull)
- .reduce(BigDecimal.ZERO, BigDecimal::add);
-
- List<Map<String, Object>> items = filtered.stream().map(item -> {
- SalesLedger ledger = ledgerMap.get(item.getSalesLedgerId());
- Map<String, Object> map = new LinkedHashMap<>();
- map.put("id", item.getId());
- map.put("salesLedgerId", item.getSalesLedgerId());
- map.put("salesContractNo", ledger == null ? "" : safe(ledger.getSalesContractNo()));
- map.put("customerName", ledger == null ? "" : safe(ledger.getCustomerName()));
- map.put("projectName", ledger == null ? "" : safe(ledger.getProjectName()));
- map.put("receiptPaymentDate", formatDate(item.getReceiptPaymentDate()));
- map.put("receiptPaymentAmount", item.getReceiptPaymentAmount());
- map.put("receiptPaymentType", safe(item.getReceiptPaymentType()));
- map.put("registrant", safe(item.getRegistrant()));
- return map;
- }).collect(Collectors.toList());
-
- Map<String, Object> summary = rangeSummary(range, items.size(), keyword);
- summary.put("totalReceiptAmount", totalReceiptAmount);
- summary.put("customerCount", items.stream().map(item -> String.valueOf(item.get("customerName"))).filter(StringUtils::hasText).distinct().count());
- return jsonResponse(true, "sales_customer_interaction_list", "宸茶繑鍥炲鎴峰線鏉ユ槑缁�", summary, Map.of("items", items), Map.of());
+// Map<String, Object> summary = rangeSummary(range, items.size(), keyword);
+// summary.put("totalReceiptAmount", totalReceiptAmount);
+// summary.put("customerCount", items.stream().map(item -> String.valueOf(item.get("customerName"))).filter(StringUtils::hasText).distinct().count());
+// return jsonResponse(true, "sales_customer_interaction_list", "宸茶繑鍥炲鎴峰線鏉ユ槑缁�", summary, Map.of("items", items), Map.of());
+ return jsonResponse(true, "sales_customer_interaction_list", "宸茶繑鍥炲鎴峰線鏉ユ槑缁�", null, Map.of("items", List.of()), Map.of());
}
@Tool(name = "鏌ヨ鍙戣揣鍙拌处", value = "鎸夊叧閿瘝鍜屾椂闂磋寖鍥存煡璇㈠彂璐у彴璐�")
@@ -412,7 +408,7 @@
List<SalesLedger> ledgers = querySalesLedgers(loginUser, range);
List<SalesQuotation> quotations = querySalesQuotations(loginUser, range);
List<ShippingInfo> shippings = queryShippings(loginUser, range);
- List<ReceiptPayment> receipts = queryReceipts(loginUser, range);
+
BigDecimal contractAmountTotal = ledgers.stream()
.map(SalesLedger::getContractAmount)
@@ -422,11 +418,6 @@
.map(SalesQuotation::getTotalAmount)
.filter(Objects::nonNull)
.reduce(BigDecimal.ZERO, BigDecimal::add);
- BigDecimal receivedAmountTotal = receipts.stream()
- .map(ReceiptPayment::getReceiptPaymentAmount)
- .filter(Objects::nonNull)
- .reduce(BigDecimal.ZERO, BigDecimal::add);
- BigDecimal pendingAmountTotal = maxZero(contractAmountTotal.subtract(receivedAmountTotal));
long shippingCount = shippings.size();
long shippedCount = shippings.stream().filter(item -> isShippedStatus(item.getStatus())).count();
@@ -446,11 +437,12 @@
summary.put("shipRate", shipRate);
summary.put("contractAmountTotal", contractAmountTotal);
summary.put("quotationAmountTotal", quotationAmountTotal);
- summary.put("receivedAmountTotal", receivedAmountTotal);
- summary.put("pendingAmountTotal", pendingAmountTotal);
+ summary.put("receivedAmountTotal", BigDecimal.ZERO);
+ summary.put("pendingAmountTotal", BigDecimal.ZERO);
Map<String, Object> charts = new LinkedHashMap<>();
- charts.put("amountBarOption", buildAmountBarOption(contractAmountTotal, quotationAmountTotal, receivedAmountTotal, pendingAmountTotal));
+// charts.put("amountBarOption", buildAmountBarOption(contractAmountTotal, quotationAmountTotal, receivedAmountTotal, pendingAmountTotal));
+ charts.put("amountBarOption", buildAmountBarOption(contractAmountTotal, quotationAmountTotal, BigDecimal.ONE, BigDecimal.ONE));
charts.put("shippingPieOption", buildShippingPieOption(shippedCount, Math.max(shippingCount - shippedCount, 0)));
charts.put("customerTopBarOption", buildCustomerTopBarOption(topCustomers));
charts.put("contractTrendLineOption", buildContractTrendLineOption(trendData.labels(), trendData.values()));
@@ -844,28 +836,6 @@
return defaultList(shippingInfoMapper.selectList(wrapper));
}
- private List<ReceiptPayment> queryReceipts(LoginUser loginUser, DateRange range) {
- LambdaQueryWrapper<ReceiptPayment> wrapper = new LambdaQueryWrapper<>();
- applyTenantFilter(wrapper, loginUser.getTenantId(), ReceiptPayment::getTenantId);
- applyDeptFilter(wrapper, loginUser.getCurrentDeptId(), ReceiptPayment::getDeptId);
- if (range != null) {
- wrapper.ge(ReceiptPayment::getReceiptPaymentDate, range.start())
- .le(ReceiptPayment::getReceiptPaymentDate, range.end());
- }
- return defaultList(receiptPaymentMapper.selectList(wrapper));
- }
-
- private List<ReceiptPayment> queryReceiptsByLedgerIds(LoginUser loginUser, List<Long> ledgerIds) {
- if (ledgerIds == null || ledgerIds.isEmpty()) {
- return List.of();
- }
- LambdaQueryWrapper<ReceiptPayment> wrapper = new LambdaQueryWrapper<>();
- applyTenantFilter(wrapper, loginUser.getTenantId(), ReceiptPayment::getTenantId);
- applyDeptFilter(wrapper, loginUser.getCurrentDeptId(), ReceiptPayment::getDeptId);
- wrapper.in(ReceiptPayment::getSalesLedgerId, ledgerIds);
- return defaultList(receiptPaymentMapper.selectList(wrapper));
- }
-
private List<ShippingInfo> queryShippingsByLedgerIds(LoginUser loginUser, List<Long> ledgerIds) {
if (ledgerIds == null || ledgerIds.isEmpty()) {
return List.of();
@@ -893,12 +863,7 @@
private Map<Long, BigDecimal> sumReceiptAmounts(LoginUser loginUser, List<Long> ledgerIds) {
Map<Long, BigDecimal> result = new HashMap<>();
- for (ReceiptPayment item : queryReceiptsByLedgerIds(loginUser, ledgerIds)) {
- if (item.getSalesLedgerId() == null) {
- continue;
- }
- result.merge(item.getSalesLedgerId(), defaultDecimal(item.getReceiptPaymentAmount()), BigDecimal::add);
- }
+
return result;
}
@@ -938,17 +903,6 @@
|| safe(customer.getContactPhone()).contains(text)
|| safe(customer.getCompanyPhone()).contains(text)
|| safe(customer.getUsageUserName()).contains(text);
- }
-
- private boolean matchInteractionKeyword(ReceiptPayment payment, SalesLedger ledger, String keyword) {
- if (!StringUtils.hasText(keyword)) {
- return true;
- }
- String text = keyword.trim();
- return safe(payment.getRegistrant()).contains(text)
- || (ledger != null && (safe(ledger.getCustomerName()).contains(text)
- || safe(ledger.getSalesContractNo()).contains(text)
- || safe(ledger.getProjectName()).contains(text)));
}
private boolean matchLedgerCustomerKeyword(SalesLedger ledger, String keyword) {
diff --git a/src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java b/src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java
index 71e7eaa..6fa2822 100644
--- a/src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java
+++ b/src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java
@@ -57,7 +57,6 @@
SALES_QUOTATION("sales_quotation"),
SALES_LEDGER_PRODUCT("sales_ledger_product"),
PURCHASE_LEDGER_FILE("purchase_ledger_file"),
- RECEIPT_PAYMENT("receipt_payment"),
PAYMENT_SHIPPING("payment_shipping"),
LOSS("loss"),
INVOICE_LEDGER_FILE("invoice_ledger_file"),
@@ -84,15 +83,11 @@
QUALITY_INSPECT_PARAM("quality_inspect_param"),
QUALITY_INSPECT("quality_inspect"),
// Purchase
- TICKET_REGISTRATION("ticket_registration"),
PURCHASE_RETURN_ORDER_PRODUCTS("purchase_return_order_products"),
PURCHASE_RETURN_ORDERS("purchase_return_orders"),
SALES_LEDGER_PRODUCT_TEMPLATE("sales_ledger_product_template"),
PURCHASE_LEDGER("purchase_ledger"),
PURCHASE_LEDGER_TEMPLATE("purchase_ledger_template"),
- PRODUCT_RECORD("product_record"),
- PAYMENT_REGISTRATION("payment_registration"),
- INVOICE_PURCHASE("invoice_purchase"),
// Project Management
SHIPPING_ADDRESS("shipping_address"),
ROLES("roles"),
diff --git a/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java b/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java
index e30f447..82c1d26 100644
--- a/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java
+++ b/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java
@@ -29,18 +29,14 @@
import com.ruoyi.production.mapper.*;
import com.ruoyi.project.system.domain.SysDept;
import com.ruoyi.project.system.mapper.SysDeptMapper;
-import com.ruoyi.purchase.mapper.PaymentRegistrationMapper;
import com.ruoyi.purchase.mapper.PurchaseLedgerMapper;
-import com.ruoyi.purchase.pojo.PaymentRegistration;
import com.ruoyi.purchase.pojo.PurchaseLedger;
import com.ruoyi.quality.mapper.QualityInspectMapper;
import com.ruoyi.quality.mapper.QualityUnqualifiedMapper;
import com.ruoyi.quality.pojo.QualityInspect;
import com.ruoyi.quality.pojo.QualityUnqualified;
-import com.ruoyi.sales.mapper.ReceiptPaymentMapper;
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 com.ruoyi.staff.mapper.StaffOnJobMapper;
@@ -81,10 +77,6 @@
private final QualityInspectMapper qualityStatisticsMapper;
private final ApproveProcessMapper approveProcessMapper;
-
- private final ReceiptPaymentMapper receiptPaymentMapper;
-
- private final PaymentRegistrationMapper paymentRegistrationMapper;
private final SysDeptMapper sysDeptMapper;
@@ -412,6 +404,7 @@
*/
@Override
public StatisticsReceivablePayableDto statisticsReceivablePayable(Integer type) {
+ StatisticsReceivablePayableDto statisticsReceivablePayableDto = new StatisticsReceivablePayableDto();
LocalDate today = LocalDate.now();
LocalDate startDate = null;
LocalDate endDate = null;
@@ -438,48 +431,14 @@
break;
}
// 搴旀敹
- List<SalesLedger> salesLedgers = salesLedgerMapper.selectList(new LambdaQueryWrapper<SalesLedger>()
- // .ge(SalesLedger::getEntryDate, startDate)
- // .lt(SalesLedger::getEntryDate, endDate)
- );
- // BigDecimal receivableMoney =
- // salesLedgers.stream().map(SalesLedger::getContractAmount).reduce(BigDecimal.ZERO,
- // BigDecimal::add);
- BigDecimal receivableMoney = sumAmount(salesLedgers, SalesLedger::getContractAmount);
+
// 搴斾粯
- List<PurchaseLedger> procurementRecords = purchaseLedgerMapper
- .selectList(new LambdaQueryWrapper<PurchaseLedger>()
- // .ge(PurchaseLedger::getEntryDate, startDate)
- // .lt(PurchaseLedger::getEntryDate, endDate)
- );
- // BigDecimal payableMoney =
- // procurementRecords.stream().map(PurchaseLedger::getContractAmount).reduce(BigDecimal.ZERO,
- // BigDecimal::add);
- BigDecimal payableMoney = sumAmount(procurementRecords, PurchaseLedger::getContractAmount);
+
// 棰勬敹
- List<ReceiptPayment> receiptPayments = receiptPaymentMapper.selectList(new LambdaQueryWrapper<ReceiptPayment>()
- // .ge(ReceiptPayment::getReceiptPaymentDate, startDate)
- // .lt(ReceiptPayment::getReceiptPaymentDate, endDate)
- );
- // BigDecimal advanceMoney =
- // receiptPayments.stream().map(ReceiptPayment::getReceiptPaymentAmount).reduce(BigDecimal.ZERO,
- // BigDecimal::add);
- BigDecimal advanceMoney = sumAmount(receiptPayments, ReceiptPayment::getReceiptPaymentAmount);
+
// 棰勪粯
- List<PaymentRegistration> paymentRegistrations = paymentRegistrationMapper
- .selectList(new LambdaQueryWrapper<PaymentRegistration>()
- // .ge(PaymentRegistration::getPaymentDate, startDate)
- // .lt(PaymentRegistration::getPaymentDate, endDate)
- );
- // BigDecimal prepayMoney =
- // paymentRegistrations.stream().map(PaymentRegistration::getCurrentPaymentAmount).reduce(BigDecimal.ZERO,
- // BigDecimal::add);
- BigDecimal prepayMoney = sumAmount(paymentRegistrations, PaymentRegistration::getCurrentPaymentAmount);
- StatisticsReceivablePayableDto statisticsReceivablePayableDto = new StatisticsReceivablePayableDto();
- statisticsReceivablePayableDto.setPayableMoney(payableMoney.subtract(prepayMoney));
- statisticsReceivablePayableDto.setReceivableMoney(receivableMoney.subtract(advanceMoney));
- statisticsReceivablePayableDto.setAdvanceMoney(advanceMoney);
- statisticsReceivablePayableDto.setPrepayMoney(prepayMoney);
+
+
return statisticsReceivablePayableDto;
}
diff --git a/src/main/java/com/ruoyi/purchase/controller/AccountingReportController.java b/src/main/java/com/ruoyi/purchase/controller/AccountingReportController.java
index 813fb44..ee31a4b 100644
--- a/src/main/java/com/ruoyi/purchase/controller/AccountingReportController.java
+++ b/src/main/java/com/ruoyi/purchase/controller/AccountingReportController.java
@@ -1,27 +1,17 @@
package com.ruoyi.purchase.controller;
-import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
-import com.ruoyi.purchase.dto.InvoicePurchaseReportDto;
-import com.ruoyi.purchase.dto.VatDto;
-import com.ruoyi.purchase.pojo.InvoicePurchase;
-import com.ruoyi.purchase.service.IInvoicePurchaseService;
-import com.ruoyi.waterrecord.pojo.WaterRecord;
-import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.servlet.http.HttpServletResponse;
import lombok.AllArgsConstructor;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-
-import jakarta.servlet.http.HttpServletResponse;
-import java.util.List;
@RestController
@Tag(name = "閲囪喘鎶ヨ〃")
@@ -29,40 +19,29 @@
@AllArgsConstructor
public class AccountingReportController {
- private IInvoicePurchaseService invoicePurchaseService;
@GetMapping("/list")
@Log(title = "閲囪喘鎶ヨ〃-椤圭洰鍒╂鼎", businessType = BusinessType.OTHER)
- public AjaxResult list(Page page, InvoicePurchaseReportDto invoicePurchaseReportDto) {
- IPage<InvoicePurchaseReportDto> result =invoicePurchaseService.listPurchaseReport(page, invoicePurchaseReportDto);
- return AjaxResult.success(result);
+ public AjaxResult list(Page page) {
+ return AjaxResult.success();
}
@Log(title = "閲囪喘鎶ヨ〃-椤圭洰鍒╂鼎瀵煎嚭", businessType = BusinessType.EXPORT)
@PostMapping("/export")
@Operation(summary = "閲囪喘鎶ヨ〃-椤圭洰鍒╂鼎瀵煎嚭")
public void export(HttpServletResponse response) {
- Page page = new Page(-1,-1);
- InvoicePurchaseReportDto waterRecord = new InvoicePurchaseReportDto();
- IPage<InvoicePurchaseReportDto> listPage = invoicePurchaseService.listPurchaseReport(page, waterRecord);
- ExcelUtil<InvoicePurchaseReportDto> util = new ExcelUtil<InvoicePurchaseReportDto>(InvoicePurchaseReportDto.class);
- util.exportExcel(response, listPage.getRecords() , "椤圭洰鍒╂鼎瀵煎嚭");
+
}
@Log(title = "閲囪喘鎶ヨ〃-澧炲�肩◣姣斿", businessType = BusinessType.OTHER)
@GetMapping("/listVat")
public AjaxResult listVat(Page page,String month) {
- IPage<VatDto> result = invoicePurchaseService.listVat(page, month);
- return AjaxResult.success(result);
+ return AjaxResult.success();
}
@Log(title = "閲囪喘鎶ヨ〃-澧炲�肩◣姣斿", businessType = BusinessType.EXPORT)
@PostMapping("/exportTwo")
@Operation(summary = "閲囪喘鎶ヨ〃-澧炲�肩◣姣斿")
public void exportTwo(HttpServletResponse response) {
- Page page = new Page(-1,-1);
- IPage<VatDto> result = invoicePurchaseService.listVat(page, null);
- ExcelUtil<VatDto> util = new ExcelUtil<VatDto>(VatDto.class);
- util.exportExcel(response, result.getRecords() , "澧炲�肩◣姣斿");
}
}
diff --git a/src/main/java/com/ruoyi/purchase/controller/InvoicePurchaseController.java b/src/main/java/com/ruoyi/purchase/controller/InvoicePurchaseController.java
deleted file mode 100644
index afd9213..0000000
--- a/src/main/java/com/ruoyi/purchase/controller/InvoicePurchaseController.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package com.ruoyi.purchase.controller;
-
-import com.ruoyi.common.utils.poi.ExcelUtil;
-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;
-import com.ruoyi.purchase.dto.InvoicePurchaseDto;
-import com.ruoyi.purchase.pojo.InvoicePurchase;
-import com.ruoyi.purchase.service.IInvoicePurchaseService;
-import com.ruoyi.sales.service.ICommonFileService;
-import jakarta.servlet.http.HttpServletResponse;
-import lombok.AllArgsConstructor;
-import org.springframework.web.bind.annotation.*;
-
-import java.io.IOException;
-import java.util.List;
-
-/**
- * 鍙戠エ淇℃伅Controller
- *
- * @author ruoyi
- * @date 2025-05-14
- */
-@RestController
-@AllArgsConstructor
-@RequestMapping("/purchase/invoice")
-public class InvoicePurchaseController extends BaseController {
-
- private IInvoicePurchaseService invoicePurchaseService;
-
- private ICommonFileService commonFileService;
-
- /**
- * 鏌ヨ鍙戠エ淇℃伅鍒楄〃
- */
- @GetMapping("/list")
- public TableDataInfo list(InvoicePurchaseDto invoicePurchaseDto) {
- startPage();
- List<InvoicePurchaseDto> list = invoicePurchaseService.selectInvoicePurchaseList(invoicePurchaseDto);
- return getDataTable(list);
- }
-
- /**
- * 瀵煎嚭鍙戠エ淇℃伅鍒楄〃
- */
- @Log(title = "鍙戠エ淇℃伅", businessType = BusinessType.EXPORT)
- @PostMapping("/export")
- public void export(HttpServletResponse response, InvoicePurchase invoicePurchase) {
- List<InvoicePurchase> list = invoicePurchaseService.selectInvoicePurchaseLists(invoicePurchase);
- ExcelUtil<InvoicePurchase> util = new ExcelUtil<InvoicePurchase>(InvoicePurchase.class);
- util.exportExcel(response, list, "鍙戠エ淇℃伅鏁版嵁");
- }
-
- /**
- * 鏌ヨ鍙戠エ淇℃伅
- */
- @GetMapping("/getInvoiceById")
- public InvoicePurchaseDto getInvoiceById(InvoicePurchaseDto invoicePurchaseDto) {
- return invoicePurchaseService.getInvoiceById(invoicePurchaseDto);
- }
-
- /**
- * 鏂板淇敼鍙戠エ淇℃伅
- */
- @Log(title = "鍙戠エ淇℃伅", businessType = BusinessType.INSERT)
- @PostMapping("/addOrUpdateInvoice")
- public AjaxResult addOrUpdateInvoice(@RequestBody InvoicePurchaseDto invoicePurchaseDto) throws IOException {
- return toAjax(invoicePurchaseService.addOrUpdateInvoice(invoicePurchaseDto));
- }
-
- /**
- * 鍒犻櫎鍙戠エ淇℃伅
- */
- @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/PaymentRegistrationController.java b/src/main/java/com/ruoyi/purchase/controller/PaymentRegistrationController.java
deleted file mode 100644
index 289110c..0000000
--- a/src/main/java/com/ruoyi/purchase/controller/PaymentRegistrationController.java
+++ /dev/null
@@ -1,184 +0,0 @@
-package com.ruoyi.purchase.controller;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.common.utils.poi.ExcelUtil;
-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;
-import com.ruoyi.purchase.dto.PaymentHistoryRecordVo;
-import com.ruoyi.purchase.dto.PaymentLedgerDto;
-import com.ruoyi.purchase.dto.PaymentRegistrationDto;
-import com.ruoyi.purchase.pojo.PaymentRegistration;
-import com.ruoyi.purchase.service.IPaymentRegistrationService;
-import lombok.AllArgsConstructor;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.*;
-
-import jakarta.servlet.http.HttpServletResponse;
-import java.util.List;
-import java.util.Map;
-
-/**
- * 浠樻鐧昏Controller
- *
- * @author ruoyi
- * @date 2025-05-15
- */
-@RestController
-@RequestMapping("/purchase/paymentRegistration")
-@AllArgsConstructor
-public class PaymentRegistrationController extends BaseController {
- private IPaymentRegistrationService paymentRegistrationService;
-
- /**
- * 鏌ヨ浠樻鐧昏鍒楄〃
- */
-// @PreAuthorize("@ss.hasPermi('system:registration:list')")
- @GetMapping("/list")
- public TableDataInfo list(PaymentRegistrationDto paymentRegistrationDto) {
- startPage();
- List<PaymentRegistrationDto> list = paymentRegistrationService.selectPaymentRegistrationList(paymentRegistrationDto);
- return getDataTable(list);
- }
-
- /**
- * 瀵煎嚭浠樻娴佹按鍒楄〃
- */
- @Log(title = "瀵煎嚭浠樻娴佹按鍒楄〃", businessType = BusinessType.EXPORT)
- @PostMapping("/export")
- public void export(HttpServletResponse response, PaymentRegistrationDto paymentRegistrationDto)
- {
- Page page = new Page<>(-1,-1);
- IPage<PaymentRegistrationDto> paymentRegistrationDtoIPage = paymentHistoryListPage(page, paymentRegistrationDto);
- ExcelUtil<PaymentRegistrationDto> util = new ExcelUtil<PaymentRegistrationDto>(PaymentRegistrationDto.class);
- util.exportExcel(response, paymentRegistrationDtoIPage.getRecords(), "瀵煎嚭浠樻娴佹按鍒楄〃");
- }
-
- /**
- * 鑾峰彇浠樻鐧昏璇︾粏淇℃伅
- */
- @GetMapping(value = "/{id}")
- public AjaxResult getInfo(@PathVariable("id") Long id) {
- return success(paymentRegistrationService.selectPaymentRegistrationById(id));
- }
-
- /**
- * 鏂板浠樻鐧昏
- */
- @Log(title = "浠樻鐧昏", businessType = BusinessType.INSERT)
- @PostMapping
- @Transactional(rollbackFor = Exception.class)
- public AjaxResult add(@RequestBody List<PaymentRegistration> paymentRegistration) {
- return toAjax(paymentRegistrationService.insertPaymentRegistration(paymentRegistration));
- }
-
- /**
- * 淇敼浠樻鐧昏
- */
- @Log(title = "浠樻鐧昏", businessType = BusinessType.UPDATE)
- @PutMapping
- @Transactional(rollbackFor = Exception.class)
- public AjaxResult edit(@RequestBody PaymentRegistration paymentRegistration) {
- return toAjax(paymentRegistrationService.updatePaymentRegistration(paymentRegistration));
- }
-
- /**
- * 鍒犻櫎浠樻鐧昏
- */
- @Log(title = "浠樻鐧昏", businessType = BusinessType.DELETE)
- @DeleteMapping("/del")
- public AjaxResult remove(@RequestBody Long[] ids) {
- return toAjax(paymentRegistrationService.deletePaymentRegistrationByIds(ids));
- }
-
- /**
- * 鍒犻櫎浠樻鐧昏
- */
- @Log(title = "浠樻鐧昏", businessType = BusinessType.DELETE)
- @DeleteMapping("/delete")
- public AjaxResult delete(@RequestBody Long[] ids) {
- return toAjax(paymentRegistrationService.delete(ids));
- }
-
- /**
- * 鑾峰彇浠樻鐧昏璇︾粏淇℃伅
- */
- @GetMapping(value = "/byPurchaseId/{id}")
- public AjaxResult getPurchaseInfo(@PathVariable("id") Long id) {
- return success(paymentRegistrationService.selectPaymentRegistrationByPurchaseId(id));
- }
-
- /**
- * 鑾峰彇浠樻鐧昏璇︾粏淇℃伅
- */
- @GetMapping(value = "/paymentLedgerList")
- public AjaxResult paymentLedgerList(PaymentLedgerDto paymentLedgerDto, Page page,
- Integer detailPageNum,
- Integer detailPageSize) {
- IPage<Map<String, Object>> mapIPage = paymentRegistrationService.selectPaymentLedgerList(paymentLedgerDto, page, detailPageNum, detailPageSize);
- return success(mapIPage);
- }
-
- /**
- * 渚涘簲鍟嗗線鏉ュ垎椤垫帴鍙�
- */
- @GetMapping("/supplierNameListPage")
- public AjaxResult supplierNameListPage(PaymentLedgerDto paymentLedgerDto, Page page){
- return success(paymentRegistrationService.supplierNameListPage(page,paymentLedgerDto));
- }
-
- /**
- * 渚涘簲鍟嗗線鏉ュ垎椤垫帴鍙�
- */
- @GetMapping("/supplierNameListPageDetails")
- public AjaxResult supplierNameListPageDetails(PaymentLedgerDto paymentLedgerDto){
- return success(paymentRegistrationService.supplierNameListPageDetails(paymentLedgerDto));
- }
-
- /**
- * 鑾峰彇鏈湀搴斾粯淇℃伅
- */
- @GetMapping(value = "/paymentMonthList")
- public AjaxResult paymentMonthList() {
- return success(paymentRegistrationService.paymentMonthList());
- }
-
- /**
- * 鏌ヨ浠樻鐧昏鍒楄〃
- *
- * @param paymentRegistrationDto 浠樻鐧昏
- * @return 浠樻鐧昏闆嗗悎
- */
- @GetMapping("/paymentHistoryList")
- public TableDataInfo paymentHistoryList(PaymentRegistrationDto paymentRegistrationDto) {
- startPage();
- List<PaymentRegistrationDto> list = paymentRegistrationService.paymentHistoryList(paymentRegistrationDto);
- return getDataTable(list);
- }
-
- /**
- * 鏌ヨ渚涘簲鍟嗗線鏉ヨ褰�
- * @param supplierId
- * @return
- */
- @GetMapping("/getPaymentRecordList/{supplierId}")
- public AjaxResult getPaymentRecordList(@PathVariable Long supplierId) {
- List<PaymentHistoryRecordVo> paymentRecordList = paymentRegistrationService.getPaymentRecordList(supplierId);
- return success(paymentRecordList);
- }
-
- /**
- * 鏌ヨ浠樻鐧昏鍒楄〃
- *
- * @param paymentRegistrationDto 浠樻鐧昏
- * @return 浠樻鐧昏闆嗗悎
- */
- @GetMapping("/paymentHistoryListPage")
- public IPage<PaymentRegistrationDto> paymentHistoryListPage(Page page, PaymentRegistrationDto paymentRegistrationDto) {
- return paymentRegistrationService.paymentHistoryListPage(page,paymentRegistrationDto);
- }
-}
diff --git a/src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java b/src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java
index def8948..0951d3b 100644
--- a/src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java
+++ b/src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java
@@ -1,7 +1,6 @@
package com.ruoyi.purchase.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
@@ -127,19 +126,6 @@
util.exportExcel(response, list, "銆愯濉啓鍔熻兘鍚嶇О銆戞暟鎹�");
}
- /**
- * 瀵煎嚭鏉ョエ鐧昏鍒楄〃
- */
- @Log(title = "瀵煎嚭鏉ョエ鐧昏鍒楄〃", businessType = BusinessType.EXPORT)
- @PostMapping("/exportOne")
- public void exportOne(HttpServletResponse response, PurchaseLedger purchaseLedger) {
- Page page = new Page();
- page.setCurrent(-1);
- page.setSize(-1);
- IPage<PurchaseLedgerDto> purchaseLedgerDtoIPage = purchaseLedgerService.selectPurchaseLedgerListPage(page, new PurchaseLedgerDto());
- ExcelUtil<PurchaseLedgerDto> util = new ExcelUtil<PurchaseLedgerDto>(PurchaseLedgerDto.class);
- util.exportExcel(response, purchaseLedgerDtoIPage.getRecords(), "瀵煎嚭鏉ョエ鐧昏鍒楄〃");
- }
/**
* 鏂板淇敼閲囪喘鍙拌处
diff --git a/src/main/java/com/ruoyi/purchase/controller/TicketRegistrationController.java b/src/main/java/com/ruoyi/purchase/controller/TicketRegistrationController.java
deleted file mode 100644
index db628af..0000000
--- a/src/main/java/com/ruoyi/purchase/controller/TicketRegistrationController.java
+++ /dev/null
@@ -1,206 +0,0 @@
-package com.ruoyi.purchase.controller;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.common.utils.poi.ExcelUtil;
-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;
-import com.ruoyi.purchase.dto.PaymentRegistrationDto;
-import com.ruoyi.purchase.dto.ProductRecordDto;
-import com.ruoyi.purchase.dto.TicketRegistrationDto;
-import com.ruoyi.purchase.pojo.PaymentRegistration;
-import com.ruoyi.purchase.pojo.ProductRecord;
-import com.ruoyi.purchase.pojo.TicketRegistration;
-import com.ruoyi.purchase.service.IPaymentRegistrationService;
-import com.ruoyi.purchase.service.IProductRecordService;
-import com.ruoyi.purchase.service.ITicketRegistrationService;
-import com.ruoyi.purchase.service.impl.PaymentRegistrationServiceImpl;
-import com.ruoyi.sales.service.ICommonFileService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.media.Schema;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import jakarta.servlet.http.HttpServletResponse;
-import lombok.AllArgsConstructor;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
-import org.springframework.web.bind.annotation.*;
-
-import java.io.IOException;
-import java.util.List;
-
-/**
- * 鏉ョエ鐧昏Controller
- *
- * @author ruoyi
- * @date 2025-05-13
- */
-@RestController
-@RequestMapping("/purchase/registration")
-@AllArgsConstructor
-@Tag(name = "鏉ョエ鐧昏")
-public class TicketRegistrationController extends BaseController {
-
- private final PaymentRegistrationServiceImpl paymentRegistrationServiceImpl;
- private ITicketRegistrationService ticketRegistrationService;
-
- private ICommonFileService commonFileService;
-
- private IProductRecordService productRecordService;
-
- private IPaymentRegistrationService paymentRegistrationService;
-
- /**
- * 鏌ヨ鏉ョエ鐧昏鍒楄〃
- */
- @GetMapping("/list")
- public TableDataInfo list(TicketRegistration ticketRegistration) {
- startPage();
- List<TicketRegistration> list = ticketRegistrationService.selectTicketRegistrationList(ticketRegistration);
- return getDataTable(list);
- }
-
- @Operation(summary = "鏍规嵁id鏌ヨ浠樻娴佹按淇℃伅")
- @GetMapping("/getById")
- public List<PaymentRegistrationDto> getById( Long id ) {
- return ticketRegistrationService.getPaymentRegistrationDtoById(id);
- }
-
- @Operation(summary = "鏍规嵁id鏌ヨ浠樻娴佹按")
- @GetMapping("/getPaymentRegistrationById")
- public AjaxResult getPaymentRegistrationById(Long id) {
- PaymentRegistration byId = paymentRegistrationService.getById(id);
- return AjaxResult.success(byId);
- }
-
- @Operation(summary = "淇敼浠樻娴佹按")
- @PutMapping("/updatePaymentRegistration")
- @Log(title = "淇敼浠樻娴佹按", businessType = BusinessType.UPDATE)
- public AjaxResult updatePaymentRegistration(@RequestBody PaymentRegistration paymentRegistratio) {
- return AjaxResult.success(paymentRegistrationService.updatePaymentRegistration(paymentRegistratio));
- }
-
- @Operation(summary = "鍒犻櫎浠樻娴佹按")
- @DeleteMapping("/delPaymentRegistration")
- @Transactional(rollbackFor = Exception.class)
- public AjaxResult delPaymentRegistration(@RequestBody List<Long> id) {
- return toAjax(paymentRegistrationService.delPaymentRegistration(id));
- }
-
- /**
- * 瀵煎嚭鏉ョエ鐧昏鍒楄〃
- */
- @Log(title = "鏉ョエ鐧昏", businessType = BusinessType.EXPORT)
- @PostMapping("/export")
- public void export(HttpServletResponse response, TicketRegistration ticketRegistration) {
- List<TicketRegistration> list = ticketRegistrationService.selectTicketRegistrationList(ticketRegistration);
- ExcelUtil<TicketRegistration> util = new ExcelUtil<TicketRegistration>(TicketRegistration.class);
- util.exportExcel(response, list, "鏉ョエ鐧昏鏁版嵁");
- }
-
- /**
- * 浠樻鐧昏瀵煎嚭
- */
- @Log(title = "浠樻鐧昏瀵煎嚭", businessType = BusinessType.EXPORT)
- @PostMapping("/exportOne")
- public void exportOne(HttpServletResponse response, TicketRegistration ticketRegistration) {
- Page page = new Page<>(-1, -1);
- IPage<TicketRegistration> ticketRegistrationIPage = listPage(page, ticketRegistration);
- ExcelUtil<TicketRegistration> util = new ExcelUtil<TicketRegistration>(TicketRegistration.class);
- util.exportExcel(response, ticketRegistrationIPage.getRecords(), "浠樻鐧昏瀵煎嚭");
- }
-
- /**
- * 鏌ヨ鏉ョエ鐧昏鍜屼骇鍝佺埗瀛愬垪琛�
- */
- @GetMapping("/getRegistrationById")
- public TicketRegistrationDto getRegistrationById(TicketRegistrationDto ticketRegistrationDto) {
- return ticketRegistrationService.getRegistrationById(ticketRegistrationDto);
- }
-
- /**
- * 鏂板淇敼鏉ョエ鐧昏
- */
- @Log(title = "鏉ョエ鐧昏", businessType = BusinessType.INSERT)
- @PostMapping("/addOrUpdateRegistration")
- @Transactional(rollbackFor = Exception.class)
- public AjaxResult addOrUpdateRegistration(@RequestBody List<TicketRegistrationDto> ticketRegistrationDto) throws IOException {
- if(CollectionUtils.isEmpty(ticketRegistrationDto)) return AjaxResult.error("璇烽�夋嫨瑕佷繚瀛樼殑璁板綍");
- for (TicketRegistrationDto ticketRegistrationDto1 : ticketRegistrationDto) {
- ticketRegistrationService.addOrUpdateRegistration(ticketRegistrationDto1);
- }
- return toAjax(1);
- }
-
-
- @PostMapping("/getProductRecordById")
- public AjaxResult getProductRecordById(@RequestBody ProductRecordDto productRecordDto) {
- if (productRecordDto.getId() == null) {
- return AjaxResult.error("鍙傛暟閿欒");
- }
- return AjaxResult.success(productRecordService.getProductRecordById(productRecordDto));
- }
-
- @Schema(description = "淇敼鏉ョエ鐧昏")
- @PostMapping("/updateRegistration")
- public AjaxResult updateRegistration(@RequestBody ProductRecordDto productRecordDto) {
-
- return productRecordService.updateRecord(productRecordDto);
- }
-
- /**
- * 鍒犻櫎鏉ョエ鐧昏(鏉ョエ鍙拌处)
- */
- @Log(title = "鍒犻櫎鏉ョエ鐧昏(鏉ョエ鍙拌处)", businessType = BusinessType.DELETE)
- @DeleteMapping("/delRegistration")
- @Transactional(rollbackFor = Exception.class)
- public AjaxResult delRegistration(@RequestBody Long[] ids) {
- return toAjax(ticketRegistrationService.delRegistration(ids));
- }
-
- /**
- * 鏌ヨ浜у搧淇℃伅寮�绁ㄨ褰曞垪琛�
- */
- @GetMapping("/productRecordList")
- public List<ProductRecord> productRecordList(TicketRegistrationDto ticketRegistrationDto) {
- List<ProductRecord> list = productRecordService.selectProductRecordList(ticketRegistrationDto);
- return list;
- }
-
- /**
- * 鍒嗛〉鏌ヨ浜у搧淇℃伅寮�绁ㄨ褰曞垪琛�
- */
- @GetMapping("/productRecordPage")
- public AjaxResult productRecordPage(Page page, TicketRegistrationDto ticketRegistrationDto) {
-
- IPage<ProductRecordDto> list = productRecordService.productRecordPage(page,ticketRegistrationDto);
- return AjaxResult.success(list);
- }
-
- /**
- * 鏌ヨ鍙戠エ鍙�
- */
- @GetMapping("/getTicketNo")
- public AjaxResult getTicketNo(TicketRegistrationDto ticketRegistrationDto) {
- return AjaxResult.success(ticketRegistrationService.getTicketNo(ticketRegistrationDto));
- }
-
- /**
- * 鏌ヨ鏉ョエ鐧昏鍒楄〃
- */
- @GetMapping("/listPage")
- public IPage<TicketRegistration> listPage(Page page, TicketRegistration ticketRegistration) {
- return ticketRegistrationService.selectTicketRegistrationListPage(page,ticketRegistration);
- }
-
- @Schema(description = "鏍规嵁id鏌ヨ鏉ユ紓鐧昏")
- @GetMapping("/getPuargeById")
- public AjaxResult getPuargeById(Long id) {
- return AjaxResult.success(ticketRegistrationService.getPuargeById( id));
- }
-
-
-
-}
diff --git a/src/main/java/com/ruoyi/purchase/dto/InvoicePurchaseDto.java b/src/main/java/com/ruoyi/purchase/dto/InvoicePurchaseDto.java
deleted file mode 100644
index c8a8671..0000000
--- a/src/main/java/com/ruoyi/purchase/dto/InvoicePurchaseDto.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package com.ruoyi.purchase.dto;
-
-import com.ruoyi.sales.pojo.CommonFile;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.math.BigDecimal;
-import java.time.LocalDate;
-import java.util.List;
-
-@Data
-public class InvoicePurchaseDto {
-
- private Long id;
-
- /**
- * 閲囪喘鍙拌处id
- */
- private Long purchaseLedgerId;
-
- /**
- * 閲囪喘鍚堝悓鍙�
- */
- private String purchaseContractNo;
-
- /**
- * 鍏宠仈閿�鍞彴璐︿富琛ㄤ富閿�
- */
- private Long salesLedgerId;
-
- /**
- * 閿�鍞悎鍚屽彿
- */
- private String salesContractNo;
-
- /**
- * 渚涘簲鍟嗗悕绉�
- */
- private String supplierName;
-
- /**
- * 鍙戠エ鍙�
- */
- private String invoiceNumber;
-
- /**
- * 鍙戠エ閲戦锛堝厓锛�
- */
- private BigDecimal invoiceAmount;
-
- /**
- * 绋庣巼
- */
- private BigDecimal taxRate;
-
- /**
- * 寮�绁ㄤ汉ID
- */
- private Long issUerId;
-
- /**
- * 寮�绁ㄤ汉
- */
- private String issUer;
-
- /**
- * 寮�绁ㄦ棩鏈�
- */
- @DateTimeFormat(pattern = "yyyy-MM-dd")
- private LocalDate issueDate;
-
- private List<String> tempFileIds;
- private List<CommonFile> CommonFiles;
-
- private String fileName;
-}
diff --git a/src/main/java/com/ruoyi/purchase/dto/InvoicePurchaseReportDto.java b/src/main/java/com/ruoyi/purchase/dto/InvoicePurchaseReportDto.java
deleted file mode 100644
index 45347ad..0000000
--- a/src/main/java/com/ruoyi/purchase/dto/InvoicePurchaseReportDto.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package com.ruoyi.purchase.dto;
-
-import com.ruoyi.framework.aspectj.lang.annotation.Excel;
-import lombok.Data;
-
-/**
- * 鎶ヨ〃鍒嗘瀽---椤圭洰鍒╂鼎
- */
-@Data
-public class InvoicePurchaseReportDto {
-
- //閿�鍞悎鍚屽彿
- @Excel(name = "閿�鍞悎鍚屽彿")
- private String customerContractNo;
-// 瀹㈡埛鍚嶇О
- @Excel(name = "瀹㈡埛鍚嶇О")
- private String customerName;
-// 椤圭洰鍚嶇О
- @Excel(name = "椤圭洰鍚嶇О")
- private String projectName;
-// 鍚堝悓閲戦
- @Excel(name = "鍚堝悓閲戦")
- private String contractAmount;
-// 閲囪喘閲戦
- @Excel(name = "閲囪喘閲戦")
- private String purchaseAmount;
-
- private String saleTaxExclusiveTotalPrice;
-
- private String taxExclusiveTotalPrice;
-// 鍒╂鼎
- @Excel(name = "鍒╂鼎")
- private String balance;
- // 鍒╂鼎鐜�
- @Excel(name = "鍒╂鼎鐜�")
- private String balanceRatio;
- // 澧炲�肩◣
- @Excel(name = "澧炲�肩◣")
- private String balanceAmount;
-
-}
diff --git a/src/main/java/com/ruoyi/purchase/dto/PaymentRegistrationDto.java b/src/main/java/com/ruoyi/purchase/dto/PaymentRegistrationDto.java
deleted file mode 100644
index 8d56648..0000000
--- a/src/main/java/com/ruoyi/purchase/dto/PaymentRegistrationDto.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package com.ruoyi.purchase.dto;
-
-import com.ruoyi.framework.aspectj.lang.annotation.Excel;
-import com.ruoyi.purchase.pojo.PaymentRegistration;
-import lombok.Data;
-
-import java.math.BigDecimal;
-
-@Data
-public class PaymentRegistrationDto extends PaymentRegistration {
-
- // 鏌ヨ鍒楄〃鏌ヨ鐢ㄤ緵搴斿晢鍙峰拰鍚堝悓鍙�
- private String supplierNameOrContractNo;
-
- // 閿�鍞悎鍚屽彿
- private String salesContractNo;
-
- // 閲囪喘鍚堝悓鍙�
- @Excel(name = "閲囪喘鍚堝悓鍙�")
- private String purchaseContractNumber;
-
- // 渚涘簲鍟嗗悕绉�
- @Excel(name = "渚涘簲鍟嗗悕绉�")
- private String supplierName;
-
- // 鍙戠エ鍙�
- private String invoiceNumber;
-
- // 鍙戠エ閲戦
- private BigDecimal invoiceAmount;
-
- // 寰呬粯娆鹃噾棰�
- private BigDecimal unPaymentAmount;
-
- // 浠樻閲戦
- private BigDecimal paymentAmount;
-
- // 搴斾粯閲戦
- private BigDecimal payableAmount;
-
- // 绋庣巼
- private String taxRate;
-
- // 鐧昏浜�
- private String registrant;
-
- private String searchText;
-
- // 宸蹭粯娆炬�婚噾棰�
- private BigDecimal paymentAmountTotal;
-
- private String paymentDateStart;
-
- private String paymentDateEnd;
-}
diff --git a/src/main/java/com/ruoyi/purchase/dto/ProductRecordDto.java b/src/main/java/com/ruoyi/purchase/dto/ProductRecordDto.java
deleted file mode 100644
index 1b3c691..0000000
--- a/src/main/java/com/ruoyi/purchase/dto/ProductRecordDto.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.ruoyi.purchase.dto;
-
-import com.ruoyi.other.pojo.TempFile;
-import com.ruoyi.purchase.pojo.ProductRecord;
-import com.ruoyi.sales.pojo.CommonFile;
-import lombok.Data;
-
-import java.math.BigDecimal;
-import java.util.List;
-
-@Data
-public class ProductRecordDto extends ProductRecord {
-
- private Long ticketRegistrationId;
-
- //閿�鍞悎鍚屽彿
- private String salesContractNo;
- //瀹㈡埛鍚堝悓鍙�
- private String customerContarctNo;
-
- //瀹㈡埛鍚嶇О
- private String customerName;
- //浜у搧鍚嶇О
- private String productModel;
- //閲囪喘鍚堝悓鍙�
- private String purchaseContractNumber;
- //渚涘簲鍟嗗悕绉�
- private String supplierName;
- private String projectName;
- private Long issUerId;
- private String issUer;
- /**
- * 鍚堝悓閲戦锛堜骇鍝佸惈绋庢�讳环锛�
- */
- private BigDecimal contractAmount = BigDecimal.ZERO;
- //澧炲�肩◣
- /**
- * 宸叉潵绁ㄩ噾棰濓紙鍙戠エ閲戦锛�
- */
- private BigDecimal invoiceTotal = BigDecimal.ZERO;
- private BigDecimal invoiceAmount = BigDecimal.ZERO;
- /**
- * 鍙戠エ鍙�
- */
- private String invoiceNumber;
- private BigDecimal unTicketsPrice = BigDecimal.ZERO;
-
- private List<CommonFile> commonFiles;
-
- private List<String> tempFileIds;
-}
diff --git a/src/main/java/com/ruoyi/purchase/dto/TicketRegistrationDto.java b/src/main/java/com/ruoyi/purchase/dto/TicketRegistrationDto.java
deleted file mode 100644
index 59f1da3..0000000
--- a/src/main/java/com/ruoyi/purchase/dto/TicketRegistrationDto.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package com.ruoyi.purchase.dto;
-
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.framework.aspectj.lang.annotation.Excel;
-import com.ruoyi.purchase.pojo.TicketRegistration;
-import com.ruoyi.sales.pojo.CommonFile;
-import com.ruoyi.sales.pojo.SalesLedgerProduct;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.time.LocalDate;
-import java.util.List;
-
-/**
- * 鏉ョエ鐧昏琛�
- */
-
-@Data
-@TableName("ticket_registration")
-public class TicketRegistrationDto extends TicketRegistration {
-
- /**
- * 涓婚敭ID
- */
- private Long id;
-
- /**
- * 閲囪喘鍙拌处id
- */
- private Long purchaseLedgerId;
-
- /**
- * 閲囪喘鍚堝悓鍙�
- */
- private String purchaseContractNumber;
-
- /**
- * 閿�鍞悎鍚屽彿
- */
- private String salesContractNo;
-
- /**
- * 寮�绁ㄦ棩鏈�
- */
-
- @JsonFormat(pattern = "yyyy-MM-dd")
- @DateTimeFormat(pattern = "yyyy-MM-dd")
- private LocalDate entryDate;
-
- /**
- * 瀹㈡埛鍚嶇О
- */
- private String customerName;
-
- /**
- * 涓氬姟鍛�
- */
- private String businessPerson;
-
-
-
- @JsonFormat(pattern = "yyyy-MM-dd")
- @DateTimeFormat(pattern = "yyyy-MM-dd")
- @TableField(exist = false)
- private LocalDate enterDate;
-
- /**
- * 涓氬姟鍛榠d
- */
- private Long businessPersonId;
-
- /**
- * 椤圭洰鍚嶇О
- */
- private String projectName;
-
- private List<SalesLedgerProduct> productData;
-
- private Long salesContractNoId;
- private String supplierName;
-
- private List<String> tempFileIds;
- private List<CommonFile> CommonFiles;
-
- private String fileName;
-
- @TableField(exist = false)
- private String createdAtStart;
- @TableField(exist = false)
- private String createdAtEnd;
-}
diff --git a/src/main/java/com/ruoyi/purchase/mapper/InvoicePurchaseMapper.java b/src/main/java/com/ruoyi/purchase/mapper/InvoicePurchaseMapper.java
deleted file mode 100644
index b737aab..0000000
--- a/src/main/java/com/ruoyi/purchase/mapper/InvoicePurchaseMapper.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.ruoyi.purchase.mapper;
-
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.purchase.dto.InvoicePurchaseReportDto;
-import com.ruoyi.purchase.dto.VatDto;
-import com.ruoyi.purchase.pojo.InvoicePurchase;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-/**
- * 鍙戠エ淇℃伅Mapper鎺ュ彛
- *
- * @author ruoyi
- * @date 2025-05-14
- */
-public interface InvoicePurchaseMapper extends BaseMapper<InvoicePurchase> {
-
-
- IPage<InvoicePurchaseReportDto> selectPurchaseReport(IPage page, @Param("c") InvoicePurchaseReportDto invoicePurchaseReportDto);
-
- IPage<VatDto> listVat(Page page,@Param("month") String month);
-
-}
diff --git a/src/main/java/com/ruoyi/purchase/mapper/PaymentRegistrationMapper.java b/src/main/java/com/ruoyi/purchase/mapper/PaymentRegistrationMapper.java
deleted file mode 100644
index 196d531..0000000
--- a/src/main/java/com/ruoyi/purchase/mapper/PaymentRegistrationMapper.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package com.ruoyi.purchase.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.purchase.dto.PaymentHistoryRecordVo;
-import com.ruoyi.purchase.dto.PaymentLedgerDto;
-import com.ruoyi.purchase.dto.PaymentRegistrationDto;
-import com.ruoyi.purchase.pojo.PaymentRegistration;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-/**
- * 浠樻鐧昏Mapper鎺ュ彛
- *
- * @author ruoyi
- * @date 2025-05-15
- */
-public interface PaymentRegistrationMapper extends BaseMapper<PaymentRegistration> {
- /**
- * 鏌ヨ浠樻鐧昏
- *
- * @param id 浠樻鐧昏涓婚敭
- * @return 浠樻鐧昏
- */
- public PaymentRegistrationDto selectPaymentRegistrationById(@Param("id") Long id);
-
- /**
- * 鏌ヨ浠樻鐧昏鍒楄〃
- *
- * @param paymentRegistrationDto 浠樻鐧昏
- * @return 浠樻鐧昏闆嗗悎
- */
- public List<PaymentRegistrationDto> selectPaymentRegistrationList(PaymentRegistrationDto paymentRegistrationDto);
-
- /**
- * 鏌ヨ浠樻鐧昏鍒楄〃
- *
- * @param paymentRegistrationDto 浠樻鐧昏
- * @return 浠樻鐧昏闆嗗悎
- */
- public List<PaymentRegistrationDto> paymentHistoryList(@Param("params") PaymentRegistrationDto paymentRegistrationDto);
-
- /**
- * 璁$畻姣忓紶鍙戠エ鐨勫凡寮�绁ㄩ噾棰�
- * @param ticketRegistrationIds
- * @return
- */
- public List<PaymentRegistrationDto> countPaymentTotalByTicketRegId(List<Long> ticketRegistrationIds);
-
- /**
- * 鏌ヨ渚涘簲鍟嗗線鏉ヨ褰�
- * @param supplierId
- * @return
- */
- List<PaymentHistoryRecordVo> getPaymentRecordList(Long supplierId);
-
- /**
- * 鏌ヨ浠樻鐧昏鍒楄〃
- *
- * @param paymentRegistrationDto 浠樻鐧昏
- * @return 浠樻鐧昏闆嗗悎
- */
- IPage<PaymentRegistrationDto> paymentHistoryListPage(Page page, @Param("params") PaymentRegistrationDto paymentRegistrationDto);
-
- IPage<PaymentRegistrationDto> supplierNameListPage(Page page,@Param("req") PaymentLedgerDto paymentLedgerDto);
-
- List<PaymentRegistrationDto> supplierNameListPageDetails(@Param("req") PaymentLedgerDto paymentLedgerDto);
-}
diff --git a/src/main/java/com/ruoyi/purchase/mapper/ProductRecordMapper.java b/src/main/java/com/ruoyi/purchase/mapper/ProductRecordMapper.java
deleted file mode 100644
index b4bdea9..0000000
--- a/src/main/java/com/ruoyi/purchase/mapper/ProductRecordMapper.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.ruoyi.purchase.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.purchase.dto.ProductRecordDto;
-import com.ruoyi.purchase.dto.TicketRegistrationDto;
-import com.ruoyi.purchase.pojo.ProductRecord;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-/**
- * 閲囪喘鍙拌处浜у搧寮�绁ㄨ褰昅apper鎺ュ彛
- *
- * @author ruoyi
- * @date 2025-05-23
- */
-public interface ProductRecordMapper extends BaseMapper<ProductRecord> {
-
- IPage<ProductRecordDto> productRecordPage(Page page, @Param("c") TicketRegistrationDto ticketRegistrationDto);
-
- List<ProductRecordDto> getProductRecordById(@Param("c") ProductRecordDto productRecordDto);
-}
diff --git a/src/main/java/com/ruoyi/purchase/mapper/PurchaseLedgerMapper.java b/src/main/java/com/ruoyi/purchase/mapper/PurchaseLedgerMapper.java
index c3201e0..8d5ab54 100644
--- a/src/main/java/com/ruoyi/purchase/mapper/PurchaseLedgerMapper.java
+++ b/src/main/java/com/ruoyi/purchase/mapper/PurchaseLedgerMapper.java
@@ -3,7 +3,6 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.ruoyi.purchase.dto.PaymentRegistrationDto;
import com.ruoyi.purchase.dto.PurchaseLedgerDto;
import com.ruoyi.purchase.pojo.PurchaseLedger;
import org.apache.ibatis.annotations.Param;
@@ -23,8 +22,6 @@
int updateContractAmountById(@Param("id") Long id, @Param("totalTaxInclusiveAmount") BigDecimal totalTaxInclusiveAmount);
IPage<PurchaseLedgerDto> selectPurchaseLedgerListPage(IPage ipage, @Param("c") PurchaseLedgerDto purchaseLedger);
-
- List<PaymentRegistrationDto> getPaymentRegistrationDtoById(Long id);
List<IncomeExpenseAnalysisDto> selectPurchaseStats(@Param("startDate") String startDate, @Param("endDate") String endDate, @Param("dateFormat") String dateFormat);
diff --git a/src/main/java/com/ruoyi/purchase/mapper/TicketRegistrationMapper.java b/src/main/java/com/ruoyi/purchase/mapper/TicketRegistrationMapper.java
deleted file mode 100644
index 39633c1..0000000
--- a/src/main/java/com/ruoyi/purchase/mapper/TicketRegistrationMapper.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.ruoyi.purchase.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.ruoyi.purchase.pojo.TicketRegistration;
-
-/**
- * 鏉ョエ鐧昏Mapper鎺ュ彛
- *
- * @author ruoyi
- * @date 2025-05-13
- */
-public interface TicketRegistrationMapper extends BaseMapper<TicketRegistration> {
-}
diff --git a/src/main/java/com/ruoyi/purchase/pojo/InvoicePurchase.java b/src/main/java/com/ruoyi/purchase/pojo/InvoicePurchase.java
deleted file mode 100644
index 0d9eb46..0000000
--- a/src/main/java/com/ruoyi/purchase/pojo/InvoicePurchase.java
+++ /dev/null
@@ -1,121 +0,0 @@
-package com.ruoyi.purchase.pojo;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.framework.aspectj.lang.annotation.Excel;
-import lombok.Data;
-
-import java.math.BigDecimal;
-import java.time.LocalDate;
-import java.util.Date;
-
-/**
- * 鍙戠エ淇℃伅瀵硅薄 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;
-
- /**
- * 閲囪喘鍙拌处id
- */
- private Long purchaseLedgerId;
-
- /**
- * 閲囪喘鍚堝悓鍙�
- */
- @Excel(name = "閲囪喘鍚堝悓鍙�")
- private String purchaseContractNo;
-
- /**
- * 鍏宠仈閿�鍞彴璐︿富琛ㄤ富閿�
- */
- private Long salesLedgerId;
-
- /**
- * 閿�鍞悎鍚屽彿
- */
- @Excel(name = "閿�鍞悎鍚屽彿")
- private String salesContractNo;
-
- /**
- * 渚涘簲鍟嗗悕绉�
- */
- @Excel(name = "渚涘簲鍟嗗悕绉�")
- private String supplierName;
-
- /**
- * 鍙戠エ鍙�
- */
- @Excel(name = "鍙戠エ鍙�")
- private String invoiceNumber;
-
- /**
- * 鍙戠エ閲戦锛堝厓锛�
- */
- @Excel(name = "鍙戠エ閲戦(鍏�)")
- private BigDecimal invoiceAmount;
-
- /**
- * 绋庣巼
- */
- @Excel(name = "绋庣巼(%)")
- private BigDecimal taxRate;
-
- /**
- * 寮�绁ㄤ汉ID
- */
- private Long issUerId;
-
- /**
- * 寮�绁ㄤ汉
- */
- @Excel(name = "寮�绁ㄤ汉")
- private String issUer;
-
- /**
- * 寮�绁ㄦ棩鏈�
- */
- @JsonFormat(pattern = "yyyy-MM-dd" ,timezone = "GMT+8")
- @Excel(name = "寮�绁ㄦ棩鏈�", width = 30, dateFormat = "yyyy-MM-dd")
- private LocalDate issueDate;
-
- /**
- * 鍙戠エ鏂囦欢锛圥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;
-
- @Schema(description = "鍒涘缓鐢ㄦ埛")
- @TableField(fill = FieldFill.INSERT)
- private Integer createUser;
-
- @TableField(fill = FieldFill.INSERT)
- private Long deptId;
-
-}
diff --git a/src/main/java/com/ruoyi/purchase/pojo/PaymentRegistration.java b/src/main/java/com/ruoyi/purchase/pojo/PaymentRegistration.java
deleted file mode 100644
index a84cf04..0000000
--- a/src/main/java/com/ruoyi/purchase/pojo/PaymentRegistration.java
+++ /dev/null
@@ -1,113 +0,0 @@
-package com.ruoyi.purchase.pojo;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.framework.aspectj.lang.annotation.Excel;
-import lombok.Data;
-
-import java.math.BigDecimal;
-import java.util.Date;
-
-/**
- * 浠樻鐧昏瀵硅薄 payment_registration
- *
- * @author ruoyi
- * @date 2025-05-15
- */
-
-@Data
-@TableName("payment_registration")
-public class PaymentRegistration {
- private static final long serialVersionUID = 1L;
-
- /**
- * id
- */
- @TableId(value = "id", type = IdType.AUTO)
- private Long id;
-
- /**
- * 閿�鍞彴璐d
- */
- private Long saleLedgerId;
-
- /**
- * 閲囪喘鍙拌处id
- */
- private Long purchaseLedgerId;
-
- /**
- * 閲囪喘璁㈠崟浜у搧id
- */
- private Long salesLedgerProductId;
-
- /**
- * 渚涘簲鍟唅d
- */
- private Long supplierId;
-
- /**
- * 鍙戠エid
- */
- private Long ticketRegistrationId;
-
- /**
- * 鏈浠樻閲戦
- */
- @Excel(name = "浠樻閲戦")
- private BigDecimal currentPaymentAmount;
-
- /**
- * 浠樻褰㈠紡
- */
- @Excel(name = "浠樻褰㈠紡")
- private String paymentMethod;
-
- /**
- * 绋庣巼
- */
- private String taxRate;
-
- /**
- * 鐧昏浜�
- */
- private Long registrantId;
-
- // 绉熸埛id
- @TableField(fill = FieldFill.INSERT)
- private Long tenantId;
-
- /**
- * 浠樻鏃ユ湡
- */
- @JsonFormat(pattern = "yyyy-MM-dd")
- @Excel(name = "浠樻鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
- private Date paymentDate;
-
- /**
- * 鐧昏鏃ユ湡
- */
- @JsonFormat(pattern = "yyyy-MM-dd")
- @Excel(name = "鐧昏鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
- private Date registrationtDate;
-
- /**
- * 鍒涘缓鏃ユ湡
- */
- @TableField(fill = FieldFill.INSERT)
- private Date createTime;
-
- /**
- * 淇敼鏃ユ湡
- */
- @TableField(fill = FieldFill.INSERT_UPDATE)
- private Date updateTime;
- @Schema(description = "鍒涘缓鐢ㄦ埛")
- @TableField(fill = FieldFill.INSERT)
- private Integer createUser;
-
- @TableField(fill = FieldFill.INSERT)
- private Long deptId;
-
-}
diff --git a/src/main/java/com/ruoyi/purchase/pojo/ProductRecord.java b/src/main/java/com/ruoyi/purchase/pojo/ProductRecord.java
deleted file mode 100644
index 5003107..0000000
--- a/src/main/java/com/ruoyi/purchase/pojo/ProductRecord.java
+++ /dev/null
@@ -1,139 +0,0 @@
-package com.ruoyi.purchase.pojo;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.math.BigDecimal;
-import java.util.Date;
-
-/**
- * 閲囪喘鍙拌处浜у搧寮�绁ㄨ褰曞璞� product_record
- *
- * @author ruoyi
- * @date 2025-05-23
- */
-@Data
-@TableName("product_record")
-public class ProductRecord implements Serializable {
- private static final long serialVersionUID = 1L;
-
- /**
- * 涓婚敭id
- */
- @TableId(value = "id", type = IdType.AUTO)
- private Long id;
-
- /**
- * 鏉ョエ鐧昏id
- */
- private Long ticketRegistrationId;
-
- /**
- * 閲囪喘鍙拌处id
- */
- private Long purchaseLedgerId;
-
- /**
- * 浜у搧id
- */
- private Long saleLedgerProjectId;
-
- /**
- * 浜у搧澶х被
- */
- private String productCategory;
-
- /**
- * 瑙勬牸鍨嬪彿
- */
- private String specificationModel;
-
- /**
- * 鍗曚綅
- */
- private String unit;
-
- /**
- * 鏁伴噺
- */
- private BigDecimal quantity;
-
- /**
- * 绋庣巼
- */
- private BigDecimal taxRate;
-
- /**
- * 鍚◣鍗曚环
- */
- private BigDecimal taxInclusiveUnitPrice;
-
- /**
- * 鍚◣鎬讳环
- */
- private BigDecimal taxInclusiveTotalPrice;
-
- /**
- * 涓嶅惈绋庢�讳环
- */
- private BigDecimal taxExclusiveTotalPrice;
-
- /**
- * 鍙戠エ绫诲瀷
- */
- private String invoiceType;
-
- /**
- * 1.閿�鍞彴璐︼紝2.閲囪喘鍙拌处
- */
- private String type;
-
- /**
- * 鏈鏉ョエ鏁�
- */
- private BigDecimal ticketsNum;
-
- /**
- * 鏈鏉ョエ閲戦(鍏�)
- */
- private BigDecimal ticketsAmount;
-
- /**
- * 鏈潵绁ㄦ暟
- */
- private BigDecimal futureTickets = BigDecimal.ZERO;
-
- /**
- * 鏈潵绁ㄩ噾棰�(鍏�)
- */
- private BigDecimal futureTicketsAmount = BigDecimal.ZERO;
-
- /**
- * 浜у搧id
- */
- private Long productId;
-
- /**
- * 鍨嬪彿id
- */
- private Long productModelId;
-
- /**
- * 鍒涘缓鏃堕棿
- */
- @JsonFormat(pattern = "yyyy-MM-dd")
- private Date createdAt;
-
- @TableField(fill = FieldFill.INSERT)
- private Long tenantId;
- @Schema(description = "鍒涘缓鐢ㄦ埛")
- @TableField(fill = FieldFill.INSERT)
- private Integer createUser;
-
- @TableField(fill = FieldFill.INSERT)
- private Long deptId;
-
-}
diff --git a/src/main/java/com/ruoyi/purchase/pojo/TicketRegistration.java b/src/main/java/com/ruoyi/purchase/pojo/TicketRegistration.java
deleted file mode 100644
index 0dcf7c6..0000000
--- a/src/main/java/com/ruoyi/purchase/pojo/TicketRegistration.java
+++ /dev/null
@@ -1,173 +0,0 @@
-package com.ruoyi.purchase.pojo;
-
-import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.framework.aspectj.lang.annotation.Excel;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
-import java.math.BigDecimal;
-import java.time.LocalDate;
-import java.util.Date;
-
-/**
- * 鏉ョエ鐧昏瀵硅薄 ticket_registration
- *
- * @author ruoyi
- * @date 2025-05-13
- */
-@Data
-@TableName("ticket_registration")
-public class TicketRegistration{
- private static final long serialVersionUID = 1L;
-
- /**
- * 涓婚敭ID
- */
- @TableId(value = "id", type = IdType.AUTO)
- private Long id;
-
- /**
- * 鐘舵��
- */
- @Excel(name = "鐘舵��")
- @TableField(exist = false)
- private String statusName;
-
- /**
- * 閲囪喘鍙拌处id
- */
- private Long purchaseLedgerId;
-
- /**
- * 閲囪喘鍚堝悓鍙�
- */
- @Excel(name = "閲囪喘鍚堝悓鍙�")
- private String purchaseContractNumber;
-
- /**
- * 閿�鍞悎鍚屽彿
- */
- @Excel(name = "閿�鍞悎鍚屽彿")
- private String salesContractNo;
-
- /**
- * 渚涘簲鍟嗗悕绉�
- */
- @Excel(name = "渚涘簲鍟嗗悕绉�")
- private String supplierName;
-
- /**
- * 瀹㈡埛鍚嶇О
- */
- private String customerName;
-
-// /**
-// * 涓氬姟鍛�
-// */
-// @Excel(name = "涓氬姟鍛�")
-// private String businessPerson;
-//
-// /**
-// * 涓氬姟鍛榠d
-// */
-// private Long businessPersonId;
-
- /**
- * 鍙戠エ鍙�
- */
- @Excel(name = "鍙戠エ鍙�")
- private String invoiceNumber;
-
- /**
- * 鍙戠エ閲戦锛堝厓锛�
- */
- @Excel(name = "鍙戠エ閲戦(鍏�)")
- private BigDecimal invoiceAmount;
-
- /**
- * 寮�绁ㄤ汉ID
- */
- @Excel(name = "寮�绁ㄤ汉")
- private String issUerId;
-
- /**
- * 寮�绁ㄤ汉
- */
- @Excel(name = "寮�绁ㄤ汉")
- private String issUer;
-
- /**
- * 寮�绁ㄦ棩鏈�
- */
- @JsonFormat(pattern = "yyyy-MM-dd" ,timezone = "GMT+8")
- @Excel(name = "寮�绁ㄦ棩鏈�", width = 30, dateFormat = "yyyy-MM-dd")
- private LocalDate issueDate;
-
- /**
- * 椤圭洰鍚嶇О
- */
- @Excel(name = "椤圭洰鍚嶇О")
- private String projectName;
-
- /**
- * 浜у搧淇℃伅
- */
- private Long productId;
-
- /**
- * 鍒涘缓鏃堕棿
- */
- @JsonFormat(pattern = "yyyy-MM-dd")
- private Date createdAt;
-
- /**
- * 鏇存柊鏃堕棿
- */
- @JsonFormat(pattern = "yyyy-MM-dd")
- private Date updatedAt;
-
- /**
- * 鍏宠仈閿�鍞彴璐︿富琛ㄤ富閿�
- */
- private Long salesLedgerId;
-
- /**
- * 鍚堝悓閲戦锛堜骇鍝佸惈绋庢�讳环锛�
- */
- private BigDecimal contractAmount;
-
- @TableField(fill = FieldFill.INSERT)
- private Long tenantId;
-
- @Schema(description = "宸蹭粯娆炬�婚噾棰�")
- @TableField(exist = false)
- @Excel(name = "宸蹭粯娆炬�婚噾棰�")
- private BigDecimal paymentAmountTotal;
-
- @Schema(description = "鏈粯娆炬�婚噾棰�")
- @TableField(exist = false)
- @Excel(name = "鏈粯娆炬�婚噾棰�")
- private BigDecimal unPaymentAmountTotal;
-
- @TableField(exist = false)
- private Boolean status;
-
- @TableField(exist = false)
- private String issueDateStart;
- @TableField(exist = false)
- private String issueDateEnd;
-
- @TableField(exist = false)
- private String supplierNameOrContractNo;
-
- @Schema(description = "褰曞叆鏃堕棿")
- private LocalDate enterDate;
- @Schema(description = "鍒涘缓鐢ㄦ埛")
- @TableField(fill = FieldFill.INSERT)
- private Integer createUser;
-
- @TableField(fill = FieldFill.INSERT)
- private Long deptId;
-
-}
diff --git a/src/main/java/com/ruoyi/purchase/service/IInvoicePurchaseService.java b/src/main/java/com/ruoyi/purchase/service/IInvoicePurchaseService.java
deleted file mode 100644
index cc17fc2..0000000
--- a/src/main/java/com/ruoyi/purchase/service/IInvoicePurchaseService.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package com.ruoyi.purchase.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.purchase.dto.InvoicePurchaseDto;
-import com.ruoyi.purchase.dto.InvoicePurchaseReportDto;
-import com.ruoyi.purchase.dto.VatDto;
-import com.ruoyi.purchase.pojo.InvoicePurchase;
-
-import java.io.IOException;
-import java.util.List;
-
-/**
- * 鍙戠エ淇℃伅Service鎺ュ彛
- *
- * @author ruoyi
- * @date 2025-05-14
- */
-public interface IInvoicePurchaseService extends IService<InvoicePurchase> {
- List<InvoicePurchaseDto> selectInvoicePurchaseList(InvoicePurchaseDto invoicePurchaseDto);
-
- int delInvoice(Long[] ids);
-
- int addOrUpdateInvoice(InvoicePurchaseDto invoicePurchaseDto) throws IOException;
-
- InvoicePurchaseDto getInvoiceById(InvoicePurchaseDto invoicePurchaseDto);
-
- List<InvoicePurchase> selectInvoicePurchaseLists(InvoicePurchase invoicePurchase);
-
- IPage<InvoicePurchaseReportDto> listPurchaseReport(Page page, InvoicePurchaseReportDto invoicePurchaseReportDto);
-
- IPage<VatDto> listVat(Page page,String month);
-}
diff --git a/src/main/java/com/ruoyi/purchase/service/IPaymentRegistrationService.java b/src/main/java/com/ruoyi/purchase/service/IPaymentRegistrationService.java
deleted file mode 100644
index 88052fa..0000000
--- a/src/main/java/com/ruoyi/purchase/service/IPaymentRegistrationService.java
+++ /dev/null
@@ -1,106 +0,0 @@
-package com.ruoyi.purchase.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.purchase.dto.PaymentHistoryRecordVo;
-import com.ruoyi.purchase.dto.PaymentLedgerDto;
-import com.ruoyi.purchase.dto.PaymentRegistrationDto;
-import com.ruoyi.purchase.pojo.PaymentRegistration;
-
-import java.math.BigDecimal;
-import java.util.List;
-import java.util.Map;
-
-/**
- * 浠樻鐧昏Service鎺ュ彛
- *
- * @author ruoyi
- * @date 2025-05-15
- */
-public interface IPaymentRegistrationService extends IService<PaymentRegistration> {
- /**
- * 鏌ヨ浠樻鐧昏
- *
- * @param id 浠樻鐧昏涓婚敭
- * @return 浠樻鐧昏
- */
- public PaymentRegistration selectPaymentRegistrationById(Long id);
-
- /**
- * 鏌ヨ浠樻鐧昏鍒楄〃
- *
- * @param paymentRegistrationDto 浠樻鐧昏
- * @return 浠樻鐧昏闆嗗悎
- */
- public List<PaymentRegistrationDto> selectPaymentRegistrationList(PaymentRegistrationDto paymentRegistrationDto);
-
- /**
- * 鏂板浠樻鐧昏
- *
- * @param paymentRegistration 浠樻鐧昏
- * @return 缁撴灉
- */
- public int insertPaymentRegistration(List<PaymentRegistration> paymentRegistration);
-
- /**
- * 淇敼浠樻鐧昏
- *
- * @param paymentRegistration 浠樻鐧昏
- * @return 缁撴灉
- */
- public int updatePaymentRegistration(PaymentRegistration paymentRegistration);
-
- /**
- * 鎵归噺鍒犻櫎浠樻鐧昏
- *
- * @param ids 闇�瑕佸垹闄ょ殑浠樻鐧昏涓婚敭闆嗗悎
- * @return 缁撴灉
- */
- public int deletePaymentRegistrationByIds(Long[] ids);
-
- /**
- * 閫氳繃閲囪喘鍚堝悓鍙锋煡璇㈤攢鍞悎鍚屽彿锛屼緵搴斿晢鍚嶇О锛屽彂绁ㄥ彿锛屽彂绁ㄩ噾棰濓紝绋庣巼
- *
- * @param purchaseId 閲囪喘鍚堝悓id
- * @return 缁撴灉
- */
- PaymentRegistration selectPaymentRegistrationByPurchaseId(Long purchaseId);
-
- IPage<Map<String, Object>> selectPaymentLedgerList(PaymentLedgerDto paymentLedgerDto, Page page,
- Integer detailPageNum,
- Integer detailPageSize);
-
- Map<String, BigDecimal> paymentMonthList();
-
- /**
- * 鏌ヨ浠樻鐧昏鍒楄〃
- *
- * @param paymentRegistrationDto 浠樻鐧昏
- * @return 浠樻鐧昏闆嗗悎
- */
- public List<PaymentRegistrationDto> paymentHistoryList(PaymentRegistrationDto paymentRegistrationDto);
-
- /**
- * 鏌ヨ渚涘簲鍟嗗線鏉ヨ褰�
- * @param supplierId
- * @return
- */
- List<PaymentHistoryRecordVo> getPaymentRecordList(Long supplierId);
-
- /**
- * 鏌ヨ浠樻鐧昏鍒楄〃鍒嗛〉
- *
- * @param paymentRegistrationDto 浠樻鐧昏
- * @return 浠樻鐧昏闆嗗悎
- */
- IPage<PaymentRegistrationDto> paymentHistoryListPage(Page page, PaymentRegistrationDto paymentRegistrationDto);
-
- Boolean delete(Long[] ids);
-
- int delPaymentRegistration(List<Long> ids);
-
- IPage<PaymentRegistrationDto> supplierNameListPage(Page page, PaymentLedgerDto paymentLedgerDto);
-
- List<PaymentRegistrationDto> supplierNameListPageDetails(PaymentLedgerDto paymentLedgerDto);
-}
diff --git a/src/main/java/com/ruoyi/purchase/service/IProductRecordService.java b/src/main/java/com/ruoyi/purchase/service/IProductRecordService.java
deleted file mode 100644
index 3ab3d32..0000000
--- a/src/main/java/com/ruoyi/purchase/service/IProductRecordService.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.ruoyi.purchase.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.framework.web.domain.AjaxResult;
-import com.ruoyi.purchase.dto.ProductRecordDto;
-import com.ruoyi.purchase.dto.TicketRegistrationDto;
-import com.ruoyi.purchase.pojo.ProductRecord;
-
-import java.util.List;
-
-/**
- * 閲囪喘鍙拌处浜у搧寮�绁ㄨ褰昐ervice鎺ュ彛
- *
- * @author ruoyi
- * @date 2025-05-23
- */
-public interface IProductRecordService extends IService<ProductRecord> {
-
- List<ProductRecord> selectProductRecordList(TicketRegistrationDto ticketRegistrationDto);
-
- IPage<ProductRecordDto> productRecordPage(Page page, TicketRegistrationDto ticketRegistrationDto);
-
- AjaxResult updateRecord(ProductRecordDto productRecordDto);
-
- ProductRecordDto getProductRecordById(ProductRecordDto productRecordDto);
-}
diff --git a/src/main/java/com/ruoyi/purchase/service/ITicketRegistrationService.java b/src/main/java/com/ruoyi/purchase/service/ITicketRegistrationService.java
deleted file mode 100644
index 6c1cf5b..0000000
--- a/src/main/java/com/ruoyi/purchase/service/ITicketRegistrationService.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.ruoyi.purchase.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.purchase.dto.PaymentRegistrationDto;
-import com.ruoyi.purchase.dto.PurchaseLedgerDto;
-import com.ruoyi.purchase.dto.TicketRegistrationDto;
-import com.ruoyi.purchase.pojo.TicketRegistration;
-
-import java.io.IOException;
-import java.util.List;
-
-/**
- * 鏉ョエ鐧昏Service鎺ュ彛
- *
- * @author ruoyi
- * @date 2025-05-13
- */
-public interface ITicketRegistrationService extends IService<TicketRegistration> {
-
- List<TicketRegistration> selectTicketRegistrationList(TicketRegistration ticketRegistration);
-
- int addOrUpdateRegistration(TicketRegistrationDto ticketRegistrationDto) throws IOException;
-
- int delRegistration(Long[] ids);
-
- TicketRegistrationDto getRegistrationById(TicketRegistrationDto ticketRegistrationDto);
-
- List getTicketNo(TicketRegistrationDto ticketRegistrationDto);
-
- IPage<TicketRegistration> selectTicketRegistrationListPage(Page page, TicketRegistration ticketRegistration);
-
- PurchaseLedgerDto getPuargeById(Long id);
-
- List<PaymentRegistrationDto> getPaymentRegistrationDtoById(Long id);
-}
diff --git a/src/main/java/com/ruoyi/purchase/service/impl/InvoicePurchaseServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/InvoicePurchaseServiceImpl.java
deleted file mode 100644
index 8b76b1a..0000000
--- a/src/main/java/com/ruoyi/purchase/service/impl/InvoicePurchaseServiceImpl.java
+++ /dev/null
@@ -1,178 +0,0 @@
-package com.ruoyi.purchase.service.impl;
-
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.common.enums.FileNameType;
-import com.ruoyi.common.utils.bean.BeanUtils;
-import com.ruoyi.other.mapper.TempFileMapper;
-import com.ruoyi.project.system.domain.SysUser;
-import com.ruoyi.project.system.mapper.SysUserMapper;
-import com.ruoyi.purchase.dto.InvoicePurchaseDto;
-import com.ruoyi.purchase.dto.InvoicePurchaseReportDto;
-import com.ruoyi.purchase.dto.VatDto;
-import com.ruoyi.purchase.mapper.InvoicePurchaseMapper;
-import com.ruoyi.purchase.mapper.PurchaseLedgerMapper;
-import com.ruoyi.purchase.pojo.InvoicePurchase;
-import com.ruoyi.purchase.pojo.PurchaseLedger;
-import com.ruoyi.purchase.service.IInvoicePurchaseService;
-import com.ruoyi.sales.mapper.CommonFileMapper;
-import com.ruoyi.sales.pojo.CommonFile;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Service;
-import org.springframework.util.StringUtils;
-
-import java.io.IOException;
-import java.util.*;
-import java.util.stream.Collectors;
-
-/**
- * 鍙戠エ淇℃伅Service涓氬姟灞傚鐞�
- *
- * @author ruoyi
- * @date 2025-05-14
- */
-@Service
-@RequiredArgsConstructor
-@Slf4j
-public class InvoicePurchaseServiceImpl extends ServiceImpl<InvoicePurchaseMapper, InvoicePurchase> implements IInvoicePurchaseService {
-
- private final InvoicePurchaseMapper invoicePurchaseMapper;
-
- private final PurchaseLedgerMapper purchaseLedgerMapper;
-
- private final SysUserMapper userMapper;
-
- private final CommonFileMapper commonFileMapper;
-
-
-
- @Override
- public List<InvoicePurchaseDto> selectInvoicePurchaseList(InvoicePurchaseDto invoicePurchaseDto) {
- // 鏋勫缓鍙戠エ鏌ヨ鏉′欢
- LambdaQueryWrapper<InvoicePurchase> queryWrapper = new LambdaQueryWrapper<>();
- Optional.ofNullable(invoicePurchaseDto)
- .ifPresent(dto -> {
- if (StringUtils.hasText(dto.getPurchaseContractNo())) {
- queryWrapper.like(InvoicePurchase::getPurchaseContractNo, dto.getPurchaseContractNo());
- }
- if (StringUtils.hasText(dto.getSupplierName())) {
- queryWrapper.like(InvoicePurchase::getSupplierName, dto.getSupplierName());
- }
- // 澶勭悊鏃ユ湡绫诲瀷瀛楁
- if (dto.getIssueDate() != null) {
- queryWrapper.eq(InvoicePurchase::getIssueDate,invoicePurchaseDto.getIssueDate());
- }
- });
-
- // 鏌ヨ鍙戠エ鍒楄〃
- List<InvoicePurchase> invoiceList = invoicePurchaseMapper.selectList(queryWrapper);
-
- // 濡傛灉娌℃湁鏌ヨ鍒板彂绁紝鐩存帴杩斿洖绌哄垪琛�
- if (CollectionUtils.isEmpty(invoiceList)) {
- return Collections.emptyList();
- }
-
- // 鎻愬彇鎵�鏈夊彂绁↖D
- List<Long> invoiceIds = invoiceList.stream()
- .map(InvoicePurchase::getId)
- .collect(Collectors.toList());
-
- // 鎵归噺鏌ヨ杩欎簺鍙戠エ鍏宠仈鐨勬枃浠朵俊鎭�
- LambdaQueryWrapper<CommonFile> fileQueryWrapper = new LambdaQueryWrapper<>();
- fileQueryWrapper.in(CommonFile::getCommonId, invoiceIds)
- .eq(CommonFile::getType, FileNameType.INVOICE.getValue());
- List<CommonFile> fileList = commonFileMapper.selectList(fileQueryWrapper);
-
- // 灏嗘枃浠朵俊鎭槧灏勫埌瀵瑰簲鐨勫彂绁↖D
- Map<Long, String> fileMap = fileList.stream()
- .collect(Collectors.toMap(
- CommonFile::getCommonId,
- CommonFile::getName,
- (existing, replacement) -> existing // 濡傛灉鏈夊涓枃浠讹紝鍙栫涓�涓�
- ));
-
- // 灏嗘枃浠朵俊鎭缃埌鍙戠エDTO涓�
- List<InvoicePurchaseDto> resultList = new ArrayList<>();
- for (InvoicePurchase invoice : invoiceList) {
- InvoicePurchaseDto dto = new InvoicePurchaseDto();
- // 灏咺nvoicePurchase鐨勫睘鎬у鍒跺埌DTO
- BeanUtils.copyProperties(invoice, dto);
- // 璁剧疆鏂囦欢鍚嶏紝濡傛灉瀛樺湪鐨勮瘽
- dto.setFileName(fileMap.getOrDefault(invoice.getId(), null));
- resultList.add(dto);
- }
-
- return resultList;
- }
-
- @Override
- public int delInvoice(Long[] ids) {
- return invoicePurchaseMapper.deleteBatchIds(Arrays.asList(ids));
- }
-
- @Override
- public int addOrUpdateInvoice(InvoicePurchaseDto invoicePurchaseDto) throws IOException {
- int i;
- PurchaseLedger purchaseLedger = purchaseLedgerMapper.selectById(invoicePurchaseDto.getPurchaseLedgerId());
- InvoicePurchase invoicePurchase = new InvoicePurchase();
- BeanUtils.copyProperties(invoicePurchaseDto, invoicePurchase);
- invoicePurchase.setPurchaseContractNo(purchaseLedger.getPurchaseContractNumber());
- invoicePurchase.setSalesContractNo(purchaseLedger.getSalesContractNo());
- SysUser sysUser = userMapper.selectUserById(invoicePurchase.getIssUerId());
- invoicePurchase.setIssUer(sysUser.getNickName());
- invoicePurchase.setTenantId(purchaseLedger.getTenantId());
- if (invoicePurchaseDto.getId() == null) {
- i = invoicePurchaseMapper.insert(invoicePurchase);
- } else {
- i = invoicePurchaseMapper.updateById(invoicePurchase);
- }
-
- // 杩佺Щ涓存椂鏂囦欢鍒版寮忕洰褰�
-// if (invoicePurchaseDto.getTempFileIds() != null && !invoicePurchaseDto.getTempFileIds().isEmpty()) {
-// migrateTempFilesToFormal(invoicePurchase.getId(), invoicePurchaseDto.getTempFileIds());
-// }
-
- return i;
- }
-
- @Override
- public InvoicePurchaseDto getInvoiceById(InvoicePurchaseDto invoicePurchaseDto) {
- InvoicePurchase invoicePurchase = invoicePurchaseMapper.selectById(invoicePurchaseDto.getId());
- InvoicePurchaseDto resultDto = new InvoicePurchaseDto();
- BeanUtils.copyProperties(invoicePurchase, resultDto);
-
- // 鏌ヨ涓婁紶鏂囦欢
- LambdaQueryWrapper<CommonFile> commonFileLambdaQueryWrapper = new LambdaQueryWrapper<>();
- commonFileLambdaQueryWrapper.eq(CommonFile::getCommonId, invoicePurchaseDto.getId())
- .eq(CommonFile::getType, FileNameType.INVOICE.getValue());
- List<CommonFile> commonFiles = commonFileMapper.selectList(commonFileLambdaQueryWrapper);
- resultDto.setCommonFiles(commonFiles);
- return resultDto;
- }
-
- @Override
- public List<InvoicePurchase> selectInvoicePurchaseLists(InvoicePurchase invoicePurchase) {
- return invoicePurchaseMapper.selectList(new LambdaQueryWrapper<>());
- }
-
- @Override
- public IPage<InvoicePurchaseReportDto> listPurchaseReport(Page page, InvoicePurchaseReportDto invoicePurchaseReportDto) {
- // 澧炲�肩◣ = 閿�鍞殑锛堝惈绋庢�讳环-涓嶅惈绋庢�讳环锛夊噺鍘婚噰璐殑锛堝惈绋庢�讳环-涓嶅惈绋庢�讳环锛�
- return invoicePurchaseMapper.selectPurchaseReport(page, invoicePurchaseReportDto);
- }
-
- @Override
- public IPage<VatDto> listVat(Page page, String month) {
- IPage<VatDto> vatDtos = invoicePurchaseMapper.listVat(page,month);
- vatDtos.getRecords().forEach(vatDto -> {
- vatDto.setTaxAmount(vatDto.getJTaxAmount().subtract(vatDto.getXTaxAmount()));
- });
- return vatDtos;
- }
-}
diff --git a/src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java
deleted file mode 100644
index 8237aa1..0000000
--- a/src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java
+++ /dev/null
@@ -1,533 +0,0 @@
-package com.ruoyi.purchase.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.basic.mapper.SupplierManageMapper;
-import com.ruoyi.basic.pojo.SupplierManage;
-import com.ruoyi.common.utils.DateUtils;
-import com.ruoyi.common.utils.SecurityUtils;
-import com.ruoyi.framework.security.LoginUser;
-import com.ruoyi.purchase.dto.PaymentHistoryRecordVo;
-import com.ruoyi.purchase.dto.PaymentLedgerDto;
-import com.ruoyi.purchase.dto.PaymentRegistrationDto;
-import com.ruoyi.purchase.mapper.PaymentRegistrationMapper;
-import com.ruoyi.purchase.mapper.ProductRecordMapper;
-import com.ruoyi.purchase.mapper.PurchaseLedgerMapper;
-import com.ruoyi.purchase.mapper.TicketRegistrationMapper;
-import com.ruoyi.purchase.pojo.PaymentRegistration;
-import com.ruoyi.purchase.pojo.ProductRecord;
-import com.ruoyi.purchase.pojo.PurchaseLedger;
-import com.ruoyi.purchase.pojo.TicketRegistration;
-import com.ruoyi.purchase.service.IPaymentRegistrationService;
-import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
-import com.ruoyi.sales.pojo.SalesLedgerProduct;
-import lombok.RequiredArgsConstructor;
-import org.springframework.stereotype.Service;
-import org.springframework.util.ObjectUtils;
-import org.springframework.util.StringUtils;
-
-import java.math.BigDecimal;
-import java.text.SimpleDateFormat;
-import java.time.LocalDate;
-import java.time.YearMonth;
-import java.util.*;
-import java.util.stream.Collectors;
-
-/**
- * 浠樻鐧昏Service涓氬姟灞傚鐞�
- *
- * @author ruoyi
- * @date 2025-05-15
- */
-@Service
-@RequiredArgsConstructor
-public class PaymentRegistrationServiceImpl extends ServiceImpl<PaymentRegistrationMapper, PaymentRegistration> implements IPaymentRegistrationService {
-
- private final PaymentRegistrationMapper paymentRegistrationMapper;
- private final PurchaseLedgerMapper purchaseLedgerMapper;
- private final SupplierManageMapper supplierManageMapper;
- private final SalesLedgerProductMapper salesLedgerProductMapper;
- private final TicketRegistrationMapper ticketRegistrationMapper;
- private final ProductRecordMapper productRecordMapper;
-
- /**
- * 鏌ヨ浠樻鐧昏
- *
- * @param id 浠樻鐧昏涓婚敭
- * @return 浠樻鐧昏
- */
- @Override
- public PaymentRegistration selectPaymentRegistrationById(Long id) {
- return paymentRegistrationMapper.selectPaymentRegistrationById(id);
- }
-
- /**
- * 鏌ヨ浠樻鐧昏鍒楄〃
- *
- * @param paymentRegistrationDto 浠樻鐧昏
- * @return 浠樻鐧昏
- */
- @Override
- public List<PaymentRegistrationDto> selectPaymentRegistrationList(PaymentRegistrationDto paymentRegistrationDto) {
- List<PaymentRegistrationDto> list = paymentRegistrationMapper.selectPaymentRegistrationList(paymentRegistrationDto);
- for (PaymentRegistrationDto registrationDto : list) {
- List<PaymentRegistration> paymentRegistrations = paymentRegistrationMapper.selectList(new QueryWrapper<PaymentRegistration>()
- .eq("ticket_registration_id", registrationDto.getTicketRegistrationId()));
- BigDecimal total = paymentRegistrations.stream().map(PaymentRegistration::getCurrentPaymentAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
- BigDecimal invoiceAmount = (null != registrationDto.getInvoiceAmount())? registrationDto.getInvoiceAmount() : BigDecimal.ZERO;
- registrationDto.setUnPaymentAmount(invoiceAmount.subtract(total));
- }
- return list;
- }
-
- /**
- * 鏂板浠樻鐧昏
- *
- * @param paymentRegistrationList 浠樻鐧昏
- * @return 缁撴灉
- */
- @Override
- public int insertPaymentRegistration(List<PaymentRegistration> paymentRegistrationList) {
- LoginUser userId = SecurityUtils.getLoginUser();
- 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.getSalesLedgerProductId());
- if(null==salesLedgerProduct) throw new RuntimeException("鏈壘鍒伴噰璐崟浜у搧");
- if (salesLedgerProduct.getPendingTicketsTotal().compareTo(paymentRegistration.getCurrentPaymentAmount())<0){
- throw new RuntimeException("鏈鍥炴閲戦涓嶈兘澶т簬寰呭洖娆鹃噾棰�");
- }
- paymentRegistration.setCreateTime(DateUtils.getNowDate());
- paymentRegistration.setUpdateTime(DateUtils.getNowDate());
- paymentRegistration.setRegistrantId(userId.getUserId());
- salesLedgerProduct.setTicketsTotal(salesLedgerProduct.getTicketsTotal().add(paymentRegistration.getCurrentPaymentAmount()));
- salesLedgerProduct.setPendingTicketsTotal(salesLedgerProduct.getTaxInclusiveTotalPrice().subtract(salesLedgerProduct.getTicketsTotal()));
- paymentRegistrationMapper.insert(paymentRegistration);
- salesLedgerProductMapper.updateById(salesLedgerProduct);
- }
- return 1;
-
- }
-
- /**
- * 淇敼浠樻鐧昏
- *
- * @param paymentRegistration 浠樻鐧昏
- * @return 缁撴灉
- */
- @Override
- public int updatePaymentRegistration(PaymentRegistration paymentRegistration) {
- PaymentRegistration paymentRegistration1 = paymentRegistrationMapper.selectById(paymentRegistration.getId());
- if(null==paymentRegistration1) throw new RuntimeException("鏈壘鍒颁粯娆剧櫥璁�");
- SalesLedgerProduct salesLedgerProduct = salesLedgerProductMapper.selectById(paymentRegistration1.getSalesLedgerProductId());
- if(null==salesLedgerProduct) throw new RuntimeException("鏈壘鍒伴噰璐崟浜у搧");
- // 鍒ゆ柇浠樻閲戦涓嶅彲澶т簬寰呬粯娆鹃噾棰�
- BigDecimal subtract = paymentRegistration.getCurrentPaymentAmount().subtract(paymentRegistration1.getCurrentPaymentAmount());
- if (subtract.compareTo(salesLedgerProduct.getPendingTicketsTotal()) > 0) {
- throw new RuntimeException("浠樻閲戦瓒呭嚭寰呬粯娆鹃噾棰�");
- }
- paymentRegistration.setUpdateTime(DateUtils.getNowDate());
- // 淇敼閲囪喘浜у搧浠樻閲戦
- salesLedgerProduct.setTicketsTotal(salesLedgerProduct.getTicketsTotal().add(subtract));
- salesLedgerProduct.setPendingTicketsTotal(salesLedgerProduct.getTaxInclusiveTotalPrice().subtract(salesLedgerProduct.getTicketsTotal()));
- salesLedgerProductMapper.updateById(salesLedgerProduct);
- return paymentRegistrationMapper.updateById(paymentRegistration);
- }
-
- /**
- * 鎵归噺鍒犻櫎浠樻鐧昏
- *
- * @param ids 闇�瑕佸垹闄ょ殑浠樻鐧昏涓婚敭
- * @return 缁撴灉
- */
- @Override
- public int deletePaymentRegistrationByIds(Long[] ids) {
- return paymentRegistrationMapper.delete(new QueryWrapper<PaymentRegistration>().in("id", ids));
- }
-
- @Override
- public PaymentRegistration selectPaymentRegistrationByPurchaseId(Long id) {
- PaymentRegistrationDto paymentRegistrationDto = new PaymentRegistrationDto();
- PurchaseLedger purchaseLedger = purchaseLedgerMapper.selectById(id);
- paymentRegistrationDto.setSalesContractNo(purchaseLedger.getSalesContractNo());
- paymentRegistrationDto.setSupplierName(purchaseLedger.getSupplierName());
- paymentRegistrationDto.setSupplierId(purchaseLedger.getSupplierId());
-
- List<TicketRegistration> ticketRegistrations = ticketRegistrationMapper.selectList(new QueryWrapper<TicketRegistration>()
- .eq("purchase_contract_number", purchaseLedger.getPurchaseContractNumber()));
- if (ticketRegistrations != null && ticketRegistrations.size() > 0) {
- paymentRegistrationDto.setInvoiceNumber(ticketRegistrations.get(0).getInvoiceNumber());
- paymentRegistrationDto.setInvoiceAmount(ticketRegistrations.get(0).getInvoiceAmount());
- }
- return paymentRegistrationDto;
- }
-
- @Override
- public IPage<Map<String, Object>> selectPaymentLedgerList(
- PaymentLedgerDto paymentLedgerDto,
- Page page,
- Integer detailPageNum,
- Integer detailPageSize) {
- LambdaQueryWrapper<SupplierManage> queryWrapper = new LambdaQueryWrapper<>();
- Optional.ofNullable(paymentLedgerDto)
- .ifPresent(dto -> {
- if (StringUtils.hasText(dto.getSupplierName())) {
- queryWrapper.like(SupplierManage::getSupplierName, dto.getSupplierName());
- }
- });
-
- IPage<SupplierManage> supplierPage = supplierManageMapper.selectPage(page, queryWrapper);
- List<SupplierManage> supplierManages = supplierPage.getRecords();
-
- IPage<Map<String, Object>> resultPage = new Page<>(page.getCurrent(), page.getSize(), supplierPage.getTotal());
- List<Map<String, Object>> result = new ArrayList<>();
-
- for (SupplierManage supplierManage : supplierManages) {
- Map<String, Object> res = new HashMap<>();
- res.put("supplierName", supplierManage.getSupplierName());
- res.put("supplierId", supplierManage.getId());
-
- // 搴斾粯閲戦璁$畻
- BigDecimal payableAmount = BigDecimal.ZERO;
- List<PurchaseLedger> purchaseLedgers = purchaseLedgerMapper.selectList(
- new QueryWrapper<PurchaseLedger>().eq("supplier_id", supplierManage.getId())
- );
- List<SalesLedgerProduct> salesLedgerProducts = purchaseLedgers.stream()
- .filter(Objects::nonNull)
- .map(PurchaseLedger::getId)
- .filter(Objects::nonNull)
- .flatMap(id -> salesLedgerProductMapper.selectList(
- new QueryWrapper<SalesLedgerProduct>().eq("sales_ledger_id", id).eq("type",2)
- ).stream())
- .collect(Collectors.toList());
- payableAmount = salesLedgerProducts.stream()
- .map(SalesLedgerProduct::getTaxInclusiveTotalPrice)
- .filter(Objects::nonNull)
- .reduce(BigDecimal.ZERO, BigDecimal::add);
-
- // 鏉ョエ閲戦璁$畻
- List<TicketRegistration> ticketRegistrations = purchaseLedgers.stream()
- .map(PurchaseLedger::getId)
- .filter(Objects::nonNull)
- .map(id -> ticketRegistrationMapper.selectList(
- new LambdaQueryWrapper<TicketRegistration>().eq(TicketRegistration::getPurchaseLedgerId, id)
- ))
- .flatMap(Collection::stream)
- .collect(Collectors.toList());
- BigDecimal invoiceAmount = ticketRegistrations.stream()
- .map(TicketRegistration::getInvoiceAmount)
- .filter(Objects::nonNull)
- .reduce(BigDecimal.ZERO, BigDecimal::add);
-
- // 浠樻璁板綍鍙婅鎯呭垎椤�
- List<PaymentRegistration> paymentRegistrations = paymentRegistrationMapper.selectList(
- new QueryWrapper<PaymentRegistration>().eq("supplier_id", supplierManage.getId())
- );
- BigDecimal paymentAmount = paymentRegistrations.stream()
- .map(PaymentRegistration::getCurrentPaymentAmount)
- .filter(Objects::nonNull)
- .reduce(BigDecimal.ZERO, BigDecimal::add);
-
- // 璇︽儏鍒嗛〉澶勭悊
- detailPageNum = detailPageNum != null ? detailPageNum : 1;
- detailPageSize = detailPageSize != null ? detailPageSize : paymentRegistrations.size(); // 榛樿鏄剧ず鍏ㄩ儴
- int totalDetails = paymentRegistrations.size();
- int start = (detailPageNum - 1) * detailPageSize;
- int end = Math.min(start + detailPageSize, totalDetails);
- List<PaymentRegistration> pagedDetails = paymentRegistrations.subList(start, end);
-
- // 鏋勫缓璇︽儏鍒楄〃
- List<Map<String, Object>> details = pagedDetails.stream()
- .filter(Objects::nonNull)
- .map(pr -> {
- Map<String, Object> detail = new HashMap<>();
- detail.put("paymentAmount", pr.getCurrentPaymentAmount());
-
- // 鎵归噺鏌ヨ TicketRegistration锛堥伩鍏� N+1锛�
- TicketRegistration ticketRegistration = ticketRegistrationMapper.selectById(pr.getTicketRegistrationId());
- if (ticketRegistration != null) {
- detail.put("payableAmount", ticketRegistration.getInvoiceAmount());
- BigDecimal voteCount = productRecordMapper.selectList(
- new LambdaQueryWrapper<ProductRecord>().eq(ProductRecord::getTicketRegistrationId, ticketRegistration.getId())
- ).stream()
- .map(ProductRecord::getTicketsNum)
- .filter(Objects::nonNull)
- .reduce(BigDecimal.ZERO, BigDecimal::add);
- detail.put("voteCount", voteCount);
- }
-
- // 鏃ユ湡鏍煎紡鍖栵紙寤鸿浣跨敤 LocalDateTime锛�
- if (pr.getPaymentDate() != null) {
- detail.put("paymentDate", new SimpleDateFormat("yyyy-MM-dd").format(pr.getPaymentDate()));
- }
- return detail;
- })
- .collect(Collectors.toList());
-
- // 灏佽璇︽儏鍒嗛〉鍏冩暟鎹�
- Map<String, Object> detailPagination = new HashMap<>();
- detailPagination.put("total", totalDetails);
- detailPagination.put("pageNum", detailPageNum);
- detailPagination.put("pageSize", detailPageSize);
- detailPagination.put("pages", (int) Math.ceil((double) totalDetails / detailPageSize));
-
- // 搴斾粯閲戦閫昏緫涓嶉噰鐢ㄥ悎鍚岄噾棰濇敼鎴� 鍙戠エ閲戦鍑忎粯娆鹃噾棰�
- payableAmount = invoiceAmount.subtract(paymentAmount);
- res.put("invoiceAmount", invoiceAmount);
- res.put("payableAmount", payableAmount);
- res.put("paymentAmount", paymentAmount);
- res.put("details", details);
- res.put("detailPagination", detailPagination); // 娣诲姞璇︽儏鍒嗛〉淇℃伅
- result.add(res);
- }
-
- resultPage.setRecords(result);
- return resultPage;
- }
-
- @Override
- public Map<String, BigDecimal> paymentMonthList() {
-
- // 鏌ヨ渚涘簲鍟嗗垪琛�
- List<SupplierManage> suppliers = supplierManageMapper.selectList(null);
- if (CollectionUtils.isEmpty(suppliers)) {
- Map<String, BigDecimal> result = new HashMap<>();
- result.put("payableAmount", BigDecimal.ZERO);
- result.put("paymentAmount", BigDecimal.ZERO);
- return result;
- }
-
- // 鎻愬彇鎵�鏈変緵搴斿晢ID
- List<Long> supplierIds = suppliers.stream()
- .map(SupplierManage::getId) // 鍏堣幏鍙朓nteger绫诲瀷鐨処D
- .filter(Objects::nonNull) // 杩囨护鎺夊彲鑳界殑null鍊�
- .collect(Collectors.toList());
-
- // 鑾峰彇褰撴湀鐨勫紑濮嬪拰缁撴潫鏃ユ湡
- YearMonth currentMonth = YearMonth.now();
- LocalDate startDate = currentMonth.atDay(1);
- LocalDate endDate = currentMonth.atEndOfMonth();
-
- // 鎵归噺鏌ヨ閲囪喘鍙拌处锛堝綋鏈堬級
- Map<Long, List<PurchaseLedger>> purchaseLedgerMap = batchQueryPurchaseLedgers(supplierIds, startDate, endDate);
-
- // 鎵归噺鏌ヨ閿�鍞彴璐︿骇鍝�
- Map<Long, List<SalesLedgerProduct>> salesLedgerProductMap = batchQuerySalesLedgerProducts(purchaseLedgerMap);
-
- // 鎵归噺鏌ヨ浠樻璁板綍锛堝綋鏈堬級
- Map<Long, List<PaymentRegistration>> paymentRegistrationMap = batchQueryPaymentRegistrations(supplierIds, startDate, endDate);
-
- // 璁$畻搴斾粯閲戦鍜屼粯娆鹃噾棰�
- BigDecimal totalPayableAmount = calculateTotalPayableAmount(purchaseLedgerMap, salesLedgerProductMap);
- BigDecimal totalPaymentAmount = calculateTotalPaymentAmount(paymentRegistrationMap);
-
- // 鏋勫缓缁撴灉
- Map<String, BigDecimal> result = new HashMap<>();
- result.put("payableAmount", totalPayableAmount);
- result.put("paymentAmount", totalPaymentAmount);
- return result;
- }
-
- /**
- * 鏌ヨ浠樻鐧昏鍒楄〃
- *
- * @param paymentRegistrationDto 浠樻鐧昏
- * @return 浠樻鐧昏闆嗗悎
- */
- @Override
- public List<PaymentRegistrationDto> paymentHistoryList(PaymentRegistrationDto paymentRegistrationDto) {
- return paymentRegistrationMapper.paymentHistoryList(paymentRegistrationDto);
- }
-
- /**
- * 鏌ヨ渚涘簲鍟嗗線鏉ヨ褰�
- * @param supplierId
- * @return
- */
- @Override
- public List<PaymentHistoryRecordVo> getPaymentRecordList(Long supplierId) {
- List<PaymentHistoryRecordVo> paymentRecordList = paymentRegistrationMapper.getPaymentRecordList(supplierId);
- List<PaymentHistoryRecordVo> result = new ArrayList<>();
- List<PaymentHistoryRecordVo> newResult = new ArrayList<>();
- // 搴斾粯鎬婚噾棰濋噾棰濊绠�
- BigDecimal amountTotal = BigDecimal.ZERO;
- if(CollectionUtils.isNotEmpty(paymentRecordList)) {
- Map<LocalDate, List<PaymentHistoryRecordVo>> dateListMap = paymentRecordList.stream().collect(
- Collectors.groupingBy(
- PaymentHistoryRecordVo::getHappenTime,
- LinkedHashMap::new,
- Collectors.toList()
- )
- );
- for (LocalDate localDate : dateListMap.keySet()) {
- BigDecimal currentPaymentAmount = BigDecimal.ZERO;
- BigDecimal invoiceAmount = BigDecimal.ZERO;
- BigDecimal currentDateTotal = BigDecimal.ZERO;
- List<PaymentHistoryRecordVo> paymentHistoryRecordVos = dateListMap.get(localDate);
- // 璁$畻褰撳ぉ姹囨鏁�
- currentPaymentAmount = paymentHistoryRecordVos.stream()
- .filter(item ->item.getType() == 0)
- .map(PaymentHistoryRecordVo::getCurrentPaymentAmount)
- .reduce(BigDecimal.ZERO,BigDecimal::add);
- // 璁$畻浠婂ぉ鏉ョエ鏁�
- invoiceAmount = paymentHistoryRecordVos.stream()
- .filter(item ->item.getType() == 1)
- .map(PaymentHistoryRecordVo::getInvoiceAmount)
- .reduce(BigDecimal.ZERO,BigDecimal::add);
- // 璁$畻褰撴棩姹囨��
- currentDateTotal = currentDateTotal.add(invoiceAmount).subtract(currentPaymentAmount);
- PaymentHistoryRecordVo paymentHistoryRecordVo = new PaymentHistoryRecordVo();
- paymentHistoryRecordVo.setHappenTime(localDate);
- paymentHistoryRecordVo.setCurrentPaymentAmount(currentPaymentAmount);
- paymentHistoryRecordVo.setInvoiceAmount(invoiceAmount);
- amountTotal = paymentHistoryRecordVo.getInvoiceAmount().subtract(paymentHistoryRecordVo.getCurrentPaymentAmount());
- paymentHistoryRecordVo.setPayableAmount(amountTotal);
- result.add(paymentHistoryRecordVo);
- }
-
-
- for (int i = 0; i < result.size(); i++) {
- PaymentHistoryRecordVo paymentHistoryRecordVo = result.get(i);
- if (i == 0) {
- paymentHistoryRecordVo.setPayableAmount(paymentHistoryRecordVo.getInvoiceAmount().subtract(paymentHistoryRecordVo.getCurrentPaymentAmount()));
- }else {
- PaymentHistoryRecordVo paymentHistoryRecordVo1 = result.get(i-1);
- paymentHistoryRecordVo.setPayableAmount(paymentHistoryRecordVo1.getPayableAmount()
- .add(paymentHistoryRecordVo.getInvoiceAmount()).subtract(paymentHistoryRecordVo.getCurrentPaymentAmount()));
- }
- newResult.add(paymentHistoryRecordVo);
- }
- }
- return newResult;
- }
-
- /**
- * 鏌ヨ浠樻鐧昏鍒楄〃鍒嗛〉
- *
- * @param paymentRegistrationDto 浠樻鐧昏
- * @return 浠樻鐧昏闆嗗悎
- */
- @Override
- public IPage<PaymentRegistrationDto> paymentHistoryListPage(Page page, PaymentRegistrationDto paymentRegistrationDto) {
- return paymentRegistrationMapper.paymentHistoryListPage(page, paymentRegistrationDto);
- }
-
- @Override
- public Boolean delete(Long[] ids) {
- for (Long id : ids) {
- List<ProductRecord> productRecords = productRecordMapper.selectList(new QueryWrapper<ProductRecord>().lambda().eq(ProductRecord::getTicketRegistrationId, id));
- for (ProductRecord productRecord : productRecords) {
- SalesLedgerProduct salesLedgerProduct = salesLedgerProductMapper.selectById(productRecord.getSaleLedgerProjectId());
- salesLedgerProduct.setTicketsNum(salesLedgerProduct.getTicketsNum().subtract(productRecord.getTicketsNum()));
- salesLedgerProduct.setTicketsAmount(salesLedgerProduct.getTicketsAmount().subtract(productRecord.getTicketsAmount()));
- salesLedgerProduct.setFutureTickets(salesLedgerProduct.getFutureTickets().add(productRecord.getTicketsNum()));
- salesLedgerProduct.setFutureTicketsAmount(salesLedgerProduct.getFutureTicketsAmount().add(productRecord.getTicketsAmount()));
- salesLedgerProductMapper.updateById(salesLedgerProduct);
- }
- ticketRegistrationMapper.delete(new QueryWrapper<TicketRegistration>().lambda().eq(TicketRegistration::getId, id));
- productRecordMapper.delete(new QueryWrapper<ProductRecord>().lambda().eq(ProductRecord::getTicketRegistrationId, id));
- }
- return true;
- }
-
- @Override
- public int delPaymentRegistration(List<Long> ids) {
- // 淇敼閲囪喘浜у搧鐨勫凡浠樻閲戦,寰呬粯娆鹃噾棰�
- List<PaymentRegistration> paymentRegistrations = paymentRegistrationMapper.selectBatchIds(ids);
- for (PaymentRegistration paymentRegistration : paymentRegistrations) {
- SalesLedgerProduct salesLedgerProduct = salesLedgerProductMapper.selectById(paymentRegistration.getSalesLedgerProductId());
- salesLedgerProduct.setTicketsTotal(salesLedgerProduct.getTicketsTotal().subtract(paymentRegistration.getCurrentPaymentAmount()));
- salesLedgerProduct.setPendingTicketsTotal(salesLedgerProduct.getPendingTicketsTotal().add(paymentRegistration.getCurrentPaymentAmount()));
- salesLedgerProductMapper.updateById(salesLedgerProduct);
- }
- return paymentRegistrationMapper.deleteBatchIds(ids);
- }
-
- @Override
- public IPage<PaymentRegistrationDto> supplierNameListPage(Page page, PaymentLedgerDto paymentLedgerDto) {
- return paymentRegistrationMapper.supplierNameListPage(page, paymentLedgerDto);
- }
-
- @Override
- public List<PaymentRegistrationDto> supplierNameListPageDetails(PaymentLedgerDto paymentLedgerDto) {
- return paymentRegistrationMapper.supplierNameListPageDetails(paymentLedgerDto);
- }
-
- // 鎵归噺鏌ヨ閲囪喘鍙拌处锛堝綋鏈堬級
- private Map<Long, List<PurchaseLedger>> batchQueryPurchaseLedgers(List<Long> supplierIds, LocalDate startDate, LocalDate endDate) {
- LambdaQueryWrapper<PurchaseLedger> query = new LambdaQueryWrapper<>();
- query.in(PurchaseLedger::getSupplierId, supplierIds)
- .ge(PurchaseLedger::getCreatedAt, startDate)
- .le(PurchaseLedger::getCreatedAt, endDate);
- List<PurchaseLedger> purchaseLedgers = purchaseLedgerMapper.selectList(query);
-
- return purchaseLedgers.stream()
- .filter(pl -> pl.getSupplierId() != null)
- .collect(Collectors.groupingBy(PurchaseLedger::getSupplierId));
- }
-
- // 鎵归噺鏌ヨ閿�鍞彴璐︿骇鍝�
- private Map<Long, List<SalesLedgerProduct>> batchQuerySalesLedgerProducts(Map<Long, List<PurchaseLedger>> purchaseLedgerMap) {
- // 鎻愬彇鎵�鏈夐噰璐彴璐D
- List<Long> purchaseLedgerIds = purchaseLedgerMap.values().stream()
- .flatMap(Collection::stream)
- .map(PurchaseLedger::getId)
- .filter(Objects::nonNull)
- .collect(Collectors.toList());
-
- if (purchaseLedgerIds.isEmpty()) {
- return Collections.emptyMap();
- }
-
- LambdaQueryWrapper<SalesLedgerProduct> query = new LambdaQueryWrapper<>();
- query.in(SalesLedgerProduct::getSalesLedgerId, purchaseLedgerIds);
- List<SalesLedgerProduct> products = salesLedgerProductMapper.selectList(query);
-
- return products.stream()
- .filter(slp -> slp.getSalesLedgerId() != null)
- .collect(Collectors.groupingBy(SalesLedgerProduct::getSalesLedgerId));
- }
-
- // 鎵归噺鏌ヨ浠樻璁板綍锛堝綋鏈堬級
- private Map<Long, List<PaymentRegistration>> batchQueryPaymentRegistrations(List<Long> supplierIds, LocalDate startDate, LocalDate endDate) {
- LambdaQueryWrapper<PaymentRegistration> query = new LambdaQueryWrapper<>();
- query.in(PaymentRegistration::getSupplierId, supplierIds)
- .ge(PaymentRegistration::getPaymentDate, startDate)
- .le(PaymentRegistration::getPaymentDate, endDate);
- List<PaymentRegistration> paymentRegistrations = paymentRegistrationMapper.selectList(query);
-
- return paymentRegistrations.stream()
- .filter(pr -> pr.getSupplierId() != null)
- .collect(Collectors.groupingBy(PaymentRegistration::getSupplierId));
- }
-
- // 璁$畻鎬诲簲浠橀噾棰�
- private BigDecimal calculateTotalPayableAmount(Map<Long, List<PurchaseLedger>> purchaseLedgerMap,
- Map<Long, List<SalesLedgerProduct>> salesLedgerProductMap) {
- return purchaseLedgerMap.values().stream()
- .flatMap(Collection::stream)
- .map(pl -> salesLedgerProductMap.getOrDefault(pl.getId(), Collections.emptyList()))
- .flatMap(Collection::stream)
- .map(SalesLedgerProduct::getTaxInclusiveTotalPrice)
- .filter(Objects::nonNull)
- .reduce(BigDecimal.ZERO, BigDecimal::add);
- }
-
- // 璁$畻鎬讳粯娆鹃噾棰�
- private BigDecimal calculateTotalPaymentAmount(Map<Long, List<PaymentRegistration>> paymentRegistrationMap) {
- return paymentRegistrationMap.values().stream()
- .flatMap(Collection::stream)
- .map(PaymentRegistration::getCurrentPaymentAmount)
- .filter(Objects::nonNull)
- .reduce(BigDecimal.ZERO, BigDecimal::add);
- }
-}
diff --git a/src/main/java/com/ruoyi/purchase/service/impl/ProductRecordServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/ProductRecordServiceImpl.java
deleted file mode 100644
index 961e759..0000000
--- a/src/main/java/com/ruoyi/purchase/service/impl/ProductRecordServiceImpl.java
+++ /dev/null
@@ -1,138 +0,0 @@
-package com.ruoyi.purchase.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.common.enums.FileNameType;
-import com.ruoyi.framework.web.domain.AjaxResult;
-import com.ruoyi.purchase.dto.ProductRecordDto;
-import com.ruoyi.purchase.dto.TicketRegistrationDto;
-import com.ruoyi.purchase.mapper.ProductRecordMapper;
-import com.ruoyi.purchase.mapper.TicketRegistrationMapper;
-import com.ruoyi.purchase.pojo.ProductRecord;
-import com.ruoyi.purchase.pojo.TicketRegistration;
-import com.ruoyi.purchase.service.IProductRecordService;
-import com.ruoyi.sales.mapper.CommonFileMapper;
-import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
-import com.ruoyi.sales.pojo.CommonFile;
-import com.ruoyi.sales.pojo.SalesLedgerProduct;
-import lombok.RequiredArgsConstructor;
-import org.springframework.beans.BeanUtils;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.math.BigDecimal;
-import java.util.List;
-
-/**
- * 閲囪喘鍙拌处浜у搧寮�绁ㄨ褰昐ervice涓氬姟灞傚鐞�
- *
- * @author ruoyi
- * @date 2025-05-23
- */
-@Service
-@RequiredArgsConstructor
-public class ProductRecordServiceImpl extends ServiceImpl<ProductRecordMapper, ProductRecord> implements IProductRecordService {
-
- private final SalesLedgerProductMapper salesLedgerProductMapper;
- private final ProductRecordMapper productRecordMapper;
- private final CommonFileMapper commonFileMapper;
- /**
- * 鏌ヨ閲囪喘鍙拌处浜у搧寮�绁ㄨ褰�
- *
- * @param ticketRegistrationDto 閲囪喘鍙拌处浜у搧寮�绁ㄨ褰曚富閿�
- * @return 閲囪喘鍙拌处浜у搧寮�绁ㄨ褰�
- */
- @Override
- public List<ProductRecord> selectProductRecordList(TicketRegistrationDto ticketRegistrationDto) {
- return productRecordMapper.selectList(new LambdaQueryWrapper<ProductRecord>().eq(ProductRecord::getTicketRegistrationId, ticketRegistrationDto.getId())
- .eq(ProductRecord::getType, "2"));
- }
-
- @Override
- public IPage<ProductRecordDto> productRecordPage(Page page, TicketRegistrationDto ticketRegistrationDto) {
- IPage<ProductRecordDto> productRecordDtoIPage1 = productRecordMapper.productRecordPage(page, ticketRegistrationDto);
- page.setSize(productRecordDtoIPage1.getTotal());
- IPage<ProductRecordDto> productRecordDtoIPage = productRecordMapper.productRecordPage(page, ticketRegistrationDto);
- productRecordDtoIPage.getRecords().forEach(productRecordDto -> {
- productRecordDto.setCommonFiles(commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>().eq(CommonFile::getCommonId, productRecordDto.getId())
- .eq(CommonFile::getType, FileNameType.PURCHASELEDGER.getValue())));
- });
- return productRecordDtoIPage;
- }
-
- private final TicketRegistrationMapper ticketRegistrationMapper;
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public AjaxResult updateRecord(ProductRecordDto productRecordDto) {
- ProductRecord productRecord = productRecordMapper.selectById(productRecordDto.getId());
- if (productRecord == null) return AjaxResult.error("璁板綍涓嶅瓨鍦�");
-
- // 鏇存柊浜у搧鍙拌处
- SalesLedgerProduct salesLedgerProduct = salesLedgerProductMapper.selectById(productRecord.getSaleLedgerProjectId());
- if (salesLedgerProduct != null) {
- // 鏈潵绁ㄩ噾棰� = 鍘熸湭鏉ョエ閲戦 + 鏃ц閲戦 - 鏂拌閲戦
- BigDecimal futureTicketsAmount = salesLedgerProduct.getFutureTicketsAmount()
- .add(productRecord.getTicketsAmount())
- .subtract(productRecordDto.getTicketsAmount());
- salesLedgerProduct.setFutureTicketsAmount(futureTicketsAmount);
-
- // 鏈潵绁ㄦ暟 = 鍘熸湭鏉ョエ鏁� + 鏃ц鏁伴噺 - 鏂拌鏁伴噺
- BigDecimal futureTickets = salesLedgerProduct.getFutureTickets()
- .add(productRecord.getTicketsNum())
- .subtract(productRecordDto.getTicketsNum());
- salesLedgerProduct.setFutureTickets(futureTickets);
-
- // 鏇存柊浜у搧琛ㄦ湰娆℃暟鍊�
- salesLedgerProduct.setTicketsAmount(productRecordDto.getTicketsAmount());
- salesLedgerProduct.setTicketsNum(productRecordDto.getTicketsNum());
- salesLedgerProductMapper.updateById(salesLedgerProduct);
- }
-
- // 鏇存柊鏉ョエ鐧昏
- TicketRegistration ticketRegistration = ticketRegistrationMapper.selectById(productRecord.getTicketRegistrationId());
- if (ticketRegistration != null) {
- // 閲戦 = 鏂伴噾棰� - 鏃ч噾棰�
- BigDecimal amountDiff = productRecordDto.getTicketsAmount().subtract(productRecord.getTicketsAmount());
- // 鎬婚噾棰� = 鍘熸�婚噾棰� + 宸��
- ticketRegistration.setInvoiceAmount(ticketRegistration.getInvoiceAmount().add(amountDiff));
- // 鏇存柊鍙戠エ鍙�
- ticketRegistration.setInvoiceNumber(productRecordDto.getInvoiceNumber());
-
- ticketRegistrationMapper.updateById(ticketRegistration);
- }
-
- BeanUtils.copyProperties(productRecordDto, productRecord);
- // 閲嶆柊璁$畻鏈潵绁ㄩ噾棰濓紙鏍规嵁鍓╀綑绁ㄦ暟 * 鍗曚环锛�
- productRecord.setFutureTicketsAmount(productRecord.getFutureTickets().multiply(productRecord.getTaxInclusiveUnitPrice()));
- productRecordMapper.updateById(productRecord);
-
- return AjaxResult.success("淇敼鎴愬姛");
- }
-
- @Override
- public ProductRecordDto getProductRecordById(ProductRecordDto productRecordDto) {
- List<ProductRecordDto> productRecordDtoList = productRecordMapper.getProductRecordById(productRecordDto);
- if (CollectionUtils.isNotEmpty(productRecordDtoList)) {
- ProductRecordDto productRecordDto1 = productRecordDtoList.stream()
- .filter(item -> item.getId().equals(productRecordDto.getId()))
- .findFirst()
- .orElse(null);
- // 杩囨护鍑轰笌浼犲叆鐨� productRecordDto 涓婚敭鐩稿悓鐨勮褰�
- BigDecimal reduce = productRecordDtoList
- .stream()
- .filter(item -> item.getProductModelId().equals(productRecordDto.getProductModelId()))
- .map(ProductRecordDto::getTicketsNum)
- .reduce(BigDecimal.ZERO, BigDecimal::add);
- if (productRecordDto1 != null) {
- productRecordDto1.setFutureTickets(productRecordDto1.getQuantity().subtract(reduce));
- productRecordDto1.setFutureTicketsAmount(productRecordDto1.getFutureTickets().multiply(productRecordDto1.getTaxInclusiveUnitPrice()));
- }
- return productRecordDto1;
- }
- return null;
- }
-}
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 e9e5179..7cf5210 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -33,14 +33,8 @@
import com.ruoyi.purchase.dto.PurchaseLedgerDto;
import com.ruoyi.purchase.dto.PurchaseLedgerImportDto;
import com.ruoyi.purchase.dto.PurchaseLedgerProductImportDto;
-import com.ruoyi.purchase.mapper.PaymentRegistrationMapper;
-import com.ruoyi.purchase.mapper.ProductRecordMapper;
import com.ruoyi.purchase.mapper.PurchaseLedgerMapper;
-import com.ruoyi.purchase.mapper.TicketRegistrationMapper;
-import com.ruoyi.purchase.pojo.PaymentRegistration;
-import com.ruoyi.purchase.pojo.ProductRecord;
import com.ruoyi.purchase.pojo.PurchaseLedger;
-import com.ruoyi.purchase.pojo.TicketRegistration;
import com.ruoyi.purchase.service.IPurchaseLedgerService;
import com.ruoyi.quality.mapper.QualityInspectMapper;
import com.ruoyi.quality.mapper.QualityInspectParamMapper;
@@ -97,9 +91,6 @@
private final ProductMapper productMapper;
private final ProductModelMapper productModelMapper;
private final SysUserMapper sysUserMapper;
- private final TicketRegistrationMapper ticketRegistrationMapper;
- private final ProductRecordMapper productRecordMapper;
- private final PaymentRegistrationMapper paymentRegistrationMapper;
private final StringRedisTemplate redisTemplate;
private final QualityInspectMapper qualityInspectMapper;
private final CommonFileServiceImpl commonFileService;
@@ -330,18 +321,6 @@
queryWrapper.in(SalesLedgerProduct::getSalesLedgerId, ids)
.eq(SalesLedgerProduct::getType, 2);
salesLedgerProductMapper.delete(queryWrapper);
- // 鎵归噺鍒犻櫎鍏宠仈鐨勯噰璐彴璐︾殑鏉ョエ鐧昏
- LambdaQueryWrapper<TicketRegistration> ticketRegistrationLambdaQueryWrapper = new LambdaQueryWrapper<>();
- ticketRegistrationLambdaQueryWrapper.in(TicketRegistration::getPurchaseLedgerId,ids);
- ticketRegistrationMapper.delete(ticketRegistrationLambdaQueryWrapper);
- // 鎵归噺鍒犻櫎鍏宠仈鐨勯噰璐彴璐︾殑鏉ョエ鐧昏璁板綍
- LambdaQueryWrapper<ProductRecord> productRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
- productRecordLambdaQueryWrapper.in(ProductRecord::getPurchaseLedgerId,ids);
- productRecordMapper.delete(productRecordLambdaQueryWrapper);
- // 鎵归噺鍒犻櫎浠樻鐧昏
- LambdaQueryWrapper<PaymentRegistration> paymentRegistrationLambdaQueryWrapper = new LambdaQueryWrapper<>();
- paymentRegistrationLambdaQueryWrapper.in(PaymentRegistration::getPurchaseLedgerId, ids);
- paymentRegistrationMapper.delete(paymentRegistrationLambdaQueryWrapper);
//鎵归噺鍒犻櫎妫�楠屾爣鍑�
LambdaQueryWrapper<QualityInspect> materialInspectLambdaQueryWrapper = new LambdaQueryWrapper<>();
materialInspectLambdaQueryWrapper.in(QualityInspect::getPurchaseLedgerId, ids);
diff --git a/src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java
deleted file mode 100644
index a98d924..0000000
--- a/src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java
+++ /dev/null
@@ -1,464 +0,0 @@
-package com.ruoyi.purchase.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
-import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.common.enums.FileNameType;
-import com.ruoyi.common.enums.SalesLedgerType;
-import com.ruoyi.common.exception.base.BaseException;
-import com.ruoyi.common.utils.DateUtils;
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.bean.BeanUtils;
-import com.ruoyi.other.mapper.TempFileMapper;
-import com.ruoyi.purchase.dto.PaymentRegistrationDto;
-import com.ruoyi.purchase.dto.PurchaseLedgerDto;
-import com.ruoyi.purchase.dto.TicketRegistrationDto;
-import com.ruoyi.purchase.mapper.PaymentRegistrationMapper;
-import com.ruoyi.purchase.mapper.ProductRecordMapper;
-import com.ruoyi.purchase.mapper.PurchaseLedgerMapper;
-import com.ruoyi.purchase.mapper.TicketRegistrationMapper;
-import com.ruoyi.purchase.pojo.PaymentRegistration;
-import com.ruoyi.purchase.pojo.ProductRecord;
-import com.ruoyi.purchase.pojo.PurchaseLedger;
-import com.ruoyi.purchase.pojo.TicketRegistration;
-import com.ruoyi.purchase.service.ITicketRegistrationService;
-import com.ruoyi.sales.mapper.CommonFileMapper;
-import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
-import com.ruoyi.sales.pojo.CommonFile;
-import com.ruoyi.sales.pojo.SalesLedgerProduct;
-import com.ruoyi.sales.service.ISalesLedgerProductService;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.io.IOException;
-import java.math.BigDecimal;
-import java.time.LocalDate;
-import java.time.format.DateTimeFormatter;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-/**
- * 鏉ョエ鐧昏Service涓氬姟灞傚鐞�
- *
- * @author ruoyi
- * @date 2025-05-13
- */
-@Service
-@RequiredArgsConstructor
-@Slf4j
-public class TicketRegistrationServiceImpl extends ServiceImpl<TicketRegistrationMapper, TicketRegistration> implements ITicketRegistrationService {
-
- private final TicketRegistrationMapper ticketRegistrationMapper;
-
- private final PurchaseLedgerMapper purchaseLedgerMapper;
-
- private final SalesLedgerProductMapper salesLedgerProductMapper;
-
- private final CommonFileMapper commonFileMapper;
-
- private final TempFileMapper tempFileMapper;
-
- private final ProductRecordMapper productRecordMapper;
-
- private final ISalesLedgerProductService salesLedgerProductService;
-
- private final PaymentRegistrationMapper paymentRegistrationMapper;
-
-
- @Override
- public List<TicketRegistration> selectTicketRegistrationList(TicketRegistration ticketRegistration) {
- LambdaQueryWrapper<TicketRegistration> queryWrapper = new LambdaQueryWrapper<>();
- if (StringUtils.isNotBlank(ticketRegistration.getPurchaseContractNumber())) {
- queryWrapper.like(TicketRegistration::getPurchaseContractNumber, ticketRegistration.getPurchaseContractNumber())
- .like(TicketRegistration::getSupplierName, ticketRegistration.getSupplierName())
- .eq(TicketRegistration::getIssueDate, ticketRegistration.getIssueDate());
- }
- List<TicketRegistration> ticketRegistrationList = ticketRegistrationMapper.selectList(queryWrapper);
- // 璁$畻宸蹭粯娆鹃噾棰�
- if (CollectionUtils.isNotEmpty(ticketRegistrationList)) {
- List<Long> ids = ticketRegistrationList.stream().map(TicketRegistration::getId).collect(Collectors.toList());
- List<PaymentRegistrationDto> paymentRegistrationDtoList = paymentRegistrationMapper.countPaymentTotalByTicketRegId(ids);
- for (TicketRegistration registration : ticketRegistrationList) {
- BigDecimal paymentAmountTotal = BigDecimal.ZERO;
- for (PaymentRegistrationDto paymentRegistrationDto : paymentRegistrationDtoList) {
- if (registration.getId().equals(paymentRegistrationDto.getTicketRegistrationId())) {
- paymentAmountTotal = paymentRegistrationDto.getPaymentAmountTotal();
- break;
- }
- }
- BigDecimal invoiceAmount = registration.getInvoiceAmount();
- BigDecimal subtractAmount = invoiceAmount.subtract(paymentAmountTotal);
- registration.setPaymentAmountTotal(paymentAmountTotal);
- registration.setUnPaymentAmountTotal(subtractAmount);
- }
- }
-
- return ticketRegistrationList;
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public int addOrUpdateRegistration(TicketRegistrationDto ticketRegistrationDto) throws IOException {
- // 1. 鏌ヨ閲囪喘鍙拌处璁板綍
- PurchaseLedger purchaseLedger = purchaseLedgerMapper.selectById(ticketRegistrationDto.getPurchaseLedgerId());
- if (purchaseLedger == null) {
- // 澶勭悊閲囪喘鍙拌处涓嶅瓨鍦ㄧ殑鎯呭喌锛屼緥濡傛姏鍑哄紓甯告垨杩斿洖閿欒
- throw new IllegalArgumentException("閲囪喘鍙拌处璁板綍涓嶅瓨鍦紝ID: " + ticketRegistrationDto.getPurchaseLedgerId());
- }
-
-
-
- // 3. 鍒涘缓鎴栨洿鏂扮エ鎹櫥璁板疄浣�
- TicketRegistration ticketRegistration = new TicketRegistration();
- BeanUtils.copyProperties(ticketRegistrationDto, ticketRegistration);
- ticketRegistration.setPurchaseContractNumber(purchaseLedger.getPurchaseContractNumber());
- ticketRegistration.setTenantId(purchaseLedger.getTenantId());
- ticketRegistration.setIssueDate(ticketRegistrationDto.getEntryDate());
- ticketRegistration.setContractAmount(purchaseLedger.getContractAmount());
- ticketRegistration.setSalesLedgerId(purchaseLedger.getSalesLedgerId());
- ticketRegistration.setEnterDate(ticketRegistrationDto.getEnterDate());
-
- // 4. 澶勭悊瀛愯〃鏁版嵁
- List<SalesLedgerProduct> productData = ticketRegistrationDto.getProductData();
- if (CollectionUtils.isNotEmpty(productData)) {
- handleSalesLedgerProducts(purchaseLedger.getId(), productData, 2);
- }
-
- // 5. 鎵ц鎻掑叆鎴栨洿鏂版搷浣�
- int rowsAffected = ticketRegistrationMapper.insert(ticketRegistration);
-
- // 6. 澧炲姞閲囪喘鍙拌处浜у搧寮�绁ㄨ褰�
- List<SalesLedgerProduct> salesLedgerProducts = ticketRegistrationDto.getProductData();
- if (CollectionUtils.isNotEmpty(salesLedgerProducts)) {
- int insert = 0 ;
- for (SalesLedgerProduct salesLedgerProduct : salesLedgerProducts) {
- //鎺掗櫎鎺夊紑绁ㄤ负0鐨勬暟鎹�
- if (salesLedgerProduct.getTicketsNum() != null && salesLedgerProduct.getTicketsNum().compareTo(BigDecimal.ZERO) > 0) {
- ProductRecord productRecord = new ProductRecord();
-
- productRecord.setTicketRegistrationId(ticketRegistration.getId());
- productRecord.setPurchaseLedgerId(ticketRegistrationDto.getPurchaseLedgerId());
- productRecord.setCreatedAt(DateUtils.getNowDate());
- BeanUtils.copyProperties(salesLedgerProduct, productRecord);
- //鍚屾鏇存柊鍏朵粬鍓╀綑鏁伴噺鍜岄噾棰�
- productRecordMapper.update(
- null,
- new LambdaUpdateWrapper<ProductRecord>()
- .eq(ProductRecord::getPurchaseLedgerId, ticketRegistrationDto.getPurchaseLedgerId())
- .set(ProductRecord::getFutureTickets, salesLedgerProduct.getFutureTickets())
- .set(ProductRecord::getFutureTicketsAmount, salesLedgerProduct.getFutureTicketsAmount())
- );
- productRecord.setSaleLedgerProjectId(salesLedgerProduct.getId());
- productRecord.setId(null);
- productRecord.setType("2");
- insert += productRecordMapper.insert(productRecord);
- }
- }
- if (insert <= 0) {
- throw new RuntimeException("浜у搧寮�绁ㄦ暟閮戒负0锛岃妫�鏌�");
- }
- }
- return rowsAffected;
- }
-
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public int delRegistration(Long[] ids) {
-
- // 鏌ヨ瑕佸垹闄ょ殑浜у搧鏉ョエ璁板綍
- LambdaQueryWrapper<ProductRecord> productWrapper = new LambdaQueryWrapper<>();
- productWrapper.in(ProductRecord::getId, Arrays.asList(ids));
- List<ProductRecord> productRecords = productRecordMapper.selectList(productWrapper);
-
- if (CollectionUtils.isEmpty(productRecords)) {
- return 0;
- }
-
- // 鏀堕泦鍏宠仈ID
- Set<Long> ticketRegistrationIds = productRecords.stream()
- .map(ProductRecord::getTicketRegistrationId)
- .collect(Collectors.toSet());
-
- Set<Long> salesLedgerProductIds = productRecords.stream()
- .map(ProductRecord::getSaleLedgerProjectId)
- .collect(Collectors.toSet());
-
- // 鏌ヨ鏉ョエ鐧昏
- List<TicketRegistration> ticketRegistrations =
- ticketRegistrationMapper.selectBatchIds(ticketRegistrationIds);
-
- // 澶勭悊鏉ョエ鐧昏閲戦銆佷粯娆炬祦姘�
- for (TicketRegistration ticket : ticketRegistrations) {
-
- // 璇ユ潵绁ㄧ櫥璁颁笅鎵�鏈変骇鍝佽褰�
- List<ProductRecord> recordsOfTicket = productRecords.stream()
- .filter(r -> r.getTicketRegistrationId().equals(ticket.getId()))
- .collect(Collectors.toList());
-
- // 璁$畻瑕佸洖閫�鐨勯噾棰�
- BigDecimal rollbackAmount = recordsOfTicket.stream()
- .map(ProductRecord::getTicketsAmount)
- .reduce(BigDecimal.ZERO, BigDecimal::add);
-
- BigDecimal remain = ticket.getInvoiceAmount().subtract(rollbackAmount);
-
- if (remain.compareTo(BigDecimal.ZERO) <= 0) {
- // 鍒犻櫎鏉ョエ鐧昏
- ticketRegistrationMapper.deleteById(ticket.getId());
- // 鍒犻櫎浠樻娴佹按
- paymentRegistrationMapper.delete(
- new LambdaQueryWrapper<PaymentRegistration>()
- .eq(PaymentRegistration::getTicketRegistrationId, ticket.getId())
- );
- } else {
- ticket.setInvoiceAmount(remain);
- ticketRegistrationMapper.updateById(ticket);
- }
- }
-
- // 鍥為��閿�鍞彴璐︿骇鍝佺殑鏈潵绁�
- for (ProductRecord record : productRecords) {
-
- LambdaQueryWrapper<SalesLedgerProduct> wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(SalesLedgerProduct::getId, record.getSaleLedgerProjectId())
- .eq(SalesLedgerProduct::getType, 2);
-
- SalesLedgerProduct product = salesLedgerProductMapper.selectOne(wrapper);
- if (product != null) {
- product.setFutureTickets(
- product.getFutureTickets().add(record.getTicketsNum())
- );
- product.setFutureTicketsAmount(
- product.getFutureTicketsAmount().add(record.getTicketsAmount())
- );
- salesLedgerProductMapper.updateById(product);
- }
- }
-
- // 鍒犻櫎浜у搧鏉ョエ璁板綍
- productRecordMapper.delete(productWrapper);
-
- // 閲嶆柊璁$畻 currentInvoiceAmount
- for (Long productId : salesLedgerProductIds) {
- refreshCurrentInvoiceAmount(productId);
- }
-
- return 1;
- }
-
- private void refreshCurrentInvoiceAmount(Long salesLedgerProductId) {
-
- // 鏌ヨ璇ヤ骇鍝佹渶鏂颁竴鏉℃潵绁ㄨ褰�
- LambdaQueryWrapper<ProductRecord> wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(ProductRecord::getSaleLedgerProjectId, salesLedgerProductId)
- .orderByDesc(ProductRecord::getCreatedAt)
- .last("limit 1");
-
- ProductRecord latestRecord = productRecordMapper.selectOne(wrapper);
-
- SalesLedgerProduct product =
- salesLedgerProductMapper.selectById(salesLedgerProductId);
-
- if (product == null) {
- return;
- }
-
- if (latestRecord == null) {
- // 娌℃湁浠讳綍鏉ョエ璁板綍
- product.setTicketsAmount(BigDecimal.ZERO);
- } else {
- // 姘歌繙鍙栨渶鏂颁竴鏉�
- product.setTicketsAmount(latestRecord.getTicketsAmount());
- }
-
- salesLedgerProductMapper.updateById(product);
- }
-
-
- @Override
- public TicketRegistrationDto getRegistrationById(TicketRegistrationDto ticketRegistrationDto) {
- TicketRegistration ticketRegistration = ticketRegistrationMapper.selectById(ticketRegistrationDto.getId());
- LambdaQueryWrapper<PurchaseLedger> purchaseQueryWrapper = new LambdaQueryWrapper<>();
- purchaseQueryWrapper.eq(PurchaseLedger::getId, ticketRegistration.getPurchaseLedgerId());
- PurchaseLedger purchaseLedger = purchaseLedgerMapper.selectOne(purchaseQueryWrapper);
- if (ticketRegistration == null) {
- throw new BaseException("閲囪喘鍙拌处涓嶅瓨鍦�");
- }
- // 鍒涘缓骞跺~鍏匘TO
- TicketRegistrationDto resultDto = new TicketRegistrationDto();
- BeanUtils.copyProperties(ticketRegistration, resultDto);
-
- // 鏌ヨ骞惰缃叧鑱斾骇鍝�
- LambdaQueryWrapper<SalesLedgerProduct> queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.eq(SalesLedgerProduct::getSalesLedgerId, purchaseLedger.getId())
- .eq(SalesLedgerProduct::getType, 2);
- List<SalesLedgerProduct> productList = salesLedgerProductMapper.selectList(queryWrapper);
- resultDto.setProductData(productList);
- return resultDto;
- }
-
- @Override
- public List getTicketNo(TicketRegistrationDto ticketRegistrationDto) {
- LambdaQueryWrapper<TicketRegistration> queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.select(TicketRegistration::getId, TicketRegistration::getInvoiceNumber, TicketRegistration::getInvoiceAmount)
- .eq(TicketRegistration::getPurchaseLedgerId, ticketRegistrationDto.getId());
- List<Map<String, Object>> result = ticketRegistrationMapper.selectMaps(queryWrapper);
- // 灏嗕笅鍒掔嚎鍛藉悕杞崲涓洪┘宄板懡鍚�
- return result.stream().map(map -> map.entrySet().stream()
- .collect(Collectors.toMap(
- entry -> underlineToCamel(entry.getKey()),
- Map.Entry::getValue))
- ).collect(Collectors.toList());
- }
-
- @Override
- public IPage<TicketRegistration> selectTicketRegistrationListPage(Page page, TicketRegistration ticketRegistration) {
- LambdaQueryWrapper<TicketRegistration> queryWrapper = new LambdaQueryWrapper<>();
- if (StringUtils.isNotBlank(ticketRegistration.getSupplierNameOrContractNo())) {
- queryWrapper.and(wrapper -> wrapper
- .like(TicketRegistration::getPurchaseContractNumber, ticketRegistration.getSupplierNameOrContractNo())
- .or()
- .like(TicketRegistration::getSupplierName, ticketRegistration.getSupplierNameOrContractNo())
- .or()
- .like(TicketRegistration::getSalesContractNo, ticketRegistration.getSupplierNameOrContractNo()));
- }
- if (!ObjectUtils.isEmpty(ticketRegistration.getIssueDateStart()) && !ObjectUtils.isEmpty(ticketRegistration.getIssueDateEnd())) {
- queryWrapper.between(TicketRegistration::getIssueDate, LocalDate.parse(ticketRegistration.getIssueDateStart(), DateTimeFormatter.ofPattern("yyyy-MM-dd")), LocalDate.parse(ticketRegistration.getIssueDateEnd(), DateTimeFormatter.ofPattern("yyyy-MM-dd")));
- }
- IPage<TicketRegistration> ticketRegistrationIPage = ticketRegistrationMapper.selectPage(page, queryWrapper);
- // 璁$畻宸蹭粯娆鹃噾棰�
- if (CollectionUtils.isNotEmpty(ticketRegistrationIPage.getRecords())) {
- List<Long> ids = ticketRegistrationIPage.getRecords().stream().map(TicketRegistration::getId).collect(Collectors.toList());
- List<PaymentRegistrationDto> paymentRegistrationDtoList = paymentRegistrationMapper.countPaymentTotalByTicketRegId(ids);
- for (TicketRegistration registration : ticketRegistrationIPage.getRecords()) {
- BigDecimal paymentAmountTotal = BigDecimal.ZERO;
- for (PaymentRegistrationDto paymentRegistrationDto : paymentRegistrationDtoList) {
- if (registration.getId().equals(paymentRegistrationDto.getTicketRegistrationId())) {
- paymentAmountTotal = paymentRegistrationDto.getPaymentAmountTotal();
- break;
- }
- }
- BigDecimal invoiceAmount = registration.getInvoiceAmount();
- BigDecimal subtractAmount = invoiceAmount.subtract(paymentAmountTotal);
- registration.setPaymentAmountTotal(paymentAmountTotal);
- registration.setUnPaymentAmountTotal(subtractAmount);
- }
- }
- if (!ObjectUtils.isEmpty(ticketRegistration.getStatus())) {
-
- if (ticketRegistration.getStatus()) {
- ticketRegistrationIPage.getRecords().removeIf(receiptPaymentDto1 -> new BigDecimal("0.00").equals(receiptPaymentDto1.getUnPaymentAmountTotal()));
- ticketRegistrationIPage.setTotal(ticketRegistrationIPage.getRecords().size());
- }
- }
- ticketRegistrationIPage.getRecords().forEach(item -> {
- // 宸蹭粯娆鹃噾棰� == 寰呬粯娆鹃噾棰�
- item.setStatusName(item.getPaymentAmountTotal().compareTo(item.getInvoiceAmount()) == 0 ? "宸插畬鎴愪粯娆�" : "鏈畬鎴愪粯娆�");
- });
- return ticketRegistrationIPage;
- }
-
- @Override
- public PurchaseLedgerDto getPuargeById(Long id) {
- PurchaseLedger purchaseLedger = purchaseLedgerMapper.selectById(id);
- PurchaseLedgerDto purchaseLedgerDto = new PurchaseLedgerDto();
- BeanUtils.copyProperties(purchaseLedger, purchaseLedgerDto);
- SalesLedgerProduct salesLedgerProduct = new SalesLedgerProduct();
- salesLedgerProduct.setSalesLedgerId(id);
- salesLedgerProduct.setType(SalesLedgerType.SALES_LEDGER_TYPE_SALES_LEDGER.getCode());
- List<SalesLedgerProduct> salesLedgerProducts = salesLedgerProductService.selectSalesLedgerProductList(salesLedgerProduct);
- purchaseLedgerDto.setProductData(salesLedgerProducts);
- List<CommonFile> commonFiles = commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
- .eq(CommonFile::getType, FileNameType.PURCHASELEDGER.getValue())
- .eq(CommonFile::getCommonId, id));
- purchaseLedgerDto.setSalesLedgerFiles(commonFiles);
- return purchaseLedgerDto;
- }
-
- @Override
- public List<PaymentRegistrationDto> getPaymentRegistrationDtoById(Long id) {
- List<PaymentRegistrationDto> paymentRegistrationDtos =purchaseLedgerMapper.getPaymentRegistrationDtoById(id);
- return paymentRegistrationDtos;
- }
-
- private void handleSalesLedgerProducts(Long salesLedgerId, List<SalesLedgerProduct> products, Integer type) {
- if (products == null || products.isEmpty()) {
- return;
- }
-
- // 杩囨护鍑烘湁 ID 鐨勮褰曪紙鍗抽渶瑕佹洿鏂扮殑璁板綍锛�
- List<SalesLedgerProduct> updateList = products.stream()
- .filter(p -> p.getId() != null)
- .peek(p -> {
- p.setSalesLedgerId(salesLedgerId);
- p.setType(type);
- })
- .collect(Collectors.toList());
-
- // 鎵归噺鏇存柊锛堥渶瑕� MyBatis 鎻愪緵鎵归噺鏇存柊鏂规硶锛�
- if (!updateList.isEmpty()) {
- updateList.forEach(product -> {
- // 闈炵┖鏍¢獙锛屼换涓�瀛楁涓虹┖鍒欐姏鍑哄紓甯�
- if (product.getQuantity() == null) {
- throw new BaseException("鏁伴噺涓嶈兘涓虹┖");
- }
- if (product.getTicketsNum() == null) {
- throw new BaseException("宸插紑绁ㄦ暟閲忎笉鑳戒负绌�");
- }
- if (product.getTaxInclusiveTotalPrice() == null) {
- throw new BaseException("鍚◣鎬讳环涓嶈兘涓虹┖");
- }
- if (product.getTicketsAmount() == null) {
- throw new BaseException("鏈鏉ョエ閲戦(鍏�)涓嶈兘涓虹┖");
- }
-
- // 璁$畻 futureTickets锛堢洿鎺ヤ娇鐢� BigDecimal 璁$畻锛岄伩鍏嶇簿搴︿涪澶憋級
-// product.setFutureTickets(
-// product.getQuantity()
-// .subtract(product.getTicketsNum())
-// );
-
-
- // 璁$畻 futureTicketsAmount
-// product.setFutureTicketsAmount(
-// product.getTaxInclusiveTotalPrice()
-// .subtract(product.getTicketsAmount())
-// );
- product.setType(type);
- salesLedgerProductMapper.updateById(product);
- });
- }
- }
-
- /**
- * 涓嬪垝绾垮懡鍚嶈浆椹煎嘲鍛藉悕
- */
- private String underlineToCamel(String param) {
- if (param == null || "".equals(param.trim())) {
- return "";
- }
- int len = param.length();
- StringBuilder sb = new StringBuilder(len);
- for (int i = 0; i < len; i++) {
- char c = param.charAt(i);
- if (c == '_') {
- if (++i < len) {
- sb.append(Character.toUpperCase(param.charAt(i)));
- }
- } else {
- sb.append(Character.toLowerCase(c));
- }
- }
- return sb.toString();
- }
-}
diff --git a/src/main/java/com/ruoyi/sales/controller/ReceiptPaymentController.java b/src/main/java/com/ruoyi/sales/controller/ReceiptPaymentController.java
deleted file mode 100644
index 24c0c8b..0000000
--- a/src/main/java/com/ruoyi/sales/controller/ReceiptPaymentController.java
+++ /dev/null
@@ -1,181 +0,0 @@
-package com.ruoyi.sales.controller;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.common.utils.bean.BeanUtils;
-import com.ruoyi.common.utils.poi.ExcelUtil;
-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;
-import com.ruoyi.sales.dto.ReceiptPaymentDto;
-import com.ruoyi.sales.dto.ReceiptPaymentRecordDto;
-import com.ruoyi.sales.pojo.ReceiptPayment;
-import com.ruoyi.sales.service.ReceiptPaymentService;
-import io.swagger.v3.oas.annotations.media.Schema;
-import jakarta.servlet.http.HttpServletResponse;
-import lombok.AllArgsConstructor;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.*;
-
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.stream.Collectors;
-
-@RestController
-@RequestMapping("/receiptPayment")
-@AllArgsConstructor
-public class ReceiptPaymentController extends BaseController {
-
- private ReceiptPaymentService receiptPaymentService;
-
- /**
- * 鍥炴鐧昏鏂板
- * @param receiptPayment
- * @return
- */
- @PostMapping("/saveOrUpdate")
- public AjaxResult receiptPaymentSaveOrUpdate (@RequestBody List<ReceiptPayment> receiptPayment) {
- receiptPaymentService.receiptPaymentSaveOrUpdate(receiptPayment);
- return AjaxResult.success();
- }
-
- /**
- * 鍥炴鐧昏淇敼
- * @param receiptPayment
- * @return
- */
- @PostMapping("/update")
- @Transactional(rollbackFor = Exception.class)
- public AjaxResult receiptPaymentUpdate (@RequestBody ReceiptPayment receiptPayment) {
- return AjaxResult.success(receiptPaymentService.receiptPaymentUpdate(receiptPayment));
- }
-
- /**
- * 鍥炴鐧昏鍒犻櫎
- * @param ids
- * @return
- */
- @DeleteMapping("/del")
- @Transactional(rollbackFor = Exception.class)
- public AjaxResult receiptPaymentDel (@RequestBody List<Integer> ids) {
- return AjaxResult.success(receiptPaymentService.receiptPaymentDel(ids));
- }
-
- /**
- * 瀹㈡埛寰�鏉ヨ褰曟煡璇�
- * @param
- * @return
- */
- @GetMapping("/customerInteractions")
- public AjaxResult customerInteractions () {
- return AjaxResult.success();
- }
-
- /**
- * 鍥炴鐧昏璇︽儏
- * @param id
- * @return
- */
- @GetMapping("/info")
- public AjaxResult receiptPaymentInfo (Integer id) {
- return AjaxResult.success(receiptPaymentService.receiptPaymentInfo(id));
- }
-
- /**
- * 鏈湀鍥炴閲戦
- */
- @GetMapping("/getReceiptAmount")
- public AjaxResult getReceiptAmount() {
- try {
- BigDecimal receiptAmount = receiptPaymentService.getReceiptAmount();
- return AjaxResult.success(receiptAmount != null ? receiptAmount : BigDecimal.ZERO);
- } catch (Exception e) {
- return AjaxResult.error("鑾峰彇鍥炴閲戦澶辫触锛�" + e.getMessage());
- }
- }
-
- /**
- * 鏌ヨ宸茬粡缁戝畾鍙戠エ鐨勫紑绁ㄥ彴璐�
- * @param page
- * @param receiptPaymentDto
- * @return
- */
- @GetMapping("/bindInvoiceNoRegPage")
- public AjaxResult bindInvoiceNoRegPage(Page page, ReceiptPaymentDto receiptPaymentDto) {
- return AjaxResult.success(receiptPaymentService.bindInvoiceNoRegPage(page,receiptPaymentDto));
- }
-
- @Schema(description = "瀵煎嚭鍥炴鐧昏")
- @PostMapping("/export")
- public void export(HttpServletResponse response, String ids) {
- if (ids == null || ids.isEmpty()) {
- receiptPaymentService.exportPaymentList(response, null);
- } else {
- ArrayList<Long> idList = (ArrayList<Long>) Arrays.stream(ids.split(","))
- .map(s -> s.replaceAll("[\\[\\]]", "").trim())
- .map(Long::valueOf)
- .collect(Collectors.toList());
- receiptPaymentService.exportPaymentList(response, idList);
- }
- }
-
-
-
- /**
- * 鏈湀搴旀敹,鍥炴閲戦
- */
- @GetMapping("/getAmountMouth")
- public AjaxResult getAmountMouth() {
- return AjaxResult.success(receiptPaymentService.getAmountMouth());
- }
-
- /**
- * 鏌ヨ鍥炴璁板綍
- */
- @GetMapping("/receiptPaymentHistoryList")
- public TableDataInfo receiptPaymentHistoryList(ReceiptPaymentDto receiptPaymentDto) {
- startPage();
- List<ReceiptPaymentDto> list = receiptPaymentService.receiptPaymentHistoryList(receiptPaymentDto);
- return getDataTable(list);
- }
-
- /**
- * 鏌ヨ鍥炴璁板綍
- */
- @GetMapping("/receiptPaymentHistoryListPage")
- public IPage<ReceiptPaymentDto> receiptPaymentHistoryListPage(Page page, ReceiptPaymentDto receiptPaymentDto) {
- return receiptPaymentService.receiptPaymentHistoryListPage(page,receiptPaymentDto);
- }
-
- /**
- * 瀵煎嚭鍥炴娴佹按鍒楄〃
- */
- @Log(title = "瀵煎嚭鍥炴娴佹按鍒楄〃", businessType = BusinessType.EXPORT)
- @PostMapping("/exportOne")
- public void exportOne(HttpServletResponse response, ReceiptPaymentDto salesLedgerDto) {
- Page page = new Page();
- page.setCurrent(-1);
- page.setSize(-1);
- IPage<ReceiptPaymentDto> salesLedgerIPage = receiptPaymentHistoryListPage(page, salesLedgerDto);
- ExcelUtil<ReceiptPaymentRecordDto> util = new ExcelUtil<ReceiptPaymentRecordDto>(ReceiptPaymentRecordDto.class);
- List<ReceiptPaymentRecordDto> receiptPaymentRecordDtos = new ArrayList<>();
- salesLedgerIPage.getRecords().forEach(receiptPaymentRecordDto -> {
- ReceiptPaymentRecordDto receiptPaymentRecordDto1 = new ReceiptPaymentRecordDto();
- BeanUtils.copyProperties(receiptPaymentRecordDto, receiptPaymentRecordDto1);
- receiptPaymentRecordDtos.add(receiptPaymentRecordDto1);
- });
- util.exportExcel(response, receiptPaymentRecordDtos, "瀵煎嚭寮�绁ㄧ櫥璁板垪琛�");
- }
-
- /**
- * 鏌ヨ鍥炴璁板綍涓嶅垎椤�
- */
- @GetMapping("/receiptPaymentHistoryListNoPage")
- public List<ReceiptPaymentDto> receiptPaymentHistoryListNoPage(ReceiptPaymentDto receiptPaymentDto) {
- return receiptPaymentService.receiptPaymentHistoryListNoPage(receiptPaymentDto);
- }
-}
diff --git a/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java b/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
index 603fd22..05b0bce 100644
--- a/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
+++ b/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
@@ -1,11 +1,11 @@
package com.ruoyi.sales.controller;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.basic.enums.ApplicationTypeEnum;
import com.ruoyi.basic.enums.RecordTypeEnum;
+import com.ruoyi.basic.utils.FileUtil;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
@@ -14,22 +14,19 @@
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.framework.web.page.TableDataInfo;
import com.ruoyi.sales.dto.SalesLedgerDto;
-import com.ruoyi.sales.mapper.ReceiptPaymentMapper;
-import com.ruoyi.sales.pojo.ReceiptPayment;
import com.ruoyi.sales.pojo.SalesLedger;
import com.ruoyi.sales.service.ICommonFileService;
import com.ruoyi.sales.service.ISalesLedgerService;
import com.ruoyi.sales.vo.SalesLedgerVo;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import io.swagger.v3.oas.annotations.Operation;
import io.swagger.annotations.ApiParam;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
-import com.ruoyi.basic.utils.FileUtil;
import java.io.FileNotFoundException;
import java.io.IOException;
@@ -55,7 +52,6 @@
private ISalesLedgerService salesLedgerService;
private ICommonFileService commonFileService;
- private ReceiptPaymentMapper receiptPaymentMapper;
private final FileUtil fileUtil;
/**
@@ -251,23 +247,11 @@
List<Long> salesLedgerIds = iPage.getRecords().stream().map(SalesLedger::getId).collect(Collectors.toList());
- // 鏌ヨ鍥炴/浠樻璁板綍
- List<ReceiptPayment> receiptPayments = Collections.emptyList();
- if (!CollectionUtils.isEmpty(salesLedgerIds)) {
- receiptPayments = receiptPaymentMapper.selectList(new LambdaQueryWrapper<ReceiptPayment>()
- .in(ReceiptPayment::getSalesLedgerId, salesLedgerIds));
- }
+
// 杞崲鍥炴鏁版嵁, key 涓哄彴璐D, value 涓鸿鍙拌处鐨勬�诲洖娆鹃噾棰�
Map<Long, BigDecimal> receiptTotals = new HashMap<>();
- if (!CollectionUtils.isEmpty(receiptPayments)) {
- for (ReceiptPayment receiptPayment : receiptPayments) {
- if (receiptPayment.getSalesLedgerId() != null && receiptPayment.getReceiptPaymentAmount() != null) {
- // 濡傛灉 key 瀛樺湪鍒欑浉鍔�,涓嶅瓨鍦ㄥ垯鏀惧叆
- receiptTotals.merge(receiptPayment.getSalesLedgerId(), receiptPayment.getReceiptPaymentAmount(), BigDecimal::add);
- }
- }
- }
+
for (SalesLedgerVo salesLedgerVo : iPage.getRecords()) {
Long ledgerId = salesLedgerVo.getId();
diff --git a/src/main/java/com/ruoyi/sales/dto/ReceiptPaymentDto.java b/src/main/java/com/ruoyi/sales/dto/ReceiptPaymentDto.java
deleted file mode 100644
index fb2004a..0000000
--- a/src/main/java/com/ruoyi/sales/dto/ReceiptPaymentDto.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package com.ruoyi.sales.dto;
-
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.framework.aspectj.lang.annotation.Excel;
-import com.ruoyi.sales.pojo.ReceiptPayment;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.math.BigDecimal;
-import java.time.LocalDate;
-import java.util.Date;
-
-@Data
-public class ReceiptPaymentDto extends ReceiptPayment {
-
- @Schema(description = "瀹㈡埛鍚堝悓鍙�")
- @Excel(name = "瀹㈡埛鍚堝悓鍙�")
- private String customerContractNo;
-
- @Schema(description = "鐘舵��")
- @Excel(name = "鐘舵��")
- private String statusName;
-
-
- @Schema(description = "瀹㈡埛鍚嶇О")
- @Excel(name = "瀹㈡埛鍚嶇О")
- private String customerName;
-
- @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
- @DateTimeFormat(pattern = "yyyy-MM-dd")
- @Excel(name = "寮�绁ㄦ棩鏈�",width = 30,dateFormat = "yyyy-MM-dd")
- @Schema(description = "寮�绁ㄦ棩鏈�")
- private Date invoiceDate;
-
- @TableField(exist = false)
- private String invoiceDateStart;
- @TableField(exist = false)
- private String invoiceDateEnd;
-
- @Schema(description = "鏌ヨ鏂囨湰")
- private String searchText;
-
- @Schema(description = "閿�鍞彴璐ales_ledger")
- @Excel(isExport = false)
- private Long salesLedgerId;
-
- @Schema(description = "閿�鍞悎鍚屽彿")
- @Excel(name = "閿�鍞悎鍚屽彿")
- private String salesContractNo;
-
- @Schema(description = "瀹㈡埛鍚嶇ОID")
- @Excel(isExport = false)
- private Integer customerId;
-
- @Schema(description = "鍙戠エ鍙�")
- @Excel(name = "鍙戠エ鍙�")
- private String invoiceNo;
-
- @Schema(description = "鍙戠エ閲戦")
- @Excel(name = "鍙戠エ閲戦")
- private BigDecimal invoiceTotal;
-
- @Schema(description = "绋庣巼锛�%锛�")
- @Excel(name = "绋庣巼锛�%锛�")
- private BigDecimal taxRate;
-
- @Schema(description = "浜у搧澶х被")
- @Excel(name = "浜у搧澶х被")
- private String productCategory;
-
- @Schema(description = "鍥炴閲戦")
- @Excel(name = "鍥炴閲戦")
- private BigDecimal receiptPaymentAmountTotal;
-
- @Schema(description = "寰呭洖娆鹃噾棰�")
- @Excel(name = "寰呭洖娆鹃噾棰�")
- private BigDecimal noReceiptAmount;
-
- @TableField(exist = false)
- @Excel(isExport = false)
- private Boolean status;
-
- @TableField(exist = false)
- @Excel(isExport = false)
- private String receiptPaymentDateStart;
- @TableField(exist = false)
- @Excel(isExport = false)
- private String receiptPaymentDateEnd;
-
- @Schema(description = "椤圭洰鍚嶇О")
- @Excel(name = "椤圭洰鍚嶇О")
- private String projectName;
-
-
-}
diff --git a/src/main/java/com/ruoyi/sales/dto/ReceiptPaymentExeclDto.java b/src/main/java/com/ruoyi/sales/dto/ReceiptPaymentExeclDto.java
deleted file mode 100644
index 4212961..0000000
--- a/src/main/java/com/ruoyi/sales/dto/ReceiptPaymentExeclDto.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package com.ruoyi.sales.dto;
-
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.ruoyi.framework.aspectj.lang.annotation.Excel;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
-import java.math.BigDecimal;
-
-@Data
-public class ReceiptPaymentExeclDto {
-
- @Schema(description = "閿�鍞悎鍚屽彿")
- @Excel(name = "閿�鍞悎鍚屽彿",sort = 1)
- private String salesContractNo;
-
- @Schema(description = "瀹㈡埛鍚堝悓鍙�")
- @Excel(name = "瀹㈡埛鍚堝悓鍙�",sort = 2)
-
- private String customerContractNo;
-
- @Schema(description = "瀹㈡埛鍚嶇О")
- @Excel(name = "瀹㈡埛鍚嶇О",sort = 3)
- private String customerName;
-
- @Schema(description = "浜у搧澶х被")
- @Excel(name = "浜у搧澶х被",sort = 4)
- private String productCategory;
-
- @Schema(description = "椤圭洰鍚嶇О")
- @Excel(name = "椤圭洰鍚嶇О",sort = 5)
- private String projectName;
-
- @Schema(description = "鍙戠エ鍙�")
- @Excel(name = "鍙戠エ鍙�",sort = 6)
- private String invoiceNo;
-
- @Schema(description = "鍙戠エ閲戦")
- @Excel(name = "鍙戠エ閲戦",sort = 7)
- private BigDecimal invoiceTotal;
-
- @Schema(description = "绋庣巼锛�%锛�")
- @Excel(name = "绋庣巼锛�%锛�",sort = 8)
- private BigDecimal taxRate;
-
- @Schema(description = "鍥炴閲戦")
- @Excel(name = "鍥炴閲戦",sort = 9)
- private BigDecimal receiptPaymentAmountTotal;
-
- @Schema(description = "寰呭洖娆鹃噾棰�")
- @Excel(name = "寰呭洖娆鹃噾棰�",sort = 10)
- private BigDecimal noReceiptAmount;
-
-
-
-
-}
diff --git a/src/main/java/com/ruoyi/sales/dto/ReceiptPaymentRecordDto.java b/src/main/java/com/ruoyi/sales/dto/ReceiptPaymentRecordDto.java
deleted file mode 100644
index c2410e8..0000000
--- a/src/main/java/com/ruoyi/sales/dto/ReceiptPaymentRecordDto.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package com.ruoyi.sales.dto;
-
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.framework.aspectj.lang.annotation.Excel;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.math.BigDecimal;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.util.Date;
-
-/**
- * @author :yys
- * @date : 2025/10/31 10:17
- */
-@Data
-public class ReceiptPaymentRecordDto {
-
- @Schema(description = "瀹㈡埛鍚堝悓鍙�")
- @Excel(name = "瀹㈡埛鍚堝悓鍙�")
- private String customerContractNo;
-
- @Schema(description = "瀹㈡埛鍚嶇О")
- @Excel(name = "瀹㈡埛鍚嶇О")
- private String customerName;
-
- @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
- @DateTimeFormat(pattern = "yyyy-MM-dd")
- @Excel(name = "鐧昏鏃ユ湡",width = 30,dateFormat = "yyyy-MM-dd")
- @Schema(description = "鐧昏鏃ユ湡")
- private LocalDateTime createTime;
-
- @Schema(description = "閿�鍞悎鍚屽彿")
- @Excel(name = "閿�鍞悎鍚屽彿")
- private String salesContractNo;
-
- @Schema(description = "鍥炴閲戦")
- @Excel(name = "鍥炴閲戦")
- private BigDecimal receiptPaymentAmount;
-
- @Schema(description = "椤圭洰鍚嶇О")
- @Excel(name = "椤圭洰鍚嶇О")
- private String projectName;
-
- @Schema(description = "鍥炴褰㈠紡 0鐢垫眹1鎵垮厬")
- @Excel(name = "鍥炴褰㈠紡",readConverterExp = "0=鐢垫眹,1=鎵垮厬")
- private String receiptPaymentType;
-
- @Schema(description = "鐧昏浜�")
- @Excel(name = "鐧昏浜�")
- private String registrant;
-
- @Schema(description = "鏉ユ鏃ユ湡")
- @JsonFormat(pattern = "yyyy-MM-dd")
- @DateTimeFormat(pattern = "yyyy-MM-dd")
- @Excel(name = "鏉ユ鏃ユ湡",width = 30,dateFormat = "yyyy-MM-dd")
- private LocalDate receiptPaymentDate;
-
-}
diff --git a/src/main/java/com/ruoyi/sales/mapper/ReceiptPaymentMapper.java b/src/main/java/com/ruoyi/sales/mapper/ReceiptPaymentMapper.java
deleted file mode 100644
index e32b68c..0000000
--- a/src/main/java/com/ruoyi/sales/mapper/ReceiptPaymentMapper.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package com.ruoyi.sales.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.sales.dto.CustomerInteractionDto;
-import com.ruoyi.sales.dto.ReceiptPaymentDto;
-import com.ruoyi.sales.dto.ReceiptPaymentExeclDto;
-import com.ruoyi.sales.pojo.ReceiptPayment;
-import org.apache.ibatis.annotations.Param;
-
-import java.math.BigDecimal;
-import java.util.List;
-
-public interface ReceiptPaymentMapper extends BaseMapper<ReceiptPayment> {
-
- IPage<ReceiptPaymentDto> receiptPaymentListPage(Page page, @Param("receiptPaymentDto") ReceiptPaymentDto receiptPaymentDto);
-
- ReceiptPaymentDto receiptPaymentInfo(Integer id);
-
- /**
- * 鏌ヨ宸茬粡缁戝畾鍙戠エ鐨勫紑绁ㄥ彴璐�
- * @param page
- * @param receiptPaymentDto
- * @return
- */
- IPage<ReceiptPaymentDto> bindInvoiceNoRegPage(Page page, @Param("req") ReceiptPaymentDto receiptPaymentDto);
-
- /**
- * 璁$畻鍓嶅灏戞潯鏁版嵁鍥炴閲戦缁煎悎
- * @param customerId
- * @param total
- * @return
- */
- BigDecimal getReceiptAmount(@Param("customerId") Integer customerId, @Param("total") long total);
-
- /**
- * 鏌ヨ鍥炴璁板綍
- */
- List<ReceiptPaymentDto> receiptPaymentHistoryList(@Param("params") ReceiptPaymentDto receiptPaymentDto);
-
- /**
- * 鏌ヨ鍥炴璁板綍鍒嗛〉
- */
- IPage<ReceiptPaymentDto> receiptPaymentHistoryListPage(Page page,@Param("params") ReceiptPaymentDto receiptPaymentDto);
-
- /**
- * 瀹㈡埛寰�鏉ヨ褰曟煡璇�
- * @param receiptPaymentDto
- * @return
- */
- List<CustomerInteractionDto> customerInteractions (ReceiptPaymentDto receiptPaymentDto);
-
- /**
- * 鏌ヨ鍥炴璁板綍涓嶅垎椤�
- */
- List<ReceiptPaymentDto> receiptPaymentHistoryListNoPage( @Param("params") ReceiptPaymentDto receiptPaymentDto);
-
- /**
- * 閫氳繃寮�绁ㄧ櫥璁颁骇鍝乮d鏌ヨ鏄惁宸茬粡鏈夊洖娆捐褰�
- * @param invoiceRegistrationProductId
- * @return
- */
- List<ReceiptPayment> receiptPaymentListByProdRegId(Integer invoiceRegistrationProductId);
-
- List<ReceiptPaymentDto> bindInvoiceNoRegListAll();
-
- List<ReceiptPaymentExeclDto> bindInvoiceNoRegListByIds(List<Long> ids,Long tenantId);
-
-
-}
diff --git a/src/main/java/com/ruoyi/sales/pojo/ReceiptPayment.java b/src/main/java/com/ruoyi/sales/pojo/ReceiptPayment.java
deleted file mode 100644
index 132bfa2..0000000
--- a/src/main/java/com/ruoyi/sales/pojo/ReceiptPayment.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package com.ruoyi.sales.pojo;
-
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.math.BigDecimal;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.util.List;
-
-@Data
-public class ReceiptPayment {
-
- /**
- * 搴忓彿
- */
- @TableId(type = IdType.AUTO)
- private Integer id;
-
- @Schema(description = "鍥炴褰㈠紡 0鐢垫眹1鎵垮厬")
- private String receiptPaymentType;
-
- @Schema(description = "鍥炴閲戦")
- private BigDecimal receiptPaymentAmount;
-
- @Schema(description = "鐧昏浜�")
- private String registrant;
-
- @Schema(description = "invoice_ledger寮�绁ㄥ彴璐︿富閿甀D")
- private Integer invoiceLedgerId;
-
- @Schema(description = "sales_ledger閿�鍞彴璐︿富閿甀D")
- private Long salesLedgerId;
-
- @Schema(description = "sales_ledger_product閿�鍞彴璐︿骇鍝佷富閿甀D")
- private Long salesLedgerProductId;
-
- @Schema(description = "鏉ユ鏃ユ湡")
- @JsonFormat(pattern = "yyyy-MM-dd")
- @DateTimeFormat(pattern = "yyyy-MM-dd")
- private LocalDate receiptPaymentDate;
-
- @Schema(description = "鍒涘缓鏃堕棿")
- @TableField(fill = FieldFill.INSERT)
- @JsonFormat(pattern = "yyyy-MM-dd")
- private LocalDateTime createTime;
-
- @Schema(description = "鍒涘缓鐢ㄦ埛")
- @TableField(fill = FieldFill.INSERT)
- private Integer createUser;
-
- @Schema(description = "淇敼鏃堕棿")
- @TableField(fill = FieldFill.INSERT_UPDATE)
- private LocalDateTime updateTime;
-
- @Schema(description = "淇敼鐢ㄦ埛")
- @TableField(fill = FieldFill.INSERT_UPDATE)
- private Integer updateUser;
-
- @Schema(description = "绉熸埛ID")
- @TableField(fill = FieldFill.INSERT)
- private Long tenantId;
-
-
- @TableField(fill = FieldFill.INSERT)
- private Long deptId;
-}
diff --git a/src/main/java/com/ruoyi/sales/service/ReceiptPaymentService.java b/src/main/java/com/ruoyi/sales/service/ReceiptPaymentService.java
deleted file mode 100644
index 9c1d439..0000000
--- a/src/main/java/com/ruoyi/sales/service/ReceiptPaymentService.java
+++ /dev/null
@@ -1,89 +0,0 @@
-package com.ruoyi.sales.service;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.sales.dto.ReceiptPaymentDto;
-import com.ruoyi.sales.pojo.ReceiptPayment;
-
-import jakarta.servlet.http.HttpServletResponse;
-import java.math.BigDecimal;
-import java.util.List;
-import java.util.Map;
-
-public interface ReceiptPaymentService {
-
- /**
- * 鍥炴鐧昏鏂板
- * @param receiptPayment
- * @return
- */
- int receiptPaymentSaveOrUpdate(List<ReceiptPayment> receiptPayment);
-
- /**
- * 鍥炴鐧昏淇敼
- * @param receiptPayment
- * @return
- */
- int receiptPaymentUpdate(ReceiptPayment receiptPayment);
-
- /**
- * 鍥炴鐧昏鍒犻櫎
- * @param ids
- * @return
- */
- int receiptPaymentDel(List<Integer> ids);
-
- /**
- * 鍥炴鐧昏鍒嗛〉鏌ヨ
- * @param page
- * @param receiptPaymentDto
- * @return
- */
- IPage<ReceiptPaymentDto> receiptPaymentListPage (Page page, ReceiptPaymentDto receiptPaymentDto);
-
- /**
- * 鍥炴鐧昏璇︽儏
- * @param id
- * @return
- */
- ReceiptPaymentDto receiptPaymentInfo(Integer id);
-
- BigDecimal getReceiptAmount();
-
- /**
- * 鏌ヨ宸茬粡缁戝畾鍙戠エ鐨勫紑绁ㄥ彴璐�
- * @param page
- * @param receiptPaymentDto
- * @return
- */
- IPage<ReceiptPaymentDto> bindInvoiceNoRegPage(Page page, ReceiptPaymentDto receiptPaymentDto);
-
-
-
- Map<String,BigDecimal> getAmountMouth();
-
- /**
- * 鏌ヨ鍥炴璁板綍
- */
- List<ReceiptPaymentDto> receiptPaymentHistoryList(ReceiptPaymentDto receiptPaymentDto);
-
- /**
- * 鏌ヨ鍥炴璁板綍鍒嗛〉
- */
- IPage<ReceiptPaymentDto> receiptPaymentHistoryListPage(Page page, ReceiptPaymentDto receiptPaymentDto);
-
- /**
- * 鏌ヨ鍥炴璁板綍鍒嗛〉
- */
- List<ReceiptPaymentDto> receiptPaymentHistoryListNoPage(ReceiptPaymentDto receiptPaymentDto);
-
- /**
- * 鍏ㄥ鍑哄洖娆惧垪琛�
- */
- void exportPaymentList(HttpServletResponse response);
-
- /**
- * 閮ㄥ垎瀵煎嚭鍥炴鍒楄〃
- */
- void exportPaymentList(HttpServletResponse response, List<Long> ids);
-}
diff --git a/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java
deleted file mode 100644
index 235f1e9..0000000
--- a/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java
+++ /dev/null
@@ -1,288 +0,0 @@
-package com.ruoyi.sales.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-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.SecurityUtils;
-import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.sales.dto.ReceiptPaymentDto;
-import com.ruoyi.sales.dto.ReceiptPaymentExeclDto;
-import com.ruoyi.sales.mapper.ReceiptPaymentMapper;
-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 com.ruoyi.sales.service.ReceiptPaymentService;
-import jakarta.servlet.http.HttpServletResponse;
-import lombok.RequiredArgsConstructor;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
-import org.springframework.util.ObjectUtils;
-
-import java.math.BigDecimal;
-import java.time.LocalDate;
-import java.time.YearMonth;
-import java.util.*;
-
-@Service
-@RequiredArgsConstructor
-public class ReceiptPaymentServiceImpl extends ServiceImpl<ReceiptPaymentMapper,ReceiptPayment> implements ReceiptPaymentService {
-
- private final ReceiptPaymentMapper receiptPaymentMapper;
- private final SalesLedgerMapper salesLedgerMapper;
- private final SalesLedgerProductMapper salesLedgerProductMapper;
-
- /**
- * 鍥炴鐧昏鏂板
- * @param receiptPaymentList
- * @return
- */
- @Override
- @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());
- }
- 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().add(receiptPayment.getReceiptPaymentAmount()).compareTo(byId.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 = byId.getReceiptPaymentAmount().subtract(receiptPayment.getReceiptPaymentAmount());
- salesLedgerProduct.setInvoiceTotal(salesLedgerProduct.getInvoiceTotal().add(subtract));
- salesLedgerProduct.setPendingInvoiceTotal(salesLedgerProduct.getTaxInclusiveTotalPrice().subtract(salesLedgerProduct.getInvoiceTotal()));
- receiptPayment.setReceiptPaymentAmount(byId.getReceiptPaymentAmount());
- receiptPayment.setReceiptPaymentType(byId.getReceiptPaymentType());
- receiptPaymentMapper.updateById(receiptPayment);
- }
- salesLedgerProductMapper.updateById(salesLedgerProduct);
- }
- return 1;
- }
-
- /**
- * 鍥炴鐧昏淇敼
- * @param receiptPayment
- * @return
- */
- @Override
- public int receiptPaymentUpdate(ReceiptPayment receiptPayment) {
- ReceiptPayment byId = receiptPayment;
- if (!ObjectUtils.isEmpty(receiptPayment.getId())){
- receiptPayment = this.getById(receiptPayment.getId());
- }
- 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("鏈鍥炴閲戦涓嶈兘澶т簬寰呭洖娆鹃噾棰�");
- }
- BigDecimal subtract = receiptPayment.getReceiptPaymentAmount().subtract(byId.getReceiptPaymentAmount());
- salesLedgerProduct.setInvoiceTotal(salesLedgerProduct.getInvoiceTotal().add(subtract));
- salesLedgerProduct.setPendingInvoiceTotal(salesLedgerProduct.getTaxInclusiveTotalPrice().subtract(salesLedgerProduct.getInvoiceTotal()));
- salesLedgerProductMapper.updateById(salesLedgerProduct);
- receiptPayment.setReceiptPaymentAmount(byId.getReceiptPaymentAmount());
- receiptPayment.setReceiptPaymentType(byId.getReceiptPaymentType());
- return receiptPaymentMapper.updateById(receiptPayment);
- }
-
- /**
- * 鍥炴鐧昏鍒犻櫎
- * @param ids
- * @return
- */
- @Override
- public int receiptPaymentDel(List<Integer> ids) {
- LambdaQueryWrapper<ReceiptPayment> delQuery = new LambdaQueryWrapper<>();
- delQuery.in(ReceiptPayment::getId, ids);
- List<ReceiptPayment> receiptPayments = receiptPaymentMapper.selectList(delQuery);
- if(CollectionUtils.isEmpty(receiptPayments)) throw new RuntimeException("鏈壘鍒板洖娆剧櫥璁�");
- // 閲嶆柊璁$畻閿�鍞骇鍝佸洖娆鹃噾棰�
- for (ReceiptPayment receiptPayment : receiptPayments) {
- SalesLedgerProduct salesLedgerProduct = salesLedgerProductMapper.selectById(receiptPayment.getSalesLedgerProductId());
- salesLedgerProduct.setInvoiceTotal(salesLedgerProduct.getInvoiceTotal().subtract(receiptPayment.getReceiptPaymentAmount()));
- salesLedgerProduct.setPendingInvoiceTotal(salesLedgerProduct.getTaxInclusiveTotalPrice().subtract(salesLedgerProduct.getInvoiceTotal()));
- salesLedgerProductMapper.updateById(salesLedgerProduct);
- }
- return receiptPaymentMapper.delete(delQuery);
- }
-
- /**
- * 鍥炴鐧昏鍒嗛〉鏌ヨ
- * @param page
- * @param receiptPaymentDto
- * @return
- */
- @Override
- public IPage<ReceiptPaymentDto> receiptPaymentListPage(Page page, ReceiptPaymentDto receiptPaymentDto) {
- // 璁$畻鍒嗛〉鍓峱age.current-1 * limit鏉℃暟鐨勭患鍚堣绠楀凡缁忔敹鍥炵殑鍥炴閲戦
- // 璁$畻宸茬粡鍒嗛〉鐨勬潯鏁�
- long total = (page.getCurrent() - 1) * page.getSize();
- BigDecimal receiptAmount = receiptPaymentMapper.getReceiptAmount(receiptPaymentDto.getCustomerId(), total);
- if(ObjectUtils.isEmpty(receiptAmount)){
- receiptAmount = BigDecimal.ZERO;
- }
- IPage<ReceiptPaymentDto> iPage = receiptPaymentMapper.receiptPaymentListPage(page, receiptPaymentDto);
- // 寮�绁ㄦ�婚噾棰�
- BigDecimal invoiceTotal = CollectionUtils.isEmpty(iPage.getRecords()) ? BigDecimal.ZERO : iPage.getRecords().get(0).getInvoiceTotal();
- // 褰撳墠搴旀敹閲戦
- BigDecimal currentUnReceiptAmount = invoiceTotal.subtract(receiptAmount);
- for (ReceiptPaymentDto record : iPage.getRecords()) {
- currentUnReceiptAmount = currentUnReceiptAmount.subtract(record.getReceiptPaymentAmount());
- record.setNoReceiptAmount(currentUnReceiptAmount);
- }
- return iPage;
- }
-
- /**
- * 鍥炴鐧昏璇︽儏
- * @param id
- * @return
- */
- @Override
- public ReceiptPaymentDto receiptPaymentInfo(Integer id) {
- return receiptPaymentMapper.receiptPaymentInfo(id);
- }
-
- @Override
- public BigDecimal getReceiptAmount() {
- LocalDate now = LocalDate.now();
- YearMonth currentMonth = YearMonth.from(now);
-
- // 鍒涘缓LambdaQueryWrapper
- LambdaQueryWrapper<ReceiptPayment> queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.ge(ReceiptPayment::getReceiptPaymentDate, currentMonth.atDay(1).atStartOfDay()) // 澶т簬绛変簬鏈湀绗竴澶�
- .lt(ReceiptPayment::getReceiptPaymentDate, currentMonth.plusMonths(1).atDay(1).atStartOfDay()); // 灏忎簬涓嬫湀绗竴澶�
-
- // 鎵ц鏌ヨ骞惰绠楁�诲拰
- List<ReceiptPayment> receiptPayments = receiptPaymentMapper.selectList(queryWrapper);
-
- BigDecimal totalContractAmount = receiptPayments.stream()
- .map(ReceiptPayment::getReceiptPaymentAmount)
- .filter(Objects::nonNull)
- .reduce(BigDecimal.ZERO, BigDecimal::add);
-
- return totalContractAmount;
- }
-
- /**
- * 鏌ヨ宸茬粡缁戝畾鍙戠エ鐨勫紑绁ㄥ彴璐�
- * @param page
- * @param receiptPaymentDto
- * @return
- */
- @Override
- public IPage<ReceiptPaymentDto> bindInvoiceNoRegPage(Page page, ReceiptPaymentDto receiptPaymentDto) {
- IPage<ReceiptPaymentDto> receiptPaymentDtoIPage = receiptPaymentMapper.bindInvoiceNoRegPage(page, receiptPaymentDto);
-// if (receiptPaymentDto.getStatus()) {
-// long count = receiptPaymentDtoIPage.getRecords()
-// .stream()
-// .filter(receiptPaymentDto1 -> new BigDecimal("0.00").equals(receiptPaymentDto1.getNoReceiptAmount()))
-// .count();
-// receiptPaymentDtoIPage
-// .getRecords()
-// .removeIf(receiptPaymentDto1 -> new BigDecimal("0.00").equals(receiptPaymentDto1.getNoReceiptAmount()));
-// receiptPaymentDtoIPage.setTotal(receiptPaymentDtoIPage.getTotal() - count);
-// }
- receiptPaymentDtoIPage.getRecords().forEach(item -> {
- // 姣旇緝鍥炴閲戦 == 寰呭洖娆鹃噾棰�
- if (item.getInvoiceTotal().compareTo(item.getReceiptPaymentAmountTotal()) == 0) {
- item.setStatusName("宸插畬鎴愬洖娆�");
- }else{
- item.setStatusName("鏈畬鎴愬洖娆�");
- }
-
- });
- return receiptPaymentDtoIPage;
- }
-
- @Override
- public Map<String,BigDecimal> getAmountMouth() {
- List<SalesLedger> salesLedgers = salesLedgerMapper.selectList(null);
- BigDecimal contractAmount = salesLedgers.stream().map(SalesLedger::getContractAmount)
- .filter(Objects::nonNull)
- .reduce(BigDecimal.ZERO, BigDecimal::add);
-
- LocalDate now = LocalDate.now();
- YearMonth currentMonth = YearMonth.from(now);
-
- // 鍒涘缓LambdaQueryWrapper
- LambdaQueryWrapper<ReceiptPayment> queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.ge(ReceiptPayment::getReceiptPaymentDate, currentMonth.atDay(1).atStartOfDay()) // 澶т簬绛変簬鏈湀绗竴澶�
- .lt(ReceiptPayment::getReceiptPaymentDate, currentMonth.plusMonths(1).atDay(1).atStartOfDay()); // 灏忎簬涓嬫湀绗竴澶�
-
- // 鎵ц鏌ヨ骞惰绠楁�诲拰
- List<ReceiptPayment> receiptPayments = receiptPaymentMapper.selectList(queryWrapper);
-
- BigDecimal receiveAmount = receiptPayments.stream()
- .map(ReceiptPayment::getReceiptPaymentAmount)
- .filter(Objects::nonNull)
- .reduce(BigDecimal.ZERO, BigDecimal::add);
-
- // 鏋勫缓缁撴灉
- Map<String, BigDecimal> result = new HashMap<>();
- result.put("receiveAmount", receiveAmount);
- result.put("contractAmount", contractAmount);
- return result;
- }
-
- /**
- * 鏌ヨ鍥炴璁板綍
- */
- @Override
- public List<ReceiptPaymentDto> receiptPaymentHistoryList(ReceiptPaymentDto receiptPaymentDto) {
- return receiptPaymentMapper.receiptPaymentHistoryList(receiptPaymentDto);
- }
-
- /**
- * 鏌ヨ鍥炴璁板綍鍒嗛〉
- */
- @Override
- public IPage<ReceiptPaymentDto> receiptPaymentHistoryListPage(Page page, ReceiptPaymentDto receiptPaymentDto) {
- return receiptPaymentMapper.receiptPaymentHistoryListPage(page, receiptPaymentDto);
- }
-
- /**
- * 鏌ヨ鍥炴璁板綍鍒嗛〉
- */
- @Override
- public List<ReceiptPaymentDto> receiptPaymentHistoryListNoPage(ReceiptPaymentDto receiptPaymentDto) {
- return receiptPaymentMapper.receiptPaymentHistoryListNoPage( receiptPaymentDto);
- }
-
- @Override
- public void exportPaymentList(HttpServletResponse response) {
- List<ReceiptPaymentDto> receiptPaymentDtoList = receiptPaymentMapper.bindInvoiceNoRegListAll();
- ExcelUtil<ReceiptPaymentDto> util = new ExcelUtil<ReceiptPaymentDto>(ReceiptPaymentDto.class);
- util.exportExcel(response, receiptPaymentDtoList, "鍥炴鐧昏");
- }
-
- @Override
- public void exportPaymentList(HttpServletResponse response, List<Long> ids) {
- if (ids == null) {
- List<ReceiptPaymentExeclDto> receiptPaymentDtoList = receiptPaymentMapper.bindInvoiceNoRegListByIds(new ArrayList<>(), SecurityUtils.getLoginUser().getTenantId());
- ExcelUtil<ReceiptPaymentExeclDto> util = new ExcelUtil<ReceiptPaymentExeclDto>(ReceiptPaymentExeclDto.class);
- util.exportExcel(response, receiptPaymentDtoList, "鍥炴鐧昏");
- }else {
- List<ReceiptPaymentExeclDto> receiptPaymentDtoList = receiptPaymentMapper.bindInvoiceNoRegListByIds(ids,SecurityUtils.getLoginUser().getTenantId());
- ExcelUtil<ReceiptPaymentExeclDto> util = new ExcelUtil<ReceiptPaymentExeclDto>(ReceiptPaymentExeclDto.class);
- util.exportExcel(response, receiptPaymentDtoList, "鍥炴鐧昏");
- }
-
- }
-}
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 1d46da8..5befc46 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -84,7 +84,6 @@
private final SalesLedgerProductServiceImpl salesLedgerProductServiceImpl;
private final CommonFileMapper commonFileMapper;
private final TempFileMapper tempFileMapper;
- private final ReceiptPaymentMapper receiptPaymentMapper;
private final ShippingInfoServiceImpl shippingInfoServiceImpl;
private final CommonFileServiceImpl commonFileService;
private final ShippingInfoMapper shippingInfoMapper;
@@ -277,25 +276,9 @@
LocalDateTime startTime = yearMonth.atDay(1).atStartOfDay();
LocalDateTime endTime = yearMonth.atEndOfMonth().atTime(23, 59, 59);
- // 鍥炴閲戦
- LambdaQueryWrapper<ReceiptPayment> receiptPaymentQuery = new LambdaQueryWrapper<>();
- receiptPaymentQuery
- .ge(ReceiptPayment::getCreateTime, startTime)
- .le(ReceiptPayment::getCreateTime, endTime);
-
- List<ReceiptPayment> receiptPayments =
- receiptPaymentMapper.selectList(receiptPaymentQuery);
-
- BigDecimal receiptAmount = receiptPayments.stream()
- .map(ReceiptPayment::getReceiptPaymentAmount)
- .filter(Objects::nonNull)
- .reduce(BigDecimal.ZERO, BigDecimal::add);
-
-
-
MonthlyAmountDto dto = new MonthlyAmountDto();
dto.setMonth(yearMonth.format(DateTimeFormatter.ofPattern("yyyy-MM")));
- dto.setReceiptAmount(receiptAmount);
+ dto.setReceiptAmount(BigDecimal.ZERO);
dto.setInvoiceAmount(BigDecimal.ZERO);
result.add(dto);
@@ -520,11 +503,6 @@
List<Integer> invoiceLedgerIds = new ArrayList<>();
- if (CollectionUtils.isNotEmpty(invoiceLedgerIds)) {
- LambdaQueryWrapper<ReceiptPayment> wrapperTree = new LambdaQueryWrapper<>();
- wrapperTree.in(ReceiptPayment::getInvoiceLedgerId, invoiceLedgerIds);
- receiptPaymentMapper.delete(wrapperTree);
- }
// 鍒犻櫎鍙戣揣鍙拌处璁板綍
List<ShippingInfo> shippingInfos = shippingInfoMapper.selectList(new LambdaQueryWrapper<ShippingInfo>()
.in(ShippingInfo::getSalesLedgerId, idList));
diff --git a/src/main/resources/mapper/purchase/InvoicePurchaseMapper.xml b/src/main/resources/mapper/purchase/InvoicePurchaseMapper.xml
deleted file mode 100644
index 53ba9bc..0000000
--- a/src/main/resources/mapper/purchase/InvoicePurchaseMapper.xml
+++ /dev/null
@@ -1,121 +0,0 @@
-<?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.InvoicePurchaseMapper">
-
-
- <select id="selectPurchaseReport" resultType="com.ruoyi.purchase.dto.InvoicePurchaseReportDto">
- SELECT
- sl.sales_contract_no AS customerContractNo,
- sl.customer_name,
- sl.contract_amount AS contract_amount,
- SUM( pl.contract_amount ) AS purchase_amount,
- (
- sl.contract_amount - SUM( pl.contract_amount )) AS balance,
- CONCAT( ROUND( ( sl.contract_amount - SUM( pl.contract_amount )) / sl.contract_amount * 100, 1 ), '%' ) AS balance_ratio
- FROM
- sales_ledger sl
- INNER JOIN purchase_ledger pl ON sl.sales_contract_no = pl.sales_contract_no
- <where>
- <if test="c.customerName != null and c.customerName != ''">
- AND sl.customer_name LIKE CONCAT('%', #{c.customerName}, '%')
- </if>
- </where>
- GROUP BY
- sl.sales_contract_no,
- sl.customer_name,
- sl.contract_amount
- ORDER BY
- sl.sales_contract_no
- </select>
- <select id="listVat" resultType="com.ruoyi.purchase.dto.VatDto">
- select *
- from (SELECT
- COALESCE(a1.month, a2.month) AS month,
- IFNULL(a1.tax_amount, 0) AS j_tax_amount,
- IFNULL(a2.x_tax_amount, 0) AS x_tax_amount
- FROM (
- -- 绗竴涓煡璇細鏉ヨ嚜 invoice_ledger 鐨勭◣棰�
- SELECT
- DATE_FORMAT(il.invoice_date, '%Y-%m') AS month,
- ROUND(SUM(pr.invoice_amount - pr.invoice_amount / (1 + pr.tax_rate / 100)), 2) AS tax_amount
- FROM invoice_ledger il
- LEFT JOIN invoice_registration_product pr ON pr.id = il.invoice_registration_product_id
- WHERE il.invoice_no IS NOT NULL
- AND invoice_type = '澧炰笓绁�'
- AND DATE_FORMAT(il.invoice_date, '%Y-%m') IS NOT NULL -- 鏂板锛氳繃婊onth涓篘ULL鐨勬儏
- GROUP BY DATE_FORMAT(il.invoice_date, '%Y-%m')
- ) a1
- LEFT JOIN (
- -- 绗簩涓煡璇細鏉ヨ嚜 ticket_registration 鐨勭◣棰�
- SELECT
- DATE_FORMAT(a.issue_date, '%Y-%m') AS month,
- SUM(a.invoice_amount) AS x_tax_amount
- FROM (
- SELECT DISTINCT pr.id,
- tr.issue_date,
- ROUND(pr.tickets_amount / (1 + pr.tax_rate / 100), 2) AS un_tickets_price,
- ROUND(pr.tickets_amount - pr.tickets_amount / (1 + pr.tax_rate / 100), 2) AS invoice_amount
- FROM product_record pr
- LEFT JOIN purchase_ledger pl ON pl.id = pr.purchase_ledger_id
- LEFT JOIN sales_ledger sl ON sl.id = pl.sales_ledger_id
- LEFT JOIN ticket_registration tr ON tr.purchase_ledger_id = pl.id
- LEFT JOIN product_model pm ON pm.id = pr.product_model_id
- WHERE type = 2
- AND tr.invoice_number IS NOT NULL
- ) a
- GROUP BY DATE_FORMAT(a.issue_date, '%Y-%m')
- ) a2 ON a1.month = a2.month
-
- UNION ALL
-
- SELECT
- COALESCE(a1.month, a2.month) AS month,
- IFNULL(a1.tax_amount, 0) AS tax_amount,
- IFNULL(a2.x_tax_amount, 0) AS x_tax_amount
- FROM (
- -- 绗簩涓煡璇細鏉ヨ嚜 ticket_registration 鐨勭◣棰濓紙鍙嶈繃鏉ヨˉ鍏ㄦ病鏈夊尮閰嶅埌鐨勶級
- SELECT
- DATE_FORMAT(a.issue_date, '%Y-%m') AS month,
- SUM(a.invoice_amount) AS x_tax_amount
- FROM (
- SELECT DISTINCT pr.id,
- tr.issue_date,
- ROUND(pr.tickets_amount / (1 + pr.tax_rate / 100), 2) AS un_tickets_price,
- ROUND(pr.tickets_amount - pr.tickets_amount / (1 + pr.tax_rate / 100), 2) AS invoice_amount
- FROM product_record pr
- LEFT JOIN purchase_ledger pl ON pl.id = pr.purchase_ledger_id
- LEFT JOIN sales_ledger sl ON sl.id = pl.sales_ledger_id
- LEFT JOIN ticket_registration tr ON tr.purchase_ledger_id = pl.id
- LEFT JOIN product_model pm ON pm.id = pr.product_model_id
- WHERE type = 2
- AND tr.invoice_number IS NOT NULL
- ) a
- GROUP BY DATE_FORMAT(a.issue_date, '%Y-%m')
- ) a2
- LEFT JOIN (
- -- 绗竴涓煡璇細鏉ヨ嚜 invoice_ledger 鐨勭◣棰�
- SELECT
- DATE_FORMAT(il.invoice_date, '%Y-%m') AS month,
- ROUND(SUM(pr.invoice_amount - pr.invoice_amount / (1 + pr.tax_rate / 100)), 2) AS tax_amount
- FROM invoice_ledger il
- LEFT JOIN invoice_registration_product pr ON pr.id = il.invoice_registration_product_id
- WHERE il.invoice_no IS NOT NULL
- AND invoice_type = '澧炰笓绁�'
- AND DATE_FORMAT(il.invoice_date, '%Y-%m') IS NOT NULL -- 鏂板锛氳繃婊onth涓篘ULL鐨勬儏
- GROUP BY DATE_FORMAT(il.invoice_date, '%Y-%m')
- ) a1 ON a1.month = a2.month
- WHERE a1.month IS NULL
- ORDER BY month
- )as a
- <where>
- a.month is not null
- <if test="month != null">
- and a.month = #{month}
- </if>
- </where>
-
- </select>
-
-</mapper>
diff --git a/src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml b/src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml
deleted file mode 100644
index 8e01079..0000000
--- a/src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml
+++ /dev/null
@@ -1,223 +0,0 @@
-<?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.PaymentRegistrationMapper">
-
- <resultMap type="PaymentRegistration" id="PaymentRegistrationResult">
- <result property="id" column="id"/>
- <result property="saleLedgerId" column="sale_ledger_id"/>
- <result property="purchaseLedgerId" column="purchase_ledger_id"/>
- <result property="supplierId" column="supplier_id"/>
- <result property="ticketRegistrationId" column="ticket_registration_id"/>
- <result property="currentPaymentAmount" column="current_payment_amount"/>
- <result property="paymentMethod" column="payment_method"/>
- <result property="registrantId" column="registrant_id"/>
- <result property="paymentDate" column="payment_date"/>
- <result property="createTime" column="create_time"/>
- <result property="updateTime" column="update_time"/>
- <result property="tenantId" column="tenant_id"/>
- <result property="registrationtDate" column="registrationt_date"/>
- </resultMap>
-
- <resultMap type="com.ruoyi.purchase.dto.PaymentRegistrationDto" id="PaymentRegistrationDtoResult">
- <result property="id" column="id"/>
- <result property="saleLedgerId" column="sale_ledger_id"/>
- <result property="purchaseLedgerId" column="purchase_ledger_id"/>
- <result property="supplierId" column="supplier_id"/>
- <result property="ticketRegistrationId" column="ticket_registration_id"/>
- <result property="currentPaymentAmount" column="current_payment_amount"/>
- <result property="paymentMethod" column="payment_method"/>
- <result property="registrantId" column="registrant_id"/>
- <result property="paymentDate" column="payment_date"/>
- <result property="createTime" column="create_time"/>
- <result property="updateTime" column="update_time"/>
- <result property="salesContractNo" column="sales_contract_no"/>
- <result property="purchaseContractNumber" column="purchase_contract_number"/>
- <result property="supplierName" column="supplier_name"/>
- <result property="invoiceNumber" column="invoice_number"/>
- <result property="taxRate" column="tax_rate"/>
- <result property="invoiceAmount" column="invoice_amount"/>
- <result property="tenantId" column="tenant_id"/>
- <result property="registrationtDate" column="registrationt_date"/>
- </resultMap>
-
- <sql id="selectPaymentRegistrationVo">
- select pr.id,
- pr.sale_ledger_id,
- pr.purchase_ledger_id,
- pr.supplier_id,
- pr.ticket_registration_id,
- pr.current_payment_amount,
- pr.payment_method,
- pr.registrant_id,
- pr.payment_date,
- pr.create_time,
- pr.update_time,
- pr.tenant_id,
- sl.sales_contract_no as sales_contract_no,
- pl.purchase_contract_number as purchase_contract_number,
- sm.supplier_name as supplier_name,
- ip.invoice_number as invoice_number,
- ip.invoice_amount as invoice_amount,
- pr.tax_rate,
- pr.registrationt_date,
- su.nick_name as registrant
- from payment_registration pr
- left join sales_ledger sl on pr.sale_ledger_id = sl.id
- left join purchase_ledger pl on pr.purchase_ledger_id = pl.id
- left join supplier_manage sm on pr.supplier_id = sm.id
- left join ticket_registration ip on pr.ticket_registration_id = ip.id
- left join sys_user su on pr.registrant_id = su.user_id
- </sql>
-
- <select id="selectPaymentRegistrationList" parameterType="com.ruoyi.purchase.dto.PaymentRegistrationDto"
- resultMap="PaymentRegistrationDtoResult">
- <include refid="selectPaymentRegistrationVo"/>
- <where>
- <if test="supplierNameOrContractNo != null and supplierNameOrContractNo != ''">
- and sm.supplier_name LIKE CONCAT('%', #{supplierNameOrContractNo}, '%') or sl.sales_contract_no LIKE
- CONCAT('%', #{supplierNameOrContractNo}, '%')
- or pl.purchase_contract_number LIKE CONCAT('%', #{supplierNameOrContractNo}, '%')
- </if>
- </where>
- </select>
-
- <select id="selectPaymentRegistrationById" parameterType="Long" resultMap="PaymentRegistrationDtoResult">
- <include refid="selectPaymentRegistrationVo"/>
- where pr.id = #{id}
- </select>
-
- <select id="paymentHistoryList" resultType="com.ruoyi.purchase.dto.PaymentRegistrationDto">
- SELECT
- T1.payment_date,
- T2.supplier_name,
- T1.current_payment_amount,
- T1.payment_method,
- T3.nick_name AS registrant,
- T1.registrationt_date
- FROM
- payment_registration T1
- LEFT JOIN
- supplier_manage T2 ON T1.supplier_id = T2.id
- LEFT JOIN
- sys_user T3 ON T3.user_id = T1.registrant_id
- <where>
- <if test="params.searchText != null and params.searchText != '' ">
- AND T2.supplier_name LIKE CONCAT('%',#{params.searchText},'%')
- </if>
- </where>
- ORDER BY T1.payment_date,T1.create_time DESC
- </select>
-
- <select id="countPaymentTotalByTicketRegId" resultType="com.ruoyi.purchase.dto.PaymentRegistrationDto">
- SELECT
- IFNULL(SUM(current_payment_amount),0) AS paymentAmountTotal,
- ticket_registration_id
- FROM
- payment_registration
- <where>
- ticket_registration_id IN
- <foreach collection="ticketRegistrationIds" separator="," open="(" close=")" item="item">
- #{item}
- </foreach>
- </where>
- GROUP BY ticket_registration_id
- </select>
-
- <select id="getPaymentRecordList" resultType="com.ruoyi.purchase.dto.PaymentHistoryRecordVo">
- SELECT * FROM(
- SELECT
- T1.issue_date AS happenTime,
- IFNULL(T1.invoice_amount,0) AS invoiceAmount,
- '1' AS type,
- 0 AS currentPaymentAmount
- FROM
- ticket_registration T1
- LEFT JOIN purchase_ledger T2 ON T1.purchase_ledger_id = T2.id
- WHERE T2.supplier_id = #{supplierId}
- UNION
- SELECT
- payment_date AS happenTime,
- 0 AS invoiceAmount,
- '0' AS type,
- current_payment_amount AS currentPaymentAmount
- FROM payment_registration
- WHERE supplier_id = #{supplierId}
- ) T1
- ORDER BY T1.happenTime ASC
-
- </select>
-
- <select id="paymentHistoryListPage" resultType="com.ruoyi.purchase.dto.PaymentRegistrationDto">
- SELECT
- T1.id,
- T1.payment_date,
- T2.supplier_name,
- T1.current_payment_amount,
- T1.payment_method,
- T3.nick_name AS registrant,
- T1.registrationt_date,
- t4.purchase_contract_number,
- t5.invoice_amount,
- t5.invoice_number
- FROM
- payment_registration T1
- LEFT JOIN purchase_ledger t4 ON t4.id = T1.purchase_ledger_id
- LEFT JOIN supplier_manage T2 ON T1.supplier_id = T2.id
- LEFT JOIN sys_user T3 ON T3.user_id = T1.registrant_id
- left join ticket_registration t5 on t5.id = T1.ticket_registration_id
- <where>
- <if test="params.searchText != null and params.searchText != '' ">
- AND T2.supplier_name LIKE CONCAT('%',#{params.searchText},'%')
- </if>
- <if test="params.paymentDateStart != null and params.paymentDateStart !='' ">
- AND T1.payment_date >= date_format(#{params.paymentDateStart},'%Y-%m-%d')
- </if>
- <if test="params.paymentDateEnd != null and params.paymentDateEnd !='' ">
- AND T1.payment_date <= date_format(#{params.paymentDateEnd},'%Y-%m-%d')
- </if>
- <if test="params.purchaseContractNumber != null and params.purchaseContractNumber !='' ">
- AND t4.purchase_contract_number LIKE CONCAT('%',#{params.purchaseContractNumber},'%')
- </if>
- </where>
- ORDER BY T1.payment_date,T1.create_time DESC
- </select>
- <select id="supplierNameListPage" resultType="com.ruoyi.purchase.dto.PaymentRegistrationDto">
- SELECT
- T1.supplier_id,
- T1.supplier_name,
- SUM(contract_amount) AS invoiceAmount,
- IFNULL( SUM(T2.current_payment_amount) , 0 ) AS paymentAmount,
- IFNULL((IFNULL(SUM(contract_amount),0) - IFNULL(SUM(T2.current_payment_amount),0)),0) AS payableAmount
- FROM purchase_ledger T1
- LEFT JOIN payment_registration T2 ON T1.id = T2.purchase_ledger_id
- <where>
- <if test="req.supplierName != null and req.supplierName != '' ">
- T1.supplier_name LIKE CONCAT ('%',#{req.supplierName},'%')
- </if>
- </where>
- GROUP BY T1.supplier_id, T1.supplier_name
- </select>
-
- <select id="supplierNameListPageDetails" resultType="com.ruoyi.purchase.dto.PaymentRegistrationDto">
- SELECT
- T1.supplier_id,
- T1.supplier_name,
- T1.purchase_contract_number,
- T2.payment_date,
- SUM(T1.contract_amount) AS invoiceAmount,
- IFNULL(SUM(T2.current_payment_amount), 0) AS paymentAmount,
- IFNULL((IFNULL(SUM(T1.contract_amount), 0) - IFNULL(SUM(T2.current_payment_amount), 0)), 0) AS payableAmount
- FROM purchase_ledger T1
- INNER JOIN payment_registration T2 ON T1.id = T2.purchase_ledger_id
- <where>
- T1.supplier_id = #{req.supplierId}
- <if test="req.supplierName != null and req.supplierName != '' ">
- AND T1.supplier_name LIKE CONCAT ('%',#{req.supplierName},'%')
- </if>
- </where>
- GROUP BY T1.supplier_id, T1.supplier_name, T1.purchase_contract_number, T2.payment_date
- </select>
-
-</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/purchase/ProductRecordMapper.xml b/src/main/resources/mapper/purchase/ProductRecordMapper.xml
deleted file mode 100644
index aa850cb..0000000
--- a/src/main/resources/mapper/purchase/ProductRecordMapper.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-<?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.ProductRecordMapper">
-
-
- <select id="productRecordPage" resultType="com.ruoyi.purchase.dto.ProductRecordDto">
- SELECT
- sl.sales_contract_no,
- sl.customer_contract_no,
- sl.customer_name,
- pm.model AS product_model,
- pl.purchase_contract_number,
- pl.supplier_name,
- pl.project_name,
- pr.*,
- tr.invoice_number,
- tr.iss_uer_id,
- tr.iss_uer,
- tr.id as ticketRegistrationId,
- ROUND(pr.tickets_amount/(1+pr.tax_rate/100),2 ) as un_tickets_price,
- ROUND(pr.tickets_amount-pr.tickets_amount/(1+pr.tax_rate/100),2 )as invoice_amount
- FROM product_record pr
- left join purchase_ledger pl on pl.id = pr.purchase_ledger_id
- left join sales_ledger sl on sl.id = pl.sales_ledger_id
- left join ticket_registration tr on tr.id = pr.ticket_registration_id
- left join product_model pm on pm.id = pr.product_model_id
- WHERE type = 2
- <if test="c.salesContractNo != null and c.salesContractNo != ''">
- and sl.sales_contract_no like concat('%',#{c.salesContractNo},'%')
- </if>
- <if test="c.supplierName != null and c.supplierName != ''">
- and pl.supplier_name like concat('%',#{c.supplierName},'%')
- </if>
- <if test="c.createdAtStart != null and c.createdAtStart != ''">
- and pr.created_at >= str_to_date(#{c.createdAtStart}, '%Y-%m-%d')
- </if>
- <if test="c.createdAtEnd != null and c.createdAtEnd != ''">
- and pr.created_at < date_add(str_to_date(#{c.createdAtEnd}, '%Y-%m-%d'), interval 1 day)
- </if>
- <if test="c.purchaseContractNumber != null and c.purchaseContractNumber != ''">
- and tr.purchase_contract_number like concat('%',#{c.purchaseContractNumber},'%')
- </if>
- </select>
- <select id="getProductRecordById" resultType="com.ruoyi.purchase.dto.ProductRecordDto">
- SELECT
- sl.sales_contract_no,
- sl.customer_contract_no,
- sl.customer_name,
- pm.model AS product_model,
- pl.purchase_contract_number,
- pl.supplier_name,
- pr.*,
- tr.invoice_number,
- ROUND(pr.tickets_amount/(1+pr.tax_rate/100),2 ) as un_tickets_price,
- ROUND(pr.tickets_amount-pr.tickets_amount/(1+pr.tax_rate/100),2 )as invoice_amount
- FROM product_record pr
- left join purchase_ledger pl on pl.id = pr.purchase_ledger_id
- left join sales_ledger sl on sl.id = pl.sales_ledger_id
- left join ticket_registration tr on tr.id = pr.ticket_registration_id
- left join product_model pm on pm.id = pr.product_model_id
- WHERE type = 2
- <if test="c.purchaseLedgerId != null and c.purchaseLedgerId != ''">
- and pr.purchase_ledger_id = #{c.purchaseLedgerId}
- </if>
- <if test="c.productModelId != null and c.productModelId != ''">
- and pm.id = #{c.productModelId}
- </if>
- </select>
-</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml b/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
index 1aed9b4..a99d356 100644
--- a/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
+++ b/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
@@ -9,89 +9,6 @@
SET contract_amount = #{totalTaxInclusiveAmount}
WHERE id = #{id}
</update>
-
- <select id="selectPurchaseLedgerListPage" resultType="com.ruoyi.purchase.dto.PurchaseLedgerDto">
- SELECT
- pl.id,
- pl.purchase_contract_number,
- pl.sales_contract_no,
- pl.supplier_id,
- pl.supplier_name,
- pl.project_name,
- pl.contract_amount,
- IFNULL(tr_sum.total_invoice_amount, 0) AS receipt_payment_amount,
- pl.contract_amount - IFNULL(tr_sum.total_invoice_amount, 0) AS unReceipt_payment_amount,
- pl.entry_date,
- pl.execution_date,
- pl.recorder_id,
- pl.recorder_name,
- pl.template_name,
- pl.approve_user_ids,
- sm.is_white,
- pl.approval_status,
- pl.payment_method,
- pl.remarks
- FROM purchase_ledger pl
- LEFT JOIN (
- SELECT
- purchase_ledger_id,
- SUM(invoice_amount) AS total_invoice_amount
- FROM ticket_registration
- GROUP BY purchase_ledger_id
- ) tr_sum ON pl.id = tr_sum.purchase_ledger_id
- LEFT JOIN supplier_manage sm ON pl.supplier_id = sm.id
- <where>
- <if test="c.purchaseContractNumber != null and c.purchaseContractNumber != ''">
- AND pl.purchase_contract_number LIKE CONCAT('%', #{c.purchaseContractNumber}, '%')
- </if>
- <if test="c.approvalStatus != null and c.approvalStatus != ''">
- AND pl.approval_status = #{c.approvalStatus}
- </if>
- <if test="c.supplierName != null and c.supplierName != ''">
- AND pl.supplier_name LIKE CONCAT('%', #{c.supplierName}, '%')
- </if>
- <if test="c.salesContractNo != null and c.salesContractNo != ''">
- AND pl.sales_contract_no LIKE CONCAT('%', #{c.salesContractNo}, '%')
- </if>
- <if test="c.projectName != null and c.projectName != ''">
- AND pl.project_name LIKE CONCAT('%', #{c.projectName}, '%')
- </if>
- <if test="c.entryDateStart != null and c.entryDateStart != ''">
- AND pl.entry_date >= #{c.entryDateStart}
- </if>
- <if test="c.entryDateEnd != null and c.entryDateEnd != ''">
- AND pl.entry_date <= #{c.entryDateEnd}
- </if>
- <if test="c.supplierId != null">
- AND pl.supplier_id = #{c.supplierId}
- </if>
- <if test="c.approvalStatus != null">
- AND pl.approval_status = #{c.approvalStatus}
- </if>
- </where>
- ORDER BY pl.entry_date DESC
- </select>
-
- <select id="getPaymentRegistrationDtoById" resultType="com.ruoyi.purchase.dto.PaymentRegistrationDto">
- SELECT
- T1.id,
- T1.payment_date,
- T2.supplier_name,
- T1.current_payment_amount,
- T1.payment_method,
- T3.nick_name AS registrant,
- T1.registrationt_date
- FROM
- payment_registration T1
- LEFT JOIN
- supplier_manage T2 ON T1.supplier_id = T2.id
- LEFT JOIN
- sys_user T3 ON T3.user_id = T1.registrant_id
- WHERE
- T1.sales_ledger_product_id = #{id}
- </select>
-
-
<select id="selectPurchaseStats" resultType="com.ruoyi.home.dto.IncomeExpenseAnalysisDto">
SELECT DATE_FORMAT(entry_date, #{dateFormat}) as dateStr, IFNULL(SUM(contract_amount), 0) as amount
FROM purchase_ledger
@@ -111,4 +28,4 @@
</if>
</where>
</select>
-</mapper>
\ No newline at end of file
+</mapper>
diff --git a/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml b/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml
deleted file mode 100644
index cfe232a..0000000
--- a/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml
+++ /dev/null
@@ -1,420 +0,0 @@
-<?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.sales.mapper.ReceiptPaymentMapper">
- <select id="receiptPaymentListPage" resultType="com.ruoyi.sales.dto.ReceiptPaymentDto">
- SELECT
- T4.customer_id,
- IFNULL(T5.invoice_total,0) AS invoice_total,
- T1.receipt_payment_amount,
- T1.receipt_payment_date
- FROM
- receipt_payment T1
- LEFT JOIN invoice_ledger T2 ON T1.invoice_ledger_id = T2.id
- LEFT JOIN invoice_registration_product T3 ON T2.invoice_registration_product_id = T3.id
- LEFT JOIN sales_ledger T4 ON T4.id = T3.sales_ledger_id
- LEFT JOIN (
- SELECT
- T3.customer_id,
- SUM( invoice_total ) AS invoice_total
- FROM
- invoice_ledger T1
- LEFT JOIN invoice_registration_product T2 ON T1.invoice_registration_product_id = T2.id
- LEFT JOIN sales_ledger T3 ON T3.id = T2.sales_ledger_id
- GROUP BY T3.customer_id
- ) T5 ON T5.customer_id = T4.customer_id
- <where>
- <if test="receiptPaymentDto.customerId != null">
- AND T4.customer_id = #{receiptPaymentDto.customerId}
- </if>
- </where>
- ORDER BY T1.create_time ASC
- </select>
-
- <select id="receiptPaymentInfo" resultType="com.ruoyi.sales.dto.ReceiptPaymentDto">
- SELECT
- T1.id ,
- T1.sales_ledger_id ,
- T1.sales_contract_no ,
- T1.customer_id ,
- T1.invoice_no ,
- T1.invoice_amount ,
- T1.tax_rate ,
- T1.receipt_payment_type ,
- T1.receipt_payment_amount ,
- T1.registrant ,
- T1.receipt_payment_date ,
- T1.create_time ,
- T1.create_user ,
- T1.update_time ,
- T1.update_user ,
- T1.tenant_id,
- T1.invoice_ledger_id,
- T3.customer_contract_no,
- T2.customer_name
- FROM receipt_payment T1
- LEFT JOIN customer T2 ON T1.customer_id = T2.id
- LEFT JOIN sales_ledger T3 ON T1.sales_ledger_id = T3.id
- WHERE T1.id = #{id}
- </select>
-
- <select id="bindInvoiceNoRegPage" resultType="com.ruoyi.sales.dto.ReceiptPaymentDto">
- SELECT
- T1.id,
- T1.invoice_no,
- T1.invoice_total,
- T3.project_name,
- T1.invoice_person,
- T1.invoice_date,
- T1.create_time,
- T1.create_user,
- T1.update_time,
- T1.update_user,
- T1.tenant_id,
- T2.tax_rate,
- T3.sales_contract_no,
- T3.customer_contract_no,
- T3.customer_name,
- T4.invoiceFileName,
- T5.product_category,
- IFNULL(T6.receipt_payment_amount_total, 0) AS receipt_payment_amount_total,
- (T1.invoice_total - IFNULL(T6.receipt_payment_amount_total, 0)) AS noReceiptAmount
- FROM invoice_ledger T1
- LEFT JOIN invoice_registration_product T2 ON T2.id = T1.invoice_registration_product_id
- LEFT JOIN sales_ledger T3 ON T3.id = T2.sales_ledger_id
- LEFT JOIN (
- SELECT
- invoice_ledger_id,
- GROUP_CONCAT(name ORDER BY id ASC SEPARATOR ' | ') AS invoiceFileName
- FROM invoice_ledger_file
- GROUP BY invoice_ledger_id
- ) T4 ON T4.invoice_ledger_id = T1.id
- LEFT JOIN sales_ledger_product T5 ON T2.sales_ledger_product_id = T5.id and slp.type = 1
- LEFT JOIN (
- SELECT
- SUM(receipt_payment_amount) AS receipt_payment_amount_total,
- invoice_ledger_id
- FROM receipt_payment
- GROUP BY invoice_ledger_id
- ) T6 ON T1.id = T6.invoice_ledger_id
- <where>
- <if test="req.customerName != null and req.customerName !=''">
- AND T3.customer_name LIKE CONCAT('%',#{req.customerName},'%')
- </if>
- <if test="req.invoiceLedgerId != null">
- AND T1.id = #{req.invoiceLedgerId}
- </if>
- <if test="req.customerContractNo != null and req.customerContractNo !=''">
- AND T3.customer_contract_no LIKE CONCAT('%',#{req.customerContractNo},'%')
- </if>
- <if test="req.projectName != null and req.projectName !=''">
- AND T3.project_name LIKE CONCAT('%',#{req.projectName},'%')
- </if>
- <if test="req.invoiceDateStart != null and req.invoiceDateStart != '' ">
- AND T1.invoice_date >= DATE_FORMAT(#{req.invoiceDateStart},'%Y-%m-%d')
- </if>
- <if test="req.invoiceDateEnd != null and req.invoiceDateEnd != '' ">
- AND T1.invoice_date <= DATE_FORMAT(#{req.invoiceDateEnd},'%Y-%m-%d')
- </if>
- <if test="req.status != null and req.status">
- and (T1.invoice_total - IFNULL(T6.receipt_payment_amount_total, 0)) > 0
- </if>
- </where>
-
- ORDER BY IFNULL(T2.create_time, T1.create_time) DESC
-
- </select>
-
- <select id="getReceiptAmount" resultType="java.math.BigDecimal">
- SELECT
- SUM( receipt_payment_amount ) AS total_amount
- FROM
- (
- SELECT
- T1.receipt_payment_amount
- FROM
- receipt_payment T1
- LEFT JOIN invoice_ledger T2 ON T1.invoice_ledger_id = T2.id
- LEFT JOIN invoice_registration_product T3 ON T2.invoice_registration_product_id = T3.id
- LEFT JOIN sales_ledger T4 ON T4.id = T3.sales_ledger_id
- LEFT JOIN (
- SELECT
- T3.customer_id,
- SUM( invoice_total ) AS invoice_total
- FROM
- invoice_ledger T1
- LEFT JOIN invoice_registration_product T2 ON T1.invoice_registration_product_id = T2.id
- LEFT JOIN sales_ledger T3 ON T3.id = T2.sales_ledger_id
- GROUP BY
- T3.customer_id
- ) T5 ON T5.customer_id = T4.customer_id
- WHERE
- T4.customer_id = #{customerId}
-
- ORDER BY
- T1.create_time ASC
- LIMIT #{total} ) AS limited_rows
- </select>
-
- <select id="receiptPaymentHistoryList" resultType="com.ruoyi.sales.dto.ReceiptPaymentDto">
- SELECT
- T1.receipt_payment_date,
- T5.customer_name,
- T1.receipt_payment_amount,
- T1.receipt_payment_type,
- T1.registrant,
- T1.create_time
- FROM
- receipt_payment T1
- LEFT JOIN
- invoice_ledger T2 ON T1.invoice_ledger_id = T2.id
- LEFT JOIN invoice_registration_product T3 ON T2.invoice_registration_product_id = T3.id
- LEFT JOIN sales_ledger T4 ON T3.sales_ledger_id = T4.id
- LEFT JOIN customer T5 ON T5.id = T4.customer_id
- <where>
- <if test="params.searchText != null and params.searchText != '' ">
- T5.customer_name LIKE CONCAT('%',#{params.searchText},'%')
- </if>
- </where>
- ORDER BY T1.receipt_payment_date DESC
- </select>
-
- <select id="receiptPaymentHistoryListPage" resultType="com.ruoyi.sales.dto.ReceiptPaymentDto">
- SELECT
- T1.id,
- T1.receipt_payment_date,
- T5.customer_name,
- T1.receipt_payment_amount,
- T1.receipt_payment_type,
- T1.registrant,
- T1.create_time,
- T4.project_name,
- T4.sales_contract_no,
- T4.customer_contract_no
- FROM
- receipt_payment T1
- LEFT JOIN sales_ledger T4 ON T1.sales_ledger_id = T4.id
- LEFT JOIN customer T5 ON T5.id = T4.customer_id
- <where>
- <if test="params.searchText != null and params.searchText != '' ">
- T5.customer_name LIKE CONCAT('%',#{params.searchText},'%')
- </if>
- <if test="params.receiptPaymentDateStart != null and params.receiptPaymentDateStart != '' ">
- AND T1.receipt_payment_date >= date_format(#{params.receiptPaymentDateStart},'%Y-%m-%d')
- </if>
- <if test="params.receiptPaymentDateEnd != null and params.receiptPaymentDateEnd != '' ">
- AND T1.receipt_payment_date <= date_format(#{params.receiptPaymentDateEnd}, '%Y-%m-%d')
- </if>
- <if test="params.projectName != null and params.projectName != '' ">
- AND T4.project_name LIKE CONCAT('%',#{params.projectName},'%')
- </if>
- <if test="params.customerContractNo != null and params.customerContractNo != '' ">
- AND T4.customer_contract_no LIKE CONCAT('%',#{params.customerContractNo},'%')
- </if>
- <if test="params.salesContractNo != null and params.salesContractNo != '' ">
- AND T4.sales_contract_no LIKE CONCAT('%',#{params.salesContractNo},'%')
- </if>
- </where>
- ORDER BY T1.receipt_payment_date DESC
- </select>
-
-
-
-
-<!-- SELECT-->
-<!-- *-->
-<!-- FROM-->
-<!-- (-->
-<!-- SELECT-->
-<!-- receipt_payment_amount AS receiptAmount,-->
-<!-- receipt_payment_date AS happenTime,-->
-<!-- 0 AS type,-->
-<!-- 0 AS invoiceAmount-->
-<!-- FROM-->
-<!-- receipt_payment-->
-<!-- WHERE-->
-<!-- invoice_ledger_id IN (-->
-<!-- SELECT-->
-<!-- id-->
-<!-- FROM-->
-<!-- invoice_ledger-->
-<!-- WHERE-->
-<!-- invoice_registration_product_id IN (-->
-<!-- SELECT-->
-<!-- id-->
-<!-- FROM-->
-<!-- invoice_registration_product-->
-<!-- WHERE-->
-<!-- sales_ledger_id IN ( SELECT id FROM sales_ledger WHERE customer_id = #{customerId} ))) UNION-->
-<!-- SELECT-->
-<!-- 0 AS receiptAmount,-->
-<!-- invoice_date AS happenTime,-->
-<!-- 1 AS type,-->
-<!-- invoice_total AS invoiceAmount-->
-<!-- FROM-->
-<!-- invoice_ledger-->
-<!-- WHERE-->
-<!-- invoice_registration_product_id IN (-->
-<!-- SELECT-->
-<!-- id-->
-<!-- FROM-->
-<!-- invoice_registration_product-->
-<!-- WHERE-->
-<!-- sales_ledger_id IN ( SELECT id FROM sales_ledger WHERE customer_id = #{customerId} ))-->
-<!-- AND invoice_date IS NOT NULL-->
-<!-- ) T1-->
-<!-- ORDER BY-->
-<!-- T1.happenTime ASC-->
-
-
- <select id="customerInteractions" resultType="com.ruoyi.sales.dto.CustomerInteractionDto">
- SELECT
- rp.receipt_payment_amount AS receiptAmount,
- rp.receipt_payment_date AS happenTime,
- 0 AS type,
- 0 AS invoiceAmount
- FROM
- receipt_payment rp
- WHERE EXISTS (
- SELECT 1
- FROM invoice_ledger il
- JOIN invoice_registration_product irp ON il.invoice_registration_product_id = irp.id
- JOIN sales_ledger sl ON irp.sales_ledger_id = sl.id
- WHERE sl.customer_id = #{customerId}
- AND rp.invoice_ledger_id = il.id
- )
-
- UNION ALL
-
- SELECT
- 0 AS receiptAmount,
- il.invoice_date AS happenTime,
- 1 AS type,
- il.invoice_total AS invoiceAmount
- FROM
- invoice_ledger il
- JOIN invoice_registration_product irp ON il.invoice_registration_product_id = irp.id
- JOIN sales_ledger sl ON irp.sales_ledger_id = sl.id
- WHERE
- sl.customer_id = #{customerId}
- AND il.invoice_date IS NOT NULL
-
- ORDER BY happenTime ASC;
- </select>
-
- <select id="receiptPaymentHistoryListNoPage" resultType="com.ruoyi.sales.dto.ReceiptPaymentDto">
- SELECT
- T1.id,
- T1.receipt_payment_date,
- T5.customer_name,
- T1.receipt_payment_amount,
- T1.receipt_payment_type,
- T1.registrant,
- T1.create_time
- FROM
- receipt_payment T1
- LEFT JOIN
- invoice_ledger T2 ON T1.invoice_ledger_id = T2.id
- LEFT JOIN invoice_registration_product T3 ON T2.invoice_registration_product_id = T3.id
- LEFT JOIN sales_ledger T4 ON T3.sales_ledger_id = T4.id
- LEFT JOIN customer T5 ON T5.id = T4.customer_id
- WHERE T1.invoice_ledger_id = #{params.invoiceLedgerId}
- ORDER BY T1.receipt_payment_date DESC
- </select>
-
- <select id="receiptPaymentListByProdRegId" resultType="com.ruoyi.sales.pojo.ReceiptPayment">
- SELECT
- T1.*
- FROM
- receipt_payment T1
- LEFT JOIN invoice_ledger T2 ON T1.invoice_ledger_id = T2.id
- WHERE
- T2.invoice_registration_product_id = #{invoiceRegistrationProductId}
- </select>
- <select id="bindInvoiceNoRegListAll" resultType="com.ruoyi.sales.dto.ReceiptPaymentDto">
- SELECT
- T1.id ,
- T1.invoice_no ,
- T1.invoice_total ,
- T3.project_name,
- T1.invoice_person ,
- T1.invoice_date ,
- T1.create_time ,
- T1.create_user ,
- T1.update_time ,
- T1.update_user ,
- T1.tenant_id ,
- T2.tax_rate,
- T3.sales_contract_no,
- T3.customer_contract_no,
- T3.customer_name,
- T4.invoiceFileName,
- T5.product_category,
- IFNULL(T6.receipt_payment_amount_total ,0) AS receipt_payment_amount_total,
- (T1.invoice_total - IFNULL(T6.receipt_payment_amount_total ,0)) AS no_receipt_amount
- FROM invoice_ledger T1
- LEFT JOIN invoice_registration_product T2 ON T2.id = T1.invoice_registration_product_id
- LEFT JOIN sales_ledger T3 ON T3.id = T2.sales_ledger_id
- LEFT JOIN (
- SELECT
- invoice_ledger_id,
- GROUP_CONCAT( name ORDER BY id ASC SEPARATOR ' | ') AS invoiceFileName
- FROM invoice_ledger_file GROUP BY invoice_ledger_id
- ) T4 ON T4.invoice_ledger_id = T1.id
- LEFT JOIN sales_ledger_product T5 ON T2.sales_ledger_product_id = T5.id and slp.type = 1
- LEFT JOIN (
- SELECT SUM(receipt_payment_amount) AS receipt_payment_amount_total,invoice_ledger_id FROM receipt_payment GROUP
- BY invoice_ledger_id
- ) T6 ON T1.id = T6.invoice_ledger_id
- </select>
- <select id="bindInvoiceNoRegListByIds" resultType="com.ruoyi.sales.dto.ReceiptPaymentExeclDto">
- SELECT
- T1.id ,
- T1.invoice_no ,
- T1.invoice_total ,
- T3.project_name,
- T1.invoice_person ,
- T1.invoice_date ,
- T1.create_time ,
- T1.create_user ,
- T1.update_time ,
- T1.update_user ,
- T1.tenant_id ,
- T2.tax_rate,
- T3.sales_contract_no,
- T3.customer_contract_no,
- T3.customer_name,
- T4.invoiceFileName,
- T5.product_category,
- IFNULL(T6.receipt_payment_amount_total ,0) AS receipt_payment_amount_total,
- (T1.invoice_total - IFNULL(T6.receipt_payment_amount_total ,0)) AS no_receipt_amount
- FROM invoice_ledger T1
- LEFT JOIN invoice_registration_product T2 ON T2.id = T1.invoice_registration_product_id
- LEFT JOIN sales_ledger T3 ON T3.id = T2.sales_ledger_id
- LEFT JOIN (
- SELECT
- invoice_ledger_id,
- GROUP_CONCAT( name ORDER BY id ASC SEPARATOR ' | ') AS invoiceFileName
- FROM invoice_ledger_file GROUP BY invoice_ledger_id
- ) T4 ON T4.invoice_ledger_id = T1.id
- LEFT JOIN sales_ledger_product T5 ON T2.sales_ledger_product_id = T5.id and slp.type = 1
- LEFT JOIN (
- SELECT SUM(receipt_payment_amount) AS receipt_payment_amount_total,invoice_ledger_id FROM receipt_payment GROUP
- BY invoice_ledger_id
- ) T6 ON T1.id = T6.invoice_ledger_id
- <where>
- <if test="ids.size() > 0">
- T1.id IN
- <foreach item="item" collection="ids" separator="," open="(" close=")">
- #{item}
- </foreach>
- </if>
- <if test="tenantId != null " >
- AND T1.tenant_id = #{tenantId}
- </if>
- </where>
-
- </select>
-
-</mapper>
--
Gitblit v1.9.3