From 759dc1c00fcf4889a4e8c6a011b7f352051b50b2 Mon Sep 17 00:00:00 2001
From: caoyizhong <1270296080@qq.com>
Date: Wed, 2 Aug 2023 18:02:49 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=87=AA=E6=8F=90=E7=BC=96?=
 =?UTF-8?q?=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../service/IDistributionAsyncService.java    |  8 ++++++
 .../impl/DistributionAsyncServiceImpl.java    | 27 ++++++++++++++++---
 .../DistrilbutionBillLadingServiceImpl.java   | 16 +++++++++++
 .../impl/PanFactoryDataServiceImpl.java       |  8 +++++-
 .../WarehouseWaybillController.java           |  2 +-
 .../impl/WarehouseWaybillServiceImpl.java     |  3 ++-
 6 files changed, 58 insertions(+), 6 deletions(-)

diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionAsyncService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionAsyncService.java
index 572dbb768..0f4d6c584 100644
--- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionAsyncService.java
+++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionAsyncService.java
@@ -41,4 +41,12 @@ public interface IDistributionAsyncService {
 	Boolean getInventoryOrderSelfPickup(Long id);
 
 	Boolean getBillStock(Long id);
+
+	/**
+	 * 修改库存品数量
+	 * @param id
+	 * @param num
+	 * @return
+	 */
+	Boolean getInventoryNumUpdate(Long id,Integer num,Integer type);
 }
diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java
index 1b6c20352..e64db9bd8 100644
--- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java
+++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java
@@ -7,20 +7,18 @@ import com.logpm.distribution.dto.app.DistrilbutionloadingscanDTO;
 import com.logpm.distribution.entity.*;
 import com.logpm.distribution.mapper.DistributionLoadscanMapper;
 import com.logpm.distribution.mapper.DistributionParcelListMapper;
+import com.logpm.distribution.mapper.DistributionStockListMapper;
 import com.logpm.distribution.mapper.DistributionStockMapper;
 import com.logpm.distribution.service.*;
-import com.logpm.distribution.vo.DistributionStockupVO;
 import com.logpm.distribution.vo.DistrilbutionBillStockVO;
 import lombok.AllArgsConstructor;
 import lombok.extern.log4j.Log4j2;
-import org.apache.poi.ss.formula.functions.T;
 import org.springblade.common.serviceConstant.ServiceConstant;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -33,6 +31,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
 	private final DistributionLoadscanMapper distributionLoadscanMapper;
 	private final IDistributionStockArticleService distributionStockArticleService;
 	private final DistributionStockMapper distributionStockService;
+	private final DistributionStockListMapper distributionStockListMapper;
 	private final IDistrilbutionBillStockService distrilbutionBillStockService;
 	private final IDistributionDeliveryDetailsService distributionDeliveryDetailsService;
 
@@ -125,4 +124,26 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
 	    return 	distrilbutionBillStockService.updateById(distrilbutionBillStock);
 	}
 
+	@Async
+	@Override
+	public Boolean getInventoryNumUpdate(Long id, Integer num, Integer type) {
+		//查询
+		DistributionStockListEntity distributionStockListEntity1 = distributionStockListMapper.selectById(id);
+		DistributionStockListEntity distributionStockListEntity = new DistributionStockListEntity();
+		switch (type){
+			case 1:
+				//加
+				distributionStockListEntity.setQuantityOccupied(distributionStockListEntity1.getQuantityOccupied() + num);
+				break;
+			case 2:
+				//减
+				distributionStockListEntity.setQuantityOccupied(distributionStockListEntity1.getQuantityOccupied() - num);
+				break;
+		}
+		//修改库存品占用数量
+		distributionStockListEntity.setId(id);
+		distributionStockListMapper.updateById(distributionStockListEntity);
+		return true;
+	}
+
 }
diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java
index a916e73e2..cd47aa5e2 100644
--- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java
+++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java
@@ -162,6 +162,18 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
 									deliveryDetails.setQuantity(next.getInventoryQuantity());
 									deliveryDetails.setId(i.getId());
 									distributionDeliveryDetailsService.updateById(deliveryDetails);
+									Integer inventoryQuantity = next.getInventoryQuantity(); //修改数量
+									Integer quantity = i.getQuantity();//原来的数量
+									Integer num = 0;
+									if(inventoryQuantity > quantity){
+										num = inventoryQuantity - quantity; //多
+										//修改库存占用数量
+										distributionAsyncService.getInventoryNumUpdate(i.getStockListId(),num,1);
+									}else if(inventoryQuantity < quantity){
+										num = quantity - inventoryQuantity; //少
+										//修改库存占用数量
+										distributionAsyncService.getInventoryNumUpdate(i.getStockListId(),num,2);
+									}
 									iterator.remove();
 								}
 
