Prechádzať zdrojové kódy

订单删除锁定库存逻辑

24282 1 rok pred
rodič
commit
e756d4d967

+ 0 - 7
sd-business/src/main/java/com/sd/business/entity/inventory/po/Inventory.java

@@ -45,13 +45,6 @@ public class Inventory extends BasePo {
     private BigDecimal quantity;
 
     /**
-     * 锁定数量
-     */
-    @ColumnWidth(15)
-    @ExcelProperty(value = "锁定库存", index = 5)
-    private BigDecimal lockQuantity;
-
-    /**
      * 结存单价
      */
     @ColumnWidth(15)

+ 0 - 5
sd-business/src/main/java/com/sd/business/entity/inventory/po/InventoryBackup.java

@@ -47,11 +47,6 @@ public class InventoryBackup extends BasePo {
     private BigDecimal quantity;
 
     /**
-     * 锁定数量
-     */
-    private BigDecimal lockQuantity;
-
-    /**
      * 结存单价
      */
     private BigDecimal balanceUnitPrice;

+ 0 - 5
sd-business/src/main/java/com/sd/business/entity/inventory/po/InventoryFinished.java

@@ -30,9 +30,4 @@ public class InventoryFinished extends BasePo {
      */
     private BigDecimal quantity;
 
-    /**
-     * 锁定数量
-     */
-    private BigDecimal lockQuantity;
-
 }

+ 2 - 3
sd-business/src/main/java/com/sd/business/entity/inventory/vo/InventoryVo.java

@@ -50,15 +50,14 @@ public class InventoryVo extends Inventory {
      * 结存总价
      */
     @ColumnWidth(15)
-    @ExcelProperty(value = "结存总价", index = 6)
+    @ExcelProperty(value = "结存总价", index = 5)
     private BigDecimal totalPrice;
 
-
     /**
      * 总库存
      */
     @ColumnWidth(15)
-    @ExcelProperty(value = "总库存", index = 7)
+    @ExcelProperty(value = "总库存", index = 6)
     private BigDecimal totalQuantity;
 
 }

+ 0 - 10
sd-business/src/main/java/com/sd/business/entity/order/po/OrderInfo.java

@@ -252,21 +252,11 @@ public class OrderInfo extends BasePo {
     private Long masterOrderId;
 
     /**
-     * 是否锁定库存 1是 0否
-     */
-    private Integer lockStorage;
-
-    /**
      * 送货单号
      */
     private String deliveryCode;
 
     /**
-     * 备料类型 0半成品,1成品
-     */
-    private Integer stockType;
-
-    /**
      * 备注
      */
     private String remark;

+ 0 - 6
sd-business/src/main/java/com/sd/business/service/inventory/InventoryFinishedService.java

@@ -6,7 +6,6 @@ import com.sd.business.entity.inventory.dto.InventoryFinishedDto;
 import com.sd.business.entity.inventory.dto.InventoryFinishedSelectDto;
 import com.sd.business.entity.inventory.po.InventoryFinished;
 import com.sd.business.entity.inventory.vo.InventoryFinishedVo;
-import com.sd.business.entity.order.po.OrderSku;
 
 import java.util.List;
 
@@ -63,9 +62,4 @@ public interface InventoryFinishedService extends BaseService<InventoryFinished>
      */
     void removeOrder(Long orderId);
 
-    /**
-     * 锁定无源成品库存
-     */
-    boolean lockNoSourceStorage(List<? extends OrderSku> orderSkuList);
-
 }

+ 0 - 21
sd-business/src/main/java/com/sd/business/service/inventory/InventoryService.java

@@ -12,7 +12,6 @@ import com.sd.business.entity.inventory.po.Inventory;
 import com.sd.business.entity.inventory.vo.InventoryVo;
 import com.sd.business.entity.inventory.vo.QuantityByDepartmentVo;
 import com.sd.business.entity.inventory.vo.QuantityByWarehouseVo;
-import com.sd.business.entity.order.po.OrderSku;
 
 import java.math.BigDecimal;
 import java.util.List;
@@ -55,26 +54,6 @@ public interface InventoryService extends BaseService<Inventory> {
     List<QuantityByDepartmentVo> getQuantityByDepartment(QuantityByDepartmentDto dto);
 
     /**
-     * 锁定库存
-     */
-    boolean lockStorage(Map<Long, BigDecimal> map, Long warehouseId);
-
-    /**
-     * 锁定库存
-     */
-    boolean lockStorage(List<OrderSku> orderSkuList);
-
-    /**
-     * 解锁库存
-     */
-    void unlockStorage(Map<Long, BigDecimal> map, Long warehouseId);
-
-    /**
-     * 解锁库存
-     */
-    void unlockStorage(List<OrderSku> orderSkuList);
-
-    /**
      * 采购入库
      */
     void purchaseInStorage(Long purchaseId, Long departmentId, Long warehouseId, List<InOutStorageBom> inOutStorageBomList);

+ 1 - 4
sd-business/src/main/java/com/sd/business/service/inventory/impl/InventoryBackupServiceImpl.java

@@ -41,14 +41,13 @@ public class InventoryBackupServiceImpl extends ServiceImpl<InventoryBackupMappe
     @Override
     public Page<InventoryBackupVo> getPage(InventoryBackupSelectDto dto) {
 
-        Page<InventoryBackupVo> page = Sql.create(InventoryBackupVo.class)
+        return Sql.create(InventoryBackupVo.class)
                 .selectAll(Inventory.class)
                 .selectAs(Warehouse::getName, InventoryBackupVo::getWarehouseName)
                 .selectAs(BomSpec::getCode, InventoryBackupVo::getBomSpecCode)
                 .selectAs(BomSpec::getName, InventoryBackupVo::getBomSpecName)
                 .selectAs(Department::getName, InventoryBackupVo::getDepartmentName)
                 .multiply(Inventory::getQuantity, Inventory::getBalanceUnitPrice, InventoryBackupVo::getTotalPrice)
-                .add(Inventory::getQuantity, Inventory::getLockQuantity, InventoryBackupVo::getTotalQuantity)
 
                 .from(Inventory.class)
                 .leftJoin(BomSpec.class, Inventory::getBomSpecId)
@@ -73,8 +72,6 @@ public class InventoryBackupServiceImpl extends ServiceImpl<InventoryBackupMappe
                 .eq(Bom::getFrontGrain, dto.getBomFrontGrain())
                 .eq(Bom::getReverseGrain, dto.getBomReverseGrain())
                 .page(dto);
-
-        return page;
     }
 
     @Override

+ 0 - 52
sd-business/src/main/java/com/sd/business/service/inventory/impl/InventoryFinishedServiceImpl.java

@@ -1,6 +1,5 @@
 package com.sd.business.service.inventory.impl;
 
-import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.constant.StatusConstant;
@@ -18,7 +17,6 @@ import com.sd.framework.util.Assert;
 import com.sd.framework.util.sql.Sql;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.util.List;
@@ -175,56 +173,6 @@ public class InventoryFinishedServiceImpl extends ServiceImpl<InventoryFinishedM
         inventoryFinishedOrderService.removeByOrderId(orderId);
     }
 
-    @Transactional(rollbackFor = Exception.class)
-    @Override
-    public boolean lockNoSourceStorage(List<? extends OrderSku> orderSkuList) {
-        if (ObjectUtil.isEmpty(orderSkuList)) {
-            return true;
-        }
-
-        Map<Long, BigDecimal> map = orderSkuList.stream()
-                .collect(Collectors.toMap(OrderSku::getSkuSpecId, OrderSku::getQuantity, BigDecimal::add));
-
-        synchronized (this) {
-
-            List<InventoryFinished> list = list(q -> q.in(InventoryFinished::getSkuSpecId, map.keySet()));
-
-            if (map.size() != list.size()) {
-                return false;
-            }
-
-            // 查询无源成品数据
-            List<InventoryFinishedOrder> inventoryFinishedOrderList = inventoryFinishedOrderService.list(q -> q
-                    .in(InventoryFinishedOrder::getSkuSpecId, map.keySet())
-                    .eq(InventoryFinishedOrder::getStatus, 1)
-                    .isNull(InventoryFinishedOrder::getOrderInfoId));
-            Map<Long, BigDecimal> inventoryFinishedMap = inventoryFinishedOrderList.stream()
-                    .collect(Collectors.toMap(
-                            InventoryFinishedOrder::getSkuSpecId,
-                            InventoryFinishedOrder::getExistingQuantity,
-                            BigDecimal::add));
-
-            if (map.size() != inventoryFinishedMap.size()) {
-                return false;
-            }
-
-            for (InventoryFinished inventoryFinished : list) {
-                BigDecimal lockQuantity = map.get(inventoryFinished.getSkuSpecId());
-                // 查询成品sku现存数量,减去锁定库存,得出当前可用数量
-                BigDecimal existingQuantity = inventoryFinishedMap.getOrDefault(inventoryFinished.getSkuSpecId(), BigDecimal.ZERO);
-                if (existingQuantity.subtract(inventoryFinished.getLockQuantity()).compareTo(lockQuantity) >= 0) {
-                    inventoryFinished.setLockQuantity(inventoryFinished.getLockQuantity().add(lockQuantity));
-                } else {
-                    return false;
-                }
-            }
-
-            updateBatchById(list);
-        }
-
-        return true;
-    }
-
     /**
      * 成品库存出库
      *

+ 16 - 95
sd-business/src/main/java/com/sd/business/service/inventory/impl/InventoryServiceImpl.java

@@ -4,11 +4,9 @@ import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.common.constant.StatusConstant;
 import com.ruoyi.common.exception.ServiceException;
 import com.sd.business.entity.bom.po.Bom;
 import com.sd.business.entity.bom.po.BomSpec;
-import com.sd.business.entity.department.constant.DepartmentConstant;
 import com.sd.business.entity.department.po.Department;
 import com.sd.business.entity.in.po.InOutStorageBalance;
 import com.sd.business.entity.in.po.InOutStorageBom;
@@ -21,9 +19,7 @@ import com.sd.business.entity.inventory.po.Inventory;
 import com.sd.business.entity.inventory.vo.InventoryVo;
 import com.sd.business.entity.inventory.vo.QuantityByDepartmentVo;
 import com.sd.business.entity.inventory.vo.QuantityByWarehouseVo;
-import com.sd.business.entity.order.po.OrderSku;
 import com.sd.business.entity.purchase.po.PurchaseBom;
-import com.sd.business.entity.warehouse.constant.WarehouseConstant;
 import com.sd.business.entity.warehouse.po.Warehouse;
 import com.sd.business.mapper.inventory.InventoryMapper;
 import com.sd.business.service.bom.BomSpecService;
@@ -42,7 +38,6 @@ import java.util.Collection;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
-import java.util.Objects;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
@@ -80,7 +75,6 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
                 .selectAs(BomSpec::getName, InventoryVo::getBomSpecName)
                 .selectAs(Department::getName, InventoryVo::getDepartmentName)
                 .multiply(Inventory::getQuantity, Inventory::getBalanceUnitPrice, InventoryVo::getTotalPrice)
-                .add(Inventory::getQuantity, Inventory::getLockQuantity, InventoryVo::getTotalQuantity)
 
                 .from(Inventory.class)
                 .leftJoin(BomSpec.class, Inventory::getBomSpecId)
@@ -157,71 +151,6 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
     }
 
     @Override
-    public boolean lockStorage(Map<Long, BigDecimal> map, Long warehouseId) {
-        if (ObjectUtil.isEmpty(map)) {
-            return true;
-        }
-        synchronized (this) {
-            List<Inventory> list = list(q -> q
-                    .in(Inventory::getBomSpecId, map.keySet())
-                    .eq(Inventory::getWarehouseId, warehouseId)
-                    .eq(Inventory::getDepartmentId, DepartmentConstant.SD_SPORTS)
-            );
-            if (map.size() != list.size()) {
-                return false;
-            }
-            for (Inventory inventory : list) {
-                BigDecimal lockQuantity = map.get(inventory.getBomSpecId());
-                if (inventory.getQuantity().compareTo(lockQuantity) >= 0) {
-                    inventory.setQuantity(inventory.getQuantity().subtract(lockQuantity));
-                    inventory.setLockQuantity(inventory.getLockQuantity().add(lockQuantity));
-                } else {
-                    return false;
-                }
-            }
-            this.updateBatchById(list);
-        }
-        return true;
-    }
-
-    @Override
-    public boolean lockStorage(List<OrderSku> orderSkuList) {
-        Map<Long, BigDecimal> map = orderSkuList.stream()
-                .collect(Collectors.toMap(OrderSku::getBomSpecId, OrderSku::getQuantity, BigDecimal::add));
-        return lockStorage(map, WarehouseConstant.SEMI_FINISHED_PRODUCT);
-    }
-
-    @Override
-    public void unlockStorage(Map<Long, BigDecimal> map, Long warehouseId) {
-        if (ObjectUtil.isEmpty(map)) {
-            return;
-        }
-        synchronized (this) {
-            List<Inventory> list = list(q -> q
-                    .in(Inventory::getBomSpecId, map.keySet())
-                    .eq(Inventory::getWarehouseId, warehouseId)
-                    .eq(Inventory::getDepartmentId, DepartmentConstant.SD_SPORTS)
-            );
-            for (Inventory inventory : list) {
-                BigDecimal lockQuantity = map.get(inventory.getBomSpecId());
-                inventory.setQuantity(inventory.getQuantity().add(lockQuantity));
-                inventory.setLockQuantity(inventory.getLockQuantity().subtract(lockQuantity));
-            }
-            updateBatchById(list);
-        }
-    }
-
-    @Override
-    public void unlockStorage(List<OrderSku> orderSkuList) {
-        if (orderSkuList.isEmpty()) {
-            return;
-        }
-        Map<Long, BigDecimal> map = orderSkuList.stream()
-                .collect(Collectors.toMap(OrderSku::getBomSpecId, OrderSku::getQuantity, BigDecimal::add));
-        unlockStorage(map, WarehouseConstant.SEMI_FINISHED_PRODUCT);
-    }
-
-    @Override
     public void purchaseInStorage(Long purchaseId, Long departmentId, Long warehouseId, List<InOutStorageBom> inOutStorageBomList) {
         List<Long> bomSpecIdList = inOutStorageBomList.stream().map(InOutStorageBom::getBomSpecId).collect(Collectors.toList());
         synchronized (this) {
@@ -260,25 +189,23 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
                     tempInventory.setDepartmentId(departmentId);
                     tempInventory.setBomSpecId(item);
                     tempInventory.setQuantity(BigDecimal.ZERO);
-                    tempInventory.setLockQuantity(BigDecimal.ZERO);
                     tempInventory.setBalanceUnitPrice(BigDecimal.ZERO);
                     inventoryList.add(tempInventory);
                     return tempInventory;
                 });
 
-                PurchaseBom purchaseBom = purchaseBomMap.get(inOutStorageBom.getBomSpecId());
-                // 实际库存数  当前库存数量加锁定库存
-                BigDecimal actualInventoryQuantity = inventory.getQuantity().add(inventory.getLockQuantity());
                 // 结存数量
-                BigDecimal sumQuantity = actualInventoryQuantity.add(inOutStorageBom.getQuantity());
+                BigDecimal sumQuantity = inventory.getQuantity().add(inOutStorageBom.getQuantity());
+
                 // 结存金额
-                BigDecimal sumPrice = actualInventoryQuantity.multiply(inventory.getBalanceUnitPrice())
+                PurchaseBom purchaseBom = purchaseBomMap.get(inOutStorageBom.getBomSpecId());
+                BigDecimal sumPrice = inventory.getQuantity().multiply(inventory.getBalanceUnitPrice())
                         .add(inOutStorageBom.getQuantity().multiply(purchaseBom.getUnitPrice()));
 
                 // 获取入库结存单价
                 BigDecimal balanceUnitPrice = sumPrice.divide(sumQuantity, 3, RoundingMode.HALF_UP);
 
-                inventory.setQuantity(sumQuantity.subtract(inventory.getLockQuantity()));
+                inventory.setQuantity(sumQuantity);
                 inventory.setBalanceUnitPrice(balanceUnitPrice);
 
                 inOutStorageBom.setBalanceInventoryQuantity(sumQuantity);
@@ -334,7 +261,6 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
                     tempInventory.setDepartmentId(departmentId);
                     tempInventory.setBomSpecId(item);
                     tempInventory.setQuantity(BigDecimal.ZERO);
-                    tempInventory.setLockQuantity(BigDecimal.ZERO);
                     inventoryList.add(tempInventory);
                     return tempInventory;
                 });
@@ -346,7 +272,7 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
                 inventory.setBalanceUnitPrice(balanceUnitPrice);
 
                 // 保存当前入库记录的结存库存
-                inOutFun.setBalanceInventoryQuantity(inventory.getQuantity().add(inventory.getLockQuantity()));
+                inOutFun.setBalanceInventoryQuantity(inventory.getQuantity());
             }
 
             saveOrUpdateBatch(inventoryList);
@@ -372,22 +298,17 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
                 Long bomSpecId = inOutFun.getBomSpecId();
                 Inventory inventory = inventoryMap.get(bomSpecId);
 
-                // 出库冻结库存
-                if (Objects.equals(lockStorage, StatusConstant.YES)) {
-                    inventory.setLockQuantity(inventory.getLockQuantity().subtract(quantity));
-                }
-                // 出库非冻结库存
-                else {
-                    if (inventory == null || inventory.getQuantity().compareTo(quantity) < 0) {
-                        BomSpec bomSpec = bomSpecService.getById(bomSpecId);
-                        if (bomSpec == null) {
-                            throw new ServiceException("未知bom规格id:" + bomSpecId);
-                        }
-                        throw new ServiceException("出库失败,品号为:" + bomSpec.getCode() + " 的bom库存不足,库存为:" +
-                                (inventory == null ? BigDecimal.ZERO : inventory.getQuantity()) + ",需要出库:" + quantity);
+
+                if (inventory == null || inventory.getQuantity().compareTo(quantity) < 0) {
+                    BomSpec bomSpec = bomSpecService.getById(bomSpecId);
+                    if (bomSpec == null) {
+                        throw new ServiceException("未知bom规格id:" + bomSpecId);
                     }
-                    inventory.setQuantity(inventory.getQuantity().subtract(quantity));
+                    throw new ServiceException("出库失败,品号为:" + bomSpec.getCode() + " 的bom库存不足,库存为:" +
+                            (inventory == null ? BigDecimal.ZERO : inventory.getQuantity()) + ",需要出库:" + quantity);
                 }
+                inventory.setQuantity(inventory.getQuantity().subtract(quantity));
+
 
                 // 计算出库结存单价
                 BigDecimal balanceUnitPrice = getOutBalanceUnitPrice(inOutStorageBalanceMap, inOutFun);
@@ -396,7 +317,7 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
                 inventory.setBalanceUnitPrice(balanceUnitPrice);
 
                 // 保存当前入库记录的结存库存
-                inOutFun.setBalanceInventoryQuantity(inventory.getQuantity().add(inventory.getLockQuantity()));
+                inOutFun.setBalanceInventoryQuantity(inventory.getQuantity());
 
             }
 

+ 0 - 93
sd-business/src/main/java/com/sd/business/service/order/impl/OrderInfoServiceImpl.java

@@ -59,7 +59,6 @@ import com.sd.business.service.bom.BomSpecService;
 import com.sd.business.service.department.DepartmentService;
 import com.sd.business.service.in.InOutStorageService;
 import com.sd.business.service.inventory.InventoryFinishedService;
-import com.sd.business.service.inventory.InventoryService;
 import com.sd.business.service.order.OrderInfoService;
 import com.sd.business.service.order.OrderPackageBomService;
 import com.sd.business.service.order.OrderSkuBomService;
@@ -130,9 +129,6 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
     private ProductionWorkOrderService productionWorkOrderService;
 
     @Autowired
-    private InventoryService inventoryService;
-
-    @Autowired
     private InOutStorageService inOutStorageService;
 
     @Autowired
@@ -292,19 +288,6 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
     @Override
     public void add(OrderInfoDto dto) {
         List<OrderSkuDto> orderSkuList = dto.getOrderSkuList();
-        if (ObjectUtil.equal(dto.getStatus(), OrderStatusEnum.STOCK_PREPARATION.getKey())
-                && ObjectUtil.notEqual(dto.getType(), 2)) {
-            // 先判断成品是否能锁定
-            if (inventoryFinishedService.lockNoSourceStorage(orderSkuList)) {
-                dto.setStockType(StatusConstant.YES);
-            } else {
-                lockStorage(orderSkuList);
-                dto.setStockType(StatusConstant.NO);
-            }
-            dto.setLockStorage(StatusConstant.YES);
-        } else {
-            dto.setLockStorage(StatusConstant.NO);
-        }
 
         // 新增订单
         dto.setSource(1);
@@ -542,9 +525,6 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
             throw new ServiceException("未找到订单");
         }
 
-        // 解锁库存
-        unLockStorage(orderInfo);
-
         if (orderInfo.getStatus() <= OrderStatusEnum.STOCK_PREPARATION.getKey()) {
             delete(id);
             return;
@@ -612,8 +592,6 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
             throw new ServiceException("订单正在生产中,无法直接删除,需要走审批流程");
         }
 
-        unLockStorage(orderInfo);
-
         // 删除订单回滚成品仓库存
         inventoryFinishedService.removeOrder(id);
 
@@ -633,16 +611,6 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
 
         // 自主订单需要锁定库存
         List<OrderSkuDto> orderSkuList = dto.getOrderSkuList();
-        if (Objects.equals(dto.getType(), 1)) {
-            // 先判断成品是否能锁定
-            if (inventoryFinishedService.lockNoSourceStorage(orderSkuList)) {
-                dto.setStockType(StatusConstant.YES);
-            } else {
-                lockStorage(orderSkuList);
-                dto.setStockType(StatusConstant.NO);
-            }
-            dto.setLockStorage(StatusConstant.YES);
-        }
 
         // 更新订单
         dto.setStatus(OrderStatusEnum.STOCK_PREPARATION.getKey());
@@ -861,21 +829,6 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
             }
         }
 
-        if (ObjectUtil.equal(orderInfo.getStatus(), OrderStatusEnum.STOCK_PREPARATION.getKey())) {
-            List<OrderSku> list = orderSkuService.list(q -> q.eq(OrderSku::getOrderId, orderInfo.getId()));
-            // 先判断成品是否能锁定
-            if (inventoryFinishedService.lockNoSourceStorage(list)) {
-                orderInfo.setStockType(StatusConstant.YES);
-            } else {
-                lockStorage(list);
-                orderInfo.setStockType(StatusConstant.NO);
-            }
-            update(q -> q
-                    .eq(BaseIdPo::getId, orderInfo.getId())
-                    .set(OrderInfo::getLockStorage, StatusConstant.YES)
-                    .set(OrderInfo::getStockType, orderInfo.getStockType()));
-        }
-
         update(q -> q
                 .eq(BaseIdPo::getId, orderInfo.getId())
                 .set(OrderInfo::getExceptionType, OrderExceptionTypeEnum.NORMAL.getKey().toString())
@@ -1127,33 +1080,6 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
     }
 
     /**
-     * 解锁库存
-     */
-    private void unLockStorage(OrderInfo orderInfo) {
-
-        // 未锁定库存跳过
-        if (ObjectUtil.notEqual(orderInfo.getLockStorage(), StatusConstant.YES)) {
-            return;
-        }
-
-        // 修改订单库存锁定状态为否
-        orderInfo.setLockStorage(StatusConstant.NO);
-        update(q -> q.eq(BaseIdPo::getId, orderInfo.getId()).set(OrderInfo::getLockStorage, StatusConstant.NO));
-
-        // 订单sku列表
-        List<OrderSku> orderSkuList = orderSkuService.list(q -> q.eq(OrderSku::getOrderId, orderInfo.getId()));
-
-        // 过滤订单
-        List<Long> bomSpecIdList = orderSkuList.stream().map(OrderSku::getBomSpecId).collect(Collectors.toList());
-        Map<Long, BomSpecBo> bomSpecBoMap = bomSpecService.getBomSpecBo(bomSpecIdList);
-        orderSkuList = orderSkuList.stream()
-                .filter(item -> bomSpecBoMap.get(item.getBomSpecId()).getClassifyParentId().equals(1L))
-                .collect(Collectors.toList());
-
-        inventoryService.unlockStorage(orderSkuList);
-    }
-
-    /**
      * 主材出库
      */
     private void semiFinishedProductOutStorage(List<InOutStorageBom> inOutStorageBomList, Map<Long, BomSpecBo> bomSpecBoMap, OrderInfo orderInfo) {
@@ -1207,25 +1133,6 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
         inOutStorageService.add(packagingMaterialInOutStorageDto);
     }
 
-    /**
-     * 锁定库存
-     */
-    private void lockStorage(List<? extends OrderSku> orderSkuList) {
-        List<Long> bomSpecIdList = orderSkuList.stream().map(OrderSku::getBomSpecId).collect(Collectors.toList());
-        Map<Long, BomSpecBo> bomSpecBoMap = bomSpecService.getBomSpecBo(bomSpecIdList);
-
-        List<OrderSku> list = orderSkuList.stream()
-                .filter(item -> bomSpecBoMap.get(item.getBomSpecId()).getClassifyParentId().equals(1L))
-                .collect(Collectors.toList());
-
-        boolean result = inventoryService.lockStorage(list);
-
-        if (!result) {
-            throw new ServiceException("主材库存不足,无法确认订单");
-        }
-
-    }
-
     private void sendMq(OrderInfoDto dto) {
         List<OrderSkuDto> orderSkuList = dto.getOrderSkuList();
         for (OrderSkuDto orderSkuDto : orderSkuList) {

+ 0 - 10
sd-wln/src/main/java/com/sd/wln/service/WlnOrderService.java

@@ -31,14 +31,4 @@ public interface WlnOrderService {
      */
     void saveOrUpdateOrder(OrderContext context);
 
-    /**
-     * 锁定库存
-     */
-    void lockStorage(OrderContext context);
-
-    /**
-     * 解锁库存
-     */
-    void unlockStorage(OrderContext context);
-
 }

+ 0 - 95
sd-wln/src/main/java/com/sd/wln/service/impl/WlnOrderServiceImpl.java

@@ -8,7 +8,6 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.fjhx.tenant.entity.dict.po.DictCommonData;
 import com.fjhx.tenant.service.dict.DictCommonDataService;
 import com.ruoyi.common.constant.StatusConstant;
-import com.ruoyi.common.core.domain.BaseIdPo;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.framework.mybatis.holder.LogicHolder;
 import com.sd.business.entity.artwork.po.ArtworkLibrary;
@@ -26,9 +25,7 @@ import com.sd.business.entity.price.po.PriceBillingStandardDetail;
 import com.sd.business.entity.sku.po.SkuSpec;
 import com.sd.business.entity.sku.po.SkuSpecLink;
 import com.sd.business.entity.statement.dto.StatementOfAccountDto;
-import com.sd.business.service.bom.BomSpecService;
 import com.sd.business.service.inventory.InventoryFinishedService;
-import com.sd.business.service.inventory.InventoryService;
 import com.sd.business.service.order.OrderInfoService;
 import com.sd.business.service.order.OrderPackageBomService;
 import com.sd.business.service.order.OrderSkuBomService;
@@ -46,7 +43,6 @@ import org.springframework.stereotype.Service;
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Collection;
 import java.util.Collections;
 import java.util.Date;
 import java.util.List;
@@ -54,7 +50,6 @@ import java.util.Map;
 import java.util.Objects;
 import java.util.function.Function;
 import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 @Slf4j
 @Service
@@ -73,12 +68,6 @@ public class WlnOrderServiceImpl implements WlnOrderService {
     private OrderSkuBomService orderSkuBomService;
 
     @Autowired
-    private InventoryService inventoryService;
-
-    @Autowired
-    private BomSpecService bomSpecService;
-
-    @Autowired
     private OrderPackageBomService orderPackageBomService;
 
     @Autowired
@@ -233,8 +222,6 @@ public class WlnOrderServiceImpl implements WlnOrderService {
             orderInfo.setStatus(OrderStatusEnum.UNDER_REVIEW.getKey());
         }
 
-        orderInfo.setLockStorage(StatusConstant.NO);
-
         return orderInfo;
     }
 
@@ -679,12 +666,6 @@ public class WlnOrderServiceImpl implements WlnOrderService {
     @Override
     public void saveOrUpdateOrder(OrderContext context) {
 
-        // 新增正常订单锁定库存
-        lockStorage(context);
-
-        // 修改正常订单为异常订单解锁库存
-        unlockStorage(context);
-
         List<OrderInfo> saveOrderList = context.getSaveOrderList();
         List<OrderInfo> updateOrderList = context.getUpdateOrderList();
         List<OrderInfo> saveStatementOrderList = context.getSaveStatementOrderList();
@@ -727,82 +708,6 @@ public class WlnOrderServiceImpl implements WlnOrderService {
 
     }
 
-    @Override
-    public void lockStorage(OrderContext context) {
-
-        Department department = context.getDepartment();
-
-        if (department == null || ObjectUtil.notEqual(department.getOrderMode(), "2")) {
-            return;
-        }
-
-        List<OrderInfo> saveOrderList = context.getSaveOrderList();
-        List<OrderSku> saveOrderSkuList = context.getSaveOrderSkuList();
-        Map<Long, BomSpecBo> bomSpecBoMap = context.getBomSpecBoMap();
-        List<OrderInfo> updateOrderList = context.getUpdateOrderList();
-        Map<Long, List<OrderSku>> existOrderSkuMap = context.getExistOrderSkuMap();
-
-        Map<Long, OrderInfo> orderMap = Stream.concat(saveOrderList.stream(), updateOrderList.stream()).collect(Collectors.toMap(BaseIdPo::getId, Function.identity()));
-
-        Map<Long, List<OrderSku>> orderSkuMap = Stream.concat(
-                        saveOrderSkuList.stream(),
-                        updateOrderList.stream().map(item -> existOrderSkuMap.get(item.getId())).flatMap(Collection::stream)
-                )
-                .filter(item -> orderMap.get(item.getOrderId()).getExceptionType().equals(OrderExceptionTypeEnum.NORMAL.getKey().toString()))
-                .filter(item -> Objects.equals(orderMap.get(item.getOrderId()).getStatus(), OrderStatusEnum.STOCK_PREPARATION.getKey()))
-                .filter(item -> Objects.equals(orderMap.get(item.getOrderId()).getLockStorage(), StatusConstant.NO))
-                .filter(item -> bomSpecBoMap.get(item.getBomSpecId()).getClassifyParentId().equals(1L))
-                .collect(Collectors.groupingBy(OrderSku::getOrderId));
-
-        orderSkuMap.forEach((orderId, orderSkuList) -> {
-            OrderInfo orderInfo = orderMap.get(orderId);
-            boolean lockStorageFlag = inventoryService.lockStorage(orderSkuList);
-
-            if (lockStorageFlag) {
-                orderInfo.setLockStorage(StatusConstant.YES);
-            } else {
-                orderInfo.setLockStorage(StatusConstant.NO);
-                addExceptionType(orderInfo, OrderExceptionTypeEnum.UNDERSTOCK);
-            }
-
-        });
-
-    }
-
-    @Override
-    public void unlockStorage(OrderContext context) {
-        List<OrderInfo> updateOrderList = context.getUpdateOrderList();
-        Map<Long, List<OrderSku>> existOrderSkuMap = context.getExistOrderSkuMap();
-        Map<Long, BomSpecBo> bomSpecBoMap = context.getBomSpecBoMap();
-
-        List<OrderSku> unlockStorageOrderSkuList = new ArrayList<>();
-
-        for (OrderInfo orderInfo : updateOrderList) {
-            if (ObjectUtil.equal(orderInfo.getExceptionType(), OrderExceptionTypeEnum.NORMAL.getKey().toString())
-                    || ObjectUtil.equal(orderInfo.getLockStorage(), StatusConstant.NO)) {
-                continue;
-            }
-
-            List<OrderSku> orderSkuList = existOrderSkuMap.get(orderInfo.getId())
-                    .stream()
-                    .filter(item -> {
-                        Long bomSpecId = item.getBomSpecId();
-                        BomSpecBo bomSpecBo = bomSpecBoMap.get(bomSpecId);
-                        if (bomSpecBo == null) {
-                            bomSpecBo = bomSpecService.getBomSpecBo(bomSpecId);
-                            bomSpecBoMap.put(bomSpecId, bomSpecBo);
-                        }
-                        return Objects.equals(bomSpecBo.getClassifyParentId(), 1L);
-                    })
-                    .collect(Collectors.toList());
-
-            unlockStorageOrderSkuList.addAll(orderSkuList);
-            orderInfo.setLockStorage(StatusConstant.NO);
-        }
-
-        inventoryService.unlockStorage(unlockStorageOrderSkuList);
-    }
-
     /**
      * 查询万里牛订单列表
      */