24282 hace 1 año
padre
commit
2496e85171

+ 11 - 0
sd-business/src/main/java/com/sd/business/controller/inventory/InventoryController.java

@@ -1,6 +1,7 @@
 package com.sd.business.controller.inventory;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.sd.business.entity.inventory.dto.GetQuantityDto;
 import com.sd.business.entity.inventory.dto.InventorySelectDto;
 import com.sd.business.entity.inventory.dto.QuantityByWarehouseDto;
 import com.sd.business.entity.inventory.vo.InventoryVo;
@@ -13,7 +14,9 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.math.BigDecimal;
 import java.util.List;
+import java.util.Map;
 
 
 /**
@@ -56,4 +59,12 @@ public class InventoryController {
         return inventoryService.getQuantityByDepartment();
     }
 
+    /**
+     * 查询库存
+     */
+    @PostMapping("/getQuantity")
+    public Map<Long, BigDecimal> getQuantity(@RequestBody GetQuantityDto dto) {
+        return inventoryService.getQuantity(dto);
+    }
+
 }

+ 32 - 0
sd-business/src/main/java/com/sd/business/entity/inventory/dto/GetQuantityDto.java

@@ -0,0 +1,32 @@
+package com.sd.business.entity.inventory.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+@Getter
+@Setter
+public class GetQuantityDto {
+
+    /**
+     * 事业部id
+     */
+    @NotNull(message = "事业部id不能为空")
+    private Long departmentId;
+
+    /**
+     * 仓库id
+     */
+    @NotNull(message = "仓库id不能为空")
+    private Long warehouseId;
+
+    /**
+     * bom规格id列表
+     */
+    @NotEmpty(message = "bom规格id列表不能为空")
+    private List<Long> bomSpecIdList;
+
+}

+ 10 - 0
sd-business/src/main/java/com/sd/business/entity/production/vo/StockPreparationVo.java

@@ -15,6 +15,16 @@ public class StockPreparationVo {
     private Long orderId;
 
     /**
+     * sku规格id
+     */
+    private Long skuSpecId;
+
+    /**
+     * bom规格id
+     */
+    private Long bomSpecId;
+
+    /**
      * 订单sku id
      */
     private Long orderSkuId;

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

@@ -3,6 +3,7 @@ package com.sd.business.service.inventory;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.core.service.BaseService;
 import com.sd.business.entity.inventory.bo.InOutFun;
+import com.sd.business.entity.inventory.dto.GetQuantityDto;
 import com.sd.business.entity.inventory.dto.InventorySelectDto;
 import com.sd.business.entity.inventory.dto.QuantityByWarehouseDto;
 import com.sd.business.entity.inventory.po.Inventory;
@@ -10,7 +11,9 @@ 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 java.math.BigDecimal;
 import java.util.List;
+import java.util.Map;
 
 
 /**
@@ -56,4 +59,9 @@ public interface InventoryService extends BaseService<Inventory> {
      */
     void out(Long departmentId, Long warehouseId, List<? extends InOutFun> list);
 
+    /**
+     * 查询库存
+     */
+    Map<Long, BigDecimal> getQuantity(GetQuantityDto dto);
+
 }

+ 12 - 0
sd-business/src/main/java/com/sd/business/service/inventory/impl/InventoryServiceImpl.java

@@ -8,6 +8,7 @@ import com.sd.business.entity.bom.po.Bom;
 import com.sd.business.entity.bom.po.BomSpec;
 import com.sd.business.entity.in.po.InOutStorageDetails;
 import com.sd.business.entity.inventory.bo.InOutFun;
+import com.sd.business.entity.inventory.dto.GetQuantityDto;
 import com.sd.business.entity.inventory.dto.InventorySelectDto;
 import com.sd.business.entity.inventory.dto.QuantityByWarehouseDto;
 import com.sd.business.entity.inventory.po.Inventory;
@@ -181,6 +182,17 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
         }
     }
 
+    @Override
+    public Map<Long, BigDecimal> getQuantity(GetQuantityDto dto) {
+
+        return mapKV(Inventory::getBomSpecId, Inventory::getQuantity, q -> q
+                .eq(Inventory::getWarehouseId, dto.getWarehouseId())
+                .eq(Inventory::getDepartmentId, dto.getDepartmentId())
+                .in(Inventory::getBomSpecId, dto.getBomSpecIdList())
+        );
+
+    }
+
     /**
      * 通过事业部id和出库id获取bom规格库存
      */

+ 3 - 1
sd-business/src/main/resources/mapper/production/StockPreparationMapper.xml

@@ -24,7 +24,9 @@
                oi.id       orderId,
                oi.code     orderCode,
                oi.wln_code orderWlnCode,
-               os.id       orderSkuId
+               os.id       orderSkuId,
+               ss.id       skuSpecId,
+               bs.id       bomSpecId
         from order_info oi
                  inner join order_sku os on oi.id = os.order_id
                  left join department d on oi.department_id = d.id