Browse Source

1.品牌-花纹 增加 同步花纹 同步轮胎基础信息的品牌到花纹 去重
2.app 增加的客户的登录账号 也同步仓库过来
3.内部员工账号允许多仓
4.统计分析,应收、应付、利润增加仓库检索
5.销售订单添加商品,按照仓库区分库存
6.仓库下拉选按照用户区分权限
7.小铃铛消息提醒区分仓库
8.出入库接口库存成本价,金额计算问题修改

纪新园 2 months ago
parent
commit
16688a14e4
55 changed files with 507 additions and 290 deletions
  1. 7 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/dto/FinancingProcurement.java
  2. 6 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/dto/SaleDetail.java
  3. 11 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjCorpsAttn.java
  4. 5 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjOrder.java
  5. 6 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjSettlement.java
  6. 6 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjStockDesc.java
  7. 5 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/excel/PjShipStockDetails.java
  8. 5 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/vo/AppPendingPaymentParamVo.java
  9. 6 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/vo/PjOrderStatisticsWeb.java
  10. 1 1
      blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/entity/User.java
  11. 3 1
      blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/feign/IUserClient.java
  12. 1 1
      blade-service/blade-box-tube/src/main/java/org/springblade/box/tube/ocean/service/impl/ShippingBillServiceImpl.java
  13. 1 1
      blade-service/blade-box-tube/src/main/java/org/springblade/box/tube/service/impl/DeclareCustomsServiceImpl.java
  14. 1 1
      blade-service/blade-box-tube/src/main/java/org/springblade/box/tube/service/impl/RepairServiceImpl.java
  15. 4 4
      blade-service/blade-box-tube/src/main/java/org/springblade/box/tube/service/impl/TradingBoxServiceImpl.java
  16. 2 2
      blade-service/blade-box-tube/src/main/java/org/springblade/box/tube/service/impl/TransportServiceImpl.java
  17. 1 1
      blade-service/blade-check/src/main/java/org/springblade/check/service/impl/AuditProecessServiceImpl.java
  18. 1 1
      blade-service/blade-client/src/main/java/org/springblade/client/message/service/impl/MessageServiceImpl.java
  19. 1 1
      blade-service/blade-land/src/main/java/org/springblade/land/insurance/service/impl/InsuranceServiceImpl.java
  20. 1 1
      blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderServiceImpl.java
  21. 1 1
      blade-service/blade-los/src/main/java/org/springblade/los/trade/service/impl/AgentServiceImpl.java
  22. 3 3
      blade-service/blade-pay/src/main/java/org/springblade/pay/tonglianPayment/service/impl/PaymentServiceImpl.java
  23. 4 4
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java
  24. 8 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/brand/controller/BrandFigureController.java
  25. 3 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/brand/service/IBrandFigureService.java
  26. 54 4
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/brand/service/impl/BrandFigureServiceImpl.java
  27. 2 1
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/service/impl/CorpsAttnServiceImpl.java
  28. 16 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/service/impl/CorpsDescServiceImpl.java
  29. 28 16
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/goods/controller/GoodsDescController.java
  30. 3 3
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/maintenance/service/impl/MaintenanceServiceImpl.java
  31. 9 8
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/InventoryController.java
  32. 34 26
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/OrderController.java
  33. 5 4
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/OrderStatisticsController.java
  34. 8 8
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/ReturnsController.java
  35. 9 8
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/ShareSalesController.java
  36. 6 12
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/TransferAllocateController.java
  37. 6 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/mapper/OrderItemsMapper.xml
  38. 2 2
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/mapper/OrderMapper.java
  39. 25 10
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/mapper/OrderMapper.xml
  40. 42 31
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/impl/OrderServiceImpl.java
  41. 6 6
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/controller/ShipController.java
  42. 5 3
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/controller/ShipReturnsController.java
  43. 3 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/mapper/ShipMapper.xml
  44. 30 40
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/service/impl/ShipServiceImpl.java
  45. 4 2
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/shoppingCart/service/impl/ShoppingCartServiceImpl.java
  46. 66 31
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/statistics/service/impl/StatisticsServiceImpl.java
  47. 30 39
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/stock/controller/StockDescController.java
  48. 2 2
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/stock/mapper/StockDescMapper.xml
  49. 2 2
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/stock/service/impl/StockDescServiceImpl.java
  50. 7 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/storage/controller/StorageDescController.java
  51. 2 2
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/util/ParameterUtils.java
  52. 2 2
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/util/WxParamUtil.java
  53. 3 2
      blade-service/blade-user/src/main/java/org/springblade/system/user/feign/UserClient.java
  54. 1 1
      blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/SettlementServiceImpl.java
  55. 2 2
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/OrderServiceImpl.java

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

@@ -2,6 +2,7 @@ package org.springblade.salesPart.dto;
 
 import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotation.TableField;
 import lombok.Data;
 
 import java.math.BigDecimal;
@@ -85,5 +86,11 @@ public class FinancingProcurement {
 	@ExcelIgnore
 	private String salesCompanyId;
 
+	/**
+	 * 发货仓库id
+	 */
+	@TableField(exist = false)
+	private String storageIds;
+
 
 }

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

@@ -116,5 +116,11 @@ public class SaleDetail {
 	@ExcelIgnore
 	private String whetherRebate;
 
+	/**
+	 * 仓库
+	 */
+	@ExcelIgnore
+	private String storageIds;
+
 
 }

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

@@ -129,4 +129,15 @@ public class PjCorpsAttn implements Serializable {
 
 	@TableField(exist = false)
 	private String postId;
+
+	/**
+	 * 发货仓库id
+	 */
+	@TableField(exist = false)
+	private Long deliveryWarehouseId;
+	/**
+	 * 发货仓库名称
+	 */
+	@TableField(exist = false)
+	private String deliveryWarehouseName;
 }

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

