|
|
@@ -809,6 +809,7 @@ public class KwoTradeOrderService {
|
|
|
unitInfos.add(unit);
|
|
|
});
|
|
|
detail.setUnitInfo(unitInfos);
|
|
|
+ populateAgentUnitInfo(detail, unitInfos);
|
|
|
}
|
|
|
//地址信息
|
|
|
List<KwoTradeOrderAddress> addressList = kwoTradeOrderAddressService.getByOrderId(id);
|
|
|
@@ -905,6 +906,50 @@ public class KwoTradeOrderService {
|
|
|
return detail;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 填充订单详情中的供应商及代理单位信息。
|
|
|
+ * <p>
|
|
|
+ * 业务逻辑说明:
|
|
|
+ * 1. 校验入参有效性,若订单详情对象为空或单位列表为空,则直接返回。
|
|
|
+ * 2. 从单位列表中筛选出类型为“供应方”(unitType="2")的单位记录。
|
|
|
+ * 3. 将首个匹配的供应方单位信息填充至订单详情的供应商字段(供应商ID、名称、电话)。
|
|
|
+ * 4. 若订单标记为代理订单(agentFlag=1),则将同样的供应方单位信息同时填充至代理字段(代理ID、名称、电话)。
|
|
|
+ * <p>
|
|
|
+ * 注意:该方法为静态私有方法,仅用于内部数据组装,不涉及数据库操作或远程调用。
|
|
|
+ *
|
|
|
+ * @param detail 订单详情响应对象,用于接收填充后的数据
|
|
|
+ * @param unitInfos 订单关联的单位信息列表
|
|
|
+ */
|
|
|
+ private static void populateAgentUnitInfo(OrderDetailRes detail, List<UnitInfoDetailRes> unitInfos) {
|
|
|
+ // 参数预校验:确保订单详情对象和单位列表非空,避免后续处理出现空指针异常
|
|
|
+ if (Objects.isNull(detail) || CollUtil.isEmpty(unitInfos)) {
|
|
|
+ log.debug("填充代理单位信息跳过:detail为空或unitInfos为空");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 流式处理:过滤非空单位 -> 筛选供应方类型(unitType="2") -> 获取第一个匹配项
|
|
|
+ unitInfos.stream()
|
|
|
+ .filter(Objects::nonNull)
|
|
|
+ .filter(unit -> String.valueOf(NumberConstant.TWO).equals(unit.getUnitType()))
|
|
|
+ .findFirst()
|
|
|
+ .ifPresent(unit -> {
|
|
|
+ log.debug("找到供应方单位信息,entId={}, firmName={}", unit.getEntId(), unit.getFirmName());
|
|
|
+
|
|
|
+ // 设置基础供应商信息
|
|
|
+ detail.setSupplierEntId(unit.getEntId());
|
|
|
+ detail.setSupplierFirmName(unit.getFirmName());
|
|
|
+ detail.setSupplierPhone(unit.getPhone());
|
|
|
+
|
|
|
+ // 若为代理订单,则同时设置代理信息(通常代理即为供应方)
|
|
|
+ if (Objects.equals(detail.getAgentFlag(), Global.YES)) {
|
|
|
+ log.debug("订单为代理订单,同步设置代理单位信息");
|
|
|
+ detail.setAgentEntId(unit.getEntId());
|
|
|
+ detail.setAgentFirmName(unit.getFirmName());
|
|
|
+ detail.setAgentPhone(unit.getPhone());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* @desc: 修改订单
|
|
|
* @author: yzc
|