【修复】修复不支持根部门的问题

This commit is contained in:
YunaiV 2022-02-23 22:36:45 +08:00
parent 95bb9744c1
commit fa62ace6af
3 changed files with 17 additions and 7 deletions

View File

@ -20,8 +20,7 @@ public class DeptBaseVO {
@Size(max = 30, message = "部门名称长度不能超过30个字符")
private String name;
@ApiModelProperty(value = "父菜单 ID", required = true, example = "1024")
@NotNull(message = "父菜单 ID 不能为空")
@ApiModelProperty(value = "父菜单 ID", example = "1024")
private Long parentId;
@ApiModelProperty(value = "显示顺序不能为空", required = true, example = "1024")

View File

@ -17,6 +17,7 @@ import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableMultimap;
import com.google.common.collect.Multimap;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
@ -71,6 +72,10 @@ public class DeptServiceImpl implements DeptService {
@Resource
private DeptProducer deptProducer;
@Resource
@Lazy // 注入自己所以延迟加载
private DeptService self;
@Override
@PostConstruct
@TenantIgnore // 初始化缓存无需租户过滤
@ -97,7 +102,7 @@ public class DeptServiceImpl implements DeptService {
@Scheduled(fixedDelay = SCHEDULER_PERIOD, initialDelay = SCHEDULER_PERIOD)
public void schedulePeriodicRefresh() {
initLocalCache();
self.initLocalCache();
}
/**
@ -124,6 +129,9 @@ public class DeptServiceImpl implements DeptService {
@Override
public Long createDept(DeptCreateReqVO reqVO) {
// 校验正确性
if (reqVO.getParentId() == null) {
reqVO.setParentId(DeptIdEnum.ROOT.getId());
}
checkCreateOrUpdate(null, reqVO.getParentId(), reqVO.getName());
// 插入部门
DeptDO dept = DeptConvert.INSTANCE.convert(reqVO);
@ -136,6 +144,9 @@ public class DeptServiceImpl implements DeptService {
@Override
public void updateDept(DeptUpdateReqVO reqVO) {
// 校验正确性
if (reqVO.getParentId() == null) {
reqVO.setParentId(DeptIdEnum.ROOT.getId());
}
checkCreateOrUpdate(reqVO.getId(), reqVO.getParentId(), reqVO.getName());
// 更新部门
DeptDO updateObj = DeptConvert.INSTANCE.convert(reqVO);

View File

@ -57,7 +57,7 @@
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row>
<el-col :span="24" v-if="form.parentId !== 0">
<el-col :span="24">
<el-form-item label="上级部门" prop="parentId">
<treeselect v-model="form.parentId" :options="deptOptions" :normalizer="normalizer" placeholder="选择上级部门" />
</el-form-item>
@ -152,9 +152,6 @@ export default {
form: {},
//
rules: {
parentId: [
{ required: true, message: "上级部门不能为空", trigger: "blur" }
],
name: [
{ required: true, message: "部门名称不能为空", trigger: "blur" }
],
@ -278,6 +275,9 @@ export default {
this.reset();
getDept(row.id).then(response => {
this.form = response.data;
if (this.form.parentId === 0) { // undefined Unknown
this.form.parentId = undefined;
}
this.open = true;
this.title = "修改部门";
});