From 226202d6eee6480f3386c6295be26fad42940cc8 Mon Sep 17 00:00:00 2001
From: zhaoqingang <zhaoqg0118@163.com>
Date: 星期五, 28 三月 2025 09:41:39 +0800
Subject: [PATCH] 知识库分享,历史记录文件

---
 app/models/organization_model.py |   59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 55 insertions(+), 4 deletions(-)

diff --git a/app/models/organization_model.py b/app/models/organization_model.py
index f0c2f55..d7a17a0 100644
--- a/app/models/organization_model.py
+++ b/app/models/organization_model.py
@@ -5,6 +5,7 @@
 from sqlalchemy import Column, Integer, String, Table, ForeignKey, DateTime
 from sqlalchemy.orm import relationship, backref
 
+from app.config.const import DEPT_STATUS_DELETE
 from app.models.base_model import Base
 
 # organization_group_table = Table('organization_group', Base.metadata,
@@ -29,7 +30,7 @@
     leader = Column(String(255))
     phone = Column(String(32))
     email = Column(String(64))
-    status = Column(String(10), nullable=False, default="0")
+    status = Column(String(10), nullable=False, default="1")
 
     # groups = relationship('GroupModel',
     #                             secondary=organization_group_table,
@@ -65,11 +66,49 @@
             'roles': [self.role_json(role) for role in self.roles],
             # 'groups': [self.group_json(group) for group in self.groups],
             'children': [
-                org.to_json() for org in self.children
+                org.to_json() for org in self.children if org.status != DEPT_STATUS_DELETE
             ]
         }
 
         return json
+
+    def to_dict(self):
+        json = {
+            'deptId': self.id,
+            'createTime': self.created_at,
+            'updateTime': self.updated_at,
+            'deptName': self.name,
+            'address': self.address,
+            'code': self.code,
+            'iconCls': self.iconcls,
+            'orderNum': self.seq,
+            'parentId': self.get_pid(),
+            'parentName': self.get_pName(),
+            'leader': self.leader,
+            'phone': self.phone,
+            'email': self.email,
+            'status': self.status,
+            'roles': [self.role_json(role) for role in self.roles],
+        }
+
+        return json
+
+    def to_base_json(self):
+        json = {
+            'deptId': self.id,
+            'deptName': self.name,
+            'address': self.address,
+            'code': self.code,
+            'iconCls': self.iconcls,
+            'orderNum': self.seq,
+            'leader': self.leader,
+            'phone': self.phone,
+            'email': self.email,
+            'status': self.status
+        }
+
+        return json
+
 
     def role_json(self, role):
         return {
@@ -90,6 +129,13 @@
             'id': self.id,
             'label': self.name,
             'children': [org.to_tree_select_json() for org in self.children]
+        }
+
+    def to_parent_select_json(self):
+        return {
+            'id': self.id,
+            'label': self.name,
+            'parent': [org.to_parent_select_json() for org in self.parent]
         }
 
     def get_pid(self):
@@ -123,8 +169,8 @@
     orderNum: int
     address: Optional[str] = ""
     parentId: Optional[str] = ""
-    status: str
-    roles: list
+    status:  Optional[str|int] = ""
+    roles: Optional[list] = []
     groups: Optional[list] = []
 
 
@@ -132,3 +178,8 @@
     deptId: str
     parentId: str
     orderNum: int
+
+
+class DeptStatus(BaseModel):
+    deptId: str
+    status: str
\ No newline at end of file

--
Gitblit v1.8.0