From 602a2d4fd650ded48e8f4cd1a48f0e6de3b98053 Mon Sep 17 00:00:00 2001 From: liding <756868258@qq.com> Date: 星期四, 08 五月 2025 17:42:09 +0800 Subject: [PATCH] 1.销售台账 2.关联产品 --- src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 52 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java index 769cfe9..5048386 100644 --- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java +++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java @@ -2,14 +2,23 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.basic.mapper.CustomerMapper; +import com.ruoyi.basic.pojo.Customer; +import com.ruoyi.common.exception.base.BaseException; +import com.ruoyi.sales.dto.SalesLedgerDto; import com.ruoyi.sales.mapper.SalesLedgerMapper; +import com.ruoyi.sales.mapper.SalesLedgerProductMapper; import com.ruoyi.sales.pojo.SalesLedger; +import com.ruoyi.sales.pojo.SalesLedgerProduct; import com.ruoyi.sales.service.ISalesLedgerService; -import org.springframework.beans.factory.annotation.Autowired; +import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import java.util.Arrays; +import java.util.Collections; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * 閿�鍞彴璐ervice涓氬姟灞傚鐞� @@ -18,13 +27,38 @@ * @date 2025-05-08 */ @Service +@AllArgsConstructor public class SalesLedgerServiceImpl extends ServiceImpl<SalesLedgerMapper, SalesLedger> implements ISalesLedgerService { - @Autowired + private SalesLedgerMapper salesLedgerMapper; + + private CustomerMapper customerMapper; + + private SalesLedgerProductMapper salesLedgerProductMapper; @Override public List<SalesLedger> selectSalesLedgerList(SalesLedger salesLedger) { return salesLedgerMapper.selectList(new LambdaQueryWrapper<>()); + } + + public List<SalesLedgerDto> getSalesLedgerWithProducts() { + List<SalesLedger> ledgers = salesLedgerMapper.selectList(new LambdaQueryWrapper<>()); + List<SalesLedgerProduct> products = salesLedgerProductMapper.selectList(new LambdaQueryWrapper<>()); + + Map<Long, List<SalesLedgerProduct>> productMap = products.stream() + .collect(Collectors.groupingBy(SalesLedgerProduct::getSalesLedgerId)); + + return ledgers.stream().map(ledger -> { + SalesLedgerDto dto = new SalesLedgerDto(); + org.springframework.beans.BeanUtils.copyProperties(ledger, dto); + + List<SalesLedgerProduct> ledgerProducts = productMap.getOrDefault(ledger.getId(), Collections.emptyList()); + if (!ledgerProducts.isEmpty()) { + dto.setHasChildren(true); + dto.setChildren(ledgerProducts); + } + return dto; + }).collect(Collectors.toList()); } @Override @@ -37,13 +71,23 @@ return salesLedgerMapper.deleteBatchIds(Arrays.asList(ids)); } - @Override - public int insertSalesLedger(SalesLedger salesLedger) { - return salesLedgerMapper.insert(salesLedger); + public int addOrUpdateSalesLedger(SalesLedger salesLedger) { + LambdaQueryWrapper<Customer> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(Customer::getId, salesLedger.getCustomerId()); + Customer customer = customerMapper.selectOne(queryWrapper); + if (customer == null) { + throw new BaseException("鏈煡璇㈠埌瀵瑰簲鐨� Customer 淇℃伅"); + } + salesLedger.setCustomerName(customer.getCustomerName()); + salesLedger.setTenantId(customer.getTenantId()); + return saveOrUpdates(salesLedger); } - @Override - public int updateSalesLedger(SalesLedger salesLedger) { - return salesLedgerMapper.updateById(salesLedger); + private int saveOrUpdates(SalesLedger salesLedger) { + if (salesLedger.getId() == null) { + return salesLedgerMapper.insert(salesLedger); + } else { + return salesLedgerMapper.updateById(salesLedger); + } } } -- Gitblit v1.9.3