class MDAttachment(db.Model): __tablename__ = 'Attachment' id = db.Column(db.Integer, primary_key=True) # ID主键 name = db.Column(db.String(100)) # 附件文件名 data = db.Column(db.LargeBinary(16777216)) # 附件内容 length = db.Column(db.Integer) # 附件大小(字节) use_num = db.Column(db.Integer) # 被引用计数 create_date = db.Column(db.Integer) # 建立日期 user_id = db.Column(db.Integer, db.ForeignKey("User.id")) # 上传者ID(外键) task_attachment = db.relationship("MDService_list_taskList", secondary="Task_attachment", lazy="dynamic", backref=db.backref('attachment', lazy='dynamic')) service_list_attachment = db.relationship( "MDService_list", secondary="Service_list_attachment", lazy="dynamic", backref=db.backref('attachment', lazy='dynamic')) service_contract_attachment = db.relationship( "MDService_contract", secondary="Service_contract_attachment", lazy="dynamic", backref=db.backref('attachment', lazy='dynamic')) def __str__(self): return self.name
class MDContacts(db.Model): __tablename__ = 'Contacts' id = db.Column(db.Integer, primary_key=True) # ID主键 name = db.Column(db.String(20)) # 姓名 org_id = db.Column(db.Integer, db.ForeignKey('Organization.id')) # 部门ID phone = db.Column(db.String(20)) # 电话 address = db.Column(db.String(100)) # 地址 create_date = db.Column(db.Integer) # 建立日期 last_date = db.Column(db.Integer) # 信息最后更新日期 bind_status = db.Column(db.Integer) # 绑定状态 user = db.relationship('MDuser', backref='contacts', lazy='dynamic') service_list_contact = db.relationship('MDService_list_contact', backref='contacts', lazy='dynamic') def __str__(self): return self.name
class MDExternal_HRapi(db.Model): __tablename__ = 'External_HRapi' id = db.Column(db.Integer, primary_key=True) # ID主键 name = db.Column(db.String(20)) # 用户名称 secret = db.Column(db.String(50)) user = db.relationship('MDuser', backref='external_hrapi', lazy='dynamic') def __str__(self): return self.name
class MDGoods(db.Model): __tablename__ = 'Goods' id = db.Column(db.Integer, primary_key=True) # ID主键 name = db.Column(db.String(100)) # 物品名称 goods_type = db.Column(db.String(50)) # 物品分类 cost = db.Column(db.Numeric(10, 2)) # 费用 create_date = db.Column(db.Integer) # 建立日期 last_date = db.Column(db.Integer) # 最后更新 service_list_goods = db.relationship('MDService_list_goods', backref='goods', lazy='dynamic') service_item = db.relationship("MDService_Item", secondary="service_item_goods", lazy="dynamic", backref=db.backref('goods', lazy='dynamic')) def __str__(self): return self.name
class MDService_Item(db.Model): __tablename__ = 'Service_Item' id = db.Column(db.Integer, primary_key=True) # ID主键 service_id = db.Column(db.Integer, db.ForeignKey("Service.id")) # 服务ID(外键) contract_id = db.Column( db.Integer, db.ForeignKey("Service_contract.id")) # #服务合约ID(外键) service_type_id = db.Column( db.Integer, db.ForeignKey("Service_Type.id")) # #服务项目类型ID(外键) name = db.Column(db.String(50)) # 服务项目名称 memo = db.Column(db.String(100)) # 备注 status = db.Column(db.Integer) # 状态 workerflow_id = db.Column(db.Integer) # 工作流ID service_item_agent = db.relationship('MDService_Item_agent', backref='service_item', lazy='dynamic') service_item_evaluate = db.relationship('MDService_Item_evaluate', backref='service_item', lazy='dynamic') service_item_solution = db.relationship('MDService_Item_solution', backref='service_item', lazy='dynamic') service_level_agreemnts = db.relationship('MDService_level_agreements', backref='service_item', lazy='dynamic') service_list = db.relationship('MDService_list', backref='service_item', lazy='dynamic') timing_task = db.relationship('MDTiming_task', backref='service_item', lazy='dynamic') def __str__(self): return self.name
class MDuser(db.Model): __tablename__ = 'User' id = db.Column(db.Integer, primary_key=True) # ID主键 name = db.Column(db.String(20)) # 用户名称 nickname = db.Column(db.String(20)) # 用户昵称 # 联系人数据接口,如果为空则从本地数据库获取。 ——将来可能使用接口关联相关的联系人信息 external_hrApi_id = db.Column(db.Integer, db.ForeignKey('External_HRapi.id')) contacts_id = db.Column(db.Integer, db.ForeignKey('Contacts.id')) # 联系人ID wx_session_id = db.Column(db.String(128)) # 微信登录ID wx_open_id = db.Column(db.String(128)) # 微信登录ID create_date = db.Column(db.Integer) # 建立日期 last_date = db.Column(db.Integer) # 最后登录日期 token = db.Column(db.String(500)) bind_status = db.Column(db.Integer) # 绑定状态 attachment = db.relationship('MDAttachment', backref='user', lazy='dynamic') service_item_agent = db.relationship('MDService_Item_agent', backref='user', lazy='dynamic') user_service_list = db.relationship('MDService_list', backref='user', lazy='dynamic', foreign_keys="MDService_list.user_id") agent_service_list = db.relationship( 'MDService_list', backref='agent', lazy='dynamic', foreign_keys="MDService_list.agent_id") task_list = db.relationship('MDService_list_taskList', backref='worker', lazy='dynamic') service_list_evaluate = db.relationship('MDService_list_evaluate', backref='user', lazy='dynamic') service_list_goods = db.relationship('MDService_list_goods', backref='user', lazy='dynamic') allot_task = db.relationship('MDAllot_task', backref='user', lazy='dynamic') def __str__(self): return self.name
class MDService_Type(db.Model): __tablename__ = 'Service_Type' id = db.Column(db.Integer, primary_key=True) # ID主键 name = db.Column(db.String(50)) # 服务项目类型名称 code = db.Column(db.String(20)) # 服务项目类型代码 memo = db.Column(db.String(100)) # 备注 status = db.Column(db.Integer) # 状态 service_item = db.relationship('MDService_Item', backref='service_type', lazy='dynamic') def __str__(self): return self.name
class MDUSA_service_contract(db.Model): __tablename__ = 'USA_service_contract' id = db.Column(db.Integer, primary_key=True) # ID主键 name = db.Column(db.String(50)) # 用户服务合同名称 start_date = db.Column(db.Integer) # 开始日期 end_date = db.Column(db.Integer) # 结束日期 memo = db.Column(db.String(100)) # 备注 status = db.Column(db.Integer) # 状态 service_item = db.relationship("MDService_Item", secondary="USA_service_item", lazy="dynamic", backref=db.backref('USA_service_contract', lazy='dynamic')) organization = db.relationship("MDOrganization", secondary="USA_org", lazy="dynamic", backref=db.backref('USA_service_contract', lazy='dynamic')) def __str__(self): return self.name
class MDOrganization(db.Model): __tablename__ = 'Organization' id = db.Column(db.Integer, primary_key=True) # ID主键 name = db.Column(db.String(20)) # 组织名称 create_date = db.Column(db.Integer) # 建立日期 last_date = db.Column(db.Integer) # 信息最后更新日期 contacts = db.relationship('MDContacts', backref='organization', lazy='dynamic') parent_id = db.Column( db.Integer, db.ForeignKey("Organization.id")) # 上级组织ID (根组织=null) parent = db.relationship("MDOrganization", remote_side=[id], backref=db.backref('childs', lazy='dynamic')) service_vendor = db.relationship('MDService_vendor', backref='organization', lazy='dynamic') def __str__(self): return self.name
class MDService_Item_solution(db.Model): __tablename__ = 'Service_Item_solution' id = db.Column(db.Integer, primary_key=True) # ID主键 service_item_id = db.Column(db.Integer, db.ForeignKey("Service_Item.id")) # 服务项目ID(外键) name = db.Column(db.String(50)) # 解决方案名称 memo = db.Column(db.String(100)) # 备注 status = db.Column(db.Integer) # 状态 service_list = db.relationship('MDService_list', backref='service_item_solution', lazy='dynamic') def __str__(self): return self.name
class MDService_Item_evaluate(db.Model): __tablename__ = 'Service_Item_evaluate' id = db.Column(db.Integer, primary_key=True) # ID主键 service_item_id = db.Column(db.Integer, db.ForeignKey("Service_Item.id")) # 服务项目ID(外键) name = db.Column(db.String(50)) # 服务项目评价名称 highest = db.Column(db.Float) # 最高分 lowest = db.Column(db.Float) # 最低分 service_list_evaluate = db.relationship('MDService_list_evaluate', backref='service_item_evaluate', lazy='dynamic') def __str__(self): return self.name
class MDTiming_task(db.Model): __tablename__ = 'timing_task' id = db.Column(db.Integer, primary_key=True) # ID主键 task_name = db.Column(db.String(255)) # 工单名称 service_item_id = db.Column(db.Integer, db.ForeignKey("Service_Item.id")) # 服务项目ID(外键) urgency = db.Column(db.Integer) # 紧急度 scope = db.Column(db.Integer) # 影响范围 period = db.Column(db.Integer) # 周期 descript = db.Column(db.String(255)) # 描述 task_time = db.Column(db.DateTime) # 时间 cost = db.Column(db.Numeric(10, 2)) # 服务费 allot_task = db.relationship('MDAllot_task', backref='timing_task', lazy='dynamic')
class MdService_Cluster(db.Model): __tablename__ = 'Service_Cluster' id = db.Column(db.Integer, primary_key=True) # ID主键 name = db.Column(db.String(50)) # 服务簇名称 status = db.Column(db.Integer, default=1) # 状态 service = db.relationship('MDService', backref='service_cluster', lazy='dynamic') def __str__(self): return self.name @property def status_str(self): if self.status == 0: return "无效" else: return "生效"
class MDService_level_agreements(db.Model): __tablename__ = 'Service_level_agreemnts' id = db.Column(db.Integer, primary_key=True) # ID主键 service_item_id = db.Column(db.Integer, db.ForeignKey("Service_Item.id")) # 服务项目ID(外键) key = db.Column(db.Integer) # 服务级别协议key 1,2,3,4... name = db.Column(db.String(50)) # 服务级别协议名称 cost = db.Column(db.Numeric(10, 2)) # 服务费 tto = db.Column(db.Integer) # 响应时间 ttr = db.Column(db.Integer) # 解决时间 status = db.Column(db.Integer) # 状态 last_date = db.Column(db.Integer) # 信息最后更新日期 service_list = db.relationship('MDService_list', backref='service_level_agreemnts', lazy='dynamic') def __str__(self): return self.name
class MDService_contract(db.Model): __tablename__ = 'Service_contract' id = db.Column(db.Integer, primary_key=True) # ID主键 name = db.Column(db.String(50)) # 合同名称 service_vendor_id = db.Column( db.Integer, db.ForeignKey("Service_vendor.id")) # 服务供应商ID(外键) valid_date = db.Column(db.Integer) # 有效日期 billing_cycle = db.Column(db.Integer) # 计费周期 billing_cycle_unit = db.Column(db.Integer) # 计费周期单位 currency = db.Column(db.String(10)) # 币种 memo = db.Column(db.String(100)) # 备注 status = db.Column(db.Integer) # 状态 service_item = db.relationship('MDService_Item', backref='service_contract', lazy='dynamic') def __str__(self): return self.name
class MDService(db.Model): __tablename__ = 'Service' id = db.Column(db.Integer, primary_key=True) # ID主键 Service_cluster_id = db.Column( db.Integer, db.ForeignKey("Service_Cluster.id")) # 服务簇ID(外键) name = db.Column(db.String(50)) # 服务名称 memo = db.Column(db.String(100)) # 备注 status = db.Column(db.Integer, default=1) # 状态 service_item = db.relationship('MDService_Item', backref='service', lazy='dynamic') def __str__(self): return self.name @property def status_str(self): if self.status == 0: return "无效" else: return "生效"
class MDService_vendor(db.Model): # 一对一按那个键对应 __tablename__ = 'Service_vendor' id = db.Column(db.Integer, primary_key=True) # ID主键 name = db.Column(db.String(50)) # 供应商名称 contacts = db.Column(db.String(50)) # 联系人 contactus = db.Column(db.String(100)) # 联系方式 address = db.Column(db.String(50)) # 地址 legal_representative = db.Column(db.String(50)) # 法人代表 enterprise_code = db.Column(db.String(50)) # 企业代码 memo = db.Column(db.String(100)) # 备注 status = db.Column(db.Integer) # 状态 service_org = db.Column(db.Integer) # 服务团队架构 last_date = db.Column(db.Integer) # 信息最后更新日期 org_id = db.Column(db.Integer, db.ForeignKey("Organization.id")) # 组织结构ID(外键) service_contract = db.relationship('MDService_contract', backref='service_vendor', lazy='dynamic') def __str__(self): return self.name
class MDService_list(db.Model): __tablename__ = 'Service_list' id = db.Column(db.Integer, primary_key=True) # ID主键 parent = db.relationship("MDService_list", remote_side=[id], backref=db.backref('childs', lazy='dynamic')) parents_id = db.Column(db.Integer, db.ForeignKey("Service_list.id")) # 父级服务单ID source = db.Column(db.Integer) # 发起源参考 SERVER_SOURCE usa_service_item_id = db.Column(db.Integer) # USA服务项目ID # usa_service_item_id = db.Column(db.Integer, db.ForeignKey( # 'USA_service_item.id')) # USA服务项目ID title = db.Column(db.String(100)) # 标题 descript = db.Column(db.String(250)) # 描述 scope = db.Column(db.Integer) # 影响范围 SCOPE urgency = db.Column(db.Integer) # 紧急度 URGENCY tick_id = db.Column(db.Integer) # 流程id service_item_id = db.Column(db.Integer, db.ForeignKey("Service_Item.id")) # 服务项目ID(外键) user_id = db.Column(db.Integer, db.ForeignKey('User.id')) # 发起人ID agent_id = db.Column(db.Integer, db.ForeignKey('User.id')) # 受理人ID service_level_agreemnts_id = db.Column( db.Integer, db.ForeignKey( 'Service_level_agreemnts.id')) # 服务级别协议ID(服务台根据 影响范围和紧急度选择不同的级别) # 以下三个字段,数据来源于服务级别协议 cost = db.Column(db.Numeric(10, 2)) # 服务费 promise_tto = db.Column(db.Integer) # 理论响应时间 (时间戳) promise_ttr = db.Column(db.Integer) # 理论解决时间 (时间戳) price = db.Column(db.Numeric(10, 2)) # 物品总费用 create_date = db.Column(db.Integer) # 发起日期 accept_date = db.Column(db.Integer) # 受理日期 assign_date = db.Column(db.Integer) # 分配日期 resolve_date = db.Column(db.Integer) # 解决日期 advise = db.Column(db.String(250)) # 拒绝原因 solution_id = db.Column( db.Integer, db.ForeignKey('Service_Item_solution.id')) # 服务项解决方案ID closeing_statment = db.Column(db.String(250)) # 结案说明 service_status = db.Column(db.Integer) # 状态 参考 SERVICE_STATUS task_list = db.relationship('MDService_list_taskList', backref='service_list', lazy='dynamic') contact = db.relationship('MDService_list_contact', backref='service_list', lazy='dynamic') evaluate = db.relationship('MDService_list_evaluate', backref='service_list', lazy='dynamic') goods = db.relationship('MDService_list_goods', backref='service_list', lazy='dynamic') def __str__(self): return self.title def to_basic_dict(self): resp_dict = { "id": self.id, "title": self.title, "urgency": urgency_transition(self.urgency), "user": self.user.name, "time": time.strftime("%Y-%m-%d", time.localtime(self.create_date)), "status": service_list_status_transition(self.service_status), "service_item": self.service_item.name } return resp_dict