From 487b30b77565d9b12f203a1234a93b80a8c59177 Mon Sep 17 00:00:00 2001 From: chenrui <1187576398@qq.com> Date: 星期二, 20 五月 2025 13:58:00 +0800 Subject: [PATCH] 回款台账 --- src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java | 85 ++++++++++++++++++++++++++++++++++-------- 1 files changed, 69 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java index 3130872..baaeee9 100644 --- a/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java +++ b/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java @@ -12,8 +12,12 @@ import com.ruoyi.sales.excel.InvoiceRegisAndProductExcelDto; import com.ruoyi.sales.mapper.InvoiceRegistrationMapper; import com.ruoyi.sales.mapper.InvoiceRegistrationProductMapper; +import com.ruoyi.sales.mapper.InvoiceRegistrationProductRecordMapper; +import com.ruoyi.sales.mapper.InvoiceRegistrationRecordMapper; import com.ruoyi.sales.pojo.InvoiceRegistration; import com.ruoyi.sales.pojo.InvoiceRegistrationProduct; +import com.ruoyi.sales.pojo.InvoiceRegistrationProductRecord; +import com.ruoyi.sales.pojo.InvoiceRegistrationRecord; import com.ruoyi.sales.service.InvoiceRegistrationService; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.BeanUtils; @@ -23,6 +27,7 @@ import org.springframework.util.ObjectUtils; import javax.servlet.http.HttpServletResponse; +import java.math.BigDecimal; import java.util.List; import java.util.stream.Collectors; @@ -35,6 +40,12 @@ @Autowired private InvoiceRegistrationProductMapper invoiceRegistrationProductMapper; + @Autowired + private InvoiceRegistrationRecordMapper invoiceRegistrationRecordMapper; + + @Autowired + private InvoiceRegistrationProductRecordMapper invoiceRegistrationProductRecordMapper; + /** * 寮�绁ㄧ櫥璁版柊澧� @@ -44,29 +55,71 @@ @Override @Transactional(rollbackFor = Exception.class) public void invoiceRegistrationSaveOrUpdate(InvoiceRegistrationDto invoiceRegistrationDto) { - InvoiceRegistration invoiceRegistration = new InvoiceRegistration(); - BeanUtils.copyProperties(invoiceRegistrationDto, invoiceRegistration); List<InvoiceRegistrationProductDto> productDtoList = invoiceRegistrationDto.getProductDtoList(); - // 鏂板寮�绁ㄧ櫥璁� - if(invoiceRegistrationDto.getId() == null){ - invoiceRegistrationMapper.insert(invoiceRegistration); - // 鏂板寮�绁ㄤ骇鍝佺櫥璁� - if(CollectionUtils.isNotEmpty(productDtoList)){ + Integer salesLedgerId = invoiceRegistrationDto.getSalesLedgerId(); + if (null == salesLedgerId){ + throw new RuntimeException("鏈叧鑱旈攢鍞悎鍚�"); + } + QueryWrapper<InvoiceRegistration> inRegWrapper = new QueryWrapper<>(); + inRegWrapper.eq("sales_ledger_id", salesLedgerId); + InvoiceRegistration invoiceRegistration = invoiceRegistrationMapper.selectOne(inRegWrapper); + Integer invoiceRegistrationId = null; + // 鍒ゆ柇鏄惁宸茬粡鍋氳繃鐧昏锛屽鏋滄湁鍚堝苟锛屽鏋滄病鏈夋柊澧� + if(ObjectUtils.isEmpty(invoiceRegistration)){ + InvoiceRegistration insertInvocieReg = new InvoiceRegistration(); + BeanUtils.copyProperties(invoiceRegistrationDto, insertInvocieReg); + invoiceRegistrationMapper.insert(insertInvocieReg); + invoiceRegistrationId = insertInvocieReg.getId(); + }else { + invoiceRegistrationId = invoiceRegistration.getId(); + } + // 鏌ヨ浜у搧鏄惁宸茬粡鐧昏 + if(CollectionUtils.isNotEmpty(productDtoList)){ + QueryWrapper<InvoiceRegistrationProduct> inRegProductWrapper = new QueryWrapper<>(); + inRegProductWrapper.eq("invoice_registration_id", invoiceRegistrationId); + List<InvoiceRegistrationProduct> invoiceRegistrationProductList = invoiceRegistrationProductMapper.selectList(inRegProductWrapper); + if(CollectionUtils.isNotEmpty(invoiceRegistrationProductList)){ + // 鎵归噺鏇存柊 + for (InvoiceRegistrationProduct invoiceRegistrationProduct : invoiceRegistrationProductList) { + for (InvoiceRegistrationProductDto invoiceRegistrationProductDto : productDtoList) { + if( null != invoiceRegistrationProductDto.getId() && null != invoiceRegistrationProduct.getSalesLedgerProductId() + && invoiceRegistrationProductDto.getId() == invoiceRegistrationProduct.getSalesLedgerProductId().longValue() ){ + // 璁$畻宸插紑绁ㄦ暟 + invoiceRegistrationProduct.setInvoiceNum(invoiceRegistrationProduct.getInvoiceNum() + invoiceRegistrationProductDto.getInvoiceNum()); + // 璁$畻宸插紑绁ㄩ噾棰� + invoiceRegistrationProduct.setInvoiceAmount(invoiceRegistrationProduct.getInvoiceAmount().add(invoiceRegistrationProductDto.getInvoiceAmount())); +// // 璁$畻鏈紑绁ㄦ暟 + invoiceRegistrationProduct.setNoInvoiceNum(invoiceRegistrationProductDto.getNoInvoiceNum()); +// // 璁$畻鏈紑绁ㄩ噾棰� 鍚◣鎬讳环-寮�绁ㄩ噾棰� + invoiceRegistrationProduct.setNoInvoiceAmount(invoiceRegistrationProductDto.getNoInvoiceAmount()); + invoiceRegistrationProductMapper.updateById(invoiceRegistrationProduct); + } + } + } + }else { + // 鎵归噺鎻掑叆 for (InvoiceRegistrationProductDto invoiceRegistrationProductDto : productDtoList) { InvoiceRegistrationProduct invoiceRegistrationProduct = new InvoiceRegistrationProduct(); BeanUtils.copyProperties(invoiceRegistrationProductDto, invoiceRegistrationProduct); - invoiceRegistrationProduct.setInvoiceRegistrationId(invoiceRegistration.getId()); + invoiceRegistrationProduct.setInvoiceRegistrationId(invoiceRegistrationId); + invoiceRegistrationProduct.setSalesLedgerProductId(invoiceRegistrationProductDto.getId()); + invoiceRegistrationProduct.setId(null); invoiceRegistrationProductMapper.insert(invoiceRegistrationProduct); } } - // 寮�绁ㄧ櫥璁颁慨鏀� - }else { - if(CollectionUtils.isNotEmpty(productDtoList)){ - for (InvoiceRegistrationProductDto invoiceRegistrationProductDto : productDtoList) { - InvoiceRegistrationProduct invoiceRegistrationProduct = new InvoiceRegistrationProduct(); - BeanUtils.copyProperties(invoiceRegistrationProductDto, invoiceRegistrationProduct); - invoiceRegistrationProductMapper.updateById(invoiceRegistrationProduct); - } + } + // 淇濆瓨鏈寮�绁ㄧ櫥璁拌褰� + InvoiceRegistrationRecord invoiceRegistrationRecord = new InvoiceRegistrationRecord(); + BeanUtils.copyProperties(invoiceRegistrationDto, invoiceRegistrationRecord); + invoiceRegistrationRecordMapper.insert(invoiceRegistrationRecord); + if(CollectionUtils.isNotEmpty(productDtoList)){ + for (InvoiceRegistrationProductDto invoiceRegistrationProductDto : productDtoList) { + InvoiceRegistrationProductRecord invoiceRegistrationProductRecord = new InvoiceRegistrationProductRecord(); + BeanUtils.copyProperties(invoiceRegistrationProductDto, invoiceRegistrationProductRecord); + invoiceRegistrationProductRecord.setInvoiceRegistrationRecordId(invoiceRegistrationRecord.getId()); + invoiceRegistrationProductRecord.setSalesLedgerProductId(invoiceRegistrationProductDto.getId()); + invoiceRegistrationProductRecord.setId(null); + invoiceRegistrationProductRecordMapper.insert(invoiceRegistrationProductRecord); } } } -- Gitblit v1.9.3