Browse Source

中心仓出库单增加按名称导入

liyuan 2 months ago
parent
commit
4d01ef54d8

+ 26 - 0
blade-common/src/main/java/org/springblade/common/enums/CenterTypeEnum.java

@@ -0,0 +1,26 @@
+package org.springblade.common.enums;
+
+/**
+ * @author Rain
+ */
+
+public enum CenterTypeEnum {
+
+	/**
+	 * 入库
+	 */
+	RP("RP"),
+
+	/**
+	 * 出库
+	 */
+	CP("CP");
+
+	public final String info;
+
+	CenterTypeEnum(String info) {
+		this.info = info;
+	}
+
+
+}

+ 6 - 0
blade-service-api/tire-center-warehouse-api/src/main/java/com/ecp/tire/center/warehouse/api/stock/vo/CenterStockImportCodeExcel.java

@@ -52,6 +52,12 @@ public class CenterStockImportCodeExcel implements Serializable {
 	private String dot;
 
 	/**
+	 * 库区
+	 */
+	@ExcelProperty(value = "库区(必填)")
+	private String regionName;
+
+	/**
 	 * 备注
 	 */
 	@ExcelProperty(value = "备注")

+ 58 - 0
blade-service-api/tire-center-warehouse-api/src/main/java/com/ecp/tire/center/warehouse/api/stock/vo/CenterStockImportNameExcel.java

@@ -0,0 +1,58 @@
+package com.ecp.tire.center.warehouse.api.stock.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @author Rain
+ */
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class CenterStockImportNameExcel implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 商品名称
+	 */
+	@ExcelProperty(value = "商品名称(必填)")
+	private String goodsName;
+
+	/**
+	 * 数量
+	 */
+	@ExcelProperty(value = "数量(必填)")
+	private BigDecimal goodsNum;
+
+	/**
+	 * 批次号
+	 */
+	@ExcelProperty(value = "批次号(必填)")
+	private String dot;
+
+	/**
+	 * 库区
+	 */
+	@ExcelProperty(value = "库区(必填)")
+	private String regionName;
+
+	/**
+	 * 单价
+	 */
+	@ExcelProperty(value = "单价")
+	private BigDecimal price;
+
+	/**
+	 * 备注
+	 */
+	@ExcelProperty(value = "备注")
+	private String remarks;
+
+}

+ 1 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/impl/OrderServiceImpl.java

@@ -3271,6 +3271,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 			if (ObjectUtils.isNull(item.getRebatePrice())) {
 				throw new RuntimeException("获取成本数据失败,请先保存");
 			}
+			// todo: 为0时候也要判断
 			if (ObjectUtils.isNull(item.getCostprie())) {
 				throw new RuntimeException("获取返利成本数据失败,请先保存");
 			}

+ 9 - 2
blade-service/tire-center-warehouse/src/main/java/com/ecp/tire/center/warehouse/plan/impl/CenterOrderPlanServiceImpl.java

@@ -20,6 +20,7 @@ import com.ecp.tire.center.warehouse.ship.service.ICenterShipItemsService;
 import com.ecp.tire.center.warehouse.ship.service.ICenterShipService;
 import com.ecp.tire.center.warehouse.stock.service.ICenterStockDescService;
 import com.ecp.tire.center.warehouse.util.BillCodeUtil;
+import org.springblade.common.enums.CenterTypeEnum;
 import org.springblade.common.enums.CommonEnum;
 import org.springblade.common.enums.NumberEnum;
 import org.springblade.core.mp.support.Condition;
