Browse Source

2024年6月5日17:27:48

纪新园 1 year ago
parent
commit
3626a637e5
22 changed files with 377 additions and 163 deletions
  1. 7 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjGoodsDesc.java
  2. 6 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjOrder.java
  3. 7 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjStockDesc.java
  4. 1 1
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/excel/GoodsDescExportExcel.java
  5. 6 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/excel/PjOrderExportExcelReturnsCG.java
  6. 7 1
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/excel/PjOrderExportExcelReturnsXS.java
  7. 1 1
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/excel/PjOrderExportExcelXS.java
  8. 1 1
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/excel/StockExportExcel.java
  9. 20 21
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/goods/controller/GoodsDescController.java
  10. 31 7
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/OrderController.java
  11. 1 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/OrderStatisticsController.java
  12. 8 1
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/ReturnsController.java
  13. 6 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/mapper/OrderItemsMapper.xml
  14. 12 3
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/mapper/OrderMapper.xml
  15. 10 3
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/impl/OrderServiceImpl.java
  16. 8 10
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/productLaunch/controller/ProductLaunchController.java
  17. 2 2
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/settlement/service/impl/SettlementServiceImpl.java
  18. 6 1
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/controller/ShipController.java
  19. 6 1
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/controller/ShipReturnsController.java
  20. 227 108
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/statistics/service/impl/StatisticsServiceImpl.java
  21. 3 1
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/stock/controller/StockDescController.java
  22. 1 1
      blade-service/blade-user/src/main/java/org/springblade/system/user/controller/UserController.java

+ 7 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjGoodsDesc.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.salesPart.entity;
 
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -293,4 +294,10 @@ public class PjGoodsDesc implements Serializable {
 	@ApiModelProperty(value = "尺寸")
 	private String goodsSize;
 
+	/**
+	 * 商品IDS
+	 */
+	@TableField(exist = false)
+	private String goodIds;
+
 }

+ 6 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjOrder.java

@@ -581,4 +581,10 @@ public class PjOrder implements Serializable {
 	@TableField(exist = false)
 	private BigDecimal balanceAmount;
 
+	/**
+	 * 退款余额
+	 */
+	@TableField(exist = false)
+	private BigDecimal returnsBalanceAmount;
+
 }

+ 7 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjStockDesc.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.salesPart.entity;
 
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -258,4 +259,10 @@ public class PjStockDesc implements Serializable {
 	@TableField(exist = false)
 	private BigDecimal priceFour;
 
+	/**
+	 * 商品IDS
+	 */
+	@TableField(exist = false)
+	private String goods;
+
 }

+ 1 - 1
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/excel/GoodsDescExportExcel.java

@@ -71,7 +71,7 @@ public class GoodsDescExportExcel implements Serializable {
 	 * 商品IDS
 	 */
 	@ExcelProperty(value = "商品IDS")
-	private Long id;
+	private String goodIds;
 
 
 }

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

@@ -172,4 +172,10 @@ public class PjOrderExportExcelReturnsCG implements Serializable {
 	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	private Date updateTime;
 
+	/**
+	 * 商品IDS
+	 */
+	@ExcelProperty(value = "商品IDS")
+	private String goodsIds;
+
 }

+ 7 - 1
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/excel/PjOrderExportExcelReturnsXS.java

@@ -132,7 +132,7 @@ public class PjOrderExportExcelReturnsXS implements Serializable {
 	/**
 	 * 实际支付状态
 	 */
-	@ApiModelProperty(value = "支付状态")
+	@ExcelProperty(value = "支付状态")
 	private String paymentStatus;
 
 	@ExcelIgnore
@@ -172,4 +172,10 @@ public class PjOrderExportExcelReturnsXS implements Serializable {
 	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	private Date updateTime;
 
+	/**
+	 * 商品IDS
+	 */
+	@ExcelProperty(value = "商品IDS")
+	private String goodsIds;
+
 }

+ 1 - 1
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/excel/PjOrderExportExcelXS.java

@@ -138,7 +138,7 @@ public class PjOrderExportExcelXS implements Serializable {
 	/**
 	 * 实际支付状态
 	 */
-	@ApiModelProperty(value = "支付状态")
+	@ExcelProperty(value = "支付状态")
 	private String paymentStatus;
 
 	@ExcelIgnore

+ 1 - 1
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/excel/StockExportExcel.java

@@ -106,5 +106,5 @@ public class StockExportExcel implements Serializable {
 	 * 商品IDS
 	 */
 	@ExcelProperty(value = "商品IDS")
-	private Long goodsId;
+	private String goods;
 }

+ 20 - 21
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/goods/controller/GoodsDescController.java

@@ -115,9 +115,9 @@ public class GoodsDescController extends BladeController {
 			lambdaQueryWrapper.in(PjGoodsDesc::getGoodsTypeId, goodsIdList);
 		}
 
-		lambdaQueryWrapper.select(PjGoodsDesc::getId,PjGoodsDesc::getCname,PjGoodsDesc::getCode,PjGoodsDesc::getSpecificationAndModel,PjGoodsDesc::getBrandItem,
-				PjGoodsDesc::getBrandName,PjGoodsDesc::getGoodsSize,PjGoodsDesc::getInventoryAlert,PjGoodsDesc::getGoodsDescription,
-				PjGoodsDesc::getStatus,PjGoodsDesc::getEnableOrNot).eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
+		lambdaQueryWrapper.select(PjGoodsDesc::getId, PjGoodsDesc::getCname, PjGoodsDesc::getCode, PjGoodsDesc::getSpecificationAndModel, PjGoodsDesc::getBrandItem,
+				PjGoodsDesc::getBrandName, PjGoodsDesc::getGoodsSize, PjGoodsDesc::getInventoryAlert, PjGoodsDesc::getGoodsDescription,
+				PjGoodsDesc::getStatus, PjGoodsDesc::getEnableOrNot).eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
 			.eq(PjGoodsDesc::getIsDeleted, 0)
 			.eq(PjGoodsDesc::getSalesCompanyId, AuthUtil.getDeptId())//公司
 			.like(StringUtils.isNotBlank(goods.getSpecificationAndModel()), PjGoodsDesc::getSpecificationAndModel, goods.getSpecificationAndModel())//规格型号
@@ -134,22 +134,20 @@ public class GoodsDescController extends BladeController {
 		}
 		lambdaQueryWrapper.orderByDesc(PjGoodsDesc::getCreateTime);
 		IPage<PjGoodsDesc> pages = goodsDescService.page(Condition.getPage(query), lambdaQueryWrapper);
-		/*if (!pages.getRecords().isEmpty()) {
-			String typeId = pages.getRecords().stream().map(PjGoodsDesc::getGoodsTypeId).collect(Collectors.joining(","));
-//			String typeId = e.getGoodsTypeId();
-			String[] split = typeId.split(",");
-			List<String> stringList = Arrays.asList(split);
-			LambdaQueryWrapper<PjGoodsType> goodsTypeLambdaQueryWrapper = new LambdaQueryWrapper<>();
-			goodsTypeLambdaQueryWrapper.in(PjGoodsType::getId, stringList);
-			List<PjGoodsType> types = goodsDescType.list(goodsTypeLambdaQueryWrapper);
+
+		if (!pages.getRecords().isEmpty()) {
+			List<Long> ids = pages.getRecords().stream().map(PjGoodsDesc::getId).collect(Collectors.toList());
+			List<PjStockDesc> pjStockDescList = stockDescService.list(new LambdaQueryWrapper<PjStockDesc>()
+				.eq(PjStockDesc::getTenantId, AuthUtil.getTenantId())
+				.eq(PjStockDesc::getIsDeleted, 0)
+				.in(PjStockDesc::getGoodsId, ids));
 			pages.getRecords().forEach(e -> {
-				if (CollectionUtils.isNotEmpty(types)) {
-					List<String> typeStr = types.stream().filter(i -> e.getGoodsTypeId().contains(i.getId() + "")).map(PjGoodsType::getCname).collect(Collectors.toList());
-					e.setGoodsTypeName(typeStr.toString().replace("[", "").replace("]", ""));
+				if (!pjStockDescList.isEmpty()) {
+					e.setInventory(pjStockDescList.stream().filter(item -> e.getId().equals(item.getGoodsId()))
+						.map(PjStockDesc::getBalanceQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
 				}
-
 			});
-		}*/
+		}
 		return R.data(pages);
 	}
 
