|
@@ -18,7 +18,9 @@ import com.fjhx.purchase.entity.pay.po.PayDetail;
|
|
|
import com.fjhx.purchase.service.pay.PayDetailService;
|
|
|
import com.fjhx.purchase.service.pay.PayService;
|
|
|
import com.fjhx.sale.entity.purchase.po.EhsdPurchase;
|
|
|
+import com.fjhx.sale.entity.purchase.po.PurchaseBack;
|
|
|
import com.fjhx.sale.service.purchase.EhsdPurchaseService;
|
|
|
+import com.fjhx.sale.service.purchase.PurchaseBackService;
|
|
|
import com.fjhx.supply.entity.supplier.po.SupplierInfo;
|
|
|
import com.fjhx.supply.service.supplier.SupplierInfoService;
|
|
|
import com.ruoyi.common.core.domain.BasePo;
|
|
@@ -28,10 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Objects;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -58,6 +57,8 @@ public class PayFlow extends FlowDelegate {
|
|
|
|
|
|
@Autowired
|
|
|
private SupplierInfoService supplierInfoService;
|
|
|
+ @Autowired
|
|
|
+ private PurchaseBackService purchaseBackService;
|
|
|
|
|
|
@Override
|
|
|
public String getFlowKey() {
|
|
@@ -176,6 +177,13 @@ public class PayFlow extends FlowDelegate {
|
|
|
// 获取合同列表
|
|
|
List<EhsdPurchase> purchaseList = purchaseService.listByIds(purchaseIdList);
|
|
|
|
|
|
+
|
|
|
+ //获取采购退货金额
|
|
|
+ Map<Long, List<PurchaseBack>> purchaseBackMap = purchaseBackService.mapKGroup(PurchaseBack::getPurchaseId, q -> q
|
|
|
+ .in(PurchaseBack::getPurchaseId, purchaseIdList)
|
|
|
+ .in(PurchaseBack::getStatus, FlowStatusEnum1.PASS, FlowStatusEnum1.UPDATE_LOADING)
|
|
|
+ );
|
|
|
+
|
|
|
for (EhsdPurchase purchase : purchaseList) {
|
|
|
|
|
|
Integer payStatus = purchase.getPayStatus();
|
|
@@ -187,11 +195,15 @@ public class PayFlow extends FlowDelegate {
|
|
|
|
|
|
// 获取合同付款金额
|
|
|
BigDecimal payMoney = map.getOrDefault(purchase.getId(), BigDecimal.ZERO);
|
|
|
- // 获取合同金额
|
|
|
- BigDecimal amount = purchase.getAmount();
|
|
|
-
|
|
|
- // 合同付款金额大于等于合同金额,已付款
|
|
|
- if (payMoney.compareTo(amount) >= 0) {
|
|
|
+// // 获取合同金额
|
|
|
+// BigDecimal amount = purchase.getAmount();
|
|
|
+ //获取应付金额
|
|
|
+ List<PurchaseBack> purchaseBackList = purchaseBackMap.getOrDefault(purchase.getId(), new ArrayList<>());
|
|
|
+ BigDecimal backAmount = purchaseBackList.stream().map(PurchaseBack::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ BigDecimal payableAmount = purchase.getAmount().subtract(backAmount);
|
|
|
+
|
|
|
+ // 合同付款金额大于等于应付金额,已付款
|
|
|
+ if (payMoney.compareTo(payableAmount) >= 0) {
|
|
|
purchase.setPayStatus(20);
|
|
|
}
|
|
|
// 否则进行中
|