/** * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *

* http://www.apache.org/licenses/LICENSE-2.0 *

* Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.springblade.system.vo; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; import org.springblade.core.tool.node.INode; import org.springblade.system.entity.Dept; import java.io.Serial; import java.util.ArrayList; import java.util.List; /** * 视图实体类 * * @author Chill */ @Data @EqualsAndHashCode(callSuper = true) @Schema(description = "DeptVO对象") public class DeptVO extends Dept implements INode { @Serial private static final long serialVersionUID = 1L; /** * 主键ID */ @JsonSerialize(using = ToStringSerializer.class) private Long id; /** * 父节点ID */ @JsonSerialize(using = ToStringSerializer.class) private Long parentId; /** * 子孙节点 */ @JsonInclude(JsonInclude.Include.NON_EMPTY) private List children; @Override public List getChildren() { if (this.children == null) { this.children = new ArrayList<>(); } return this.children; } /** * 上级部门 */ private String parentName; }