/// 部门信息 class DeptInfo { /// 部门id String? departmentID; /// 头像 String? faceURL; /// 显示名 String? name; /// 上一级部门id String? parentID; /// 排序方式 int? order; /// 部门类型 int? departmentType; /// 创建时间 int? createTime; /// 子部门数量 int? subDepartmentNum; /// 成员数量 int? memberNum; /// 扩展字段 String? ex; /// 附加信息 String? attachedInfo; String? relatedGroupID; DeptInfo( {this.departmentID, this.faceURL, this.name, this.parentID, this.order, this.departmentType, this.createTime, this.subDepartmentNum, this.memberNum, this.ex, this.attachedInfo, this.relatedGroupID}); DeptInfo.fromJson(Map json) { departmentID = json['departmentID']; faceURL = json['faceURL']; name = json['name']; parentID = json['parentID']; order = json['order']; departmentType = json['departmentType']; createTime = json['createTime']; subDepartmentNum = json['subDepartmentNum']; memberNum = json['memberNum']; ex = json['ex']; attachedInfo = json['attachedInfo']; relatedGroupID = json['relatedGroupID']; } Map toJson() { final data = Map(); data['departmentID'] = this.departmentID; data['faceURL'] = this.faceURL; data['name'] = this.name; data['parentID'] = this.parentID; data['order'] = this.order; data['departmentType'] = this.departmentType; data['createTime'] = this.createTime; data['subDepartmentNum'] = this.subDepartmentNum; data['memberNum'] = this.memberNum; data['ex'] = this.ex; data['attachedInfo'] = this.attachedInfo; data['relatedGroupID'] = this.relatedGroupID; return data; } @override bool operator ==(Object other) => identical(this, other) || other is DeptInfo && runtimeType == other.runtimeType && departmentID == other.departmentID; @override int get hashCode => departmentID.hashCode; } /// 部门成员信息 class DeptMemberInfo { /// 用户id String? userID; /// 用户昵称 String? nickname; /// 英文名 String? englishName; /// 头像 String? faceURL; /// 性别 int? gender; /// 手机号 String? mobile; /// 座机 String? telephone; /// 出生时间 int? birth; /// 邮箱 String? email; /// 所在部门的id String? departmentID; /// 排序方式 int? order; /// 职位 String? position; /// 是否是领导 int? leader; /// 状态 int? status; /// 创建时间 int? createTime; /// 入职时间 int? entryTime; /// 离职时间 int? terminationTime; /// 扩展字段 String? ex; /// 附加信息 String? attachedInfo; /// 搜索时使用 String? departmentName; /// 所在部门的所有上级部门 List? parentDepartmentList; /// 当前部门信息 DeptInfo? department; DeptMemberInfo({ this.userID, this.nickname, this.englishName, this.faceURL, this.gender, this.mobile, this.telephone, this.birth, this.email, this.departmentID, this.order, this.position, this.leader, this.status, this.createTime, this.ex, this.attachedInfo, this.departmentName, this.parentDepartmentList, this.department, }); DeptMemberInfo.fromJson(Map json) { userID = json['userID']; nickname = json['nickname']; englishName = json['englishName']; faceURL = json['faceURL']; gender = json['gender']; mobile = json['mobile']; telephone = json['telephone']; birth = json['birth']; email = json['email']; departmentID = json['departmentID']; order = json['order']; position = json['position']; leader = json['leader']; status = json['status']; createTime = json['createTime']; ex = json['ex']; attachedInfo = json['attachedInfo']; departmentName = json['departmentName']; if (json['parentDepartmentList'] != null) { parentDepartmentList = []; json['parentDepartmentList'].forEach((v) { parentDepartmentList!.add(DeptInfo.fromJson(v)); }); } department = json['department'] == null ? null : DeptInfo.fromJson(json['department']); } Map toJson() { final Map data = new Map(); data['userID'] = this.userID; data['nickname'] = this.nickname; data['englishName'] = this.englishName; data['faceURL'] = this.faceURL; data['gender'] = this.gender; data['mobile'] = this.mobile; data['telephone'] = this.telephone; data['birth'] = this.birth; data['email'] = this.email; data['departmentID'] = this.departmentID; data['order'] = this.order; data['position'] = this.position; data['leader'] = this.leader; data['status'] = this.status; data['createTime'] = this.createTime; data['ex'] = this.ex; data['attachedInfo'] = this.attachedInfo; data['departmentName'] = this.departmentName; if (this.parentDepartmentList != null) { data['parentDepartmentList'] = this.parentDepartmentList!.map((v) => v.toJson()).toList(); } data['department'] = this.department?.toJson(); return data; } @override bool operator ==(Object other) => identical(this, other) || other is DeptMemberInfo && runtimeType == other.runtimeType && userID == other.userID; @override int get hashCode => userID.hashCode; } /// 用户所在的部门 class UserInDept { /// 部门信息 DeptInfo? department; /// 所在部门自己的信息 DeptMemberInfo? member; UserInDept({this.department, this.member}); UserInDept.fromJson(Map json) { department = json['department'] != null ? DeptInfo.fromJson(json['department']) : null; member = json['member'] != null ? DeptMemberInfo.fromJson(json['member']) : null; } Map toJson() { final data = Map(); if (this.department != null) { data['department'] = this.department!.toJson(); } if (this.member != null) { data['member'] = this.member!.toJson(); } return data; } } /// 部门下的一级子部门跟员工 class DeptMemberAndSubDept { /// 一级子部门 List? departmentList; /// 一级成员 List? departmentMemberList; /// 当前部门的所有上一级部门 List? parentDepartmentList; DeptMemberAndSubDept({ this.departmentList, this.departmentMemberList, this.parentDepartmentList, }); DeptMemberAndSubDept.fromJson(Map json) { if (json['departmentList'] != null) { departmentList = []; json['departmentList'].forEach((v) { departmentList!.add(DeptInfo.fromJson(v)); }); } if (json['departmentMemberList'] != null) { departmentMemberList = []; json['departmentMemberList'].forEach((v) { departmentMemberList!.add(DeptMemberInfo.fromJson(v)); }); } if (json['parentDepartmentList'] != null) { parentDepartmentList = []; json['parentDepartmentList'].forEach((v) { parentDepartmentList!.add(DeptInfo.fromJson(v)); }); } } Map toJson() { final data = Map(); if (this.departmentList != null) { data['departmentList'] = this.departmentList!.map((v) => v.toJson()).toList(); } if (this.departmentMemberList != null) { data['departmentMemberList'] = this.departmentMemberList!.map((v) => v.toJson()).toList(); } if (this.parentDepartmentList != null) { data['parentDepartmentList'] = this.parentDepartmentList!.map((v) => v.toJson()).toList(); } return data; } } /// 搜索结果 class OrganizationSearchResult { /// 部门列表 List? departmentList; /// 部门成员列表 List? departmentMemberList; OrganizationSearchResult({ this.departmentList, this.departmentMemberList, }); OrganizationSearchResult.fromJson(Map json) { if (json['departmentList'] != null) { departmentList = []; json['departmentList'].forEach((v) { departmentList!.add(DeptInfo.fromJson(v)); }); } if (json['departmentMemberList'] != null) { departmentMemberList = []; json['departmentMemberList'].forEach((v) { departmentMemberList!.add(DeptMemberInfo.fromJson(v)); }); } } Map toJson() { final data = Map(); if (this.departmentList != null) { data['departmentList'] = this.departmentList!.map((v) => v.toJson()).toList(); } if (this.departmentMemberList != null) { data['departmentMemberList'] = this.departmentMemberList!.map((v) => v.toJson()).toList(); } return data; } }