Organization.py 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. from app import db
  2. from flask_login import UserMixin, AnonymousUserMixin
  3. from datetime import datetime
  4. organization_resource_table = db.Table('SYORGANIZATION_SYRESOURCE', db.metadata,
  5. db.Column('SYRESOURCE_ID', db.String, db.ForeignKey('SYRESOURCE.ID')),
  6. db.Column('SYORGANIZATION_ID', db.String, db.ForeignKey('SYORGANIZATION.ID')))
  7. class Organization(db.Model, UserMixin):
  8. __tablename__ = 'SYORGANIZATION'
  9. ID = db.Column(db.String(36), primary_key=True)
  10. CREATEDATETIME = db.Column(db.DateTime, index=True, default=datetime.now)
  11. UPDATEDATETIME = db.Column(db.DateTime, index=True, default=datetime.now)
  12. NAME = db.Column(db.String(200))
  13. ADDRESS = db.Column(db.String(200))
  14. CODE = db.Column(db.String(200))
  15. ICONCLS = db.Column(db.String(100))
  16. SEQ = db.Column(db.Integer)
  17. LEADER = db.Column(db.String(20))
  18. PHONE = db.Column(db.String(11))
  19. EMAIL = db.Column(db.String(50))
  20. resources = db.relationship('Resource',
  21. secondary=organization_resource_table,
  22. backref=db.backref('organizations', lazy='dynamic'))
  23. SYORGANIZATION_ID = db.Column(db.String, db.ForeignKey('SYORGANIZATION.ID'))
  24. parent = db.relationship('Organization', remote_side=[ID], backref='organization', uselist=False)
  25. children = db.relationship('Organization')
  26. def to_json(self):
  27. return {
  28. 'deptId': self.ID,
  29. 'createTime': self.CREATEDATETIME,
  30. 'updateTime': self.UPDATEDATETIME,
  31. 'deptName': self.NAME,
  32. 'address': self.ADDRESS,
  33. 'code': self.CODE,
  34. 'iconCls': self.ICONCLS,
  35. 'orderNum': self.SEQ,
  36. 'parentId': self.get_pid(),
  37. 'leader': self.LEADER,
  38. 'phone': self.PHONE,
  39. 'email': self.EMAIL,
  40. 'status': '0',
  41. 'children': [
  42. org.to_json() for org in self.children
  43. ]
  44. }
  45. def get_pid(self):
  46. if self.parent:
  47. return self.parent.ID
  48. return ''
  49. def get_id(self):
  50. return str(self.ID)
  51. def __repr__(self):
  52. return '<Organization %r>\n' %(self.NAME)