@@ -564,12 +565,18 @@ public class CenterOrderPlanServiceImpl extends ServiceImpl<CenterOrderPlanMappe
 			return R.fail("货主信息不存在");
 		}
 		if (!CollectionUtils.isEmpty(centerOrderPlanVo.getPlanItemsList())) {
-			long setKey = centerOrderPlanVo.getPlanItemsList().stream().filter(item -> !NumberEnum.ONE.number.equals(item.getIsDeleted())).map(item -> item.getGoodsId() + item.getDot() + item.getRegionId()).distinct().count();
+			long setKey;
+			if (CenterTypeEnum.RP.info.equals(centerOrderPlanVo.getBsType())) {
+				// 入库
+				setKey = centerOrderPlanVo.getPlanItemsList().stream().filter(item -> !NumberEnum.ONE.number.equals(item.getIsDeleted())).map(item -> item.getGoodsId() + item.getDot() + item.getRegionId()).distinct().count();
+			} else {
+				setKey = centerOrderPlanVo.getPlanItemsList().stream().filter(item -> !NumberEnum.ONE.number.equals(item.getIsDeleted())).map(item -> item.getGoodsId() + item.getDot() + item.getRegionId() + item.getBillNo()).distinct().count();
+			}
 			long realCount = centerOrderPlanVo.getPlanItemsList().stream().filter(item -> !NumberEnum.ONE.number.equals(item.getIsDeleted())).count();
 			if (!Objects.equals(setKey, realCount)) {
 				return R.fail("明细数据存在重复商品,请先处理后再保存");
 			}
-			if (CommonEnum.ONE.info.equals(centerOrderPlanVo.getStatus()) || "RP".equals(centerOrderPlanVo.getBsType())) {
+			if (CommonEnum.ONE.info.equals(centerOrderPlanVo.getStatus()) || CenterTypeEnum.RP.info.equals(centerOrderPlanVo.getBsType())) {
 				long count = centerOrderPlanVo.getPlanItemsList().stream().filter(planItem -> Objects.isNull(planItem.getRegionId())).count();
 				if (count > 0) {
 					return R.fail("请完善明细库区");

+ 20 - 4
blade-service/tire-center-warehouse/src/main/java/com/ecp/tire/center/warehouse/stock/controller/CenterStockDescController.java

@@ -3,10 +3,7 @@ package com.ecp.tire.center.warehouse.stock.controller;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ecp.tire.center.warehouse.api.stock.entity.CenterStockDesc;
-import com.ecp.tire.center.warehouse.api.stock.vo.CenterStockDescVo;
-import com.ecp.tire.center.warehouse.api.stock.vo.CenterStockExportExcelVo;
-import com.ecp.tire.center.warehouse.api.stock.vo.CenterStockImportCodeExcel;
-import com.ecp.tire.center.warehouse.api.stock.vo.StockSumVo;
+import com.ecp.tire.center.warehouse.api.stock.vo.*;
 import com.ecp.tire.center.warehouse.stock.service.ICenterStockDescService;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.ApiOperation;
@@ -141,6 +138,14 @@ public class CenterStockDescController {
 		ExcelUtil.export(response, "导入模板-明细信息(code)", "导入模板-明细信息(code)", null, CenterStockImportCodeExcel.class);
 	}
 
+	/**
+	 * 导出模板
+	 */
+	@GetMapping("/exportStockNameTemplate")
+	public void exportStockNameTemplate(HttpServletResponse response) {
+		ExcelUtil.export(response, "导入模板-明细信息(名称)", "导入模板-明细信息(名称)", null, CenterStockImportNameExcel.class);
+	}
+
 
 	/**
 	 * 出库明细导入
@@ -153,6 +158,17 @@ public class CenterStockDescController {
 		return centerStockDescService.importItemCode(excelList, storageId);
 	}
 
+	/**
+	 * 出库明细导入
+	 */
+	@PostMapping("/import-item-name/{storageId}")
+	@RepeatSubmit
+	public R importItemName(@RequestParam("file") MultipartFile file, @PathVariable("storageId") Long storageId) {
+		//导入数据
+		List<CenterStockImportNameExcel> excelList = ExcelUtil.read(file, CenterStockImportNameExcel.class);
+		return centerStockDescService.importItemName(excelList, storageId);
+	}
+
 
 	@PostMapping("/getStockItemList")
 	public R getStockItemList(@RequestBody CenterStockDescVo stockDesc) {

+ 105 - 10
blade-service/tire-center-warehouse/src/main/java/com/ecp/tire/center/warehouse/stock/impl/CenterStockDescServiceImpl.java

@@ -3,16 +3,19 @@ package com.ecp.tire.center.warehouse.stock.impl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
-import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ecp.tire.center.warehouse.api.plan.entity.CenterOrderPlanItem;
 import com.ecp.tire.center.warehouse.api.stock.entity.CenterStockDesc;
 import com.ecp.tire.center.warehouse.api.stock.vo.CenterStockDescVo;
 import com.ecp.tire.center.warehouse.api.stock.vo.CenterStockImportCodeExcel;
+import com.ecp.tire.center.warehouse.api.stock.vo.CenterStockImportNameExcel;
 import com.ecp.tire.center.warehouse.api.stock.vo.CenterStockItemDetailsVo;
+import com.ecp.tire.center.warehouse.api.storage.entity.CenterStorageRegion;
 import com.ecp.tire.center.warehouse.plan.mapper.CenterOrderPlanItemMapper;
 import com.ecp.tire.center.warehouse.stock.mapper.CenterStockDescMapper;
 import com.ecp.tire.center.warehouse.stock.service.ICenterStockDescService;
+import com.ecp.tire.center.warehouse.storage.mapper.CenterStorageRegionMapper;
+import com.ecp.tire.center.warehouse.storage.service.ICenterStorageRegionService;
 import lombok.AllArgsConstructor;
 import org.springblade.common.enums.CommonEnum;
 import org.springblade.common.enums.NumberEnum;
@@ -31,6 +34,7 @@ import org.springblade.salesPart.excel.PjShipStockDetails;
 import org.springblade.salesPart.excel.ShipItemImportCodeExcel;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
 import org.springframework.util.StringUtils;
 
 import java.math.BigDecimal;
@@ -48,7 +52,7 @@ import java.util.stream.Collectors;
 @AllArgsConstructor
 public class CenterStockDescServiceImpl extends ServiceImpl<CenterStockDescMapper, CenterStockDesc> implements ICenterStockDescService {
 
-	private final CenterOrderPlanItemMapper centerOrderPlanItemMapper;
+	private final ICenterStorageRegionService centerStorageRegionService;
 
 
 	@Override
@@ -107,10 +111,10 @@ public class CenterStockDescServiceImpl extends ServiceImpl<CenterStockDescMappe
 		if (CollectionUtils.isEmpty(excelList)) {
 			return R.fail("导入数据不能为空");
 		}
-		List<String> codesList = excelList.stream().filter(stock -> StringUtils.hasText(stock.getCode()) && StringUtils.hasText(stock.getDot()))
-			.map(stock -> stock.getCode() + "-" + stock.getDot()).distinct().collect(Collectors.toList());
+		List<String> codesList = excelList.stream().filter(stock -> StringUtils.hasText(stock.getCode()) && StringUtils.hasText(stock.getDot()) && StringUtils.hasText(stock.getRegionName()))
+			.map(stock -> stock.getCode() + "-" + stock.getDot() + "-" + stock.getRegionName()).distinct().collect(Collectors.toList());
 		if (excelList.size() != codesList.size()) {
-			return R.fail("导入数据存在重复商品编码+批次号,请处理后再导入");
+			return R.fail("导入数据存在重复商品编码+批次号+库区,请处理后再导入");
 		}
 		BladeUser bladeUser = AuthUtil.getUser();
 		List<CenterOrderPlanItem> centerOrderPlanItemList = new ArrayList<>();
@@ -121,6 +125,7 @@ public class CenterStockDescServiceImpl extends ServiceImpl<CenterStockDescMappe
 			.eq(CenterStockDesc::getStorageId, storageId)
 			.in(CenterStockDesc::getCode, excelList.stream().map(CenterStockImportCodeExcel::getCode).filter(StringUtils::hasText).distinct().collect(Collectors.toList()));
 		List<CenterStockDesc> centerStockDescList = baseMapper.selectList(lambdaQueryWrapper);
+		List<CenterStorageRegion> centerStorageRegionList = centerStorageRegionService.getStorageRegionList(storageId);
 		StringBuilder text = new StringBuilder();
 		for (int i = 0; i < excelList.size(); i++) {
 			int count = 0;
@@ -138,16 +143,26 @@ public class CenterStockDescServiceImpl extends ServiceImpl<CenterStockDescMappe
 				text.append("第").append(i + 2).append("行,批次号为空").append("\n");
 				count = 1;
 			}
+			if (!StringUtils.hasText(itemExcel.getRegionName())) {
+				text.append("第").append(i + 2).append("行,库区为空").append("\n");
+				count = 1;
+			}
+			CenterStorageRegion region = centerStorageRegionList.stream().filter(e -> e.getRegionName().equals(itemExcel.getRegionName())).findFirst().orElse(null);
+			boolean exist = ObjectUtils.isEmpty(region);
+			if (exist) {
+				text.append("第").append(i + 2).append("行,库区不存在").append("\n");
+				count = 1;
+			}
 			CenterOrderPlanItem item = new CenterOrderPlanItem();
 			BeanUtil.copy(itemExcel, item);
 			//查询商品信息
-			CenterStockDesc goodsDesc = centerStockDescList.stream().filter(e -> e.getCode().equals(itemExcel.getCode())
+			CenterStockDesc goodsDesc = centerStockDescList.stream().filter(e -> e.getCode().equals(itemExcel.getCode()) && (!ObjectUtils.isEmpty(region) && e.getRegionId().equals(region.getId()))
 				&& e.getDot().equals(itemExcel.getDot())).findFirst().orElse(null);
 			if (goodsDesc == null) {
 				text.append("第").append(i + 2).append("行,商品在该仓库不存在").append("\n");
 				continue;
 			}
-			item.setGoodsId(goodsDesc.getId());
+			item.setGoodsId(goodsDesc.getGoodsId());
 			item.setGoodsName(goodsDesc.getCname());
 			item.setGoodsNo(goodsDesc.getCode());
 			item.setBrandId(goodsDesc.getBrandId());
@@ -155,9 +170,12 @@ public class CenterStockDescServiceImpl extends ServiceImpl<CenterStockDescMappe
 			item.setPropertyName(goodsDesc.getTypeNo());
 			item.setPattern(goodsDesc.getBrandItem());
 			item.setGoodsDescription(goodsDesc.getProductDescription());
-			item.setSubTotalMoney(item.getPrice().multiply(itemExcel.getGoodsNum()));
-			item.setRebateCostprie(item.getGoodsNum().multiply(item.getRebatePrice()));
-			item.setRebateProfit(item.getSubTotalMoney().subtract(item.getRebateCostprie()));
+			item.setSubTotalMoney(Objects.isNull(item.getPrice()) ? BigDecimal.ZERO : item.getPrice().multiply(itemExcel.getGoodsNum()));
+			item.setRegionId(exist ? null : region.getId());
+			item.setRegionName(exist ? null : region.getRegionName());
+			item.setBillNo(goodsDesc.getPlanNo());
+			item.setBillId(goodsDesc.getPlanId());
+			item.setInventory(goodsDesc.getBalanceQuantity());
 			if (count == 0) {
 				centerOrderPlanItemList.add(item);
 			}
@@ -178,5 +196,82 @@ public class CenterStockDescServiceImpl extends ServiceImpl<CenterStockDescMappe
 		return centerStockItemDetailsVos;
 	}
 
+	@Override
+	public R importItemName(List<CenterStockImportNameExcel> excelList, Long storageId) {
+		if (CollectionUtils.isEmpty(excelList)) {
+			return R.fail("导入数据不能为空");
+		}
+		List<String> codesList = excelList.stream().filter(stock -> StringUtils.hasText(stock.getGoodsName()) && StringUtils.hasText(stock.getDot()) && StringUtils.hasText(stock.getRegionName()))
+			.map(stock -> stock.getGoodsName() + "-" + stock.getDot() + "-" + stock.getRegionName()).distinct().collect(Collectors.toList());
+		if (excelList.size() != codesList.size()) {
+			return R.fail("导入数据存在重复商品名称+批次号+库区,请处理后再导入");
+		}
+		BladeUser bladeUser = AuthUtil.getUser();
+		List<CenterOrderPlanItem> centerOrderPlanItemList = new ArrayList<>();
+		LambdaQueryWrapper<CenterStockDesc> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(CenterStockDesc::getTenantId, bladeUser.getTenantId())
+			.eq(CenterStockDesc::getIsDeleted, 0)
+			// 需前端传仓库
+			.eq(CenterStockDesc::getStorageId, storageId)
+			.in(CenterStockDesc::getCname, excelList.stream().map(CenterStockImportNameExcel::getGoodsName).filter(StringUtils::hasText).distinct().collect(Collectors.toList()));
+		List<CenterStockDesc> centerStockDescList = baseMapper.selectList(lambdaQueryWrapper);
+		List<CenterStorageRegion> centerStorageRegionList = centerStorageRegionService.getStorageRegionList(storageId);
+		StringBuilder text = new StringBuilder();
+		for (int i = 0; i < excelList.size(); i++) {
+			int count = 0;
+			//判断必填项是否为空
+			CenterStockImportNameExcel itemExcel = excelList.get(i);
+			if (ObjectUtil.isEmpty(itemExcel.getGoodsName())) {
+				text.append("第").append(i + 2).append("行,商品名称为空").append("\n");
+				count = 1;
+			}
+			if (ObjectUtil.isEmpty(itemExcel.getGoodsNum())) {
+				text.append("第").append(i + 2).append("行,数量为空").append("\n");
+				count = 1;
+			}
+			if (!StringUtils.hasText(itemExcel.getDot())) {
+				text.append("第").append(i + 2).append("行,批次号为空").append("\n");
+				count = 1;
+			}
+			if (!StringUtils.hasText(itemExcel.getRegionName())) {
+				text.append("第").append(i + 2).append("行,库区为空").append("\n");
+				count = 1;
+			}
+			CenterStorageRegion region = centerStorageRegionList.stream().filter(e -> e.getRegionName().equals(itemExcel.getRegionName())).findFirst().orElse(null);
+			boolean exist = ObjectUtils.isEmpty(region);
+			if (exist) {
+				text.append("第").append(i + 2).append("行,库区不存在").append("\n");
+				count = 1;
+			}
+			CenterOrderPlanItem item = new CenterOrderPlanItem();
+			BeanUtil.copy(itemExcel, item);
+			//查询商品信息
+			CenterStockDesc goodsDesc = centerStockDescList.stream().filter(e -> e.getCname().equals(itemExcel.getGoodsName()) && (!exist && e.getRegionId().equals(region.getId()))
+				&& e.getDot().equals(itemExcel.getDot())).findFirst().orElse(null);
+			if (goodsDesc == null) {
+				text.append("第").append(i + 2).append("行,商品在该仓库不存在").append("\n");
+				continue;
+			}
+			item.setGoodsId(goodsDesc.getGoodsId());
+			item.setGoodsName(goodsDesc.getCname());
+			item.setGoodsNo(goodsDesc.getCode());
+			item.setBrandId(goodsDesc.getBrandId());
+			item.setBrandName(goodsDesc.getBrandName());
+			item.setPropertyName(goodsDesc.getTypeNo());
+			item.setPattern(goodsDesc.getBrandItem());
+			item.setGoodsDescription(goodsDesc.getProductDescription());
+			item.setSubTotalMoney(Objects.isNull(item.getPrice()) ? BigDecimal.ZERO : item.getPrice().multiply(itemExcel.getGoodsNum()));
+			item.setRegionId(exist ? null : region.getId());
+			item.setRegionName(exist ? null : region.getRegionName());
+			item.setBillNo(goodsDesc.getPlanNo());
+			item.setBillId(goodsDesc.getPlanId());
+			item.setInventory(goodsDesc.getBalanceQuantity());
+			if (count == 0) {
+				centerOrderPlanItemList.add(item);
+			}
+		}
+		return R.data(text.length() == 0 ? centerOrderPlanItemList : "导入失败:" + text);
+	}
+
 
 }

+ 10 - 1
blade-service/tire-center-warehouse/src/main/java/com/ecp/tire/center/warehouse/stock/service/ICenterStockDescService.java

@@ -5,10 +5,10 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.ecp.tire.center.warehouse.api.stock.entity.CenterStockDesc;
 import com.ecp.tire.center.warehouse.api.stock.vo.CenterStockDescVo;
 import com.ecp.tire.center.warehouse.api.stock.vo.CenterStockImportCodeExcel;
+import com.ecp.tire.center.warehouse.api.stock.vo.CenterStockImportNameExcel;
 import com.ecp.tire.center.warehouse.api.stock.vo.CenterStockItemDetailsVo;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
-import org.springblade.salesPart.excel.PjShipStockDetails;
 
 import java.util.List;
 
@@ -54,4 +54,13 @@ public interface ICenterStockDescService extends IService<CenterStockDesc> {
 	 * @return 结果
 	 */
 	List<CenterStockItemDetailsVo> getStockItemList(CenterStockDescVo stockDesc);
+
+	/**
+	 * 导入名称
+	 *
+	 * @param excelList 数据
+	 * @param storageId 仓库id
+	 * @return 结果
+	 */
+	R importItemName(List<CenterStockImportNameExcel> excelList, Long storageId);
 }

+ 24 - 3
blade-service/tire-center-warehouse/src/main/java/com/ecp/tire/center/warehouse/storage/impl/CenterStorageRegionServiceImpl.java

@@ -75,8 +75,8 @@ public class CenterStorageRegionServiceImpl extends ServiceImpl<CenterStorageReg
 		}
 		Set<Long> allIds = centerStorageRegionList.stream().map(CenterStorageRegion::getId).filter(Objects::nonNull).collect(Collectors.toSet());
 		return centerStorageRegionList.stream().filter(storage -> storage.getId() != null).filter(storage -> {
-				return !allIds.contains(storage.getParentId());
-			}).collect(Collectors.toList());
+			return !allIds.contains(storage.getParentId());
+		}).collect(Collectors.toList());
 	}
 
 	@Override
@@ -96,7 +96,28 @@ public class CenterStorageRegionServiceImpl extends ServiceImpl<CenterStorageReg
 		return R.status(baseMapper.updateById(updateStorageRegion) > 0);
 	}
 
