From c95fdfc067213d2fe1f635cd382c9b7590b5c12a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=B5=B5=E8=BE=89?= <2830717623@qq.com>
Date: Tue, 11 Aug 2026 11:50:40 +0800
Subject: [PATCH 1/7] =?UTF-8?q?=E5=A7=94=E6=89=98=E6=96=B9=E6=9F=A5?=
=?UTF-8?q?=E8=AF=A2=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
mhd-user-center/src/main/resources/mapper/UserMapper.xml | 6 +++++-
.../src/main/resources/mapper/UserShipperMapper.xml | 7 ++++++-
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/mhd-user-center/src/main/resources/mapper/UserMapper.xml b/mhd-user-center/src/main/resources/mapper/UserMapper.xml
index 1ff9eff31..6caa17751 100644
--- a/mhd-user-center/src/main/resources/mapper/UserMapper.xml
+++ b/mhd-user-center/src/main/resources/mapper/UserMapper.xml
@@ -781,7 +781,11 @@
/*组织ID - 数据隔离:南光组织(organizationId=2827)查询全部,其他组织查询自己组织的数据*/
AND (
- u.organization_id = #{organizationId}
+ u.organization_id = #{organizationId}
+ OR b.org_code LIKE concat('%"code":"', #{organizationId}, '"%')
+ OR b.org_code LIKE concat('%code:', #{organizationId}, '%')
+ OR b.org_code LIKE concat('%code: ', #{organizationId}, '%')
+ OR b.org_code LIKE concat('%"code":', #{organizationId}, '%')
)
AND u.organization_name IS NOT NULL
diff --git a/mhd-user-center/src/main/resources/mapper/UserShipperMapper.xml b/mhd-user-center/src/main/resources/mapper/UserShipperMapper.xml
index ee3f2f01b..02112d51b 100644
--- a/mhd-user-center/src/main/resources/mapper/UserShipperMapper.xml
+++ b/mhd-user-center/src/main/resources/mapper/UserShipperMapper.xml
@@ -378,9 +378,14 @@
and b.parent_shipper_id = #{parentShipperId}
/*用户组织ID*/
+ /*用户组织ID*/
AND (
- a.organization_id = #{organizationId}
+ a.organization_id = #{organizationId}
+ OR b.org_code LIKE concat('%"code":"', #{organizationId}, '"%')
+ OR b.org_code LIKE concat('%code:', #{organizationId}, '%')
+ OR b.org_code LIKE concat('%code: ', #{organizationId}, '%')
+ OR b.org_code LIKE concat('%"code":', #{organizationId}, '%')
)
/*组织名称*/
From 064a87e751ad2972cd68af001daeedf26b1e9c64 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com>
Date: Tue, 11 Aug 2026 18:15:58 +0800
Subject: [PATCH 2/7] =?UTF-8?q?=E5=A7=94=E6=89=98=E6=96=B9=E5=AF=BC?=
=?UTF-8?q?=E5=85=A5=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../UserShipperApplicationService.java | 68 ++++++++++---------
.../service/UserShipperDomainService.java | 2 +-
.../src/main/resources/bootstrap.yml | 8 +--
.../resources/mapper/UserShipperMapper.xml | 21 ++++--
4 files changed, 56 insertions(+), 43 deletions(-)
diff --git a/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java b/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java
index b84ff3401..3c6fdfd18 100644
--- a/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java
+++ b/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java
@@ -161,11 +161,22 @@ public class UserShipperApplicationService {
// 先保存前端传递的 organizationId(如果存在)
Long frontendOrganizationId = userShipperDO.getOrganizationId();
-
+
// 获取当前登录用户的组织信息
Long loginUserOrganizationId = userPo.getOrganizationId();
Long topOrganizationId = userPo.getTopOrganizationId();
-
+
+ // 如果前端传了 orgCode(组织ID),直接按 org_code 过滤查询委托方,不覆盖组织条件
+ // orgCode 匹配 user_shipper.org_code JSON 数组中的 code 字段,用于精确查询委托方
+ if (StringUtils.isNotBlank(userShipperDO.getOrgCode())) {
+ // 清空 organizationId / topOrganizationId,避免被数据权限覆盖逻辑拦截 orgCode 已授权的委托方
+ userShipperDO.setOrganizationId(null);
+ userShipperDO.setTopOrganizationId(null);
+ log.info("托运人列表查询 - 按 orgCode 查询:orgCode={}", userShipperDO.getOrgCode());
+ List userShipperList = userShipperDomainService.userShipperList(userShipperDO);
+ return processShipperList(userShipperList);
+ }
+
// 数据权限:根据 organizationId 来设置查询权限
// 当前登录用户的 organizationId 为 2827 时,可查全部组织数据;其他组织只能查自己
if (loginUserOrganizationId != null && loginUserOrganizationId.equals(2827L)) {
@@ -184,32 +195,13 @@ public class UserShipperApplicationService {
log.info("托运人列表查询 - 南光组织查询所有组织:不设置组织过滤条件");
}
} else {
- // 其他组织:设置 organizationId,只查询当前组织的数据
- // 其他组织只能查询自己组织的数据,不能查询其他组织的数据
- if (frontendOrganizationId != null) {
- // 前端传递了 organizationId,验证是否与当前登录用户的组织ID一致
- if (!frontendOrganizationId.equals(loginUserOrganizationId)) {
- // 前端传递了其他组织的 organizationId,强制使用当前登录用户的组织ID,防止越权查询
- log.warn("托运人列表查询 - 前端传递的组织ID {} 与当前登录用户的组织ID {} 不一致,使用当前登录用户的组织ID进行过滤",
- frontendOrganizationId, loginUserOrganizationId);
- userShipperDO.setOrganizationId(loginUserOrganizationId);
- if (frontendOrganizationId.equals(2827L)){
- userShipperDO.setOrganizationId(null);
- }
- } else {
- // 前端传递的 organizationId 与当前登录用户的组织ID一致,使用前端传递的值
- userShipperDO.setOrganizationId(frontendOrganizationId);
- }
- if (topOrganizationId != null) {
- userShipperDO.setTopOrganizationId(topOrganizationId);
- }
- } else {
- // 前端没有传递 organizationId,使用当前登录用户的组织ID
- userShipperDO.setOrganizationId(loginUserOrganizationId);
- if (topOrganizationId != null) {
- userShipperDO.setTopOrganizationId(topOrganizationId);
- }
- }
+ // 其他组织:设置 organizationId 为当前登录组织ID。
+ // 查询条件为:a.organization_id = 本组织 OR b.org_code LIKE 本组织ID
+ // 即委托方初始绑定本组织、或 org_code 中包含本组织(被授权给本组织)时,均可查到。
+ // 不设置 topOrganizationId,避免跨顶级组织授权(org_code 已包含本组织)被顶级组织条件拦截。
+ userShipperDO.setOrganizationId(loginUserOrganizationId);
+ userShipperDO.setTopOrganizationId(null);
+ log.info("托运人列表查询 - 其他组织按本组织及 org_code 查询:organizationId={}", loginUserOrganizationId);
}
log.info("托运人列表查询 - 设置组织ID后,查询参数:organizationId={}, topOrganizationId={}, userId={}",
@@ -413,10 +405,15 @@ public class UserShipperApplicationService {
shipperDO.setShipperEnterpriseName(companyName);
// NC客户编码使用模板中的独立字段,不再复用登录账号
shipperDO.setCustomerNcCode(ncCustomerCode);
- // 联系人 -> user表 user_name + user_shipper表 user_name_shipper
- shipperDO.setUserName(contactName);
+ // 公司名称 -> user表 user_name + user_shipper表 user_name_shipper
+ shipperDO.setUserName(companyName);
shipperDO.setUserNameShipper(contactName);
- // 联系电话 -> user表 user_phone
+ // 登录账号 -> user表 user_member_code
+ shipperDO.setUserMemberCode(userAccount);
+ // 联系人 -> user表 emergency_contact_name
+ shipperDO.setEmergencyContactName(contactName);
+ // 联系电话 -> user表 emergency_contact_phone
+ shipperDO.setEmergencyContactPhone(contactPhone);
shipperDO.setUserPhone(contactPhone);
// 地址 -> user表 user_area_name,详细地址 -> user表 user_area_address
shipperDO.setUserAreaName(address);
@@ -547,8 +544,15 @@ public class UserShipperApplicationService {
userDO.setUserId(userId);
if (StringUtils.isNotBlank(userAccount)) {
userDO.setUserAccount(userAccount);
+ // 登录账号 -> user表 user_member_code
+ userDO.setUserMemberCode(userAccount);
}
- userDO.setUserName(contactName);
+ // 公司名称 -> user表 user_name
+ userDO.setUserName(companyName);
+ // 联系人 -> user表 emergency_contact_name
+ userDO.setEmergencyContactName(contactName);
+ // 联系电话 -> user表 emergency_contact_phone
+ userDO.setEmergencyContactPhone(contactPhone);
userDO.setUserPhone(contactPhone);
userDO.setUserAreaName(address);
userDO.setUserAreaAddress(detailedAddress);
diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/service/UserShipperDomainService.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/service/UserShipperDomainService.java
index 61eaece29..898b90476 100644
--- a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/service/UserShipperDomainService.java
+++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/service/UserShipperDomainService.java
@@ -47,7 +47,7 @@ public class UserShipperDomainService {
}
}
-// @DataPermissions(cacheName = "master")
+ // @DataPermissions(cacheName = "master")
public List userShipperList(UserShipperDO userShipperDO) {
// 数据权限逻辑已在 UserShipperApplicationService.userShipperList 中处理
// 这里不再重复处理数据权限,直接使用传入的参数进行查询
diff --git a/mhd-user-center/src/main/resources/bootstrap.yml b/mhd-user-center/src/main/resources/bootstrap.yml
index 7b6baaea4..6bf4ff00a 100644
--- a/mhd-user-center/src/main/resources/bootstrap.yml
+++ b/mhd-user-center/src/main/resources/bootstrap.yml
@@ -20,15 +20,15 @@ spring:
discovery:
# server-addr: 127.0.0.1:8848
# 线上测试环境配置 容器名+端口号
- server-addr: 10.33.0.129:6010
-# server-addr: 10.102.192.30:6848
+# server-addr: 10.33.0.129:6010
+ server-addr: 10.102.192.30:6848
username: nacos
password: manhuoda@2023
config:
# server-addr: 127.0.0.1:8848
# 线上测试环境配置 容器名+端口号
- server-addr: 10.33.0.129:6010
-# server-addr: 10.102.192.30:6848
+# server-addr: 10.33.0.129:6010
+ server-addr: 10.102.192.30:6848
username: nacos
password: manhuoda@2023
group: DEFAULT_GROUP # 默认分组就是DEFAULT_GROUP,如果使用默认分组可以不配置
diff --git a/mhd-user-center/src/main/resources/mapper/UserShipperMapper.xml b/mhd-user-center/src/main/resources/mapper/UserShipperMapper.xml
index 02112d51b..54f8dd8c7 100644
--- a/mhd-user-center/src/main/resources/mapper/UserShipperMapper.xml
+++ b/mhd-user-center/src/main/resources/mapper/UserShipperMapper.xml
@@ -379,13 +379,22 @@
/*用户组织ID*/
/*用户组织ID*/
-
+
AND (
- a.organization_id = #{organizationId}
- OR b.org_code LIKE concat('%"code":"', #{organizationId}, '"%')
- OR b.org_code LIKE concat('%code:', #{organizationId}, '%')
- OR b.org_code LIKE concat('%code: ', #{organizationId}, '%')
- OR b.org_code LIKE concat('%"code":', #{organizationId}, '%')
+
+ a.organization_id = #{organizationId}
+ OR b.org_code LIKE concat('%"code":"', #{organizationId}, '"%')
+ OR b.org_code LIKE concat('%code:', #{organizationId}, '%')
+ OR b.org_code LIKE concat('%code: ', #{organizationId}, '%')
+ OR b.org_code LIKE concat('%"code":', #{organizationId}, '%')
+
+
+ OR
+ b.org_code LIKE concat('%code:', #{orgCode}, '%')
+ OR b.org_code LIKE concat('%code: ', #{orgCode}, '%')
+ OR b.org_code LIKE concat('%"code":', #{orgCode}, '%')
+ OR b.org_code LIKE concat('%"code":"', #{orgCode}, '"%')
+
)
/*组织名称*/
From 9519d8610b8e9318803924696985115aa4977262 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com>
Date: Tue, 11 Aug 2026 18:20:37 +0800
Subject: [PATCH 3/7] 31
---
.../src/main/java/com/mhd/system/api/BmsServiceFeign.java | 2 +-
.../src/main/java/com/mhd/system/api/OmsServiceFeign.java | 2 +-
.../src/main/java/com/mhd/system/api/WlhyServiceFeign.java | 2 +-
.../src/main/java/com/mhd/system/api/WmsServiceFeign.java | 2 +-
.../src/main/java/com/mhd/system/api/YmsServiceFeign.java | 2 +-
mhd-user-center/src/main/resources/bootstrap.yml | 4 ++--
.../mhd/oms/infrastructure/feign/ThirdPartyServiceFeign.java | 2 +-
7 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/BmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/BmsServiceFeign.java
index e18484e8d..8cc8bfd57 100644
--- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/BmsServiceFeign.java
+++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/BmsServiceFeign.java
@@ -18,7 +18,7 @@ import java.util.Set;
/**
* bms财务结算系统feign调用接口
*/
-@FeignClient(contextId = "BmsService", value = ServiceNameConstants.BMS_SERVICE, url = "http://10.102.192.3:8019",fallbackFactory = RemoteBmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class)
+@FeignClient(contextId = "BmsService", value = ServiceNameConstants.BMS_SERVICE, url = "http://10.102.192.32:8019",fallbackFactory = RemoteBmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class)
public interface BmsServiceFeign {
diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java
index 42ad32c55..8ef01baad 100644
--- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java
+++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java
@@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import java.util.concurrent.CompletableFuture;
-@FeignClient(contextId = "OmsService", value = ServiceNameConstants.OMS_SERVICE,url = "http://10.102.192.4:8017", fallbackFactory = RemoteOmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class)
+@FeignClient(contextId = "OmsService", value = ServiceNameConstants.OMS_SERVICE,url = "http://10.102.192.33:8017", fallbackFactory = RemoteOmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class)
public interface OmsServiceFeign {
diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java
index e4a817238..d976fcc98 100644
--- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java
+++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java
@@ -26,7 +26,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
-@FeignClient(contextId = "commonWlhyServiceFeign",value = ServiceNameConstants.WLHY_SERVICE,url = "http://10.102.192.30:8014",configuration = FeignAutoConfiguration.class)
+@FeignClient(contextId = "commonWlhyServiceFeign",value = ServiceNameConstants.WLHY_SERVICE,url = "http://10.102.192.31:8014",configuration = FeignAutoConfiguration.class)
public interface WlhyServiceFeign {
/**
diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java
index 558c4250e..28bee652c 100644
--- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java
+++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java
@@ -21,7 +21,7 @@ import java.util.Map;
* @description: TODO
* @date 2024/5/10 8:58
**/
-@FeignClient(contextId = "remoteWmsServiceFeign",value = ServiceNameConstants.WMS_SERVICE, url = "http://10.102.192.3:8016", fallbackFactory = RemoteWmsFallbackFactory.class, configuration = FeignAutoConfiguration.class)
+@FeignClient(contextId = "remoteWmsServiceFeign",value = ServiceNameConstants.WMS_SERVICE, url = "http://10.102.192.32:8016", fallbackFactory = RemoteWmsFallbackFactory.class, configuration = FeignAutoConfiguration.class)
public interface WmsServiceFeign {
/**
diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/YmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/YmsServiceFeign.java
index dfac7337f..238ec5f81 100644
--- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/YmsServiceFeign.java
+++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/YmsServiceFeign.java
@@ -9,7 +9,7 @@ import com.mhd.system.api.feign.FeignAutoConfiguration;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
-@FeignClient(contextId = "YmsService", value = ServiceNameConstants.YMS_SERVICE,fallbackFactory = RemoteBmsFeignFallbackFactory.class,url = "http://10.102.192.4:8018", configuration = FeignAutoConfiguration.class)
+@FeignClient(contextId = "YmsService", value = ServiceNameConstants.YMS_SERVICE,fallbackFactory = RemoteBmsFeignFallbackFactory.class,url = "http://10.102.192.33:8018", configuration = FeignAutoConfiguration.class)
public interface YmsServiceFeign {
/**
diff --git a/mhd-user-center/src/main/resources/bootstrap.yml b/mhd-user-center/src/main/resources/bootstrap.yml
index 6bf4ff00a..dd13bfba5 100644
--- a/mhd-user-center/src/main/resources/bootstrap.yml
+++ b/mhd-user-center/src/main/resources/bootstrap.yml
@@ -21,14 +21,14 @@ spring:
# server-addr: 127.0.0.1:8848
# 线上测试环境配置 容器名+端口号
# server-addr: 10.33.0.129:6010
- server-addr: 10.102.192.30:6848
+ server-addr: 10.102.192.31:6848
username: nacos
password: manhuoda@2023
config:
# server-addr: 127.0.0.1:8848
# 线上测试环境配置 容器名+端口号
# server-addr: 10.33.0.129:6010
- server-addr: 10.102.192.30:6848
+ server-addr: 10.102.192.31:6848
username: nacos
password: manhuoda@2023
group: DEFAULT_GROUP # 默认分组就是DEFAULT_GROUP,如果使用默认分组可以不配置
diff --git a/mhd_oms/src/main/java/com/mhd/oms/infrastructure/feign/ThirdPartyServiceFeign.java b/mhd_oms/src/main/java/com/mhd/oms/infrastructure/feign/ThirdPartyServiceFeign.java
index ca93d3312..8c86ae1ad 100644
--- a/mhd_oms/src/main/java/com/mhd/oms/infrastructure/feign/ThirdPartyServiceFeign.java
+++ b/mhd_oms/src/main/java/com/mhd/oms/infrastructure/feign/ThirdPartyServiceFeign.java
@@ -22,7 +22,7 @@ import java.util.Map;
/**
* 三方服务 Feign
*/
-@FeignClient(contextId = "thirdPartyServiceFeign",url = "http://10.102.192.30:8012", value = ServiceNameConstants.THIRDPARTY_CENTER, configuration = FeignAutoConfiguration.class)
+@FeignClient(contextId = "thirdPartyServiceFeign",url = "http://10.102.192.31:8012", value = ServiceNameConstants.THIRDPARTY_CENTER, configuration = FeignAutoConfiguration.class)
public interface ThirdPartyServiceFeign {
//查询当前组织所有三方接口信息
From 300b5ac239fee77ba6110fc55bf1b5fb78fff7f6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com>
Date: Tue, 11 Aug 2026 23:11:25 +0800
Subject: [PATCH 4/7] =?UTF-8?q?=E8=A7=92=E8=89=B2=E4=BF=A1=E6=81=AF?=
=?UTF-8?q?=E5=88=86=E9=85=8D=E9=94=99=E8=AF=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../UserShipperApplicationService.java | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
diff --git a/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java b/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java
index 3c6fdfd18..f522300bb 100644
--- a/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java
+++ b/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java
@@ -458,15 +458,26 @@ public class UserShipperApplicationService {
}
/**
- * 导入时若账号没有任何角色,则补分配企业货主角色
+ * 导入委托方时,确保账号绑定的是企业货主(company)角色。
+ * 若账号已有 company 角色则跳过;否则先删除已绑定的其他角色(如 addUser 自动分配的 ownerCargo),
+ * 再重新分配当前组织下的 company 角色,避免登录报“账号未授权角色信息”。
*/
private void assignCompanyRoleIfMissing(Long userId, Long organizationId) {
if (userId == null || organizationId == null) {
return;
}
+ // 已绑定 company 角色则无需处理
List existingRoles = userRoleDomainService.selectRolesByUserId(userId);
if (CollUtil.isNotEmpty(existingRoles)) {
- return;
+ boolean hasCompany = existingRoles.stream()
+ .anyMatch(r -> RoleEnum.COMPANY.getCode().equals(r.getRoleCode()));
+ if (hasCompany) {
+ return;
+ }
+ // 没有 company 角色:删除之前绑定的错误角色(如 ownerCargo),重新分配 company
+ log.info("导入委托方 - 用户{}已有角色但缺少company角色,删除原角色后重新分配,原角色: {}",
+ userId, existingRoles.stream().map(UserRoleMenuPO::getRoleCode).collect(Collectors.toList()));
+ userRoleDomainService.deleteByUserId(userId);
}
// 按 role_code + organization_id 精确匹配角色(selectByOrganizationIdAndRoleCode 的 common_where 不含 roleCode 过滤,不适用)
RolePO rolePO = roleDomainService.selectByRoleCodeAndOrganizationId(RoleEnum.COMPANY.getCode(), organizationId);
@@ -568,8 +579,8 @@ public class UserShipperApplicationService {
userDO.setUserSalt(salt);
}
userDomainService.updateUser(userDO);
- // 如果该账号没有任何角色,补分配企业货主角色,避免登录报“账号未授权角色信息”
- assignCompanyRoleIfMissing(userId, existingShipper.getOrganizationId());
+ // 如果该账号没有企业货主(company)角色,补分配当前导入组织下的 company 角色,避免登录报“账号未授权角色信息”
+ assignCompanyRoleIfMissing(userId, currentOrgId);
}
// 3. 更新 orgCode 中当前组织的 ncCustomer
From 7e496834ae972fc038121033cdb16123db57e25d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com>
Date: Tue, 11 Aug 2026 23:16:20 +0800
Subject: [PATCH 5/7] 30
---
.../src/main/java/com/mhd/system/api/BmsServiceFeign.java | 2 +-
.../src/main/java/com/mhd/system/api/OmsServiceFeign.java | 2 +-
.../src/main/java/com/mhd/system/api/WlhyServiceFeign.java | 2 +-
.../src/main/java/com/mhd/system/api/WmsServiceFeign.java | 2 +-
.../src/main/java/com/mhd/system/api/YmsServiceFeign.java | 2 +-
mhd-user-center/src/main/resources/bootstrap.yml | 4 ++--
.../mhd/oms/infrastructure/feign/ThirdPartyServiceFeign.java | 2 +-
7 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/BmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/BmsServiceFeign.java
index 8cc8bfd57..e18484e8d 100644
--- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/BmsServiceFeign.java
+++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/BmsServiceFeign.java
@@ -18,7 +18,7 @@ import java.util.Set;
/**
* bms财务结算系统feign调用接口
*/
-@FeignClient(contextId = "BmsService", value = ServiceNameConstants.BMS_SERVICE, url = "http://10.102.192.32:8019",fallbackFactory = RemoteBmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class)
+@FeignClient(contextId = "BmsService", value = ServiceNameConstants.BMS_SERVICE, url = "http://10.102.192.3:8019",fallbackFactory = RemoteBmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class)
public interface BmsServiceFeign {
diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java
index 8ef01baad..42ad32c55 100644
--- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java
+++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java
@@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import java.util.concurrent.CompletableFuture;
-@FeignClient(contextId = "OmsService", value = ServiceNameConstants.OMS_SERVICE,url = "http://10.102.192.33:8017", fallbackFactory = RemoteOmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class)
+@FeignClient(contextId = "OmsService", value = ServiceNameConstants.OMS_SERVICE,url = "http://10.102.192.4:8017", fallbackFactory = RemoteOmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class)
public interface OmsServiceFeign {
diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java
index d976fcc98..e4a817238 100644
--- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java
+++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java
@@ -26,7 +26,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
-@FeignClient(contextId = "commonWlhyServiceFeign",value = ServiceNameConstants.WLHY_SERVICE,url = "http://10.102.192.31:8014",configuration = FeignAutoConfiguration.class)
+@FeignClient(contextId = "commonWlhyServiceFeign",value = ServiceNameConstants.WLHY_SERVICE,url = "http://10.102.192.30:8014",configuration = FeignAutoConfiguration.class)
public interface WlhyServiceFeign {
/**
diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java
index 28bee652c..558c4250e 100644
--- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java
+++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java
@@ -21,7 +21,7 @@ import java.util.Map;
* @description: TODO
* @date 2024/5/10 8:58
**/
-@FeignClient(contextId = "remoteWmsServiceFeign",value = ServiceNameConstants.WMS_SERVICE, url = "http://10.102.192.32:8016", fallbackFactory = RemoteWmsFallbackFactory.class, configuration = FeignAutoConfiguration.class)
+@FeignClient(contextId = "remoteWmsServiceFeign",value = ServiceNameConstants.WMS_SERVICE, url = "http://10.102.192.3:8016", fallbackFactory = RemoteWmsFallbackFactory.class, configuration = FeignAutoConfiguration.class)
public interface WmsServiceFeign {
/**
diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/YmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/YmsServiceFeign.java
index 238ec5f81..dfac7337f 100644
--- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/YmsServiceFeign.java
+++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/YmsServiceFeign.java
@@ -9,7 +9,7 @@ import com.mhd.system.api.feign.FeignAutoConfiguration;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
-@FeignClient(contextId = "YmsService", value = ServiceNameConstants.YMS_SERVICE,fallbackFactory = RemoteBmsFeignFallbackFactory.class,url = "http://10.102.192.33:8018", configuration = FeignAutoConfiguration.class)
+@FeignClient(contextId = "YmsService", value = ServiceNameConstants.YMS_SERVICE,fallbackFactory = RemoteBmsFeignFallbackFactory.class,url = "http://10.102.192.4:8018", configuration = FeignAutoConfiguration.class)
public interface YmsServiceFeign {
/**
diff --git a/mhd-user-center/src/main/resources/bootstrap.yml b/mhd-user-center/src/main/resources/bootstrap.yml
index dd13bfba5..6bf4ff00a 100644
--- a/mhd-user-center/src/main/resources/bootstrap.yml
+++ b/mhd-user-center/src/main/resources/bootstrap.yml
@@ -21,14 +21,14 @@ spring:
# server-addr: 127.0.0.1:8848
# 线上测试环境配置 容器名+端口号
# server-addr: 10.33.0.129:6010
- server-addr: 10.102.192.31:6848
+ server-addr: 10.102.192.30:6848
username: nacos
password: manhuoda@2023
config:
# server-addr: 127.0.0.1:8848
# 线上测试环境配置 容器名+端口号
# server-addr: 10.33.0.129:6010
- server-addr: 10.102.192.31:6848
+ server-addr: 10.102.192.30:6848
username: nacos
password: manhuoda@2023
group: DEFAULT_GROUP # 默认分组就是DEFAULT_GROUP,如果使用默认分组可以不配置
diff --git a/mhd_oms/src/main/java/com/mhd/oms/infrastructure/feign/ThirdPartyServiceFeign.java b/mhd_oms/src/main/java/com/mhd/oms/infrastructure/feign/ThirdPartyServiceFeign.java
index 8c86ae1ad..ca93d3312 100644
--- a/mhd_oms/src/main/java/com/mhd/oms/infrastructure/feign/ThirdPartyServiceFeign.java
+++ b/mhd_oms/src/main/java/com/mhd/oms/infrastructure/feign/ThirdPartyServiceFeign.java
@@ -22,7 +22,7 @@ import java.util.Map;
/**
* 三方服务 Feign
*/
-@FeignClient(contextId = "thirdPartyServiceFeign",url = "http://10.102.192.31:8012", value = ServiceNameConstants.THIRDPARTY_CENTER, configuration = FeignAutoConfiguration.class)
+@FeignClient(contextId = "thirdPartyServiceFeign",url = "http://10.102.192.30:8012", value = ServiceNameConstants.THIRDPARTY_CENTER, configuration = FeignAutoConfiguration.class)
public interface ThirdPartyServiceFeign {
//查询当前组织所有三方接口信息
From de4d4fa70d36b96e4d761b801bfa02650abcaffa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com>
Date: Wed, 12 Aug 2026 00:00:43 +0800
Subject: [PATCH 6/7] 30
---
.../UserShipperApplicationService.java | 25 +++++++++++--------
1 file changed, 14 insertions(+), 11 deletions(-)
diff --git a/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java b/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java
index f522300bb..fd45a1f66 100644
--- a/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java
+++ b/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java
@@ -458,24 +458,27 @@ public class UserShipperApplicationService {
}
/**
- * 导入委托方时,确保账号绑定的是企业货主(company)角色。
- * 若账号已有 company 角色则跳过;否则先删除已绑定的其他角色(如 addUser 自动分配的 ownerCargo),
- * 再重新分配当前组织下的 company 角色,避免登录报“账号未授权角色信息”。
+ * 导入委托方时,确保账号仅绑定企业货主(company)角色。
+ * 注意:authShipper 会把“当前登录管理员的所有角色”都分配给导入用户,
+ * 因此这里必须保证用户最终只绑定 company 角色——若现有角色不是“唯一的 company 角色”,
+ * 一律删除后重新分配,避免残留 ownerCargo 等多条错误角色。
*/
private void assignCompanyRoleIfMissing(Long userId, Long organizationId) {
if (userId == null || organizationId == null) {
return;
}
- // 已绑定 company 角色则无需处理
+ // 查询用户现有角色
List existingRoles = userRoleDomainService.selectRolesByUserId(userId);
+ // 只有恰好绑定了唯一的 company 角色时,才认为正确,无需处理
+ boolean onlyCompany = !CollUtil.isEmpty(existingRoles)
+ && existingRoles.size() == 1
+ && RoleEnum.COMPANY.getCode().equals(existingRoles.get(0).getRoleCode());
+ if (onlyCompany) {
+ return;
+ }
+ // 否则:删除所有现有角色(ownerCargo、或多个角色),重新分配 company
if (CollUtil.isNotEmpty(existingRoles)) {
- boolean hasCompany = existingRoles.stream()
- .anyMatch(r -> RoleEnum.COMPANY.getCode().equals(r.getRoleCode()));
- if (hasCompany) {
- return;
- }
- // 没有 company 角色:删除之前绑定的错误角色(如 ownerCargo),重新分配 company
- log.info("导入委托方 - 用户{}已有角色但缺少company角色,删除原角色后重新分配,原角色: {}",
+ log.info("导入委托方 - 用户{}角色不正确,删除原角色后重新分配company,原角色: {}",
userId, existingRoles.stream().map(UserRoleMenuPO::getRoleCode).collect(Collectors.toList()));
userRoleDomainService.deleteByUserId(userId);
}
From 59ede5ceb7f45025d5f9e11ef871e20d03fcfc5c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com>
Date: Wed, 12 Aug 2026 00:04:33 +0800
Subject: [PATCH 7/7] 31
---
.../src/main/java/com/mhd/system/api/BmsServiceFeign.java | 2 +-
.../src/main/java/com/mhd/system/api/OmsServiceFeign.java | 2 +-
.../src/main/java/com/mhd/system/api/WlhyServiceFeign.java | 2 +-
.../src/main/java/com/mhd/system/api/WmsServiceFeign.java | 2 +-
.../src/main/java/com/mhd/system/api/YmsServiceFeign.java | 2 +-
mhd-user-center/src/main/resources/bootstrap.yml | 4 ++--
.../mhd/oms/infrastructure/feign/ThirdPartyServiceFeign.java | 2 +-
7 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/BmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/BmsServiceFeign.java
index e18484e8d..8cc8bfd57 100644
--- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/BmsServiceFeign.java
+++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/BmsServiceFeign.java
@@ -18,7 +18,7 @@ import java.util.Set;
/**
* bms财务结算系统feign调用接口
*/
-@FeignClient(contextId = "BmsService", value = ServiceNameConstants.BMS_SERVICE, url = "http://10.102.192.3:8019",fallbackFactory = RemoteBmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class)
+@FeignClient(contextId = "BmsService", value = ServiceNameConstants.BMS_SERVICE, url = "http://10.102.192.32:8019",fallbackFactory = RemoteBmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class)
public interface BmsServiceFeign {
diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java
index 42ad32c55..8ef01baad 100644
--- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java
+++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java
@@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import java.util.concurrent.CompletableFuture;
-@FeignClient(contextId = "OmsService", value = ServiceNameConstants.OMS_SERVICE,url = "http://10.102.192.4:8017", fallbackFactory = RemoteOmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class)
+@FeignClient(contextId = "OmsService", value = ServiceNameConstants.OMS_SERVICE,url = "http://10.102.192.33:8017", fallbackFactory = RemoteOmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class)
public interface OmsServiceFeign {
diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java
index e4a817238..d976fcc98 100644
--- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java
+++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java
@@ -26,7 +26,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
-@FeignClient(contextId = "commonWlhyServiceFeign",value = ServiceNameConstants.WLHY_SERVICE,url = "http://10.102.192.30:8014",configuration = FeignAutoConfiguration.class)
+@FeignClient(contextId = "commonWlhyServiceFeign",value = ServiceNameConstants.WLHY_SERVICE,url = "http://10.102.192.31:8014",configuration = FeignAutoConfiguration.class)
public interface WlhyServiceFeign {
/**
diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java
index 558c4250e..28bee652c 100644
--- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java
+++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java
@@ -21,7 +21,7 @@ import java.util.Map;
* @description: TODO
* @date 2024/5/10 8:58
**/
-@FeignClient(contextId = "remoteWmsServiceFeign",value = ServiceNameConstants.WMS_SERVICE, url = "http://10.102.192.3:8016", fallbackFactory = RemoteWmsFallbackFactory.class, configuration = FeignAutoConfiguration.class)
+@FeignClient(contextId = "remoteWmsServiceFeign",value = ServiceNameConstants.WMS_SERVICE, url = "http://10.102.192.32:8016", fallbackFactory = RemoteWmsFallbackFactory.class, configuration = FeignAutoConfiguration.class)
public interface WmsServiceFeign {
/**
diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/YmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/YmsServiceFeign.java
index dfac7337f..238ec5f81 100644
--- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/YmsServiceFeign.java
+++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/YmsServiceFeign.java
@@ -9,7 +9,7 @@ import com.mhd.system.api.feign.FeignAutoConfiguration;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
-@FeignClient(contextId = "YmsService", value = ServiceNameConstants.YMS_SERVICE,fallbackFactory = RemoteBmsFeignFallbackFactory.class,url = "http://10.102.192.4:8018", configuration = FeignAutoConfiguration.class)
+@FeignClient(contextId = "YmsService", value = ServiceNameConstants.YMS_SERVICE,fallbackFactory = RemoteBmsFeignFallbackFactory.class,url = "http://10.102.192.33:8018", configuration = FeignAutoConfiguration.class)
public interface YmsServiceFeign {
/**
diff --git a/mhd-user-center/src/main/resources/bootstrap.yml b/mhd-user-center/src/main/resources/bootstrap.yml
index 6bf4ff00a..dd13bfba5 100644
--- a/mhd-user-center/src/main/resources/bootstrap.yml
+++ b/mhd-user-center/src/main/resources/bootstrap.yml
@@ -21,14 +21,14 @@ spring:
# server-addr: 127.0.0.1:8848
# 线上测试环境配置 容器名+端口号
# server-addr: 10.33.0.129:6010
- server-addr: 10.102.192.30:6848
+ server-addr: 10.102.192.31:6848
username: nacos
password: manhuoda@2023
config:
# server-addr: 127.0.0.1:8848
# 线上测试环境配置 容器名+端口号
# server-addr: 10.33.0.129:6010
- server-addr: 10.102.192.30:6848
+ server-addr: 10.102.192.31:6848
username: nacos
password: manhuoda@2023
group: DEFAULT_GROUP # 默认分组就是DEFAULT_GROUP,如果使用默认分组可以不配置
diff --git a/mhd_oms/src/main/java/com/mhd/oms/infrastructure/feign/ThirdPartyServiceFeign.java b/mhd_oms/src/main/java/com/mhd/oms/infrastructure/feign/ThirdPartyServiceFeign.java
index ca93d3312..8c86ae1ad 100644
--- a/mhd_oms/src/main/java/com/mhd/oms/infrastructure/feign/ThirdPartyServiceFeign.java
+++ b/mhd_oms/src/main/java/com/mhd/oms/infrastructure/feign/ThirdPartyServiceFeign.java
@@ -22,7 +22,7 @@ import java.util.Map;
/**
* 三方服务 Feign
*/
-@FeignClient(contextId = "thirdPartyServiceFeign",url = "http://10.102.192.30:8012", value = ServiceNameConstants.THIRDPARTY_CENTER, configuration = FeignAutoConfiguration.class)
+@FeignClient(contextId = "thirdPartyServiceFeign",url = "http://10.102.192.31:8012", value = ServiceNameConstants.THIRDPARTY_CENTER, configuration = FeignAutoConfiguration.class)
public interface ThirdPartyServiceFeign {
//查询当前组织所有三方接口信息