Browse Source

更新代码

bai 1 week ago
parent
commit
b8045e1477

+ 56 - 41
blade-service/blade-factory/src/main/java/org/springblade/factory/api/controller/SalesOrderController.java

@@ -265,13 +265,6 @@ public class SalesOrderController {
 				PcBladeOrderVO vo = new PcBladeOrderVO();
 				// 方案1:使用Spring的BeanUtils(要求VO和实体类属性名一致,大小写敏感)
 				BeanUtils.copyProperties(order, vo);
-
-				// 方案2:如果属性名不一致,手动赋值(示例)
-				// vo.setOrderId(order.getId());
-				// vo.setOrderCode(order.getOrderCode());
-				// vo.setCustomerName(order.getCustomerName());
-				// ... 其他字段同理
-
 				return vo;
 			})
 			.collect(Collectors.toList());
@@ -285,51 +278,74 @@ public class SalesOrderController {
 	}
 
 
-
 	/**
-	 * 获取访问人自己的订单列表
-	 * @param orderParams
-	 * @param query
-	 * @param bladeUser
-	 * @return
+	 * 统一订单查询接口(支持物料ID查询和个人订单查询)
+	 * @param orderParams 查询参数集合
+	 * @param query 分页参数
+	 * @param bladeUser 用户信息
+	 * @return 分页订单VO列表
 	 */
 	@GetMapping("/getOrderList")
 	public R<IPage<PcBladeOrderVO>> getOrderList(
 		@ApiIgnore @RequestParam Map<String, Object> orderParams,
 		Query query,
 		BladeUser bladeUser) {
+
 		// 1. 构建基础查询条件
 		QueryWrapper<PcBladeOrder> queryWrapper = Condition.getQueryWrapper(orderParams, PcBladeOrder.class);
 
-		// 2. 增加当前用户的订单过滤条件(根据实体类,使用customerId关联用户)
-		// 假设BladeUser的id对应PcBladeOrder的customerId
-		Long userId = AuthUtil.getUserId();
-		queryWrapper.eq("CUSTOMER_ID", userId);
-
-
+		// 2. 处理物料ID查询逻辑
+		List<Long> orderIdList = null;
+		if (orderParams.containsKey("itemId") && StringUtils.isNotBlank(orderParams.get("itemId").toString())) {
+			try {
+				Long itemId = Long.parseLong(orderParams.get("itemId").toString());
+
+				// 根据物料ID查询关联的订单项
+				QueryWrapper<PcBladeOrderItem> orderItemWrapper = new QueryWrapper<>();
+				orderItemWrapper.eq("ITEM_ID", itemId);
+				List<PcBladeOrderItem> orderItemList = orderItemService.list(orderItemWrapper);
+
+				// 提取订单ID列表(去重)
+				orderIdList = orderItemList.stream()
+					.map(PcBladeOrderItem::getOrderId)
+					.distinct()
+					.collect(Collectors.toList());
+
+				// 如果没有关联订单,直接返回空结果
+				if (orderIdList.isEmpty()) {
+					IPage<PcBladeOrderVO> emptyPage = new Page<>(query.getCurrent(), query.getSize());
+					emptyPage.setRecords(Collections.emptyList());
+					emptyPage.setTotal(0);
+					return R.data(emptyPage, "未查询到该物料关联的订单");
+				}
+
+				// 加入订单ID过滤条件
+				queryWrapper.in("ID", orderIdList);
+			} catch (NumberFormatException e) {
+				return R.fail("物料ID(itemId)格式错误");
+			}
+		} else {
+			// 3. 非物料查询时,应用个人订单过滤(仅查看自己的订单)
+			Long userId = AuthUtil.getUserId();
+			queryWrapper.eq("CUSTOMER_ID", userId);
+		}
 
-		// 3. 处理查询参数,与selectPcBladeOrderListPro方法逻辑保持一致
+		// 4. 处理通用查询参数
 		// 订单编号模糊查询
 		if (orderParams.containsKey("orderCode") && StringUtils.isNotBlank(orderParams.get("orderCode").toString())) {
 			queryWrapper.like("order_code", orderParams.get("orderCode"));
 		}
 
-		// 收货人姓名模糊查询
+		// 收货人信息查询
 		if (orderParams.containsKey("receiverName") && StringUtils.isNotBlank(orderParams.get("receiverName").toString())) {
 			queryWrapper.like("receiver_name", orderParams.get("receiverName"));
 		}
-
-		// 收货人手机号模糊查询
 		if (orderParams.containsKey("receiverPhone") && StringUtils.isNotBlank(orderParams.get("receiverPhone").toString())) {
 			queryWrapper.like("receiver_phone", orderParams.get("receiverPhone"));
 		}
-
-		// 收货人地址模糊查询
 		if (orderParams.containsKey("receiverAddress") && StringUtils.isNotBlank(orderParams.get("receiverAddress").toString())) {
 			queryWrapper.like("receiver_address", orderParams.get("receiverAddress"));
 		}
-
-		// 省市区查询
 		if (orderParams.containsKey("receiverRegion") && StringUtils.isNotBlank(orderParams.get("receiverRegion").toString())) {
 			queryWrapper.like("receiver_region", orderParams.get("receiverRegion"));
 		}
@@ -340,37 +356,33 @@ public class SalesOrderController {
 				Integer orderType = Integer.parseInt(orderParams.get("orderType").toString());
 				queryWrapper.eq("order_type", orderType);
 			} catch (NumberFormatException e) {
-				// 处理参数格式错误
+				// 忽略格式错误的参数
 			}
 		}
 
