maven
19 小时以前 34e986e6e158450ee35319f1cac872a4bc974a74
src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java
@@ -2,17 +2,19 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
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.InvoiceRegistrationDto;
import com.ruoyi.sales.dto.InvoiceRegistrationProductDto;
import com.ruoyi.sales.dto.SalesLedgerDto;
import com.ruoyi.sales.excel.InvoiceRegisAndProductExcelDto;
import com.ruoyi.sales.mapper.InvoiceRegistrationMapper;
import com.ruoyi.sales.mapper.InvoiceRegistrationProductMapper;
import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
import com.ruoyi.sales.mapper.*;
import com.ruoyi.sales.pojo.InvoiceLedger;
import com.ruoyi.sales.pojo.InvoiceRegistration;
import com.ruoyi.sales.pojo.InvoiceRegistrationProduct;
import com.ruoyi.sales.pojo.SalesLedgerProduct;
@@ -25,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;
@@ -39,6 +42,9 @@
    @Autowired
    private SalesLedgerProductMapper salesLedgerProductMapper;
    @Autowired
    private InvoiceLedgerMapper invoiceLedgerMapper;
    /**
     * 开票登记记录新增
@@ -55,23 +61,45 @@
        invoiceRegistration.setSalesLedgerId(salesLedgerDto.getId().intValue());
        invoiceRegistrationMapper.insert(invoiceRegistration);
        List<SalesLedgerProduct> productData = salesLedgerDto.getProductData();
        BigDecimal invoiceAmountTotal = BigDecimal.ZERO;
        if(CollectionUtils.isNotEmpty(productData)){
            for (SalesLedgerProduct productDatum : productData) {
                // 如果开票数为0 跳过
                Integer currentInvoiceNum = productDatum.getCurrentInvoiceNum();
                if(null == currentInvoiceNum || currentInvoiceNum == 0){
                BigDecimal currentInvoiceNum = productDatum.getCurrentInvoiceNum();
                if(null == currentInvoiceNum || BigDecimal.ZERO.compareTo(currentInvoiceNum) == 0){
                    continue;
                }
                invoiceAmountTotal = invoiceAmountTotal.add(currentInvoiceNum);
                InvoiceRegistrationProduct invoiceRegistrationProduct = new InvoiceRegistrationProduct();
                BeanUtils.copyProperties(productDatum, invoiceRegistrationProduct);
                //更新已开票剩余未开票数
                invoiceRegistrationProductMapper.update(
                        null,
                        new LambdaUpdateWrapper<InvoiceRegistrationProduct>()
                                .eq(InvoiceRegistrationProduct::getSalesLedgerId, salesLedgerDto.getId())
                                .set(InvoiceRegistrationProduct::getNoInvoiceAmount, productDatum.getNoInvoiceAmount())
                );
                invoiceRegistrationProduct.setId(null);
                invoiceRegistrationProduct.setSalesLedgerId(salesLedgerDto.getId().intValue());
                invoiceRegistrationProduct.setInvoiceRegistrationId(invoiceRegistration.getId());
                invoiceRegistrationProduct.setInvoiceAmount(productDatum.getCurrentInvoiceAmount());
                invoiceRegistrationProduct.setInvoiceNum(productDatum.getCurrentInvoiceNum());
                invoiceRegistrationProduct.setSalesLedgerProductId(productDatum.getId().intValue());
                invoiceRegistrationProductMapper.insert(invoiceRegistrationProduct);
                productDatum.setInvoiceNum(currentInvoiceNum);
                productDatum.setInvoiceAmount(productDatum.getCurrentInvoiceAmount());
                salesLedgerProductMapper.updateById(productDatum);
                // 新增一条开票台账数据
                InvoiceLedger invoiceLedger = new InvoiceLedger();
                invoiceLedger.setInvoiceDate(salesLedgerDto.getIssueDate());
                invoiceLedger.setInvoiceRegistrationProductId(invoiceRegistrationProduct.getId());
                invoiceLedger.setInvoiceTotal(invoiceRegistrationProduct.getInvoiceAmount());
                invoiceLedger.setInvoiceNo(salesLedgerDto.getInvoiceNo());
                invoiceLedger.setCreateUser(SecurityUtils.getUserId().intValue());
                invoiceLedger.setInvoicePerson(productDatum.getRegister());
                invoiceLedgerMapper.insert(invoiceLedger);
            }
        }
    }