From 519930bc1112cdf7881fecce907381ce6374e74c Mon Sep 17 00:00:00 2001
From: zhaoqingang <zhaoqg0118@163.com>
Date: 星期二, 14 一月 2025 13:37:56 +0800
Subject: [PATCH] 文档出卷-未上传文件提示
---
app/models/organization_model.py | 110 ++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 92 insertions(+), 18 deletions(-)
diff --git a/app/models/organization_model.py b/app/models/organization_model.py
index ae7a1de..d7a17a0 100644
--- a/app/models/organization_model.py
+++ b/app/models/organization_model.py
@@ -1,18 +1,21 @@
from datetime import datetime
+from typing import Optional
+from pydantic import BaseModel
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,
- Column('group_id', Integer, ForeignKey('group.id')),
- Column('organization_id', String(36), ForeignKey('organization.id')))
+# organization_group_table = Table('organization_group', Base.metadata,
+# Column('group_id', Integer, ForeignKey('group.id')),
+# Column('organization_id', String(36), ForeignKey('organization.id')))
# #鏋勫缓瀵箁ole琛ㄧ殑鍏崇郴
organization_role_table = Table('organization_role', Base.metadata,
- Column('role_id', String(36), ForeignKey('role.id')),
- Column('organization_id', String(36), ForeignKey('organization.id')))
+ Column('role_id', String(36), ForeignKey('role.id', ondelete='CASCADE')),
+ Column('organization_id', String(36), ForeignKey('organization.id', ondelete='CASCADE')))
class OrganizationModel(Base):
__tablename__ = 'organization'
@@ -25,13 +28,13 @@
iconcls = Column(String(255))
seq = Column(Integer)
leader = Column(String(255))
- phone = Column(String(11))
+ 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,
- backref=backref('organizations', lazy='dynamic'))
+ # groups = relationship('GroupModel',
+ # secondary=organization_group_table,
+ # backref=backref('organizations', lazy='dynamic'))
roles = relationship('RoleModel',
secondary=organization_role_table,
@@ -61,15 +64,51 @@
'email': self.email,
'status': self.status,
'roles': [self.role_json(role) for role in self.roles],
- 'groups': [self.group_json(group) for group in self.groups],
+ # '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 {
@@ -87,25 +126,60 @@
def to_tree_select_json(self):
return {
- 'id': self.ID,
- 'label': self.NAME,
+ '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):
if self.parent:
- return self.parent.ID
+ return self.parent.id
return ''
def get_pName(self):
if self.parent:
- return self.parent.NAME
+ return self.parent.name
return ''
def get_id(self):
- return str(self.ID)
+ return str(self.id)
def __repr__(self):
- return '<Organization %r>\n' %(self.NAME)
\ No newline at end of file
+ return '<Organization %r>\n' %(self.name)
+
+
+class DeptList(BaseModel):
+ deptName: Optional[str] = ""
+
+
+class DeptInfo(BaseModel):
+ deptId: Optional[str] = ""
+ deptName: Optional[str] = ""
+ leader: Optional[str] = ""
+ phone: Optional[str] = ""
+ orderNum: int
+ address: Optional[str] = ""
+ parentId: Optional[str] = ""
+ status: Optional[str|int] = ""
+ roles: Optional[list] = []
+ groups: Optional[list] = []
+
+
+class DeptParent(BaseModel):
+ deptId: str
+ parentId: str
+ orderNum: int
+
+
+class DeptStatus(BaseModel):
+ deptId: str
+ status: str
\ No newline at end of file
--
Gitblit v1.8.0