|
@@ -3,6 +3,7 @@ package com.fjhx.sale.service.purchase.impl;
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.fjhx.area.utils.CustomizeAreaUtil;
|
|
@@ -11,7 +12,11 @@ import com.fjhx.common.entity.corporation.po.Corporation;
|
|
|
import com.fjhx.common.service.corporation.CorporationService;
|
|
|
import com.fjhx.flow.service.flow.FlowExampleService;
|
|
|
import com.fjhx.item.service.product.ProductInfoService;
|
|
|
-import com.fjhx.sale.entity.contract.po.ContractProduct;
|
|
|
+import com.fjhx.purchase.entity.invoice.vo.InvoiceDetailsVo;
|
|
|
+import com.fjhx.purchase.entity.pay.vo.PayDetailVo;
|
|
|
+import com.fjhx.purchase.entity.purchase.enums.PurchaseStatusEnum;
|
|
|
+import com.fjhx.purchase.service.invoice.InvoiceDetailsService;
|
|
|
+import com.fjhx.purchase.service.pay.PayDetailService;
|
|
|
import com.fjhx.sale.entity.pack.po.PackDetail;
|
|
|
import com.fjhx.sale.entity.pack.po.PackDetailProduct;
|
|
|
import com.fjhx.sale.entity.pack.vo.PackDetailProductVo;
|
|
@@ -20,18 +25,21 @@ import com.fjhx.sale.entity.purchase.dto.EhsdPurchaseSelectDto;
|
|
|
import com.fjhx.sale.entity.purchase.po.*;
|
|
|
import com.fjhx.sale.entity.purchase.vo.EhsdPurchaseProductVo;
|
|
|
import com.fjhx.sale.entity.purchase.vo.EhsdPurchaseVo;
|
|
|
-import com.fjhx.sale.entity.sale.vo.SaleQuotationVo;
|
|
|
import com.fjhx.sale.mapper.purchase.EhsdPurchaseMapper;
|
|
|
import com.fjhx.sale.service.pack.PackDetailProductService;
|
|
|
import com.fjhx.sale.service.pack.PackDetailService;
|
|
|
import com.fjhx.sale.service.purchase.*;
|
|
|
import com.fjhx.supply.entity.supplier.po.SupplierInfo;
|
|
|
import com.fjhx.supply.service.supplier.SupplierInfoService;
|
|
|
+import com.ruoyi.common.exception.ServiceException;
|
|
|
+import com.ruoyi.common.utils.StringUtils;
|
|
|
import com.ruoyi.common.utils.wrapper.IWrapper;
|
|
|
import com.ruoyi.common.utils.wrapper.SqlField;
|
|
|
+import org.apache.commons.collections4.MapUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
@@ -70,6 +78,10 @@ public class EhsdPurchaseServiceImpl extends ServiceImpl<EhsdPurchaseMapper, Ehs
|
|
|
private ProductInfoService productInfoService;
|
|
|
@Autowired
|
|
|
private EhsdPurchaseProductMountingsService ehsdPurchaseProductMountingsService;
|
|
|
+ @Autowired
|
|
|
+ private InvoiceDetailsService invoiceDetailsService;
|
|
|
+ @Autowired
|
|
|
+ private PayDetailService payDetailService;
|
|
|
|
|
|
/**
|
|
|
* 分页
|
|
@@ -201,4 +213,36 @@ public class EhsdPurchaseServiceImpl extends ServiceImpl<EhsdPurchaseMapper, Ehs
|
|
|
this.removeById(id);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 根据供应商(卖方)查询无发票的采购合同
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<EhsdPurchaseVo> getListBySupplyId(String supplyId) {
|
|
|
+ if (StringUtils.isEmpty(supplyId)) {
|
|
|
+ throw new ServiceException("供应商ID不能为空");
|
|
|
+ }
|
|
|
+ List<EhsdPurchase> list = this.list(Wrappers.<EhsdPurchase>query().lambda().eq(EhsdPurchase::getSellCorporationId, supplyId).eq(EhsdPurchase::getStatus, PurchaseStatusEnum.PASS.getKey()));
|
|
|
+
|
|
|
+ List<EhsdPurchaseVo> ehsdPurchases = BeanUtil.copyToList(list, EhsdPurchaseVo.class);
|
|
|
+ List<Long> ids = list.stream().distinct().map(EhsdPurchase::getId).collect(Collectors.toList());
|
|
|
+ List<InvoiceDetailsVo> invoiceDetailsList = invoiceDetailsService.getSumMoneyByPurchaseIds(ids);
|
|
|
+ Map<Long, BigDecimal> invoiceMap = invoiceDetailsList.stream().collect(Collectors.toMap(InvoiceDetailsVo::getPurchaseId, InvoiceDetailsVo::getSumMoney));
|
|
|
+ List<PayDetailVo> payDetailVoList = payDetailService.getSumMoneyByPurchaseIds(ids);
|
|
|
+ Map<Long, BigDecimal> payMap = payDetailVoList.stream().collect(Collectors.toMap(PayDetailVo::getPurchaseId, PayDetailVo::getSumMoney));
|
|
|
+ for (EhsdPurchaseVo p : ehsdPurchases) {
|
|
|
+ if (MapUtils.isNotEmpty(invoiceMap)) {
|
|
|
+ p.setSumInvoiceMoney(invoiceMap.getOrDefault(p.getId(), BigDecimal.ZERO));
|
|
|
+ } else {
|
|
|
+ p.setSumInvoiceMoney(BigDecimal.ZERO);
|
|
|
+ }
|
|
|
+ if (MapUtils.isNotEmpty(payMap)) {
|
|
|
+ p.setSumPayMoney(payMap.getOrDefault(p.getId(), BigDecimal.ZERO));
|
|
|
+ } else {
|
|
|
+ p.setSumPayMoney(BigDecimal.ZERO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return ehsdPurchases;
|
|
|
+ }
|
|
|
+
|
|
|
}
|