Prechádzať zdrojové kódy

确认发货加金额判断暂时不启用

lazhaoqian 4 rokov pred
rodič
commit
b6e43aace3

+ 6 - 0
blade-service/blade-deliver-goods/pom.xml

@@ -66,6 +66,12 @@
             <version>2.8.2.RELEASE</version>
             <scope>compile</scope>
         </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>trade-finance-api</artifactId>
+            <version>2.8.2.RELEASE</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 
 </project>

+ 17 - 11
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryItemsServiceImpl.java

@@ -36,6 +36,7 @@ import org.springblade.deliver.goods.vo.DeliveryItemsVO;
 import org.springblade.deliver.goods.mapper.DeliveryItemsMapper;
 import org.springblade.deliver.goods.service.IDeliveryItemsService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.finance.feign.IFinanceClient;
 import org.springblade.purchase.sales.entity.Order;
 import org.springblade.purchase.sales.entity.OrderItems;
 import org.springblade.purchase.sales.feign.IOrderDescClient;
@@ -67,6 +68,7 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
 	private IStockGoodsClient stockGoodsClient;//查询库存账对外访问接口
 	private IOrderItemsClient orderItemsClient;//订单对外访问接口
 	private IOrderDescClient orderDescClient;//订单
+	private final IFinanceClient financeClient;
 	@Override
 	public IPage<DeliveryItemsVO> selectDeliveryItemsPage(IPage<DeliveryItemsVO> page, DeliveryItemsVO deliveryItems) {
 		return page.setRecords(baseMapper.selectDeliveryItemsPage(page, deliveryItems));
@@ -131,7 +133,10 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
 	 */
 	public List<DeliveryItems> affirmDeliveryItemsList(Long pId,Delivery delivery,List<DeliveryItems> deliveryItemsList){
 		//判断要发货物的金额和已收金额的大小
-
+		/*R amount = this.deliveryAmount(deliveryItemsList, delivery.getTradeType());
+		if (!amount.isSuccess()){
+			throw  new RuntimeException(amount.getMsg());
+		}*/
 		for (DeliveryItems deliveryItems : deliveryItemsList) {
 			if (deliveryItems.getItemId() == null){
 				throw new RuntimeException("发货明细中商品id不能为空");
@@ -473,22 +478,23 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
 				BigDecimal newDelivery = new BigDecimal(BigInteger.ZERO);//本次发货金额
 				BigDecimal oldDelivery = new BigDecimal(BigInteger.ZERO);//本次发货金额
 				BigDecimal gathering = new BigDecimal(BigInteger.ZERO);//本次发货金额
+				R financeAcc = financeClient.getFinanceAcc(contractNumber);
+				if (financeAcc.isSuccess() && financeAcc.getData() != null){
+					gathering = (BigDecimal) financeAcc.getData();
+				}else {
+					throw new RuntimeException("未找到收款记录");
+				}
+				//本次金额
+				List<DeliveryItems> itemsList = deliveryItemsList.stream().filter(e -> e.getContractNumber().equals(contractNumber)).collect(Collectors.toList());
+				//已收金额
 				LambdaQueryWrapper<DeliveryItems> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 				lambdaQueryWrapper.eq(DeliveryItems::getContractNumber,contractNumber);
 				lambdaQueryWrapper.eq(DeliveryItems::getTenantId,SecureUtil.getTenantId());
 				lambdaQueryWrapper.eq(DeliveryItems::getIsDeleted,0);
 				lambdaQueryWrapper.eq(DeliveryItems::getDeliveryStatus, DeliveryStatusEnum.DELIVER.getType());
 				List<DeliveryItems> deliveryItems = baseMapper.selectList(lambdaQueryWrapper);
-				if (tradeType.equals(OrderTypeEnum.DOMESTIC.getType())){
-					newDelivery = deliveryItemsList.stream().filter(student -> Objects.equals(student.getContractNumber(),contractNumber)).map(DeliveryItems::getDeliveryAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
-					oldDelivery = deliveryItems.stream().map(DeliveryItems::getDeliveryAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
-				}else if (tradeType.equals(OrderTypeEnum.IMPORT.getType())){
-					newDelivery = deliveryItemsList.stream().filter(student -> Objects.equals(student.getContractNumber(),contractNumber)).map(DeliveryItems::getContractAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
-					oldDelivery = deliveryItems.stream().map(DeliveryItems::getContractAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
-				}else {
-					newDelivery = deliveryItemsList.stream().filter(student -> Objects.equals(student.getContractNumber(),contractNumber)).map(DeliveryItems::getContractAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
-					oldDelivery = deliveryItems.stream().map(DeliveryItems::getContractAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
-				}
+				newDelivery = itemsList.stream().reduce(BigDecimal.ZERO,(x,y) ->{ return x.add(y.getContractAmount().multiply(y.getExRate())); },BigDecimal::add);//本次发货金额
+				oldDelivery = deliveryItems.stream().reduce(BigDecimal.ZERO,(x,y) ->{ return x.add(y.getContractAmount().multiply(y.getExRate())); },BigDecimal::add);//历史发货金额
 				if (gathering.compareTo((newDelivery.add(oldDelivery))) < 0){
 					throw new RuntimeException("订单"+contractNumber+"可发货金额为:"+gathering.subtract(newDelivery.add(oldDelivery)));
 				}

+ 4 - 1
blade-service/trade-finance/src/main/java/org/springblade/finance/controller/SettlementController.java

@@ -53,6 +53,7 @@ import org.springblade.core.boot.ctrl.BladeController;
 import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Stream;
 
 /**
  * 结算表 控制器
@@ -329,7 +330,9 @@ public class SettlementController extends BladeController {
 			.eq(Acc::getTenantId,AuthUtil.getTenantId())
 			.eq(Acc::getIsDeleted,0);
 		List<Acc> accList = accService.list(accLambdaQueryWrapper);
-		return R.data(accList.stream().filter(e->e.getSettlementAmount()!=null).map(Acc::getSettlementAmount).reduce(BigDecimal.ZERO,BigDecimal::add));
+		return R.data(accList.stream().filter(e->e.getSettlementAmount()!=null).reduce(BigDecimal.ZERO,(x,y) ->{
+			return x.add(y.getSettlementAmount().multiply(y.getExchangeRate()));
+		},BigDecimal::add));
 	}