@@ -175,6 +175,11 @@ public class PjOrder implements Serializable {
 	@ApiModelProperty(value = "发货仓库id")
 	private Long storageId;
 	/**
+	 * 发货仓库id
+	 */
+	@TableField(exist = false)
+	private String storageIds;
+	/**
 	 * 发货仓库名称
 	 */
 	@ApiModelProperty(value = "发货仓库名称")

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

@@ -202,4 +202,10 @@ public class PjSettlement implements Serializable {
 	 */
 	@TableField(exist = false)
 	private Long storageId;
+
+	/**
+	 * 发货仓库id
+	 */
+	@TableField(exist = false)
+	private String storageIds;
 }

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

@@ -100,6 +100,12 @@ public class PjStockDesc implements Serializable {
 	private Long storageId;
 
 	/**
+	 * 仓库/库区id
+	 */
+	@TableField(exist = false)
+	private String storageIds;
+
+	/**
 	 * 仓库/库区名称
 	 */
 	@ApiModelProperty(value = "仓库/库区名称")

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

@@ -119,6 +119,11 @@ public class PjShipStockDetails implements Serializable {
 	private Long stockId;
 
 	/**
+	 * 仓库id
+	 */
+	private String stockIds;
+
+	/**
 	 * 调入仓库id
 	 */
 	private Long callInStorageId;

+ 5 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/vo/AppPendingPaymentParamVo.java

@@ -21,5 +21,10 @@ public class AppPendingPaymentParamVo {
 	 */
 	private Long storageId;
 
+	/**
+	 * 仓库id
+	 */
+	private String storageIds;
+
 
 }

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

@@ -139,5 +139,11 @@ public class PjOrderStatisticsWeb implements Serializable {
 	@TableField(exist = false)
 	private Long storageId;
 
+	/**
+	 * 发货仓库id
+	 */
+	@TableField(exist = false)
+	private String storageIds;
+
 
 }

+ 1 - 1
blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/entity/User.java

@@ -160,7 +160,7 @@ public class User extends TenantEntity {
 	 * 仓库名称id
 	 */
 	@ApiModelProperty(value = "仓库名称id")
-	private Long storageId;
+	private String storageId;
 
 	/**
 	 * 仓库名称

+ 3 - 1
blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/feign/IUserClient.java

@@ -82,7 +82,9 @@ public interface IUserClient {
 	String GET_USER_BY_DEPT =  "/getUserByDept";
 
 	@GetMapping(LIST_USER_BY_ROLE_ID)
-	R<List<User>> listUserByRoleId(@RequestParam("roleId") String roleId, @RequestParam(value = "tenantId", required = false) String tenantId, @RequestParam(value = "salesCompanyId", required = false) String salesCompanyId);
+	R<List<User>> listUserByRoleId(@RequestParam("roleId") String roleId, @RequestParam(value = "tenantId", required = false) String tenantId,
+								   @RequestParam(value = "salesCompanyId", required = false) String salesCompanyId,
+								   @RequestParam(value = "storageId", required = false) Long storageId);
 
 	/**
 	 * 获取用户信息

+ 1 - 1
blade-service/blade-box-tube/src/main/java/org/springblade/box/tube/ocean/service/impl/ShippingBillServiceImpl.java

@@ -865,7 +865,7 @@ public class ShippingBillServiceImpl extends ServiceImpl<ShippingBillMapper, Shi
 				//给角色为财务的人发送消息
 				R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "财务");
 				if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-					R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(),null,null);
+					R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(),null,null,null);
 					if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 						for (User datum : userList.getData()) {
 							//循环发送消息

+ 1 - 1
blade-service/blade-box-tube/src/main/java/org/springblade/box/tube/service/impl/DeclareCustomsServiceImpl.java

@@ -807,7 +807,7 @@ public class DeclareCustomsServiceImpl extends ServiceImpl<DeclareCustomsMapper,
 				//给角色为财务的人发送消息
 				R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "财务");
 				if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-					R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(),null,null);
+					R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(),null,null,null);
 					if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 						for (User datum : userList.getData()) {
 							//循环发送消息

+ 1 - 1
blade-service/blade-box-tube/src/main/java/org/springblade/box/tube/service/impl/RepairServiceImpl.java

@@ -674,7 +674,7 @@ public class RepairServiceImpl extends ServiceImpl<RepairMapper, Repair> impleme
 				//给角色为财务的人发送消息
 				R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "财务");
 				if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-					R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(),null,null);
+					R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(),null,null,null);
 					if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 						for (User datum : userList.getData()) {
 							//循环发送消息

+ 4 - 4
blade-service/blade-box-tube/src/main/java/org/springblade/box/tube/service/impl/TradingBoxServiceImpl.java

@@ -983,7 +983,7 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 			//给角色为财务的人发送消息
 			R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "财务");
 			if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-				R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), null, null);
+				R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), null, null,null);
 				if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 					for (User datum : userList.getData()) {
 						//循环发送消息
@@ -1535,7 +1535,7 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 					//给角色为财务的人发送消息
 					R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "财务");
 					if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-						R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), null, null);
+						R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), null, null,null);
 						if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 							for (User datum : userList.getData()) {
 								//循环发送消息
@@ -1646,7 +1646,7 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 					//给角色为财务的人发送消息
 					R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "财务");
 					if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-						R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), null, null);
+						R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), null, null,null);
 						if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 							for (User datum : userList.getData()) {
 								//循环发送消息
@@ -1837,7 +1837,7 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 				//给角色为财务的人发送消息
 				R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "财务");
 				if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-					R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), null, null);
+					R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), null, null,null);
 					if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 						for (User datum : userList.getData()) {
 							//循环发送消息

+ 2 - 2
blade-service/blade-box-tube/src/main/java/org/springblade/box/tube/service/impl/TransportServiceImpl.java

@@ -872,7 +872,7 @@ public class TransportServiceImpl extends ServiceImpl<TransportMapper, Transport
 				//给角色为财务的人发送消息
 				R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "财务");
 				if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-					R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), null, null);
+					R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), null, null,null);
 					if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 						for (User datum : userList.getData()) {
 							//循环发送消息
@@ -1027,7 +1027,7 @@ public class TransportServiceImpl extends ServiceImpl<TransportMapper, Transport
 				//给角色为财务的人发送消息
 				R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "财务");
 				if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-					R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), null, null);
+					R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), null, null,null);
 					if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 						for (User datum : userList.getData()) {
 							//循环发送消息

+ 1 - 1
blade-service/blade-check/src/main/java/org/springblade/check/service/impl/AuditProecessServiceImpl.java

@@ -946,7 +946,7 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, A
 					// 给角色为助理的人发送消息
 					R<String> roleId = sysClient.getRoleIds(AuthUtil.getTenantId(), "助理");
 					if (roleId.isSuccess() && roleId.getData() != null) {
-						R<List<User>> userList = userClient.listUserByRoleId(roleId.getData(), null, null);
+						R<List<User>> userList = userClient.listUserByRoleId(roleId.getData(), null, null,null);
 						if (userList.isSuccess() && userList.getData() != null) {
 							userList.getData().forEach(user -> {
 								// 推送消息提醒助理生成采购

+ 1 - 1
blade-service/blade-client/src/main/java/org/springblade/client/message/service/impl/MessageServiceImpl.java

@@ -86,7 +86,7 @@ public class MessageServiceImpl extends ServiceImpl<MessageMapper, Message> impl
 		//角色id
 		Long roleId = roleByAlias.getData();
 		//查询此角色下全部用户
-		R<List<User>> listR = userClient.listUserByRoleId(roleId+"",null,null);
+		R<List<User>> listR = userClient.listUserByRoleId(roleId+"",null,null,null);
 		if (!listR.isSuccess()) {
 			throw new SecurityException("查询用户列表信息错误");
 		}

+ 1 - 1
blade-service/blade-land/src/main/java/org/springblade/land/insurance/service/impl/InsuranceServiceImpl.java

@@ -436,7 +436,7 @@ public class InsuranceServiceImpl extends ServiceImpl<InsuranceMapper, Insurance
 			//给角色为财务的人发送消息
 			R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "财务");
 			if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-				R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(),null,null);
+				R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(),null,null,null);
 				if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 					for (User datum : userList.getData()) {
 						//循环发送消息

+ 1 - 1
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderServiceImpl.java

@@ -1631,7 +1631,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, LandOrder> implem
 			//给角色为财务的人发送消息
 			R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "财务");
 			if (clientDeptIds.isSuccess() && com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotBlank(clientDeptIds.getData())) {
-				R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), null, null);
+				R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), null, null,null);
 				if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 					for (User datum : userList.getData()) {
 						//循环发送消息

+ 1 - 1
blade-service/blade-los/src/main/java/org/springblade/los/trade/service/impl/AgentServiceImpl.java

@@ -3290,7 +3290,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 		String formatted = now.format(formatter);
 		R<String> clientDeptIds = sysClient.getRoleIds(AuthUtil.getTenantId(), "财务");
 		if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-			R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), AuthUtil.getTenantId(), AuthUtil.getDeptId());
+			R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), AuthUtil.getTenantId(), AuthUtil.getDeptId(),null);
 			if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 				for (User datum : userList.getData()) {
 					//循环发送消息

+ 3 - 3
blade-service/blade-pay/src/main/java/org/springblade/pay/tonglianPayment/service/impl/PaymentServiceImpl.java

@@ -510,7 +510,7 @@ public class PaymentServiceImpl implements IPaymentService {
 							//给角色为财务的人发送消息
 							R<String> clientDeptIds = sysClient.getRoleIds(parametersDetails.getTenantId(), "客服");
 							if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-								R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), parametersDetails.getTenantId(), selectOrder.getSalesCompanyId() + "");
+								R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), parametersDetails.getTenantId(), selectOrder.getSalesCompanyId() + "",selectOrder.getStorageId());
 								if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 									for (User datum : userList.getData()) {
 										if (ObjectUtils.isNotNull(datum.getOaOpenId())) {
@@ -939,7 +939,7 @@ public class PaymentServiceImpl implements IPaymentService {
 							//给角色为财务的人发送消息
 							R<String> clientDeptIds = sysClient.getRoleIds(parametersDetails.getTenantId(), "客服");
 							if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-								R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), parametersDetails.getTenantId(), selectOrder.getSalesCompanyId() + "");
+								R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), parametersDetails.getTenantId(), selectOrder.getSalesCompanyId() + "",selectOrder.getStorageId());
 								if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 									for (User datum : userList.getData()) {
 										if (ObjectUtils.isNotNull(datum.getOaOpenId())) {
@@ -1167,7 +1167,7 @@ public class PaymentServiceImpl implements IPaymentService {
 								System.out.println("所属公司id:" + selectOrder.getSalesCompanyId());
 								System.out.println("租户号:" + parametersDetails.getTenantId());
 								System.out.println("角色id:" + clientDeptIds.getData());
-								R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), parametersDetails.getTenantId(), selectOrder.getSalesCompanyId() + "");
+								R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), parametersDetails.getTenantId(), selectOrder.getSalesCompanyId() + "",selectOrder.getStorageId());
 								if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 									for (User datum : userList.getData()) {
 										if (ObjectUtils.isNotNull(datum.getOaOpenId())) {

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

@@ -8076,7 +8076,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			String date1 = format.format(new Date());
 			R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "管理员");
 			if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-				R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), null, null);
+				R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), null, null,null);
 				if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 					StringBuilder openIds = new StringBuilder();
 					for (User datum : userList.getData()) {
@@ -8276,7 +8276,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			//给角色为财务的人发送消息
 			R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "财务");
 			if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-				R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), null, null);
+				R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), null, null,null);
 				if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 					for (User datum : userList.getData()) {
 						//循环发送消息
@@ -8935,7 +8935,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				//给角色为财务的人发送消息
 				R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "财务");
 				if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-					R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), null, null);
+					R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), null, null,null);
 					if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 						for (User datum : userList.getData()) {
 							//循环发送消息
@@ -9141,7 +9141,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			//给角色为财务的人发送消息
 			R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "财务");
 			if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-				R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), null, null);
+				R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), null, null,null);
 				if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 					for (User datum : userList.getData()) {
 						//循环发送消息

+ 8 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/brand/controller/BrandFigureController.java

@@ -29,6 +29,7 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.salesPart.brand.service.IBrandFigureService;
 import org.springblade.salesPart.entity.BrandFigure;
+import org.springblade.salesPart.entity.PjBrandDesc;
 import org.springblade.salesPart.vo.BrandFigureVO;
 import org.springframework.web.bind.annotation.*;
 
@@ -135,4 +136,11 @@ public class BrandFigureController extends BladeController {
 	}
 
 
+	/**
+	 * 同步花纹
+	 */
+	@PostMapping("/synchronousPattern")
+	public R synchronousPattern(@RequestBody PjBrandDesc brandDesc) {
+		return brandFigureService.synchronousPattern(brandDesc);
+	}
 }

+ 3 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/brand/service/IBrandFigureService.java

@@ -16,7 +16,9 @@
  */
 package org.springblade.salesPart.brand.service;
 
+import org.springblade.core.tool.api.R;
 import org.springblade.salesPart.entity.BrandFigure;
+import org.springblade.salesPart.entity.PjBrandDesc;
 import org.springblade.salesPart.vo.BrandFigureVO;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -38,4 +40,5 @@ public interface IBrandFigureService extends IService<BrandFigure> {
 	 */
 	IPage<BrandFigureVO> selectBrandFigurePage(IPage<BrandFigureVO> page, BrandFigureVO brandFigure);
 
+	R synchronousPattern(PjBrandDesc brandDesc);
 }

+ 54 - 4
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/brand/service/impl/BrandFigureServiceImpl.java

@@ -16,13 +16,27 @@
  */
 package org.springblade.salesPart.brand.service.impl;
 
-import org.springblade.salesPart.entity.BrandFigure;
-import org.springblade.salesPart.vo.BrandFigureVO;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.AllArgsConstructor;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
 import org.springblade.salesPart.brand.mapper.BrandFigureMapper;
 import org.springblade.salesPart.brand.service.IBrandFigureService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.salesPart.entity.BrandFigure;
+import org.springblade.salesPart.entity.PjBrandDesc;
+import org.springblade.salesPart.entity.PjGoodsDesc;
+import org.springblade.salesPart.goods.mapper.GoodsDescMapper;
+import org.springblade.salesPart.vo.BrandFigureVO;
 import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 品牌-花纹 服务实现类
@@ -31,11 +45,47 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
  * @since 2024-03-15
  */
 @Service
+@AllArgsConstructor
 public class BrandFigureServiceImpl extends ServiceImpl<BrandFigureMapper, BrandFigure> implements IBrandFigureService {
 
+	private final GoodsDescMapper goodsDescMapper;
+
 	@Override
 	public IPage<BrandFigureVO> selectBrandFigurePage(IPage<BrandFigureVO> page, BrandFigureVO brandFigure) {
 		return page.setRecords(baseMapper.selectBrandFigurePage(page, brandFigure));
 	}
 
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public R synchronousPattern(PjBrandDesc brandDesc) {
+		List<BrandFigure> brandFigureList = new ArrayList<>();
+		List<String> figureListOld = new ArrayList<>();
+		if (ObjectUtils.isNotNull(brandDesc.getBrandFigureList()) && !brandDesc.getBrandFigureList().isEmpty()) {
+			figureListOld = brandDesc.getBrandFigureList().stream().map(BrandFigure::getFigure).distinct().collect(Collectors.toList());
+		}
+		List<PjGoodsDesc> goodsDescList = goodsDescMapper.selectList(new LambdaQueryWrapper<PjGoodsDesc>()
+			.eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
+			.eq(PjGoodsDesc::getIsDeleted, 0)
+			.eq(PjGoodsDesc::getBrandId, brandDesc.getId()));
+		if (!goodsDescList.isEmpty()) {
+			List<String> finalFigureListOld = figureListOld;
+			List<String> figureList = goodsDescList.stream().map(PjGoodsDesc::getBrandItem)
+				.filter(brandItem -> !finalFigureListOld.contains(brandItem)).distinct().collect(Collectors.toList());
+			for (String item : figureList) {
+				BrandFigure brandFigure = new BrandFigure();
+				brandFigure.setFigure(item);
+				brandFigure.setCreateDept(Long.parseLong(AuthUtil.getDeptId()));
+				brandFigure.setCreateUser(AuthUtil.getUserId());
+				brandFigure.setCreateTime(new Date());
+				brandFigure.setPid(brandDesc.getId());
+				brandFigureList.add(brandFigure);
+			}
+		}
+		if (!brandFigureList.isEmpty()) {
+			this.saveOrUpdateBatch(brandFigureList);
+			brandDesc.setBrandFigureList(brandFigureList);
+		}
+		return R.data(brandDesc);
+	}
+
 }

+ 2 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/service/impl/CorpsAttnServiceImpl.java

@@ -80,7 +80,8 @@ public class CorpsAttnServiceImpl extends ServiceImpl<CorpsAttnMapper, PjCorpsAt
 		user.setRoleId(corpsAttn.getRoleId());
 		user.setDeptId(corpsAttn.getDeptId());
 		user.setPostId(corpsAttn.getPostId());
-
+		user.setStorageId(corpsAttn.getDeliveryWarehouseId()+"");
+		user.setStorageName(corpsAttn.getDeliveryWarehouseName());
 		if (ObjectUtil.isNotEmpty(attn.getUserId())) {
 
 			R<User> userR = userClient.userInfoById(attn.getUserId());

+ 16 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/service/impl/CorpsDescServiceImpl.java

@@ -440,6 +440,8 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, PjCorpsDe
 								saveUser.setRoleId("");
 							}
 							saveUser.setPassword("123456");
+							saveUser.setStorageId(corpsDesc.getDeliveryWarehouseId()+"");
+							saveUser.setStorageName(corpsDesc.getDeliveryWarehouseName());
 							R<Boolean> result = userClient.saveUser(saveUser);
 							if (!result.isSuccess()) {
 								throw new RuntimeException(result.getMsg());
@@ -908,6 +910,8 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, PjCorpsDe
 				saveUser.setRoleId("");
 			}
 			saveUser.setPassword("123456");
+			saveUser.setStorageId(corpsDesc.getDeliveryWarehouseId()+"");
+			saveUser.setStorageName(corpsDesc.getDeliveryWarehouseName());
 			R<Boolean> result = userClient.saveUser(saveUser);
 			if (!result.isSuccess()) {
 				throw new RuntimeException(result.getMsg());
@@ -959,6 +963,9 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, PjCorpsDe
 					throw new RuntimeException("手机号已存在,提交失败");
 				}
 				corpsAttn.setUserId(user.getId());
+				user.setStorageId(corpsDesc.getDeliveryWarehouseId()+"");
+				user.setStorageName(corpsDesc.getDeliveryWarehouseName());
+				userClient.updateUser(user);
 			}
 			List<PjCorpsAttn> corpsAttnList = corpsAttnService.list(new LambdaQueryWrapper<PjCorpsAttn>()
 				.eq(PjCorpsAttn::getTel, corpsDesc.getTel())
@@ -1270,6 +1277,9 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, PjCorpsDe
 				User user = userClient.loginByAccount("", corpsDesc.getTel(), "4", AuthUtil.getTenantId(), resDept.getData().getAppletsId());
 				if (ObjectUtils.isNotNull(user)) {
 					corpsAttn.setUserId(user.getId());
+					user.setStorageId(pjCorpsDesc.getDeliveryWarehouseId()+"");
+					user.setStorageName(pjCorpsDesc.getDeliveryWarehouseName());
+					userClient.updateUser(user);
 				}
 				corpsAttn.setCname(corpsDesc.getAttn());
 				corpsAttn.setTel(corpsDesc.getTel());
@@ -1285,6 +1295,9 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, PjCorpsDe
 				User user = userClient.loginByAccount("", corpsDesc.getTel(), "4", AuthUtil.getTenantId(), resDept.getData().getAppletsId());
 				if (ObjectUtils.isNotNull(user)) {
 					corpsAttn1.setUserId(user.getId());
+					user.setStorageId(pjCorpsDesc.getDeliveryWarehouseId()+"");
+					user.setStorageName(pjCorpsDesc.getDeliveryWarehouseName());
+					userClient.updateUser(user);
 				}
 				corpsAttn1.setCname(corpsDesc.getAttn());
 				corpsAttn1.setTel(corpsDesc.getTel());
@@ -1364,6 +1377,9 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, PjCorpsDe
 						throw new RuntimeException("手机号已存在,提交失败");
 					}
 					corpsAttn.setUserId(user.getId());
+					user.setStorageId(pjCorpsDesc.getDeliveryWarehouseId()+"");
+					user.setStorageName(pjCorpsDesc.getDeliveryWarehouseName());
+					userClient.updateUser(user);
 				}
 				corpsAttn.setCname(corpsDesc.getAttn());
 				corpsAttn.setTel(corpsDesc.getTel());

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

@@ -39,6 +39,7 @@ import org.springblade.salesPart.order.service.IOrderItemsService;
 import org.springblade.salesPart.productLaunch.service.IProductLaunchService;
 import org.springblade.salesPart.ship.service.IShipItemsService;
 import org.springblade.salesPart.stock.service.IStockDescService;
+import org.springblade.salesPart.util.ParameterUtils;
 import org.springblade.salesPart.vo.GoodsDescVO;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
@@ -106,8 +107,8 @@ public class GoodsDescController extends BladeController {
 
 		lambdaQueryWrapper.select(PjGoodsDesc::getId, PjGoodsDesc::getCname, PjGoodsDesc::getCode, PjGoodsDesc::getSpecificationAndModel, PjGoodsDesc::getBrandItem,
 				PjGoodsDesc::getBrandName, PjGoodsDesc::getGoodsSize, PjGoodsDesc::getInventoryAlert, PjGoodsDesc::getGoodsDescription,
-				PjGoodsDesc::getStatus, PjGoodsDesc::getEnableOrNot,PjGoodsDesc::getUnit,PjGoodsDesc::getIntegral,PjGoodsDesc::getWhether
-				,PjGoodsDesc::getWhetherIntegral, PjGoodsDesc::getBrandId, PjGoodsDesc::getGoodsTypeId)
+				PjGoodsDesc::getStatus, PjGoodsDesc::getEnableOrNot, PjGoodsDesc::getUnit, PjGoodsDesc::getIntegral, PjGoodsDesc::getWhether
+				, PjGoodsDesc::getWhetherIntegral, PjGoodsDesc::getBrandId, PjGoodsDesc::getGoodsTypeId)
 			.eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
 			.eq(PjGoodsDesc::getIsDeleted, 0)
 			.eq(PjGoodsDesc::getSalesCompanyId, AuthUtil.getDeptId())//公司
@@ -209,15 +210,15 @@ public class GoodsDescController extends BladeController {
 			return R.fail(500, "商品名称不能为空");
 		}
 		goodsDesc.setCname(goodsDesc.getCname().trim());
-		goodsDesc.setCname(goodsDesc.getCname().replaceAll("  "," "));
-		if (ObjectUtils.isNotNull(goodsDesc.getSpecificationAndModel())){
+		goodsDesc.setCname(goodsDesc.getCname().replaceAll("  ", " "));
+		if (ObjectUtils.isNotNull(goodsDesc.getSpecificationAndModel())) {
 			goodsDesc.setSpecificationAndModel(goodsDesc.getSpecificationAndModel().trim());
 		}
 		goodsDesc.setCode(goodsDesc.getCode().trim());
-		if (ObjectUtils.isNotNull(goodsDesc.getBrandItem())){
+		if (ObjectUtils.isNotNull(goodsDesc.getBrandItem())) {
 			goodsDesc.setBrandItem(goodsDesc.getBrandItem().trim());
 		}
-		if (ObjectUtils.isNotNull(goodsDesc.getGoodsSize())){
+		if (ObjectUtils.isNotNull(goodsDesc.getGoodsSize())) {
 			goodsDesc.setGoodsSize(goodsDesc.getGoodsSize().trim());
 		}
 		PjGoodsDesc goodsDesc1 = goodsDescService.saveMessage(goodsDesc);
@@ -470,17 +471,28 @@ public class GoodsDescController extends BladeController {
 	@ApiOperationSupport(order = 12)
 	@ApiOperation(value = "商品下拉", notes = "传入goods")
 	public R<IPage<PjGoodsDesc>> goodsPageXs(PjGoodsDesc goods, Query query) {
+		List<Long> goodIdList = new ArrayList<>();
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			LambdaQueryWrapper<PjStockDesc> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+			lambdaQueryWrapper.eq(PjStockDesc::getTenantId, AuthUtil.getTenantId())
+				.eq(PjStockDesc::getIsDeleted, 0)
+				.eq(PjStockDesc::getSalesCompanyId, AuthUtil.getDeptId())//公司
+				.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')")
+				.orderByDesc(PjStockDesc::getBalanceQuantity);
+			List<PjStockDesc> stockDescList = stockDescService.list(lambdaQueryWrapper);
+			if (!stockDescList.isEmpty()) {
+				goodIdList = stockDescList.stream().map(PjStockDesc::getGoodsId).distinct().collect(Collectors.toList());
+			}
+		}
 		LambdaQueryWrapper<PjProductLaunch> queryWrapper = new LambdaQueryWrapper<PjProductLaunch>()
 			.eq(PjProductLaunch::getIsDeleted, 0)
 			.ne(PjProductLaunch::getInventory, 0)
 			.eq(PjProductLaunch::getUpAndDownShelves, 1);
+		if (!goodIdList.isEmpty()) {
+			queryWrapper.in(PjProductLaunch::getGoodsId, goodIdList);
+		}
 		queryWrapper.apply("find_in_set(sales_company_id,'" + AuthUtil.getDeptId() + "')");
 		// 在页面未选择仓库的情况下,没有显示数据
-/*		if (ObjectUtils.isNotNull(goods.getStock())) {
-			queryWrapper.eq(PjProductLaunch::getBillType, 0);
-		} else {
-			queryWrapper.eq(PjProductLaunch::getBillType, 1);
-		}*/
 		List<PjProductLaunch> pjProductLaunchList = productLaunchService.list(queryWrapper);
 		List<Long> ids = pjProductLaunchList.stream().map(PjProductLaunch::getGoodsId).distinct().collect(Collectors.toList());
 		PjCorpsDesc pjCorpsDesc = corpsDescService.getById(goods.getCustomId());
@@ -560,9 +572,9 @@ public class GoodsDescController extends BladeController {
 					item.setInventory(pjProductLaunch.getInventory());
 				}
 				String typeIds;
-				if (ObjectUtils.isNotNull(item.getGoodsTypeId())){
+				if (ObjectUtils.isNotNull(item.getGoodsTypeId())) {
 					typeIds = item.getGoodsTypeId();
-				}else{
+				} else {
 					typeIds = "";
 				}
 				String[] typeIdsArry = typeIds.split(",");
@@ -639,7 +651,7 @@ public class GoodsDescController extends BladeController {
 				item.setPrice(pjProductLaunch.getInventoryCostPrice());
 			}
 			String typeId = item.getGoodsTypeId();
-			if (ObjectUtils.isNotNull(typeId)){
+			if (ObjectUtils.isNotNull(typeId)) {
 				String[] split = typeId.split(",");
 				List<String> stringList = Arrays.asList(split);
 				LambdaQueryWrapper<PjGoodsType> goodsTypeLambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -805,9 +817,9 @@ public class GoodsDescController extends BladeController {
 					item.setInventory(pjProductLaunch.getInventory());
 				}
 				String typeIds;
-				if (ObjectUtils.isNotNull(item.getGoodsTypeId())){
+				if (ObjectUtils.isNotNull(item.getGoodsTypeId())) {
 					typeIds = item.getGoodsTypeId();
-				}else{
+				} else {
 					typeIds = "";
 				}
 				String[] typeIdsArry = typeIds.split(",");

+ 3 - 3
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/maintenance/service/impl/MaintenanceServiceImpl.java

@@ -167,7 +167,7 @@ public class MaintenanceServiceImpl extends ServiceImpl<MaintenanceMapper, Maint
 			}
 			R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "管理员");
 			if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-				R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), null, null);
+				R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), null, null,null);
 				if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 					StringBuilder openIds = new StringBuilder();
 					for (User datum : userList.getData()) {
@@ -739,7 +739,7 @@ public class MaintenanceServiceImpl extends ServiceImpl<MaintenanceMapper, Maint
 		StringBuilder openIds = new StringBuilder();
 		R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "管理员");
 		if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-			R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), null, null);
+			R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), null, null,null);
 			if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 				for (User datum : userList.getData()) {
 					if (ObjectUtils.isNotNull(datum.getOaOpenId())) {
@@ -924,7 +924,7 @@ public class MaintenanceServiceImpl extends ServiceImpl<MaintenanceMapper, Maint
 		StringBuilder openIds = new StringBuilder();
 		R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "管理员");
 		if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-			R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), null, null);
