Browse Source

2024年7月2日17:50:57

纪新园 1 year ago
parent
commit
db720b3d48
16 changed files with 367 additions and 60 deletions
  1. 65 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/excel/StockBrandExcel.java
  2. 23 0
      blade-service/blade-client/src/main/java/org/springblade/client/corps/excel/GoodsImportExcel.java
  3. 27 0
      blade-service/blade-client/src/main/java/org/springblade/client/goods/controller/GoodsDescController.java
  4. 3 0
      blade-service/blade-client/src/main/java/org/springblade/client/goods/service/IGoodsDescService.java
  5. 40 0
      blade-service/blade-client/src/main/java/org/springblade/client/goods/service/impl/GoodsDescServiceImpl.java
  6. 4 0
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/BillsServiceImpl.java
  7. 2 2
      blade-service/blade-los/src/main/java/org/springblade/los/finance/invoices/service/impl/FinInvoicesServiceImpl.java
  8. 3 3
      blade-service/blade-los/src/main/java/org/springblade/los/finance/stl/service/impl/FinStlBillsServiceImpl.java
  9. 4 2
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/service/impl/ShipServiceImpl.java
  10. 184 46
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/stock/controller/StockDescController.java
  11. 2 1
      blade-service/blade-system/src/main/java/org/springblade/system/mapper/RegionMapper.java
  12. 2 1
      blade-service/blade-system/src/main/java/org/springblade/system/mapper/RegionMapper.xml
  13. 1 1
      blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RegionServiceImpl.java
  14. 2 1
      blade-service/blade-user/src/main/java/org/springblade/system/user/mapper/UserMapper.java
  15. 3 2
      blade-service/blade-user/src/main/java/org/springblade/system/user/mapper/UserMapper.xml
  16. 2 1
      blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java

+ 65 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/excel/StockBrandExcel.java

@@ -26,6 +26,26 @@ public class StockBrandExcel implements Serializable {
 	@ExcelProperty(value = "品牌")
 	private String brandName;
 	/**
+	 * 合计
+	 */
+	@ExcelProperty(value = "合计")
+	private BigDecimal goodsSizeTotal;
+	/**
+	 * 12
+	 */
+	@ExcelProperty(value = "12")
+	private BigDecimal goodsSize12;
+	/**
+	 * 13
+	 */
+	@ExcelProperty(value = "13")
+	private BigDecimal goodsSize13;
+	/**
+	 * 14
+	 */
+	@ExcelProperty(value = "14")
+	private BigDecimal goodsSize14;
+	/**
 	 * 15
 	 */
 	@ExcelProperty(value = "15")
@@ -50,6 +70,51 @@ public class StockBrandExcel implements Serializable {
 	 */
 	@ExcelProperty(value = "19")
 	private BigDecimal goodsSize19;
+	/**
+	 * 20
+	 */
+	@ExcelProperty(value = "20")
+	private BigDecimal goodsSize20;
+	/**
+	 * 21
+	 */
+	@ExcelProperty(value = "21")
+	private BigDecimal goodsSize21;
+	/**
+	 * 22
+	 */
+	@ExcelProperty(value = "22")
+	private BigDecimal goodsSize22;
+	/**
+	 * 23
+	 */
+	@ExcelProperty(value = "23")
+	private BigDecimal goodsSize23;
+	/**
+	 * 24
+	 */
+	@ExcelProperty(value = "24")
+	private BigDecimal goodsSize24;
+	/**
+	 * 25
+	 */
+	@ExcelProperty(value = "25")
+	private BigDecimal goodsSize25;
+	/**
+	 * 26
+	 */
+	@ExcelProperty(value = "26")
+	private BigDecimal goodsSize26;
+	/**
+	 * 27
+	 */
+	@ExcelProperty(value = "27")
+	private BigDecimal goodsSize27;
+	/**
+	 * 28
+	 */
+	@ExcelProperty(value = "28")
+	private BigDecimal goodsSize28;
 
 	/**
 	 * 其他

+ 23 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/excel/GoodsImportExcel.java

@@ -0,0 +1,23 @@
+package org.springblade.client.corps.excel;
+
+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;
+
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class GoodsImportExcel implements Serializable {
+
+	@ExcelProperty("商品编号(必填)")
+	private String code;
+
+	@ExcelProperty("分管员(必填)")
+	private String adminProfilesName;
+
+}

+ 27 - 0
blade-service/blade-client/src/main/java/org/springblade/client/goods/controller/GoodsDescController.java

@@ -28,6 +28,8 @@ import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
+import org.springblade.client.corps.excel.CorpsImportExcel;
+import org.springblade.client.corps.excel.GoodsImportExcel;
 import org.springblade.client.corps.service.ICorpsAttnService;
 import org.springblade.client.corps.service.ICorpsDescService;
 import org.springblade.client.entity.*;
@@ -972,4 +974,29 @@ public class GoodsDescController extends BladeController {
 		List<GoodsDesc> iPage = goodsDescService.list(lambdaQueryWrapper);
 		return R.data(iPage);
 	}
+
+
+	/**
+	 * 批量修改分管员
+	 */
+	@PostMapping("/importGoods")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "导入客户资料", notes = "传入excel")
+	public R importGoods(@RequestParam("file") MultipartFile file) {
+		List<GoodsImportExcel> excelList = ExcelUtil.read(file, GoodsImportExcel.class);
+		if (CollectionUtils.isEmpty(excelList)) {
+			throw new SecurityException("数据不能为空");
+		}
+		return goodsDescService.importCorp(excelList);
+	}
+
+	/**
+	 * 导出分管员模板
+	 */
+	@GetMapping("/exportAdminProfiles")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入corpsDesc")
+	public void exportAdminProfiles(HttpServletResponse response) {
+		ExcelUtil.export(response, "分管员模板", "分管员模板", new ArrayList<>(), GoodsImportExcel.class);
+	}
 }

