Prechádzať zdrojové kódy

1.轮胎商城权限测试及修改
2.轮胎平台-增加销售政策匹配接口并调试

纪新园 1 týždeň pred
rodič
commit
c1a65753c5
27 zmenil súbory, kde vykonal 478 pridanie a 88 odobranie
  1. 8 0
      blade-service-api/blade-mocha-item-api/src/main/java/org/springblade/mocha/feign/ISalesPolicyClient.java
  2. 6 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjSettlement.java
  3. 5 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/vo/AppPendingPaymentParamVo.java
  4. 6 0
      blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/vo/PjOrderStatisticsWeb.java
  5. 13 0
      blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/entity/User.java
  6. 25 15
      blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/feign/SalesPolicyClient.java
  7. 9 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderController.java
  8. 2 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderService.java
  9. 59 8
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java
  10. 7 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/InventoryController.java
  11. 35 3
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/OrderController.java
  12. 11 5
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/OrderStatisticsController.java
  13. 7 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/ReturnsController.java
  14. 7 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/ShareSalesController.java
  15. 4 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/TransferAllocateController.java
  16. 4 2
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/mapper/OrderMapper.java
  17. 36 1
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/mapper/OrderMapper.xml
  18. 79 29
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/impl/OrderServiceImpl.java
  19. 17 9
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/controller/ShipController.java
  20. 5 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/controller/ShipReturnsController.java
  21. 11 1
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/statistics/service/impl/StatisticsServiceImpl.java
  22. 51 10
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/stock/controller/StockDescController.java
  23. 1 1
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/stock/mapper/StockDescMapper.java
  24. 6 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/stock/mapper/StockDescMapper.xml
  25. 7 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/stock/service/impl/StockDescServiceImpl.java
  26. 50 0
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/util/ParameterUtils.java
  27. 7 4
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/util/WxParamUtil.java

+ 8 - 0
blade-service-api/blade-mocha-item-api/src/main/java/org/springblade/mocha/feign/ISalesPolicyClient.java

@@ -31,6 +31,8 @@ public interface ISalesPolicyClient {
 	String PASS_CHECK = API_PREFIX + "/passCheck";
 	String PASS_CANCEL = API_PREFIX + "/passCancel";
 	String GET_BY_ID = API_PREFIX + "/getById";
+
+	String GET_SALES_POLICY_BY_ID = API_PREFIX + "/getSalesPolicyById";
 	/**
 	 * 获取商品所属政策名
 	 *
@@ -99,4 +101,10 @@ public interface ISalesPolicyClient {
 	 */
 	@GetMapping(GET_BY_ID)
 	SalesPolicy getById(@RequestParam("id") Long id);
+
+	/**
+	 * 获得销售政策及政策明细
+	 */
+	@GetMapping(GET_SALES_POLICY_BY_ID)
+	SalesPolicy getSalesPolicyById(@RequestParam("id") Long id);
 }

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

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

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

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

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

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

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

@@ -16,6 +16,7 @@
  */
 package org.springblade.system.user.entity;
 
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -152,4 +153,16 @@ public class User extends TenantEntity {
 	 */
 	@ApiModelProperty(value = "小程序id")
 	private String appletsId;
+
+	/**
+	 * 仓库名称id
+	 */
+	@ApiModelProperty(value = "仓库名称id")
+	private Long storageId;
+
+	/**
+	 * 仓库名称
+	 */
+	@ApiModelProperty(value = "仓库名称")
+	private String storageName;
 }

+ 25 - 15
blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/feign/SalesPolicyClient.java

@@ -1,9 +1,8 @@
 package org.springblade.mocha.feign;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import lombok.AllArgsConstructor;
-import org.checkerframework.checker.units.qual.A;
 import org.springblade.client.entity.CorpsDesc;
 import org.springblade.client.feign.ICorpsDescClient;
 import org.springblade.core.secure.utils.SecureUtil;
@@ -20,7 +19,6 @@ import org.springblade.mocha.vo.SalesPolicyItemVO;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RestController;
 import springfox.documentation.annotations.ApiIgnore;
-import sun.text.CollatorUtilities;
 
 import java.util.ArrayList;
 import java.util.Date;
