Browse Source

2025年1月21日17:08:50

纪新园 10 months ago
parent
commit
ce5a2361d9
21 changed files with 351 additions and 84 deletions
  1. 5 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/share/entity/ShareSalesItems.java
  2. 3 0
      blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsDescServiceImpl.java
  3. 15 6
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java
  4. 8 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/mapper/CorpsDescMapper.xml
  5. 3 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/mapper/OrderItemsMapper.java
  6. 7 1
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/mapper/OrderItemsMapper.xml
  7. 3 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/mapper/OrderMapper.java
  8. 12 1
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/mapper/OrderMapper.xml
  9. 2 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/IOrderItemsService.java
  10. 5 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/impl/OrderItemsServiceImpl.java
  11. 116 30
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/impl/OrderServiceImpl.java
  12. 7 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/productLaunch/mapper/ProductLaunchMapper.java
  13. 22 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/productLaunch/mapper/ProductLaunchMapper.xml
  14. 4 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/productLaunch/service/IProductLaunchService.java
  15. 10 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/productLaunch/service/impl/ProductLaunchServiceImpl.java
  16. 6 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/share/mapper/SharePutOnShelvesMapper.java
  17. 19 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/share/mapper/SharePutOnShelvesMapper.xml
  18. 4 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/share/service/ISharePutOnShelvesService.java
  19. 77 38
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/share/service/impl/SharePutOnShelvesServiceImpl.java
  20. 16 6
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/statistics/service/impl/StatisticsServiceImpl.java
  21. 7 2
      blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DeptServiceImpl.java

+ 5 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/share/entity/ShareSalesItems.java

@@ -97,6 +97,11 @@ public class ShareSalesItems implements Serializable {
 	@ApiModelProperty(value = "名称")
 	private String goodsName;
 	/**
+	 * 物料编号
+	 */
+	@ApiModelProperty(value = "物料编号")
+	private String goodsCode;
+	/**
 	 * 数量
 	 */
 	@ApiModelProperty(value = "数量")

+ 3 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsDescServiceImpl.java

@@ -114,6 +114,9 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 			IPage<CorpsDescVO> page1 = page.setRecords(baseMapper.selectCorpsDescPageZD(page, corpsDesc));
 			return page1;
 		} else {
+			if (!AuthUtil.getUserRole().contains("admin")) {
+				corpsDesc.setAdminProfiles(AuthUtil.getUserId()+"");
+			}
 			IPage<CorpsDescVO> page1 = page.setRecords(baseMapper.selectCorpsDescPage(page, corpsDesc));
 			return page1;
 		}

+ 15 - 6
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -78,6 +78,7 @@ import org.springblade.purchase.sales.stock.entity.SalesStockGoodsLog;
 import org.springblade.purchase.sales.stock.service.ISalesStockGoodsLogService;
 import org.springblade.purchase.sales.stock.service.ISalesStockGoodsService;
 import org.springblade.purchase.sales.vo.*;
+import org.springblade.salesPart.entity.PjOrder;
 import org.springblade.stock.entity.StockGoods;
 import org.springblade.stock.feign.IStockGoodsClient;
 import org.springblade.stock.vo.StockGoodsVO;