+ 3 - 0
blade-service/blade-client/src/main/java/org/springblade/client/goods/service/IGoodsDescService.java

@@ -18,6 +18,7 @@ package org.springblade.client.goods.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.springblade.client.corps.excel.GoodsImportExcel;
 import org.springblade.client.dto.GoodsDescDto;
 import org.springblade.client.entity.GoodsDesc;
 import org.springblade.client.goods.excel.GoodsExcel;
@@ -168,4 +169,6 @@ public interface IGoodsDescService extends IService<GoodsDesc> {
 	R importDescPartsInfo(List<GoodsInfoPartsExcel> excelList, boolean b);
 
 	String getCnameInt(String cname);
+
+    R importCorp(List<GoodsImportExcel> excelList);
 }

+ 40 - 0
blade-service/blade-client/src/main/java/org/springblade/client/goods/service/impl/GoodsDescServiceImpl.java

@@ -25,6 +25,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import io.seata.spring.annotation.GlobalTransactional;
 import lombok.AllArgsConstructor;
+import org.springblade.client.corps.excel.GoodsImportExcel;
 import org.springblade.client.corps.mapper.CorpsDescMapper;
 import org.springblade.client.dto.GoodsDescDto;
 import org.springblade.client.entity.*;
@@ -46,6 +47,8 @@ import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.core.tool.utils.StringUtil;
 import org.springblade.salesPart.entity.PjBrandDesc;
 import org.springblade.salesPart.feign.IBrandClient;
+import org.springblade.system.user.entity.User;
+import org.springblade.system.user.feign.IUserClient;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -82,6 +85,7 @@ public class GoodsDescServiceImpl extends ServiceImpl<GoodsDescMapper, GoodsDesc
 	private final CorpsDescMapper corpsDescMapper;
 	private final ICorpsDescClient corpsDescClient;
 	private final IBrandClient brandClient;
+	private final IUserClient userClient;
 
 
 	@Override
@@ -895,4 +899,40 @@ public class GoodsDescServiceImpl extends ServiceImpl<GoodsDescMapper, GoodsDesc
 		return m.replaceAll("").trim();
 	}
 
