| | |
| | | package com.ruoyi.sales.service.impl; |
| | | |
| | | import com.alibaba.druid.util.DaemonThreadFactory; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | |
| | | import com.ruoyi.sales.mapper.*; |
| | | import com.ruoyi.sales.pojo.*; |
| | | import com.ruoyi.sales.service.ISalesLedgerService; |
| | | import com.ruoyi.sales.service.InvoiceRegistrationService; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.io.FilenameUtils; |
| | |
| | | return salesLedgerMapper.deleteBatchIds(idList); |
| | | } |
| | | |
| | | @Autowired |
| | | private InvoiceRegistrationService invoiceRegistrationService; |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public int addOrUpdateSalesLedger(SalesLedgerDto salesLedgerDto) { |
| | |
| | | // 4. 处理子表数据 |
| | | List<SalesLedgerProduct> productList = salesLedgerDto.getProductData(); |
| | | if (productList != null && !productList.isEmpty()) { |
| | | handleSalesLedgerProducts(salesLedger.getId(), productList, salesLedgerDto.getType()); |
| | | handleSalesLedgerProducts(salesLedgerDto,salesLedger.getId(), productList, salesLedgerDto.getType()); |
| | | updateMainContractAmount( |
| | | salesLedger.getId(), |
| | | productList, |
| | |
| | | } |
| | | |
| | | |
| | | private void handleSalesLedgerProducts(Long salesLedgerId, List<SalesLedgerProduct> products, Integer type) { |
| | | private void handleSalesLedgerProducts(SalesLedgerDto salesLedgerDto,Long salesLedgerId, List<SalesLedgerProduct> products, Integer type) { |
| | | // 按ID分组,区分新增和更新的记录 |
| | | Map<Boolean, List<SalesLedgerProduct>> partitionedProducts = products.stream() |
| | | .peek(p -> p.setSalesLedgerId(salesLedgerId)) |
| | |
| | | salesLedgerProduct.setNoInvoiceAmount(salesLedgerProduct.getTaxInclusiveTotalPrice()); |
| | | salesLedgerProductMapper.insert(salesLedgerProduct); |
| | | } |
| | | if (salesLedgerDto.getIsInvoice().equals(2)) { |
| | | // 无需开票,提示系统生成发票 |
| | | for (SalesLedgerProduct productDatum : insertList) { |
| | | productDatum.setCurrentInvoiceAmount(productDatum.getTaxInclusiveTotalPrice()); |
| | | productDatum.setCurrentInvoiceNum(productDatum.getQuantity()); |
| | | } |
| | | salesLedgerDto.setId(salesLedgerId); |
| | | salesLedgerDto.setIssueDate(LocalDate.now()); |
| | | salesLedgerDto.setInvoiceNo("此台账无需手动开票,系统将所有产品自动生成开票台账"); |
| | | salesLedgerDto.setCreateUser(SecurityUtils.getLoginUser().getNickName()); |
| | | invoiceRegistrationService.invoiceRegistrationSave(salesLedgerDto); |
| | | } |
| | | } |
| | | } |
| | | |