-		// 精确查询状态(0草稿 1已提交 2已确认 3部分发货 4已完成 5已取消)
+		// 订单状态查询
 		if (orderParams.containsKey("status") && StringUtils.isNotBlank(orderParams.get("status").toString())) {
 			try {
 				Integer status = Integer.parseInt(orderParams.get("status").toString());
 				queryWrapper.eq("status", status);
 			} catch (NumberFormatException e) {
-				// 处理状态参数不是数字的情况
+				// 忽略格式错误的参数
 			}
 		}
 
-		// 时间范围查询 - 创建时间
+		// 时间范围查询
 		if (orderParams.containsKey("createTimeStart") && StringUtils.isNotBlank(orderParams.get("createTimeStart").toString())) {
 			queryWrapper.ge("create_time", orderParams.get("createTimeStart"));
 		}
 		if (orderParams.containsKey("createTimeEnd") && StringUtils.isNotBlank(orderParams.get("createTimeEnd").toString())) {
 			queryWrapper.le("create_time", orderParams.get("createTimeEnd"));
 		}
-
-		// 时间范围查询 - 提交时间
 		if (orderParams.containsKey("submitTimeStart") && StringUtils.isNotBlank(orderParams.get("submitTimeStart").toString())) {
 			queryWrapper.ge("submit_time", orderParams.get("submitTimeStart"));
 		}
 		if (orderParams.containsKey("submitTimeEnd") && StringUtils.isNotBlank(orderParams.get("submitTimeEnd").toString())) {
 			queryWrapper.le("submit_time", orderParams.get("submitTimeEnd"));
 		}
-
-		// 时间范围查询 - 确认时间
 		if (orderParams.containsKey("confirmTimeStart") && StringUtils.isNotBlank(orderParams.get("confirmTimeStart").toString())) {
 			queryWrapper.ge("confirm_time", orderParams.get("confirmTimeStart"));
 		}