+	@Override
+	@Transactional
+	public R importCorp(List<GoodsImportExcel> excelList) {
+		List<GoodsDesc> goodsDescList = new ArrayList<>();
+		String adminProfilesName = excelList.stream().map(GoodsImportExcel::getAdminProfilesName).distinct().collect(Collectors.joining(","));
+		String userIds = userClient.selectUserByNames(adminProfilesName);
+		List<User> userList = new ArrayList<>();
+		if (ObjectUtils.isNotNull(userIds)){
+			userList = userClient.selectUserList(userIds);
+		}
+		for (GoodsImportExcel item : excelList) {
+			GoodsDesc goodsDesc = baseMapper.selectOne(new LambdaQueryWrapper<GoodsDesc>()
+				.eq(GoodsDesc::getCode, item.getCode())
+				.eq(GoodsDesc::getTenantId, AuthUtil.getTenantId())
+				.eq(GoodsDesc::getIsDeleted, 0));
+			if (ObjectUtils.isNull(goodsDesc)) {
+				throw new RuntimeException("编号:" + item.getCode() + "不存在,修改失败");
+			}
+			if (!userList.isEmpty()) {
+				goodsDesc.setSupervisorUserNameGroup(userList.stream().map(User::getRealName)
+					.filter(realName -> item.getAdminProfilesName().contains(realName)).collect(Collectors.joining(",")));
+				List<Long> ids = userList.stream().map(User::getId).distinct().collect(Collectors.toList());
+				StringBuilder supervisorUserIdGroup = new StringBuilder();
+				for (Long e : ids) {
+					supervisorUserIdGroup.append(e).append(",");
+				}
+				if (ObjectUtils.isNotNull(supervisorUserIdGroup.toString())) {
+					goodsDesc.setSupervisorUserIdGroup(supervisorUserIdGroup.substring(0, supervisorUserIdGroup.length() - 1));
+				}
+			}
+			goodsDescList.add(goodsDesc);
+		}
+		this.updateBatchById(goodsDescList);
+		return R.success("修改成功");
+	}
+
 }

+ 4 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/BillsServiceImpl.java

@@ -1453,6 +1453,8 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 			item.setAppliedAmount(new BigDecimal("0.00"));
 			item.setAppliedInvoiceAmount(new BigDecimal("0.00"));
 			item.setReconciliationAmount(new BigDecimal("0.00"));
+			item.setAppliedAmountStl(new BigDecimal("0.00"));
+			item.setAppliedInvoiceAmountStl(new BigDecimal("0.00"));
 			item.setInvoiceById(0L);
 			item.setInvoiceByName("");
 			item.setIsSignfor(0);
@@ -1533,6 +1535,8 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 			item.setAppliedAmount(new BigDecimal("0.00"));
 			item.setAppliedInvoiceAmount(new BigDecimal("0.00"));
 			item.setReconciliationAmount(new BigDecimal("0.00"));
+			item.setAppliedAmountStl(new BigDecimal("0.00"));
+			item.setAppliedInvoiceAmountStl(new BigDecimal("0.00"));
 			item.setInvoiceById(0L);
 			item.setInvoiceByName("");
 			item.setIsSignfor(0);

+ 2 - 2
blade-service/blade-los/src/main/java/org/springblade/los/finance/invoices/service/impl/FinInvoicesServiceImpl.java

@@ -384,8 +384,8 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 						if (ObjectUtils.isNotNull(item.getApplySrcId())) {
 							feeCenter.setAppliedInvoiceAmountStl(feeCenter.getAmount());
 						}
+						currentStlAmount = currentStlAmount.subtract((feeCenter.getAmount().subtract(feeCenter.getUninvoicedAmount())));
 						feeCenter.setUninvoicedAmount(feeCenter.getAmount());
-						currentStlAmount = currentStlAmount.subtract(feeCenter.getAmount());
 					}
 					feeCenterList.add(feeCenter);
 				}
@@ -770,8 +770,8 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 							e.setAppliedInvoiceAmount(e.getAppliedInvoiceAmount().add(currentStlAmount));
 							currentStlAmount = new BigDecimal("0.00");
 						} else {
+							currentStlAmount = currentStlAmount.subtract((e.getAmount().subtract(e.getAppliedInvoiceAmount())));
 							e.setAppliedInvoiceAmount(e.getAmount());
-							currentStlAmount = currentStlAmount.subtract(e.getAmount());
 						}
 						feeCenterList.add(e);
 					}

+ 3 - 3
blade-service/blade-los/src/main/java/org/springblade/los/finance/stl/service/impl/FinStlBillsServiceImpl.java

@@ -429,8 +429,8 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 								feeCenter.setReconciliationAmount(feeCenter.getReconciliationAmount().add(currentStlAmount));
 								currentStlAmount = new BigDecimal("0.00");
 							} else {
+								currentStlAmount = currentStlAmount.subtract((feeCenter.getAmount().subtract(feeCenter.getReconciliationAmount())));
 								feeCenter.setReconciliationAmount(feeCenter.getAmount());
-								currentStlAmount = currentStlAmount.subtract(feeCenter.getAmount());
 							}
 						}
 						feeCenterList.add(feeCenter);
