Преглед изворни кода

fix: 处理超卖库存问题

luofeiyun пре 6 дана
родитељ
комит
6e9aea1e68

+ 3 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/api/VoyageApiImpl.java

@@ -249,6 +249,8 @@ public class VoyageApiImpl implements VoyageApi {
             }
             //退回虚拟库存
             stockDO.setVirtualNum(stockDO.getVirtualNum().add(voyageStockLogDO.getVirtualNum()));
+            // 减去超卖库存,减的是虚拟的
+            stockDO.setOversoldNum(stockDO.getOversoldNum().subtract(voyageStockLogDO.getVirtualNum()));
             //退回真实库存
             stockDO.setRealTotalNum(stockDO.getRealTotalNum().add(voyageStockLogDO.getRealNum()));
             //退回可售库存
@@ -295,6 +297,7 @@ public class VoyageApiImpl implements VoyageApi {
                 item.setCanSellNum(item.getCanSellNum().add(totalNum));
                 item.setRealTotalNum(item.getRealTotalNum().add(realNum));
                 item.setVirtualNum(item.getVirtualNum().add(virtualNum));
+                item.setOversoldNum(item.getOversoldNum().subtract(virtualNum));
                 if(item.getTenantId() == null && voyageStockLogDO.getTenantId() != null) {
                     item.setTenantId(voyageStockLogDO.getTenantId());
                 }