8 天以前 2f80b7085c4eabce06d3491306b75eecc275275f
src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java
@@ -3,7 +3,6 @@
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;
@@ -13,38 +12,38 @@
import com.ruoyi.sales.dto.InvoiceRegistrationProductDto;
import com.ruoyi.sales.dto.SalesLedgerDto;
import com.ruoyi.sales.excel.InvoiceRegisAndProductExcelDto;
import com.ruoyi.sales.mapper.*;
import com.ruoyi.sales.mapper.InvoiceLedgerMapper;
import com.ruoyi.sales.mapper.InvoiceRegistrationMapper;
import com.ruoyi.sales.mapper.InvoiceRegistrationProductMapper;
import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
import com.ruoyi.sales.pojo.InvoiceLedger;
import com.ruoyi.sales.pojo.InvoiceRegistration;
import com.ruoyi.sales.pojo.InvoiceRegistrationProduct;
import com.ruoyi.sales.pojo.SalesLedgerProduct;
import com.ruoyi.sales.service.InvoiceRegistrationService;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.util.List;
import java.util.stream.Collectors;
@Service
@RequiredArgsConstructor
public class InvoiceRegistrationServiceImpl extends ServiceImpl<InvoiceRegistrationMapper, InvoiceRegistration> implements InvoiceRegistrationService {
    @Autowired
    private InvoiceRegistrationMapper invoiceRegistrationMapper;
    private final InvoiceRegistrationMapper invoiceRegistrationMapper;
    @Autowired
    private InvoiceRegistrationProductMapper invoiceRegistrationProductMapper;
    private final InvoiceRegistrationProductMapper invoiceRegistrationProductMapper;
    @Autowired
    private SalesLedgerProductMapper salesLedgerProductMapper;
    private final SalesLedgerProductMapper salesLedgerProductMapper;
    @Autowired
    private InvoiceLedgerMapper invoiceLedgerMapper;
    private final InvoiceLedgerMapper invoiceLedgerMapper;
    /**
     * 开票登记记录新增
@@ -85,18 +84,16 @@
                throw new RuntimeException("销售台账产品不存在,ID:" + productDatum.getId());
            }
            //  计算累计开票
            BigDecimal newInvoiceNum = dbProduct.getInvoiceNum().add(currentInvoiceNum);
            // 未开票
            BigDecimal noInvoiceAmount = dbProduct.getNoInvoiceAmount();
            BigDecimal noInvoiceNum = dbProduct.getNoInvoiceNum();
            BigDecimal newInvoiceAmount = dbProduct.getInvoiceAmount().add(currentInvoiceAmount);
            // 剩余未开票
            BigDecimal newNoInvoiceNum = noInvoiceNum.subtract(currentInvoiceNum);
            BigDecimal newNoInvoiceAmount = noInvoiceAmount.subtract(currentInvoiceAmount);
            //  计算未开票
            BigDecimal newNoInvoiceNum = dbProduct.getQuantity().subtract(newInvoiceNum);
            BigDecimal newNoInvoiceAmount = dbProduct.getTaxInclusiveTotalPrice().subtract(newInvoiceAmount);
            if (newNoInvoiceNum.compareTo(BigDecimal.ZERO) < 0
                    || newNoInvoiceAmount.compareTo(BigDecimal.ZERO) < 0) {
            if (newNoInvoiceAmount.compareTo(BigDecimal.ZERO) < 0) {
                throw new RuntimeException("开票数量或金额超过合同总量");
            }
@@ -105,8 +102,6 @@
                    null,
                    new LambdaUpdateWrapper<SalesLedgerProduct>()
                            .eq(SalesLedgerProduct::getId, dbProduct.getId())
                            .set(SalesLedgerProduct::getInvoiceNum, newInvoiceNum)
                            .set(SalesLedgerProduct::getInvoiceAmount, newInvoiceAmount)
                            .set(SalesLedgerProduct::getNoInvoiceNum, newNoInvoiceNum)
                            .set(SalesLedgerProduct::getNoInvoiceAmount, newNoInvoiceAmount)
            );