+			R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), null, null,null);
 			if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 				for (User datum : userList.getData()) {
 					if (ObjectUtils.isNotNull(datum.getOaOpenId())) {

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

@@ -19,6 +19,7 @@ import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.salesPart.entity.PjGoodsDesc;
 import org.springblade.salesPart.entity.PjOrder;
 import org.springblade.salesPart.entity.PjOrderItems;
+import org.springblade.salesPart.entity.PjShip;
 import org.springblade.salesPart.excel.InventoryExportExcel;
 import org.springblade.salesPart.excel.InventoryFinancingExcel;
 import org.springblade.salesPart.excel.PjOrderExportExcelPD;
@@ -69,8 +70,7 @@ public class InventoryController {
 			.eq(PjOrder::getIsDeleted, 0)
 			.eq(PjOrder::getBsType, order.getBsType())
 			.eq(PjOrder::getSalesCompanyId, AuthUtil.getDeptId())
-			.eq(ObjectUtils.isNotEmpty(order.getStorageId()), PjOrder::getStorageId, order.getStorageId())
-			.like(ObjectUtils.isNotEmpty(order.getStorageName()), PjOrder::getStorageName, order.getStorageName())
+			.eq(ObjectUtils.isNotEmpty(order.getStorageName()), PjOrder::getStorageName, order.getStorageName())
 			.eq(ObjectUtils.isNotEmpty(order.getSalerId()), PjOrder::getSalerId, order.getSalerId())
 			.like(ObjectUtils.isNotEmpty(order.getOrdNo()), PjOrder::getOrdNo, order.getOrdNo())
 			.apply(ObjectUtils.isNotEmpty(order.getStatus()), "find_in_set(status,'" + order.getStatus() + "')");
@@ -86,9 +86,10 @@ public class InventoryController {
 				lambdaQueryWrapper.eq(PjOrder::getCreateUser, AuthUtil.getUserId());
 			}
 		}
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.getStorageId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
+			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(order.getStorageId()), PjOrder::getStorageId, order.getStorageId());//仓库
 		IPage<PjOrder> pages = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
 		StringBuilder updateUserIds = new StringBuilder();
 		StringBuilder createUserIds = new StringBuilder();
@@ -137,8 +138,7 @@ public class InventoryController {
 			.eq(PjOrder::getIsDeleted, 0)
 			.eq(PjOrder::getBsType, order.getBsType())
 			.eq(PjOrder::getSalesCompanyId, AuthUtil.getDeptId())
-			.eq(ObjectUtils.isNotEmpty(order.getStorageId()), PjOrder::getStorageId, order.getStorageId())
-			.like(ObjectUtils.isNotEmpty(order.getStorageName()), PjOrder::getStorageName, order.getStorageName())
+			.eq(ObjectUtils.isNotEmpty(order.getStorageName()), PjOrder::getStorageName, order.getStorageName())
 			.eq(ObjectUtils.isNotEmpty(order.getSalerId()), PjOrder::getSalerId, order.getSalerId())
 			.like(ObjectUtils.isNotEmpty(order.getOrdNo()), PjOrder::getOrdNo, order.getOrdNo())
 			.apply(ObjectUtils.isNotEmpty(order.getStatus()), "find_in_set(status,'" + order.getStatus() + "')");
@@ -154,9 +154,10 @@ public class InventoryController {
 				lambdaQueryWrapper.eq(PjOrder::getCreateUser, AuthUtil.getUserId());
 			}
 		}
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.getStorageId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
+			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(order.getStorageId()), PjOrder::getStorageId, order.getStorageId());//仓库
 		List<PjOrder> pages = orderService.list(lambdaQueryWrapper);
 		StringBuilder updateUserIds = new StringBuilder();//修改人id拼接
 		StringBuilder createUserIds = new StringBuilder();//创建人id拼接

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

