maven
11 小时以前 b68518c7a9e7dbb0c384d4020b48e3af7db74963
src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
@@ -10,15 +10,15 @@
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.framework.web.page.TableDataInfo;
import com.ruoyi.production.mapper.SalesLedgerWorkMapper;
import com.ruoyi.production.pojo.SalesLedgerWork;
import com.ruoyi.sales.dto.InvoiceLedgerDto;
import com.ruoyi.sales.dto.SalesLedgerDto;
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.mapper.SalesLedgerProductMapper;
import com.ruoyi.sales.pojo.*;
import com.ruoyi.sales.service.ICommonFileService;
import com.ruoyi.sales.service.ISalesLedgerService;
import lombok.AllArgsConstructor;
@@ -28,10 +28,7 @@
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;
/**
@@ -57,6 +54,12 @@
    @Autowired
    private ReceiptPaymentMapper receiptPaymentMapper;
    @Autowired
    private SalesLedgerProductMapper salesLedgerProductMapper;
    @Autowired
    private SalesLedgerWorkMapper salesLedgerWorkMapper;
    /**
     * 查询销售台账列表
@@ -205,9 +208,6 @@
        }
        List<Long> salesLedgerIds = iPage.getRecords().stream().map(SalesLedger::getId).collect(Collectors.toList());
        List<InvoiceLedgerDto> invoiceLedgerDtoList = invoiceLedgerMapper.invoicedTotal(salesLedgerIds);
        if(CollectionUtils.isEmpty(invoiceLedgerDtoList)){
            return iPage;
        }
        // 计算回款金额,待回款金额
        List<InvoiceRegistrationProduct> invoiceRegistrationProducts = invoiceRegistrationProductMapper.selectList(new LambdaQueryWrapper<InvoiceRegistrationProduct>()
                .in(InvoiceRegistrationProduct::getSalesLedgerId, salesLedgerIds));
@@ -218,6 +218,42 @@
        if(!CollectionUtils.isEmpty(invoiceLedgers)){
            receiptPayments = receiptPaymentMapper.selectList(new LambdaQueryWrapper<ReceiptPayment>()
                    .in(ReceiptPayment::getInvoiceLedgerId, invoiceLedgers.stream().map(InvoiceLedger::getId).collect(Collectors.toList())));
        }
        // 获取销售产品数量
        List<SalesLedgerProduct> salesLedgerProducts = salesLedgerProductMapper
                .selectList(new LambdaQueryWrapper<SalesLedgerProduct>()
                        .eq(SalesLedgerProduct::getType, 1)
                        .in(SalesLedgerProduct::getSalesLedgerId, salesLedgerIds));
        Map<Long, BigDecimal> salesLedgerProductCountMap = new HashMap<>();
        if (!CollectionUtils.isEmpty(salesLedgerProducts)) {
            salesLedgerProductCountMap = salesLedgerProducts
                    .stream()
                    .filter(Objects::nonNull)
                    .collect(Collectors.groupingBy(
                            SalesLedgerProduct::getSalesLedgerId,
                            Collectors.reducing(
                                    BigDecimal.ZERO,
                                    SalesLedgerProduct::getQuantity,
                                    BigDecimal::add
                            )
                    ));
        }
        // 获取销售产品生产报工数量
        List<SalesLedgerWork> salesLedgerWorks = salesLedgerWorkMapper.selectList(new LambdaQueryWrapper<SalesLedgerWork>()
                .in(SalesLedgerWork::getSalesLedgerId, salesLedgerIds));
        Map<Long, BigDecimal> salesLedgerWorkCountMap = new HashMap<>();
        if (!CollectionUtils.isEmpty(salesLedgerWorks)) {
            salesLedgerWorkCountMap = salesLedgerWorks
                    .stream()
                    .filter(Objects::nonNull)
                    .collect(Collectors.groupingBy(
                            SalesLedgerWork::getSalesLedgerId,
                            Collectors.reducing(
                                    BigDecimal.ZERO,
                                    SalesLedgerWork::getFinishedNum,
                                    BigDecimal::add
                            )
                    ));
        }
        for (SalesLedger salesLedger : iPage.getRecords()) {
            boolean existFlag = false;
@@ -257,6 +293,8 @@
                salesLedger.setNoInvoiceAmountTotal(salesLedger.getContractAmount());
            }
            salesLedger.setInvoiceTotal(invoiceTotal);
            // 判断是否是生产完成
            salesLedger.setProductionStatus(salesLedgerProductCountMap.get(salesLedger.getId()) == null ? "未开始" : salesLedgerProductCountMap.get(salesLedger.getId()).compareTo(salesLedgerWorkCountMap.get(salesLedger.getId())) > 0 ? "生产中" : "已完成");
        }
        if (ObjectUtils.isNotEmpty(salesLedgerDto.getStatus())) {
            if (salesLedgerDto.getStatus()) {