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 &gt;= date_format(#{params.paymentDateStart},'%Y-%m-%d')
-            </if>
-            <if test="params.paymentDateEnd != null and params.paymentDateEnd !='' ">
-                AND T1.payment_date &lt;= 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 &gt;= str_to_date(#{c.createdAtStart}, '%Y-%m-%d')
-        </if>
-        <if test="c.createdAtEnd != null and c.createdAtEnd != ''">
-            and pr.created_at &lt; 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 &gt;= #{c.entryDateStart}
-            </if>
-            <if test="c.entryDateEnd != null and c.entryDateEnd != ''">
-                AND pl.entry_date &lt;= #{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 &gt;= DATE_FORMAT(#{req.invoiceDateStart},'%Y-%m-%d')
-            </if>
-            <if test="req.invoiceDateEnd != null and req.invoiceDateEnd != '' ">
-                AND T1.invoice_date &lt;= 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)) &gt; 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 &gt;= date_format(#{params.receiptPaymentDateStart},'%Y-%m-%d')
-            </if>
-            <if test="params.receiptPaymentDateEnd != null and params.receiptPaymentDateEnd != '' ">
-                AND T1.receipt_payment_date &lt;= 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