|
@@ -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())) {
|