@@ -169,6 +181,8 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
 						} else {
 							//没有 删除
 							ids.add(i.getId());
+							//取消库存占用数量
+							distributionAsyncService.getInventoryNumUpdate(i.getStockListId(),i.getQuantity(),2);
 						}
 					});
 					//删除没有的库存品
@@ -217,6 +231,8 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
 				details.setQuantity(i.getInventoryQuantity());
 				details.setConditions("1");
 				detailsEntities.add(details);
+				//修改库存数量
+				distributionAsyncService.getInventoryNumUpdate(i.getId(),i.getInventoryQuantity(),1);
 			});
 			distributionDeliveryDetailsService.saveBatch(detailsEntities);
 		}
diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/pan/service/impl/PanFactoryDataServiceImpl.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/pan/service/impl/PanFactoryDataServiceImpl.java
index 7ca4139b1..9b50645f3 100644
--- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/pan/service/impl/PanFactoryDataServiceImpl.java
+++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/pan/service/impl/PanFactoryDataServiceImpl.java
@@ -45,6 +45,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springblade.common.constant.TenantNum;
 import org.springblade.common.exception.CustomerException;
+import org.springblade.common.serviceConstant.ServiceConstant;
 import org.springblade.common.utils.CommonUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.StringUtil;
@@ -407,7 +408,7 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService {
 				distributionStockArticleEntity.setCustomerName(customerName);
 
 				distributionStockArticleEntity.setGenre(1);
-				distributionStockArticleEntity.setState(10+"");
+				distributionStockArticleEntity.setOrderStatus(ServiceConstant.ORDER_STATE_ONE);
 				distributionStockArticleEntity.setAdvanceId(advanceId);
 				//--------------2023-07-06 新增字段处理
 				//查询包条码对应的运单信息
@@ -430,6 +431,11 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService {
 				buildDealerAndStore(distributionStockArticleEntity, advanceEntity);
 
 				distributionStockArticleEntity.setCreateUser(1123598821738675201L);
+				distributionStockArticleEntity.setSortingQuantity(0); //分拣件数
+				distributionStockArticleEntity.setDeliveryQuantity(0); //配送件数
+				distributionStockArticleEntity.setTransferQuantity(0); //中转件数
+				distributionStockArticleEntity.setSigninQuantity(0); //签收件数
+				distributionStockArticleEntity.setFreezeStatus(0); //冻结状态0未冻结 1已冻结
 
 				id = distributionStockArticleClient.addData(distributionStockArticleEntity);
 				if(id == 0){
diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/WarehouseWaybillController.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/WarehouseWaybillController.java
index 213cb9b55..2ccb1fd05 100644
--- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/WarehouseWaybillController.java
+++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/WarehouseWaybillController.java
@@ -168,7 +168,7 @@ public class WarehouseWaybillController extends BladeController {
 			log.warn("################splitOrder: 当前在库订单已转库存品,不能拆单 waybillNo={}",waybillNo);
 			return R.fail(405,"当前在库订单已转库存品");
 		}
-		Integer state = Integer.parseInt(distributionStockArticleEntity.getState());//订单状态
+		Integer state = Integer.parseInt(distributionStockArticleEntity.getOrderStatus());//订单状态
 		Long orderId = distributionStockArticleEntity.getId();//订单id
 		if(!state.equals(1)){
 			log.warn("################splitOrder: 当前在库订单已进入配送流程,不能拆单 waybillNo={}",waybillNo);
diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseWaybillServiceImpl.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseWaybillServiceImpl.java
index aafa0a361..e4657fc0e 100644
--- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseWaybillServiceImpl.java
+++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseWaybillServiceImpl.java
@@ -30,6 +30,7 @@ import lombok.AllArgsConstructor;
 import lombok.extern.log4j.Log4j2;
 import org.springblade.common.constant.TenantNum;
 import org.springblade.common.exception.CustomerException;
+import org.springblade.common.serviceConstant.ServiceConstant;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.tool.utils.StringUtil;
 import org.springframework.stereotype.Service;
@@ -294,7 +295,7 @@ public class WarehouseWaybillServiceImpl extends BaseServiceImpl<WarehouseWaybil
 			distributionStockArticleEntity.setCustomerTelephone(warehouseWaybill.getConsigneeMobile());
 			distributionStockArticleEntity.setCustomerAddress(warehouseWaybill.getConsigneeAddress());
 			distributionStockArticleEntity.setGenre(1);
-			distributionStockArticleEntity.setState(1+"");
+			distributionStockArticleEntity.setOrderStatus(ServiceConstant.ORDER_STATE_ONE);
 			distributionStockArticleEntity.setConsigneeUnit(customerName);//收货单位(经销商)
 			distributionStockArticleEntity.setConsigneePerson(warehouseWaybill.getConsigneeName());//收货人
 			distributionStockArticleEntity.setReserve1("zero");