| 
															
																@@ -7,14 +7,17 @@ import com.yc.ship.module.product.api.dto.ReduceStockReqDTO; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.yc.ship.module.product.controller.admin.voyagestockdistributeNew.vo.VoyageStockDistributeNewDetailReqVO; 
															 | 
															
															 | 
															
																 import com.yc.ship.module.product.controller.admin.voyagestockdistributeNew.vo.VoyageStockDistributeNewDetailReqVO; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.yc.ship.module.product.controller.admin.voyagestockdistributeNew.vo.VoyageStockDistributeNewRespVO; 
															 | 
															
															 | 
															
																 import com.yc.ship.module.product.controller.admin.voyagestockdistributeNew.vo.VoyageStockDistributeNewRespVO; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.yc.ship.module.product.dal.dataobject.voyagestock.VoyageStockDO; 
															 | 
															
															 | 
															
																 import com.yc.ship.module.product.dal.dataobject.voyagestock.VoyageStockDO; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+import com.yc.ship.module.product.dal.dataobject.voyagestock.VoyageStockLogDO; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.yc.ship.module.product.dal.dataobject.voyagestock.VoyageStockRoomUsedDO; 
															 | 
															
															 | 
															
																 import com.yc.ship.module.product.dal.dataobject.voyagestock.VoyageStockRoomUsedDO; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.yc.ship.module.product.dal.dataobject.voyagestockdetail.VoyageStockDetailDO; 
															 | 
															
															 | 
															
																 import com.yc.ship.module.product.dal.dataobject.voyagestockdetail.VoyageStockDetailDO; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.yc.ship.module.product.dal.dataobject.voyagestockdistribute.VoyageStockDistributeNewDO; 
															 | 
															
															 | 
															
																 import com.yc.ship.module.product.dal.dataobject.voyagestockdistribute.VoyageStockDistributeNewDO; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+import com.yc.ship.module.product.dal.mysql.voyagestock.VoyageStockLogMapper; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.yc.ship.module.product.dal.mysql.voyagestock.VoyageStockMapper; 
															 | 
															
															 | 
															
																 import com.yc.ship.module.product.dal.mysql.voyagestock.VoyageStockMapper; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.yc.ship.module.product.dal.mysql.voyagestock.VoyageStockRoomUsedMapper; 
															 | 
															
															 | 
															
																 import com.yc.ship.module.product.dal.mysql.voyagestock.VoyageStockRoomUsedMapper; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.yc.ship.module.product.dal.mysql.voyagestockdetail.VoyageStockDetailMapper; 
															 | 
															
															 | 
															
																 import com.yc.ship.module.product.dal.mysql.voyagestockdetail.VoyageStockDetailMapper; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.yc.ship.module.product.dal.mysql.voyagestockdistribute.VoyageStockDistributeNewMapper; 
															 | 
															
															 | 
															
																 import com.yc.ship.module.product.dal.mysql.voyagestockdistribute.VoyageStockDistributeNewMapper; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.yc.ship.module.product.enums.DistributorOrStoreEnum; 
															 | 
															
															 | 
															
																 import com.yc.ship.module.product.enums.DistributorOrStoreEnum; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+import com.yc.ship.module.product.enums.VoyageStockLogTypeEnum; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.yc.ship.module.product.framework.lock.ProductRedisKeyConstants; 
															 | 
															
															 | 
															
																 import com.yc.ship.module.product.framework.lock.ProductRedisKeyConstants; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.yc.ship.module.product.service.voyagestockdistribute.VoyageStockDistributeNewService; 
															 | 
															
															 | 
															
																 import com.yc.ship.module.product.service.voyagestockdistribute.VoyageStockDistributeNewService; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 import com.yc.ship.module.resource.api.room.RoomApi; 
															 | 
															
															 | 
															
																 import com.yc.ship.module.resource.api.room.RoomApi; 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -60,6 +63,9 @@ public class VoyageApiImpl implements VoyageApi{ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     @Resource 
															 | 
															
															 | 
															
																     @Resource 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     private VoyageStockRoomUsedMapper voyageStockRoomUsedMapper; 
															 | 
															
															 | 
															
																     private VoyageStockRoomUsedMapper voyageStockRoomUsedMapper; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    @Resource 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    private VoyageStockLogMapper voyageStockLogMapper; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     @Transactional(rollbackFor = Exception.class) 
															 | 
															
															 | 
															
																     @Transactional(rollbackFor = Exception.class) 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     @Override 
															 | 
															
															 | 
															
																     @Override 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     public void preReduceStock(ReduceStockReqDTO reqDTO) { 
															 | 
															
															 | 
															
																     public void preReduceStock(ReduceStockReqDTO reqDTO) { 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -84,11 +90,57 @@ public class VoyageApiImpl implements VoyageApi{ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         } 
															 | 
															
															 | 
															
																         } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     } 
															 | 
															
															 | 
															
																     } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    @Override 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    @Transactional(rollbackFor = Exception.class) 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    public void preCancelReduceStock(ReduceStockReqDTO reqDTO) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        //TODO: 当前阶段不考虑门店库存 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        Long voyageId = reqDTO.getVoyageId(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        //现在给整个航次的库存加锁 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        String lockKey = String.format(ProductRedisKeyConstants.STOCK_REDIS_KEY_PREFIX, voyageId); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        RLock lock = redissonClient.getLock(lockKey); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        try { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            lock.lock(60, TimeUnit.SECONDS); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            Integer type = reqDTO.getType();//判断是分销商还是门店下单 1:分销商,2:门店 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            if (type == DistributorOrStoreEnum.DISTRIBUTOR.getValue()) {//分销商下单,当前阶段不考虑门店下单 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                //分销商下单只扣分销商库存,默认是OTA,默认OTC只能门店下单 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                //初定扣分销商库存 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                preCancelReduceStockDistributor(reqDTO); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        }finally { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            if(lock.isHeldByCurrentThread() && lock.isLocked()){ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                lock.unlock(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     /** 
															 | 
															
															 | 
															
																     /** 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-     * 预定扣分销商库存 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+     * 初定取消还分销商库存 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+     * @param reqDTO 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+     */ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    private void preCancelReduceStockDistributor(ReduceStockReqDTO reqDTO) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        Integer type = reqDTO.getType(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        Long voyageId = reqDTO.getVoyageId(); //航次ID 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        Long distributorId = reqDTO.getDistributorId(); //分销商ID 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        Long storeId = reqDTO.getStoreId(); //门店ID 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        BigDecimal totalUseNum = reqDTO.getUseRoomNum(); //总共使用房间数量 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        Long orderId = reqDTO.getOrderId(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        Integer orderStatus = reqDTO.getOrderStatus(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        //删除已使用房间记录 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        voyageStockRoomUsedMapper.deleteByOrderId(orderId); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    /** 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+     * 初定扣分销商库存 
															 | 
														
													
												
													
														
															| 
															 | 
															
																      * @param reqDTO 
															 | 
															
															 | 
															
																      * @param reqDTO 
															 | 
														
													
												
													
														
															| 
															 | 
															
																      */ 
															 | 
															
															 | 
															
																      */ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     private void preReduceStockDistributor(ReduceStockReqDTO reqDTO) { 
															 | 
															
															 | 
															
																     private void preReduceStockDistributor(ReduceStockReqDTO reqDTO) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        //航次库存操作日志 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        VoyageStockLogDO voyageStockLogDO = new VoyageStockLogDO(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         Integer type = reqDTO.getType(); 
															 | 
															
															 | 
															
																         Integer type = reqDTO.getType(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         Long voyageId = reqDTO.getVoyageId(); //航次ID 
															 | 
															
															 | 
															
																         Long voyageId = reqDTO.getVoyageId(); //航次ID 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         Long distributorId = reqDTO.getDistributorId(); //分销商ID 
															 | 
															
															 | 
															
																         Long distributorId = reqDTO.getDistributorId(); //分销商ID 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -97,6 +149,12 @@ public class VoyageApiImpl implements VoyageApi{ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         Long orderId = reqDTO.getOrderId(); 
															 | 
															
															 | 
															
																         Long orderId = reqDTO.getOrderId(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         Integer orderStatus = reqDTO.getOrderStatus(); 
															 | 
															
															 | 
															
																         Integer orderStatus = reqDTO.getOrderStatus(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        voyageStockLogDO.setVoyageId(voyageId); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        voyageStockLogDO.setType(2);//标识减少 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        voyageStockLogDO.setOrderId(orderId); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        voyageStockLogDO.setOrderStatus(orderStatus); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        voyageStockLogDO.setOperateType(VoyageStockLogTypeEnum.ORDER_PRE_SUB.getValue()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         // 获取航次总库存 
															 | 
															
															 | 
															
																         // 获取航次总库存 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         VoyageStockDO stockDO = voyageStockMapper.selectById(voyageId); 
															 | 
															
															 | 
															
																         VoyageStockDO stockDO = voyageStockMapper.selectById(voyageId); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         if(stockDO == null) { 
															 | 
															
															 | 
															
																         if(stockDO == null) { 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -166,7 +224,11 @@ public class VoyageApiImpl implements VoyageApi{ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             // 减虚拟房间数,此处初定,先扣虚拟库存,虚拟库存不足再扣实际库存 
															 | 
															
															 | 
															
																             // 减虚拟房间数,此处初定,先扣虚拟库存,虚拟库存不足再扣实际库存 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             if(stockDO.getVirtualNum().compareTo(totalUseNum) >= 0) { 
															 | 
															
															 | 
															
																             if(stockDO.getVirtualNum().compareTo(totalUseNum) >= 0) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 stockDO.setVirtualNum(stockDO.getVirtualNum().subtract(totalUseNum)); 
															 | 
															
															 | 
															
																                 stockDO.setVirtualNum(stockDO.getVirtualNum().subtract(totalUseNum)); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                voyageStockLogDO.setVirtualNum(totalUseNum); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                voyageStockLogDO.setRealNum(BigDecimal.ZERO); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             }else { 
															 | 
															
															 | 
															
																             }else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                voyageStockLogDO.setVirtualNum(stockDO.getVirtualNum()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                voyageStockLogDO.setRealNum(totalUseNum.subtract(voyageStockLogDO.getVirtualNum())); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 stockDO.setVirtualNum(BigDecimal.ZERO); 
															 | 
															
															 | 
															
																                 stockDO.setVirtualNum(BigDecimal.ZERO); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 // 扣实际房间数 
															 | 
															
															 | 
															
																                 // 扣实际房间数 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 stockDO.setRealTotalNum(stockDO.getRealTotalNum().subtract(totalUseNum.subtract(stockDO.getVirtualNum()))); 
															 | 
															
															 | 
															
																                 stockDO.setRealTotalNum(stockDO.getRealTotalNum().subtract(totalUseNum.subtract(stockDO.getVirtualNum()))); 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -175,6 +237,7 @@ public class VoyageApiImpl implements VoyageApi{ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             stockDO.setBookNum(stockDO.getBookNum().add(totalUseNum)); 
															 | 
															
															 | 
															
																             stockDO.setBookNum(stockDO.getBookNum().add(totalUseNum)); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             // 扣共享库存 
															 | 
															
															 | 
															
																             // 扣共享库存 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             stockDO.setShareNum(stockDO.getShareNum().subtract(totalUseNum)); 
															 | 
															
															 | 
															
																             stockDO.setShareNum(stockDO.getShareNum().subtract(totalUseNum)); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            voyageStockLogDO.setShareNum(totalUseNum); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             voyageStockMapper.updateById(stockDO); 
															 | 
															
															 | 
															
																             voyageStockMapper.updateById(stockDO); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         }else { 
															 | 
															
															 | 
															
																         }else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             //分销商已分配库存,扣自身库存 
															 | 
															
															 | 
															
																             //分销商已分配库存,扣自身库存 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -233,7 +296,11 @@ public class VoyageApiImpl implements VoyageApi{ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             // 减虚拟房间数,此处初定,先扣虚拟库存,虚拟库存不足再扣实际库存 
															 | 
															
															 | 
															
																             // 减虚拟房间数,此处初定,先扣虚拟库存,虚拟库存不足再扣实际库存 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             if(stockDO.getVirtualNum().compareTo(totalUseNum) >= 0) { 
															 | 
															
															 | 
															
																             if(stockDO.getVirtualNum().compareTo(totalUseNum) >= 0) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 stockDO.setVirtualNum(stockDO.getVirtualNum().subtract(totalUseNum)); 
															 | 
															
															 | 
															
																                 stockDO.setVirtualNum(stockDO.getVirtualNum().subtract(totalUseNum)); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                voyageStockLogDO.setVirtualNum(totalUseNum); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                voyageStockLogDO.setRealNum(BigDecimal.ZERO); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             }else { 
															 | 
															
															 | 
															
																             }else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                voyageStockLogDO.setVirtualNum(stockDO.getVirtualNum()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                voyageStockLogDO.setRealNum(totalUseNum.subtract(voyageStockLogDO.getVirtualNum())); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 stockDO.setVirtualNum(BigDecimal.ZERO); 
															 | 
															
															 | 
															
																                 stockDO.setVirtualNum(BigDecimal.ZERO); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 // 扣实际房间数 
															 | 
															
															 | 
															
																                 // 扣实际房间数 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 stockDO.setRealTotalNum(stockDO.getRealTotalNum().subtract(totalUseNum.subtract(stockDO.getVirtualNum()))); 
															 | 
															
															 | 
															
																                 stockDO.setRealTotalNum(stockDO.getRealTotalNum().subtract(totalUseNum.subtract(stockDO.getVirtualNum()))); 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -242,6 +309,7 @@ public class VoyageApiImpl implements VoyageApi{ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             stockDO.setBookNum(stockDO.getBookNum().add(totalUseNum)); 
															 | 
															
															 | 
															
																             stockDO.setBookNum(stockDO.getBookNum().add(totalUseNum)); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             // 扣共享库存 
															 | 
															
															 | 
															
																             // 扣共享库存 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             stockDO.setShareNum(stockDO.getShareNum().subtract(totalUseNum)); 
															 | 
															
															 | 
															
																             stockDO.setShareNum(stockDO.getShareNum().subtract(totalUseNum)); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            voyageStockLogDO.setShareNum(totalUseNum); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             voyageStockMapper.updateById(stockDO); 
															 | 
															
															 | 
															
																             voyageStockMapper.updateById(stockDO); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         } 
															 | 
															
															 | 
															
																         } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         // 添加房间使用记录 
															 | 
															
															 | 
															
																         // 添加房间使用记录 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -268,5 +336,7 @@ public class VoyageApiImpl implements VoyageApi{ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             voyageStockRoomUsedMapper.insertBatch(roomUsedList); 
															 | 
															
															 | 
															
																             voyageStockRoomUsedMapper.insertBatch(roomUsedList); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         } 
															 | 
															
															 | 
															
																         } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        // 添加库存日志 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        voyageStockLogMapper.insert(voyageStockLogDO); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     } 
															 | 
															
															 | 
															
																     } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 } 
															 | 
															
															 | 
															
																 } 
															 |