完善自动填充逻辑,确保公司、部门、岗位等信息在缺失时自动填充
This commit is contained in:
@@ -59,8 +59,8 @@ public class DefaultDBFieldHandler implements MetaObjectHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (Objects.nonNull(metaObject) && metaObject.getOriginalObject() instanceof BusinessBaseDO businessBaseDO) {
|
if (Objects.nonNull(metaObject) && metaObject.getOriginalObject() instanceof BusinessBaseDO businessBaseDO) {
|
||||||
// 公司编号、公司名称、部门编号、部门名称、岗位编号等字段,默认不填充
|
// 自动填充公司编号、公司名称、部门编号、部门名称、岗位编号等字段
|
||||||
// 需要在业务层手动设置
|
// 如果外部已传入这些属性值,则不再进行自动补全
|
||||||
autoFillDeptInfo(businessBaseDO);
|
autoFillDeptInfo(businessBaseDO);
|
||||||
|
|
||||||
// 自动填充用户名称字段
|
// 自动填充用户名称字段
|
||||||
@@ -165,18 +165,30 @@ public class DefaultDBFieldHandler implements MetaObjectHandler {
|
|||||||
Set<Long> postIds = new HashSet<>(JSONUtil.parseArray(
|
Set<Long> postIds = new HashSet<>(JSONUtil.parseArray(
|
||||||
loginUser.getInfo().getOrDefault(LoginUser.INFO_KEY_POST_IDS, "[]")
|
loginUser.getInfo().getOrDefault(LoginUser.INFO_KEY_POST_IDS, "[]")
|
||||||
).toList(Long.class));
|
).toList(Long.class));
|
||||||
// 阻碍部分场景的使用,不强制校验
|
|
||||||
// 如果 visitCompanyId 不存在,不能进行业务办理
|
// 公司编号为空,则填充当前用户访问的公司编号
|
||||||
// if (Objects.isNull(visitCompanyId) || Objects.isNull(visitDeptId)) {
|
if (Objects.isNull(businessBaseDO.getCompanyId())) {
|
||||||
// throw exception(USER_NOT_SET_DEPT);
|
|
||||||
// }
|
|
||||||
businessBaseDO.setCompanyId(visitCompanyId);
|
businessBaseDO.setCompanyId(visitCompanyId);
|
||||||
|
}
|
||||||
|
// 公司名称为空,则填充当前用户访问的公司名称
|
||||||
|
if (Objects.isNull(businessBaseDO.getCompanyName()) || businessBaseDO.getCompanyName().isEmpty()) {
|
||||||
businessBaseDO.setCompanyName(loginUser.getVisitCompanyName());
|
businessBaseDO.setCompanyName(loginUser.getVisitCompanyName());
|
||||||
|
}
|
||||||
|
// 部门编号为空,则填充当前用户访问的部门编号
|
||||||
|
if (Objects.isNull(businessBaseDO.getDeptId())) {
|
||||||
businessBaseDO.setDeptId(visitDeptId);
|
businessBaseDO.setDeptId(visitDeptId);
|
||||||
|
}
|
||||||
|
// 部门名称为空,则填充当前用户访问的部门名称
|
||||||
|
if (Objects.isNull(businessBaseDO.getDeptName()) || businessBaseDO.getDeptName().isEmpty()) {
|
||||||
businessBaseDO.setDeptName(loginUser.getVisitDeptName());
|
businessBaseDO.setDeptName(loginUser.getVisitDeptName());
|
||||||
// 暂时没有具体业务要求,岗位默认当前用户第一个 todo chenbowen
|
}
|
||||||
|
// 岗位编号为空,则填充当前用户第一个岗位 todo chenbowen
|
||||||
|
if (Objects.isNull(businessBaseDO.getPostId())) {
|
||||||
businessBaseDO.setPostId(postIds.isEmpty() ? 0L : postIds.iterator().next());
|
businessBaseDO.setPostId(postIds.isEmpty() ? 0L : postIds.iterator().next());
|
||||||
// 多租户编号,默认不填充
|
}
|
||||||
|
// 多租户编号为空,则填充当前用户的租户编号
|
||||||
|
if (Objects.isNull(businessBaseDO.getTenantId())) {
|
||||||
businessBaseDO.setTenantId(loginUser.getTenantId());
|
businessBaseDO.setTenantId(loginUser.getTenantId());
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user