@@ -1002,9 +1002,9 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 								currentStlAmount = new BigDecimal("0.00");
 							} else {
 								e.setUnsettledAmount(new BigDecimal("0.00"));
+								currentStlAmount = currentStlAmount.subtract((e.getAmount().subtract(e.getStlTtlAmount())));
 								e.setStlTtlAmount(e.getAmount().subtract(e.getUnsettledAmount()));
 								e.setAppliedAmountStl(e.getAmount().subtract(e.getUnsettledAmount()).subtract(e.getAppliedAmountStl()));
-								currentStlAmount = currentStlAmount.subtract(e.getAmount());
 							}
 							/*} else {
 								if (e.getAmount().subtract(e.getStlTtlAmount()).compareTo(currentStlAmount) > 0) {
@@ -1035,8 +1035,8 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 								currentStlAmount = new BigDecimal("0.00");
 							} else {
 								e.setUnsettledAmount(new BigDecimal("0.00"));
+								currentStlAmount = currentStlAmount.subtract((e.getAmount().subtract(e.getStlTtlAmount())));
 								e.setStlTtlAmount(e.getAmount().subtract(e.getUnsettledAmount()));
-								currentStlAmount = currentStlAmount.subtract(e.getAmount());
 							}
 						}
 						feeCenterList.add(e);

+ 4 - 2
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/service/impl/ShipServiceImpl.java

@@ -651,7 +651,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 					throw new RuntimeException("商品数据异常");
 				}
 				if ("1".equals(goodsDesc.getWhether()) && ObjectUtils.isNull(item.getDot())) {
-					throw new RuntimeException("商品:" + goodsDesc.getCname() + ",请选择批次号");
+					throw new RuntimeException("商品:" + goodsDesc.getCname() + ",请选择批次号");
 				}
 				//管理批次号
 				PjStockDesc stockOne = null;
@@ -1128,7 +1128,9 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				if (ObjectUtil.isEmpty(goodsDesc)) {
 					throw new RuntimeException("商品数据异常");
 				}
-
+				if ("1".equals(goodsDesc.getWhether()) && ObjectUtils.isNull(item.getDot())) {
+					throw new RuntimeException("商品:" + goodsDesc.getCname() + ",请选择批次号");
+				}
 				PjOrderItems orderItems = pjOrderItems.stream().filter(e -> e.getId().equals(item.getSrcItemId())).findFirst().orElse(null);
 				if (orderItems != null) {
 					if (ship.getBillno().contains("TK")) {

+ 184 - 46
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/stock/controller/StockDescController.java

@@ -545,6 +545,7 @@ public class StockDescController extends BladeController {
 			.eq(PjStockDesc::getSalesCompanyId, AuthUtil.getDeptId())//公司
 			.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId())
 			.eq(ObjectUtil.isNotEmpty(stockDesc.getBrandId()), PjStockDesc::getBrandId, stockDesc.getBrandId())
+			.apply("balance_quantity != 0")
 			.orderByAsc(PjStockDesc::getCreateTime);
 		List<PjStockDesc> list = stockDescService.list(lambdaQueryWrapper);
 		List<StockBrandExcel> mapList = new ArrayList<>();
@@ -554,29 +555,97 @@ public class StockDescController extends BladeController {
 				.eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
 				.eq(PjGoodsDesc::getIsDeleted, 0)
 				.eq(PjGoodsDesc::getSalesCompanyId, AuthUtil.getDeptId()));
-			List<Long> ids15 = pjGoodsDescs.stream().filter(e -> e.getGoodsSize().equals("15")).map(PjGoodsDesc::getId)
-				.distinct().collect(Collectors.toList());
-			List<Long> ids16 = pjGoodsDescs.stream().filter(e -> e.getGoodsSize().equals("16")).map(PjGoodsDesc::getId)
-				.distinct().collect(Collectors.toList());
-			List<Long> ids17 = pjGoodsDescs.stream().filter(e -> e.getGoodsSize().equals("17")).map(PjGoodsDesc::getId)
-				.distinct().collect(Collectors.toList());
-			List<Long> ids18 = pjGoodsDescs.stream().filter(e -> e.getGoodsSize().equals("18")).map(PjGoodsDesc::getId)
-				.distinct().collect(Collectors.toList());
-			List<Long> ids19 = pjGoodsDescs.stream().filter(e -> e.getGoodsSize().equals("19")).map(PjGoodsDesc::getId)
-				.distinct().collect(Collectors.toList());
-			List<Long> idsOther = pjGoodsDescs.stream().filter(e -> !e.getGoodsSize().equals("15") && !e.getGoodsSize().equals("16")
-					&& !e.getGoodsSize().equals("17") && !e.getGoodsSize().equals("18") && !e.getGoodsSize().equals("19"))
-				.map(PjGoodsDesc::getId).distinct().collect(Collectors.toList());
-			for (String item : brandNames) {
-				StockBrandExcel stockBrandExcel = new StockBrandExcel();
-				stockBrandExcel.setBrandName(item);
-				stockBrandExcel.setGoodsSize15( list.stream().filter(e -> ids15.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
-				stockBrandExcel.setGoodsSize16( list.stream().filter(e -> ids16.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
-				stockBrandExcel.setGoodsSize17( list.stream().filter(e -> ids17.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
-				stockBrandExcel.setGoodsSize18( list.stream().filter(e -> ids18.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
-				stockBrandExcel.setGoodsSize19( list.stream().filter(e -> ids19.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
-				stockBrandExcel.setGoodsSizeOther( list.stream().filter(e -> idsOther.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
-				mapList.add(stockBrandExcel);
+			if (!pjGoodsDescs.isEmpty()) {
+				List<Long> ids12 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("12")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> ids13 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("13")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> ids14 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("14")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> ids15 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("15")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> ids16 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("16")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> ids17 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("17")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> ids18 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("18")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> ids19 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("19")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> ids20 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("20")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> ids21 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("21")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> ids22 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("22")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> ids23 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("23")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> ids24 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("24")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> ids25 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("25")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> ids26 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("26")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> ids27 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("27")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> ids28 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("28")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> idsOther = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNull(e.getGoodsSize()) || (!e.getGoodsSize().equals("12") && !e.getGoodsSize().equals("13")
+						&& !e.getGoodsSize().equals("14") && !e.getGoodsSize().equals("15") && !e.getGoodsSize().equals("16")
+						&& !e.getGoodsSize().equals("17") && !e.getGoodsSize().equals("18") && !e.getGoodsSize().equals("19")
+						&& !e.getGoodsSize().equals("20") && !e.getGoodsSize().equals("21") && !e.getGoodsSize().equals("22")
+						&& !e.getGoodsSize().equals("23") && !e.getGoodsSize().equals("24") && !e.getGoodsSize().equals("25")
+						&& !e.getGoodsSize().equals("26") && !e.getGoodsSize().equals("27") && !e.getGoodsSize().equals("28")))
+					.map(PjGoodsDesc::getId).distinct().collect(Collectors.toList());
+				for (String item : brandNames) {
+					StockBrandExcel stockBrandExcel = new StockBrandExcel();
+					stockBrandExcel.setBrandName(item);
+					stockBrandExcel.setGoodsSize12(list.stream().filter(e -> ids12.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSize13(list.stream().filter(e -> ids13.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSize14(list.stream().filter(e -> ids14.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSize15(list.stream().filter(e -> ids15.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSize16(list.stream().filter(e -> ids16.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSize17(list.stream().filter(e -> ids17.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSize18(list.stream().filter(e -> ids18.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSize19(list.stream().filter(e -> ids19.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSize20(list.stream().filter(e -> ids20.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSize21(list.stream().filter(e -> ids21.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSize22(list.stream().filter(e -> ids22.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSize23(list.stream().filter(e -> ids23.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSize24(list.stream().filter(e -> ids24.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSize25(list.stream().filter(e -> ids25.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSize26(list.stream().filter(e -> ids26.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSize27(list.stream().filter(e -> ids27.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSize28(list.stream().filter(e -> ids28.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSizeOther(list.stream().filter(e -> idsOther.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSizeTotal(stockBrandExcel.getGoodsSize12().add(stockBrandExcel.getGoodsSize13())
+						.add(stockBrandExcel.getGoodsSize14()).add(stockBrandExcel.getGoodsSize15()).add(stockBrandExcel.getGoodsSize16())
+						.add(stockBrandExcel.getGoodsSize17()).add(stockBrandExcel.getGoodsSize18()).add(stockBrandExcel.getGoodsSize19())
+						.add(stockBrandExcel.getGoodsSize20()).add(stockBrandExcel.getGoodsSize21()).add(stockBrandExcel.getGoodsSize22())
+						.add(stockBrandExcel.getGoodsSize23()).add(stockBrandExcel.getGoodsSize24()).add(stockBrandExcel.getGoodsSize25())
+						.add(stockBrandExcel.getGoodsSize26()).add(stockBrandExcel.getGoodsSize27()).add(stockBrandExcel.getGoodsSize28())
+					);
+					if (new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize12()) != 0 ||
+						new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize13()) != 0 ||
+						new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize14()) != 0 ||
+						new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize15()) != 0 ||
+						new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize16()) != 0 ||
+						new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize17()) != 0 ||
+						new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize18()) != 0 ||
+						new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize19()) != 0 ||
+						new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize20()) != 0 ||
+						new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize21()) != 0 ||
+						new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize22()) != 0 ||
+						new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize23()) != 0 ||
+						new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize24()) != 0 ||
+						new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize25()) != 0 ||
+						new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize26()) != 0 ||
+						new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize27()) != 0 ||
+						new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize28()) != 0
+					) {
+						mapList.add(stockBrandExcel);
+					}
+				}
 			}
 		}
 		return R.data(mapList);
@@ -593,6 +662,7 @@ public class StockDescController extends BladeController {
 			.eq(PjStockDesc::getSalesCompanyId, AuthUtil.getDeptId())//公司
 			.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId())
 			.eq(ObjectUtil.isNotEmpty(stockDesc.getBrandId()), PjStockDesc::getBrandId, stockDesc.getBrandId())
+			.apply("balance_quantity != 0")
 			.orderByAsc(PjStockDesc::getCreateTime);
 		List<PjStockDesc> list = stockDescService.list(lambdaQueryWrapper);
 		List<StockBrandExcel> stockBrandExcelList = new ArrayList<>();
@@ -602,29 +672,97 @@ public class StockDescController extends BladeController {
 				.eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
 				.eq(PjGoodsDesc::getIsDeleted, 0)
 				.eq(PjGoodsDesc::getSalesCompanyId, AuthUtil.getDeptId()));
-			List<Long> ids15 = pjGoodsDescs.stream().filter(e -> e.getGoodsSize().equals("15")).map(PjGoodsDesc::getId)
-				.distinct().collect(Collectors.toList());
-			List<Long> ids16 = pjGoodsDescs.stream().filter(e -> e.getGoodsSize().equals("16")).map(PjGoodsDesc::getId)
-				.distinct().collect(Collectors.toList());
-			List<Long> ids17 = pjGoodsDescs.stream().filter(e -> e.getGoodsSize().equals("17")).map(PjGoodsDesc::getId)
-				.distinct().collect(Collectors.toList());
-			List<Long> ids18 = pjGoodsDescs.stream().filter(e -> e.getGoodsSize().equals("18")).map(PjGoodsDesc::getId)
-				.distinct().collect(Collectors.toList());
-			List<Long> ids19 = pjGoodsDescs.stream().filter(e -> e.getGoodsSize().equals("19")).map(PjGoodsDesc::getId)
-				.distinct().collect(Collectors.toList());
-			List<Long> idsOther = pjGoodsDescs.stream().filter(e -> !e.getGoodsSize().equals("15") && !e.getGoodsSize().equals("16")
-					&& !e.getGoodsSize().equals("17") && !e.getGoodsSize().equals("18") && !e.getGoodsSize().equals("19"))
-				.map(PjGoodsDesc::getId).distinct().collect(Collectors.toList());
-			for (String item : brandNames) {
-				StockBrandExcel stockBrandExcel = new StockBrandExcel();
-				stockBrandExcel.setBrandName(item);
-				stockBrandExcel.setGoodsSize15( list.stream().filter(e -> ids15.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
-				stockBrandExcel.setGoodsSize16( list.stream().filter(e -> ids16.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
-				stockBrandExcel.setGoodsSize17( list.stream().filter(e -> ids17.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
-				stockBrandExcel.setGoodsSize18( list.stream().filter(e -> ids18.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
-				stockBrandExcel.setGoodsSize19( list.stream().filter(e -> ids19.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
-				stockBrandExcel.setGoodsSizeOther( list.stream().filter(e -> idsOther.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
-				stockBrandExcelList.add(stockBrandExcel);
+			if (!pjGoodsDescs.isEmpty()) {
+				List<Long> ids12 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("12")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> ids13 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("13")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> ids14 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("14")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> ids15 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("15")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> ids16 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("16")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> ids17 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("17")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> ids18 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("18")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> ids19 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("19")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> ids20 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("20")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> ids21 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("21")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> ids22 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("22")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> ids23 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("23")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> ids24 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("24")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> ids25 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("25")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> ids26 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("26")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> ids27 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("27")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> ids28 = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNotNull(e.getGoodsSize()) && e.getGoodsSize().equals("28")).map(PjGoodsDesc::getId)
+					.distinct().collect(Collectors.toList());
+				List<Long> idsOther = pjGoodsDescs.stream().filter(e -> ObjectUtils.isNull(e.getGoodsSize()) || (!e.getGoodsSize().equals("12") && !e.getGoodsSize().equals("13")
+						&& !e.getGoodsSize().equals("14") && !e.getGoodsSize().equals("15") && !e.getGoodsSize().equals("16")
+						&& !e.getGoodsSize().equals("17") && !e.getGoodsSize().equals("18") && !e.getGoodsSize().equals("19")
+						&& !e.getGoodsSize().equals("20") && !e.getGoodsSize().equals("21") && !e.getGoodsSize().equals("22")
+						&& !e.getGoodsSize().equals("23") && !e.getGoodsSize().equals("24") && !e.getGoodsSize().equals("25")
+						&& !e.getGoodsSize().equals("26") && !e.getGoodsSize().equals("27") && !e.getGoodsSize().equals("28")))
+					.map(PjGoodsDesc::getId).distinct().collect(Collectors.toList());
+				for (String item : brandNames) {
+					StockBrandExcel stockBrandExcel = new StockBrandExcel();
+					stockBrandExcel.setBrandName(item);
+					stockBrandExcel.setGoodsSize12(list.stream().filter(e -> ids12.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSize13(list.stream().filter(e -> ids13.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSize14(list.stream().filter(e -> ids14.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSize15(list.stream().filter(e -> ids15.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSize16(list.stream().filter(e -> ids16.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSize17(list.stream().filter(e -> ids17.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSize18(list.stream().filter(e -> ids18.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSize19(list.stream().filter(e -> ids19.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSize20(list.stream().filter(e -> ids20.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSize21(list.stream().filter(e -> ids21.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSize22(list.stream().filter(e -> ids22.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSize23(list.stream().filter(e -> ids23.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSize24(list.stream().filter(e -> ids24.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSize25(list.stream().filter(e -> ids25.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSize26(list.stream().filter(e -> ids26.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSize27(list.stream().filter(e -> ids27.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSize28(list.stream().filter(e -> ids28.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSizeOther(list.stream().filter(e -> idsOther.contains(e.getGoodsId()) && item.equals(e.getBrandName())).map(PjStockDesc::getBalanceQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
+					stockBrandExcel.setGoodsSizeTotal(stockBrandExcel.getGoodsSize12().add(stockBrandExcel.getGoodsSize13())
+						.add(stockBrandExcel.getGoodsSize14()).add(stockBrandExcel.getGoodsSize15()).add(stockBrandExcel.getGoodsSize16())
+						.add(stockBrandExcel.getGoodsSize17()).add(stockBrandExcel.getGoodsSize18()).add(stockBrandExcel.getGoodsSize19())
+						.add(stockBrandExcel.getGoodsSize20()).add(stockBrandExcel.getGoodsSize21()).add(stockBrandExcel.getGoodsSize22())
+						.add(stockBrandExcel.getGoodsSize23()).add(stockBrandExcel.getGoodsSize24()).add(stockBrandExcel.getGoodsSize25())
+						.add(stockBrandExcel.getGoodsSize26()).add(stockBrandExcel.getGoodsSize27()).add(stockBrandExcel.getGoodsSize28())
+					);
+					if (new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize12()) != 0 ||
+						new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize13()) != 0 ||
+						new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize14()) != 0 ||
+						new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize15()) != 0 ||
+						new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize16()) != 0 ||
+						new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize17()) != 0 ||
+						new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize18()) != 0 ||
+						new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize19()) != 0 ||
+						new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize20()) != 0 ||
+						new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize21()) != 0 ||
+						new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize22()) != 0 ||
+						new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize23()) != 0 ||
+						new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize24()) != 0 ||
+						new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize25()) != 0 ||
+						new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize26()) != 0 ||
+						new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize27()) != 0 ||
+						new BigDecimal("0.00").compareTo(stockBrandExcel.getGoodsSize28()) != 0
+					) {
+						stockBrandExcelList.add(stockBrandExcel);
+					}
+				}
 			}
 		}
 		ExcelUtil.export(response, "库存查询-品牌", "库存查询-品牌", stockBrandExcelList, StockBrandExcel.class);

+ 2 - 1
blade-service/blade-system/src/main/java/org/springblade/system/mapper/RegionMapper.java

@@ -57,6 +57,7 @@ public interface RegionMapper extends BaseMapper<Region> {
 	 * @param queryWrapper
 	 * @return
 	 */
