zzw
2023-12-01 e023474fc9bcc726ed558a0623f1316dddc13152
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
/**
 * Copyright (c) 2018 人人开源 All rights reserved.
 *
 * https://www.renren.io
 *
 * 版权所有,侵权必究!
 */
 
package com.zt.core.sys.model;
 
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.zt.common.entity.CompanyEntity;
import com.zt.common.entity.TreeNode;
import com.zt.common.validator.group.DefaultGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
 
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.List;
 
/**
 * 部门
 *
 * @author hehz
 */
@Data
@ApiModel(value = "部门")
@EqualsAndHashCode(callSuper = false)
@TableName("SYS_DEPT")
public class SysDept extends CompanyEntity implements TreeNode<SysDept>, Cloneable {
    private static final long serialVersionUID = 1L;
 
    @ApiModelProperty(value = "上级ID")
    @NotNull(message = "上级ID,不能为空", groups = DefaultGroup.class)
    private Long pid;
 
    @JsonIgnore
    private String pids;// 所有上级ID,用逗号分开
 
    @ApiModelProperty(value = "部门名称")
    @NotBlank(message = "请选择上级部门", groups = DefaultGroup.class)
    private String name;
 
    @ApiModelProperty(value = "部门简称")
    @NotNull(message = "部门简称不能为空", groups = DefaultGroup.class)
    private String shortName;
 
    @ApiModelProperty(value = "排序")
    @Min(value = 0, message = "排序值不能小于0", groups = DefaultGroup.class)
    private Integer sort;
 
    @ApiModelProperty(value = "部门代码")
    @NotNull(message = "部门代码不能为空", groups = DefaultGroup.class)
    private String code;
 
    @ApiModelProperty(value = "")
    @NotNull(message = "部门类型不能为空", groups = DefaultGroup.class)
    private String nature;
 
    @ApiModelProperty(value = "是否公司 0:部门 1:公司")
    @NotNull(message = "是否公司不能为空", groups = DefaultGroup.class)
    private boolean isCompany;
 
    @ApiModelProperty(value = "状态")
    @TableField(fill = FieldFill.INSERT)
    private Integer status;
 
    @ApiModelProperty(value = "子部门")
    @TableField(exist = false)
    private List<SysDept> children = new ArrayList<>();
 
    // @ApiModelProperty(value = "上级部门名称")
    // @TableField(exist = false)
    // private String parentName;
 
    // @ApiModelProperty(value = "公司名称")
    // @TableField(exist = false)
    // private String companyName;
 
    @Override
    public SysDept clone() throws CloneNotSupportedException {
        SysDept dept = (SysDept) super.clone();
        dept.children = new ArrayList<>();
        return dept;
    }
}