From 01c28e0b62f5cea71dd9378fefa28b7177ffedba Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期六, 12 七月 2025 16:47:22 +0800
Subject: [PATCH] yys  修改导入导出bug

---
 src/main/java/com/ruoyi/purchase/dto/ProductRecordDto.java                       |    4 ++++
 src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java |   32 +++++++++++++++++++++++++++++++-
 src/main/resources/mapper/purchase/ProductRecordMapper.xml                       |    3 +++
 src/main/java/com/ruoyi/purchase/controller/TicketRegistrationController.java    |    6 ++++--
 src/main/java/com/ruoyi/other/service/impl/TempFileServiceImpl.java              |   10 +++++-----
 5 files changed, 47 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/ruoyi/other/service/impl/TempFileServiceImpl.java b/src/main/java/com/ruoyi/other/service/impl/TempFileServiceImpl.java
index 61de057..f52330d 100644
--- a/src/main/java/com/ruoyi/other/service/impl/TempFileServiceImpl.java
+++ b/src/main/java/com/ruoyi/other/service/impl/TempFileServiceImpl.java
@@ -39,12 +39,12 @@
         String tempId = UUID.randomUUID().toString();
         String originalFilename = file.getOriginalFilename();
         if(originalFilename == null) throw new IOException("鏂囦欢鍚嶄笉鑳戒负绌�");
-        URLEncoder urlEncoder = new URLEncoder();
-        String encodedFilename = urlEncoder.encode(originalFilename, StandardCharsets.UTF_8);
-        encodedFilename = encodedFilename.replaceAll("%2E",".");
-        Path tempFilePath = Paths.get(tempDir, tempId + "_" + encodedFilename);
+//        URLEncoder urlEncoder = new URLEncoder();
+//        String encodedFilename = urlEncoder.encode(originalFilename, StandardCharsets.UTF_8);
+//        encodedFilename = encodedFilename.replaceAll("%2E",".");
+//        Path tempFilePath = Paths.get(tempDir, tempId + "_" + encodedFilename);
 
-//        Path tempFilePath = Paths.get(tempDir, tempId + "_" + file.getOriginalFilename());
+        Path tempFilePath = Paths.get(tempDir, tempId + "_" + file.getOriginalFilename());
 
         // 2. 纭繚鐩綍瀛樺湪
         Path parentDir = tempFilePath.getParent();
diff --git a/src/main/java/com/ruoyi/purchase/controller/TicketRegistrationController.java b/src/main/java/com/ruoyi/purchase/controller/TicketRegistrationController.java
index ae4141b..0f2d5f4 100644
--- a/src/main/java/com/ruoyi/purchase/controller/TicketRegistrationController.java
+++ b/src/main/java/com/ruoyi/purchase/controller/TicketRegistrationController.java
@@ -20,6 +20,7 @@
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import org.springframework.security.core.parameters.P;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -100,10 +101,11 @@
     }
 
     /**
-     * 鍒犻櫎鏉ョエ鐧昏
+     * 鍒犻櫎鏉ョエ鐧昏(鏉ョエ鍙拌处)
      */
-    @Log(title = "鏉ョエ鐧昏", businessType = BusinessType.DELETE)
+    @Log(title = "鍒犻櫎鏉ョエ鐧昏(鏉ョエ鍙拌处)", businessType = BusinessType.DELETE)
     @DeleteMapping("/delRegistration")
+    @Transactional(rollbackFor = Exception.class)
     public AjaxResult delRegistration(@RequestBody Long[] ids) {
         return toAjax(ticketRegistrationService.delRegistration(ids));
     }
