Browse Source

收货 取消收货增加防重校验

ioioio 3 years ago
parent
commit
7099bbd39e

+ 41 - 17
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryServiceImpl.java

@@ -289,6 +289,19 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 	@GlobalTransactional
 	public void comfire(Delivery delivery)
 	{
+        //防重校验
+		Long deliveryId = delivery.getId();
+		Delivery select = baseMapper.selectById(deliveryId);
+		if(select==null)
+		{
+			throw new SecurityException("未查到相关数据,操作失败");
+		}
+		if(select.getDeliveryStatus()==null||!select.getDeliveryStatus().equals("已收货"))
+		{
+			throw new SecurityException("此单据已收货或者不存在,禁止重复操作");
+		}
+
+
 		    //保存收货单主表 和 收货单明细
 	       	this.submitDelivery(delivery);
 	       	//验证收货单库存与传入库存是否一致,如果一直则修改库存
@@ -332,22 +345,27 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 				// 比较2个库存值是否相等
 				//BigDecimal surplusRouteQuantity = stockGoodsVOR.getData().getSurplusRouteQuantity();
 
-				//新增库存单
-				if(stock==null)
-				{
-					StockGoods stockGoods = iDeliveryItemsService.saveStock(delivery.getTradeType(), delivery.getCorpId(), delivery.getStorageId(), e);
-					//更新收货单明细库存
-					e.setInventoryNumber(stockGoods.getSurplusRouteQuantity());
-					e.setInWeight(stockGoods.getInWeight());
-				}
-				//修改库存单
-				else if(stock!=null)
+				//达沃特新需求-禅道860中体现-国内-采购确认-不增加库存
+				if(!delivery.getTradeType().equals("GN"))
 				{
-					StockGoods receiving = iDeliveryItemsService.receiving(delivery.getTradeType(), stock.getId(), e);
-					//更新收货单明细库存
-					e.setInventoryNumber(receiving.getSurplusRouteQuantity());
-					e.setInWeight(receiving.getInWeight());
+					//新增库存单
+					if(stock==null)
+					{
+						StockGoods stockGoods = iDeliveryItemsService.saveStock(delivery.getTradeType(), delivery.getCorpId(), delivery.getStorageId(), e);
+						//更新收货单明细库存
+						e.setInventoryNumber(stockGoods.getSurplusRouteQuantity());
+						e.setInWeight(stockGoods.getInWeight());
+					}
+					//修改库存单
+					else if(stock!=null)
+					{
+						StockGoods receiving = iDeliveryItemsService.receiving(delivery.getTradeType(), stock.getId(), e);
+						//更新收货单明细库存
+						e.setInventoryNumber(receiving.getSurplusRouteQuantity());
+						e.setInWeight(receiving.getInWeight());
+					}
 				}
+
                 //更新item已发数量
 				R r = iOrderItemsClient.updateActualQuantity(e.getSrcId(), inventoryNumber, 1);
 				if(!r.isSuccess())
@@ -379,10 +397,16 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 	@GlobalTransactional
 	public void cancel(Delivery delivery)
 	{
-		 //判断当前收货单状态,是否可以撤销
-         if(delivery.getDeliveryStatus()==null||!delivery.getDeliveryStatus().equals("已收货"))
+		//防重校验
+		Long deliveryId = delivery.getId();
+		Delivery select = baseMapper.selectById(deliveryId);
+		if(select==null)
+		{
+			throw new SecurityException("未查到相关数据,操作失败");
+		}
+		if(select.getDeliveryStatus()==null||!select.getDeliveryStatus().equals("已收货"))
          {
-                throw new SecurityException("非已发货状态,禁止撤回");
+                throw new SecurityException("此单据已撤回或者不存在,禁止重复操作");
 		 }
 
 		 List<DeliveryItems> deliveryItemsList = delivery.getDeliveryItemsList();