-	List<RegionExcel> exportRegion(@Param("ew") Wrapper<Region> queryWrapper);
+//	List<RegionExcel> exportRegion(@Param("ew") Wrapper<Region> queryWrapper);
+	List<RegionExcel> exportRegion();
 
 }

+ 2 - 1
blade-service/blade-system/src/main/java/org/springblade/system/mapper/RegionMapper.xml

@@ -98,8 +98,9 @@
         ORDER BY region.code
     </select>
 
+    <!--${ew.customSqlSegment}-->
     <select id="exportRegion" resultType="org.springblade.system.excel.RegionExcel">
-        SELECT * FROM blade_region ${ew.customSqlSegment}
+        SELECT * FROM blade_region
     </select>
 
 </mapper>

+ 1 - 1
blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RegionServiceImpl.java

@@ -115,6 +115,6 @@ public class RegionServiceImpl extends ServiceImpl<RegionMapper, Region> impleme
 
 	@Override
 	public List<RegionExcel> exportRegion(Wrapper<Region> queryWrapper) {
-		return baseMapper.exportRegion(queryWrapper);
+		return baseMapper.exportRegion();
 	}
 }

+ 2 - 1
blade-service/blade-user/src/main/java/org/springblade/system/user/mapper/UserMapper.java

@@ -60,7 +60,8 @@ public interface UserMapper extends BaseMapper<User> {
 	 * @param queryWrapper
 	 * @return
 	 */
-	List<UserExcel> exportUser(@Param("ew") Wrapper<User> queryWrapper);
+//	List<UserExcel> exportUser(@Param("ew") Wrapper<User> queryWrapper);
+	List<UserExcel> exportUser(String tenantId);
 
 	/**
 	 * 根据租户获取用户信息

+ 3 - 2
blade-service/blade-user/src/main/java/org/springblade/system/user/mapper/UserMapper.xml

@@ -77,9 +77,10 @@
         WHERE
             tenant_id = #{param1} and account = #{param2} and is_deleted = 0 and working_status = '0'
     </select>
-
+<!--${ew.customSqlSegment}-->
     <select id="exportUser" resultType="org.springblade.system.user.excel.UserExcel">
-        SELECT id, tenant_id, user_type, account, name, real_name, email, phone, birthday, role_id, dept_id, post_id FROM blade_user ${ew.customSqlSegment}
+        SELECT id, tenant_id, user_type, account, name, real_name, email, phone, birthday, role_id, dept_id, post_id FROM blade_user
+            where tenant_id = #{param1} and is_deleted = 0
     </select>
     <select id="gainUser" resultType="map">
          SELECT

+ 2 - 1
blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java

@@ -358,7 +358,8 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
 
 	@Override
 	public List<UserExcel> exportUser(Wrapper<User> queryWrapper) {
-		List<UserExcel> userList = baseMapper.exportUser(queryWrapper);
+		List<UserExcel> userList = new ArrayList<>();
+		userList = baseMapper.exportUser(AuthUtil.getTenantId());
 		userList.forEach(user -> {
 			user.setUserTypeName(DictCache.getValue(DictEnum.USER_TYPE, user.getUserType()));
 			user.setRoleName(StringUtil.join(SysCache.getRoleNames(user.getRoleId())));