Browse Source

撤回收货

1021934019@qq.com 4 years ago
parent
commit
471ba72c85

+ 2 - 2
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/controller/DeliveryController.java

@@ -194,7 +194,7 @@ public class DeliveryController extends BladeController {
 	public R comfire(@RequestBody Delivery delivery)
 	{
 		deliveryService.comfire(delivery);
-		return R.success("操作成功");
+		return R.data(delivery);
 	}
 
 
@@ -204,7 +204,7 @@ public class DeliveryController extends BladeController {
 	public R cancel(@RequestBody Delivery delivery)
 	{
 		deliveryService.cancel(delivery);
-		return R.success("操作成功");
+		return R.data(delivery);
 	}
 
 }

+ 2 - 2
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/controller/ExportDeliveryController.java

@@ -189,7 +189,7 @@ public class ExportDeliveryController extends BladeController {
 	public R comfire(@RequestBody Delivery delivery)
 	{
 		deliveryService.comfire(delivery);
-		return R.success("操作成功");
+		return R.data(delivery);
 	}
 
 	@PostMapping("cancel")
@@ -198,7 +198,7 @@ public class ExportDeliveryController extends BladeController {
 	public R cancel(@RequestBody Delivery delivery)
 	{
 		deliveryService.cancel(delivery);
-		return R.success("操作成功");
+		return R.data(delivery);
 	}
 
 }

+ 2 - 2
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/controller/ImportDeliveryController.java

@@ -191,7 +191,7 @@ public class ImportDeliveryController extends BladeController {
 	public R comfire(@RequestBody Delivery delivery)
 	{
 		deliveryService.comfire(delivery);
-		return R.success("操作成功");
+		return R.data(delivery);
 	}
 	@PostMapping("cancel")
 	@ApiOperationSupport(order = 3)
@@ -199,7 +199,7 @@ public class ImportDeliveryController extends BladeController {
 	public R cancel(@RequestBody Delivery delivery)
 	{
 		deliveryService.cancel(delivery);
-		return R.success("操作成功");
+		return R.data(delivery);
 	}
 	/**
 	 * 确认发货通知单

+ 52 - 0
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryItemsServiceImpl.java

@@ -276,6 +276,58 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
 			throw new RuntimeException("更新库存总账失败");
 		}
 	}
+
+	/**
+	 * 撤销收货
+	 * @param tradeType 单据类型 进口、出口、国内
+	 * @param stockId 库存账id
+	 * @param deliveryItems 货物明细信息
+	 */
+	 public void cancelStock(String tradeType,Long stockId,DeliveryItems deliveryItems)
+	 {
+		 //查询库存账
+		 R<StockGoods> stockById = stockGoodsClient.getStockById(stockId);
+		 if (!stockById.isSuccess()){
+			 throw  new RuntimeException("查询库存账出错");
+		 }
+		 if (stockById.getData() == null){
+			 throw  new RuntimeException("库存账不存在");
+		 }
+		 BigDecimal actualQuantity = deliveryItems.getActualQuantity();
+		 BigDecimal invoiceWeight = deliveryItems.getInvoiceWeight();
+		 BigDecimal billWeight = deliveryItems.getBillWeight();
+		 StockGoods stockGoods = stockById.getData();
+		 if(actualQuantity.compareTo(stockGoods.getInQuantity())==1)
+		 {
+                throw new SecurityException("操作数量大于入库数量,禁止操作");
+		 }
+		 if(actualQuantity.compareTo(stockGoods.getBalanceQuantity())==1)
+		 {
+			 throw new SecurityException("操作数量大于结余数量,禁止撤回");
+		 }
+		 if(actualQuantity.compareTo(stockGoods.getInQuantity())==1)
+		 {
+			 throw new SecurityException("操作数量大于可用数量,禁止操作");
+		 }
+		 stockGoods.setInQuantity(stockGoods.getInQuantity().subtract(actualQuantity));//入库数量 减
+		 stockGoods.setBalanceQuantity(stockGoods.getBalanceQuantity().subtract(actualQuantity));//结余数量 减
+		 stockGoods.setSurplusRouteQuantity(stockGoods.getSurplusRouteQuantity().subtract(actualQuantity));//可用数量 减
+		 if (tradeType.equals(OrderTypeEnum.IMPORT.getType())){
+			 stockGoods.setInWeight(stockGoods.getInWeight().subtract(invoiceWeight));//入库发票重量 减
+			 stockGoods.setBalanceWeight(stockGoods.getBalanceWeight().subtract(invoiceWeight));//结余发票重量 减
+			 stockGoods.setInVolumn(stockGoods.getInVolumn().subtract(billWeight));//入库码单重量 减
+			 stockGoods.setBalanceVolumn(stockGoods.getBalanceVolumn().subtract(billWeight));//结余码单重量 减
+		 }
+		 stockGoods.setUpdateTime(new Date());
+		 stockGoods.setUpdateUser(SecureUtil.getUserId());
+		 R updateStock = stockGoodsClient.updateStock(stockGoods);
+		 if (!updateStock.isSuccess()){
+			 throw new RuntimeException("更新库存总账失败");
+		 }
+	 }
+
+
+
 	/**
 	 * 收货单新增库存账
 	 * @param tradeType 单据类型 进口、出口、国内

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

@@ -295,7 +295,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 	public void cancel(Delivery delivery)
 	{
 		 //判断当前收货单状态,是否可以撤销
-         if(delivery.getDeliveryStatus()==null||!delivery.getDeliveryStatus().equals("已货"))
+         if(delivery.getDeliveryStatus()==null||!delivery.getDeliveryStatus().equals("已货"))
          {
                 throw new SecurityException("非已发货状态,禁止撤回");
 		 }
@@ -337,7 +337,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 			 }
 			 StockGoods stock=stockGoodsClient.getOneStock(model);
 			 //更新stock库存数量
-			 iDeliveryItemsService.revocationDeliverGoods(delivery.getTradeType(),stock.getId(),e);
+			 iDeliveryItemsService.cancelStock(delivery.getTradeType(),stock.getId(),e);
 		 });
 		//更新收货单状态为:录入
 		delivery.setDeliveryStatus("录入");

+ 1 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/PurchaseSalesApplication.java

@@ -33,7 +33,7 @@ import org.springframework.cloud.client.SpringCloudApplication;
  */
 @EnableBladeFeign
 @SpringCloudApplication
-/*@SeataCloudApplication*/
+@SeataCloudApplication
 public class PurchaseSalesApplication {
 
 	public static void main(String[] args) {

+ 6 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/feign/OrderItemsClient.java

@@ -36,6 +36,12 @@ public class OrderItemsClient implements IOrderItemsClient{
 		OrderItems items = new OrderItems();
 		items.setId(orderItemsId);
 		if (deliveryType == DeliveryEnum.DELIVER.getType()){ //发货
+			//判断 已发货数量 或者 已收货数量 ,不能大于(订货数量-已收数量)
+			if(actualQuantity.compareTo(orderItems.getPurchaseQuantity().subtract(orderItems.getActualQuantity()))==1)
+			{
+				throw  new RuntimeException("操作数量禁止大于订货数量");
+			}
+
 			items.setActualQuantity(orderItems.getActualQuantity().add(actualQuantity));
 		}else if (deliveryType == DeliveryEnum.REPEAL.getType()){ //撤销发货
 			if (orderItems.getActualQuantity().compareTo(actualQuantity) <0){

+ 0 - 1
blade-service/blade-stock/src/main/java/org/springblade/stock/feign/StockGoodsClient.java

@@ -110,7 +110,6 @@ public class StockGoodsClient implements IStockGoodsClient{
 	public StockGoods getOneStock(StockGoods stockGoods)
 	{
 		stockGoods.setTenantId(AuthUtil.getTenantId());
-		stockGoods.setCreateTime(new Date());
 		QueryWrapper<StockGoods> queryWrapper = Condition.getQueryWrapper(stockGoods);
 
 		return stockGoodsService.getOne(queryWrapper);