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