Эх сурвалжийг харах

添加 支付过滤和提交限制

yzc 2 жил өмнө
parent
commit
d5bf0525c8

+ 6 - 2
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/fundAccount/service/impl/FundAccountIntercourseServiceImpl.java

@@ -2,6 +2,8 @@ package com.fjhx.fundAccount.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.fjhx.company.entity.Company;
+import com.fjhx.company.entity.CompanyBasics;
+import com.fjhx.company.service.ICompanyBasicsService;
 import com.fjhx.company.service.ICompanyService;
 import com.fjhx.fundAccount.FundAccount;
 import com.fjhx.fundAccount.FundAccountDetail;
@@ -22,6 +24,8 @@ public class FundAccountIntercourseServiceImpl implements IFundAccountIntercours
     private IFundAccountService fundAccountService;
     @Autowired
     private ICompanyService companyService;
+    @Autowired
+    private ICompanyBasicsService companyBasicsService;
 
 
     @Override
@@ -60,8 +64,8 @@ public class FundAccountIntercourseServiceImpl implements IFundAccountIntercours
         }
 
         for (Map.Entry<String, Set<String>> entry : companyMap.entrySet()) {
-            System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
-            Company company = companyService.getById(entry.getKey());
+            CompanyBasics company = companyBasicsService.getById(entry.getKey());
+//            Company company = companyBasicsService.getById(entry.getKey());
             Map map0 = new HashMap();
             map0.put("companyName", company.getNameChinese());
 

+ 31 - 0
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/paymentgoods/service/impl/PaymentGoodsFlowServiceImpl.java

@@ -17,6 +17,7 @@
 package com.fjhx.paymentgoods.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.fjhx.activiti.SubmitFlowCondition;
 import com.fjhx.feign.IFlowClient;
@@ -26,8 +27,12 @@ import com.fjhx.message.constant.MessageNoticeConstant;
 import com.fjhx.message.enums.MessageNoticeEnum;
 import com.fjhx.message.service.IMessageNoticeService;
 import com.fjhx.paymentgoods.entity.PaymentGoods;
+import com.fjhx.paymentgoods.entity.PaymentGoodsDetails;
+import com.fjhx.paymentgoods.service.IPaymentGoodsDetailsService;
 import com.fjhx.paymentgoods.service.IPaymentGoodsFlowService;
 import com.fjhx.paymentgoods.service.IPaymentGoodsService;
+import com.fjhx.purchase.entity.PurchaseContract;
+import com.fjhx.purchase.service.IPurchaseContractService;
 import com.fjhx.subscribe.enums.SubscribeStatusEnum;
 import com.fjhx.utils.ExampleAbstract;
 import com.fjhx.utils.ExampleResult;
@@ -40,6 +45,7 @@ import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.id.IdUtils;
+import org.springblade.system.attachment.entity.Attachment;
 import org.springblade.system.constant.RoleConstant;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
@@ -47,10 +53,12 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -74,6 +82,11 @@ public class PaymentGoodsFlowServiceImpl implements IPaymentGoodsFlowService {
     @Autowired
     private IFlowClient iFlowClient;
 
+    @Autowired
+    private IPurchaseContractService iPurchaseContractService;
+    @Autowired
+    private IPaymentGoodsDetailsService paymentGoodsDetailsService;
+
     /**
      * 初始化流程
      *
@@ -160,6 +173,24 @@ public class PaymentGoodsFlowServiceImpl implements IPaymentGoodsFlowService {
     @Transactional(rollbackFor = {Exception.class})
     @Override
     public void start(PaymentGoods entity) {
+        //提交时候检查 付款金额+已付款金额是否大于合同金额 大于不让提交
+        List<PaymentGoodsDetails> details = entity.getDetails();
+        for (PaymentGoodsDetails paymentGoodsDetails : details) {
+            PurchaseContract purchaseContract = iPurchaseContractService.lambdaQuery().eq(PurchaseContract::getId, paymentGoodsDetails.getPurchaseContractId()).one();
+            BigDecimal money = paymentGoodsDetails.getMoney();//付款金额
+            BigDecimal purchasePrice = purchaseContract.getPurchasePrice();//合同金额
+
+            QueryWrapper wrapper = new QueryWrapper();
+            wrapper.select("sum(money) as money");
+            wrapper.eq("purchase_contract_id", paymentGoodsDetails.getPurchaseContractId());
+            PaymentGoodsDetails paymentGoodsDetails0 = paymentGoodsDetailsService.getOne(wrapper);
+            BigDecimal payMoney = paymentGoodsDetails0.getMoney();//已付款金额
+
+            if (payMoney.add(money).compareTo(purchasePrice) > 0) {
+                throw new ServiceException("总付款金额大于合同金额");
+            }
+        }
+
         //初始化业务数据ID
         String uuid = IdUtils.fastSimpleUUID();
         if (StringUtils.isNotBlank(entity.getId())) {

+ 9 - 7
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/paymentgoods/service/impl/PaymentGoodsServiceImpl.java

@@ -65,13 +65,7 @@ import org.springframework.transaction.annotation.Transactional;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
@@ -255,6 +249,14 @@ public class PaymentGoodsServiceImpl extends BasicsServiceImpl<PaymentGoodsMappe
                     contract.setPayMoney(payMoney);
                 }
             }
+            //过滤掉已支付金额>=合同金额的关联合同
+            Iterator<PurchaseContract> iterator = list.iterator();
+            while (iterator.hasNext()){
+                PurchaseContract purchaseContract = iterator.next();
+                if(purchaseContract.getPurchasePrice().compareTo(purchaseContract.getPayMoney())>=0){
+                    iterator.remove();
+                }
+            }
         }
         return list;
     }