diff --git a/src/main/java/com/ruoyi/purchase/dto/ProductRecordDto.java b/src/main/java/com/ruoyi/purchase/dto/ProductRecordDto.java
index 261159a..1a3396d 100644
--- a/src/main/java/com/ruoyi/purchase/dto/ProductRecordDto.java
+++ b/src/main/java/com/ruoyi/purchase/dto/ProductRecordDto.java
@@ -10,6 +10,8 @@
 @Data
 public class ProductRecordDto extends ProductRecord {
 
+    private Long ticketRegistrationId;
+
     //閿�鍞悎鍚屽彿
     private String salesContractNo;
     //瀹㈡埛鍚堝悓鍙�
@@ -23,6 +25,8 @@
     private String purchaseContractNumber;
     //渚涘簲鍟嗗悕绉�
     private String supplierName;
+    private Long issUerId;
+    private String issUer;
     //澧炲�肩◣
     private String invoiceAmount = "0";
 
diff --git a/src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java
index 08bbf4b..b01fdc2 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java
@@ -252,7 +252,37 @@
 
     @Override
     public int delRegistration(Long[] ids) {
-        return ticketRegistrationMapper.deleteBatchIds(Arrays.asList(ids));
+        // 鍒犻櫎閲囪喘鍙拌处浜у搧寮�绁ㄨ褰曞璞�
+        LambdaQueryWrapper<ProductRecord> productRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        productRecordLambdaQueryWrapper.in(ProductRecord::getId, Arrays.asList(ids));
+        List<ProductRecord> productRecords = productRecordMapper.selectList(productRecordLambdaQueryWrapper);
+        if(CollectionUtils.isEmpty(productRecords)){
+            return 0;
+        }
+        LambdaQueryWrapper<TicketRegistration> ticketRegistrationLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        ticketRegistrationLambdaQueryWrapper.in(TicketRegistration::getId, productRecords.stream().map(ProductRecord::getTicketRegistrationId).collect(Collectors.toList()));
+        List<TicketRegistration> ticketRegistrations = ticketRegistrationMapper.selectList(ticketRegistrationLambdaQueryWrapper);
+
+        // 淇敼浜у搧淇℃伅
+        for (ProductRecord productRecord : productRecords) {
+            ticketRegistrations.get(0).setInvoiceAmount(ticketRegistrations.get(0).getInvoiceAmount().subtract(productRecords.get(0).getTicketsAmount()));
+            ticketRegistrationMapper.updateById(ticketRegistrations.get(0));
+            LambdaQueryWrapper<SalesLedgerProduct> salesLedgerProductLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            salesLedgerProductLambdaQueryWrapper.eq(SalesLedgerProduct::getId, productRecord.getSaleLedgerProjectId())
+                    .eq(SalesLedgerProduct::getType, 2);
+            List<SalesLedgerProduct> salesLedgerProducts = salesLedgerProductMapper.selectList(salesLedgerProductLambdaQueryWrapper);
+            if(!CollectionUtils.isEmpty(salesLedgerProducts)){
+                for (SalesLedgerProduct salesLedgerProduct : salesLedgerProducts) {
+                    salesLedgerProduct.setFutureTickets(salesLedgerProduct.getFutureTickets().add(productRecord.getTicketsNum()));
+                    salesLedgerProduct.setFutureTicketsAmount(salesLedgerProduct.getFutureTicketsAmount().add(productRecord.getTicketsAmount()));
+                    salesLedgerProductMapper.updateById(salesLedgerProduct);
+
+                }
+            }
+        }
+        // 鍒犻櫎閲囪喘鍙拌处浜у搧寮�绁ㄨ褰�
+        productRecordMapper.delete(productRecordLambdaQueryWrapper);
+        return 1;
     }
 
     @Override
diff --git a/src/main/resources/mapper/purchase/ProductRecordMapper.xml b/src/main/resources/mapper/purchase/ProductRecordMapper.xml
index e1646b8..6db5f75 100644
--- a/src/main/resources/mapper/purchase/ProductRecordMapper.xml
+++ b/src/main/resources/mapper/purchase/ProductRecordMapper.xml
@@ -15,6 +15,9 @@
         pl.supplier_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

--
Gitblit v1.9.3