-	private List<StorageRegionTreeVo> getChildrenData(Long id, List<CenterStorageRegion> centerStorageRegionList){
+	@Override
+	public List<CenterStorageRegion> getStorageRegionList(Long storageId) {
+		List<CenterStorageRegion> centerStorageRegionList = baseMapper.selectList(new LambdaQueryWrapper<CenterStorageRegion>()
+			.eq(CenterStorageRegion::getTenantId, AuthUtil.getTenantId()).eq(CenterStorageRegion::getIsDeleted, 0)
+		);
+		List<CenterStorageRegion> storageRegionList = new ArrayList<>();
+		this.getStorageChildrenData(storageId, centerStorageRegionList, storageRegionList);
+		return storageRegionList;
+	}
+
+	private void getStorageChildrenData(Long id, List<CenterStorageRegion> centerStorageRegionList, List<CenterStorageRegion> storageRegionList) {
+		List<CenterStorageRegion> storageRegionChildrenList = centerStorageRegionList.stream().filter(storageRegion -> storageRegion.getParentId().equals(id)).collect(Collectors.toList());
+		if (CollectionUtils.isEmpty(storageRegionChildrenList)) {
+			return;
+		}
+		storageRegionList.addAll(storageRegionChildrenList);
+		for (CenterStorageRegion storageRegion : storageRegionChildrenList) {
+			this.getStorageChildrenData(storageRegion.getId(), centerStorageRegionList, storageRegionList);
+		}
+	}
+
+	private List<StorageRegionTreeVo> getChildrenData(Long id, List<CenterStorageRegion> centerStorageRegionList) {
 		List<CenterStorageRegion> storageRegionList = centerStorageRegionList.stream().filter(storageRegion -> storageRegion.getParentId().equals(id)).collect(Collectors.toList());
 		if (CollectionUtils.isEmpty(storageRegionList)) {
 			return Collections.emptyList();

+ 8 - 0
blade-service/tire-center-warehouse/src/main/java/com/ecp/tire/center/warehouse/storage/service/ICenterStorageRegionService.java

@@ -50,4 +50,12 @@ public interface ICenterStorageRegionService extends IService<CenterStorageRegio
 	 * @return 结果
 	 */
 	R disabledStorageRegion(Long id);
+
+	/**
+	 * 获取该仓库下的所有库区
+	 *
+	 * @param storageId 仓库
+	 * @return 结果
+	 */
+	List<CenterStorageRegion> getStorageRegionList(Long storageId);
 }