@@ -6490,12 +6491,16 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	public R documentQuantityStatistics(Order order) {
 
 		List<Map<String, Object>> mapList = new ArrayList<>();
-		List<Order> orderList = baseMapper.selectList(new LambdaQueryWrapper<Order>()
+		LambdaQueryWrapper<Order> lambdaQueryWrapper = new LambdaQueryWrapper<Order>()
 			.eq(Order::getIsDeleted, 0)
 			.eq(Order::getTenantId, AuthUtil.getTenantId())
 			.ge(Order::getBusinesDate, order.getDateList().get(0))
-			.le(Order::getBusinesDate, order.getDateList().get(1))
-		);
+			.le(Order::getBusinesDate, order.getDateList().get(1));
+		if (AuthUtil.getUserRole().contains("贸易")) {
+			lambdaQueryWrapper.and(i-> i.eq(Order::getDocumenterId, AuthUtil.getUserId()).or()
+				.eq(Order::getCreateUser, AuthUtil.getUserId()));
+		}
+		List<Order> orderList = baseMapper.selectList(lambdaQueryWrapper);
 		if (ObjectUtils.isNotNull(orderList) && !orderList.isEmpty()) {
 			List<Long> userIdList = orderList.stream().map(Order::getCreateUser).distinct().collect(Collectors.toList());
 			for (Long userId : userIdList) {
@@ -6997,15 +7002,19 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
 	@Override
 	public R salesList(Order order) {
-		List<Order> orderList = baseMapper.selectList(new LambdaQueryWrapper<Order>()
+		LambdaQueryWrapper<Order> lambdaQueryWrapper = new LambdaQueryWrapper<Order>()
 			.eq(Order::getIsDeleted, 0)
 			.eq(Order::getTenantId, AuthUtil.getTenantId())
 			.ge(Order::getBusinesDate, order.getDateList().get(0))
 			.le(Order::getBusinesDate, order.getDateList().get(1))
 			.eq(Order::getBillType, "XS")
 			.eq(Order::getTradeType, "CK")
-			.ne(Order::getOrderStatus, "订单完成")
-		);
+			.ne(Order::getOrderStatus, "订单完成");
+		if (AuthUtil.getUserRole().contains("贸易")) {
+			lambdaQueryWrapper.and(i-> i.eq(Order::getDocumenterId, AuthUtil.getUserId()).or()
+				.eq(Order::getCreateUser, AuthUtil.getUserId()));
+		}
+		List<Order> orderList = baseMapper.selectList(lambdaQueryWrapper);
 		for (Order order1 : orderList) {
 			if (ObjectUtils.isNotNull(order1.getCorpId())) {
 				CorpsDesc corpsDesc = corpsDescClient.getCorpId(order1.getCorpId());

+ 8 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/mapper/CorpsDescMapper.xml

@@ -37,14 +37,22 @@
     <insert id="insertCorps" parameterType="org.springblade.salesPart.entity.PjCorpsDesc" useGeneratedKeys="true" keyProperty="id">
         insert into pjpf_corps_desc
         <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
             <if test="cname != null">cname,</if>
             <if test="tenantId != null">tenant_id,</if>
             <if test="remarks != null">remarks,</if>
+            <if test="corpType != null">corp_type,</if>
+            <if test="salesCompanyId != null">sales_company_id,</if>
+            <if test="salesCompanyName != null">sales_company_name,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
             <if test="cname != null">#{cname},</if>
             <if test="tenantId != null">#{tenantId},</if>
             <if test="remarks != null">#{remarks},</if>
+            <if test="corpType != null">#{corpType},</if>
+            <if test="salesCompanyId != null">#{salesCompanyId},</if>
+            <if test="salesCompanyName != null">#{salesCompanyName},</if>
         </trim>
     </insert>
     <update id="updateByIdPointsBalance" parameterType="org.springblade.salesPart.entity.PjCorpsDesc">

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

@@ -71,4 +71,7 @@ public interface OrderItemsMapper extends BaseMapper<PjOrderItems> {
 
 	@TenantIgnore
 	List<PjOrderItems> selectShareOrderItems(@Param("ids")String ids);
+
+	@TenantIgnore
+	int deleteByIds(@Param("list")List<Long> shareOrderItemsIds);
 }

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

@@ -97,7 +97,13 @@
             <if test="rebateProfit != null">#{rebateProfit},</if>
         </trim>
     </insert>
-
+    <update id="deleteByIds">
+        update pjpf_order_items set is_deleted = '1' where
+         id in
+        <foreach index="index" item="item" collection="list" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </update>
 
     <select id="selectOrderItemsPage" resultMap="orderItemsResultMap">
         select * from pjpf_order_items where is_deleted = 0

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

@@ -119,4 +119,7 @@ public interface OrderMapper extends BaseMapper<PjOrder> {
 
 	@TenantIgnore
 	List<PjOrder> selectShareOrder(@Param("ordNo")String ordNo, @Param("sharedCompanyName")String sharedCompanyName);
+
+	@TenantIgnore
+	int deleteByIds(@Param("list")List<Long> shareOrderIds);
 }

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

@@ -104,6 +104,8 @@
             <if test="remarks != null">remarks,</if>
             <if test="salesCompanyId != null">sales_company_id,</if>
             <if test="salesCompanyName != null">sales_company_name,</if>
+            <if test="goodsNameJoin != null">goods_name_join,</if>
+            <if test="shortcutJoin != null">shortcut_join,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -127,8 +129,17 @@
             <if test="remarks != null">#{remarks},</if>
             <if test="salesCompanyId != null">#{salesCompanyId},</if>
             <if test="salesCompanyName != null">#{salesCompanyName},</if>
+            <if test="goodsNameJoin != null">#{goodsNameJoin},</if>
+            <if test="shortcutJoin != null">#{shortcutJoin},</if>
         </trim>
     </insert>
+    <update id="deleteByIds">
+        update pjpf_order set is_deleted = '1' where
+        id in
+        <foreach item="item" index="index" collection="list" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </update>
 
     <select id="selectOrderPage" resultMap="orderResultMap">
         select *
@@ -953,6 +964,6 @@
             is_deleted = '0'
           AND bs_type = 'XS'
           and src_no like concat('%', #{ordNo}, '%')
-        and sales_company_name = #{sharedCompanyName}
+          and find_in_set(sales_company_name, #{sharedCompanyName})
     </select>
 </mapper>

+ 2 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/IOrderItemsService.java

@@ -66,4 +66,6 @@ public interface IOrderItemsService extends IService<PjOrderItems> {
 	int insertOrderItems(PjOrderItems items);
 
 	List<PjOrderItems> selectShareOrderItems(String ids);
+
+	int deleteByIds(List<Long> shareOrderItemsIds);
 }

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

@@ -130,5 +130,10 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, PjOrder
 		return baseMapper.selectShareOrderItems(ids);
 	}
 
+	@Override
+	public int deleteByIds(List<Long> shareOrderItemsIds) {
+		return baseMapper.deleteByIds(shareOrderItemsIds);
+	}
+
 
 }

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

@@ -4051,14 +4051,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 			throw new RuntimeException("请选择明细数据");
 		}
 		PjOrder pjOrder = baseMapper.selectById(order.getId());
-		if (ObjectUtils.isNotNull(pjOrder.getSharedCompanyId())) {
-			pjOrder.setSharedCompanyId(pjOrder.getSharedCompanyId() + "," + order.getSharedCompanyId());
-			pjOrder.setSharedCompanyName(pjOrder.getSharedCompanyName() + "," + order.getSharedCompanyName());
-		} else {
-			pjOrder.setSharedCompanyId(order.getSharedCompanyId());
-			pjOrder.setSharedCompanyName(order.getSharedCompanyName());
-		}
-		baseMapper.updateById(pjOrder);
 		List<ShareSalesItems> shareSalesItemsList = new ArrayList<>();
 		List<SharePutOnShelves> sharePutOnShelvesList = new ArrayList<>();
 		if (ObjectUtils.isNull(pjOrder.getOldTrxId())) {
@@ -4098,6 +4090,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 			shareSalesItems.setCreateTime(new Date());
 			shareSalesItems.setGoodsId(item.getGoodsId());
 			shareSalesItems.setGoodsName(item.getGoodsName());
+			shareSalesItems.setGoodsCode(item.getGoodsNo());
 			shareSalesItems.setGoodsNum(item.getOutGoodsTotalShipNum());
 			shareSalesItems.setPrice(item.getPrice());
 			shareSalesItems.setSubTotalMoney(item.getOutGoodsTotalShipNum().multiply(item.getPrice()));
@@ -4134,18 +4127,27 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		if (dept == null) {
 			throw new RuntimeException("未找到共享公司");
 		}
-		PjCorpsDesc corpsDesc = corpsDescMapper.selectByName(dept.getDeptName(), dept.getTenantId());
+		R<Dept> res = sysClient.getDept(Long.parseLong(AuthUtil.getDeptId()));
+		if (!res.isSuccess() || ObjectUtils.isNull(res.getData())) {
+			throw new RuntimeException("未找到机构");
+		}
+		PjCorpsDesc corpsDesc = corpsDescMapper.selectByName(res.getData().getDeptName(), dept.getTenantId());
 		if (corpsDesc == null) {
 			corpsDesc = new PjCorpsDesc();
-			corpsDesc.setCname(dept.getDeptName());
+			corpsDesc.setId(IdWorker.getId());
+			corpsDesc.setCname(res.getData().getDeptName());
+			corpsDesc.setCorpType("KH");
 			corpsDesc.setTenantId(dept.getTenantId());
-			corpsDesc.setRemarks("来源共享共享公司:" + dept.getDeptName());
+			corpsDesc.setRemarks("来源共享共享公司:" + res.getData().getDeptName());
+			corpsDesc.setSalesCompanyId(dept.getId());
+			corpsDesc.setSalesCompanyName(dept.getDeptName());
 			int count = corpsDescMapper.insertCorps(corpsDesc);
 			if (count == 0) {
 				throw new RuntimeException("派发失败,创建客户错误");
 			}
 		}
 		PjOrder sharePjOrder = new PjOrder();
+		sharePjOrder.setRemarks("来源" + res.getData().getDeptName() + "销售单");
 		Long sharePjOrderId = IdWorker.getId();
 		sharePjOrder.setId(sharePjOrderId);
 		sharePjOrder.setTenantId(dept.getTenantId());
@@ -4168,15 +4170,18 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		sharePjOrder.setSalesCompanyName(dept.getDeptName());
 		sharePjOrder.setBusinessSource("共享销售");
 		sharePjOrder.setStatus("待确认");
-		R<Dept> res = sysClient.getDept(Long.parseLong(AuthUtil.getDeptId()));
-		if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
-			sharePjOrder.setRemarks("来源" + res.getData().getDeptName() + "销售单");
-		}
 		String goodsNo = orderItemsList.stream().map(PjOrderItems::getGoodsNo).distinct().collect(Collectors.joining(","));
 		List<PjGoodsDesc> goodsDescList = goodsDescMapper.selectListGoods(goodsNo, dept.getTenantId());
 		if (goodsDescList.isEmpty()) {
 			throw new RuntimeException("未查到对应商品信息");
 		}
+		List<PjProductLaunch> productLaunchList = productLaunchService.selectListProductLaunch(goodsNo, null, dept.getTenantId());
+		if (productLaunchList.isEmpty()) {
+			throw new RuntimeException("未查到对应商品信息");
+		}
+		List<SharePutOnShelves> sharePutOnShelvesSrcList = sharePutOnShelvesService.selectSharePutOnShelvesList(goodsNo, null, dept.getTenantId());
+		List<PjProductLaunch> productLaunchListNew = new ArrayList<>();
+		List<SharePutOnShelves> sharePutOnShelvesSrcListNew = new ArrayList<>();
 		List<PjOrderItems> itemsList = new ArrayList<>();
 		for (PjOrderItems items : orderItemsList) {
 			PjOrderItems orderItems = new PjOrderItems();
@@ -4185,6 +4190,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 			orderItems.setCreateTime(new Date());
 			PjGoodsDesc goodsDesc = goodsDescList.stream().filter(e -> e.getCode().equals(items.getGoodsNo())).findFirst().orElse(null);
 			if (goodsDesc != null) {
+				orderItems.setCnameInt(goodsDesc.getCnameInt());
 				orderItems.setGoodsNo(goodsDesc.getCode());
 				orderItems.setGoodsName(goodsDesc.getCname());
 				orderItems.setGoodsId(goodsDesc.getId());
@@ -4197,6 +4203,30 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 			} else {
 				throw new RuntimeException("商品编号:" + items.getGoodsNo() + "未查到");
 			}
+			PjProductLaunch pjProductLaunch = productLaunchList.stream().filter(e -> e.getCode().equals(items.getGoodsNo())).findFirst().orElse(null);
+			if (pjProductLaunch != null) {
+				if (new BigDecimal("0.00").compareTo(pjProductLaunch.getInventory()) != 0
+					&& pjProductLaunch.getInventory().compareTo(items.getOutGoodsTotalShipNum()) >= 0) {
+					pjProductLaunch.setInventory(pjProductLaunch.getInventory().subtract(items.getOutGoodsTotalShipNum()));
+					productLaunchListNew.add(pjProductLaunch);
+				} else {
+					throw new RuntimeException("商品编号:" + items.getGoodsNo() + "库存不足");
+				}
+			} else {
+				throw new RuntimeException("商品编号:" + items.getGoodsNo() + "未查到上架");
+			}
+			SharePutOnShelves sharePutOnShelves = sharePutOnShelvesSrcList.stream().filter(e -> e.getGoodsCode().equals(items.getGoodsNo())).findFirst().orElse(null);
+			if (sharePutOnShelves != null) {
+				if (new BigDecimal("0.00").compareTo(sharePutOnShelves.getInventory()) != 0
+					&& sharePutOnShelves.getInventory().compareTo(items.getOutGoodsTotalShipNum()) >= 0) {
+					sharePutOnShelves.setInventory(sharePutOnShelves.getInventory().subtract(items.getOutGoodsTotalShipNum()));
+					sharePutOnShelvesSrcListNew.add(sharePutOnShelves);
+				} else {
+					throw new RuntimeException("商品编号:" + items.getGoodsNo() + "库存不足");
+				}
+			} else {
+				throw new RuntimeException("商品编号:" + items.getGoodsNo() + "未查到上架");
+			}
 			orderItems.setDot(items.getDot());
 			orderItems.setSalesCompanyId(dept.getId());
 			orderItems.setSalesCompanyName(dept.getDeptName());
@@ -4218,12 +4248,26 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 			}
 			itemsList.add(orderItems);
 		}
+		for (PjProductLaunch item : productLaunchListNew) {
+			int count = productLaunchService.updateProductLaunch(item);
+			if (count == 0) {
+				throw new RuntimeException("商品:" + item.getCname() + "修改上架库存失败");
+			}
+		}
+		for (SharePutOnShelves item : sharePutOnShelvesSrcListNew) {
+			int count = sharePutOnShelvesService.updateSharePutOnShelves(item);
+			if (count == 0) {
+				throw new RuntimeException("商品:" + item.getGoodsCode() + "修改上架库存失败");
+			}
+		}
 		BigDecimal amount = itemsList.stream().map(PjOrderItems::getSubTotalMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
 		BigDecimal goodsNum = itemsList.stream().map(PjOrderItems::getGoodsNum).reduce(BigDecimal.ZERO, BigDecimal::add);
 		sharePjOrder.setGoodsTotalNum(goodsNum);
 		sharePjOrder.setSalesAmount(amount);
 		sharePjOrder.setTotalMoney(amount);
 		sharePjOrder.setNumberRows(itemsList.size());
+		sharePjOrder.setGoodsNameJoin(itemsList.stream().map(PjOrderItems::getGoodsName).collect(Collectors.joining(",")));
+		sharePjOrder.setShortcutJoin(itemsList.stream().map(PjOrderItems::getCnameInt).collect(Collectors.joining(",")));
 		int count = baseMapper.insertOrder(sharePjOrder);
 		if (count == 0) {
 			throw new RuntimeException("保存销售单失败,请联系管理员");
@@ -4251,8 +4295,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		List<ShareSalesItems> shareSalesItemsList = shareSalesItemsService.list(new LambdaQueryWrapper<ShareSalesItems>()
 			.eq(ShareSalesItems::getTenantId, AuthUtil.getTenantId())
 			.eq(ShareSalesItems::getIsDeleted, 0)
-			.eq(ShareSalesItems::getPid, order.getId())
-			.apply("find_in_set(src_pid , '" + itemIds + "')"));
+			.eq(ShareSalesItems::getPid, order.getId()));
 		if (shareSalesItemsList.isEmpty()) {
 			throw new RuntimeException("未查到对应派发明细信息");
 		}
@@ -4271,6 +4314,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 			throw new RuntimeException("未查到对应派发销售单据明细信息");
 		}
 		List<Long> goodsId = orderItemsList.stream().map(PjOrderItems::getGoodsId).collect(Collectors.toList());
+		String goodsNo = orderItemsList.stream().map(PjOrderItems::getGoodsNo).distinct().collect(Collectors.joining(","));
 		List<SharePutOnShelves> sharePutOnShelvesList = sharePutOnShelvesService.list(new LambdaQueryWrapper<SharePutOnShelves>()
 			.eq(SharePutOnShelves::getTenantId, AuthUtil.getTenantId())
 			.eq(SharePutOnShelves::getIsDeleted, 0)
@@ -4281,14 +4325,24 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		if (sharePutOnShelvesList.isEmpty()) {
 			throw new RuntimeException("未找到共享上架商品明细");
 		}
+		List<PjProductLaunch> productLaunchList = productLaunchService.selectListProductLaunch(goodsNo, sharedCompanyName, null);
+		if (productLaunchList.isEmpty()) {
+			throw new RuntimeException("未查到对应商品信息");
+		}
+		List<SharePutOnShelves> selectSharePutOnShelvesList = sharePutOnShelvesService.selectSharePutOnShelvesList(goodsNo, sharedCompanyName, null);
+		if (productLaunchList.isEmpty()) {
+			throw new RuntimeException("未查到对应商品信息");
+		}
 		List<SharePutOnShelves> sharePutOnShelvesListNew = new ArrayList<>();
-		List<Long> shareOrderItemsListNew = new ArrayList<>();
-		List<Long> shareOrderListNew = new ArrayList<>();
+		List<SharePutOnShelves> shareSharePutOnShelvesNew = new ArrayList<>();
+		List<PjProductLaunch> productLaunchListNew = new ArrayList<>();
 		for (PjOrderItems item : orderItemsList) {
 			item.setSendNum(new BigDecimal("0.00"));
 			item.setOutGoodsTotalShipNum(new BigDecimal("0.00"));
 			item.setUpdateUser(AuthUtil.getUserId());
 			item.setUpdateTime(new Date());
+		}
+		for (ShareSalesItems item : shareSalesItemsList) {
 			SharePutOnShelves sharePutOnShelves = sharePutOnShelvesList.stream()
 				.filter(e -> e.getGoodsId().equals(item.getGoodsId())).findFirst().orElse(null);
 			if (sharePutOnShelves == null) {
@@ -4298,19 +4352,51 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 			sharePutOnShelves.setUpdateUser(AuthUtil.getUserId());
 			sharePutOnShelves.setUpdateTime(new Date());
 			sharePutOnShelvesListNew.add(sharePutOnShelves);
-			PjOrderItems orderItems = shareOrderItemsList.stream().filter(e -> e.getGoodsNo().equals(item.getGoodsNo())).findFirst().orElse(null);
-			if (orderItems != null) {
-				shareOrderItemsListNew.add(orderItems.getId());
-				shareOrderListNew.add(orderItems.getPid());
+			PjProductLaunch pjProductLaunch = productLaunchList.stream().filter(e -> e.getCode().equals(item.getGoodsCode())).findFirst().orElse(null);
+			if (pjProductLaunch != null) {
+				if (new BigDecimal("0.00").compareTo(pjProductLaunch.getInventory()) != 0
+					&& pjProductLaunch.getInventory().compareTo(item.getGoodsNum()) >= 0) {
+					pjProductLaunch.setInventory(pjProductLaunch.getInventory().add(item.getGoodsNum()));
+					productLaunchListNew.add(pjProductLaunch);
+				} else {
+					throw new RuntimeException("商品编号:" + item.getGoodsCode() + "库存不足");
+				}
+			} else {
+				throw new RuntimeException("商品编号:" + item.getGoodsCode() + "未查到上架");
+			}
+			SharePutOnShelves shelves = selectSharePutOnShelvesList.stream().filter(e -> e.getGoodsCode().equals(item.getGoodsCode())).findFirst().orElse(null);
+			if (shelves != null) {
+				if (new BigDecimal("0.00").compareTo(shelves.getInventory()) != 0
+					&& shelves.getInventory().compareTo(item.getGoodsNum()) >= 0) {
+					shelves.setInventory(shelves.getInventory().add(item.getGoodsNum()));
+					shareSharePutOnShelvesNew.add(shelves);
+				} else {
+					throw new RuntimeException("商品编号:" + item.getGoodsCode() + "库存不足");
+				}
+			} else {
+				throw new RuntimeException("商品编号:" + item.getGoodsCode() + "未查到上架");
+			}
+		}
+		for (PjProductLaunch item : productLaunchListNew) {
+			int count = productLaunchService.updateProductLaunch(item);
+			if (count == 0) {
+				throw new RuntimeException("商品:" + item.getCname() + "修改上架库存失败");
+			}
+		}
+		for (SharePutOnShelves item : shareSharePutOnShelvesNew) {
+			int count = sharePutOnShelvesService.updateSharePutOnShelves(item);
+			if (count == 0) {
+				throw new RuntimeException("商品:" + item.getGoodsName() + "修改上架库存失败");
 			}
 		}
 		orderItemsService.updateBatchById(orderItemsList);
-		if (!shareOrderItemsListNew.isEmpty()) {
-			orderItemsService.removeByIds(shareOrderItemsListNew);
+		if (!shareOrderItemsList.isEmpty()) {
+			List<Long> shareOrderItemsIds = shareOrderItemsList.stream().map(PjOrderItems::getId).distinct().collect(Collectors.toList());
+			orderItemsService.deleteByIds(shareOrderItemsIds);
 		}
-		if (!shareOrderListNew.isEmpty()) {
-			List<Long> shareOrderIds = shareOrderListNew.stream().distinct().collect(Collectors.toList());
-			this.removeByIds(shareOrderIds);
+		if (!shareOrderList.isEmpty()) {
+			List<Long> shareOrderIds = shareOrderList.stream().map(PjOrder::getId).distinct().collect(Collectors.toList());
+			baseMapper.deleteByIds(shareOrderIds);
 		}
 		if (!sharePutOnShelvesListNew.isEmpty()) {
 			sharePutOnShelvesService.updateBatchById(sharePutOnShelvesListNew);
@@ -5092,8 +5178,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		pjShip.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
 		pjShip.setCreateUser(AuthUtil.getUserId());
 		pjShip.setCreateTime(new Date());
-		pjShip.setSalesCompanyId(Long.parseLong(pjOrder.getSharedCompanyId()));
-		pjShip.setSalesCompanyName(pjOrder.getSharedCompanyName());
+		pjShip.setSalesCompanyId(pjOrder.getSalesCompanyId());
+		pjShip.setSalesCompanyName(pjOrder.getSalesCompanyName());
 		pjShip.setSourceCompanyId(pjOrder.getSalesCompanyId());
 		pjShip.setSourceCompanyName(pjOrder.getSalesCompanyName());
 		shipMapper.insert(pjShip);

+ 7 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/productLaunch/mapper/ProductLaunchMapper.java

@@ -20,6 +20,7 @@ package org.springblade.salesPart.productLaunch.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Param;
+import org.springblade.core.tenant.annotation.TenantIgnore;
 import org.springblade.salesPart.entity.PjProductLaunch;
 import org.springblade.salesPart.excel.PjShipStockDetails;
 import org.springblade.salesPart.vo.ProductLaunchVO;
@@ -44,4 +45,10 @@ public interface ProductLaunchMapper extends BaseMapper<PjProductLaunch> {
 	List<ProductLaunchVO> selectProductLaunchPage(IPage page, ProductLaunchVO productLaunch);
 
     List<PjShipStockDetails> productLaunchDetails(@Param("order") PjShipStockDetails pjShipStockDetails);
+
+	@TenantIgnore
+    List<PjProductLaunch> selectListProductLaunch(@Param("goodsNo")String goodsNo, @Param("salesCompanyName")String salesCompanyName,@Param("tenantId")String tenantId);
+
+	@TenantIgnore
+	int updateProductLaunch(PjProductLaunch item);
 }

+ 22 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/productLaunch/mapper/ProductLaunchMapper.xml

@@ -25,6 +25,9 @@
         <result column="price_four" property="priceFour"/>
         <result column="version" property="version"/>
     </resultMap>
+    <update id="updateProductLaunch">
+        UPDATE pjpf_product_launch SET inventory = #{inventory} WHERE id = #{id} And tenant_id = #{tenantId}
+    </update>
 
 
     <select id="selectProductLaunchPage" resultMap="productLaunchResultMap">
@@ -103,5 +106,24 @@
         ORDER BY
             ps.busines_date ASC
     </select>
+    <select id="selectListProductLaunch" resultType="org.springblade.salesPart.entity.PjProductLaunch">
+        SELECT
+            ppl.*,
+            pgd.code as code
+        FROM
+            pjpf_product_launch ppl
+            LEFT JOIN pjpf_goods_desc pgd ON ppl.goods_id = pgd.id
+        WHERE
+            ppl.is_deleted = 0
+          and pgd.is_deleted = 0
+          and find_in_set(pgd.code, #{goodsNo})
+        <if test="salesCompanyName !=null and salesCompanyName !=''">
+            and find_in_set(ppl.sales_company_name, #{salesCompanyName})
+        </if>
+        <if test="tenantId !=null and tenantId !=''">
+            and ppl.tenant_id = #{tenantId}
+            and pgd.tenant_id = #{tenantId}
+        </if>
+    </select>
 
 </mapper>

+ 4 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/productLaunch/service/IProductLaunchService.java

@@ -114,4 +114,8 @@ public interface IProductLaunchService extends IService<PjProductLaunch> {
     List<PjShipStockDetails> productLaunchDetails(PjShipStockDetails pjShipStockDetails);
 
 	R productLaunchPoints(List<PjProductLaunch> list);
+
+    List<PjProductLaunch> selectListProductLaunch(String goodsNo, String salesCompanyName,String tenantId);
+
+	int updateProductLaunch(PjProductLaunch item);
 }

+ 10 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/productLaunch/service/impl/ProductLaunchServiceImpl.java

@@ -1309,4 +1309,14 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
 		return R.success("ok");
 	}
 
+	@Override
+	public List<PjProductLaunch> selectListProductLaunch(String goodsNo, String salesCompanyName,String tenantId) {
+		return baseMapper.selectListProductLaunch(goodsNo,salesCompanyName,tenantId);
+	}
+
+	@Override
+	public int updateProductLaunch(PjProductLaunch item) {
+		return baseMapper.updateProductLaunch(item);
+	}
+
 }

+ 6 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/share/mapper/SharePutOnShelvesMapper.java

@@ -43,4 +43,10 @@ public interface SharePutOnShelvesMapper extends BaseMapper<SharePutOnShelves> {
 
 	@TenantIgnore
 	int deleteBySharedId(@Param("ids")String ids);
+
+	@TenantIgnore
+    List<SharePutOnShelves> selectSharePutOnShelvesList(@Param("goodsNo")String goodsNo, @Param("salesCompanyName")String salesCompanyName,@Param("tenantId")String tenantId);
+
+	@TenantIgnore
+	int updateSharePutOnShelves(SharePutOnShelves item);
 }

+ 19 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/share/mapper/SharePutOnShelvesMapper.xml

@@ -56,9 +56,28 @@
         where is_deleted = 0
           and find_in_set(src_shared_id, #{ids})
     </update>
+    <update id="updateSharePutOnShelves">
+        UPDATE pjpf_share_put_on_shelves SET inventory = #{inventory} WHERE id = #{id} And tenant_id = #{tenantId}
+    </update>
 
     <select id="selectSharePutOnShelvesPage" resultMap="sharePutOnShelvesResultMap">
         select * from pjpf_share_put_on_shelves where is_deleted = 0
     </select>
+    <select id="selectSharePutOnShelvesList"
+            resultType="org.springblade.salesPart.share.entity.SharePutOnShelves">
+        SELECT
+        *
+        FROM
+        pjpf_share_put_on_shelves
+        WHERE
+        is_deleted = 0
+        and find_in_set(goods_code, #{goodsNo})
+        <if test="salesCompanyName !=null and salesCompanyName !=''">
+            and find_in_set(sales_company_name, #{salesCompanyName})
+        </if>
+        <if test="tenantId !=null and tenantId !=''">
+            and tenant_id = #{tenantId}
+        </if>
+    </select>
 
 </mapper>

+ 4 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/share/service/ISharePutOnShelvesService.java

@@ -56,4 +56,8 @@ public interface ISharePutOnShelvesService extends IService<SharePutOnShelves> {
 	R batchSharingRevoke(String ids);
 
 	R importShareProductLaunch(List<SharePutOnShelvesImportExcel> excelList);
+
+    List<SharePutOnShelves> selectSharePutOnShelvesList(String goodsNo, String salesCompanyName, String tenantId);
+
+	int updateSharePutOnShelves(SharePutOnShelves item);
 }

+ 77 - 38
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/share/service/impl/SharePutOnShelvesServiceImpl.java

@@ -43,6 +43,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -266,47 +267,67 @@ public class SharePutOnShelvesServiceImpl extends ServiceImpl<SharePutOnShelvesM
 					throw new RuntimeException(item.getGoodsName() + "商品为被共享商品,共享失败");
 				}
 				item.setShareStatus("已共享");
-				SharePutOnShelves shelves = new SharePutOnShelves();
-				shelves.setShareStatus("暂存");
-				shelves.setTenantId(deptItem.getTenantId());
-				shelves.setGoodsCode(item.getGoodsCode());
-				shelves.setGoodsName(item.getGoodsName());
-				shelves.setGoodsInt(item.getGoodsInt());
-				shelves.setSpecificationAndModel(item.getSpecificationAndModel());
-				shelves.setGoodsSize(item.getGoodsSize());
-				shelves.setBrandName(item.getBrandName());
-				shelves.setGoodsDescription(item.getGoodsDescription());
-				shelves.setBrandItem(item.getBrandItem());
-				shelves.setPlaceProduction(item.getPlaceProduction());
-				shelves.setExplosionProof(item.getExplosionProof());
-				shelves.setOriginalFactory(item.getOriginalFactory());
-				shelves.setSelfRecovery(item.getSelfRecovery());
-				shelves.setSalesCompanyId(deptItem.getId());
-				shelves.setSalesCompanyName(deptItem.getDeptName());
-				shelves.setInventory(item.getInventory());
-				shelves.setShareCost(item.getShareCost());
-				shelves.setPriceOne(item.getPriceOne());
-				shelves.setPriceTwo(item.getPriceTwo());
-				shelves.setPriceThree(item.getPriceThree());
-				shelves.setPriceFour(item.getPriceFour());
-				shelves.setProductLaunchId(item.getProductLaunchId());
-				shelves.setSrcTenantId(item.getSrcTenantId());
-				shelves.setSrcSalesCompanyId(item.getSrcSalesCompanyId());
-				shelves.setSrcSalesCompanyName(item.getSrcSalesCompanyName());
-				shelves.setSrcGoodsId(item.getGoodsId());
-				shelves.setSrcGoodsCode(item.getGoodsCode());
-				shelves.setSrcGoodsName(item.getGoodsName());
-				shelves.setSrcBrandId(item.getBrandId());
-				shelves.setSrcBrandName(item.getBrandName());
-				shelves.setBillType(1);
-				shelves.setSrcSharedId(item.getId());
-				shelves.setUrl(item.getUrl());
-				sharePutOnShelves.add(shelves);
+				if (ObjectUtils.isNotNull(item.getSharedCompanyId()) && ObjectUtils.isNotNull(item.getSharedCompany())) {
+					List<String> sharedCompanyId = Arrays.asList(item.getSharedCompanyId().split(","));
+					sharedCompanyId.add(deptItem.getId() + "");
+					item.setSharedCompanyId(sharedCompanyId.stream().distinct().collect(Collectors.joining(",")));
+					List<String> sharedCompanyName = Arrays.asList(item.getSharedCompany().split(","));
+					sharedCompanyName.add(deptItem.getDeptName());
+					item.setSharedCompany(sharedCompanyName.stream().distinct().collect(Collectors.joining(",")));
+				} else {
+					item.setSharedCompanyId(deptItem.getId() + "");
+					item.setSharedCompany(deptItem.getDeptName());
+				}
+				List<SharePutOnShelves> sharePutOnShelvesList1 = baseMapper.selectSharePutOnShelvesList(item.getGoodsCode(), deptItem.getDeptName(), deptItem.getTenantId());
+				if (!sharePutOnShelvesList1.isEmpty()) {
+					for (SharePutOnShelves shelves : sharePutOnShelvesList1) {
+						shelves.setInventory(item.getInventory());
+						shelves.setShareCost(item.getShareCost());
+						sharePutOnShelves.add(shelves);
+					}
+				} else {
+					SharePutOnShelves shelves = new SharePutOnShelves();
+					shelves.setShareStatus("暂存");
+					shelves.setTenantId(deptItem.getTenantId());
+					shelves.setGoodsCode(item.getGoodsCode());
+					shelves.setGoodsName(item.getGoodsName());
+					shelves.setGoodsInt(item.getGoodsInt());
+					shelves.setSpecificationAndModel(item.getSpecificationAndModel());
+					shelves.setGoodsSize(item.getGoodsSize());
+					shelves.setBrandName(item.getBrandName());
+					shelves.setGoodsDescription(item.getGoodsDescription());
+					shelves.setBrandItem(item.getBrandItem());
+					shelves.setPlaceProduction(item.getPlaceProduction());
+					shelves.setExplosionProof(item.getExplosionProof());
+					shelves.setOriginalFactory(item.getOriginalFactory());
+					shelves.setSelfRecovery(item.getSelfRecovery());
+					shelves.setSalesCompanyId(deptItem.getId());
+					shelves.setSalesCompanyName(deptItem.getDeptName());
+					shelves.setInventory(item.getInventory());
+					shelves.setShareCost(item.getShareCost());
+					/*shelves.setPriceOne(item.getPriceOne());
+					shelves.setPriceTwo(item.getPriceTwo());
+					shelves.setPriceThree(item.getPriceThree());
+					shelves.setPriceFour(item.getPriceFour());*/
+					shelves.setProductLaunchId(item.getProductLaunchId());
+					shelves.setSrcTenantId(item.getSrcTenantId());
+					shelves.setSrcSalesCompanyId(item.getSrcSalesCompanyId());
+					shelves.setSrcSalesCompanyName(item.getSrcSalesCompanyName());
+					shelves.setSrcGoodsId(item.getGoodsId());
+					shelves.setSrcGoodsCode(item.getGoodsCode());
+					shelves.setSrcGoodsName(item.getGoodsName());
+					shelves.setSrcBrandId(item.getBrandId());
+					shelves.setSrcBrandName(item.getBrandName());
+					shelves.setBillType(1);
+					shelves.setSrcSharedId(item.getId());
+					shelves.setUrl(item.getUrl());
+					sharePutOnShelves.add(shelves);
+				}
 			}
 		}
 		this.updateBatchById(sharePutOnShelvesList);
 		if (!sharePutOnShelves.isEmpty()) {
-			this.saveBatch(sharePutOnShelves);
+			this.saveOrUpdateBatch(sharePutOnShelves);
 		}
 		return R.success("操作成功");
 	}
@@ -325,6 +346,8 @@ public class SharePutOnShelvesServiceImpl extends ServiceImpl<SharePutOnShelvesM
 			if (0 != item.getBillType()) {
 				throw new RuntimeException(item.getGoodsName() + "商品为被共享商品,撤销失败");
 			}
+			item.setSharedCompanyId("");
+			item.setSharedCompany("");
 			item.setShareStatus("暂存");
 		}
 		this.updateBatchById(sharePutOnShelvesList);
@@ -373,7 +396,13 @@ public class SharePutOnShelvesServiceImpl extends ServiceImpl<SharePutOnShelvesM
 			if (!brandDescList.isEmpty()) {
 				PjBrandDesc brandDesc = brandDescList.stream().filter(e -> e.getCname().equals(item.getSrcBrandName())).findFirst().orElse(null);
 				if (brandDesc == null) {
-					brandDescListNew.add(brandDescSave);
+					if (brandDescListNew.isEmpty()) {
+						brandDescListNew.add(brandDescSave);
+					} else {
+						if (!brandDescListNew.stream().map(PjBrandDesc::getCname).collect(Collectors.toList()).contains(item.getSrcBrandName())) {
+							brandDescListNew.add(brandDescSave);
+						}
+					}
 				}
 			} else {
 				brandDescListNew.add(brandDescSave);
@@ -642,4 +671,14 @@ public class SharePutOnShelvesServiceImpl extends ServiceImpl<SharePutOnShelvesM
 		return R.data(sharePutOnShelvesList);
 	}
 
+	@Override
+	public List<SharePutOnShelves> selectSharePutOnShelvesList(String goodsNo, String salesCompanyName, String tenantId) {
+		return baseMapper.selectSharePutOnShelvesList(goodsNo, salesCompanyName, tenantId);
+	}
+
+	@Override
+	public int updateSharePutOnShelves(SharePutOnShelves item) {
+		return baseMapper.updateSharePutOnShelves(item);
+	}
+
 }

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

@@ -1069,7 +1069,10 @@ public class StatisticsServiceImpl implements IStatisticsService {
 					orders = orderList.stream().filter(e -> e.getCustomerName().equals(item.getCustomerName())).collect(Collectors.toList());
 				}
 				if (!orders.isEmpty()) {
-					detail.setFreight(orders.stream().filter(e -> "XS".equals(e.getBsType())).map(PjOrder::getFreight).reduce(BigDecimal.ZERO, BigDecimal::add));
+					detail.setFreight(orders.stream().filter(e -> "XS".equals(e.getBsType())&&
+						"!已取消".equals(e.getStatus())).map(PjOrder::getFreight).reduce(BigDecimal.ZERO, BigDecimal::add));
+					BigDecimal freightR1 = orders.stream().filter(e -> "XS".equals(e.getBsType())&&
+						"已取消".equals(e.getStatus())).map(PjOrder::getFreight).reduce(BigDecimal.ZERO, BigDecimal::add);
 					List<Long> idList = orders.stream().filter(e -> "XS".equals(e.getBsType())).map(PjOrder::getId).collect(Collectors.toList());
 					List<Long> idListR = orders.stream().filter(e -> "XS".equals(e.getBsType()) &&
 						"已取消".equals(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
@@ -1128,7 +1131,7 @@ public class StatisticsServiceImpl implements IStatisticsService {
 					detail.setSalesQuantity(salesQuantity);
 					detail.setReturnQuantity(new BigDecimal("0").subtract(returnQuantity));
 					detail.setSalesAmount(salesAmount.add(detail.getFreight()).subtract(freightR));
-					detail.setReturnAmount(new BigDecimal("0").subtract(returnAmount).subtract(freightR));
+					detail.setReturnAmount(new BigDecimal("0").subtract(returnAmount).subtract(freightR).subtract(freightR1));
 					detail.setSalesProfit(salesProfit.add(detail.getFreight()).subtract(freightR));
 					salespersonCustomerList.add(detail);
 				}
@@ -1152,6 +1155,7 @@ public class StatisticsServiceImpl implements IStatisticsService {
 		BigDecimal salesProfit = new BigDecimal("0");
 		BigDecimal freight = new BigDecimal("0");
 		BigDecimal freightR = new BigDecimal("0");
+		BigDecimal freightR1 = new BigDecimal("0");
 		saleDetailDto.setTenantId(AuthUtil.getTenantId());
 		saleDetailDto.setSalesCompanyId(AuthUtil.getDeptId());
 		LambdaQueryWrapper<PjOrder> lambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -1221,7 +1225,10 @@ public class StatisticsServiceImpl implements IStatisticsService {
 					orders = orderList.stream().filter(e -> e.getCustomerName().equals(item.getCustomerName())).collect(Collectors.toList());
 				}
 				if (!orders.isEmpty()) {
-					freight = freight.add(orders.stream().filter(e -> "XS".equals(e.getBsType())).map(PjOrder::getFreight).reduce(BigDecimal.ZERO, BigDecimal::add));
+					freight = freight.add(orders.stream().filter(e -> "XS".equals(e.getBsType())&&
+						"!已取消".equals(e.getStatus())).map(PjOrder::getFreight).reduce(BigDecimal.ZERO, BigDecimal::add));
+					freightR1 = freightR1.add(orders.stream().filter(e -> "XS".equals(e.getBsType())&&
+						"已取消".equals(e.getStatus())).map(PjOrder::getFreight).reduce(BigDecimal.ZERO, BigDecimal::add));
 					List<Long> idList = orders.stream().filter(e -> "XS".equals(e.getBsType())).map(PjOrder::getId).collect(Collectors.toList());
 					List<Long> idListR = orders.stream().filter(e -> "XS".equals(e.getBsType()) &&
 						"已取消".equals(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
@@ -1277,7 +1284,7 @@ public class StatisticsServiceImpl implements IStatisticsService {
 		}
 		map.put("salesAmount", salesAmount.add(freight).subtract(freightR));
 		map.put("salesQuantity", salesQuantity);
-		map.put("returnAmount", returnAmount.add(freightR));
+		map.put("returnAmount", returnAmount.add(freightR).add(freightR1));
 		map.put("returnQuantity", returnQuantity);
 		map.put("salesProfit", salesProfit.add(freight).subtract(freightR));
 		map.put("freight", freight);
@@ -1358,7 +1365,10 @@ public class StatisticsServiceImpl implements IStatisticsService {
 					orders = orderList.stream().filter(e -> e.getCustomerName().equals(item.getCustomerName())).collect(Collectors.toList());
 				}
 				if (!orders.isEmpty()) {
-					detail.setFreight(orders.stream().filter(e -> "XS".equals(e.getBsType())).map(PjOrder::getFreight).reduce(BigDecimal.ZERO, BigDecimal::add));
+					detail.setFreight(orders.stream().filter(e -> "XS".equals(e.getBsType())&&
+						"!已取消".equals(e.getStatus())).map(PjOrder::getFreight).reduce(BigDecimal.ZERO, BigDecimal::add));
+					BigDecimal freightR1 = orders.stream().filter(e -> "XS".equals(e.getBsType())&&
+						"已取消".equals(e.getStatus())).map(PjOrder::getFreight).reduce(BigDecimal.ZERO, BigDecimal::add);
 					List<Long> idList = orders.stream().filter(e -> "XS".equals(e.getBsType())).map(PjOrder::getId).collect(Collectors.toList());
 					List<Long> idListR = orders.stream().filter(e -> "XS".equals(e.getBsType()) &&
 						"已取消".equals(e.getStatus())).map(PjOrder::getId).collect(Collectors.toList());
@@ -1417,7 +1427,7 @@ public class StatisticsServiceImpl implements IStatisticsService {
 					detail.setSalesQuantity(salesQuantity);
 					detail.setReturnQuantity(new BigDecimal("0").subtract(returnQuantity));
 					detail.setSalesAmount(salesAmount.add(detail.getFreight()).subtract(freightR));
-					detail.setReturnAmount(new BigDecimal("0").subtract(returnAmount).subtract(freightR));
+					detail.setReturnAmount(new BigDecimal("0").subtract(returnAmount).subtract(freightR).subtract(freightR1));
 					detail.setSalesProfit(salesProfit.add(detail.getFreight()).subtract(freightR));
 					salespersonCustomerList.add(detail);
 				}

+ 7 - 2
blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DeptServiceImpl.java

@@ -288,8 +288,13 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements ID
 	public List<Dept> deptListAll(Dept dept) {
 		List<String> tenantIds = paramServiceMapper.getTenants("whether.share");
 		if (!tenantIds.isEmpty()) {
-			dept.setTenantId(tenantIds.stream().collect(Collectors.joining(",")));
-			return baseMapper.deptListAll(dept);
+			List<String> tenantIdsNew = tenantIds.stream().filter(e -> !e.equals(AuthUtil.getTenantId())).collect(Collectors.toList());
+			if (!tenantIdsNew.isEmpty()) {
+				dept.setTenantId(tenantIdsNew.stream().collect(Collectors.joining(",")));
+				return baseMapper.deptListAll(dept);
+			} else {
+				return new ArrayList<>();
+			}
 		} else {
 			return new ArrayList<>();
 		}