Pārlūkot izejas kodu

Merge remote-tracking branch 'origin/master'

caozj 1 gadu atpakaļ
vecāks
revīzija
fb2d45ebdb

+ 12 - 4
hx-sale/src/main/java/com/fjhx/sale/controller/purchase/EhsdPurchaseController.java

@@ -1,16 +1,16 @@
 package com.fjhx.sale.controller.purchase;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.purchase.po.Purchase;
 import com.fjhx.sale.entity.purchase.dto.EhsdPurchaseDto;
 import com.fjhx.sale.entity.purchase.dto.EhsdPurchaseSelectDto;
 import com.fjhx.sale.entity.purchase.vo.EhsdPurchaseVo;
 import com.fjhx.sale.service.purchase.EhsdPurchaseService;
 import com.ruoyi.common.core.domain.BaseSelectDto;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
 
 
 /**
@@ -68,4 +68,12 @@ public class EhsdPurchaseController {
         ehsdPurchaseService.delete(dto.getId());
     }
 
+    /**
+     * 根据供应商查询采购合同
+     */
+    @GetMapping("/getListBySupplyId")
+    public List<EhsdPurchaseVo> getListBySupplyId(@RequestParam("supplyId") String supplyId) {
+        return ehsdPurchaseService.getListBySupplyId(supplyId);
+    }
+
 }

+ 12 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/purchase/vo/EhsdPurchaseVo.java

@@ -1,5 +1,6 @@
 package com.fjhx.sale.entity.purchase.vo;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fjhx.common.entity.corporation.po.Corporation;
 import com.fjhx.sale.entity.pack.po.PackDetailProduct;
 import com.fjhx.sale.entity.pack.vo.PackDetailProductVo;
@@ -8,6 +9,7 @@ import com.fjhx.sale.entity.purchase.po.EhsdPurchaseProduct;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -81,4 +83,14 @@ public class EhsdPurchaseVo extends EhsdPurchase {
      * 流程Id
      */
     private Long flowId;
+
+    /**
+     * 发票总金额
+     */
+    private BigDecimal sumInvoiceMoney;
+
+    /**
+     * 付款总金额
+     */
+    private BigDecimal sumPayMoney;
 }

+ 6 - 0
hx-sale/src/main/java/com/fjhx/sale/service/purchase/EhsdPurchaseService.java

@@ -7,6 +7,8 @@ import com.fjhx.sale.entity.purchase.po.EhsdPurchase;
 import com.fjhx.sale.entity.purchase.vo.EhsdPurchaseVo;
 import com.ruoyi.common.core.service.BaseService;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -43,4 +45,8 @@ public interface EhsdPurchaseService extends BaseService<EhsdPurchase> {
      */
     void delete(Long id);
 
+    /**
+     * 根据供应商查询无发票的采购合同
+     */
+    List<EhsdPurchaseVo> getListBySupplyId(String supplyId);
 }

+ 46 - 2
hx-sale/src/main/java/com/fjhx/sale/service/purchase/impl/EhsdPurchaseServiceImpl.java

@@ -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;
+    }
+
 }