src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
@@ -15,23 +16,19 @@
import com.ruoyi.sales.mapper.InvoiceLedgerMapper;
import com.ruoyi.sales.mapper.InvoiceRegistrationProductMapper;
import com.ruoyi.sales.mapper.ReceiptPaymentMapper;
import com.ruoyi.sales.pojo.InvoiceLedger;
import com.ruoyi.sales.pojo.InvoiceRegistrationProduct;
import com.ruoyi.sales.pojo.ReceiptPayment;
import com.ruoyi.sales.pojo.SalesLedger;
import com.ruoyi.sales.pojo.*;
import com.ruoyi.sales.service.ICommonFileService;
import com.ruoyi.sales.service.ISalesLedgerProductService;
import com.ruoyi.sales.service.ISalesLedgerService;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -46,6 +43,9 @@
public class SalesLedgerController extends BaseController {
    private ISalesLedgerService salesLedgerService;
    @Autowired
    private ISalesLedgerProductService salesLedgerProductService;
    private ICommonFileService commonFileService;
@@ -198,6 +198,18 @@
     */
    @GetMapping("/listPage")
    public IPage<SalesLedger> listPage(Page page, SalesLedgerDto salesLedgerDto) {
        Set<Long> ids = new HashSet<>();
        if(!StringUtils.isEmpty(salesLedgerDto.getProductCategory())){
            List<SalesLedgerProduct> salesLedgerProducts = salesLedgerProductService.getBaseMapper().selectList(new LambdaQueryWrapper<SalesLedgerProduct>()
                    .eq(SalesLedgerProduct::getType, 1)
                    .like(SalesLedgerProduct::getProductCategory, salesLedgerDto.getProductCategory())
                    .select(SalesLedgerProduct::getSalesLedgerId));
            ids = salesLedgerProducts.stream().map(SalesLedgerProduct::getSalesLedgerId).collect(Collectors.toSet());
            if(CollectionUtils.isEmpty(ids)){
                throw new BaseException("暂无查到此产品大类或此产品大类无销售数据,请仔细检查!");
            }
        }
        salesLedgerDto.setIds(ids);
        IPage<SalesLedger> iPage = salesLedgerService.selectSalesLedgerListPage(page,salesLedgerDto);
        // 计算已开票金额/未开票金额(已填写发票金额为准)
        if(CollectionUtils.isEmpty(iPage.getRecords())){