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

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个字符") @Size(max = 30, message = "部门名称长度不能超过30个字符")
private String name; private String name;
@ApiModelProperty(value = "父菜单 ID", required = true, example = "1024") @ApiModelProperty(value = "父菜单 ID", example = "1024")
@NotNull(message = "父菜单 ID 不能为空")
private Long parentId; private Long parentId;
@ApiModelProperty(value = "显示顺序不能为空", required = true, example = "1024") @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.ImmutableMultimap;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -71,6 +72,10 @@ public class DeptServiceImpl implements DeptService {
@Resource @Resource
private DeptProducer deptProducer; private DeptProducer deptProducer;
@Resource
@Lazy // 注入自己所以延迟加载
private DeptService self;
@Override @Override
@PostConstruct @PostConstruct
@TenantIgnore // 初始化缓存无需租户过滤 @TenantIgnore // 初始化缓存无需租户过滤
@ -97,7 +102,7 @@ public class DeptServiceImpl implements DeptService {
@Scheduled(fixedDelay = SCHEDULER_PERIOD, initialDelay = SCHEDULER_PERIOD) @Scheduled(fixedDelay = SCHEDULER_PERIOD, initialDelay = SCHEDULER_PERIOD)
public void schedulePeriodicRefresh() { public void schedulePeriodicRefresh() {
initLocalCache(); self.initLocalCache();
} }
/** /**
@ -124,6 +129,9 @@ public class DeptServiceImpl implements DeptService {
@Override @Override
public Long createDept(DeptCreateReqVO reqVO) { public Long createDept(DeptCreateReqVO reqVO) {
// 校验正确性 // 校验正确性
if (reqVO.getParentId() == null) {
reqVO.setParentId(DeptIdEnum.ROOT.getId());
}
checkCreateOrUpdate(null, reqVO.getParentId(), reqVO.getName()); checkCreateOrUpdate(null, reqVO.getParentId(), reqVO.getName());
// 插入部门 // 插入部门
DeptDO dept = DeptConvert.INSTANCE.convert(reqVO); DeptDO dept = DeptConvert.INSTANCE.convert(reqVO);
@ -136,6 +144,9 @@ public class DeptServiceImpl implements DeptService {
@Override @Override
public void updateDept(DeptUpdateReqVO reqVO) { public void updateDept(DeptUpdateReqVO reqVO) {
// 校验正确性 // 校验正确性
if (reqVO.getParentId() == null) {
reqVO.setParentId(DeptIdEnum.ROOT.getId());
}
checkCreateOrUpdate(reqVO.getId(), reqVO.getParentId(), reqVO.getName()); checkCreateOrUpdate(reqVO.getId(), reqVO.getParentId(), reqVO.getName());
// 更新部门 // 更新部门
DeptDO updateObj = DeptConvert.INSTANCE.convert(reqVO); 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-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row> <el-row>
<el-col :span="24" v-if="form.parentId !== 0"> <el-col :span="24">
<el-form-item label="上级部门" prop="parentId"> <el-form-item label="上级部门" prop="parentId">
<treeselect v-model="form.parentId" :options="deptOptions" :normalizer="normalizer" placeholder="选择上级部门" /> <treeselect v-model="form.parentId" :options="deptOptions" :normalizer="normalizer" placeholder="选择上级部门" />
</el-form-item> </el-form-item>
@ -152,9 +152,6 @@ export default {
form: {}, form: {},
// //
rules: { rules: {
parentId: [
{ required: true, message: "上级部门不能为空", trigger: "blur" }
],
name: [ name: [
{ required: true, message: "部门名称不能为空", trigger: "blur" } { required: true, message: "部门名称不能为空", trigger: "blur" }
], ],
@ -278,6 +275,9 @@ export default {
this.reset(); this.reset();
getDept(row.id).then(response => { getDept(row.id).then(response => {
this.form = response.data; this.form = response.data;
if (this.form.parentId === 0) { // undefined Unknown
this.form.parentId = undefined;
}
this.open = true; this.open = true;
this.title = "修改部门"; this.title = "修改部门";
}); });