@@ -67,34 +65,34 @@ public class SalesPolicyClient implements ISalesPolicyClient {
 	@Override
 	public SalesPolicy getPolicy(Long id) {
 		LambdaQueryWrapper<SalesPolicy> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-		lambdaQueryWrapper.eq(SalesPolicy::getIsDeleted,0);
+		lambdaQueryWrapper.eq(SalesPolicy::getIsDeleted, 0);
 		lambdaQueryWrapper.eq(SalesPolicy::getTenantId, SecureUtil.getTenantId());
-		lambdaQueryWrapper.eq(SalesPolicy::getId,id);
-		lambdaQueryWrapper.le(SalesPolicy::getStartTime,new Date());
-		lambdaQueryWrapper.ge(SalesPolicy::getEndTime,new Date());
+		lambdaQueryWrapper.eq(SalesPolicy::getId, id);
+		lambdaQueryWrapper.le(SalesPolicy::getStartTime, new Date());
+		lambdaQueryWrapper.ge(SalesPolicy::getEndTime, new Date());
 		return salesPolicyService.getOne(lambdaQueryWrapper);
 	}
 
 	@Override
-	public SalesPolicyItem getPolicyItem(String code,Long pid,String salesType) {
+	public SalesPolicyItem getPolicyItem(String code, Long pid, String salesType) {
 		LambdaQueryWrapper<SalesPolicyItem> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-		lambdaQueryWrapper.eq(SalesPolicyItem::getIsDeleted,0);
+		lambdaQueryWrapper.eq(SalesPolicyItem::getIsDeleted, 0);
 		lambdaQueryWrapper.eq(SalesPolicyItem::getTenantId, SecureUtil.getTenantId());
-		lambdaQueryWrapper.eq(SalesPolicyItem::getCode,code);
-		lambdaQueryWrapper.eq(SalesPolicyItem::getPid,pid);
-		lambdaQueryWrapper.eq(Func.isNotEmpty(salesType),SalesPolicyItem::getSalesType,salesType);
+		lambdaQueryWrapper.eq(SalesPolicyItem::getCode, code);
+		lambdaQueryWrapper.eq(SalesPolicyItem::getPid, pid);
+		lambdaQueryWrapper.eq(Func.isNotEmpty(salesType), SalesPolicyItem::getSalesType, salesType);
 		return salesPolicyItemService.getOne(lambdaQueryWrapper);
 	}
 
 	@Override
 	public List<SalesPolicyItemVO> getSalesPolicy(String code, String tenantId) {
 		//获取代理商信息
-		CorpsDesc agentCode = corpsDescClient.getAgentCode(code, tenantId,"KH");
-		if (agentCode == null){
+		CorpsDesc agentCode = corpsDescClient.getAgentCode(code, tenantId, "KH");
+		if (agentCode == null) {
 			return null;
 		}
 		//获取销售政策
-		return salesPolicyService.selectSales(tenantId,agentCode.getId().toString(),new Date());
+		return salesPolicyService.selectSales(tenantId, agentCode.getId().toString(), new Date());
 	}
 
 	@Override
@@ -120,4 +118,16 @@ public class SalesPolicyClient implements ISalesPolicyClient {
 		return salesPolicyService.getById(id);
 	}
 
+	@Override
+	public SalesPolicy getSalesPolicyById(Long id) {
+		SalesPolicy salesPolicy = salesPolicyService.getById(id);
+		if (salesPolicy != null){
+			List<SalesPolicyItem> specialItemList = salesPolicyItemService.list(new QueryWrapper<SalesPolicyItem>()
+				.eq("pid", salesPolicy.getId())
+				.eq("is_deleted", 0));
+			salesPolicy.setSpecialItemList(specialItemList.isEmpty() ? new ArrayList<>() : specialItemList);
+		}
+		return salesPolicy;
+	}
+
 }

+ 9 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderController.java

@@ -1188,5 +1188,14 @@ public class OrderController extends BladeController {
 		return orderService.calculateInterestAmount(order);
 	}
 
+	/**
+	 * 政策匹配
+	 */
+	@GetMapping("/policyMatching")
+	public R policyMatching(@RequestParam("policyId") Long policyId, @RequestParam("orderId") Long orderId) {
+
+		return orderService.policyMatching(policyId, orderId);
+	}
+
 
 }

+ 2 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderService.java

@@ -556,4 +556,6 @@ public interface IOrderService extends IService<Order> {
 	 * @return 结果
 	 */
 	R calculateInterestAmount(Order order);
+
+	R policyMatching(Long policyId, Long orderId);
 }

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

@@ -59,7 +59,10 @@ import org.springblade.finance.vojo.Settlement;
 import org.springblade.land.entity.LandOrder;
 import org.springblade.land.feign.ILandClient;
 import org.springblade.mocha.entity.PriceBank;
+import org.springblade.mocha.entity.SalesPolicy;
+import org.springblade.mocha.entity.SalesPolicyItem;
 import org.springblade.mocha.feign.IPriceBankClient;
+import org.springblade.mocha.feign.ISalesPolicyClient;
 import org.springblade.pay.tonglianPayment.dto.PaymentDTO;
 import org.springblade.pay.tonglianPayment.entity.Parameters;
 import org.springblade.pay.tonglianPayment.fegin.IPaymentClient;
@@ -80,7 +83,6 @@ import org.springblade.purchase.sales.stock.entity.SalesStockGoodsLog;
 import org.springblade.purchase.sales.stock.service.ISalesStockGoodsLogService;
 import org.springblade.purchase.sales.stock.service.ISalesStockGoodsService;
 import org.springblade.purchase.sales.vo.*;
-import org.springblade.salesPart.entity.PjOrder;
 import org.springblade.stock.entity.StockGoods;
 import org.springblade.stock.feign.IStockGoodsClient;
 import org.springblade.stock.vo.StockGoodsVO;
@@ -198,6 +200,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
 	private final IWechatClient wechatClient;
 
+	private final ISalesPolicyClient salesPolicyClient;
+
 	@Override
 	public IPage<OrderVO> selectOrderPage(IPage<OrderVO> page, OrderVO order) {
 		List<OrderVO> orderVOList = baseMapper.selectOrderPage(page, order);
@@ -589,12 +593,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				correctCreateProfit = list.stream().filter(e -> ObjectUtils.isNotNull(e.getPriceType())).
 					reduce(BigDecimal.ZERO, (x, y) -> x.add((y.getPrice().subtract(y.getRealSpecialOffer() == null ? BigDecimal.ZERO : y.getRealSpecialOffer())).multiply(y.getOrderQuantity())), BigDecimal::add);
 				String interestRate = sysClient.getParamService("interest.rate");
-				if(ObjectUtils.isNotNull(interestRate) && !"681169".equals(AuthUtil.getTenantId())){
-					BigDecimal rate = new BigDecimal(interestRate).divide(new BigDecimal("100"),2,RoundingMode.HALF_DOWN);
+				if (ObjectUtils.isNotNull(interestRate) && !"681169".equals(AuthUtil.getTenantId())) {
+					BigDecimal rate = new BigDecimal(interestRate).divide(new BigDecimal("100"), 2, RoundingMode.HALF_DOWN);
 					//无销售政策:产生返利=(单价*数量)* (2%+1%+1%)
 					faultCreateProfit = list.stream().filter(e -> ObjectUtils.isNull(e.getPriceType())).
 						reduce(BigDecimal.ZERO, (x, y) -> x.add((y.getPrice().multiply(y.getOrderQuantity())).multiply(rate)), BigDecimal::add);
-				}else{
+				} else {
 					//无销售政策:产生返利=(单价*数量)* (2%+1%+1%)
 					faultCreateProfit = list.stream().filter(e -> ObjectUtils.isNull(e.getPriceType())).
 						reduce(BigDecimal.ZERO, (x, y) -> x.add((y.getPrice().multiply(y.getOrderQuantity())).multiply(new BigDecimal(0.04))), BigDecimal::add);
@@ -2835,8 +2839,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	 * 年度预算报表获得订单数量和发货数量
 	 */
 	@Override
-	public List<OrderStatisticsVo> getByOrderQuantity(Integer year, Integer month, Long corpId,String tenantId) {
-		return baseMapper.getByOrderQuantity(year, month, corpId,tenantId);
+	public List<OrderStatisticsVo> getByOrderQuantity(Integer year, Integer month, Long corpId, String tenantId) {
+		return baseMapper.getByOrderQuantity(year, month, corpId, tenantId);
 	}
 
 	/**
@@ -6507,7 +6511,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			.ge(Order::getBusinesDate, order.getDateList().get(0))
 			.le(Order::getBusinesDate, order.getDateList().get(1));
 		if (AuthUtil.getUserRole().contains("贸易")) {
-			lambdaQueryWrapper.and(i-> i.eq(Order::getDocumenterId, AuthUtil.getUserId()).or()
+			lambdaQueryWrapper.and(i -> i.eq(Order::getDocumenterId, AuthUtil.getUserId()).or()
 				.eq(Order::getCreateUser, AuthUtil.getUserId()));
 		}
 		List<Order> orderList = baseMapper.selectList(lambdaQueryWrapper);
@@ -7021,7 +7025,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			.eq(Order::getTradeType, "CK")
 			.ne(Order::getOrderStatus, "订单完成");
 		if (AuthUtil.getUserRole().contains("贸易")) {
-			lambdaQueryWrapper.and(i-> i.eq(Order::getDocumenterId, AuthUtil.getUserId()).or()
+			lambdaQueryWrapper.and(i -> i.eq(Order::getDocumenterId, AuthUtil.getUserId()).or()
 				.eq(Order::getCreateUser, AuthUtil.getUserId()));
 		}
 		List<Order> orderList = baseMapper.selectList(lambdaQueryWrapper);
@@ -8412,6 +8416,53 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		return R.success("操作成功");
 	}
 
+	@Override
+	public R policyMatching(Long policyId, Long orderId) {
+		Order order = baseMapper.selectById(orderId);
+		if (order == null) {
+			throw new RuntimeException("未查到对应销售单据");
+		}
+		List<OrderItems> orderItemsList = orderItemsService.list(new LambdaQueryWrapper<OrderItems>()
+			.eq(OrderItems::getTenantId, AuthUtil.getTenantId())
+			.eq(OrderItems::getIsDeleted, 0)
+			.eq(OrderItems::getPid, orderId)
+			.eq(OrderItems::getGoodType, 0));
+		if (orderItemsList.isEmpty()) {
+			throw new RuntimeException("未查到对应销售单据明细");
+		}
+		SalesPolicy salesPolicy = salesPolicyClient.getSalesPolicyById(policyId);
+		if (salesPolicy == null) {
+			throw new RuntimeException("未查到对应政策");
+		}
+		if (ObjectUtils.isNotNull(salesPolicy.getSpecialItemList()) && !salesPolicy.getSpecialItemList().isEmpty()) {
+			List<SalesPolicyItem> specialItemList = salesPolicy.getSpecialItemList();
+			List<OrderItems> orderItems = new ArrayList<>();
+			for (OrderItems item : orderItemsList) {
+				SalesPolicyItem salesPolicyItem = specialItemList.stream().filter(e -> e.getItemId().equals(item.getItemId()))
+					.findFirst().orElse(null);
+				if (salesPolicyItem != null) {
+					item.setPurchasePrice(salesPolicyItem.getPurchasePrice());
+					item.setPriceType(salesPolicy.getCname());
+					if ("正常".equals(salesPolicy.getType())) {
+						item.setPrice(salesPolicyItem.getSalesPrice());
+					} else {
+						item.setPrice(salesPolicyItem.getSpecialOffer());
+						item.setRealSpecialOffer(salesPolicyItem.getRealSpecialOffer());
+					}
+					orderItems.add(item);
+				}
+			}
+			if (orderItems.isEmpty()) {
+				throw new RuntimeException("未匹配到对应政策");
+			}
+			order.setOrderItemsList(orderItemsList);
+			this.saveOrderMessage(order);
+		} else {
+			throw new RuntimeException("未查到对应政策明细");
+		}
+		return R.data(order);
+	}
+
 	/**
 	 * 状态统计
 	 * <p>

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

@@ -26,6 +26,7 @@ import org.springblade.salesPart.excel.StockExportExcel;
 import org.springblade.salesPart.goods.service.IGoodsDescService;
 import org.springblade.salesPart.order.service.IOrderItemsService;
 import org.springblade.salesPart.order.service.IOrderService;
+import org.springblade.salesPart.util.ParameterUtils;
 import org.springblade.system.feign.ISysClient;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
@@ -85,6 +86,9 @@ public class InventoryController {
 				lambdaQueryWrapper.eq(PjOrder::getCreateUser, AuthUtil.getUserId());
 			}
 		}
+		if (ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.getStorageId());
+		}
 		IPage<PjOrder> pages = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
 		StringBuilder updateUserIds = new StringBuilder();
 		StringBuilder createUserIds = new StringBuilder();
@@ -150,6 +154,9 @@ public class InventoryController {
 				lambdaQueryWrapper.eq(PjOrder::getCreateUser, AuthUtil.getUserId());
 			}
 		}
+		if (ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.getStorageId());
+		}
 		List<PjOrder> pages = orderService.list(lambdaQueryWrapper);
 		StringBuilder updateUserIds = new StringBuilder();//修改人id拼接
 		StringBuilder createUserIds = new StringBuilder();//创建人id拼接

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

@@ -32,6 +32,7 @@ import org.springblade.salesPart.goods.service.IGoodsDescService;
 import org.springblade.salesPart.order.service.IOrderItemsService;
 import org.springblade.salesPart.order.service.IOrderService;
 import org.springblade.salesPart.ship.service.IShipService;
+import org.springblade.salesPart.util.ParameterUtils;
 import org.springblade.salesPart.util.UserUtils;
 import org.springblade.salesPart.vo.*;
 import org.springblade.system.user.entity.User;
@@ -42,7 +43,6 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.math.BigDecimal;
-import java.math.MathContext;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -180,6 +180,9 @@ public class OrderController extends BladeController {
 				lambdaQueryWrapper.eq(PjOrder::getCreateUser, AuthUtil.getUserId());
 			}
 		}
+		if (ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.getStorageId());
+		}
 		IPage<PjOrder> pages = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
 		if (CollectionUtils.isNotEmpty(pages.getRecords())) {
 			List<Long> userIds = new ArrayList<>();
@@ -320,6 +323,9 @@ public class OrderController extends BladeController {
 				lambdaQueryWrapper.eq(PjOrder::getCreateUser, AuthUtil.getUserId());
 			}
 		}
+		if (ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.getStorageId());
+		}
 		List<PjOrder> pages = orderService.list(lambdaQueryWrapper);
 		if (CollectionUtils.isNotEmpty(pages)) {
 			List<Long> userIds = new ArrayList<>();
@@ -575,6 +581,9 @@ public class OrderController extends BladeController {
 				lambdaQueryWrapper.eq(PjOrder::getCustomerId, pjCorpsAttn.getPid());
 			}
 		}
+		if (ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.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());
@@ -651,6 +660,9 @@ public class OrderController extends BladeController {
 				lambdaQueryWrapper.eq(PjOrder::getCreateUser, AuthUtil.getUserId());
 			}
 		}
+		if (ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.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());
@@ -766,6 +778,9 @@ 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());
+		}
 		List<PjOrder> list = orderService.list(lambdaQueryWrapper);
 		if (list.isEmpty()) {
 			return R.data(Collections.emptyList());
@@ -819,6 +834,9 @@ 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());
+		}
 		List<PjOrder> list = orderService.list(lambdaQueryWrapper);
 		if (list.isEmpty()) {
 			return R.data(Collections.emptyList());
@@ -969,6 +987,9 @@ 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());
+		}
 		lambdaQueryWrapper.orderByDesc(PjOrder::getCreateTime);
 		IPage<PjOrder> pages = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
 		for (PjOrder item : pages.getRecords()) {
@@ -1119,6 +1140,9 @@ 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());
+		}
 		lambdaQueryWrapper.orderByDesc(PjOrder::getCreateTime);
 		List<PjOrder> list = orderService.list(lambdaQueryWrapper);
 		List<PjOrder> pjOrderList = new ArrayList<>();
@@ -1160,6 +1184,9 @@ 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());
+		}
 		lambdaQueryWrapper.orderByDesc(PjOrder::getCreateTime);
 		List<PjOrder> list = orderService.list(lambdaQueryWrapper);
 		List<PjOrder> pjOrderList = new ArrayList<>();
@@ -1224,6 +1251,9 @@ 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());
+		}
 		return R.data(orderService.page(Condition.getPage(query), lambdaQueryWrapper));
 	}
 
@@ -1463,8 +1493,10 @@ public class OrderController extends BladeController {
 			.eq(PjOrder::getCustomerId, order.getCustomerId())
 			.eq(PjOrder::getBusinessSource, "额度支付")
 			.apply("FIND_IN_SET( actual_payment_status, '0,1,2,3,4' )")
-			.apply("FIND_IN_SET( status, '待确认,待发货,已发货,退款请核' )")
-		;
+			.apply("FIND_IN_SET( status, '待确认,待发货,已发货,退款请核' )");
+		if (ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.getStorageId());
+		}
 		lambdaQueryWrapper.orderByDesc(PjOrder::getCreateTime);
 		List<PjOrder> orderList = orderService.list(lambdaQueryWrapper);
 		List<Map<String, Object>> mapList = new ArrayList<>();

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

@@ -30,9 +30,9 @@ 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.ObjectUtil;
-import org.springblade.salesPart.entity.PjAccountManagement;
 import org.springblade.salesPart.entity.PjOrder;
 import org.springblade.salesPart.order.service.IOrderService;
+import org.springblade.salesPart.util.ParameterUtils;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -69,6 +69,9 @@ public class OrderStatisticsController extends BladeController {
 			order.setSalesCompanyId(Long.parseLong(AuthUtil.getDeptId()));//公司
 		}
 		order.setSalesCompanyId(Long.parseLong(AuthUtil.getDeptId()));//公司
+		if (ParameterUtils.whetherDatabaseSharding()) {
+			order.setStorageId(ParameterUtils.getStorageId());
+		}
 		List<PjOrder> pjOrderList = orderService.salesman(order);
 		return R.data(pjOrderList);
 	}
@@ -96,6 +99,9 @@ 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());
+		}
 		IPage<PjOrder> pages = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
 		String createUserIds = "";
 		for (PjOrder items : pages.getRecords()) {
@@ -123,8 +129,8 @@ public class OrderStatisticsController extends BladeController {
 	 * 柱状统计
 	 */
 	@GetMapping("/columnar")
-	public R<Map<String,List<BigDecimal>>> columnar(PjOrder order) {
-		Map<String,List<BigDecimal>> map = orderService.columnar(order);
+	public R<Map<String, List<BigDecimal>>> columnar(PjOrder order) {
+		Map<String, List<BigDecimal>> map = orderService.columnar(order);
 		return R.data(map);
 	}
 
@@ -132,8 +138,8 @@ public class OrderStatisticsController extends BladeController {
 	 * 柱状统计
 	 */
 	@GetMapping("/columnarRz")
-	public R<Map<String,List<BigDecimal>>> columnarRz(PjOrder order) {
-		Map<String,List<BigDecimal>> map = orderService.columnarRz(order);
+	public R<Map<String, List<BigDecimal>>> columnarRz(PjOrder order) {
+		Map<String, List<BigDecimal>> map = orderService.columnarRz(order);
 		return R.data(map);
 	}
 

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

@@ -27,6 +27,7 @@ import org.springblade.salesPart.excel.PjOrderExportExcelReturnsXS;
 import org.springblade.salesPart.excel.PjOrderExportExcelXS;
 import org.springblade.salesPart.order.service.IOrderItemsService;
 import org.springblade.salesPart.order.service.IOrderService;
+import org.springblade.salesPart.util.ParameterUtils;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.web.bind.annotation.*;
@@ -127,6 +128,9 @@ public class ReturnsController {
 				lambdaQueryWrapper.eq(PjOrder::getCreateUser, AuthUtil.getUserId());
 			}
 		}
+		if (ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.getStorageId());
+		}
 		IPage<PjOrder> pages = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
 
 		StringBuilder updateUserIds = new StringBuilder();//修改人id拼接
@@ -229,6 +233,9 @@ public class ReturnsController {
 				lambdaQueryWrapper.eq(PjOrder::getCreateUser, AuthUtil.getUserId());
 			}
 		}
+		if (ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.getStorageId());
+		}
 		List<PjOrder> list = orderService.list( lambdaQueryWrapper);
 
 		StringBuilder updateUserIds = new StringBuilder();//修改人id拼接

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

@@ -24,6 +24,7 @@ import org.springblade.salesPart.excel.PjOrderExportExcelCG;
 import org.springblade.salesPart.excel.PjOrderExportExcelXS;
 import org.springblade.salesPart.order.service.IOrderItemsService;
 import org.springblade.salesPart.order.service.IOrderService;
+import org.springblade.salesPart.util.ParameterUtils;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.web.bind.annotation.*;
@@ -110,6 +111,9 @@ 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());
+		}
 		IPage<PjOrder> pages = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
 		if (CollectionUtils.isNotEmpty(pages.getRecords())) {
 			List<Long> userIds = new ArrayList<>();
@@ -208,6 +212,9 @@ public class ShareSalesController {
 				lambdaQueryWrapper.eq(PjOrder::getCreateUser, AuthUtil.getUserId());
 			}
 		}
+		if (ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjOrder::getStorageId, ParameterUtils.getStorageId());
+		}
 		List<PjOrder> pages = orderService.list(lambdaQueryWrapper);
 		if (CollectionUtils.isNotEmpty(pages)) {
 			List<Long> userIds = new ArrayList<>();

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

@@ -41,6 +41,7 @@ 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;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.web.bind.annotation.*;
@@ -96,6 +97,9 @@ 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());
+		}
 		lambdaQueryWrapper.orderByDesc(PjShip::getCreateTime);
 		IPage<PjShip> pages = shipService.page(Condition.getPage(query), lambdaQueryWrapper);
 

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

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

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

