diff --git a/zt-framework/zt-spring-boot-starter-mybatis/src/main/java/com/zt/plat/framework/mybatis/core/handler/DefaultDBFieldHandler.java b/zt-framework/zt-spring-boot-starter-mybatis/src/main/java/com/zt/plat/framework/mybatis/core/handler/DefaultDBFieldHandler.java index 6a1acf08..ec449926 100644 --- a/zt-framework/zt-spring-boot-starter-mybatis/src/main/java/com/zt/plat/framework/mybatis/core/handler/DefaultDBFieldHandler.java +++ b/zt-framework/zt-spring-boot-starter-mybatis/src/main/java/com/zt/plat/framework/mybatis/core/handler/DefaultDBFieldHandler.java @@ -59,8 +59,8 @@ public class DefaultDBFieldHandler implements MetaObjectHandler { } } if (Objects.nonNull(metaObject) && metaObject.getOriginalObject() instanceof BusinessBaseDO businessBaseDO) { - // 公司编号、公司名称、部门编号、部门名称、岗位编号等字段,默认不填充 - // 需要在业务层手动设置 + // 自动填充公司编号、公司名称、部门编号、部门名称、岗位编号等字段 + // 如果外部已传入这些属性值,则不再进行自动补全 autoFillDeptInfo(businessBaseDO); // 自动填充用户名称字段 @@ -165,18 +165,30 @@ public class DefaultDBFieldHandler implements MetaObjectHandler { Set postIds = new HashSet<>(JSONUtil.parseArray( loginUser.getInfo().getOrDefault(LoginUser.INFO_KEY_POST_IDS, "[]") ).toList(Long.class)); - // 阻碍部分场景的使用,不强制校验 - // 如果 visitCompanyId 不存在,不能进行业务办理 -// if (Objects.isNull(visitCompanyId) || Objects.isNull(visitDeptId)) { -// throw exception(USER_NOT_SET_DEPT); -// } - businessBaseDO.setCompanyId(visitCompanyId); - businessBaseDO.setCompanyName(loginUser.getVisitCompanyName()); - businessBaseDO.setDeptId(visitDeptId); - businessBaseDO.setDeptName(loginUser.getVisitDeptName()); - // 暂时没有具体业务要求,岗位默认当前用户第一个 todo chenbowen - businessBaseDO.setPostId(postIds.isEmpty() ? 0L : postIds.iterator().next()); - // 多租户编号,默认不填充 - businessBaseDO.setTenantId(loginUser.getTenantId()); + + // 公司编号为空,则填充当前用户访问的公司编号 + if (Objects.isNull(businessBaseDO.getCompanyId())) { + businessBaseDO.setCompanyId(visitCompanyId); + } + // 公司名称为空,则填充当前用户访问的公司名称 + if (Objects.isNull(businessBaseDO.getCompanyName()) || businessBaseDO.getCompanyName().isEmpty()) { + businessBaseDO.setCompanyName(loginUser.getVisitCompanyName()); + } + // 部门编号为空,则填充当前用户访问的部门编号 + if (Objects.isNull(businessBaseDO.getDeptId())) { + businessBaseDO.setDeptId(visitDeptId); + } + // 部门名称为空,则填充当前用户访问的部门名称 + if (Objects.isNull(businessBaseDO.getDeptName()) || businessBaseDO.getDeptName().isEmpty()) { + businessBaseDO.setDeptName(loginUser.getVisitDeptName()); + } + // 岗位编号为空,则填充当前用户第一个岗位 todo chenbowen + if (Objects.isNull(businessBaseDO.getPostId())) { + businessBaseDO.setPostId(postIds.isEmpty() ? 0L : postIds.iterator().next()); + } + // 多租户编号为空,则填充当前用户的租户编号 + if (Objects.isNull(businessBaseDO.getTenantId())) { + businessBaseDO.setTenantId(loginUser.getTenantId()); + } } }