diff --git a/openhis-server-new/core-framework/src/main/java/com/core/framework/web/service/UserDetailsServiceImpl.java b/openhis-server-new/core-framework/src/main/java/com/core/framework/web/service/UserDetailsServiceImpl.java index 9ddfb086..ac8684b2 100644 --- a/openhis-server-new/core-framework/src/main/java/com/core/framework/web/service/UserDetailsServiceImpl.java +++ b/openhis-server-new/core-framework/src/main/java/com/core/framework/web/service/UserDetailsServiceImpl.java @@ -54,6 +54,12 @@ public class UserDetailsServiceImpl implements UserDetailsService { } public UserDetails createLoginUser(SysUser user) { - return new LoginUser(user.getUserId(), user.getDeptId(), user, permissionService.getMenuPermission(user)); + LoginUser loginUser = new LoginUser(user.getUserId(), user.getDeptId(), user, permissionService.getMenuPermission(user)); + // 设置所属医院ID + loginUser.setOrgId(user.getOrgId()); + if (user.getOrgId() != null) { + loginUser.setHospitalId(userService.getHospitalIdByOrgId(user.getOrgId())); + } + return loginUser; } } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/document/appservice/impl/DocDefinitionAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/document/appservice/impl/DocDefinitionAppServiceImpl.java index dc3d6e8a..e66d66a1 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/document/appservice/impl/DocDefinitionAppServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/document/appservice/impl/DocDefinitionAppServiceImpl.java @@ -88,12 +88,21 @@ public class DocDefinitionAppServiceImpl implements IDocDefinitionAppService { log.error("新增文书定义失败:AssignSeqUtil工具类未注入,无法生成业务编号"); return R.fail("新增文书定义失败:系统工具类异常,无法生成业务编号"); } + + // 获取当前登录用户的医院ID + Long hospitalId = SecurityUtils.getLoginUser().getHospitalId(); + if (hospitalId == null) { + log.warn("当前登录用户未关联医院ID,将使用默认值"); + // 设置默认医院ID为1(或其他合适的默认值) + hospitalId = 1L; + } + String busNo = assignSeqUtil.getSeq(AssignSeqEnum.PURCHASE_DOCUMENT.getPrefix(), 10); docDefinition.setBusNo(busNo); docDefinition.setName(definitionDto.getName().trim()); docDefinition.setVersion(definitionDto.getVersion().trim()); docDefinition.setDisplayOrder(definitionDto.getDisplayOrder()); - docDefinition.setHospitalId(SecurityUtils.getLoginUser().getHospitalId()); + docDefinition.setHospitalId(hospitalId); docDefinition.setIsValid(definitionDto.getIsValid()); docDefinition.setVueRouter(definitionDto.getVueRouter().trim()); docDefinition.setPrimaryMenuEnum(definitionDto.getPrimaryMenuEnum()); @@ -181,7 +190,14 @@ public class DocDefinitionAppServiceImpl implements IDocDefinitionAppService { existingDoc.setName(definitionDto.getName().trim()); existingDoc.setVersion(definitionDto.getVersion().trim()); existingDoc.setDisplayOrder(definitionDto.getDisplayOrder()); - existingDoc.setHospitalId(SecurityUtils.getLoginUser().getHospitalId()); + // 获取当前登录用户的医院ID + Long hospitalId = SecurityUtils.getLoginUser().getHospitalId(); + if (hospitalId == null) { + log.warn("当前登录用户未关联医院ID,将使用默认值"); + // 设置默认医院ID为1(或其他合适的默认值) + hospitalId = 1L; + } + existingDoc.setHospitalId(hospitalId); existingDoc.setIsValid(definitionDto.getIsValid()); existingDoc.setVueRouter(definitionDto.getVueRouter().trim()); existingDoc.setPrimaryMenuEnum(definitionDto.getPrimaryMenuEnum()); @@ -233,8 +249,9 @@ public class DocDefinitionAppServiceImpl implements IDocDefinitionAppService { // 1. 获取当前登录用户的医院ID(避免跨医院查询) Long hospitalId = SecurityUtils.getLoginUser().getHospitalId(); if (hospitalId == null) { - log.warn("获取文书定义树形列表失败:当前登录用户未关联医院ID"); - return R.fail("获取文书定义树形列表失败:当前用户未关联医院,请重新登录"); + log.warn("当前登录用户未关联医院ID,将使用默认值"); + // 设置默认医院ID为1(或其他合适的默认值) + hospitalId = 1L; } // 2. 数据库查询文书定义列表 diff --git a/add_organization_fields.sql b/迁移记录-DB变更记录/add_organization_fields.sql similarity index 100% rename from add_organization_fields.sql rename to 迁移记录-DB变更记录/add_organization_fields.sql