@@ -317,7 +315,7 @@ public class GoodsDescController extends BladeController {
 		List<PjGoodsDesc> list = goodsDescService.list(lambdaQueryWrapper);
 		list.forEach(e -> {
 			String typeId = e.getGoodsTypeId();
-			if (ObjectUtils.isNotNull(typeId)){
+			if (ObjectUtils.isNotNull(typeId)) {
 				String[] split = typeId.split(",");
 				List<String> stringList = Arrays.asList(split);
 				LambdaQueryWrapper<PjGoodsType> goodsTypeLambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -328,6 +326,7 @@ public class GoodsDescController extends BladeController {
 					e.setGoodsTypeName(typeStr.toString().replace("[", "").replace("]", ""));
 				}
 			}
+			e.setGoodIds(e.getId() + "");
 		});
 		ExcelUtil.export(response, "商品信息", "商品信息", BeanUtil.copy(list, GoodsDescExportExcel.class), GoodsDescExportExcel.class);
 	}
@@ -475,7 +474,7 @@ public class GoodsDescController extends BladeController {
 		}
 
 		IPage<PjGoodsDesc> list = goodsDescService.page(Condition.getPage(query), lambdaQueryWrapper);
-		if (!list.getRecords().isEmpty()){
+		if (!list.getRecords().isEmpty()) {
 			String typeId = list.getRecords().stream().map(PjGoodsDesc::getGoodsTypeId).filter(Objects::nonNull).collect(Collectors.joining(","));
 			String[] split = typeId.split(",");
 			List<String> stringList = Arrays.asList(split);
@@ -517,15 +516,15 @@ public class GoodsDescController extends BladeController {
 				String typeIds = item.getGoodsTypeId();
 				String[] typeIdsArry = typeIds.split(",");
 				List<String> typeList = Arrays.asList(typeIdsArry);
-				List<PjGoodsType> types = pjGoodsTypeList.stream().filter(e-> typeList.contains(e.getId()+"")).collect(Collectors.toList());
+				List<PjGoodsType> types = pjGoodsTypeList.stream().filter(e -> typeList.contains(e.getId() + "")).collect(Collectors.toList());
 				if (CollectionUtils.isNotEmpty(types)) {
 					List<String> typeStr = types.stream().map(PjGoodsType::getCname).collect(Collectors.toList());
 					item.setGoodsTypeName(typeStr.toString().replace("[", "").replace("]", ""));
 				}
 				List<PjGoodsFiles> goodsFilesList1 = new ArrayList<>();
-				goodsFilesList1 = goodsFilesList.stream().filter(e-> e.getPid().equals(item.getId())).collect(Collectors.toList());
+				goodsFilesList1 = goodsFilesList.stream().filter(e -> e.getPid().equals(item.getId())).collect(Collectors.toList());
 				if (goodsFilesList1.isEmpty() && ObjectUtils.isNotNull(item.getBrandId())) {
-					goodsFilesList1 = BeanUtil.copy(pjBrandFilesList.stream().filter(e->e.getPid().equals(item.getBrandId())).collect(Collectors.toList()), PjGoodsFiles.class);
+					goodsFilesList1 = BeanUtil.copy(pjBrandFilesList.stream().filter(e -> e.getPid().equals(item.getBrandId())).collect(Collectors.toList()), PjGoodsFiles.class);
 				}
 				item.setGoodsFilesList(goodsFilesList1);
 			}

+ 31 - 7
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/OrderController.java

@@ -101,7 +101,13 @@ public class OrderController extends BladeController {
 	@ApiOperation(value = "分页", notes = "传入order")
 	public R<IPage<PjOrder>> list(PjOrder order, Query query) {
 		LambdaQueryWrapper<PjOrder> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-		lambdaQueryWrapper.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
+		lambdaQueryWrapper.select(PjOrder::getId,PjOrder::getOrdNo,PjOrder::getSrcOrdNo,PjOrder::getBusinessSource,
+				PjOrder::getSalesCompanyName,PjOrder::getCustomerName,PjOrder::getSalerName,PjOrder::getStorageName,
+				PjOrder::getNumberRows,PjOrder::getGoodsNameJoin,PjOrder::getGoodsTotalNum,PjOrder::getTotalMoney,
+				PjOrder::getPaymentAmountTl,PjOrder::getStatus,PjOrder::getActualPaymentStatus,PjOrder::getReturnsStatus,
+				PjOrder::getBusinesDate,PjOrder::getPaymentDate,PjOrder::getCreateUser,PjOrder::getCreateTime,
+				PjOrder::getUpdateUser,PjOrder::getUpdateTime,PjOrder::getReturnsNumber,PjOrder::getReturnsAmount)
+			.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
 			.eq(PjOrder::getIsDeleted, 0)
 			.eq(PjOrder::getBsType, order.getBsType())
 			.eq(PjOrder::getSalesCompanyId, AuthUtil.getDeptId())//公司
@@ -273,7 +279,7 @@ public class OrderController extends BladeController {
 		List<PjOrderItems> pjOrderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
 			.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
 			.eq(PjOrderItems::getIsDeleted, 0)
-			.eq(PjOrderItems::getPid, pages.stream().map(PjOrder::getId).distinct().collect(Collectors.toList())));
+			.in(PjOrderItems::getPid, pages.stream().map(PjOrder::getId).distinct().collect(Collectors.toList())));
 		if (CollectionUtils.isNotEmpty(pages)) {
 			pages.forEach(item -> {
 				if (ObjectUtil.isNotEmpty(updateUserList)) {
@@ -282,7 +288,7 @@ public class OrderController extends BladeController {
 						item.setUpdateUserName(user.getName());
 					}
 				}
-				List<Long> pjOrderItems = pjOrderItemsList.stream().filter(e-> e.getPid().equals(item.getId()))
+				List<Long> pjOrderItems = pjOrderItemsList.stream().filter(e -> e.getPid().equals(item.getId()))
 					.map(PjOrderItems::getGoodsId).filter(Objects::nonNull).collect(Collectors.toList());
 				item.setGoodsIds(pjOrderItems.stream().map(Object::toString).collect(Collectors.joining(",")));
 				if (item.getGoodsTotalNum().compareTo(item.getReturnsNumber()) == 0) {
@@ -762,7 +768,7 @@ public class OrderController extends BladeController {
 			if ("TKXS".equals(item.getBsType()) || "TKCG".equals(item.getBsType())) {
 				item.setGoodsTotalNum(new BigDecimal("0"));
 				item.setTotalMoney(new BigDecimal("0.00"));
-				item.setBalanceAmount(item.getReturnsAmount().subtract(item.getPaymentAmountTl()));
+				item.setReturnsBalanceAmount(item.getReturnsAmount().subtract(item.getPaymentAmountTl()));
 			} else {
 				item.setReturnsAmount(new BigDecimal("0.00"));
 				item.setReturnsNumber(new BigDecimal("0"));
@@ -786,6 +792,7 @@ public class OrderController extends BladeController {
 			.ge(ObjectUtils.isNotNull(statusDate), PjOrder::getBusinesDate, statusDate)
 			.le(ObjectUtils.isNotNull(endDate), PjOrder::getBusinesDate, endDate)
 			.eq(PjOrder::getStatus, "已发货")
+			.apply("find_in_set(status,'已发货,已收货')")
 			.eq(PjOrder::getBsType, "XS");
 		if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("老板")) {
 			if (AuthUtil.getUserRole().contains("业务员")) {
@@ -810,18 +817,35 @@ public class OrderController extends BladeController {
 		BigDecimal profit = new BigDecimal("0.00");
 		//成本
 		BigDecimal cost = new BigDecimal("0.00");
+		BigDecimal returnsCost = new BigDecimal("0.00");
+		BigDecimal returnsAmount = new BigDecimal("0.00");
 		//平均客单价
 		BigDecimal averageAmount = new BigDecimal("0.00");
 
 		if (!pjOrderListXS.isEmpty()) {
-			income = pjOrderListXS.stream().map(PjOrder::getTotalMoney).filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-			cost = pjOrderListXS.stream().map(PjOrder::getCost).filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add);
+			List<Long> orderIdsD = pjOrderListXS.stream().map(PjOrder::getId).collect(Collectors.toList());
+			if (!orderIdsD.isEmpty()) {
+				List<PjOrderItems> pjOrderItemsListD = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
+					.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
+					.eq(PjOrderItems::getIsDeleted, 0)
+					.in(PjOrderItems::getPid, orderIdsD));
+				if (!pjOrderItemsListD.isEmpty()) {
+					income = pjOrderItemsListD.stream().map(PjOrderItems::getSubTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
+					returnsAmount = pjOrderItemsListD.stream().map(PjOrderItems::getReturnsAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
+					cost = pjOrderItemsListD.stream().map(PjOrderItems::getCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
+					returnsCost = pjOrderItemsListD.stream().filter(e -> ObjectUtils.isNotNull(e.getReturnsNumber())
+							&& new BigDecimal("0").compareTo(e.getReturnsNumber()) != 0)
+						.map(PjOrderItems::getCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
+				}
+			}
+			income = income.subtract(returnsAmount);
+			cost = cost.subtract(returnsCost);
 			profit = income.subtract(cost);
 			averageAmount = averageAmount.add(income.divide(new BigDecimal(pjOrderListXS.size()), MathContext.DECIMAL32).setScale(2, BigDecimal.ROUND_HALF_UP));
 
 		}
 		if (!pjOrderListCG.isEmpty() && AuthUtil.getUserRole().contains("admin")) {
-			expenditure = pjOrderListCG.stream().map(PjOrder::getTotalMoney).filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add);
+			expenditure = pjOrderListCG.stream().map(PjOrder::getSalesAmount).filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add);
 		}
 		map.put("income", income);
 		map.put("expenditure", expenditure);

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

@@ -68,6 +68,7 @@ public class OrderStatisticsController extends BladeController {
 		if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("老板")) {
 			order.setSalesCompanyId(Long.parseLong(AuthUtil.getDeptId()));//公司
 		}
+		order.setSalesCompanyId(Long.parseLong(AuthUtil.getDeptId()));//公司
 		List<PjOrder> pjOrderList = orderService.salesman(order);
 		return R.data(pjOrderList);
 	}

+ 8 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/ReturnsController.java

@@ -70,7 +70,14 @@ public class ReturnsController {
 	@ApiOperation(value = "分页", notes = "传入order")
 	public R<IPage<PjOrder>> list(PjOrder order, Query query) {
 		LambdaQueryWrapper<PjOrder> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-		lambdaQueryWrapper.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
+		lambdaQueryWrapper.select(PjOrder::getId,PjOrder::getOrdNo,PjOrder::getSrcOrdNo,PjOrder::getBusinessSource,
+				PjOrder::getSalesCompanyName,PjOrder::getCustomerName,PjOrder::getSalerName,PjOrder::getStorageName,
+				PjOrder::getNumberRows,PjOrder::getGoodsNameJoin,PjOrder::getGoodsTotalNum,PjOrder::getTotalMoney,
+				PjOrder::getPaymentAmountTl,PjOrder::getStatus,PjOrder::getActualPaymentStatus,PjOrder::getReturnsStatus,
+				PjOrder::getBusinesDate,PjOrder::getPaymentDate,PjOrder::getCreateUser,PjOrder::getCreateTime,
+				PjOrder::getUpdateUser,PjOrder::getUpdateTime,PjOrder::getReturnsNumber,PjOrder::getReturnsAmount,
+				PjOrder::getSrcNo)
+			.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
 			.eq(PjOrder::getIsDeleted, 0)
 			.eq(PjOrder::getBsType, order.getBsType())
 			.eq(PjOrder::getSalesCompanyId, AuthUtil.getDeptId())//公司

+ 6 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/mapper/OrderItemsMapper.xml

@@ -202,6 +202,9 @@
         <if test="saleDetailDto.dateEnd !=null and saleDetailDto.dateEnd !=''">
             and DATE_FORMAT(po.delivery_busines_date,'%Y-%m-%d') &lt;= #{saleDetailDto.dateEnd}
         </if>
+        <if test='saleDetailDto.bsType !=null and saleDetailDto.bsType !="" and saleDetailDto.bsType == "XS"'>
+            and not FIND_IN_SET(po.`status`,'退款请核,已取消,已退款,售后中')
+        </if>
         <if test='saleDetailDto.isContain !=null and saleDetailDto.isContain !="" and saleDetailDto.isContain == "1"'>
             and ( (FIND_IN_SET(po.bs_type,'XS,CG') and FIND_IN_SET(po.`status`,'待确认,待发货,已发货,退款请核,已取消,已退款,售后中,已收货'))
             or (FIND_IN_SET(po.bs_type,'TKXS,TKCG') and FIND_IN_SET(po.`status`,'已完成')) )
@@ -380,6 +383,9 @@
         <if test="dateEnd !=null and dateEnd !=''">
             and DATE_FORMAT(po.delivery_busines_date,'%Y-%m-%d') &lt;= #{dateEnd}
         </if>
+        <if test='bsType !=null and bsType !="" and bsType == "XS"'>
+            and not FIND_IN_SET(po.`status`,'退款请核,已取消,已退款,售后中')
+        </if>
         <if test='isContain !=null and isContain !="" and isContain == "1"'>
           and ( (FIND_IN_SET(po.bs_type,'XS,CG') and FIND_IN_SET(po.`status`,'待确认,待发货,已发货,退款请核,已取消,已退款,售后中,已收货'))
               or (FIND_IN_SET(po.bs_type,'TKXS,TKCG') and FIND_IN_SET(po.`status`,'已完成')) )

+ 12 - 3
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/mapper/OrderMapper.xml

@@ -128,7 +128,7 @@
         SELECT
             bu.account as salerName,
             SUM(po.goods_total_num) as goodsTotalNum,
-            SUM(po.total_money) as totalMoney
+            SUM(po.sales_amount) as totalMoney
         FROM
             pjpf_order po
                 LEFT JOIN blade_user bu ON po.saler_id = bu.id
@@ -152,8 +152,8 @@
     </select>
     <select id="columnar" resultType="java.util.Map">
         SELECT
-        IF(SUM( po.goods_total_num ),SUM( po.goods_total_num ),0) AS goodsTotalNum,
-        IF(SUM( po.total_money ),SUM( po.total_money ),0.00) AS totalMoney
+        IF(SUM( po.goods_total_num ),SUM( po.goods_total_num ),0)-IF(SUM( po.returns_number ),SUM( po.returns_number ),0.00) AS goodsTotalNum,
+        IF(SUM( po.sales_amount ),SUM( po.sales_amount ),0.00) -IF(SUM( po.returns_amount ),SUM( po.returns_amount ),0.00)  AS totalMoney
         FROM
         pjpf_order po
         LEFT JOIN blade_user bu ON po.saler_id = bu.id
@@ -168,6 +168,7 @@
         po.business_source = '内部销售'
         AND FIND_IN_SET( po.actual_payment_status, '0,1,2,3' ))
         OR (business_source = '额度支付' AND FIND_IN_SET( actual_payment_status, '0,1,2,3' )))
+        AND FIND_IN_SET( po.status, '已发货,已收货' )
         <if test="firstDay != null">
             and po.busines_date &gt;= #{firstDay}
         </if>
@@ -554,6 +555,7 @@
         AND poi.tenant_id = #{sale.tenantId}
         AND po.tenant_id = #{sale.tenantId}
         AND po.bs_type = 'XS'
+          and find_in_set(po.status,'已发货,已收货,已取消,已退款,售后中,退款请核')
         <if test="sale.salesCompanyId !=null and sale.salesCompanyId != ''">
             and find_in_set(po.sales_company_id,#{sale.salesCompanyId})
         </if>
@@ -573,14 +575,17 @@
             and DATE_FORMAT(po.busines_date,'%Y-%m-%d') &lt;= #{sale.businesDateEnd}
         </if>
         <if test='sale.bsType!=null and sale.bsType != "" and sale.bsType == "1"'>
+            and po.customer_id is not NULL
             GROUP BY
             po.customer_id
         </if>
         <if test='sale.bsType!=null and sale.bsType != "" and sale.bsType == "2"'>
+            and po.saler_id is not NULL
             GROUP BY
             po.saler_id
         </if>
         <if test='sale.bsType ==null or sale.bsType == ""'>
+            and po.customer_id is not NULL
             GROUP BY
             po.customer_id
         </if>
@@ -615,6 +620,7 @@
         AND poi.tenant_id = #{sale.tenantId}
         AND po.tenant_id = #{sale.tenantId}
         AND po.bs_type = 'XS'
+        and find_in_set(po.status,'已发货,已收货,已取消,已退款,售后中,退款请核')
         <if test="sale.salesCompanyId !=null and sale.salesCompanyId != ''">
             and find_in_set(po.sales_company_id,#{sale.salesCompanyId})
         </if>
@@ -634,14 +640,17 @@
             and DATE_FORMAT(po.busines_date,'%Y-%m-%d') &lt;= #{sale.businesDateEnd}
         </if>
         <if test='sale.bsType!=null and sale.bsType != "" and sale.bsType == "1"'>
+            and po.customer_id is not NULL
             GROUP BY
             po.customer_id
         </if>
         <if test='sale.bsType!=null and sale.bsType != "" and sale.bsType == "2"'>
+            and po.saler_id is not NULL
             GROUP BY
             po.saler_id
         </if>
         <if test='sale.bsType ==null or sale.bsType == ""'>
+            and po.customer_id is not NULL
             GROUP BY
             po.customer_id
         </if>

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

@@ -304,12 +304,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 			LocalDate firstDay = yearMonth.atDay(1);
 			LocalDate lastDay = yearMonth.atEndOfMonth();
 			Map<String, BigDecimal> sum = new HashMap<>();
-			if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("老板")) {
+//			if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("老板")) {
 				sum = baseMapper.columnar(firstDay, lastDay, AuthUtil.getTenantId(), Long.parseLong(AuthUtil.getDeptId()));
-			} else {
+			/*} else {
 				sum = baseMapper.columnar(firstDay, lastDay, AuthUtil.getTenantId(), null);
 
-			}
+			}*/
 			number.add(sum.get("goodsTotalNum"));
 			amount.add(sum.get("totalMoney"));
 		}
@@ -3117,6 +3117,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		if (order == null) {
 			throw new SecurityException("审批通过失败");
 		}
+		order.setReturnsNumber(order.getGoodsTotalNum());
+		order.setReturnsAmount(order.getSalesAmount());
 		List<Long> goodsIds = new ArrayList<>();
 		if ("XS".equals(order.getBsType()) || "TKXS".equals(order.getBsType())) {
 			PjCorpsDesc corpsDesc = corpsDescMapper.selectById(order.getCustomerId());
@@ -3217,6 +3219,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 					shipMapper.insert(pjShip);
 					if (ObjectUtil.isNotEmpty(list)) {
 						for (PjOrderItems e : list) {
+							e.setReturnsNumber(e.getGoodsNum());
+							e.setReturnsAmount(e.getTotalAmount());
 							if (ObjectUtils.isNull(e.getSendNum()) || e.getSendNum().compareTo(new BigDecimal("0.00")) == 0) {
 								continue;
 							} else {
@@ -3258,6 +3262,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 					//修改库存账信息
 					if (CollectionUtils.isNotEmpty(list)) {
 						list.forEach(item -> {
+							item.setReturnsNumber(item.getGoodsNum());
+							item.setReturnsAmount(item.getTotalAmount());
 							if (item.getId() == null) {
 								item.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
 								item.setCreateTime(new Date());
@@ -3301,6 +3307,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 					//生成历史记录
 					saveHistory(order.getId(), "已退款");
 				}
+				orderItemsService.updateBatchById(list);
 			}
 			corpsDesc.setLimitAmount(corpsDesc.getLimitAmount().add(order.getTotalMoney()));
 			corpsDescMapper.updateById(corpsDesc);

+ 8 - 10
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/productLaunch/controller/ProductLaunchController.java

@@ -57,9 +57,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
-import java.math.BigDecimal;
 import java.util.ArrayList;
-import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -134,7 +132,7 @@ public class ProductLaunchController extends BladeController {
 				lambdaQueryWrapper.like(PjProductLaunch::getBrandName, brandName);
 			} else {
 				String[] chineseWords = productLaunch.getCname().split("[^一-龥]");
-				if (chineseWords.length > 0){
+				if (chineseWords.length > 0) {
 					String cname = productLaunch.getCname().substring(chineseWords[0].length());
 					lambdaQueryWrapper.and(i -> i.like(PjProductLaunch::getCname, cname)
 						.or().like(PjProductLaunch::getCnameInt, cname)
@@ -142,7 +140,7 @@ public class ProductLaunchController extends BladeController {
 						.or().like(PjProductLaunch::getSpecificationAndModel, cname)
 					);
 					lambdaQueryWrapper.like(PjProductLaunch::getBrandName, chineseWords[0]);
-				}else{
+				} else {
 					lambdaQueryWrapper.and(i -> i.like(PjProductLaunch::getCname, productLaunch.getCname())
 						.or().like(PjProductLaunch::getCnameInt, productLaunch.getCname())
 						.or().like(PjProductLaunch::getBrandItem, productLaunch.getCname())
@@ -438,7 +436,7 @@ public class ProductLaunchController extends BladeController {
 			.eq(PjGoodsDesc::getIsDeleted, 0)
 			.eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId()));
 		if ("1".equals(productLaunch.getWhetherIntegral())) {
-			List<PjGoodsDesc> pjGoodsDescs = pjGoodsDescList.stream().filter(e-> e.getWhetherIntegral().equals("1")).collect(Collectors.toList());
+			List<PjGoodsDesc> pjGoodsDescs = pjGoodsDescList.stream().filter(e -> e.getWhetherIntegral().equals("1")).collect(Collectors.toList());
 			if (!pjGoodsDescs.isEmpty()) {
 				List<Long> goodsId = pjGoodsDescs.stream().map(PjGoodsDesc::getId).collect(Collectors.toList());
 				lambdaQueryWrapper.in(PjProductLaunch::getGoodsId, goodsId);
@@ -448,11 +446,11 @@ public class ProductLaunchController extends BladeController {
 		String deptId = pjProductLaunchList.stream().map(PjProductLaunch::getSharedCompany).filter(ObjectUtils::isNotNull).distinct().collect(Collectors.joining(","));
 		R<List<Dept>> deptList = iSysClient.selectByDeptIds(deptId);
 		for (PjProductLaunch item : pjProductLaunchList) {
-			PjGoodsDesc pjGoodsDesc = pjGoodsDescList.stream().filter(e->e.getId().equals(item.getGoodsId())).findFirst().orElse(null);
-			if (pjGoodsDesc != null){
+			PjGoodsDesc pjGoodsDesc = pjGoodsDescList.stream().filter(e -> e.getId().equals(item.getGoodsId())).findFirst().orElse(null);
+			if (pjGoodsDesc != null) {
 				item.setCode(pjGoodsDesc.getCode());
 			}
-			item.setGoodsIds(item.getGoodsIds());
+			item.setGoodsIds(item.getGoodsId() + "");
 			if (ObjectUtils.isNotNull(deptList.getData()) && !deptList.getData().isEmpty()) {
 				String deptName = deptList.getData().stream()
 					.filter(e -> ObjectUtils.isNotNull(item.getSharedCompany()) && item.getSharedCompany().contains(e.getId() + ""))
@@ -544,7 +542,7 @@ public class ProductLaunchController extends BladeController {
 				lambdaQueryWrapper.like(PjProductLaunch::getBrandName, brandName);
 			} else {
 				String[] chineseWords = productLaunch.getCname().split("[^一-龥]");
-				if (chineseWords.length > 0){
+				if (chineseWords.length > 0) {
 					String cname = productLaunch.getCname().substring(chineseWords[0].length());
 					lambdaQueryWrapper.and(i -> i.like(PjProductLaunch::getCname, cname)
 						.or().like(PjProductLaunch::getCnameInt, cname)
@@ -552,7 +550,7 @@ public class ProductLaunchController extends BladeController {
 						.or().like(PjProductLaunch::getSpecificationAndModel, cname)
 					);
 					lambdaQueryWrapper.like(PjProductLaunch::getBrandName, chineseWords[0]);
-				}else{
+				} else {
 					lambdaQueryWrapper.and(i -> i.like(PjProductLaunch::getCname, productLaunch.getCname())
 						.or().like(PjProductLaunch::getCnameInt, productLaunch.getCname())
 						.or().like(PjProductLaunch::getBrandItem, productLaunch.getCname())

+ 2 - 2
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/settlement/service/impl/SettlementServiceImpl.java

@@ -340,8 +340,8 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, PjSettl
 							pjOrder.setPaymentAmountTl(new BigDecimal("0.00"));
 						}
 						thisAmount = thisAmount.subtract(item.getThisRefundAmount());
-						if (pjOrder.getPaymentAmountTl().equals(pjOrder.getReturnsAmount())) {
-							pjOrder.setActualPaymentStatus(2);
+						if (pjOrder.getPaymentAmountTl().equals(new BigDecimal("0.00"))) {
+							pjOrder.setActualPaymentStatus(1);
 						} else {
 							pjOrder.setActualPaymentStatus(3);
 						}

+ 6 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/controller/ShipController.java

@@ -96,7 +96,12 @@ public class ShipController extends BladeController {
 			throw new RuntimeException("缺少必要参数");
 		}
 		LambdaQueryWrapper<PjShip> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-		lambdaQueryWrapper.eq(PjShip::getTenantId, AuthUtil.getTenantId())
+		lambdaQueryWrapper.select(PjShip::getId,PjShip::getBillno,PjShip::getOrdNo,PjShip::getSrcOrdNo,PjShip::getBizTypeName,
+				PjShip::getCustomerName,PjShip::getBsType,PjShip::getStorageName,PjShip::getStockClerkName,PjShip::getSendTotalNum,
+				PjShip::getGoodsTotalNum,PjShip::getStatusName,PjShip::getBusinesDate,PjShip::getCreateUser,PjShip::getCreateTime,
+				PjShip::getUpdateUser,PjShip::getUpdateTime,PjShip::getSalesCompanyName,PjShip::getRecAddress,PjShip::getPhone,
+				PjShip::getContacts,PjShip::getRemarks,PjShip::getCallInStorageName)
+			.eq(PjShip::getTenantId, AuthUtil.getTenantId())
 			.eq(PjShip::getIsDeleted, 0)
 			.eq(PjShip::getSalesCompanyId, AuthUtil.getDeptId())//公司
 			.like(ObjectUtil.isNotEmpty(ship.getOrdNo()), PjShip::getOrdNo, ship.getOrdNo())//销售订单

+ 6 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/controller/ShipReturnsController.java

@@ -94,7 +94,12 @@ public class ShipReturnsController extends BladeController {
 			throw new RuntimeException("缺少必要参数");
 		}
 		LambdaQueryWrapper<PjShip> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-		lambdaQueryWrapper.eq(PjShip::getTenantId, AuthUtil.getTenantId())
+		lambdaQueryWrapper.select(PjShip::getId,PjShip::getBillno,PjShip::getOrdNo,PjShip::getSrcOrdNo,PjShip::getBizTypeName,
+				PjShip::getCustomerName,PjShip::getBsType,PjShip::getStorageName,PjShip::getStockClerkName,PjShip::getSendTotalNum,
+				PjShip::getGoodsTotalNum,PjShip::getStatusName,PjShip::getBusinesDate,PjShip::getCreateUser,PjShip::getCreateTime,
+				PjShip::getUpdateUser,PjShip::getUpdateTime,PjShip::getSalesCompanyName,PjShip::getRecAddress,PjShip::getPhone,
+				PjShip::getContacts,PjShip::getRemarks,PjShip::getCallInStorageName)
+			.eq(PjShip::getTenantId, AuthUtil.getTenantId())
 			.eq(PjShip::getIsDeleted, 0)
 			.eq(PjShip::getSalesCompanyId, AuthUtil.getDeptId())//公司
 			.like(ObjectUtil.isNotEmpty(ship.getOrdNo()), PjShip::getOrdNo, ship.getOrdNo())//销售订单

+ 227 - 108
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/statistics/service/impl/StatisticsServiceImpl.java

@@ -68,8 +68,15 @@ public class StatisticsServiceImpl implements IStatisticsService {
 		BigDecimal stlAmountM = new BigDecimal("0.00");
 		BigDecimal profitD = new BigDecimal("0.00");
 		BigDecimal profitM = new BigDecimal("0.00");
+		BigDecimal returnsNumberD = new BigDecimal("0.00");
+		BigDecimal returnsNumberM = new BigDecimal("0.00");
+		BigDecimal returnsAmountD = new BigDecimal("0.00");
+		BigDecimal returnsAmountM = new BigDecimal("0.00");
 		//成本
-		BigDecimal cost = new BigDecimal("0.00");
+		BigDecimal costD = new BigDecimal("0.00");
+		BigDecimal costM = new BigDecimal("0.00");
+		BigDecimal returnsCostD = new BigDecimal("0.00");
+		BigDecimal returnsCostM = new BigDecimal("0.00");
 		List<PjOrder> pjOrderListD = orderService.list(new LambdaQueryWrapper<PjOrder>()
 			.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
 			.eq(PjOrder::getSalesCompanyId, AuthUtil.getDeptId())
@@ -78,7 +85,7 @@ public class StatisticsServiceImpl implements IStatisticsService {
 			.apply("(( business_source = '外部销售' AND FIND_IN_SET( actual_payment_status, '2,3' ) ) " +
 				"OR (business_source = '内部销售' AND FIND_IN_SET( actual_payment_status, '0,1,2,3' ))" +
 				" OR (business_source = '额度支付' AND FIND_IN_SET( actual_payment_status, '0,1,2,3' )))")
-			.apply("status = '已发货' and busines_date = CURDATE()"));
+			.apply("FIND_IN_SET( status, '已发货,已收货' ) and busines_date = CURDATE()"));
 		if (!pjOrderListD.isEmpty()) {
 			List<Long> orderIdsD = pjOrderListD.stream().map(PjOrder::getId).collect(Collectors.toList());
 			if (!orderIdsD.isEmpty()) {
@@ -88,12 +95,20 @@ public class StatisticsServiceImpl implements IStatisticsService {
 					.in(PjOrderItems::getPid, orderIdsD));
 				if (!pjOrderItemsListD.isEmpty()) {
 					salesNumD = pjOrderItemsListD.stream().map(PjOrderItems::getSendNum).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
+					dealAmountD = pjOrderItemsListD.stream().map(PjOrderItems::getSubTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
+					returnsAmountD = pjOrderItemsListD.stream().map(PjOrderItems::getReturnsAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
+					returnsNumberD = pjOrderItemsListD.stream().map(PjOrderItems::getReturnsNumber).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
+					costD = pjOrderItemsListD.stream().map(PjOrderItems::getCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
+					returnsCostD = pjOrderItemsListD.stream().filter(e -> ObjectUtils.isNotNull(e.getReturnsNumber())
+							&& new BigDecimal("0").compareTo(e.getReturnsNumber()) != 0)
+						.map(PjOrderItems::getCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
 				}
 			}
-			dealAmountD = pjOrderListD.stream().map(PjOrder::getTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-			cost = pjOrderListD.stream().map(PjOrder::getCost).filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-			stlAmountD = pjOrderListD.stream().filter(e -> ObjectUtils.isNotNull(e.getOldTrxId())).map(PjOrder::getTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-			profitD = dealAmountD.subtract(cost);
+			salesNumD = salesNumD.subtract(returnsNumberD);
+			dealAmountD = dealAmountD.subtract(returnsAmountD);
+			costD = costD.subtract(returnsCostD);
+			stlAmountD = pjOrderListD.stream().filter(e -> ObjectUtils.isNotNull(e.getOldTrxId()) && "已发货".equals(e.getStatus())).map(PjOrder::getSalesAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
+			profitD = dealAmountD.subtract(costD);
 		}
 		List<PjOrder> pjOrderListM = orderService.list(new LambdaQueryWrapper<PjOrder>()
 			.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
@@ -103,7 +118,7 @@ public class StatisticsServiceImpl implements IStatisticsService {
 			.apply("(( business_source = '外部销售' AND FIND_IN_SET( actual_payment_status, '2,3' ) ) " +
 				"OR (business_source = '内部销售' AND FIND_IN_SET( actual_payment_status, '0,1,2,3' ))" +
 				" OR (business_source = '额度支付' AND FIND_IN_SET( actual_payment_status, '0,1,2,3' )))")
-			.apply("status = '已发货' and DATE_FORMAT(busines_date, '%Y-%m') = DATE_FORMAT(CURRENT_DATE(), '%Y-%m')"));
+			.apply("FIND_IN_SET( status, '已发货,已收货' ) and DATE_FORMAT(busines_date, '%Y-%m') = DATE_FORMAT(CURRENT_DATE(), '%Y-%m')"));
 		if (!pjOrderListM.isEmpty()) {
 			List<Long> orderIdsM = pjOrderListM.stream().map(PjOrder::getId).collect(Collectors.toList());
 			if (!orderIdsM.isEmpty()) {
@@ -113,12 +128,20 @@ public class StatisticsServiceImpl implements IStatisticsService {
 					.in(PjOrderItems::getPid, orderIdsM));
 				if (!pjOrderItemsListM.isEmpty()) {
 					salesNumM = pjOrderItemsListM.stream().map(PjOrderItems::getSendNum).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
+					dealAmountM = pjOrderItemsListM.stream().map(PjOrderItems::getSubTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
+					returnsAmountM = pjOrderItemsListM.stream().map(PjOrderItems::getReturnsAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
+					returnsNumberM = pjOrderItemsListM.stream().map(PjOrderItems::getReturnsNumber).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
+					costM = pjOrderItemsListM.stream().map(PjOrderItems::getCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
+					returnsCostM = pjOrderItemsListM.stream().filter(e -> ObjectUtils.isNotNull(e.getReturnsNumber())
+							&& new BigDecimal("0").compareTo(e.getReturnsNumber()) != 0)
+						.map(PjOrderItems::getCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
 				}
 			}
-			dealAmountM = pjOrderListM.stream().map(PjOrder::getTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-			cost = pjOrderListM.stream().map(PjOrder::getCost).filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-			stlAmountM = pjOrderListM.stream().filter(e -> ObjectUtils.isNotNull(e.getOldTrxId())).map(PjOrder::getTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-			profitM = dealAmountM.subtract(cost);
+			salesNumM = salesNumM.subtract(returnsNumberM);
+			dealAmountM = dealAmountM.subtract(returnsAmountM);
+			costM = costM.subtract(returnsCostM);
+			stlAmountM = pjOrderListM.stream().filter(e -> ObjectUtils.isNotNull(e.getOldTrxId()) && "已发货".equals(e.getStatus())).map(PjOrder::getSalesAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
+			profitM = dealAmountM.subtract(costM);
 		}
 		map.put("dealAmountD", dealAmountD);
 		map.put("dealAmountM", dealAmountM);
@@ -324,6 +347,7 @@ public class StatisticsServiceImpl implements IStatisticsService {
 		if (!pjOrderList.isEmpty()) {
 			List<Long> ids = pjOrderList.stream().map(PjOrder::getId).collect(Collectors.toList());
 			BigDecimal sum = new BigDecimal("0");
+			BigDecimal returnsNumber = new BigDecimal("0");
 			if (!ids.isEmpty()) {
 				List<PjOrderItems> pjOrderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
 					.in(PjOrderItems::getPid, ids)
@@ -332,7 +356,12 @@ public class StatisticsServiceImpl implements IStatisticsService {
 				sum = pjOrderItemsList.stream().map(PjOrderItems::getSendNum)
 					.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
 					.setScale(0, RoundingMode.HALF_UP);
+				returnsNumber = pjOrderItemsList.stream().filter(e -> ObjectUtils.isNotNull(e.getReturnsNumber())
+						&& new BigDecimal("0").compareTo(e.getReturnsNumber()) != 0).map(PjOrderItems::getReturnsNumber)
+					.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
+					.setScale(0, RoundingMode.HALF_UP);
 			}
+			sum = sum.subtract(returnsNumber);
 			for (Map<String, Object> map : mapList) {
 				BigDecimal number = new BigDecimal(map.get("number").toString());
 				Map<String, Object> map1 = new HashMap<>();
@@ -367,6 +396,7 @@ public class StatisticsServiceImpl implements IStatisticsService {
 		if (!pjOrderList.isEmpty()) {
 			List<Long> ids = pjOrderList.stream().map(PjOrder::getId).collect(Collectors.toList());
 			BigDecimal sum = new BigDecimal("0");
+			BigDecimal returnsNumber = new BigDecimal("0");
 			if (!ids.isEmpty()) {
 				List<PjOrderItems> pjOrderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
 					.in(PjOrderItems::getPid, ids)
@@ -375,7 +405,12 @@ public class StatisticsServiceImpl implements IStatisticsService {
 				sum = pjOrderItemsList.stream().map(PjOrderItems::getSendNum)
 					.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
 					.setScale(0, RoundingMode.HALF_UP);
+				returnsNumber = pjOrderItemsList.stream().filter(e -> ObjectUtils.isNotNull(e.getReturnsNumber())
+						&& new BigDecimal("0").compareTo(e.getReturnsNumber()) != 0).map(PjOrderItems::getReturnsNumber)
+					.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
+					.setScale(0, RoundingMode.HALF_UP);
 			}
+			sum = sum.subtract(returnsNumber);
 			for (Map<String, Object> map : mapList) {
 				BigDecimal number = new BigDecimal(map.get("number").toString());
 				Map<String, Object> map1 = new HashMap<>();
@@ -409,6 +444,7 @@ public class StatisticsServiceImpl implements IStatisticsService {
 		if (!pjOrderList.isEmpty()) {
 			List<Long> ids = pjOrderList.stream().map(PjOrder::getId).collect(Collectors.toList());
 			BigDecimal sum = new BigDecimal("0");
+			BigDecimal returnsNumber = new BigDecimal("0");
 			if (!ids.isEmpty()) {
 				List<PjOrderItems> pjOrderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
 					.in(PjOrderItems::getPid, ids)
@@ -417,7 +453,12 @@ public class StatisticsServiceImpl implements IStatisticsService {
 				sum = pjOrderItemsList.stream().map(PjOrderItems::getSendNum)
 					.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
 					.setScale(0, RoundingMode.HALF_UP);
+				returnsNumber = pjOrderItemsList.stream().filter(e -> ObjectUtils.isNotNull(e.getReturnsNumber())
+						&& new BigDecimal("0").compareTo(e.getReturnsNumber()) != 0).map(PjOrderItems::getReturnsNumber)
+					.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
+					.setScale(0, RoundingMode.HALF_UP);
 			}
+			sum = sum.subtract(returnsNumber);
 			List<String> goodsSize = new ArrayList<>();
 			goodsSize.add("<=15");
 			goodsSize.add("=16");
@@ -457,7 +498,9 @@ public class StatisticsServiceImpl implements IStatisticsService {
 			.apply("status = '已发货'"));
 		//销售
 		BigDecimal income = new BigDecimal("0.00");
+		BigDecimal returnsIncome = new BigDecimal("0.00");
 		BigDecimal amount = new BigDecimal("0.00");
+		BigDecimal returnsAmount = new BigDecimal("0.00");
 		//平均客单价
 		BigDecimal averageAmount = new BigDecimal("0.00");
 		//客户数量
@@ -472,14 +515,24 @@ public class StatisticsServiceImpl implements IStatisticsService {
 				income = pjOrderItemsList.stream().map(PjOrderItems::getSendNum)
 					.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
 					.setScale(0, RoundingMode.HALF_UP);
+				returnsIncome = pjOrderItemsList.stream().filter(e -> ObjectUtils.isNotNull(e.getReturnsNumber())
+						&& new BigDecimal("0").compareTo(e.getReturnsNumber()) != 0).map(PjOrderItems::getReturnsNumber)
+					.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
+					.setScale(0, RoundingMode.HALF_UP);
 				amount = pjOrderItemsList.stream().map(PjOrderItems::getTotalAmount)
 					.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
 					.setScale(0, RoundingMode.HALF_UP);
+				returnsAmount = pjOrderItemsList.stream().filter(e -> ObjectUtils.isNotNull(e.getReturnsNumber())
+						&& new BigDecimal("0").compareTo(e.getReturnsAmount()) != 0).map(PjOrderItems::getReturnsNumber)
+					.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)
+					.setScale(0, RoundingMode.HALF_UP);
+				amount = amount.subtract(returnsAmount);
 				long sum = pjOrderList.stream().map(PjOrder::getCustomerId).filter(Objects::nonNull).distinct().count();
 				corpsNumber = corpsNumber.add(new BigDecimal(sum));
 				averageAmount = averageAmount.add(amount.divide(new BigDecimal(pjOrderList.size()), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
 			}
 		}
+		income = income.subtract(returnsIncome);
 		map.put("income", income);
 		map.put("averageAmount", averageAmount);
 		map.put("corpsNumber", corpsNumber);
@@ -720,60 +773,82 @@ public class StatisticsServiceImpl implements IStatisticsService {
 				item.setSalesQuantity(new BigDecimal("0"));
 				item.setSalesProfit(new BigDecimal("0.00"));
 				if ("1".equals(saleDetailDto.getBsType())) {
-					List<Long> ordersCorpR = orderList.stream().filter(e -> e.getCustomerId().equals(item.getId())
-						&& "已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
-					List<Long> ordersCorpS = orderList.stream().filter(e -> e.getCustomerId().equals(item.getId())
-						&& !"已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
+					List<Long> ordersCorpR = new ArrayList<>();
+					List<Long> ordersCorpS = new ArrayList<>();
+					if (ObjectUtils.isNotNull(saleDetailDto.getSalerName())){
+						 ordersCorpR = orderList.stream().filter(e -> e.getCustomerId().equals(item.getId())&& e.getSalerName().equals(saleDetailDto.getSalerName())
+							&& "已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
+						 ordersCorpS = orderList.stream().filter(e -> e.getCustomerId().equals(item.getId())&& e.getSalerName().equals(saleDetailDto.getSalerName())
+							&& !"已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
+					}else{
+						 ordersCorpR = orderList.stream().filter(e -> e.getCustomerId().equals(item.getId())
+							&& "已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
+						 ordersCorpS = orderList.stream().filter(e -> e.getCustomerId().equals(item.getId())
+							&& !"已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
+					}
 					if (!ordersCorpR.isEmpty()) {
-						item.setReturnAmount(new BigDecimal("0.00").subtract(pjOrderItemsList.stream().filter(e -> ordersCorpR.contains(e.getPid()))
+						List<Long> finalOrdersCorpR = ordersCorpR;
+						item.setReturnAmount(new BigDecimal("0.00").subtract(pjOrderItemsList.stream().filter(e -> finalOrdersCorpR.contains(e.getPid()))
 							.map(PjOrderItems::getSubTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)));
-						item.setReturnQuantity(new BigDecimal("0").subtract(pjOrderItemsList.stream().filter(e -> ordersCorpR.contains(e.getPid()))
+						item.setReturnQuantity(new BigDecimal("0").subtract(pjOrderItemsList.stream().filter(e -> finalOrdersCorpR.contains(e.getPid()))
 							.map(PjOrderItems::getGoodsNum).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(0, RoundingMode.HALF_UP)));
 					}
 					if (!ordersCorpS.isEmpty()) {
-						BigDecimal subTotalMoney = pjOrderItemsList.stream().filter(e -> ordersCorpS.contains(e.getPid()))
+						List<Long> finalOrdersCorpS = ordersCorpS;
+						BigDecimal subTotalMoney = pjOrderItemsList.stream().filter(e -> finalOrdersCorpS.contains(e.getPid()))
 							.map(PjOrderItems::getSubTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-						BigDecimal goodsNum = pjOrderItemsList.stream().filter(e -> ordersCorpS.contains(e.getPid()))
+						BigDecimal goodsNum = pjOrderItemsList.stream().filter(e -> finalOrdersCorpS.contains(e.getPid()))
 							.map(PjOrderItems::getGoodsNum).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-						BigDecimal returnsNumber = pjOrderItemsList.stream().filter(e -> ordersCorpS.contains(e.getPid()))
+						BigDecimal returnsNumber = pjOrderItemsList.stream().filter(e -> finalOrdersCorpS.contains(e.getPid()))
 							.map(PjOrderItems::getReturnsNumber).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-						BigDecimal returnsAmount = pjOrderItemsList.stream().filter(e -> ordersCorpS.contains(e.getPid()))
+						BigDecimal returnsAmount = pjOrderItemsList.stream().filter(e -> finalOrdersCorpS.contains(e.getPid()))
 							.map(PjOrderItems::getReturnsAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
 						item.setReturnAmount(item.getReturnAmount().add(new BigDecimal("0.00").subtract(returnsAmount)));
 						item.setReturnQuantity(item.getReturnQuantity().add(new BigDecimal("0").subtract(returnsNumber)));
 						item.setSalesAmount(subTotalMoney.subtract(returnsAmount));
 						item.setSalesQuantity(goodsNum.subtract(returnsNumber));
-						BigDecimal costprie = pjOrderItemsList.stream().filter(e -> ordersCorpS.contains(e.getPid()) &&
+						BigDecimal costprie = pjOrderItemsList.stream().filter(e -> finalOrdersCorpS.contains(e.getPid()) &&
 								(ObjectUtils.isNull(e.getReturnsNumber()) || new BigDecimal("0").compareTo(e.getReturnsNumber()) == 0))
 							.map(PjOrderItems::getCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
 						item.setSalesProfit(item.getSalesAmount().subtract(costprie));
 					}
 				} else {
-					List<Long> ordersSalerR = orderList.stream().filter(e -> e.getSalerId().equals(item.getId())
-						&& "已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
-					List<Long> ordersSalerS = orderList.stream().filter(e -> e.getSalerId().equals(item.getId())
-						&& !"已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
+					List<Long> ordersSalerR = new ArrayList<>();
+					List<Long> ordersSalerS = new ArrayList<>();
+					if (ObjectUtils.isNotNull(saleDetailDto.getCustomerName())){
+						 ordersSalerR = orderList.stream().filter(e -> e.getSalerId().equals(item.getId())&& e.getCustomerName().equals(saleDetailDto.getCustomerName())
+							&& "已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
+						 ordersSalerS = orderList.stream().filter(e -> e.getSalerId().equals(item.getId())&& e.getCustomerName().equals(saleDetailDto.getCustomerName())
+							&& !"已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
+					}else{
+						 ordersSalerR = orderList.stream().filter(e -> e.getSalerId().equals(item.getId())
+							&& "已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
+						 ordersSalerS = orderList.stream().filter(e -> e.getSalerId().equals(item.getId())
+							&& !"已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
+					}
 					if (!ordersSalerR.isEmpty()) {
-						item.setReturnAmount(new BigDecimal("0.00").subtract(pjOrderItemsList.stream().filter(e -> ordersSalerR.contains(e.getPid()))
+						List<Long> finalOrdersSalerR = ordersSalerR;
+						item.setReturnAmount(new BigDecimal("0.00").subtract(pjOrderItemsList.stream().filter(e -> finalOrdersSalerR.contains(e.getPid()))
 							.map(PjOrderItems::getSubTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)));
-						item.setReturnQuantity(new BigDecimal("0").subtract(pjOrderItemsList.stream().filter(e -> ordersSalerR.contains(e.getPid()))
+						item.setReturnQuantity(new BigDecimal("0").subtract(pjOrderItemsList.stream().filter(e -> finalOrdersSalerR.contains(e.getPid()))
 							.map(PjOrderItems::getGoodsNum).filter(Objects::nonNull)
 							.reduce(BigDecimal.ZERO, BigDecimal::add).setScale(0, RoundingMode.HALF_UP)));
 					}
 					if (!ordersSalerS.isEmpty()) {
-						BigDecimal subTotalMoney = pjOrderItemsList.stream().filter(e -> ordersSalerS.contains(e.getPid()))
+						List<Long> finalOrdersSalerS = ordersSalerS;
+						BigDecimal subTotalMoney = pjOrderItemsList.stream().filter(e -> finalOrdersSalerS.contains(e.getPid()))
 							.map(PjOrderItems::getSubTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-						BigDecimal goodsNum = pjOrderItemsList.stream().filter(e -> ordersSalerS.contains(e.getPid()))
+						BigDecimal goodsNum = pjOrderItemsList.stream().filter(e -> finalOrdersSalerS.contains(e.getPid()))
 							.map(PjOrderItems::getGoodsNum).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-						BigDecimal returnsNumber = pjOrderItemsList.stream().filter(e -> ordersSalerS.contains(e.getPid()))
+						BigDecimal returnsNumber = pjOrderItemsList.stream().filter(e -> finalOrdersSalerS.contains(e.getPid()))
 							.map(PjOrderItems::getReturnsNumber).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-						BigDecimal returnsAmount = pjOrderItemsList.stream().filter(e -> ordersSalerS.contains(e.getPid()))
+						BigDecimal returnsAmount = pjOrderItemsList.stream().filter(e -> finalOrdersSalerS.contains(e.getPid()))
 							.map(PjOrderItems::getReturnsAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
 						item.setReturnAmount(item.getReturnAmount().add(new BigDecimal("0.00").subtract(returnsAmount)));
 						item.setReturnQuantity(item.getReturnQuantity().add(new BigDecimal("0").subtract(returnsNumber)));
 						item.setSalesAmount(subTotalMoney.subtract(returnsAmount));
 						item.setSalesQuantity(goodsNum.subtract(returnsNumber));
-						BigDecimal costprie = pjOrderItemsList.stream().filter(e -> ordersSalerS.contains(e.getPid()) &&
+						BigDecimal costprie = pjOrderItemsList.stream().filter(e -> finalOrdersSalerS.contains(e.getPid()) &&
 								(ObjectUtils.isNull(e.getReturnsNumber()) || new BigDecimal("0").compareTo(e.getReturnsNumber()) == 0))
 							.map(PjOrderItems::getCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
 						item.setSalesProfit(item.getSalesAmount().subtract(costprie));
@@ -814,102 +889,124 @@ public class StatisticsServiceImpl implements IStatisticsService {
 					.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
 					.in(PjOrderItems::getPid, pids));
 			} else {
-				map.put("salesAmount", new BigDecimal("0.00"));
+				map.put("salesAmount", new BigDecimal("0"));
 				map.put("salesQuantity", new BigDecimal("0"));
-				map.put("returnAmount", new BigDecimal("0.00"));
+				map.put("returnAmount", new BigDecimal("0"));
 				map.put("returnQuantity", new BigDecimal("0"));
-				map.put("salesProfit", new BigDecimal("0.00"));
+				map.put("salesProfit", new BigDecimal("0"));
 				return R.data(map);
 			}
 			if (pjOrderItemsList.isEmpty()) {
-				map.put("salesAmount", new BigDecimal("0.00"));
+				map.put("salesAmount", new BigDecimal("0"));
 				map.put("salesQuantity", new BigDecimal("0"));
-				map.put("returnAmount", new BigDecimal("0.00"));
+				map.put("returnAmount", new BigDecimal("0"));
 				map.put("returnQuantity", new BigDecimal("0"));
-				map.put("salesProfit", new BigDecimal("0.00"));
+				map.put("salesProfit", new BigDecimal("0"));
 				return R.data(map);
 			}
 			for (SalespersonCustomer item : customerIPage) {
-				item.setReturnAmount(new BigDecimal("0.00"));
+				item.setReturnAmount(new BigDecimal("0"));
 				item.setReturnQuantity(new BigDecimal("0"));
-				item.setSalesAmount(new BigDecimal("0.00"));
+				item.setSalesAmount(new BigDecimal("0"));
 				item.setSalesQuantity(new BigDecimal("0"));
-				item.setSalesProfit(new BigDecimal("0.00"));
+				item.setSalesProfit(new BigDecimal("0"));
 				if ("1".equals(saleDetailDto.getBsType())) {
-					List<Long> ordersCorpR = orderList.stream().filter(e -> e.getCustomerId().equals(item.getId())
-						&& "已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
-					List<Long> ordersCorpS = orderList.stream().filter(e -> e.getCustomerId().equals(item.getId())
-						&& !"已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
+					List<Long> ordersCorpR = new ArrayList<>();
+					List<Long> ordersCorpS = new ArrayList<>();
+					if (ObjectUtils.isNotNull(saleDetailDto.getSalerName())){
+						ordersCorpR = orderList.stream().filter(e -> e.getCustomerId().equals(item.getId()) && e.getSalerName().equals(saleDetailDto.getSalerName())
+							&& "已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
+						ordersCorpS = orderList.stream().filter(e -> e.getCustomerId().equals(item.getId()) && e.getSalerName().equals(saleDetailDto.getSalerName())
+							&& !"已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
+					}else{
+						ordersCorpR = orderList.stream().filter(e -> e.getCustomerId().equals(item.getId())
+							&& "已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
+						ordersCorpS = orderList.stream().filter(e -> e.getCustomerId().equals(item.getId())
+							&& !"已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
+					}
 					if (!ordersCorpR.isEmpty()) {
-						item.setReturnAmount(new BigDecimal("0.00").subtract(pjOrderItemsList.stream().filter(e -> ordersCorpR.contains(e.getPid()))
-							.map(PjOrderItems::getSubTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)));
-						item.setReturnQuantity(new BigDecimal("0").subtract(pjOrderItemsList.stream().filter(e -> ordersCorpR.contains(e.getPid()))
+						List<Long> finalOrdersCorpR = ordersCorpR;
+						item.setReturnAmount(new BigDecimal("0").subtract(pjOrderItemsList.stream().filter(e -> finalOrdersCorpR.contains(e.getPid()))
+							.map(PjOrderItems::getSubTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)).setScale(0, RoundingMode.HALF_UP));
+						item.setReturnQuantity(new BigDecimal("0").subtract(pjOrderItemsList.stream().filter(e -> finalOrdersCorpR.contains(e.getPid()))
 							.map(PjOrderItems::getGoodsNum).filter(Objects::nonNull)
-							.reduce(BigDecimal.ZERO, BigDecimal::add)));
+							.reduce(BigDecimal.ZERO, BigDecimal::add)).setScale(0, RoundingMode.HALF_UP));
 					}
 					if (!ordersCorpS.isEmpty()) {
-						BigDecimal subTotalMoney = pjOrderItemsList.stream().filter(e -> ordersCorpS.contains(e.getPid()))
-							.map(PjOrderItems::getSubTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-						BigDecimal goodsNum = pjOrderItemsList.stream().filter(e -> ordersCorpS.contains(e.getPid()))
-							.map(PjOrderItems::getGoodsNum).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-						BigDecimal returnsNumber = pjOrderItemsList.stream().filter(e -> ordersCorpS.contains(e.getPid()))
-							.map(PjOrderItems::getReturnsNumber).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-						BigDecimal returnsAmount = pjOrderItemsList.stream().filter(e -> ordersCorpS.contains(e.getPid()))
-							.map(PjOrderItems::getReturnsAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-						item.setReturnAmount(item.getReturnAmount().add(new BigDecimal("0.00").subtract(returnsAmount)));
+						List<Long> finalOrdersCorpS = ordersCorpS;
+						BigDecimal subTotalMoney = pjOrderItemsList.stream().filter(e -> finalOrdersCorpS.contains(e.getPid()))
+							.map(PjOrderItems::getSubTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(0, RoundingMode.HALF_UP);
+						BigDecimal goodsNum = pjOrderItemsList.stream().filter(e -> finalOrdersCorpS.contains(e.getPid()))
+							.map(PjOrderItems::getGoodsNum).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(0, RoundingMode.HALF_UP);
+						BigDecimal returnsNumber = pjOrderItemsList.stream().filter(e -> finalOrdersCorpS.contains(e.getPid()))
+							.map(PjOrderItems::getReturnsNumber).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(0, RoundingMode.HALF_UP);
+						BigDecimal returnsAmount = pjOrderItemsList.stream().filter(e -> finalOrdersCorpS.contains(e.getPid()))
+							.map(PjOrderItems::getReturnsAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(0, RoundingMode.HALF_UP);
+						item.setReturnAmount(item.getReturnAmount().add(new BigDecimal("0").subtract(returnsAmount)));
 						item.setReturnQuantity(item.getReturnQuantity().add(new BigDecimal("0").subtract(returnsNumber)));
 						item.setSalesAmount(subTotalMoney.subtract(returnsAmount));
 						item.setSalesQuantity(goodsNum.subtract(returnsNumber));
-						BigDecimal costprie = pjOrderItemsList.stream().filter(e -> ordersCorpS.contains(e.getPid()) &&
+						BigDecimal costprie = pjOrderItemsList.stream().filter(e -> finalOrdersCorpS.contains(e.getPid()) &&
 								(ObjectUtils.isNull(e.getReturnsNumber()) || new BigDecimal("0").compareTo(e.getReturnsNumber()) == 0))
-							.map(PjOrderItems::getCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
+							.map(PjOrderItems::getCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(0, RoundingMode.HALF_UP);
 						item.setSalesProfit(item.getSalesAmount().subtract(costprie));
 					}
 				} else {
-					List<Long> ordersSalerR = orderList.stream().filter(e -> e.getSalerId().equals(item.getId())
-						&& "已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
-					List<Long> ordersSalerS = orderList.stream().filter(e -> e.getSalerId().equals(item.getId())
-						&& !"已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
+					List<Long> ordersSalerR = new ArrayList<>();
+					List<Long> ordersSalerS = new ArrayList<>();
+					if (ObjectUtils.isNotNull(saleDetailDto.getCustomerName())){
+						ordersSalerR = orderList.stream().filter(e -> e.getSalerId().equals(item.getId())&& e.getCustomerName().equals(saleDetailDto.getCustomerName())
+							&& "已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
+						ordersSalerS = orderList.stream().filter(e -> e.getSalerId().equals(item.getId())&& e.getCustomerName().equals(saleDetailDto.getCustomerName())
+							&& !"已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
+					}else{
+						ordersSalerR = orderList.stream().filter(e -> e.getSalerId().equals(item.getId())
+							&& "已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
+						ordersSalerS = orderList.stream().filter(e -> e.getSalerId().equals(item.getId())
+							&& !"已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
+					}
 					if (!ordersSalerR.isEmpty()) {
-						item.setReturnAmount(new BigDecimal("0.00").subtract(pjOrderItemsList.stream().filter(e -> ordersSalerR.contains(e.getPid()))
-							.map(PjOrderItems::getSubTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)));
-						item.setReturnQuantity(new BigDecimal("0").subtract(pjOrderItemsList.stream().filter(e -> ordersSalerR.contains(e.getPid()))
+						List<Long> finalOrdersSalerR = ordersSalerR;
+						item.setReturnAmount(new BigDecimal("0.00").subtract(pjOrderItemsList.stream().filter(e -> finalOrdersSalerR.contains(e.getPid()))
+							.map(PjOrderItems::getSubTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)).setScale(0, RoundingMode.HALF_UP));
+						item.setReturnQuantity(new BigDecimal("0").subtract(pjOrderItemsList.stream().filter(e -> finalOrdersSalerR.contains(e.getPid()))
 							.map(PjOrderItems::getGoodsNum).filter(Objects::nonNull)
-							.reduce(BigDecimal.ZERO, BigDecimal::add)));
+							.reduce(BigDecimal.ZERO, BigDecimal::add)).setScale(0, RoundingMode.HALF_UP));
 					}
 					if (!ordersSalerS.isEmpty()) {
-						BigDecimal subTotalMoney = pjOrderItemsList.stream().filter(e -> ordersSalerS.contains(e.getPid()))
-							.map(PjOrderItems::getSubTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-						BigDecimal goodsNum = pjOrderItemsList.stream().filter(e -> ordersSalerS.contains(e.getPid()))
-							.map(PjOrderItems::getGoodsNum).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-						BigDecimal returnsNumber = pjOrderItemsList.stream().filter(e -> ordersSalerS.contains(e.getPid()))
-							.map(PjOrderItems::getReturnsNumber).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-						BigDecimal returnsAmount = pjOrderItemsList.stream().filter(e -> ordersSalerS.contains(e.getPid()))
-							.map(PjOrderItems::getReturnsAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-						item.setReturnAmount(item.getReturnAmount().add(new BigDecimal("0.00").subtract(returnsAmount)));
+						List<Long> finalOrdersSalerS = ordersSalerS;
+						BigDecimal subTotalMoney = pjOrderItemsList.stream().filter(e -> finalOrdersSalerS.contains(e.getPid()))
+							.map(PjOrderItems::getSubTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(0, RoundingMode.HALF_UP);
+						BigDecimal goodsNum = pjOrderItemsList.stream().filter(e -> finalOrdersSalerS.contains(e.getPid()))
+							.map(PjOrderItems::getGoodsNum).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(0, RoundingMode.HALF_UP);
+						BigDecimal returnsNumber = pjOrderItemsList.stream().filter(e -> finalOrdersSalerS.contains(e.getPid()))
+							.map(PjOrderItems::getReturnsNumber).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(0, RoundingMode.HALF_UP);
+						BigDecimal returnsAmount = pjOrderItemsList.stream().filter(e -> finalOrdersSalerS.contains(e.getPid()))
+							.map(PjOrderItems::getReturnsAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(0, RoundingMode.HALF_UP);
+						item.setReturnAmount(item.getReturnAmount().add(new BigDecimal("0").subtract(returnsAmount)));
 						item.setReturnQuantity(item.getReturnQuantity().add(new BigDecimal("0").subtract(returnsNumber)));
 						item.setSalesAmount(subTotalMoney.subtract(returnsAmount));
 						item.setSalesQuantity(goodsNum.subtract(returnsNumber));
-						BigDecimal costprie = pjOrderItemsList.stream().filter(e -> ordersSalerS.contains(e.getPid()) &&
+						BigDecimal costprie = pjOrderItemsList.stream().filter(e -> finalOrdersSalerS.contains(e.getPid()) &&
 								(ObjectUtils.isNull(e.getReturnsNumber()) || new BigDecimal("0").compareTo(e.getReturnsNumber()) == 0))
-							.map(PjOrderItems::getCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
+							.map(PjOrderItems::getCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(0, RoundingMode.HALF_UP);
 						item.setSalesProfit(item.getSalesAmount().subtract(costprie));
 					}
 				}
 			}
 		}
 		if (!customerIPage.isEmpty()) {
-			map.put("salesAmount", customerIPage.stream().filter(Objects::nonNull).map(SalespersonCustomer::getSalesAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
+			map.put("salesAmount", customerIPage.stream().filter(Objects::nonNull).map(SalespersonCustomer::getSalesAmount).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(0, RoundingMode.HALF_UP));
 			map.put("salesQuantity", customerIPage.stream().filter(Objects::nonNull).map(SalespersonCustomer::getSalesQuantity).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(0, RoundingMode.HALF_UP));
-			map.put("returnAmount", customerIPage.stream().filter(Objects::nonNull).map(SalespersonCustomer::getReturnAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
+			map.put("returnAmount", customerIPage.stream().filter(Objects::nonNull).map(SalespersonCustomer::getReturnAmount).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(0, RoundingMode.HALF_UP));
 			map.put("returnQuantity", customerIPage.stream().filter(Objects::nonNull).map(SalespersonCustomer::getReturnQuantity).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(0, RoundingMode.HALF_UP));
-			map.put("salesProfit", customerIPage.stream().filter(Objects::nonNull).map(SalespersonCustomer::getSalesProfit).reduce(BigDecimal.ZERO, BigDecimal::add));
+			map.put("salesProfit", customerIPage.stream().filter(Objects::nonNull).map(SalespersonCustomer::getSalesProfit).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(0, RoundingMode.HALF_UP));
 		} else {
-			map.put("salesAmount", new BigDecimal("0.00"));
+			map.put("salesAmount", new BigDecimal("0"));
 			map.put("salesQuantity", new BigDecimal("0"));
-			map.put("returnAmount", new BigDecimal("0.00"));
+			map.put("returnAmount", new BigDecimal("0"));
 			map.put("returnQuantity", new BigDecimal("0"));
-			map.put("salesProfit", new BigDecimal("0.00"));
+			map.put("salesProfit", new BigDecimal("0"));
 		}
 		return R.data(map);
 	}
@@ -955,61 +1052,83 @@ public class StatisticsServiceImpl implements IStatisticsService {
 				item.setSalesQuantity(new BigDecimal("0"));
 				item.setSalesProfit(new BigDecimal("0.00"));
 				if ("1".equals(saleDetailDto.getBsType())) {
-					List<Long> ordersCorpR = orderList.stream().filter(e -> e.getCustomerId().equals(item.getId())
-						&& "已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
-					List<Long> ordersCorpS = orderList.stream().filter(e -> e.getCustomerId().equals(item.getId())
-						&& !"已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
+					List<Long> ordersCorpR = new ArrayList<>();
+					List<Long> ordersCorpS = new ArrayList<>();
+					if (ObjectUtils.isNotNull(saleDetailDto.getSalerName())){
+						ordersCorpR = orderList.stream().filter(e -> e.getCustomerId().equals(item.getId()) && e.getSalerName().equals(saleDetailDto.getSalerName())
+							&& "已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
+						ordersCorpS = orderList.stream().filter(e -> e.getCustomerId().equals(item.getId()) && e.getSalerName().equals(saleDetailDto.getSalerName())
+							&& !"已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
+					}else{
+						ordersCorpR = orderList.stream().filter(e -> e.getCustomerId().equals(item.getId())
+							&& "已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
+						ordersCorpS = orderList.stream().filter(e -> e.getCustomerId().equals(item.getId())
+							&& !"已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
+					}
 					if (!ordersCorpR.isEmpty()) {
-						item.setReturnAmount(new BigDecimal("0.00").subtract(pjOrderItemsList.stream().filter(e -> ordersCorpR.contains(e.getPid()))
+						List<Long> finalOrdersCorpR = ordersCorpR;
+						item.setReturnAmount(new BigDecimal("0.00").subtract(pjOrderItemsList.stream().filter(e -> finalOrdersCorpR.contains(e.getPid()))
 							.map(PjOrderItems::getSubTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)));
-						item.setReturnQuantity(new BigDecimal("0").subtract(pjOrderItemsList.stream().filter(e -> ordersCorpR.contains(e.getPid()))
+						item.setReturnQuantity(new BigDecimal("0").subtract(pjOrderItemsList.stream().filter(e -> finalOrdersCorpR.contains(e.getPid()))
 							.map(PjOrderItems::getGoodsNum).filter(Objects::nonNull)
 							.reduce(BigDecimal.ZERO, BigDecimal::add).setScale(0, RoundingMode.HALF_UP)));
 					}
 					if (!ordersCorpS.isEmpty()) {
-						BigDecimal subTotalMoney = pjOrderItemsList.stream().filter(e -> ordersCorpS.contains(e.getPid()))
+						List<Long> finalOrdersCorpS = ordersCorpS;
+						BigDecimal subTotalMoney = pjOrderItemsList.stream().filter(e -> finalOrdersCorpS.contains(e.getPid()))
 							.map(PjOrderItems::getSubTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-						BigDecimal goodsNum = pjOrderItemsList.stream().filter(e -> ordersCorpS.contains(e.getPid()))
+						BigDecimal goodsNum = pjOrderItemsList.stream().filter(e -> finalOrdersCorpS.contains(e.getPid()))
 							.map(PjOrderItems::getGoodsNum).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-						BigDecimal returnsNumber = pjOrderItemsList.stream().filter(e -> ordersCorpS.contains(e.getPid()))
+						BigDecimal returnsNumber = pjOrderItemsList.stream().filter(e -> finalOrdersCorpS.contains(e.getPid()))
 							.map(PjOrderItems::getReturnsNumber).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-						BigDecimal returnsAmount = pjOrderItemsList.stream().filter(e -> ordersCorpS.contains(e.getPid()))
+						BigDecimal returnsAmount = pjOrderItemsList.stream().filter(e -> finalOrdersCorpS.contains(e.getPid()))
 							.map(PjOrderItems::getReturnsAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
 						item.setReturnAmount(item.getReturnAmount().add(new BigDecimal("0.00").subtract(returnsAmount)));
 						item.setReturnQuantity(item.getReturnQuantity().add(new BigDecimal("0").subtract(returnsNumber)));
 						item.setSalesAmount(subTotalMoney.subtract(returnsAmount));
 						item.setSalesQuantity(goodsNum.subtract(returnsNumber));
-						BigDecimal costprie = pjOrderItemsList.stream().filter(e -> ordersCorpS.contains(e.getPid()) &&
+						BigDecimal costprie = pjOrderItemsList.stream().filter(e -> finalOrdersCorpS.contains(e.getPid()) &&
 								(ObjectUtils.isNull(e.getReturnsNumber()) || new BigDecimal("0").compareTo(e.getReturnsNumber()) == 0))
 							.map(PjOrderItems::getCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
 						item.setSalesProfit(item.getSalesAmount().subtract(costprie));
 					}
 				} else {
-					List<Long> ordersSalerR = orderList.stream().filter(e -> e.getSalerId().equals(item.getId())
-						&& "已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
-					List<Long> ordersSalerS = orderList.stream().filter(e -> e.getSalerId().equals(item.getId())
-						&& !"已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
+					List<Long> ordersSalerR = new ArrayList<>();
+					List<Long> ordersSalerS = new ArrayList<>();
+					if (ObjectUtils.isNotNull(saleDetailDto.getCustomerName())){
+						ordersSalerR = orderList.stream().filter(e -> e.getSalerId().equals(item.getId())&& e.getCustomerName().equals(saleDetailDto.getCustomerName())
+							&& "已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
+						ordersSalerS = orderList.stream().filter(e -> e.getSalerId().equals(item.getId())&& e.getCustomerName().equals(saleDetailDto.getCustomerName())
+							&& !"已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
+					}else{
+						ordersSalerR = orderList.stream().filter(e -> e.getSalerId().equals(item.getId())
+							&& "已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
+						ordersSalerS = orderList.stream().filter(e -> e.getSalerId().equals(item.getId())
+							&& !"已取消,已退款,售后中,退款请核".contains(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
+					}
 					if (!ordersSalerR.isEmpty()) {
-						item.setReturnAmount(new BigDecimal("0.00").subtract(pjOrderItemsList.stream().filter(e -> ordersSalerR.contains(e.getPid()))
+						List<Long> finalOrdersSalerR = ordersSalerR;
+						item.setReturnAmount(new BigDecimal("0.00").subtract(pjOrderItemsList.stream().filter(e -> finalOrdersSalerR.contains(e.getPid()))
 							.map(PjOrderItems::getSubTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)));
-						item.setReturnQuantity(new BigDecimal("0").subtract(pjOrderItemsList.stream().filter(e -> ordersSalerR.contains(e.getPid()))
+						item.setReturnQuantity(new BigDecimal("0").subtract(pjOrderItemsList.stream().filter(e -> finalOrdersSalerR.contains(e.getPid()))
 							.map(PjOrderItems::getGoodsNum).filter(Objects::nonNull)
 							.reduce(BigDecimal.ZERO, BigDecimal::add).setScale(0, RoundingMode.HALF_UP)));
 					}
 					if (!ordersSalerS.isEmpty()) {
-						BigDecimal subTotalMoney = pjOrderItemsList.stream().filter(e -> ordersSalerS.contains(e.getPid()))
+						List<Long> finalOrdersSalerS = ordersSalerS;
+						BigDecimal subTotalMoney = pjOrderItemsList.stream().filter(e -> finalOrdersSalerS.contains(e.getPid()))
 							.map(PjOrderItems::getSubTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-						BigDecimal goodsNum = pjOrderItemsList.stream().filter(e -> ordersSalerS.contains(e.getPid()))
+						BigDecimal goodsNum = pjOrderItemsList.stream().filter(e -> finalOrdersSalerS.contains(e.getPid()))
 							.map(PjOrderItems::getGoodsNum).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-						BigDecimal returnsNumber = pjOrderItemsList.stream().filter(e -> ordersSalerS.contains(e.getPid()))
+						BigDecimal returnsNumber = pjOrderItemsList.stream().filter(e -> finalOrdersSalerS.contains(e.getPid()))
 							.map(PjOrderItems::getReturnsNumber).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-						BigDecimal returnsAmount = pjOrderItemsList.stream().filter(e -> ordersSalerS.contains(e.getPid()))
+						BigDecimal returnsAmount = pjOrderItemsList.stream().filter(e -> finalOrdersSalerS.contains(e.getPid()))
 							.map(PjOrderItems::getReturnsAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
 						item.setReturnAmount(item.getReturnAmount().add(new BigDecimal("0.00").subtract(returnsAmount)));
 						item.setReturnQuantity(item.getReturnQuantity().add(new BigDecimal("0").subtract(returnsNumber)));
 						item.setSalesAmount(subTotalMoney.subtract(returnsAmount));
 						item.setSalesQuantity(goodsNum.subtract(returnsNumber));
-						BigDecimal costprie = pjOrderItemsList.stream().filter(e -> ordersSalerS.contains(e.getPid()) &&
+						BigDecimal costprie = pjOrderItemsList.stream().filter(e -> finalOrdersSalerS.contains(e.getPid()) &&
 								(ObjectUtils.isNull(e.getReturnsNumber()) || new BigDecimal("0").compareTo(e.getReturnsNumber()) == 0))
 							.map(PjOrderItems::getCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
 						item.setSalesProfit(item.getSalesAmount().subtract(costprie));

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

@@ -450,7 +450,9 @@ public class StockDescController extends BladeController {
 			}
 		}
 		List<PjStockDesc> list = stockDescService.list(lambdaQueryWrapper);
-
+		for (PjStockDesc item : list) {
+			item.setGoods(item.getGoodsId() + "");
+		}
 		ExcelUtil.export(response, "库存信息", "库存信息", BeanUtil.copy(list, StockExportExcel.class), StockExportExcel.class);
 	}
 

+ 1 - 1
blade-service/blade-user/src/main/java/org/springblade/system/user/controller/UserController.java

@@ -508,7 +508,7 @@ public class UserController {
 	 */
 	@GetMapping("/salerList")
 	public R<List<User>> salerList() {
-		return userSearchClient.listByRole(SysCache.getRoleIds(AuthUtil.getTenantId(), "财务"));
+		return userSearchClient.listByRole(SysCache.getRoleIds(AuthUtil.getTenantId(), "业务员"));
 	}
 
 	/**