@@ -187,6 +187,9 @@
         <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>
         <if test="order.businesDateList == null">
             AND DATE_FORMAT(po.busines_date, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')
         </if>
@@ -254,6 +257,9 @@
         <if test="order.salesCompanyId!=null">
             and bu.dept_id = #{order.salesCompanyId}
         </if>
+        <if test="order.storageId!=null">
+            and bu.storage_id = #{order.storageId}
+        </if>
         GROUP BY
             po.saler_id
     </select>
@@ -285,6 +291,9 @@
         <if test="salesCompanyId!=null">
             and po.sales_company_id = #{salesCompanyId}
         </if>
+        <if test="storageId!=null">
+            and po.storage_id = #{storageId}
+        </if>
     </select>
     <select id="collectionStatisticsList" resultType="org.springblade.salesPart.vo.OrderStatistics">
         SELECT DISTINCT
@@ -318,6 +327,9 @@
         <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>
         <if test="order.businesDateList == null">
             AND DATE_FORMAT(po.busines_date, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')
         </if>
@@ -341,6 +353,9 @@
         <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>
         <if test="order.businesDateList == null">
             AND DATE_FORMAT(po.busines_date, '%Y-%m') &lt; DATE_FORMAT(CURDATE(), '%Y-%m')
         </if>
@@ -358,6 +373,9 @@
         <if test="order.customerId!=null">
             and pcd.id = #{order.customerId}
         </if>
+        <if test="order.storageId!=null">
+            and pcd.delivery_warehouse_id = #{order.storageId}
+        </if>
         <if test="order.salerId!=null">
             and pcd.salesman_id = #{order.salerId}
         </if>
@@ -391,6 +409,9 @@
         <if test="order.customerId!=null">
             and o.customer_id = #{order.customerId}
         </if>
+        <if test="order.storageId!=null">
+            and o.storage_id = #{order.storageId}
+        </if>
         <if test="order.whetherSettlement !=null and order.whetherSettlement == 0">
             and o.total_money != o.payment_amount_tl
         </if>
@@ -451,6 +472,9 @@
         <if test="order.customerId!=null">
             and o.customer_id = #{order.customerId}
         </if>
+        <if test="order.storageId!=null">
+            and o.storage_id = #{order.storageId}
+        </if>
         <if test="order.whetherSettlement !=null and order.whetherSettlement == 0">
             and o.total_money != o.payment_amount_tl
         </if>
@@ -838,6 +862,9 @@
         <if test="salesCompanyId!=null">
             and po.sales_company_id = #{salesCompanyId}
         </if>
+        <if test="storageId!=null">
+            and po.storage_id = #{storageId}
+        </if>
     </select>
     <select id="financingProcurement" resultType="org.springblade.salesPart.dto.FinancingProcurement">
         SELECT
@@ -1041,6 +1068,9 @@
         <if test="salesCompanyId != null and salesCompanyId != ''">
             and pcd.sales_company_id = #{salesCompanyId}
         </if>
+        <if test="storageId!=null">
+            and pcd.delivery_warehouse_id = #{storageId}
+        </if>
         group by pcd.id
         order by unpaidAmount desc
     </select>
@@ -1093,7 +1123,9 @@
         WHERE
             pcd.is_deleted = '0'
           AND pcd.tenant_id = #{dto.tenantId}
-
+        <if test="dto.storageId!=null">
+            and pcd.delivery_warehouse_id = #{dto.storageId}
+        </if>
     </select>
     <select id="expenditureSum" resultType="java.math.BigDecimal"
             parameterType="org.springblade.salesPart.dto.SaleDetail">
@@ -1107,6 +1139,9 @@
         <if test="salesCompanyId !=null and salesCompanyId != ''">
             and find_in_set(po.sales_company_id,#{salesCompanyId})
         </if>
+        <if test="storageId !=null and storageId != ''">
+            and po.storage_id = #{storageId}
+        </if>
         <if test="salerName !=null and salerName != ''">
             and po.saler_name like concat('%', #{salerName}, '%')
         </if>

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

@@ -85,6 +85,7 @@ import org.springblade.salesPart.ship.service.IShipItemsRecordService;
 import org.springblade.salesPart.ship.service.IShipItemsService;
 import org.springblade.salesPart.stock.service.IStockDescService;
 import org.springblade.salesPart.storage.mapper.StorageDescMapper;
+import org.springblade.salesPart.util.ParameterUtils;
 import org.springblade.salesPart.util.UserUtils;
 import org.springblade.salesPart.util.WxParamUtil;
 import org.springblade.salesPart.vo.*;
@@ -199,7 +200,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 	 */
 	@Override
 	public PjOrder getMessageById(PjOrder order) {
-		if (ObjectUtils.isNull(order.getId())){
+		if (ObjectUtils.isNull(order.getId())) {
 			throw new RuntimeException("缺少必要参数");
 		}
 		PjOrder detail = baseMapper.selectById(order.getId());
@@ -311,6 +312,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("老板")) {
 			order.setSalesCompanyId(Long.parseLong(AuthUtil.getDeptId()));
 		}
+		if (ParameterUtils.whetherDatabaseSharding()) {
+			order.setStorageId(ParameterUtils.getStorageId());
+		}
 		return page.setRecords(baseMapper.collectionStatistics(page, order));
 	}
 
@@ -322,6 +326,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("老板")) {
 			order.setSalesCompanyId(Long.parseLong(AuthUtil.getDeptId()));
 		}
+		if (ParameterUtils.whetherDatabaseSharding()) {
+			order.setStorageId(ParameterUtils.getStorageId());
+		}
 		return baseMapper.collectionStatisticsList(order);
 	}
 
@@ -342,7 +349,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		} else {
 			year = LocalDate.now().getYear();
 		}
-
+		Long storageId = null;
+		if (ParameterUtils.whetherDatabaseSharding()) {
+			storageId = ParameterUtils.getStorageId();
+		}
 		// 遍历每个月份
 		for (int month = 1; month <= 12; month++) {
 			// 构建对应年份和月份的日期
@@ -353,7 +363,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 			LocalDate lastDay = yearMonth.atEndOfMonth();
 			Map<String, BigDecimal> sum = new HashMap<>();
 //			if (!AuthUtil.getUserRole().contains("admin") && !AuthUtil.getUserRole().contains("老板")) {
-			sum = baseMapper.columnar(firstDay, lastDay, AuthUtil.getTenantId(), Long.parseLong(AuthUtil.getDeptId()));
+			sum = baseMapper.columnar(firstDay, lastDay, AuthUtil.getTenantId(), Long.parseLong(AuthUtil.getDeptId()), storageId);
 			/*} else {
 				sum = baseMapper.columnar(firstDay, lastDay, AuthUtil.getTenantId(), null);
 
@@ -368,6 +378,9 @@ 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());
+		}
 		List<PjOrderStatisticsWeb> list = baseMapper.statisticsPage(page, order);
 		if (!list.isEmpty()) {
 			List<Long> ids = list.stream().map(PjOrderStatisticsWeb::getCustomerId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
@@ -384,6 +397,9 @@ 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());
+			}
 			List<PjOrder> pjOrderList = baseMapper.selectList(lambdaQueryWrapper);
 			List<PjOrderItems> pjOrderItemsList = new ArrayList<>();
 			if (!pjOrderList.isEmpty()) {
@@ -537,6 +553,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 
 	@Override
 	public List<PjOrderStatisticsExcel> statisticsExport(PjOrderStatisticsWeb order) {
+		if (ParameterUtils.whetherDatabaseSharding()) {
+			order.setStorageId(ParameterUtils.getStorageId());
+		}
 		List<PjOrderStatisticsExcel> list = baseMapper.statisticsExport(order);
 		if (!list.isEmpty()) {
 			List<Long> ids = list.stream().map(PjOrderStatisticsExcel::getCustomerId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
@@ -552,6 +571,9 @@ 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());
+			}
 			List<PjOrder> pjOrderList = baseMapper.selectList(lambdaQueryWrapper);
 			List<PjOrderItems> pjOrderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
 				.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
@@ -702,15 +724,19 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		Date date = new Date();
 		SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
 		String dateS = formatter.format(date);
-		List<PjOrder> orderList = baseMapper.selectList(new LambdaQueryWrapper<PjOrder>()
-			.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
+		LambdaQueryWrapper<PjOrder> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
 			.eq(PjOrder::getIsDeleted, 0)
 			.eq(PjOrder::getSalesCompanyId, AuthUtil.getDeptId())
 			.eq(PjOrder::getBsType, "XS")
 			.eq(PjOrder::getBusinesDate, dateS)
 			.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' )))"));
+				"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());
+		}
+		List<PjOrder> orderList = baseMapper.selectList(lambdaQueryWrapper);
 		if (!orderList.isEmpty()) {
 			return R.data(orderList.stream().map(PjOrder::getTotalMoney).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
 		} else {
@@ -2466,6 +2492,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 
 	@Override
 	public R statisticsSum(PjOrderStatisticsWeb order) {
+		if (ParameterUtils.whetherDatabaseSharding()) {
+			order.setStorageId(ParameterUtils.getStorageId());
+		}
 		List<PjOrderStatisticsExcel> list = baseMapper.statisticsExport(order);
 		if (!list.isEmpty()) {
 			List<String> orderTypeList = Arrays.asList("待确认", "待发货", "已发货", "退款请核", "已收货");
@@ -2483,6 +2512,9 @@ 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());
+			}
 			List<PjOrder> pjOrderList = baseMapper.selectList(lambdaQueryWrapper);
 			List<PjOrderItems> pjOrderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
 				.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
@@ -2951,7 +2983,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 				throw new RuntimeException("未找到融资总账信息");
 			}
 		}
-		order.setVersion(Objects.isNull(order.getVersion())? 1 : order.getVersion() + 1);
+		order.setVersion(Objects.isNull(order.getVersion()) ? 1 : order.getVersion() + 1);
 		baseMapper.updateById(order);
 		PjShip ship = shipMapper.selectOne(new LambdaQueryWrapper<PjShip>()
 			.eq(PjShip::getIsDeleted, 0)
@@ -2962,7 +2994,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 			ship.setUpdateUser(AuthUtil.getUserId());
 			ship.setUpdateTime(new Date());
 			ship.setGoodsTotalNum(order.getPrimaryGoodsTotalNum());
-			ship.setVersion(Objects.isNull(ship.getVersion())? 1 : ship.getVersion() + 1);
+			ship.setVersion(Objects.isNull(ship.getVersion()) ? 1 : ship.getVersion() + 1);
 			shipMapper.updateById(ship);
 		}
 		List<PjOrderItems> orderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
@@ -2991,7 +3023,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		order.setUpdateUser(AuthUtil.getUserId());
 		order.setUpdateTime(new Date());
 		order.setVersion(Objects.isNull(order.getVersion()) ? 1 : order.getVersion() + 1);
-		if (!"1".equals(order.getConfirmWarehouse())){
+		if (!"1".equals(order.getConfirmWarehouse())) {
 			throw new RuntimeException("请确认到货后再赎回");
 		}
 		baseMapper.updateById(order);
@@ -3703,7 +3735,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		} else {
 			year = LocalDate.now().getYear();
 		}
-
+		Long storageId = null;
+		if (ParameterUtils.whetherDatabaseSharding()) {
+			storageId = ParameterUtils.getStorageId();
+		}
 		// 遍历每个月份
 		for (int month = 1; month <= 12; month++) {
 			// 构建对应年份和月份的日期
@@ -3713,7 +3748,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 			LocalDate firstDay = yearMonth.atDay(1);
 			LocalDate lastDay = yearMonth.atEndOfMonth();
 			Map<String, BigDecimal> sum = new HashMap<>();
-			sum = baseMapper.columnarRz(firstDay, lastDay, AuthUtil.getTenantId(), Long.parseLong(AuthUtil.getDeptId()));
+			sum = baseMapper.columnarRz(firstDay, lastDay, AuthUtil.getTenantId(), Long.parseLong(AuthUtil.getDeptId()), storageId);
 			if (ObjectUtils.isNotNull(sum)) {
 				number.add(sum.get("goodsTotalNum"));
 				amount.add(sum.get("totalMoney"));
@@ -4025,7 +4060,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 				BigDecimal orderItemSum = orderMapper.selectGoodsNumBySrcOrderNo(order.getSrcOrdNo(), order.getId());
 				goodsTotalNum = goodsTotalNum.add(orderItemSum);
 			}
-			order.setTotalMoney(goodsTotalNum.compareTo(one) == 0 ? totalMoney.add(freightAmount): totalMoney);
+			order.setTotalMoney(goodsTotalNum.compareTo(one) == 0 ? totalMoney.add(freightAmount) : totalMoney);
 			order.setFreight(goodsTotalNum.compareTo(one) == 0 ? freightAmount : BigDecimal.ZERO);
 /*			if (order.getGoodsTotalNum().compareTo(new BigDecimal(1)) == 0) {//只有一条轮胎加5元运费
 				String freight = sysClient.getParamService("freight");
@@ -4709,11 +4744,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 	public IPage<PjOrder> appStatusShareList(PjOrder order, Query query) {
 		BladeUser user = AuthUtil.getUser();
 		LambdaQueryWrapper<PjOrder> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-		lambdaQueryWrapper.select(PjOrder::getSrcOrdNo,PjOrder::getCustomerId,
-			PjOrder::getId,PjOrder::getCustomerName, PjOrder::getRecAddress,
-			PjOrder::getPhone, PjOrder::getContacts,PjOrder::getChargeType,
-			PjOrder::getTotalMoney,PjOrder::getStatus,PjOrder::getXcxStatus,
-			PjOrder::getSalesCompanyName,PjOrder::getOrdNo,PjOrder::getGoodsTotalNum,
+		lambdaQueryWrapper.select(PjOrder::getSrcOrdNo, PjOrder::getCustomerId,
+			PjOrder::getId, PjOrder::getCustomerName, PjOrder::getRecAddress,
+			PjOrder::getPhone, PjOrder::getContacts, PjOrder::getChargeType,
+			PjOrder::getTotalMoney, PjOrder::getStatus, PjOrder::getXcxStatus,
+			PjOrder::getSalesCompanyName, PjOrder::getOrdNo, PjOrder::getGoodsTotalNum,
 			PjOrder::getCreateTime, PjOrder::getReceivableType);
 		lambdaQueryWrapper.eq(PjOrder::getTenantId, user.getTenantId())
 			.eq(PjOrder::getIsDeleted, 0)
@@ -4733,13 +4768,16 @@ 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());
+		}
 		query.setDescs("create_time");
 		IPage<PjOrder> pages = orderMapper.selectPage(Condition.getPage(query), lambdaQueryWrapper);
 		if (pages.getRecords().isEmpty()) {
 			return pages;
 		}
 		LambdaQueryWrapper<PjOrder> srcOrderWrapper = new LambdaQueryWrapper<>();
-		srcOrderWrapper.select(PjOrder::getSrcOrdNo,PjOrder::getId);
+		srcOrderWrapper.select(PjOrder::getSrcOrdNo, PjOrder::getId);
 		srcOrderWrapper.eq(PjOrder::getTenantId, user.getTenantId())
 			.in(PjOrder::getSrcOrdNo, pages.getRecords().stream().map(PjOrder::getSrcOrdNo).filter(Objects::nonNull).distinct().collect(Collectors.toList()));
 		List<PjOrder> srcOrderList = orderMapper.selectList(srcOrderWrapper);
@@ -4774,10 +4812,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 	public R<String> closeOrder(PjOrder order) {
 		BladeUser bladeUser = AuthUtil.getUser();
 		PjOrder srcOrder = baseMapper.selectOne(new LambdaQueryWrapper<PjOrder>().eq(PjOrder::getId, order.getId()).eq(PjOrder::getTenantId, bladeUser.getTenantId()));
-		if (org.springframework.util.ObjectUtils.isEmpty(srcOrder)){
+		if (org.springframework.util.ObjectUtils.isEmpty(srcOrder)) {
 			return R.fail("未找到该订单");
 		}
-		if (srcOrder.getIsDeleted().equals(NumberEnum.ONE.number)){
+		if (srcOrder.getIsDeleted().equals(NumberEnum.ONE.number)) {
 			return R.fail("订单已关闭");
 		}
 		srcOrder = new PjOrder();
@@ -4812,11 +4850,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		if (org.springframework.util.CollectionUtils.isEmpty(saleDetailDtoList)) {
 			return R.data(appStatisticsVo);
 		}
-		List<PjOrder> pjOrderList = orderMapper.selectList(new LambdaQueryWrapper<PjOrder>()
-			.eq(PjOrder::getTenantId, user.getTenantId())
+		LambdaQueryWrapper<PjOrder> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(PjOrder::getTenantId, user.getTenantId())
 			.eq(PjOrder::getIsDeleted, 0)
-			.in(PjOrder::getOrdNo, saleDetailDtoList.stream().map(SaleDetailDto::getOrdNo).distinct().collect(Collectors.toList()))
-		);
+			.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());
+		}
+		List<PjOrder> pjOrderList = orderMapper.selectList(lambdaQueryWrapper);
 		if (org.springframework.util.CollectionUtils.isEmpty(pjOrderList)) {
 			return R.data(appStatisticsVo);
 		}
@@ -4941,7 +4982,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		appStatisticsVo.setCost(costprieActual.abs().subtract(costprieReturns));
 		appStatisticsVo.setProfit(profitActual.abs().subtract(profitReturns));
 		// appStatisticsVo.setAverageAmount(appStatisticsVo.getIncome().divide(new BigDecimal(xsCount), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
-		appStatisticsVo.setAverageAmount(BigDecimal.ZERO.compareTo(appStatisticsVo.getIncome()) == 0 ? BigDecimal.ZERO :appStatisticsVo.getIncome().divide(new BigDecimal(customerCount), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
+		appStatisticsVo.setAverageAmount(BigDecimal.ZERO.compareTo(appStatisticsVo.getIncome()) == 0 ? BigDecimal.ZERO : appStatisticsVo.getIncome().divide(new BigDecimal(customerCount), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
 		appStatisticsVo.setExpenditure(expenditure == null ? BigDecimal.ZERO : expenditure.setScale(0, RoundingMode.DOWN));
 		return R.data(appStatisticsVo);
 	}
@@ -4954,6 +4995,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		if (!nowUserRoles.contains("admin") && !nowUserRoles.contains("老板")) {
 			paymentParamVo.setSalesCompanyId(nowAppUser.getDeptId());
 		}
+		if (ParameterUtils.whetherDatabaseSharding()) {
+			paymentParamVo.setStorageId(ParameterUtils.getStorageId());
+		}
 		paymentParamVo.setTenantId(nowAppUser.getTenantId());
 		IPage<AppPendingPaymentVo> pendingPaymentVo = Condition.getPage(query);
 		pendingPaymentVo.setRecords(orderMapper.getPendingPaymentList(paymentParamVo));
@@ -4966,6 +5010,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 			settlement = new PjSettlement();
 		}
 		settlement.setTenantId(AuthUtil.getTenantId());
+		if (ParameterUtils.whetherDatabaseSharding()) {
+			settlement.setStorageId(ParameterUtils.getStorageId());
+		}
 		return orderMapper.getPendingPaymentSum(settlement);
 	}
 
@@ -4990,6 +5037,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 			saleDetail.setBusinesDateStart(firstDay.format(formatter));
 			saleDetail.setBusinesDateEnd(lastDay.format(formatter));
 		}
+		if (ParameterUtils.whetherDatabaseSharding()) {
+			saleDetail.setStorageId(ParameterUtils.getStorageId() == null ? null : ParameterUtils.getStorageId() + "");
+		}
 		return R.data(orderMapper.expenditureSum(saleDetail));
 	}
 
@@ -5174,10 +5224,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 						//计算成本
 						goodsName.append(goodsDesc.getCname()).append(",");
 						retrieval.append(goodsDesc.getCnameInt()).append(",");
-						if(ObjectUtils.isNull(item.getSendNum())){
+						if (ObjectUtils.isNull(item.getSendNum())) {
 							item.setSendNum(new BigDecimal("0.00"));
 						}
-						if (new BigDecimal("0.00").compareTo(item.getSendNum()) == 0){
+						if (new BigDecimal("0.00").compareTo(item.getSendNum()) == 0) {
 							item.setCostprie(item.getGoodsNum().multiply(inventoryCostPrice));
 							item.setCostpriePrice(inventoryCostPrice);
 							item.setRebateCostprie(item.getGoodsNum().multiply(rebateInventoryCostPrice));
@@ -5211,7 +5261,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 				}, BigDecimal::add).setScale(2, RoundingMode.HALF_UP);
 				order.setSalesAmount(totalMoney);
 				order.setTotalMoney(totalMoney);
-				if (!"JF".equals(order.getBsType()) &&  !Objects.equals(1, order.getBillType())) {
+				if (!"JF".equals(order.getBsType()) && !Objects.equals(1, order.getBillType())) {
 					BigDecimal one = new BigDecimal(CommonEnum.ONE.info);
 					String freight = sysClient.getParamService("freight");
 					BigDecimal freightAmount = ObjectUtils.isNotNull(freight) ? new BigDecimal(freight) : BigDecimal.ZERO;
@@ -5221,7 +5271,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 						BigDecimal orderItemSum = orderMapper.selectGoodsNumBySrcOrderNo(order.getSrcOrdNo(), order.getId());
 						goodsTotalNum = goodsTotalNum.add(orderItemSum);
 					}
-					order.setTotalMoney(goodsTotalNum.compareTo(one) == 0 ? totalMoney.add(freightAmount): totalMoney);
+					order.setTotalMoney(goodsTotalNum.compareTo(one) == 0 ? totalMoney.add(freightAmount) : totalMoney);
 					order.setFreight(goodsTotalNum.compareTo(one) == 0 ? freightAmount : BigDecimal.ZERO);
 /*					if (order.getGoodsTotalNum().compareTo(new BigDecimal(1)) == 0) {//只有一条轮胎加5元运费
 						String freight = sysClient.getParamService("freight");

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

@@ -35,8 +35,6 @@ 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.PjOrderItems;
 import org.springblade.salesPart.entity.PjShip;
 import org.springblade.salesPart.entity.PjShipItems;
 import org.springblade.salesPart.enums.OrderTypeEnum;
@@ -45,6 +43,7 @@ import org.springblade.salesPart.excel.ShipItemImportCodeExcel;
 import org.springblade.salesPart.excel.ShipItemImportExcel;
 import org.springblade.salesPart.ship.service.IShipItemsService;
 import org.springblade.salesPart.ship.service.IShipService;
+import org.springblade.salesPart.util.ParameterUtils;
 import org.springblade.salesPart.vo.ShipVO;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
@@ -55,7 +54,10 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.math.BigDecimal;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 /**
@@ -97,11 +99,11 @@ public class ShipController extends BladeController {
 			throw new RuntimeException("缺少必要参数");
 		}
 		LambdaQueryWrapper<PjShip> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-		lambdaQueryWrapper.select(PjShip::getId,PjShip::getBillno,PjShip::getOrdNo,PjShip::getSrcOrdNo,PjShip::getBizTypeName,
-				PjShip::getCustomerName,PjShip::getBsType,PjShip::getStorageName,PjShip::getStockClerkName,PjShip::getStockClerkId,PjShip::getSendTotalNum,
-				PjShip::getGoodsTotalNum,PjShip::getStatusName,PjShip::getBusinesDate,PjShip::getCreateUser,PjShip::getCreateTime,
-				PjShip::getUpdateUser,PjShip::getUpdateTime,PjShip::getSalesCompanyName,PjShip::getRecAddress,PjShip::getPhone,
-				PjShip::getContacts,PjShip::getRemarks,PjShip::getCallInStorageName,PjShip::getStorageId,PjShip::getCallInStorageId,
+		lambdaQueryWrapper.select(PjShip::getId, PjShip::getBillno, PjShip::getOrdNo, PjShip::getSrcOrdNo, PjShip::getBizTypeName,
+				PjShip::getCustomerName, PjShip::getBsType, PjShip::getStorageName, PjShip::getStockClerkName, PjShip::getStockClerkId, PjShip::getSendTotalNum,
+				PjShip::getGoodsTotalNum, PjShip::getStatusName, PjShip::getBusinesDate, PjShip::getCreateUser, PjShip::getCreateTime,
+				PjShip::getUpdateUser, PjShip::getUpdateTime, PjShip::getSalesCompanyName, PjShip::getRecAddress, PjShip::getPhone,
+				PjShip::getContacts, PjShip::getRemarks, PjShip::getCallInStorageName, PjShip::getStorageId, PjShip::getCallInStorageId,
 				PjShip::getStatus)
 			.eq(PjShip::getTenantId, AuthUtil.getTenantId())
 			.eq(PjShip::getIsDeleted, 0)
@@ -134,6 +136,9 @@ public class ShipController extends BladeController {
 				lambdaQueryWrapper.eq(PjShip::getCustomerId, AuthUtil.getUserId());
 			}
 		}
+		if (ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjShip::getStorageId, ParameterUtils.getStorageId());
+		}
 		IPage<PjShip> pages = shipService.page(Condition.getPage(query), lambdaQueryWrapper);
 		if (CollectionUtils.isNotEmpty(pages.getRecords())) {
 			List<Long> userIds = new ArrayList<>();
@@ -156,7 +161,7 @@ public class ShipController extends BladeController {
 			List<Long> ids = pages.getRecords().stream().map(PjShip::getId).collect(Collectors.toList());
 			List<PjShipItems> pjOrderItemsList = shipItemsService.list(new LambdaQueryWrapper<PjShipItems>().eq(PjShipItems::getIsDeleted, 0)
 				.in(PjShipItems::getPid, ids));
-			for (PjShip item : pages.getRecords()){
+			for (PjShip item : pages.getRecords()) {
 				if (ObjectUtil.isNotEmpty(userList)) {
 					if (ObjectUtils.isNotNull(item.getUpdateUser())) {
 						userList.stream().filter(e -> e.getId().equals(item.getUpdateUser()))
@@ -455,6 +460,9 @@ 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());
+		}
 		List<PjShipStockDetails> pages = shipService.stockDataDetails(pjShipStockDetails);
 		for (PjShipStockDetails item : pages) {
 			if ("调拨".equals(item.getBizTypeName())) {

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

@@ -19,6 +19,7 @@ package org.springblade.salesPart.ship.controller;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -38,6 +39,7 @@ import org.springblade.salesPart.entity.PjShipItems;
 import org.springblade.salesPart.enums.OrderTypeEnum;
 import org.springblade.salesPart.ship.service.IShipItemsService;
 import org.springblade.salesPart.ship.service.IShipService;
+import org.springblade.salesPart.util.ParameterUtils;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.web.bind.annotation.*;
@@ -120,6 +122,9 @@ public class ShipReturnsController extends BladeController {
 				lambdaQueryWrapper.eq(PjShip::getCustomerId, AuthUtil.getUserId());
 			}
 		}
+		if (ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjShip::getStorageId, ParameterUtils.getStorageId());
+		}
 		IPage<PjShip> pages = shipService.page(Condition.getPage(query), lambdaQueryWrapper);
 
 		StringBuilder updateUserIds = new StringBuilder();//修改人id拼接

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

@@ -52,6 +52,12 @@ import org.springblade.salesPart.statistics.mapper.StatisticsMapper;
 import org.springblade.salesPart.statistics.service.IStatisticsService;
 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;
 
@@ -2121,6 +2127,10 @@ public class StatisticsServiceImpl implements IStatisticsService {
 		int year = selectedDate.getYear();
 		int nowMonth = selectedDate.getYear() == now.getYear() ? now.getMonthValue() : 12;
 		YearMonth yearMonth;
+		Long storageId = null;
+		if (ParameterUtils.whetherDatabaseSharding()) {
+			storageId = ParameterUtils.getStorageId();
+		}
 		// 遍历每个月份
 		for (int month = NumberEnum.ONE.number; month <= nowMonth; month++) {
 			// 构建对应年份和月份的日期
@@ -2128,7 +2138,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);
+			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"));

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

@@ -45,6 +45,7 @@ import org.springblade.salesPart.goods.service.IGoodsDescService;
 import org.springblade.salesPart.goods.service.IGoodsFilesService;
 import org.springblade.salesPart.productLaunch.service.IProductLaunchService;
 import org.springblade.salesPart.stock.service.IStockDescService;
+import org.springblade.salesPart.util.ParameterUtils;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.web.bind.annotation.*;
 
@@ -103,8 +104,6 @@ public class StockDescController extends BladeController {
 			.eq(PjStockDesc::getSalesCompanyId, AuthUtil.getDeptId())//公司
 			.like(ObjectUtil.isNotEmpty(stockDesc.getCode()), PjStockDesc::getCode, stockDesc.getCode())
 			.like(ObjectUtil.isNotEmpty(stockDesc.getTypeno()), PjStockDesc::getTypeno, stockDesc.getTypeno())
-			.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId())
-			.like(ObjectUtil.isNotEmpty(stockDesc.getStorageName()), PjStockDesc::getStorageName, stockDesc.getStorageName())
 			.eq(ObjectUtil.isNotEmpty(stockDesc.getBrandId()), PjStockDesc::getBrandId, stockDesc.getBrandId())
 			.eq(ObjectUtil.isNotEmpty(stockDesc.getBrandName()), PjStockDesc::getBrandName, stockDesc.getBrandName())
 			.eq(ObjectUtil.isNotEmpty(stockDesc.getGoodsTypeId()), PjStockDesc::getGoodsTypeId, stockDesc.getGoodsTypeId())
@@ -113,6 +112,12 @@ 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());
+		}
 		List<PjProductLaunch> pjProductLaunchList = new ArrayList<>();
 		if (ObjectUtil.isNotEmpty(stockDesc.getCname())) {
 			List<PjGoodsDesc> pjGoodsDescs = new ArrayList<>();
@@ -275,7 +280,6 @@ public class StockDescController extends BladeController {
 			.eq(PjStockDesc::getSalesCompanyId, AuthUtil.getDeptId())//公司
 			.like(ObjectUtil.isNotEmpty(stockDesc.getCode()), PjStockDesc::getCode, stockDesc.getCode())
 			.like(ObjectUtil.isNotEmpty(stockDesc.getTypeno()), PjStockDesc::getTypeno, stockDesc.getTypeno())
-			.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId())
 			.eq(ObjectUtil.isNotEmpty(stockDesc.getBrandId()), PjStockDesc::getBrandId, stockDesc.getBrandId())
 			.eq(ObjectUtil.isNotEmpty(stockDesc.getGoodsTypeId()), PjStockDesc::getGoodsTypeId, stockDesc.getGoodsTypeId())
 			.like(ObjectUtil.isNotEmpty(stockDesc.getDot()), PjStockDesc::getDot, stockDesc.getDot())
@@ -283,6 +287,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());
+		}
 		if (ObjectUtil.isNotEmpty(stockDesc.getCname())) {
 			List<PjGoodsDesc> pjGoodsDescs = goodsDescService.list(new LambdaQueryWrapper<PjGoodsDesc>()
 				.eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
@@ -338,6 +347,9 @@ public class StockDescController extends BladeController {
 		}
 		stockDesc.setSalesCompanyIds(AuthUtil.getDeptId());
 		if ("0".equals(stockDesc.getWhether())) {
+			if (ParameterUtils.whetherDatabaseSharding()) {
+				stockDesc.setStorageId(ParameterUtils.getStorageId());
+			}
 			IPage<PjStockDesc> pages = stockDescService.selectStockDescPage(Condition.getPage(query), stockDesc);
 			for (PjStockDesc item : pages.getRecords()) {
 				if (ObjectUtils.isNotNull(item.getIntegral()) && new BigDecimal("0.00").compareTo(item.getIntegral()) == 0) {
@@ -421,7 +433,6 @@ public class StockDescController extends BladeController {
 			.eq(PjStockDesc::getSalesCompanyId, AuthUtil.getDeptId())//公司
 			.like(ObjectUtil.isNotEmpty(stockDesc.getCode()), PjStockDesc::getCode, stockDesc.getCode())
 			.like(ObjectUtil.isNotEmpty(stockDesc.getTypeno()), PjStockDesc::getTypeno, stockDesc.getTypeno())
-			.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId())
 			.eq(ObjectUtil.isNotEmpty(stockDesc.getBrandId()), PjStockDesc::getBrandId, stockDesc.getBrandId())
 			.eq(ObjectUtil.isNotEmpty(stockDesc.getGoodsTypeId()), PjStockDesc::getGoodsTypeId, stockDesc.getGoodsTypeId())
 			.like(ObjectUtil.isNotEmpty(stockDesc.getDot()), PjStockDesc::getDot, stockDesc.getDot())
@@ -429,6 +440,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());
+		}
 		if (ObjectUtil.isNotEmpty(stockDesc.getCname())) {
 			List<PjGoodsDesc> pjGoodsDescs = goodsDescService.list(new LambdaQueryWrapper<PjGoodsDesc>()
 				.eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
@@ -492,7 +508,6 @@ public class StockDescController extends BladeController {
 			.eq(PjStockDesc::getSalesCompanyId, AuthUtil.getDeptId())//公司
 			.like(ObjectUtil.isNotEmpty(stockDesc.getCode()), PjStockDesc::getCode, stockDesc.getCode())
 			.like(ObjectUtil.isNotEmpty(stockDesc.getTypeno()), PjStockDesc::getTypeno, stockDesc.getTypeno())
-			.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId())
 			.eq(ObjectUtil.isNotEmpty(stockDesc.getBrandId()), PjStockDesc::getBrandId, stockDesc.getBrandId())
 			.eq(ObjectUtil.isNotEmpty(stockDesc.getGoodsTypeId()), PjStockDesc::getGoodsTypeId, stockDesc.getGoodsTypeId())
 			.like(ObjectUtil.isNotEmpty(stockDesc.getDot()), PjStockDesc::getDot, stockDesc.getDot())
@@ -500,6 +515,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());
+		}
 		List<PjProductLaunch> pjProductLaunchList = new ArrayList<>();
 		if (ObjectUtil.isNotEmpty(stockDesc.getCname())) {
 			List<PjGoodsDesc> pjGoodsDescs = new ArrayList<>();
@@ -643,10 +663,14 @@ public class StockDescController extends BladeController {
 		lambdaQueryWrapper.eq(PjStockDesc::getTenantId, AuthUtil.getTenantId())
 			.eq(PjStockDesc::getIsDeleted, 0)
 			.eq(PjStockDesc::getSalesCompanyId, AuthUtil.getDeptId())//公司
-			.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId())
 			.eq(ObjectUtil.isNotEmpty(stockDesc.getBrandId()), PjStockDesc::getBrandId, stockDesc.getBrandId())
 			.apply("balance_quantity != 0")
 			.orderByAsc(PjStockDesc::getCreateTime);
+		if (ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjStockDesc::getStorageId, ParameterUtils.getStorageId());
+		}else{
+			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
+		}
 		List<PjStockDesc> list = stockDescService.list(lambdaQueryWrapper);
 		List<StockBrandExcel> mapList = new ArrayList<>();
 		if (!list.isEmpty()) {
@@ -762,10 +786,14 @@ public class StockDescController extends BladeController {
 		lambdaQueryWrapper.eq(PjStockDesc::getTenantId, AuthUtil.getTenantId())
 			.eq(PjStockDesc::getIsDeleted, 0)
 			.eq(PjStockDesc::getSalesCompanyId, AuthUtil.getDeptId())//公司
-			.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId())
 			.eq(ObjectUtil.isNotEmpty(stockDesc.getBrandId()), PjStockDesc::getBrandId, stockDesc.getBrandId())
 			.apply("balance_quantity != 0")
 			.orderByAsc(PjStockDesc::getCreateTime);
+		if (ParameterUtils.whetherDatabaseSharding()) {
+			lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjStockDesc::getStorageId, ParameterUtils.getStorageId());
+		}else{
+			lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId());
+		}
 		List<PjStockDesc> list = stockDescService.list(lambdaQueryWrapper);
 		List<StockBrandExcel> stockBrandExcelList = new ArrayList<>();
 		if (!list.isEmpty()) {
@@ -883,12 +911,16 @@ public class StockDescController extends BladeController {
 		lambdaQueryWrapper.eq(PjStockDesc::getTenantId, AuthUtil.getTenantId())
 			.eq(PjStockDesc::getIsDeleted, 0)
 			.eq(PjStockDesc::getSalesCompanyId, AuthUtil.getDeptId())//公司
-			.eq(ObjectUtils.isNotNull(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId())
 			.eq(PjStockDesc::getGoodsId, stockDesc.getGoodsId())
 			.eq(ObjectUtils.isNotNull(stockDesc.getDot()), PjStockDesc::getDot, stockDesc.getDot());
 		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());
+		}
 		List<PjStockDesc> list = stockDescService.list(lambdaQueryWrapper);
 		return R.data(list);
 	}
@@ -904,11 +936,15 @@ public class StockDescController extends BladeController {
 		lambdaQueryWrapper.eq(PjStockDesc::getTenantId, AuthUtil.getTenantId())
 			.eq(PjStockDesc::getIsDeleted, 0)
 			.eq(PjStockDesc::getSalesCompanyId, AuthUtil.getDeptId())//公司
-			.eq(ObjectUtils.isNotNull(stockDesc.getStorageId()), PjStockDesc::getStorageId, stockDesc.getStorageId())
 			.eq(PjStockDesc::getGoodsId, stockDesc.getGoodsId());
 		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());
+		}
 		List<PjStockDesc> list = stockDescService.list(lambdaQueryWrapper);
 		return R.data(list);
 	}
@@ -984,7 +1020,7 @@ public class StockDescController extends BladeController {
 		if (ObjectUtils.isNull(status) || "0".equals(status)) {
 			lambdaQueryWrapper.gt(PjStockDesc::getBalanceQuantity, 0);
 		}
-		String management = iSysClient.getParamService("whether.branch.management");
+		/*String management = iSysClient.getParamService("whether.branch.management");
 		if (ObjectUtils.isNotNull(management) && "1".equals(management)) {
 			if (ObjectUtils.isNotNull(corpsDesc.getDeliveryWarehouseId())) {
 				lambdaQueryWrapper.eq(PjStockDesc::getStorageId, corpsDesc.getDeliveryWarehouseId());
@@ -995,6 +1031,11 @@ public class StockDescController extends BladeController {
 		} else {
 			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());
 		}
 		PjProductLaunch productLaunch = null;
 		if (ObjectUtil.isNotEmpty(stockDesc.getCname())) {

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

@@ -47,7 +47,7 @@ public interface StockDescMapper extends BaseMapper<PjStockDesc> {
 	 * @param stockDesc
 	 * @return
 	 */
-	List<PjStockDesc> getStockList(PjStockDesc stockDesc);
+	List<PjStockDesc> getStockList(@Param("stockDesc")PjStockDesc stockDesc);
 
 	List<PjStockDesc> selectStockDescPageZero(IPage<PjStockDesc> page, @Param("stockDesc")PjStockDesc stockDesc);
 

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

@@ -72,6 +72,9 @@
             <if test="stockDesc.brandId != null and stockDesc.brandId != ''">
                 and psd.brand_id = #{stockDesc.brandId}
             </if>
+            <if test="stockDesc.storageId != null and stockDesc.storageId != ''">
+                and 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
                 CONCAT(CONCAT('%', #{stockDesc.cname}), '%'))
@@ -145,6 +148,9 @@
             <if test="stockDesc.brandId != null and stockDesc.brandId != ''">
                 and brand_id = #{stockDesc.brandId}
             </if>
+            <if test="stockDesc.storageId != null and stockDesc.storageId != ''">
+                and storage_id = #{stockDesc.storageId}
+            </if>
             <if test='stockDesc.cname != null and stockDesc.cname != ""'>
                 and cname like CONCAT(CONCAT('%', #{stockDesc.cname}), '%')
             </if>

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

@@ -30,6 +30,7 @@ import org.springblade.salesPart.goods.mapper.GoodsDescMapper;
 import org.springblade.salesPart.productLaunch.mapper.ProductLaunchMapper;
 import org.springblade.salesPart.stock.mapper.StockDescMapper;
 import org.springblade.salesPart.stock.service.IStockDescService;
+import org.springblade.salesPart.util.ParameterUtils;
 import org.springframework.stereotype.Service;
 
 import java.util.Date;
@@ -51,6 +52,9 @@ public class StockDescServiceImpl extends ServiceImpl<StockDescMapper, PjStockDe
 
 	@Override
 	public IPage<PjStockDesc> selectStockDescPage(IPage<PjStockDesc> page, PjStockDesc stockDesc) {
+		if (ParameterUtils.whetherDatabaseSharding()) {
+			stockDesc.setStorageId(ParameterUtils.getStorageId());
+		}
 		return page.setRecords(baseMapper.selectStockDescPage(page, stockDesc));
 	}
 
@@ -60,6 +64,9 @@ public class StockDescServiceImpl extends ServiceImpl<StockDescMapper, PjStockDe
 	@Override
 	public List<PjStockDesc> getStockList(PjStockDesc stockDesc) {
 		stockDesc.setTenantId(AuthUtil.getTenantId());
+		if (ParameterUtils.whetherDatabaseSharding()) {
+			stockDesc.setStorageId(ParameterUtils.getStorageId());
+		}
 		return baseMapper.getStockList(stockDesc);
 	}
 

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

@@ -0,0 +1,50 @@
+package org.springblade.salesPart.util;
+
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.SpringUtil;
+import org.springblade.system.feign.ISysClient;
+import org.springblade.system.user.entity.User;
+import org.springblade.system.user.feign.IUserClient;
+
+/**
+ * @author Rain
+ */
+public class ParameterUtils {
+
+	private static final ISysClient sysClient;
+	private static final IUserClient userClient;
+
+
+	static {
+		sysClient = SpringUtil.getBean(ISysClient.class);
+		userClient = SpringUtil.getBean(IUserClient.class);
+	}
+
+
+	public static Boolean whetherDatabaseSharding() {
+		String status = sysClient.getParamService("whether.branch.management");
+		boolean whetherDatabaseSharding = false;
+		if (AuthUtil.getUserRole().contains("admin")){
+			return whetherDatabaseSharding;
+		}
+		if ("1".equals(status)) {
+			whetherDatabaseSharding = true;
+		}
+		return whetherDatabaseSharding;
+	}
+
+	public static Long getStorageId() {
+		Long storageId = null;
+		if (AuthUtil.getUserRole().contains("admin")){
+			return storageId;
+		}
+		R<User> userR = userClient.userInfoById(AuthUtil.getUserId());
+		if (userR.isSuccess() && ObjectUtils.isNotNull(userR.getData())) {
+			storageId = userR.getData().getStorageId();
+		}
+		return storageId;
+	}
+
+}

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

@@ -95,10 +95,13 @@ public class WxParamUtil {
 			String status = iSysClient.getParamService(CommonEnum.WHETHER_BRANCH_MANAGEMENT.info);
 			managementIf:
 			if (CommonEnum.ONE.info.equals(status) && ObjectUtils.isNotNull(corpsDesc.getDeliveryWarehouseId())) {
-				List<PjStockDesc> stockDescList = stockDescService.list(new LambdaQueryWrapper<PjStockDesc>()
-					.eq(PjStockDesc::getTenantId, bladeUser.getTenantId())
-					.eq(PjStockDesc::getIsDeleted, 0)
-					.eq(PjStockDesc::getStorageId, corpsDesc.getDeliveryWarehouseId()));
+				LambdaQueryWrapper<PjStockDesc> lambdaQueryWrapper = new LambdaQueryWrapper<PjStockDesc>();
+				lambdaQueryWrapper.eq(PjStockDesc::getTenantId, bladeUser.getTenantId())
+					.eq(PjStockDesc::getIsDeleted, 0);
+				if (ParameterUtils.whetherDatabaseSharding()) {
+					lambdaQueryWrapper.eq(ObjectUtils.isNotNull(ParameterUtils.getStorageId()), PjStockDesc::getStorageId, ParameterUtils.getStorageId());
+				}
+				List<PjStockDesc> stockDescList = stockDescService.list(lambdaQueryWrapper);
 				if (stockDescList.isEmpty()) {
 					break managementIf;
 				}