hsy
2026-08-28 a8e4132c3e2e9c3b3fcb0360901b35571b6464ea
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -1,9 +1,9 @@
package com.ruoyi.sales.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -75,6 +75,9 @@
import java.util.concurrent.TimeUnit;
import java.util.function.Function;
import java.util.stream.Collectors;
import com.ruoyi.sales.mapper.SalesLedgerContractRelMapper;
import com.ruoyi.sales.pojo.SalesLedgerContractRel;
import org.springframework.util.CollectionUtils;
/**
 * 销售台账Service业务层处理
@@ -106,6 +109,7 @@
    private final FileUtil fileUtil;
    private final AccountInvoiceApplicationMapper accountInvoiceApplicationMapper;
    private final AccountSalesCollectionMapper accountSalesCollectionMapper;
    private final SalesLedgerContractRelMapper salesLedgerContractRelMapper;
    @Autowired
    private SysDeptMapper sysDeptMapper;
@@ -159,6 +163,15 @@
        SalesLedger salesLedger = salesLedgerMapper.selectById(salesLedgerDto.getId());
        if (salesLedger == null) {
            throw new BaseException("台账不存在");
        }
        // 查询关联的合同
        List<SalesLedgerContractRel> rels = salesLedgerContractRelMapper.selectList(
                new LambdaQueryWrapper<SalesLedgerContractRel>().eq(SalesLedgerContractRel::getSalesLedgerId, salesLedger.getId())
        );
        if (!CollectionUtils.isEmpty(rels)) {
            List<Long> contractIds = rels.stream().map(SalesLedgerContractRel::getContractId).collect(Collectors.toList());
            salesLedger.setAssociatedContractIds(contractIds);
        }
        // 2. 查询子表
@@ -385,6 +398,7 @@
                salesLedger.setContractAmount(salesLedgerProductImportDtos.stream()
                        .map(SalesLedgerProductImportDto::getTaxInclusiveTotalPrice)
                        .reduce(BigDecimal.ZERO, BigDecimal::add));
                salesLedger.setNetContractAmount(salesLedger.getContractAmount());
                salesLedgerMapper.insert(salesLedger);
@@ -529,7 +543,7 @@
        // 删除发货台账记录
        List<ShippingInfo> shippingInfos = shippingInfoMapper.selectList(new LambdaQueryWrapper<ShippingInfo>()
                .in(ShippingInfo::getSalesLedgerId, idList));
        if (CollectionUtils.isNotEmpty(shippingInfos)) {
        if (CollUtil.isNotEmpty(shippingInfos)) {
            shippingInfoServiceImpl.delete(shippingInfos.stream().map(ShippingInfo::getId).collect(Collectors.toList()));
        }
        // 删除附件表
@@ -538,7 +552,7 @@
        // 删除生产管控数据
        //查询生产报工id
        ArrayList<Long> mainIdList = productionProductMainService.listMain(idList);
        if (CollectionUtils.isNotEmpty(mainIdList)) {
        if (CollUtil.isNotEmpty(mainIdList)) {
            mainIdList.stream().forEach(mainId -> {
                productionProductMainService.removeProductMain(mainId);
            });
@@ -576,6 +590,18 @@
            salesLedgerMapper.updateById(salesLedger);
        }
        // 处理关联合同数据
        salesLedgerContractRelMapper.delete(
                new LambdaQueryWrapper<SalesLedgerContractRel>().eq(SalesLedgerContractRel::getSalesLedgerId, salesLedger.getId())
        );
        if (!CollectionUtils.isEmpty(salesLedgerDto.getAssociatedContractIds())) {
            for (Long contractId : salesLedgerDto.getAssociatedContractIds()) {
                SalesLedgerContractRel rel = new SalesLedgerContractRel();
                rel.setSalesLedgerId(salesLedger.getId());
                rel.setContractId(contractId);
                salesLedgerContractRelMapper.insert(rel);
            }
        }
        // 4. 处理子表数据
        List<SalesLedgerProduct> productList = salesLedgerDto.getProductData();