@@ -111,9 +111,8 @@ public class OrderController extends BladeController {
 			.eq(PjOrder::getBsType, order.getBsType())
 			.eq(PjOrder::getSalesCompanyId, AuthUtil.getDeptId())//公司
 			.eq(ObjectUtils.isNotEmpty(order.getBillType()), PjOrder::getBillType, order.getBillType())
-			.eq(ObjectUtils.isNotEmpty(order.getStorageId()), PjOrder::getStorageId, order.getStorageId())//仓库
 			.eq(ObjectUtils.isNotEmpty(order.getReturnsStatus()), PjOrder::getReturnsStatus, order.getReturnsStatus())//退货状态
-			.like(ObjectUtils.isNotEmpty(order.getStorageName()), PjOrder::getStorageName, order.getStorageName())
+			.eq(ObjectUtils.isNotEmpty(order.getStorageName()), PjOrder::getStorageName, order.getStorageName())
 			.like(ObjectUtils.isNotEmpty(order.getSalerName()), PjOrder::getSalerName, order.getSalerName())
 			.eq(ObjectUtils.isNotEmpty(order.getCustomerId()), PjOrder::getCustomerId, order.getCustomerId())//客户
 			.eq(ObjectUtils.isNotEmpty(order.getGenerateTask()), PjOrder::getGenerateTask, order.getGenerateTask())//客户
@@ -181,9 +180,10 @@ public class OrderController extends BladeController {
 				lambdaQueryWrapper.eq(PjOrder::getCreateUser, AuthUtil.getUserId());
 			}
 		}
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.getStorageId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
+		lambdaQueryWrapper.eq(ObjectUtils.isNotNull(order.getStorageId()), PjOrder::getStorageId, order.getStorageId());
 		IPage<PjOrder> pages = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
 		if (CollectionUtils.isNotEmpty(pages.getRecords())) {
 			List<Long> userIds = new ArrayList<>();
@@ -266,7 +266,7 @@ public class OrderController extends BladeController {
 			.eq(PjOrder::getSalesCompanyId, exportUser.getDeptId())//公司
 			.eq(ObjectUtils.isNotEmpty(order.getStorageId()), PjOrder::getStorageId, order.getStorageId())//仓库
 			.eq(ObjectUtils.isNotEmpty(order.getReturnsStatus()), PjOrder::getReturnsStatus, order.getReturnsStatus())//退货状态
-			.like(ObjectUtils.isNotEmpty(order.getStorageName()), PjOrder::getStorageName, order.getStorageName())
+			.eq(ObjectUtils.isNotEmpty(order.getStorageName()), PjOrder::getStorageName, order.getStorageName())
 			.like(ObjectUtils.isNotEmpty(order.getSalerName()), PjOrder::getSalerName, order.getSalerName())
 			.eq(ObjectUtils.isNotEmpty(order.getCustomerId()), PjOrder::getCustomerId, order.getCustomerId())//客户
 			.eq(ObjectUtils.isNotEmpty(order.getGenerateTask()), PjOrder::getGenerateTask, order.getGenerateTask())//客户
@@ -325,9 +325,10 @@ public class OrderController extends BladeController {
 				lambdaQueryWrapper.eq(PjOrder::getCreateUser, AuthUtil.getUserId());
 			}
 		}
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.getStorageId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
+		lambdaQueryWrapper.eq(ObjectUtils.isNotNull(order.getStorageId()), PjOrder::getStorageId, order.getStorageId());
 		List<PjOrder> pages = orderService.list(lambdaQueryWrapper);
 		if (CollectionUtils.isNotEmpty(pages)) {
 			List<Long> userIds = pages.stream().flatMap(e -> Stream.of(e.getCreateUser(), e.getUpdateUser())).filter(Objects::nonNull).distinct().collect(Collectors.toList());
@@ -571,9 +572,10 @@ public class OrderController extends BladeController {
 				lambdaQueryWrapper.eq(PjOrder::getCustomerId, pjCorpsAttn.getPid());
 			}
 		}
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.getStorageId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
+		lambdaQueryWrapper.eq(ObjectUtils.isNotNull(order.getStorageId()), PjOrder::getStorageId, order.getStorageId());
 		IPage<PjOrder> pages = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
 		if (!pages.getRecords().isEmpty()) {
 			List<Long> ids = pages.getRecords().stream().map(PjOrder::getId).collect(Collectors.toList());
@@ -650,9 +652,10 @@ public class OrderController extends BladeController {
 				lambdaQueryWrapper.eq(PjOrder::getCreateUser, AuthUtil.getUserId());
 			}
 		}
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.getStorageId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
+		lambdaQueryWrapper.eq(ObjectUtils.isNotNull(order.getStorageId()), PjOrder::getStorageId, order.getStorageId());
 		IPage<PjOrder> pages = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
 		if (!pages.getRecords().isEmpty()) {
 			List<Long> ids = pages.getRecords().stream().map(PjOrder::getId).collect(Collectors.toList());
@@ -768,8 +771,8 @@ public class OrderController extends BladeController {
 			.eq(PjOrder::getCustomerId, pjCorpsAttn.getPid())
 			.in(PjOrder::getBsType, "XS", "GX")
 			.orderByDesc(PjOrder::getCreateTime);
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.getStorageId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
 		List<PjOrder> list = orderService.list(lambdaQueryWrapper);
 		if (list.isEmpty()) {
@@ -824,8 +827,8 @@ public class OrderController extends BladeController {
 			.eq(PjOrder::getCustomerId, pjCorpsAttn.getPid())
 			.in(PjOrder::getBsType, "XS", "GX")
 			.orderByDesc(PjOrder::getCreateTime);
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.getStorageId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
 		List<PjOrder> list = orderService.list(lambdaQueryWrapper);
 		if (list.isEmpty()) {
@@ -945,7 +948,7 @@ public class OrderController extends BladeController {
 			.eq(PjOrder::getIsDeleted, 0)
 			.eq(PjOrder::getSalesCompanyId, AuthUtil.getDeptId())//公司
 			.eq(ObjectUtils.isNotEmpty(order.getStorageId()), PjOrder::getStorageId, order.getStorageId())//仓库
-			.like(ObjectUtils.isNotEmpty(order.getStorageName()), PjOrder::getStorageName, order.getStorageName())
+			.eq(ObjectUtils.isNotEmpty(order.getStorageName()), PjOrder::getStorageName, order.getStorageName())
 			.eq(ObjectUtils.isNotEmpty(order.getCustomerId()), PjOrder::getCustomerId, order.getCustomerId())//客户
 			.eq(ObjectUtils.isNotEmpty(order.getGenerateTask()), PjOrder::getGenerateTask, order.getGenerateTask())//客户
 			.eq(ObjectUtils.isNotEmpty(order.getSalerId()), PjOrder::getSalerId, order.getSalerId())//业务员
@@ -977,9 +980,10 @@ public class OrderController extends BladeController {
 			/*lambdaQueryWrapper.eq(PjOrder::getCheckStatus, "审核完成")
 				.apply("find_in_set(actual_payment_status,'1,3')");*/
 		}
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.getStorageId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
+		lambdaQueryWrapper.eq(ObjectUtils.isNotNull(order.getStorageId()), PjOrder::getStorageId, order.getStorageId());
 		lambdaQueryWrapper.orderByDesc(PjOrder::getCreateTime);
 		IPage<PjOrder> pages = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
 		for (PjOrder item : pages.getRecords()) {
@@ -1130,9 +1134,10 @@ public class OrderController extends BladeController {
 			lambdaQueryWrapper.le(PjOrder::getBusinesDate, order.getBusinesDateList().get(1));
 		}
 		lambdaQueryWrapper.apply("find_in_set(status,'已发货,已收货')");
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.getStorageId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
+		lambdaQueryWrapper.eq(ObjectUtils.isNotNull(order.getStorageId()), PjOrder::getStorageId, order.getStorageId());
 		lambdaQueryWrapper.orderByDesc(PjOrder::getCreateTime);
 		List<PjOrder> list = orderService.list(lambdaQueryWrapper);
 		List<PjOrder> pjOrderList = new ArrayList<>();
@@ -1174,9 +1179,10 @@ public class OrderController extends BladeController {
 			lambdaQueryWrapper.le(PjOrder::getBusinesDate, order.getBusinesDateList().get(1));
 		}
 		lambdaQueryWrapper.apply("find_in_set(status,'已发货,已收货')");
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.getStorageId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
+		lambdaQueryWrapper.eq(ObjectUtils.isNotNull(order.getStorageId()), PjOrder::getStorageId, order.getStorageId());
 		lambdaQueryWrapper.orderByDesc(PjOrder::getCreateTime);
 		List<PjOrder> list = orderService.list(lambdaQueryWrapper);
 		List<PjOrder> pjOrderList = new ArrayList<>();
@@ -1241,9 +1247,10 @@ public class OrderController extends BladeController {
 			.ne(PjOrder::getWhetherIntegral, "1")
 			.eq(PjOrder::getCustomerId, order.getCustomerId())
 			.eq(PjOrder::getBusinessSource, "额度支付");
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.getStorageId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
+		lambdaQueryWrapper.eq(ObjectUtils.isNotNull(order.getStorageId()), PjOrder::getStorageId, order.getStorageId());
 		return R.data(orderService.page(Condition.getPage(query), lambdaQueryWrapper));
 	}
 
@@ -1484,9 +1491,10 @@ public class OrderController extends BladeController {
 			.eq(PjOrder::getBusinessSource, "额度支付")
 			.apply("FIND_IN_SET( actual_payment_status, '0,1,2,3,4' )")
 			.apply("FIND_IN_SET( status, '待确认,待发货,已发货,退款请核' )");
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.getStorageId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
+		lambdaQueryWrapper.eq(ObjectUtils.isNotNull(order.getStorageId()), PjOrder::getStorageId, order.getStorageId());
 		lambdaQueryWrapper.orderByDesc(PjOrder::getCreateTime);
 		List<PjOrder> orderList = orderService.list(lambdaQueryWrapper);
 		List<Map<String, Object>> mapList = new ArrayList<>();

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

@@ -31,6 +31,7 @@ import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.salesPart.entity.PjOrder;
+import org.springblade.salesPart.entity.PjShip;
 import org.springblade.salesPart.order.service.IOrderService;
 import org.springblade.salesPart.util.ParameterUtils;
 import org.springblade.system.user.entity.User;
@@ -69,8 +70,8 @@ public class OrderStatisticsController extends BladeController {
 			order.setSalesCompanyId(Long.parseLong(AuthUtil.getDeptId()));//公司
 		}
 		order.setSalesCompanyId(Long.parseLong(AuthUtil.getDeptId()));//公司
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			order.setStorageId(ParameterUtils.getStorageId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			order.setStorageIds(ParameterUtils.getStorageId());
 		}
 		List<PjOrder> pjOrderList = orderService.salesman(order);
 		return R.data(pjOrderList);
@@ -99,8 +100,8 @@ public class OrderStatisticsController extends BladeController {
 			"OR (business_source = '内部销售' AND FIND_IN_SET( actual_payment_status, '0,1,2,3,4' ))" +
 			"OR (business_source = '额度支付' AND FIND_IN_SET( actual_payment_status, '0,1,2,3' )))");
 		lambdaQueryWrapper.orderByDesc(PjOrder::getCreateTime);
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.getStorageId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
 		IPage<PjOrder> pages = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
 		String createUserIds = "";

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

@@ -83,8 +83,7 @@ public class ReturnsController {
 			.eq(PjOrder::getIsDeleted, 0)
 			.eq(PjOrder::getBsType, order.getBsType())
 			.eq(PjOrder::getSalesCompanyId, AuthUtil.getDeptId())//公司
-			.eq(ObjectUtils.isNotEmpty(order.getStorageId()), PjOrder::getStorageId, order.getStorageId())//仓库
-			.like(ObjectUtils.isNotEmpty(order.getStorageName()), PjOrder::getStorageName, order.getStorageName())
+			.eq(ObjectUtils.isNotEmpty(order.getStorageName()), PjOrder::getStorageName, order.getStorageName())
 			.eq(ObjectUtils.isNotEmpty(order.getCustomerId()), PjOrder::getCustomerId, order.getCustomerId())//客户
 			.eq(ObjectUtils.isNotEmpty(order.getGenerateTask()), PjOrder::getGenerateTask, order.getGenerateTask())//客户
 			.eq(ObjectUtils.isNotEmpty(order.getSalerId()), PjOrder::getSalerId, order.getSalerId())//业务员
@@ -128,9 +127,10 @@ public class ReturnsController {
 				lambdaQueryWrapper.eq(PjOrder::getCreateUser, AuthUtil.getUserId());
 			}
 		}
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.getStorageId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
+			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(order.getStorageId()), PjOrder::getStorageId, order.getStorageId());//仓库
 		IPage<PjOrder> pages = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
 
 		StringBuilder updateUserIds = new StringBuilder();//修改人id拼接
@@ -189,8 +189,7 @@ public class ReturnsController {
 			.eq(PjOrder::getIsDeleted, 0)
 			.eq(PjOrder::getBsType, order.getBsType())
 			.eq(PjOrder::getSalesCompanyId, AuthUtil.getDeptId())//公司
-			.eq(ObjectUtils.isNotEmpty(order.getStorageId()), PjOrder::getStorageId, order.getStorageId())//仓库
-			.like(ObjectUtils.isNotEmpty(order.getStorageName()), PjOrder::getStorageName, order.getStorageName())
+			.eq(ObjectUtils.isNotEmpty(order.getStorageName()), PjOrder::getStorageName, order.getStorageName())
 			.eq(ObjectUtils.isNotEmpty(order.getCustomerId()), PjOrder::getCustomerId, order.getCustomerId())//客户
 			.eq(ObjectUtils.isNotEmpty(order.getGenerateTask()), PjOrder::getGenerateTask, order.getGenerateTask())//客户
 			.eq(ObjectUtils.isNotEmpty(order.getSalerId()), PjOrder::getSalerId, order.getSalerId())//业务员
@@ -233,9 +232,10 @@ public class ReturnsController {
 				lambdaQueryWrapper.eq(PjOrder::getCreateUser, AuthUtil.getUserId());
 			}
 		}
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.getStorageId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
+			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(order.getStorageId()), PjOrder::getStorageId, order.getStorageId());//仓库
 		List<PjOrder> list = orderService.list( lambdaQueryWrapper);
 
 		StringBuilder updateUserIds = new StringBuilder();//修改人id拼接

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

@@ -20,6 +20,7 @@ import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.salesPart.entity.PjOrder;
 import org.springblade.salesPart.entity.PjOrderItems;
+import org.springblade.salesPart.entity.PjShip;
 import org.springblade.salesPart.excel.PjOrderExportExcelCG;
 import org.springblade.salesPart.excel.PjOrderExportExcelXS;
 import org.springblade.salesPart.order.service.IOrderItemsService;
@@ -76,8 +77,7 @@ public class ShareSalesController {
 			.eq(PjOrder::getIsDeleted, 0)
 			.eq(PjOrder::getBsType, order.getBsType())
 			.eq(PjOrder::getSalesCompanyId, AuthUtil.getDeptId())//公司
-			.eq(ObjectUtils.isNotEmpty(order.getStorageId()), PjOrder::getStorageId, order.getStorageId())//仓库
-			.like(ObjectUtils.isNotEmpty(order.getStorageName()), PjOrder::getStorageName, order.getStorageName())
+			.eq(ObjectUtils.isNotEmpty(order.getStorageName()), PjOrder::getStorageName, order.getStorageName())
 			.like(ObjectUtils.isNotEmpty(order.getSalerName()), PjOrder::getSalerName, order.getSalerName())
 			.eq(ObjectUtils.isNotEmpty(order.getCustomerId()), PjOrder::getCustomerId, order.getCustomerId())//客户
 			.eq(ObjectUtils.isNotEmpty(order.getSalerId()), PjOrder::getSalerId, order.getSalerId())//业务员
@@ -111,9 +111,10 @@ public class ShareSalesController {
 		lambdaQueryWrapper.apply("(( business_source = '外部销售' AND FIND_IN_SET( actual_payment_status, '2,3,4' ) )" +
 			" OR (business_source = '内部销售' AND FIND_IN_SET( actual_payment_status, '0,1,2,3,4' ))" +
 			" OR (business_source = '额度支付' AND FIND_IN_SET( actual_payment_status, '0,1,2,3,4' )))");
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.getStorageId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
+			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(order.getStorageId()), PjOrder::getStorageId, order.getStorageId());//仓库
 		IPage<PjOrder> pages = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
 		if (CollectionUtils.isNotEmpty(pages.getRecords())) {
 			List<Long> userIds = new ArrayList<>();
@@ -180,8 +181,7 @@ public class ShareSalesController {
 			.eq(PjOrder::getIsDeleted, 0)
 			.eq(PjOrder::getBsType, order.getBsType())
 			.eq(PjOrder::getSalesCompanyId, AuthUtil.getDeptId())//公司
-			.eq(ObjectUtils.isNotEmpty(order.getStorageId()), PjOrder::getStorageId, order.getStorageId())//仓库
-			.like(ObjectUtils.isNotEmpty(order.getStorageName()), PjOrder::getStorageName, order.getStorageName())
+			.eq(ObjectUtils.isNotEmpty(order.getStorageName()), PjOrder::getStorageName, order.getStorageName())
 			.like(ObjectUtils.isNotEmpty(order.getSalerName()), PjOrder::getSalerName, order.getSalerName())
 			.eq(ObjectUtils.isNotEmpty(order.getCustomerId()), PjOrder::getCustomerId, order.getCustomerId())//客户
 			.eq(ObjectUtils.isNotEmpty(order.getSalerId()), PjOrder::getSalerId, order.getSalerId())//业务员
@@ -212,9 +212,10 @@ public class ShareSalesController {
 				lambdaQueryWrapper.eq(PjOrder::getCreateUser, AuthUtil.getUserId());
 			}
 		}
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.getStorageId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
+			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(order.getStorageId()), PjOrder::getStorageId, order.getStorageId());//仓库
 		List<PjOrder> pages = orderService.list(lambdaQueryWrapper);
 		if (CollectionUtils.isNotEmpty(pages)) {
 			List<Long> userIds = new ArrayList<>();

+ 6 - 12
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/TransferAllocateController.java

@@ -27,18 +27,13 @@ import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import org.springblade.common.annotation.RepeatSubmit;
 import org.springblade.core.boot.ctrl.BladeController;
-import org.springblade.core.excel.util.ExcelUtil;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
-import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.ObjectUtil;
-import org.springblade.salesPart.entity.PjOrder;
-import org.springblade.salesPart.entity.PjOrderItems;
 import org.springblade.salesPart.entity.PjShip;
 import org.springblade.salesPart.entity.PjShipItems;
-import org.springblade.salesPart.excel.PjOrderExportExcelXS;
 import org.springblade.salesPart.ship.service.IShipItemsService;
 import org.springblade.salesPart.ship.service.IShipService;
 import org.springblade.salesPart.util.ParameterUtils;
@@ -46,7 +41,6 @@ import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.web.bind.annotation.*;
 
-import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.util.List;
 
@@ -81,10 +75,6 @@ public class TransferAllocateController extends BladeController {
 			.eq(PjShip::getIsDeleted, 0)
 			.eq(PjShip::getSalesCompanyId, AuthUtil.getDeptId())//公司
 			.like(ObjectUtil.isNotEmpty(ship.getBillno()), PjShip::getBillno, ship.getBillno())//销售订单
-			.eq(ObjectUtil.isNotEmpty(ship.getStorageId()), PjShip::getStorageId, ship.getStorageId())//仓库
-			.eq(ObjectUtil.isNotEmpty(ship.getCallInStorageId()), PjShip::getCallInStorageId, ship.getCallInStorageId())//仓库
-			.like(ObjectUtil.isNotEmpty(ship.getStorageName()), PjShip::getStorageName, ship.getStorageName())
-			.like(ObjectUtil.isNotEmpty(ship.getCallInStorageName()), PjShip::getCallInStorageName, ship.getCallInStorageName())
 			.eq(ObjectUtil.isNotEmpty(ship.getCustomerId()), PjShip::getCustomerId, ship.getCustomerId())//客户
 			.eq(ObjectUtil.isNotEmpty(ship.getSourceCompanyId()), PjShip::getSourceCompanyId, ship.getSourceCompanyId())//来源公司
 			.eq(ObjectUtil.isNotEmpty(ship.getStatusName()), PjShip::getStatusName, ship.getStatusName())//状态
@@ -97,9 +87,13 @@ public class TransferAllocateController extends BladeController {
 			lambdaQueryWrapper.ge(PjShip::getBusinesDate, ship.getBusinesDateList().get(0));
 			lambdaQueryWrapper.le(PjShip::getBusinesDate, ship.getBusinesDateList().get(1));
 		}
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjShip::getStorageId, ParameterUtils.getStorageId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
+			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(ship.getStorageId()), PjShip::getStorageId, ship.getStorageId())//仓库
+				.eq(ObjectUtil.isNotEmpty(ship.getCallInStorageId()), PjShip::getCallInStorageId, ship.getCallInStorageId())//仓库
+				.eq(ObjectUtil.isNotEmpty(ship.getStorageName()), PjShip::getStorageName, ship.getStorageName())
+				.like(ObjectUtil.isNotEmpty(ship.getCallInStorageName()), PjShip::getCallInStorageName, ship.getCallInStorageName());
 		lambdaQueryWrapper.orderByDesc(PjShip::getCreateTime);
 		IPage<PjShip> pages = shipService.page(Condition.getPage(query), lambdaQueryWrapper);
 

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

@@ -268,6 +268,9 @@
         <if test="saleDetailDto.storageId !=null and saleDetailDto.storageId != ''">
             and po.storage_id=#{saleDetailDto.storageId}
         </if>
+        <if test="saleDetailDto.storageIds !=null and saleDetailDto.storageIds != ''">
+            and find_in_set(po.storage_id , #{saleDetailDto.storageIds})
+        </if>
         <if test="saleDetailDto.businessSource !=null and saleDetailDto.businessSource != ''">
             and po.business_source=#{saleDetailDto.businessSource}
         </if>
@@ -483,6 +486,9 @@
         <if test="storageId !=null and storageId != ''">
             and po.storage_id=#{storageId}
         </if>
+        <if test="storageIds !=null and storageIds != ''">
+            and find_in_set(po.storage_id , #{storageIds})
+        </if>
         <if test="customerName !=null and customerName != ''">
             and po.customer_name like concat('%', #{customerName}, '%')
         </if>

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

@@ -66,7 +66,7 @@ public interface OrderMapper extends BaseMapper<PjOrder> {
 
 	Map<String, BigDecimal> columnar(@Param("firstDay") LocalDate firstDay, @Param("lastDay") LocalDate lastDay,
 									 @Param("tenantId") String tenantId, @Param("salesCompanyId") Long salesCompanyId,
-									 @Param("storageId") Long storageId);
+									 @Param("storageId") String storageId);
 
 	List<PjOrderStatisticsWeb> statisticsPage(IPage<PjOrderStatisticsWeb> page, @Param("order") PjOrderStatisticsWeb order);
 
@@ -100,7 +100,7 @@ public interface OrderMapper extends BaseMapper<PjOrder> {
 
 	Map<String, BigDecimal> columnarRz(@Param("firstDay") LocalDate firstDay, @Param("lastDay") LocalDate lastDay,
 									   @Param("tenantId") String tenantId, @Param("salesCompanyId") Long salesCompanyId,
-									   @Param("storageId") Long storageId);
+									   @Param("storageId") String storageId);
 
 	List<FinancingProcurement> financingProcurement(@Param("page") IPage<FinancingProcurement> page, @Param("sale") FinancingProcurement financingProcurement);
 

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

@@ -187,8 +187,8 @@
         <if test="order.salesCompanyId!=null">
             and po.sales_company_id = #{order.salesCompanyId}
         </if>
-        <if test="order.storageId!=null">
-            and po.storage_id = #{order.storageId}
+        <if test="order.storageIds !=null">
+            and find_in_set(po.storage_id , #{order.storageId})
         </if>
         <if test="order.businesDateList == null">
             AND DATE_FORMAT(po.busines_date, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')
@@ -260,6 +260,9 @@
         <if test="order.storageId!=null">
             and bu.storage_id = #{order.storageId}
         </if>
+        <if test="order.storageIds !=null">
+            and find_in_set(bu.storage_id , #{order.storageId})
+        </if>
         GROUP BY
             po.saler_id
     </select>
@@ -292,7 +295,7 @@
             and po.sales_company_id = #{salesCompanyId}
         </if>
         <if test="storageId!=null">
-            and po.storage_id = #{storageId}
+            and FIND_IN_SET(po.storage_id , #{storageId})
         </if>
     </select>
     <select id="collectionStatisticsList" resultType="org.springblade.salesPart.vo.OrderStatistics">
@@ -328,7 +331,7 @@
             and po.sales_company_id = #{order.salesCompanyId}
         </if>
         <if test="order.storageId!=null">
-            and po.storage_id = #{order.storageId}
+            and find_in_set(po.storage_id , #{order.storageId})
         </if>
         <if test="order.businesDateList == null">
             AND DATE_FORMAT(po.busines_date, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')
@@ -409,8 +412,11 @@
         <if test="order.customerId!=null">
             and o.customer_id = #{order.customerId}
         </if>
+        <if test="order.storageIds!=null">
+            and FIND_IN_SET(o.storage_id , #{order.storageIds})
+        </if>
         <if test="order.storageId!=null">
-            and o.storage_id = #{order.storageId}
+            and o.storage_id = #{order.storageIds}
         </if>
         <if test="order.whetherSettlement !=null and order.whetherSettlement == 0">
             and o.total_money != o.payment_amount_tl
@@ -472,8 +478,11 @@
         <if test="order.customerId!=null">
             and o.customer_id = #{order.customerId}
         </if>
+        <if test="order.storageIds!=null">
+            and FIND_IN_SET(o.storage_id , #{order.storageIds})
+        </if>
         <if test="order.storageId!=null">
-            and o.storage_id = #{order.storageId}
+            and o.storage_id = #{order.storageIds}
         </if>
         <if test="order.whetherSettlement !=null and order.whetherSettlement == 0">
             and o.total_money != o.payment_amount_tl
@@ -863,7 +872,7 @@
             and po.sales_company_id = #{salesCompanyId}
         </if>
         <if test="storageId!=null">
-            and po.storage_id = #{storageId}
+            and FIND_IN_SET(po.storage_id , #{storageId})
         </if>
     </select>
     <select id="financingProcurement" resultType="org.springblade.salesPart.dto.FinancingProcurement">
@@ -896,6 +905,9 @@
         <if test="sale.whetherRedeem !=null and sale.whetherRedeem != ''">
             and whether_redeem = #{sale.whetherRedeem}
         </if>
+        <if test="sale.storageIds!=null">
+            and FIND_IN_SET(storage_id , #{sale.storageIds})
+        </if>
         <if test="sale.ordNo !=null and sale.ordNo != ''">
             and ord_no like concat('%', #{sale.ordNo}, '%')
         </if>
@@ -939,6 +951,9 @@
         <if test="sale.whetherRedeem !=null and sale.whetherRedeem != ''">
             and whether_redeem = #{sale.whetherRedeem}
         </if>
+        <if test="sale.storageIds!=null">
+            and FIND_IN_SET(storage_id , #{sale.storageIds})
+        </if>
         <if test="sale.ordNo !=null and sale.ordNo != ''">
             and ord_no like concat('%', #{sale.ordNo}, '%')
         </if>
@@ -1069,7 +1084,7 @@
             and pcd.sales_company_id = #{salesCompanyId}
         </if>
         <if test="storageId!=null">
-            and pcd.delivery_warehouse_id = #{storageId}
+            and find_in_set(pcd.delivery_warehouse_id , #{storageId})
         </if>
         group by pcd.id
         order by unpaidAmount desc
@@ -1124,7 +1139,7 @@
             pcd.is_deleted = '0'
           AND pcd.tenant_id = #{dto.tenantId}
         <if test="dto.storageId!=null">
-            and pcd.delivery_warehouse_id = #{dto.storageId}
+            and find_in_set(pcd.delivery_warehouse_id , #{dto.storageId})
         </if>
     </select>
     <select id="expenditureSum" resultType="java.math.BigDecimal"
@@ -1140,7 +1155,7 @@
             and find_in_set(po.sales_company_id,#{salesCompanyId})
         </if>
         <if test="storageId !=null and storageId != ''">
-            and po.storage_id = #{storageId}
+            and find_in_set(po.storage_id , #{storageId})
         </if>
         <if test="salerName !=null and salerName != ''">
             and po.saler_name like concat('%', #{salerName}, '%')

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

@@ -313,7 +313,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 			order.setSalesCompanyId(Long.parseLong(AuthUtil.getDeptId()));
 		}
 		if (ParameterUtils.whetherDatabaseSharding()) {
-			order.setStorageId(ParameterUtils.getStorageId());
+			order.setStorageIds(ParameterUtils.getStorageId());
 		}
 		return page.setRecords(baseMapper.collectionStatistics(page, order));
 	}
@@ -327,7 +327,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 			order.setSalesCompanyId(Long.parseLong(AuthUtil.getDeptId()));
 		}
 		if (ParameterUtils.whetherDatabaseSharding()) {
-			order.setStorageId(ParameterUtils.getStorageId());
+			order.setStorageIds(ParameterUtils.getStorageId());
 		}
 		return baseMapper.collectionStatisticsList(order);
 	}
@@ -349,7 +349,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		} else {
 			year = LocalDate.now().getYear();
 		}
-		Long storageId = null;
+		String storageId = null;
 		if (ParameterUtils.whetherDatabaseSharding()) {
 			storageId = ParameterUtils.getStorageId();
 		}
@@ -379,7 +379,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 	@Override
 	public IPage<PjOrderStatisticsWeb> statisticsPage(IPage<PjOrderStatisticsWeb> page, PjOrderStatisticsWeb order) {
 		if (ParameterUtils.whetherDatabaseSharding()) {
-			order.setStorageId(ParameterUtils.getStorageId());
+			order.setStorageIds(ParameterUtils.getStorageId());
 		}
 		List<PjOrderStatisticsWeb> list = baseMapper.statisticsPage(page, order);
 		if (!list.isEmpty()) {
@@ -397,9 +397,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 					" AND DATE_FORMAT( busines_date, '%Y-%m' ) <= '" + order.getBusinesDateList().get(1) + "' ");
 			}
 			lambdaQueryWrapper.apply(" total_money != payment_amount_tl ");
-			if (ParameterUtils.whetherDatabaseSharding()) {
-				lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.getStorageId());
+			if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+				lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 			}
+			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(order.getStorageId()), PjOrder::getStorageId, order.getStorageId());
 			List<PjOrder> pjOrderList = baseMapper.selectList(lambdaQueryWrapper);
 			List<PjOrderItems> pjOrderItemsList = new ArrayList<>();
 			if (!pjOrderList.isEmpty()) {
@@ -554,7 +555,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 	@Override
 	public List<PjOrderStatisticsExcel> statisticsExport(PjOrderStatisticsWeb order) {
 		if (ParameterUtils.whetherDatabaseSharding()) {
-			order.setStorageId(ParameterUtils.getStorageId());
+			order.setStorageIds(ParameterUtils.getStorageId());
 		}
 		List<PjOrderStatisticsExcel> list = baseMapper.statisticsExport(order);
 		if (!list.isEmpty()) {
@@ -571,14 +572,18 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 				lambdaQueryWrapper.apply("DATE_FORMAT( busines_date, '%Y-%m' ) >= '" + order.getBusinesDateList().get(0) + "'" +
 					" AND DATE_FORMAT( busines_date, '%Y-%m' ) <= '" + order.getBusinesDateList().get(1) + "' ");
 			}
-			if (ParameterUtils.whetherDatabaseSharding()) {
-				lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.getStorageId());
+			if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+				lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 			}
+			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(order.getStorageId()), PjOrder::getStorageId, order.getStorageId());
 			List<PjOrder> pjOrderList = baseMapper.selectList(lambdaQueryWrapper);
-			List<PjOrderItems> pjOrderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
-				.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
-				.eq(PjOrderItems::getIsDeleted, 0)
-				.in(PjOrderItems::getPid, pjOrderList.stream().map(PjOrder::getId).distinct().collect(Collectors.toList())));
+			List<PjOrderItems> pjOrderItemsList = new ArrayList<>();
+			if (!pjOrderList.isEmpty()){
+				pjOrderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
+					.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
+					.eq(PjOrderItems::getIsDeleted, 0)
+					.in(PjOrderItems::getPid, pjOrderList.stream().map(PjOrder::getId).distinct().collect(Collectors.toList())));
+			}
 			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
 			for (PjOrderStatisticsExcel item : list) {
 				item.setSalesAmount(new BigDecimal("0.00"));
@@ -733,8 +738,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 			.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,4' ))" +
 				"OR (business_source = '额度支付' AND FIND_IN_SET( actual_payment_status, '0,1,2,3' )))");
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.getStorageId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
 		List<PjOrder> orderList = baseMapper.selectList(lambdaQueryWrapper);
 		if (!orderList.isEmpty()) {
@@ -2494,8 +2499,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 	@Override
 	public R statisticsSum(PjOrderStatisticsWeb order) {
 		if (ParameterUtils.whetherDatabaseSharding()) {
-			order.setStorageId(ParameterUtils.getStorageId());
+			order.setStorageIds(ParameterUtils.getStorageId());
 		}
+
 		List<PjOrderStatisticsExcel> list = baseMapper.statisticsExport(order);
 		if (!list.isEmpty()) {
 			List<String> orderTypeList = Arrays.asList("待确认", "待发货", "已发货", "退款请核", "已收货");
@@ -2513,14 +2519,18 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 					" AND DATE_FORMAT( busines_date, '%Y-%m' ) <= '" + order.getBusinesDateList().get(1) + "' ");
 			}
 			lambdaQueryWrapper.apply(" total_money != payment_amount_tl ");
-			if (ParameterUtils.whetherDatabaseSharding()) {
-				lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.getStorageId());
+			if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+				lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 			}
+			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(order.getStorageId()), PjOrder::getStorageId, order.getStorageId());
 			List<PjOrder> pjOrderList = baseMapper.selectList(lambdaQueryWrapper);
-			List<PjOrderItems> pjOrderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
-				.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
-				.eq(PjOrderItems::getIsDeleted, 0)
-				.in(PjOrderItems::getPid, pjOrderList.stream().map(PjOrder::getId).distinct().collect(Collectors.toList())));
+			List<PjOrderItems> pjOrderItemsList = new ArrayList<>();
+			if (!pjOrderList.isEmpty()){
+				pjOrderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
+					.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
+					.eq(PjOrderItems::getIsDeleted, 0)
+					.in(PjOrderItems::getPid, pjOrderList.stream().map(PjOrder::getId).distinct().collect(Collectors.toList())));
+			}
 			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
 			/*if (!pjOrderList.isEmpty() && !pjOrderItemsList.isEmpty()) {
 				if (0 == order.getType()) {
@@ -3736,7 +3746,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		} else {
 			year = LocalDate.now().getYear();
 		}
-		Long storageId = null;
+		String storageId = null;
 		if (ParameterUtils.whetherDatabaseSharding()) {
 			storageId = ParameterUtils.getStorageId();
 		}
@@ -4369,7 +4379,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		//给角色为财务的人发送消息
 		R<String> clientDeptIds = sysClient.getRoleIds(dept.getTenantId(), "客服");
 		if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-			R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), dept.getTenantId(), dept.getId() + "");
+			R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), dept.getTenantId(), dept.getId() + "", sharePjOrder.getStorageId());
 			if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 				for (User datum : userList.getData()) {
 					//循环发送消息
@@ -4769,8 +4779,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 			lambdaQueryWrapper.eq(PjOrder::getCustomerId, pjCorpsAttn.getPid());
 		}
 		lambdaQueryWrapper.groupBy(PjOrder::getSrcOrdNo);
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.getStorageId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
 		query.setDescs("create_time");
 		IPage<PjOrder> pages = orderMapper.selectPage(Condition.getPage(query), lambdaQueryWrapper);
@@ -4855,8 +4865,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		lambdaQueryWrapper.eq(PjOrder::getTenantId, user.getTenantId())
 			.eq(PjOrder::getIsDeleted, 0)
 			.in(PjOrder::getOrdNo, saleDetailDtoList.stream().map(SaleDetailDto::getOrdNo).distinct().collect(Collectors.toList()));
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.getStorageId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
 		List<PjOrder> pjOrderList = orderMapper.selectList(lambdaQueryWrapper);
 		if (org.springframework.util.CollectionUtils.isEmpty(pjOrderList)) {
@@ -4997,7 +5007,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 			paymentParamVo.setSalesCompanyId(nowAppUser.getDeptId());
 		}
 		if (ParameterUtils.whetherDatabaseSharding()) {
-			paymentParamVo.setStorageId(ParameterUtils.getStorageId());
+			paymentParamVo.setStorageIds(ParameterUtils.getStorageId());
 		}
 		paymentParamVo.setTenantId(nowAppUser.getTenantId());
 		IPage<AppPendingPaymentVo> pendingPaymentVo = Condition.getPage(query);
@@ -5012,7 +5022,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		}
 		settlement.setTenantId(AuthUtil.getTenantId());
 		if (ParameterUtils.whetherDatabaseSharding()) {
-			settlement.setStorageId(ParameterUtils.getStorageId());
+			settlement.setStorageIds(ParameterUtils.getStorageId());
 		}
 		return orderMapper.getPendingPaymentSum(settlement);
 	}
@@ -5973,7 +5983,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		//给角色为派工的人发送消息
 		R<String> clientDeptIds = sysClient.getRoleIds(AuthUtil.getTenantId(), "派工");
 		if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-			R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), AuthUtil.getTenantId(), pjShip.getSalesCompanyId() + "");
+			R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), AuthUtil.getTenantId(),
+				pjShip.getSalesCompanyId() + "", order.getStorageId());
 			if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 				for (User datum : userList.getData()) {
 					//循环发送消息

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

@@ -111,8 +111,7 @@ public class ShipController extends BladeController {
 			.like(ObjectUtil.isNotEmpty(ship.getOrdNo()), PjShip::getOrdNo, ship.getOrdNo())//销售订单
 			.like(ObjectUtil.isNotEmpty(ship.getBillno()), PjShip::getBillno, ship.getBillno())//销售订单
 			.like(ObjectUtil.isNotEmpty(ship.getSrcOrdNo()), PjShip::getSrcOrdNo, ship.getSrcOrdNo())//销售订单
-			.eq(ObjectUtil.isNotEmpty(ship.getStorageId()), PjShip::getStorageId, ship.getStorageId())//仓库
-			.like(ObjectUtil.isNotEmpty(ship.getStorageName()), PjShip::getStorageName, ship.getStorageName())
+			.eq(ObjectUtil.isNotEmpty(ship.getStorageName()), PjShip::getStorageName, ship.getStorageName())
 			.eq(ObjectUtil.isNotEmpty(ship.getCustomerId()), PjShip::getCustomerId, ship.getCustomerId())//客户
 			.eq(ObjectUtil.isNotEmpty(ship.getSourceCompanyId()), PjShip::getSourceCompanyId, ship.getSourceCompanyId())//来源公司
 			.eq(ObjectUtil.isNotEmpty(ship.getStatusName()), PjShip::getStatusName, ship.getStatusName())//状态
@@ -136,9 +135,10 @@ public class ShipController extends BladeController {
 				lambdaQueryWrapper.eq(PjShip::getCustomerId, AuthUtil.getUserId());
 			}
 		}
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjShip::getStorageId, ParameterUtils.getStorageId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
+		lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(ship.getStorageId()), PjShip::getStorageId, ship.getStorageId());//仓库
 		IPage<PjShip> pages = shipService.page(Condition.getPage(query), lambdaQueryWrapper);
 		if (CollectionUtils.isNotEmpty(pages.getRecords())) {
 			List<Long> userIds = new ArrayList<>();
@@ -460,8 +460,8 @@ public class ShipController extends BladeController {
 	public R<List<PjShipStockDetails>> stockDataDetails(PjShipStockDetails pjShipStockDetails) {
 		pjShipStockDetails.setSalesCompanyId(AuthUtil.getDeptId());
 		pjShipStockDetails.setTenantId(AuthUtil.getTenantId());
-		if (!AuthUtil.getUserRole().contains("admin") && ParameterUtils.whetherDatabaseSharding()) {
-			pjShipStockDetails.setStockId(ParameterUtils.getStorageId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			pjShipStockDetails.setStockIds(ParameterUtils.getStorageId());
 		}
 		List<PjShipStockDetails> pages = shipService.stockDataDetails(pjShipStockDetails);
 		for (PjShipStockDetails item : pages) {

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

@@ -34,6 +34,7 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.salesPart.annotation.VersionControl;
+import org.springblade.salesPart.entity.PjOrder;
 import org.springblade.salesPart.entity.PjShip;
 import org.springblade.salesPart.entity.PjShipItems;
 import org.springblade.salesPart.enums.OrderTypeEnum;
@@ -99,7 +100,7 @@ public class ShipReturnsController extends BladeController {
 			.like(ObjectUtil.isNotEmpty(ship.getBillno()), PjShip::getBillno, ship.getBillno())//销售订单
 			.like(ObjectUtil.isNotEmpty(ship.getSrcOrdNo()), PjShip::getSrcOrdNo, ship.getSrcOrdNo())//销售订单
 			.eq(ObjectUtil.isNotEmpty(ship.getStorageId()), PjShip::getStorageId, ship.getStorageId())//仓库
-			.like(ObjectUtil.isNotEmpty(ship.getStorageName()), PjShip::getStorageName, ship.getStorageName())
+			.eq(ObjectUtil.isNotEmpty(ship.getStorageName()), PjShip::getStorageName, ship.getStorageName())
 			.eq(ObjectUtil.isNotEmpty(ship.getCustomerId()), PjShip::getCustomerId, ship.getCustomerId())//客户
 			.eq(ObjectUtil.isNotEmpty(ship.getSourceCompanyId()), PjShip::getSourceCompanyId, ship.getSourceCompanyId())//来源公司
 			.eq(ObjectUtil.isNotEmpty(ship.getStatusName()), PjShip::getStatusName, ship.getStatusName())//状态
@@ -122,9 +123,10 @@ public class ShipReturnsController extends BladeController {
 				lambdaQueryWrapper.eq(PjShip::getCustomerId, AuthUtil.getUserId());
 			}
 		}
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjShip::getStorageId, ParameterUtils.getStorageId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
+			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(ship.getStorageId()), PjShip::getStorageId, ship.getStorageId());//仓库
 		IPage<PjShip> pages = shipService.page(Condition.getPage(query), lambdaQueryWrapper);
 
 		StringBuilder updateUserIds = new StringBuilder();//修改人id拼接

+ 3 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/mapper/ShipMapper.xml

@@ -119,6 +119,9 @@
         <if test="order.stockId!=null">
             and (ps.storage_id = #{order.stockId} or ps.call_in_storage_id = #{order.stockId})
         </if>
+        <if test="order.stockIds != null and order.stockIds!=''">
+            and (FIND_IN_SET( ps.storage_id, #{order.stockIds} ) or FIND_IN_SET( ps.call_in_storage_id, #{order.stockIds}))
+        </if>
         <if test="order.goodsId!=null">
             and psi.goods_id = #{order.goodsId}
         </if>

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

@@ -553,7 +553,8 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 			//给角色为派工的人发送消息
 			R<String> clientDeptIds = sysClient.getRoleIds(AuthUtil.getTenantId(), "库管");
 			if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-				R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), AuthUtil.getTenantId(), item.getSalesCompanyId() + "");
+				R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), AuthUtil.getTenantId(),
+					item.getSalesCompanyId() + "",rwShip.getStorageId());
 				if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 					for (User datum : userList.getData()) {
 						//循环发送消息
@@ -602,7 +603,8 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 			R<String> clientDeptIds = sysClient.getRoleIds(AuthUtil.getTenantId(), "客服,库管");
 			StringBuilder openIds = new StringBuilder();
 			if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-				R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), AuthUtil.getTenantId(), rwShip.getSalesCompanyId() + "");
+				R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), AuthUtil.getTenantId(),
+					rwShip.getSalesCompanyId() + "",rwShip.getStorageId());
 				if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 					for (User datum : userList.getData()) {
 						if (ObjectUtils.isNotNull(datum.getOaOpenId())) {
@@ -832,15 +834,14 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 							item.setSendNumHave(item.getSendNum());
 						}
 						stockOne.setStoreInventory(stockOne.getBalanceQuantity());
-						BigDecimal inventoryAmount = item.getSendNum().multiply(stockOne.getInventoryCostPrice());
-						BigDecimal rebateInventoryAmount = item.getSendNum().multiply(stockOne.getRebatePrice());
-						stockOne.setInventoryAmount(stockOne.getInventoryAmount().subtract(inventoryAmount));
-						if (new BigDecimal("0.00").compareTo(stockOne.getInventoryAmount()) == 0) {
-							stockOne.setInventoryCostPrice(new BigDecimal("0.00"));
-						}
-						stockOne.setRebateInventoryAmount(stockOne.getRebateInventoryAmount().subtract(rebateInventoryAmount));
-						if (new BigDecimal("0.00").compareTo(stockOne.getRebateInventoryAmount()) == 0) {
-							stockOne.setRebatePrice(new BigDecimal("0.00"));
+						if (new BigDecimal("0.00").compareTo(stockOne.getBalanceQuantity()) == 0){
+							stockOne.setInventoryAmount(new BigDecimal("0.00"));
+							stockOne.setRebateInventoryAmount(new BigDecimal("0.00"));
+						}else{
+							BigDecimal inventoryAmount = item.getSendNum().multiply(stockOne.getInventoryCostPrice());
+							BigDecimal rebateInventoryAmount = item.getSendNum().multiply(stockOne.getRebatePrice());
+							stockOne.setInventoryAmount(stockOne.getInventoryAmount().subtract(inventoryAmount));
+							stockOne.setRebateInventoryAmount(stockOne.getRebateInventoryAmount().subtract(rebateInventoryAmount));
 						}
 						stockOne.setVersion(stockOne.getVersion());
 					}
@@ -933,6 +934,8 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				order.setLogisticsCorpName(ship.getLogisticsCorpName());
 				order.setExpressNo(ship.getExpressNo());
 				order.setVersion(order.getVersion() + 1);
+				order.setStorageId(ship.getStorageId());
+				order.setStorageName(ship.getStorageName());
 				System.err.println("=============出库完成-" + order.getOrdNo() + "==============");
 				if (goodsNum.compareTo(sendNum) == 0) {//数量等于发货数量修改销售订单状态
 					System.err.println("=============数量等于发货数量-" + order.getOrdNo() + "==============");
@@ -1361,12 +1364,6 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 					BigDecimal rebateInventoryAmount = item.getSendNum().multiply(stockOne.getRebatePrice());
 					stockOne.setInventoryAmount(stockOne.getInventoryAmount().add(inventoryAmount));
 					stockOne.setRebateInventoryAmount(stockOne.getRebateInventoryAmount().add(rebateInventoryAmount));
-					if (new BigDecimal("0.00").compareTo(stockOne.getInventoryAmount()) == 0) {
-						stockOne.setInventoryCostPrice(new BigDecimal("0.00"));
-					}
-					if (new BigDecimal("0.00").compareTo(stockOne.getRebateInventoryAmount()) == 0) {
-						stockOne.setRebatePrice(new BigDecimal("0.00"));
-					}
 					stockOne.setVersion(stockOne.getVersion());
 					pjStockDescArrayList.add(stockOne);
 				} else {
@@ -1785,7 +1782,8 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				//给角色为派工的人发送消息
 				R<String> clientDeptIds = sysClient.getRoleIds(AuthUtil.getTenantId(), "库管");
 				if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-					R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), AuthUtil.getTenantId(), item.getSalesCompanyId() + "");
+					R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), AuthUtil.getTenantId(),
+						item.getSalesCompanyId() + "",item.getStorageId());
 					if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 						for (User datum : userList.getData()) {
 							//循环发送消息
@@ -1997,6 +1995,10 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 					stockDesc.setId(stockOne.getId());
 					stockDesc.setUpdateTime(new Date());
 					stockDesc.setUpdateUser(AuthUtil.getUserId());
+					if (ObjectUtils.isNull(stockDesc.getBalanceQuantity()) || new BigDecimal("0.00").compareTo(stockDesc.getBalanceQuantity()) == 0) {
+						stockDesc.setInventoryCostPrice(new BigDecimal("0.00"));
+						stockDesc.setRebatePrice(new BigDecimal("0.00"));
+					}
 					stockDesc.setBalanceQuantity(stockOne.getBalanceQuantity().add(item.getSendNum()));
 					if ("1".equals(ship.getWhetherFinancing())) {
 						stockDesc.setBalanceQuantityFinancing(stockOne.getBalanceQuantityFinancing().add(item.getSendNum()));
@@ -2112,6 +2114,8 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				BigDecimal goodsTotalShipAmount = orderItemsList.stream().map(PjOrderItems::getGoodsTotalShipAmount).filter(Objects::nonNull)
 					.reduce(BigDecimal.ZERO, BigDecimal::add);
 				if (ObjectUtil.isNotEmpty(order)) {
+					order.setStorageId(ship.getStorageId());
+					order.setStorageName(ship.getStorageName());
 					order.setVersion(order.getVersion() + 1);
 					order.setGoodsTotalShipNum(sendNum);
 					order.setGoodsTotalShipAmount(goodsTotalShipAmount);
@@ -3610,7 +3614,8 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				//给角色为派工的人发送消息
 				R<String> clientDeptIds = sysClient.getRoleIds(AuthUtil.getTenantId(), "库管");
 				if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-					R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), AuthUtil.getTenantId(), item.getSalesCompanyId() + "");
+					R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), AuthUtil.getTenantId(),
+						item.getSalesCompanyId() + "",item.getStorageId());
 					if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 						for (User datum : userList.getData()) {
 							//循环发送消息
@@ -3805,12 +3810,6 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 						stockOne.setInventoryCostPrice(stockOne.getInventoryAmount().divide(stockOne.getBalanceQuantity(), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
 						stockOne.setRebatePrice(stockOne.getRebateInventoryAmount().divide(stockOne.getBalanceQuantity(), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
 					}
-					if (new BigDecimal("0.00").compareTo(stockOne.getInventoryAmount()) == 0) {
-						stockOne.setInventoryCostPrice(new BigDecimal("0.00"));
-					}
-					if (new BigDecimal("0.00").compareTo(stockOne.getRebateInventoryAmount()) == 0) {
-						stockOne.setRebatePrice(new BigDecimal("0.00"));
-					}
 					pjStockDescArrayList.add(stockOne);
 				} else {
 					System.err.println("商品:" + goodsDesc.getCname());
@@ -4066,12 +4065,6 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 						stockOne.setInventoryCostPrice(stockOne.getInventoryAmount().divide(stockOne.getBalanceQuantity(), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
 						stockOne.setRebatePrice(stockOne.getRebateInventoryAmount().divide(stockOne.getBalanceQuantity(), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
 					}*/
-					if (new BigDecimal("0.00").compareTo(stockOne.getInventoryAmount()) == 0) {
-						stockOne.setInventoryCostPrice(new BigDecimal("0.00"));
-					}
-					if (new BigDecimal("0.00").compareTo(stockOne.getRebateInventoryAmount()) == 0) {
-						stockOne.setRebatePrice(new BigDecimal("0.00"));
-					}
 					pjStockDescArrayList.add(stockOne);
 					/*R res = iStockDescService.updateByIdNew(stockOne);
 					if (!res.isSuccess()) {
@@ -4345,7 +4338,8 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				//给角色为派工的人发送消息
 				R<String> clientDeptIds = sysClient.getRoleIds(AuthUtil.getTenantId(), "库管");
 				if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-					R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), AuthUtil.getTenantId(), item.getSalesCompanyId() + "");
+					R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), AuthUtil.getTenantId(),
+						item.getSalesCompanyId() + "",item.getStorageId());
 					if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 						for (User datum : userList.getData()) {
 							//循环发送消息
@@ -4882,12 +4876,6 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 					BigDecimal rebateInventoryAmount = item.getSendNum().multiply(stockOne.getRebatePrice());
 					stockOne.setInventoryAmount(stockOne.getInventoryAmount().subtract(inventoryAmount));
 					stockOne.setRebateInventoryAmount(stockOne.getRebateInventoryAmount().subtract(rebateInventoryAmount));
-					if (new BigDecimal("0.00").compareTo(stockOne.getInventoryAmount()) == 0) {
-						stockOne.setInventoryCostPrice(new BigDecimal("0.00"));
-					}
-					if (new BigDecimal("0.00").compareTo(stockOne.getRebateInventoryAmount()) == 0) {
-						stockOne.setRebatePrice(new BigDecimal("0.00"));
-					}
 					stockOne.setVersion(stockOne.getVersion());
 					pjStockDescArrayList.add(stockOne);
 				} else {
@@ -5611,7 +5599,8 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				//给角色为派工的人发送消息
 				R<String> clientDeptIds = sysClient.getRoleIds(AuthUtil.getTenantId(), "库管");
 				if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-					R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), AuthUtil.getTenantId(), item.getSalesCompanyId() + "");
+					R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), AuthUtil.getTenantId(),
+						item.getSalesCompanyId() + "",item.getStorageId());
 					if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 						for (User datum : userList.getData()) {
 							//循环发送消息
@@ -5642,7 +5631,8 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 			StringBuilder openIds = new StringBuilder();
 			R<String> clientDeptIds = sysClient.getRoleIds(AuthUtil.getTenantId(), "客服");
 			if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-				R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), AuthUtil.getTenantId(), rwShip.getSalesCompanyId() + "");
+				R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), AuthUtil.getTenantId(),
+					rwShip.getSalesCompanyId() + "",rwShip.getStorageId());
 				if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 					for (User datum : userList.getData()) {
 						if (ObjectUtils.isNotNull(datum.getOaOpenId())) {

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

@@ -739,7 +739,8 @@ public class ShoppingCartServiceImpl extends ServiceImpl<ShoppingCartMapper, PjS
 				//给角色为财务的人发送消息
 				R<String> clientDeptIds = sysClient.getRoleIds(AuthUtil.getTenantId(), "客服");
 				if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-					R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), AuthUtil.getTenantId(), item.getSalesCompanyId() + "");
+					R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), AuthUtil.getTenantId(),
+						item.getSalesCompanyId() + "",item.getStorageId());
 					if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 						for (User datum : userList.getData()) {
 							//循环发送消息
@@ -1588,7 +1589,8 @@ public class ShoppingCartServiceImpl extends ServiceImpl<ShoppingCartMapper, PjS
 			//给角色为财务的人发送消息
 			R<String> clientDeptIds = sysClient.getRoleIds(bladeUser.getTenantId(), "客服");
 			if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-				R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), bladeUser.getTenantId(), item.getSalesCompanyId() + "");
+				R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), bladeUser.getTenantId(),
+					item.getSalesCompanyId() + "",item.getStorageId());
 				if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 					for (User datum : userList.getData()) {
 						//循环发送消息

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

@@ -31,6 +31,7 @@ import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tenant.annotation.TenantIgnore;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.salesPart.corps.service.ICorpsDescService;
 import org.springblade.salesPart.dto.*;
 import org.springblade.salesPart.entity.PjCorpsDesc;
@@ -50,14 +51,9 @@ import org.springblade.salesPart.ship.service.IShipItemsService;
 import org.springblade.salesPart.ship.service.IShipService;
 import org.springblade.salesPart.statistics.mapper.StatisticsMapper;
 import org.springblade.salesPart.statistics.service.IStatisticsService;
+import org.springblade.salesPart.util.ParameterUtils;
 import org.springblade.salesPart.vo.*;
 import org.springblade.system.duoduo.DuoDuoTenantVo;
-import org.springblade.salesPart.tireMallStatistics.service.ITireMallStatisticsService;
-import org.springblade.salesPart.util.ParameterUtils;
-import org.springblade.salesPart.vo.AppStatisticsVo;
-import org.springblade.salesPart.vo.DuoDuoColumnarRzVo;
-import org.springblade.salesPart.vo.DuoDuoRealTimeOverviewVo;
-import org.springblade.salesPart.vo.StatisticsVo;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
@@ -287,7 +283,7 @@ public class StatisticsServiceImpl implements IStatisticsService {
 				map.put("stlAmountD", stlAmountActualDay.subtract(stlAmountReturnsDay));
 				map.put("profitD", profitActualDay.subtract(profitReturnsDay));
 			}
-		}else{
+		} else {
 			map.put("dealAmountD", new BigDecimal("0.00"));
 			map.put("dealAmountM", new BigDecimal("0.00"));
 			map.put("salesNumD", new BigDecimal("0"));
@@ -841,18 +837,25 @@ public class StatisticsServiceImpl implements IStatisticsService {
 	public R<IPage<SaleDetailDto>> saleDetail(SaleDetail saleDetailDto, IPage<SaleDetailDto> page) {
 		saleDetailDto.setTenantId(AuthUtil.getTenantId());
 		saleDetailDto.setSalesCompanyId(AuthUtil.getDeptId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			saleDetailDto.setStorageIds(ParameterUtils.getStorageId());
+		}
 		IPage<SaleDetailDto> saleDetailDtoIPage = orderItemsService.saleDetail(saleDetailDto, page);
 		if (!saleDetailDtoIPage.getRecords().isEmpty()) {
 			String billNo = saleDetailDtoIPage.getRecords().stream().map(SaleDetailDto::getOrdNo).distinct().collect(Collectors.joining(","));
-			List<PjOrder> pjOrderList = orderService.list(new LambdaQueryWrapper<PjOrder>()
-				.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
+			LambdaQueryWrapper<PjOrder> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
+			orderLambdaQueryWrapper.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
 				.eq(PjOrder::getIsDeleted, 0)
 				.apply("find_in_set(ord_no,'" + billNo + "')")
 				.ge(ObjectUtils.isNotNull(saleDetailDto.getBusinesDateStart()), PjOrder::getBusinesDate, saleDetailDto.getBusinesDateStart())
 				.le(ObjectUtils.isNotNull(saleDetailDto.getBusinesDateEnd()), PjOrder::getBusinesDate, saleDetailDto.getBusinesDateEnd())
 				.apply(ObjectUtils.isNotNull(saleDetailDto.getDateStart()), "DATE_FORMAT( delivery_busines_date, '%Y-%m-%d' )  >= '" + saleDetailDto.getDateStart() + "'")
-				.apply(ObjectUtils.isNotNull(saleDetailDto.getDateEnd()), "DATE_FORMAT( delivery_busines_date, '%Y-%m-%d' )  <= '" + saleDetailDto.getDateEnd() + "'")
-			);
+				.apply(ObjectUtils.isNotNull(saleDetailDto.getDateEnd()), "DATE_FORMAT( delivery_busines_date, '%Y-%m-%d' )  <= '" + saleDetailDto.getDateEnd() + "'");
+			if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+				orderLambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
+			}
+			orderLambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(saleDetailDto.getStorageId()), PjOrder::getStorageId, saleDetailDto.getStorageId());//仓库
+			List<PjOrder> pjOrderList = orderService.list(orderLambdaQueryWrapper);
 			if (pjOrderList.isEmpty()) {
 				return R.data(new Page<>());
 			}
@@ -938,20 +941,27 @@ public class StatisticsServiceImpl implements IStatisticsService {
 		saleDetailDto.setSalesCompanyId(AuthUtil.getDeptId());
 		StatisticsVo statisticsVo = new StatisticsVo();
 		statisticsVo.valueIsZero();
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			saleDetailDto.setStorageIds(ParameterUtils.getStorageId());
+		}
 		List<SaleDetailDto> saleDetailDtoList = orderItemsService.saleDetailList(saleDetailDto);
 		if (CollectionUtils.isEmpty(saleDetailDtoList)) {
 			return R.data(statisticsVo);
 		}
 		List<String> billNoList = saleDetailDtoList.stream().map(SaleDetailDto::getOrdNo).distinct().collect(Collectors.toList());
-		List<PjOrder> pjOrderList = orderService.list(new LambdaQueryWrapper<PjOrder>()
-			.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
+		LambdaQueryWrapper<PjOrder> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
+		orderLambdaQueryWrapper.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
 			.eq(PjOrder::getIsDeleted, 0)
 			.in(PjOrder::getOrdNo, billNoList)
 			.ge(ObjectUtils.isNotNull(saleDetailDto.getBusinesDateStart()), PjOrder::getBusinesDate, saleDetailDto.getBusinesDateStart())
 			.le(ObjectUtils.isNotNull(saleDetailDto.getBusinesDateEnd()), PjOrder::getBusinesDate, saleDetailDto.getBusinesDateEnd())
-			.ge(ObjectUtils.isNotNull(saleDetailDto.getDateStart()), PjOrder::getDeliveryBusinesDate, saleDetailDto.getDateStart())
-			.le(ObjectUtils.isNotNull(saleDetailDto.getDateEnd()), PjOrder::getDeliveryBusinesDate, saleDetailDto.getDateEnd())
-		);
+			.apply(ObjectUtils.isNotNull(saleDetailDto.getDateStart()), "DATE_FORMAT( delivery_busines_date, '%Y-%m-%d' )  >= '" + saleDetailDto.getDateStart() + "'")
+			.apply(ObjectUtils.isNotNull(saleDetailDto.getDateEnd()), "DATE_FORMAT( delivery_busines_date, '%Y-%m-%d' )  <= '" + saleDetailDto.getDateEnd() + "'");
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			orderLambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
+		}
+		orderLambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(saleDetailDto.getStorageId()), PjOrder::getStorageId, saleDetailDto.getStorageId());//仓库
+		List<PjOrder> pjOrderList = orderService.list(orderLambdaQueryWrapper);
 		List<Long> pidList = pjOrderList.stream().map(PjOrder::getId).collect(Collectors.toList());
 		List<PjOrderItems> pjOrderItemsList = new ArrayList<>();
 		if (!CollectionUtils.isEmpty(pidList)) {
@@ -1164,19 +1174,26 @@ public class StatisticsServiceImpl implements IStatisticsService {
 	public List<SaleDetailDto> saleDetailExport(SaleDetail saleDetailDto) {
 		saleDetailDto.setTenantId(AuthUtil.getTenantId());
 		saleDetailDto.setSalesCompanyId(AuthUtil.getDeptId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			saleDetailDto.setStorageIds(ParameterUtils.getStorageId());
+		}
 		List<SaleDetailDto> saleDetailDtoIPage = orderItemsService.saleDetailList(saleDetailDto);
 		List<SaleDetailDto> saleDetailDtoList2 = new ArrayList<>();
 		if (!saleDetailDtoIPage.isEmpty()) {
 			String billNo = saleDetailDtoIPage.stream().map(SaleDetailDto::getOrdNo).distinct().collect(Collectors.joining(","));
-			List<PjOrder> pjOrderList = orderService.list(new LambdaQueryWrapper<PjOrder>()
-				.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
+			LambdaQueryWrapper<PjOrder> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
+			orderLambdaQueryWrapper.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
 				.eq(PjOrder::getIsDeleted, 0)
 				.apply("find_in_set(ord_no,'" + billNo + "')")
 				.ge(ObjectUtils.isNotNull(saleDetailDto.getBusinesDateStart()), PjOrder::getBusinesDate, saleDetailDto.getBusinesDateStart())
 				.le(ObjectUtils.isNotNull(saleDetailDto.getBusinesDateEnd()), PjOrder::getBusinesDate, saleDetailDto.getBusinesDateEnd())
 				.apply(ObjectUtils.isNotNull(saleDetailDto.getDateStart()), "DATE_FORMAT( delivery_busines_date, '%Y-%m-%d' )  >= '" + saleDetailDto.getDateStart() + "'")
-				.apply(ObjectUtils.isNotNull(saleDetailDto.getDateEnd()), "DATE_FORMAT( delivery_busines_date, '%Y-%m-%d' )  <= '" + saleDetailDto.getDateEnd() + "'")
-			);
+				.apply(ObjectUtils.isNotNull(saleDetailDto.getDateEnd()), "DATE_FORMAT( delivery_busines_date, '%Y-%m-%d' )  <= '" + saleDetailDto.getDateEnd() + "'");
+			if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+				orderLambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
+			}
+			orderLambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(saleDetailDto.getStorageId()), PjOrder::getStorageId, saleDetailDto.getStorageId());//仓库
+			List<PjOrder> pjOrderList = orderService.list(orderLambdaQueryWrapper);
 			List<Long> pids = pjOrderList.stream().map(PjOrder::getId).collect(Collectors.toList());
 			List<PjOrderItems> pjOrderItemsList = new ArrayList<>();
 			if (!pids.isEmpty()) {
@@ -1283,6 +1300,9 @@ public class StatisticsServiceImpl implements IStatisticsService {
 			lambdaQueryWrapper.isNotNull(PjOrder::getCustomerId);
 			lambdaQueryWrapper.groupBy(PjOrder::getCustomerName);
 		}
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
+		}
 		IPage<SalespersonCustomer> customerIPage = new Page<>();
 		List<SalespersonCustomer> salespersonCustomerList = new ArrayList<>();
 		IPage<PjOrder> orderIPage = orderService.page(page, lambdaQueryWrapper);
@@ -1308,6 +1328,9 @@ public class StatisticsServiceImpl implements IStatisticsService {
 			} else {
 				orderLambdaQueryWrapper.apply("find_in_set(customer_name,'" + name + "')");
 			}
+			if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+				orderLambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
+			}
 			List<PjOrder> orderList = orderService.list(orderLambdaQueryWrapper);
 			List<PjOrderItems> pjOrderItemsList = new ArrayList<>();
 			if (!orderList.isEmpty()) {
@@ -1443,6 +1466,9 @@ public class StatisticsServiceImpl implements IStatisticsService {
 			lambdaQueryWrapper.isNotNull(PjOrder::getCustomerId);
 			lambdaQueryWrapper.groupBy(PjOrder::getCustomerName);
 		}
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
+		}
 		List<PjOrder> orderIPage = orderService.list(lambdaQueryWrapper);
 		if (!orderIPage.isEmpty()) {
 			String name = "";
@@ -1466,6 +1492,9 @@ public class StatisticsServiceImpl implements IStatisticsService {
 			} else {
 				orderLambdaQueryWrapper.apply("find_in_set(customer_name,'" + name + "')");
 			}
+			if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+				orderLambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
+			}
 			List<PjOrder> orderList = orderService.list(orderLambdaQueryWrapper);
 			List<PjOrderItems> pjOrderItemsList = new ArrayList<>();
 			if (!orderList.isEmpty()) {
@@ -1580,6 +1609,9 @@ public class StatisticsServiceImpl implements IStatisticsService {
 			lambdaQueryWrapper.isNotNull(PjOrder::getCustomerId);
 			lambdaQueryWrapper.groupBy(PjOrder::getCustomerName);
 		}
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
+		}
 		List<SalespersonCustomer> salespersonCustomerList = new ArrayList<>();
 		List<PjOrder> orderIPage = orderService.list(lambdaQueryWrapper);
 		if (!orderIPage.isEmpty()) {
@@ -1604,6 +1636,9 @@ public class StatisticsServiceImpl implements IStatisticsService {
 			} else {
 				orderLambdaQueryWrapper.apply("find_in_set(customer_name,'" + name + "')");
 			}
+			if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+				orderLambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
+			}
 			List<PjOrder> orderList = orderService.list(orderLambdaQueryWrapper);
 			List<PjOrderItems> pjOrderItemsList = new ArrayList<>();
 			if (!orderList.isEmpty()) {
@@ -1797,7 +1832,7 @@ public class StatisticsServiceImpl implements IStatisticsService {
 					" OR (business_source = '额度支付' AND FIND_IN_SET( actual_payment_status, '0,1,2,3,4' )))")
 				.eq(ObjectUtils.isNotNull(corpBuySingular.getBusinessSource()), PjOrder::getBusinessSource, corpBuySingular.getBusinessSource())
 				.like(ObjectUtils.isNotNull(corpBuySingular.getSalerName()), PjOrder::getSalerName, corpBuySingular.getSalerName())
-				.like(ObjectUtils.isNotNull(corpBuySingular.getStorageName()), PjOrder::getStorageName, corpBuySingular.getStorageName())
+				.eq(ObjectUtils.isNotNull(corpBuySingular.getStorageName()), PjOrder::getStorageName, corpBuySingular.getStorageName())
 				.ge(ObjectUtils.isNotNull(corpBuySingular.getStartDate()), PjOrder::getBusinesDate, corpBuySingular.getStartDate())
 				.le(ObjectUtils.isNotNull(corpBuySingular.getEndDate()), PjOrder::getBusinesDate, corpBuySingular.getEndDate())
 				.in(PjOrder::getCustomerId, ids)
@@ -1854,7 +1889,7 @@ public class StatisticsServiceImpl implements IStatisticsService {
 					" OR (business_source = '额度支付' AND FIND_IN_SET( actual_payment_status, '0,1,2,3,4' )))")
 				.eq(ObjectUtils.isNotNull(corpBuySingular.getBusinessSource()), PjOrder::getBusinessSource, corpBuySingular.getBusinessSource())
 				.like(ObjectUtils.isNotNull(corpBuySingular.getSalerName()), PjOrder::getSalerName, corpBuySingular.getSalerName())
-				.like(ObjectUtils.isNotNull(corpBuySingular.getStorageName()), PjOrder::getStorageName, corpBuySingular.getStorageName())
+				.eq(ObjectUtils.isNotNull(corpBuySingular.getStorageName()), PjOrder::getStorageName, corpBuySingular.getStorageName())
 				.ge(ObjectUtils.isNotNull(corpBuySingular.getStartDate()), PjOrder::getBusinesDate, corpBuySingular.getStartDate())
 				.le(ObjectUtils.isNotNull(corpBuySingular.getEndDate()), PjOrder::getBusinesDate, corpBuySingular.getEndDate())
 				.in(PjOrder::getCustomerId, ids)
@@ -1911,7 +1946,7 @@ public class StatisticsServiceImpl implements IStatisticsService {
 					" OR (business_source = '额度支付' AND FIND_IN_SET( actual_payment_status, '0,1,2,3,4' )))")
 				.eq(ObjectUtils.isNotNull(corpBuySingular.getBusinessSource()), PjOrder::getBusinessSource, corpBuySingular.getBusinessSource())
 				.like(ObjectUtils.isNotNull(corpBuySingular.getSalerName()), PjOrder::getSalerName, corpBuySingular.getSalerName())
-				.like(ObjectUtils.isNotNull(corpBuySingular.getStorageName()), PjOrder::getStorageName, corpBuySingular.getStorageName())
+				.eq(ObjectUtils.isNotNull(corpBuySingular.getStorageName()), PjOrder::getStorageName, corpBuySingular.getStorageName())
 				.ge(ObjectUtils.isNotNull(corpBuySingular.getStartDate()), PjOrder::getBusinesDate, corpBuySingular.getStartDate())
 				.le(ObjectUtils.isNotNull(corpBuySingular.getEndDate()), PjOrder::getBusinesDate, corpBuySingular.getEndDate())
 				.in(PjOrder::getCustomerId, ids)
@@ -1963,7 +1998,7 @@ public class StatisticsServiceImpl implements IStatisticsService {
 					" OR (business_source = '额度支付' AND FIND_IN_SET( actual_payment_status, '0,1,2,3,4' )))")
 				.eq(ObjectUtils.isNotNull(corpBuySingular.getBusinessSource()), PjOrder::getBusinessSource, corpBuySingular.getBusinessSource())
 				.like(ObjectUtils.isNotNull(corpBuySingular.getSalerName()), PjOrder::getSalerName, corpBuySingular.getSalerName())
-				.like(ObjectUtils.isNotNull(corpBuySingular.getStorageName()), PjOrder::getStorageName, corpBuySingular.getStorageName())
+				.eq(ObjectUtils.isNotNull(corpBuySingular.getStorageName()), PjOrder::getStorageName, corpBuySingular.getStorageName())
 				.ge(ObjectUtils.isNotNull(corpBuySingular.getStartDate()), PjOrder::getBusinesDate, corpBuySingular.getStartDate())
 				.le(ObjectUtils.isNotNull(corpBuySingular.getEndDate()), PjOrder::getBusinesDate, corpBuySingular.getEndDate())
 				.in(PjOrder::getCustomerId, ids)
@@ -2122,12 +2157,12 @@ public class StatisticsServiceImpl implements IStatisticsService {
 		List<BigDecimal> amount = new ArrayList<>();
 		List<BigDecimal> primaryFundingAmount = new ArrayList<>();
 		// 获取当前年份
-		LocalDate selectedDate = LocalDate.of(Integer.parseInt(selectedYear), 12 ,31);
+		LocalDate selectedDate = LocalDate.of(Integer.parseInt(selectedYear), 12, 31);
 		LocalDate now = LocalDate.now();
 		int year = selectedDate.getYear();
 		int nowMonth = selectedDate.getYear() == now.getYear() ? now.getMonthValue() : 12;
 		YearMonth yearMonth;
-		Long storageId = null;
+		String storageId = null;
 		if (ParameterUtils.whetherDatabaseSharding()) {
 			storageId = ParameterUtils.getStorageId();
 		}
@@ -2138,7 +2173,7 @@ public class StatisticsServiceImpl implements IStatisticsService {
 			// 获取该月份的第一天和最后一天
 			LocalDate firstDay = yearMonth.atDay(NumberEnum.ONE.number);
 			LocalDate lastDay = yearMonth.atEndOfMonth();
-			Map<String, BigDecimal> sum = orderMapper.columnarRz(firstDay, lastDay, tenantId, null,storageId);
+			Map<String, BigDecimal> sum = orderMapper.columnarRz(firstDay, lastDay, tenantId, null, storageId);
 			number.add(Objects.isNull(sum.get("goodsTotalNum")) ? FinalMap.ZERO_POINT_ZERO : sum.get("goodsTotalNum"));
 			amount.add(Objects.isNull(sum.get("totalMoney")) ? FinalMap.ZERO_POINT_ZERO : sum.get("totalMoney"));
 			primaryFundingAmount.add(Objects.isNull(sum.get("primaryFundingAmount")) ? FinalMap.ZERO_POINT_ZERO : sum.get("primaryFundingAmount"));
@@ -2149,9 +2184,9 @@ public class StatisticsServiceImpl implements IStatisticsService {
 		return duoDuoColumnarRzVo;
 	}
 
-    @Override
+	@Override
 	@TenantIgnore
-    public List<CapitalSummaryDataVo> capitalSummary(CapitalSummaryVo capitalSummaryVo) {
+	public List<CapitalSummaryDataVo> capitalSummary(CapitalSummaryVo capitalSummaryVo) {
 		List<DuoDuoTenantVo> duoDuoTenantVoList = statisticsMapper.getCustomerList();
 		if (CollectionUtils.isEmpty(duoDuoTenantVoList)) {
 			return Collections.emptyList();
@@ -2168,6 +2203,6 @@ public class StatisticsServiceImpl implements IStatisticsService {
 			summaryDataVo.setStoreCount(storeCount);
 			summaryDataVo.setCompany(duoDuoTenantVo.getCustomerName());
 		}
-        return capitalSummaryDataVoList.stream().sorted(Comparator.comparing(CapitalSummaryDataVo::getSales).reversed()).collect(Collectors.toList());
-    }
+		return capitalSummaryDataVoList.stream().sorted(Comparator.comparing(CapitalSummaryDataVo::getSales).reversed()).collect(Collectors.toList());
+	}
 }

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

@@ -113,12 +113,11 @@ public class StockDescController extends BladeController {
 		if ("0".equals(stockDesc.getWhether())) {
 			lambdaQueryWrapper.ne(PjStockDesc::getBalanceQuantity, 0);
 		}
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjStockDesc::getStorageId, ParameterUtils.getStorageId());
-		}else{
-			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
-			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageName()), PjStockDesc::getStorageName, stockDesc.getStorageName());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
+		lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
+		lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageName()), PjStockDesc::getStorageName, stockDesc.getStorageName());
 		List<PjProductLaunch> pjProductLaunchList = new ArrayList<>();
 		if (ObjectUtil.isNotEmpty(stockDesc.getCname())) {
 			List<PjGoodsDesc> pjGoodsDescs = new ArrayList<>();
@@ -292,11 +291,10 @@ public class StockDescController extends BladeController {
 		if ("0".equals(stockDesc.getWhether())) {
 			lambdaQueryWrapper.ne(PjStockDesc::getBalanceQuantity, 0);
 		}
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjStockDesc::getStorageId, ParameterUtils.getStorageId());
-		}else{
-			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
+			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
 		if (ObjectUtil.isNotEmpty(stockDesc.getCname())) {
 			List<PjGoodsDesc> pjGoodsDescs = goodsDescService.list(new LambdaQueryWrapper<PjGoodsDesc>()
 				.eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
@@ -353,7 +351,7 @@ public class StockDescController extends BladeController {
 		stockDesc.setSalesCompanyIds(AuthUtil.getDeptId());
 		if ("0".equals(stockDesc.getWhether())) {
 			if (ParameterUtils.whetherDatabaseSharding()) {
-				stockDesc.setStorageId(ParameterUtils.getStorageId());
+				stockDesc.setStorageIds(ParameterUtils.getStorageId());
 			}
 			IPage<PjStockDesc> pages = stockDescService.selectStockDescPage(Condition.getPage(query), stockDesc);
 			for (PjStockDesc item : pages.getRecords()) {
@@ -445,11 +443,10 @@ public class StockDescController extends BladeController {
 		if ("0".equals(stockDesc.getWhether())) {
 			lambdaQueryWrapper.ne(PjStockDesc::getBalanceQuantity, 0);
 		}
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjStockDesc::getStorageId, ParameterUtils.getStorageId());
-		}else{
-			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
+			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
 		if (ObjectUtil.isNotEmpty(stockDesc.getCname())) {
 			List<PjGoodsDesc> pjGoodsDescs = goodsDescService.list(new LambdaQueryWrapper<PjGoodsDesc>()
 				.eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
@@ -520,12 +517,11 @@ public class StockDescController extends BladeController {
 		if ("0".equals(stockDesc.getWhether())) {
 			lambdaQueryWrapper.ne(PjStockDesc::getBalanceQuantity, 0);
 		}
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjStockDesc::getStorageId, ParameterUtils.getStorageId());
-		}else{
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
+		}
 			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
 			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageName()), PjStockDesc::getStorageName, stockDesc.getStorageName());
-		}
 		List<PjProductLaunch> pjProductLaunchList = new ArrayList<>();
 		if (ObjectUtil.isNotEmpty(stockDesc.getCname())) {
 			List<PjGoodsDesc> pjGoodsDescs = new ArrayList<>();
@@ -672,11 +668,10 @@ public class StockDescController extends BladeController {
 			.eq(ObjectUtil.isNotEmpty(stockDesc.getBrandId()), PjStockDesc::getBrandId, stockDesc.getBrandId())
 			.apply("balance_quantity != 0")
 			.orderByAsc(PjStockDesc::getCreateTime);
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjStockDesc::getStorageId, ParameterUtils.getStorageId());
-		}else{
-			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
+			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
 		List<PjStockDesc> list = stockDescService.list(lambdaQueryWrapper);
 		List<StockBrandExcel> mapList = new ArrayList<>();
 		if (!list.isEmpty()) {
@@ -795,11 +790,10 @@ public class StockDescController extends BladeController {
 			.eq(ObjectUtil.isNotEmpty(stockDesc.getBrandId()), PjStockDesc::getBrandId, stockDesc.getBrandId())
 			.apply("balance_quantity != 0")
 			.orderByAsc(PjStockDesc::getCreateTime);
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjStockDesc::getStorageId, ParameterUtils.getStorageId());
-		}else{
-			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
+			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
 		List<PjStockDesc> list = stockDescService.list(lambdaQueryWrapper);
 		List<StockBrandExcel> stockBrandExcelList = new ArrayList<>();
 		if (!list.isEmpty()) {
@@ -922,11 +916,10 @@ public class StockDescController extends BladeController {
 		if ("1".equals(stockDesc.getWhether())) {
 			lambdaQueryWrapper.ne(PjStockDesc::getBalanceQuantity, 0);
 		}
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjStockDesc::getStorageId, ParameterUtils.getStorageId());
-		}else{
-			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
+			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
 		List<PjStockDesc> list = stockDescService.list(lambdaQueryWrapper);
 		return R.data(list);
 	}
@@ -946,11 +939,10 @@ public class StockDescController extends BladeController {
 		if ("1".equals(stockDesc.getWhether())) {
 			lambdaQueryWrapper.ne(PjStockDesc::getBalanceQuantity, 0);
 		}
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjStockDesc::getStorageId, ParameterUtils.getStorageId());
-		}else{
-			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
+			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
 		List<PjStockDesc> list = stockDescService.list(lambdaQueryWrapper);
 		return R.data(list);
 	}
@@ -1038,11 +1030,10 @@ public class StockDescController extends BladeController {
 			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId())
 				.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageName()), PjStockDesc::getStorageName, stockDesc.getStorageName());
 		}*/
-		if (ParameterUtils.whetherDatabaseSharding()) {
-			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjStockDesc::getStorageId, ParameterUtils.getStorageId());
-		}else{
-			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 		}
+			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
 		PjProductLaunch productLaunch = null;
 		if (ObjectUtil.isNotEmpty(stockDesc.getCname())) {
 			PjGoodsDesc pjGoodsDescs = goodsDescService.getOne(new LambdaQueryWrapper<PjGoodsDesc>()
@@ -1056,7 +1047,7 @@ public class StockDescController extends BladeController {
 					.eq(PjProductLaunch::getIsDeleted, 0)
 					.in(PjProductLaunch::getGoodsId, pjGoodsDescs.getId())
 					.eq(PjProductLaunch::getSalesCompanyId, AuthUtil.getDeptId()));
-				if(productLaunch != null && 0 == productLaunch.getUpAndDownShelves()){
+				if (productLaunch != null && 0 == productLaunch.getUpAndDownShelves()) {
 					lambdaQueryWrapper.ne(PjStockDesc::getGoodsId, pjGoodsDescs.getId());
 				}
 				lambdaQueryWrapper.eq(PjStockDesc::getCname, stockDesc.getCname());

+ 2 - 2
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/stock/mapper/StockDescMapper.xml

@@ -73,7 +73,7 @@
                 and psd.brand_id = #{stockDesc.brandId}
             </if>
             <if test="stockDesc.storageId != null and stockDesc.storageId != ''">
-                and psd.storage_id = #{stockDesc.storageId}
+                and find_in_set(psd.storage_id,#{stockDesc.storageId})
             </if>
             <if test='stockDesc.cname != null and stockDesc.cname != ""'>
                 and (psd.cname like CONCAT(CONCAT('%', #{stockDesc.cname}), '%') or psd.cname_int like
@@ -149,7 +149,7 @@
                 and brand_id = #{stockDesc.brandId}
             </if>
             <if test="stockDesc.storageId != null and stockDesc.storageId != ''">
-                and storage_id = #{stockDesc.storageId}
+                and find_in_set(storage_id,#{stockDesc.storageId})
             </if>
             <if test='stockDesc.cname != null and stockDesc.cname != ""'>
                 and cname like CONCAT(CONCAT('%', #{stockDesc.cname}), '%')

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

@@ -53,7 +53,7 @@ public class StockDescServiceImpl extends ServiceImpl<StockDescMapper, PjStockDe
 	@Override
 	public IPage<PjStockDesc> selectStockDescPage(IPage<PjStockDesc> page, PjStockDesc stockDesc) {
 		if (ParameterUtils.whetherDatabaseSharding()) {
-			stockDesc.setStorageId(ParameterUtils.getStorageId());
+			stockDesc.setStorageIds(ParameterUtils.getStorageId());
 		}
 		return page.setRecords(baseMapper.selectStockDescPage(page, stockDesc));
 	}
@@ -65,7 +65,7 @@ public class StockDescServiceImpl extends ServiceImpl<StockDescMapper, PjStockDe
 	public List<PjStockDesc> getStockList(PjStockDesc stockDesc) {
 		stockDesc.setTenantId(AuthUtil.getTenantId());
 		if (ParameterUtils.whetherDatabaseSharding()) {
-			stockDesc.setStorageId(ParameterUtils.getStorageId());
+			stockDesc.setStorageIds(ParameterUtils.getStorageId());
 		}
 		return baseMapper.getStockList(stockDesc);
 	}

+ 7 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/storage/controller/StorageDescController.java

@@ -37,6 +37,7 @@ import org.springblade.salesPart.entity.PjBrandDesc;
 import org.springblade.salesPart.entity.PjOrder;
 import org.springblade.salesPart.entity.PjProductLaunch;
 import org.springblade.salesPart.order.service.IOrderService;
+import org.springblade.salesPart.util.ParameterUtils;
 import org.springframework.web.bind.annotation.*;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.salesPart.entity.PjStorageDesc;
@@ -93,6 +94,9 @@ public class StorageDescController extends BladeController {
 			.eq(ObjectUtils.isNotEmpty(storageDesc.getSalesCompanyId()), PjStorageDesc::getSalesCompanyId, storageDesc.getSalesCompanyId())//所属公司
 			.in(ObjectUtils.isNotEmpty(storageDesc.getSharedCompany()), PjStorageDesc::getSharedCompany, storageDesc.getSharedCompany());//共享公司
 		lambdaQueryWrapper.eq(PjStorageDesc::getSalesCompanyId, AuthUtil.getDeptId());//公司
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(id,'" + ParameterUtils.getStorageId() + "')");
+		}
 		IPage<PjStorageDesc> pages = storageDescService.page(Condition.getPage(query), lambdaQueryWrapper);
 		return R.data(pages);
 	}
@@ -189,6 +193,9 @@ public class StorageDescController extends BladeController {
 		if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("老板")) {
 			lambdaQueryWrapper.eq(PjStorageDesc::getSalesCompanyId, AuthUtil.getDeptId());//公司
 		}
+		if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.apply("find_in_set(id,'" + ParameterUtils.getStorageId() + "')");
+		}
 		List<PjStorageDesc> list = storageDescService.list(lambdaQueryWrapper);
 		return R.data(list);
 	}

+ 2 - 2
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/util/ParameterUtils.java

@@ -35,8 +35,8 @@ public class ParameterUtils {
 		return whetherDatabaseSharding;
 	}
 
-	public static Long getStorageId() {
-		Long storageId = null;
+	public static String getStorageId() {
+		String storageId = null;
 		if (AuthUtil.getUserRole().contains("admin")){
 			return storageId;
 		}

+ 2 - 2
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/util/WxParamUtil.java

@@ -95,8 +95,8 @@ public class WxParamUtil {
 			LambdaQueryWrapper<PjStockDesc> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 			lambdaQueryWrapper.eq(PjStockDesc::getTenantId, bladeUser.getTenantId())
 				.eq(PjStockDesc::getIsDeleted, 0);
-			if (ParameterUtils.whetherDatabaseSharding()) {
-				lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjStockDesc::getStorageId, ParameterUtils.getStorageId());
+			if (ObjectUtils.isNotNull(ParameterUtils.getStorageId()) && ParameterUtils.whetherDatabaseSharding()) {
+				lambdaQueryWrapper.apply("find_in_set(storage_id,'" + ParameterUtils.getStorageId() + "')");
 			}
 			List<PjStockDesc> stockDescList = stockDescService.list(lambdaQueryWrapper);
 			if (!stockDescList.isEmpty()) {

+ 3 - 2
blade-service/blade-user/src/main/java/org/springblade/system/user/feign/UserClient.java

@@ -57,7 +57,7 @@ public class UserClient implements IUserClient {
 
 	@Override
 	@GetMapping(LIST_USER_BY_ROLE_ID)
-	public R<List<User>> listUserByRoleId(String roleId, String tenantId, String salesCompanyId) {
+	public R<List<User>> listUserByRoleId(String roleId, String tenantId, String salesCompanyId, Long storageId) {
 		System.err.println("所属公司id:" + salesCompanyId);
 		System.err.println("租户号:" + tenantId);
 		System.err.println("角色id:" + roleId);
@@ -77,6 +77,7 @@ public class UserClient implements IUserClient {
 			}
 			userLambdaQueryWrapper.eq(User::getTenantId, AuthUtil.getTenantId());
 		}
+		userLambdaQueryWrapper.apply("find_in_set(" + storageId + ",storage_id)");
 		return R.data(service.list(userLambdaQueryWrapper));
 	}
 
@@ -329,7 +330,7 @@ public class UserClient implements IUserClient {
 
 	@Override
 	public List<User> getUserByDept(Long deptPid, String tenantId) {
-        return service.list(new LambdaQueryWrapper<User>()
+		return service.list(new LambdaQueryWrapper<User>()
 			.eq(User::getTenantId, tenantId)
 			.eq(User::getDeptPid, deptPid)
 			.eq(User::getIsDeleted, 0));

+ 1 - 1
blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/SettlementServiceImpl.java

@@ -426,7 +426,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 						// 给角色为助理的人发送消息
 						R<String> roleId = sysClient.getRoleIds(AuthUtil.getTenantId(), "助理");
 						if (roleId.isSuccess() && roleId.getData() != null) {
-							R<List<User>> userList = userClient.listUserByRoleId(roleId.getData(), null, null);
+							R<List<User>> userList = userClient.listUserByRoleId(roleId.getData(), null, null, null);
 							if (userList.isSuccess() && userList.getData() != null) {
 								userList.getData().forEach(user -> {
 									// 推送消息提醒助理生成采购

+ 2 - 2
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/OrderServiceImpl.java

@@ -2674,7 +2674,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 						//给角色为财务的人发送消息
 						R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "财务");
 						if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-							R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), null, null);
+							R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), null, null, null);
 							if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 								for (User datum : userList.getData()) {
 									//循环发送消息
@@ -2852,7 +2852,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				//给角色为财务的人发送消息
 				R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "财务");
 				if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-					R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), null, null);
+					R<List<User>> userList = userClient.listUserByRoleId(clientDeptIds.getData(), null, null, null);
 					if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
 						for (User datum : userList.getData()) {
 							//循环发送消息