@@ -381,18 +393,18 @@ public class SalesOrderController {
 		// 排序 - 按创建时间降序
 		queryWrapper.orderByDesc("create_time");
 
-		// 4. 执行分页查询
+		// 5. 执行分页查询
 		IPage<PcBladeOrder> pages = orderService.page(Condition.getPage(query), queryWrapper);
 
-		// 5. 关联查询订单详情
+		// 6. 关联查询订单详情
 		pages.getRecords().forEach(item -> {
-			PcBladeOrderItem pcBladeOrderItem = new PcBladeOrderItem();
-			pcBladeOrderItem.setOrderId(item.getId());
-			List<PcBladeOrderItem> pcBladeOrderItemList = orderItemService.selectPcBladeOrderItemList(pcBladeOrderItem);
+			QueryWrapper<PcBladeOrderItem> queryWrapper1 = new QueryWrapper<>();
+			queryWrapper1.eq("order_id", item.getId());
+			List<PcBladeOrderItem> pcBladeOrderItemList = orderItemService.list(queryWrapper1);
 			item.setPcBladeOrderItemList(pcBladeOrderItemList);
 		});
 
-		// 6. 转换VO并返回
+		// 7. 转换VO并返回
 		return R.data(PcBladeOrderWrapper.build().pageVO(pages));
 	}
 
@@ -741,6 +753,9 @@ public class SalesOrderController {
 			return R.fail("未获取到登录用户信息,请先登录");
 		}
 
+		// TODO 修改---重要修复   userID需要修改成CUSTOMER_ID传参
+
+
 		// 构建查询条件
 		QueryWrapper<PcBladeUserLinkGoods> queryWrapper = new QueryWrapper<>();
 		queryWrapper.eq("CUSTOMER_ID", userId)

+ 12 - 2
blade-service/blade-factory/src/main/java/org/springblade/factory/service/impl/PcBladeSalesForecastMainServiceImpl.java

@@ -17,6 +17,8 @@ import org.springblade.factory.mapper.PcBladeSalesForecastSummaryMapper;
 import org.springblade.factory.service.PcBladeSalesForecastMainService;
 import org.springblade.factory.service.PcBladeSalesForecastSummaryService;
 import org.springblade.factory.service.ZcrmViewCustomerSelService;
+import org.springblade.system.user.entity.User;
+import org.springblade.system.user.feign.IUserClient;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
@@ -44,6 +46,10 @@ public class PcBladeSalesForecastMainServiceImpl extends BaseServiceImpl<PcBlade
 	private PcBladeSalesForecastMainMapper pcBladeSalesForecastMainMapper;
 
 	@Autowired
+	private IUserClient userClient;
+
+
+	@Autowired
 	@Lazy
 	public void setPcBladeSalesForecastSummaryService(PcBladeSalesForecastSummaryService pcBladeSalesForecastSummaryService) {
 		this.pcBladeSalesForecastSummaryService = pcBladeSalesForecastSummaryService;
@@ -164,13 +170,17 @@ public class PcBladeSalesForecastMainServiceImpl extends BaseServiceImpl<PcBlade
 				return R.fail("批量添加失败:主表数据不能为空");
 			}
 
-			Long currentUserId = AuthUtil.getUserId();
+			Long id = AuthUtil.getUserId();
+			R<User> userInfo = userClient.userInfoById(id);
+			if (userInfo.getData() == null || userInfo.getData().getCustomerId() == null) {
+				return R.fail("用户不存在");
+			}
 
 			if (pcBladeSalesForecastMain.getApprovalStatus() == null) {
 				pcBladeSalesForecastMain.setApprovalStatus(0);
 			}
 
-			pcBladeSalesForecastMain.setCustomerId(currentUserId);
+			pcBladeSalesForecastMain.setCustomerId(userInfo.getData().getCustomerId());
 			ViewCustomerSel zcrmViewCustomerSel = customerSelService.selectZcrmViewCustomerSelByCustomerId(pcBladeSalesForecastMain.getCustomerId());
 			pcBladeSalesForecastMain.setCustomerCode(zcrmViewCustomerSel.getCustomerCode());
 			pcBladeSalesForecastMain.setCustomerName(zcrmViewCustomerSel.getCustomerName());