class StoreModel(db.Model): __tablename__ = 'store' #id = db.Column(db.Integer, primary_key=True) id = db.Column(db.Integer, db.Sequence('seq_store'), primary_key=True) name = db.Column(db.String(80)) items = db.relationship('ItemModel', lazy='dynamic') # lista de items def __init__(self, name): self.name = name def json(self): return { 'name': self.name, 'items': [item.json() for item in self.items.all()] } @classmethod def find_by_name(cls, name): return cls.query.filter_by(name=name).first() def save_to_db(self): db.session.add(self) db.session.commit() def delete_from_db(self): db.session.delete(self) db.session.commit()
class outStore(db.Model, Serializrable): __tablename__ = 'outstore' id = db.Column(db.Integer, db.Sequence('id_seq'), primary_key=True, autoincrement=True) #出库类型 is_type = db.Column(db.Integer, nullable=False) #1已完成样品 #出库时间 out_date = db.Column(db.String(8), nullable=False) #大纲编号 program_code = db.Column(db.String(80)) #委托单号 order_number = db.Column(db.String(80)) #试验件数量 is_num = db.Column(db.Integer, nullable=False) #领取人 out_name = db.Column(db.String(80)) create_name = db.Column(db.String(80), nullable=False) #备注 remarks = db.Column(db.String(120)) create_time = db.Column(db.DateTime, default=datetime.datetime.now) def __repr__(self): return '(%r, %r)' % (self.order_number, self.id)
class Message(db.Model, Serializrable): __tablename__ = 'messages' #消息id message_id = db.Column(db.Integer, db.Sequence('id_seq'), primary_key=True, autoincrement=True) #消息名 #message_name = db.Column(db.String(20), nullable=False) #message状态 0:未读 1 已读 message_satus = db.Column(db.Integer, nullable=False) #message type: 0:入库申请 1 出库申请 2 等待入库 3 报损消息 4 工单分配 5 入库申请通过 6 入库申请驳回 # 7新建项目 message_type = db.Column(db.Integer) #创建消息账号 create_name = db.Column(db.String(80), nullable=False) #接收账号 recipient_name = db.Column(db.String(80), nullable=False) #消息内容 #message_notes = db.Column(db.String(256)) create_at = db.Column(db.DateTime, default=datetime.datetime.now) update_at = db.Column(db.DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now) def __repr__(self): return '(%r, %r)' % (self.message_id)
class Project(db.Model, Serializrable): __tablename__ = 'project' id = db.Column(db.Integer, db.Sequence('id_seq'), primary_key=True, autoincrement=True) pro_name = db.Column(db.String(80), nullable=False, unique=True) res_name = db.Column(db.String(80), nullable=False) create_name = db.Column(db.String(80), nullable=False) finish_time = db.Column(db.String(8), nullable=False) create_time = db.Column(db.DateTime, default=datetime.datetime.now) company = db.Column(db.String(80)) category = db.Column(db.String(80)) postcode = db.Column(db.String(80)) contact = db.Column(db.String(80)) tele_phone = db.Column(db.String(80)) u_email = db.Column(db.String(80)) address = db.Column(db.String(256)) #检查单 #check_id = db.Column(db.Integer) program = db.relationship('Program', backref='pro', lazy=True) def __repr__(self): return '<Project %r>' % self.pro_name
class Incident(db.Model, Serializrable): __tablename__ = 'incidents' #工单ID incident_id = db.Column(db.Integer, db.Sequence('id_seq'), primary_key=True, autoincrement=True) #创建工单账号 create_name = db.Column(db.String(80), nullable=False) #委托单号 order_number = db.Column(db.String(80), nullable=False) #检测项目 experi_project = db.Column(db.String(20)) #检测依据 experi_rely = db.Column(db.String(20)) #派工类型 experi_type = db.Column(db.String(20)) #派工id #experi_type_id = db.Column(db.Integer) #工单状态 = 0:创建,1:实验中,2:完成 ,3 待审核 incident_status = db.Column(db.Integer) create_at = db.Column(db.DateTime, default=datetime.datetime.now) update_at = db.Column(db.DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now) def __repr__(self): return '(%r, %r)' % (self.incident_id)
class People(db.Model, Serializrable): id = db.Column(db.Integer, db.Sequence('id_seq'), primary_key=True) username = db.Column(db.String(80), unique=True, nullable=False) real_title = db.Column(db.String(120), nullable=False) addresses = db.relationship('Address', backref='person', lazy='dynamic') def __repr__(self): return '<People %r.%r>' % (self.username, self.real_title)
class LancamentoModel(db.Model): __tablename__ = 'lancamento' id = db.Column(db.Integer, db.Sequence('lancamento_id_seq'), primary_key=True) estabelecimento = db.Column(db.String(100), nullable=False) data = db.Column(db.Date, nullable=False) valor = db.Column(db.Float, nullable=False) categoria_id = db.Column(db.Integer, db.ForeignKey("categoria.id")) categoria = db.relationship(CategoriaModel, backref=backref('categoria', uselist=True, cascade='delete,all')) fatura_id = db.Column(db.Integer, db.ForeignKey("fatura.id")) fatura = db.relationship(FaturaModel, backref=backref('fatura', uselist=True, cascade='delete,all')) def __init__(self, id, estabelecimento, data, valor, categoria, fatura, categoria_id): self.id = id self.estabelecimento = estabelecimento self.data = data self.valor = valor self.categoria = categoria self.fatura = fatura self.categoria_id = categoria_id @property def serialize(self): return { 'id': self.id, 'estabelecimento': self.estabelecimento, 'data': self.data.strftime('%d/%m/%Y'), 'valor': self.valor, 'categoria': self.categoria.serialize, 'fatura': self.fatura.serialize } def json(self): return { 'id': self.id, 'estabelecimento': self.estabelecimento, 'data': self.data, 'valor': self.valor, 'categoria': { 'id': self.id, 'nome': self.nome }, 'fatura': { 'id': self.id, 'data_vencimento': self.data_vencimento, 'data_pagamento': self.data_pagamento, 'valor': self.valor } }
class Address(db.Model, Serializrable): id = db.Column(db.Integer, db.Sequence('id_seq'), primary_key=True, autoincrement=True) username = db.Column(db.String(80), db.ForeignKey('people.username')) address = db.Column(db.String(120), nullable=False) def __repr__(self): return '<Address %r.%r>' % (self.username, self.address)
class User(db.Model, Serializrable): __tablename__ = 'users' id = db.Column(db.Integer, db.Sequence('id_seq'), primary_key=True) username = db.Column(db.String(80), unique=True, nullable=False) u_id = db.Column(db.String(32), unique=True, nullable=False) u_password = db.Column(db.String(32), unique=True, nullable=False) u_authority = db.Column(db.String(256), unique=True, nullable=False) u_department = db.Column(db.String(32), unique=True, nullable=False) is_delete = db.Column(db.Boolean()) u_email = db.Column(db.String(120), unique=True, nullable=False) def __repr__(self): return '<User %r>' % self.username
class AlterData(db.Model, Serializrable): __tablename__ = 'alterData' #试验件id id = db.Column(db.Integer, db.Sequence('id_seq'), primary_key=True, autoincrement=True) des = db.Column(db.String(250), unique=True) create_at = db.Column(db.DateTime, default=datetime.datetime.now) update_at = db.Column(db.DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now) def __repr__(self): return '(%r, %r)' % (self.id, self.des)
class Process(db.Model, Serializrable): __tablename__ = 'processes' #工序id process_id = db.Column(db.Integer, db.Sequence('id_seq'), primary_key=True, autoincrement=True) #工序名 process_name = db.Column(db.String(20), nullable=False) #前工序id pre_process_id = db.Column(db.Integer) #后工序id pos_process_id = db.Column(db.Integer) #工单id incident_id = db.Column(db.Integer, nullable=False) #工序状态 0:已创建 1:待分配 2:已分配 3:实验中 4:已完成 process_status = db.Column(db.Integer, nullable=False) #工序状态1(备用) process_status1 = db.Column(db.Integer) #计划开始时间 start_time_d = db.Column(db.Date) #计划结束时间 end_time_d = db.Column(db.DateTime) #工时 range_time = db.Column(db.Integer) #工序参数 process_parameters = db.Column(db.String(80)) #工序备注 process_notes = db.Column(db.String(80)) #实验负责人 = incident_create_name experiment_owner = db.Column(db.String(20), nullable=False) #工序负责人 process_owner = db.Column(db.String(20)) #实验员 #工序以数组的形式存储实验员 experimenter = db.Column(db.String(180)) #步骤 step_number = db.Column(db.Integer, nullable=False) #实验单id experiment_sheet_id = db.Column(db.Integer) create_at = db.Column(db.DateTime, default=datetime.datetime.now) update_at = db.Column(db.DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now) def __repr__(self): return '(%r,%r, %r)' % (self.process_id, self.process_name, self.process_status)
class FileTempModel(db.Model, Serializrable): __tablename__ = 'filetemp' id = db.Column(db.Integer, db.Sequence('id_seq'), primary_key=True, autoincrement=True) f_key = db.Column(db.String(80), nullable=False) f_des = db.Column(db.String(80), nullable=False) f_id = db.Column(db.Integer) create_at = db.Column(db.DateTime, default=datetime.datetime.now) update_at = db.Column(db.DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now) is_delete = db.Column(db.Boolean()) def __repr__(self): return '<File %r>' % self.f_id
class UserModel(db.Model): __tablename__ = 'users' #id = db.Column(db.Integer,primary_key=True) id = db.Column(db.Integer, db.Sequence('seq_user'), primary_key=True) username = db.Column(db.String(80)) password = db.Column(db.String(80)) def __init__(self, username, password): self.username = username self.password = password def save_to_db(self): db.session.add(self) db.session.commit() @classmethod def find_by_username(cls, username): return cls.query.filter_by(username=username).first() ''' connection = sqlite3.connect('data.db') cursor = connection.cursor() query = "SELECT * FROM users WHERE username=?" result = cursor.execute(query,(username,)) row = result.fetchone() if row: user = cls(*row) else: user = None connection.close() return user ''' @classmethod def find_by_id(cls, _id): return cls.query.filter_by(id=_id).first() '''
class ComponentHis(db.Model, Serializrable): __tablename__ = 'components_his' #试验件id id = db.Column(db.Integer, db.Sequence('id_seq'), primary_key=True, autoincrement=True) original_id = db.Column(db.String(80)) #试验件名称 component_name = db.Column(db.String(20)) #试验件编码 component_unique_id = db.Column(db.String(80), nullable=False) #委托单单号 order_number = db.Column(db.String(80), nullable=False) #入库id instore_id = db.Column(db.Integer) #出库id outstore_id = db.Column(db.Integer) #工单id incident_id = db.Column(db.Integer) #工序id process_id = db.Column(db.Integer) #试验件状态 0:待入库 1: 确认入库 2:出库 component_status = db.Column(db.Integer, default=0) #试验件状态1 0:待分配 1 已分配 2 实验中 3: 实验结束 4 待审核 5 报废 6 成品 component_status1 = db.Column(db.Integer) #实验负责人 experiment_owner = db.Column(db.String(20)) #工序负责人 process_owner = db.Column(db.String(20)) #实验员 experimenter = db.Column(db.String(20)) #步骤 step_number = db.Column(db.Integer) #实验单id experiment_sheet_id = db.Column(db.Integer) #是否审核通过 1 通过 2 待审核 is_check = db.Column(db.Integer, default=0) create_at = db.Column(db.DateTime, default=datetime.datetime.now) update_at = db.Column(db.DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now) def __repr__(self): return '( %r)' % (self.component_unique_id)
class Program(db.Model, Serializrable): __tablename__ = 'program' id = db.Column(db.Integer, db.Sequence('id_seq'), primary_key=True, autoincrement=True) #项目名称 pro_name = db.Column(db.String(80), nullable=False, unique=True) #项目id pro_id = db.Column(db.Integer, db.ForeignKey('project.id'), nullable=False) #委托单号 order_number = db.Column(db.String(80), nullable=False) #任务书编码 task_id = db.Column(db.String(80)) #任务书id task_form_id = db.Column(db.Integer) #试验大纲编码 program_code = db.Column(db.String(80)) #试验大纲id program_id = db.Column(db.Integer) #任务书名称 task_name_book = db.Column(db.String(80)) #委托单时间 order_time = db.Column(db.String(8), nullable=False) #备注 remarks = db.Column(db.String(120)) #检测项目名称 test_item = db.Column(db.String(80)) #试验任务课题组/合同号 contract_id = db.Column(db.String(80)) #样品名称 sample_name = db.Column(db.String(80)) #项目材料 sample_material = db.Column(db.String(80)) sample_num = db.Column(db.String(80)) #委托书id order_id = db.Column(db.Integer) #force to have #创建项目时间 create_time = db.Column(db.DateTime, default=datetime.datetime.now) #创建项目账号 create_name = db.Column(db.String(80)) def __repr__(self): return '<order_number %r>' % self.order_number
class Experiment(db.Model, Serializrable): __tablename__ = 'experiments' #工序模板id experiment_id = db.Column(db.Integer, db.Sequence('id_seq'), primary_key=True, autoincrement=True) #工序模板名称 experiment_name = db.Column(db.String(20), nullable=False) #派工Step experi_step = db.Column(db.Integer) #派工类型名称 experi_type = db.Column(db.String(20), nullable=False) #派工类型描述 experi_des = db.Column(db.String(80)) def __repr__(self): return '(%r, %r)' % (self.experiment_id, self.experiment_name)
class User(db.Model, Serializrable): __tablename__ = 'users' id = db.Column(db.Integer, db.Sequence('id_seq'), primary_key=True) username = db.Column(db.String(80), unique=True, nullable=False) u_id = db.Column(db.String(32), unique=True, nullable=False) u_password = db.Column(db.String(32), nullable=False) u_authority = db.Column(db.String(256), nullable=False) u_createtime = db.Column(db.DateTime, default=datetime.datetime.now) u_department = db.Column(db.String(32), nullable=False) u_name = db.Column(db.String(256), nullable=False) u_tele = db.Column(db.String(256)) is_delete = db.Column(db.Boolean(), default=False) u_email = db.Column(db.String(120)) u_status = db.Column(db.Integer, default=0) #初始状态为0 def __repr__(self): return '<User %r>' % self.username
class ProgramOutStore(db.Model, Serializrable): __tablename__ = 'programOutStore' id = db.Column(db.Integer, db.Sequence('id_seq'), primary_key=True,autoincrement=True) #项目名称 pro_name = db.Column(db.String(80), nullable=False,unique=True) #委托单号 order_number = db.Column(db.String(80),nullable = False) #试验大纲编码 program_code = db.Column(db.String(80),nullable = False) #样品名称 sample_name = db.Column(db.String(80)) sample_material = db.Column(db.String(80)) sample_num = db.Column(db.String(80)) create_time = db.Column(db.DateTime, default=datetime.datetime.now) #创建项目账号 create_name = db.Column(db.String(80)) def __repr__(self): return '<order_number %r>' % self.order_number
class Messagetxt(db.Model, Serializrable): __tablename__ = 'messagestxt' #消息id message_id = db.Column(db.Integer, db.Sequence('id_seq'), primary_key=True, autoincrement=True) #消息名 #message type: 0:入库申请 1 出库申请 2 等待入库 3 报损消息 4 工单分配 5 入库申请通过 6 入库申请驳回 message_type = db.Column(db.Integer) #消息内容 message_notes = db.Column(db.String(256)) create_at = db.Column(db.DateTime, default=datetime.datetime.now) update_at = db.Column(db.DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now) def __repr__(self): return '(%r, %r)' % (self.message_id)
class Instore(db.Model, Serializrable): __tablename__ = 'instore' id = db.Column(db.Integer, db.Sequence('id_seq'),primary_key=True,autoincrement=True) #入库类型 is_type = db.Column(db.Integer, nullable=False) #0待测样品,1已完成样品,2问题样品 入库类型 #入库时间 in_date = db.Column(db.String(8),nullable = False) #大纲编号 program_code = db.Column(db.String(80)) #委托单号 order_number = db.Column(db.String(80),nullable = False) #0申请,1成功,2失败 is_status = db.Column(db.Integer, nullable=False) #试验件数量 is_num = db.Column(db.Integer, nullable=False) #入库数量 in_store_num = db.Column(db.Integer, nullable=False,default = 0) #审核人姓名 check_name = db.Column(db.String(80)) #审核时间 check_time = db.Column(db.String(8)) create_name = db.Column(db.String(80),nullable = False) #入库接收人 store_name = db.Column(db.String(80),nullable = False) #入库位置 location = db.Column(db.String(80),nullable = False) #检查单 check_form_id = db.Column(db.Integer) #签字检查单 sign_check_form_id = db.Column(db.Integer) create_time = db.Column(db.DateTime, default=datetime.datetime.now) def __repr__(self): return '(%r, %r)' % (self.order_number, self.id)
class Work(db.Model): __tablename__ = 'WORK' id = db.Column(db.Integer, db.Sequence('work_id_seq'), primary_key=True) company_name = db.Column(db.String, nullable=False) job_title = db.Column(db.String(80)) location = db.Column(db.String) start_date = db.Column(db.Date) end_date = db.Column(db.Date) current = db.Column(db.Boolean) user_id = db.Column(db.String, db.ForeignKey('LINKEDINUSER.id')) user = db.relationship('LINKEDINUSER') def __init__(self, company_name, user_id, job_title, location, start_date, end_date, current): self.company_name = company_name self.user_id = user_id self.job_title = job_title self.location = location self.start_date = start_date self.end_date = end_date self.current = current def json(self): return { 'company_name': self.company_name, 'user_id': self.user_id, 'job_title': self.job_title, 'location': self.location, 'start_date': self.start_date, 'end_date': self.end_date, 'current': self.current } @classmethod def find_by_company_name(cls, company_name): return cls.query.filter_by(company_name=company_name) @classmethod def find_by_job_title(cls, job_title): return cls.query.filter_by(job_title=job_title) @classmethod def find_by_location(cls, location): return cls.query.filter_by(location=location) @classmethod def find_by_user_id(cls, user_id): return cls.query.filter_by(user_id=user_id) @classmethod def find_by_id(cls, _id): return cls.query.filter_by(id=_id) def save_to_db(self): db.session.add(self) db.session.commit() def delete_from_db(self): db.session.delete(self) db.session.commit()
class Education(db.Model): __tablename__ = 'EDUCATION' id = db.Column(db.Integer, db.Sequence('education_id_seq'), primary_key=True) school_name = db.Column(db.String, nullable=False) program = db.Column(db.String) location = db.Column(db.String) start_date = db.Column(db.Date) end_date = db.Column(db.Date) current = db.Column(db.Boolean) duration = db.Column(db.String) user_id = db.Column(db.String, db.ForeignKey('LINKEDINUSER.id')) user = db.relationship('LINKEDINUSER') def __init__(self, school_name, user_id, program, location, start_date, end_date, current, duration): self.school_name = school_name self.user_id = user_id self.program = program self.location = location self.start_date = start_date self.end_date = end_date self.current = current self.duration = duration def json(self): return { 'school_name': self.school_name, 'user_id': self.user_id, 'program': self.program, 'location': self.location, 'start_date': self.start_date, 'end_date': self.end_date, 'current': self.current 'duration': self.duration} @classmethod def find_by_school_name(cls, school_name): return cls.query.filter_by(school_name=school_name) @classmethod def find_by_program(cls, program): return cls.query.filter_by(program=program) @classmethod def find_by_location(cls, location): return cls.query.filter_by(location=location) @classmethod def find_by_user_id(cls, user_id): return cls.query.filter_by(user_id=user_id) @classmethod def find_by_id(cls, _id): return cls.query.filter_by(id=_id) def save_to_db(self): db.session.add(self) db.session.commit() def delete_from_db(self): db.session.delete(self) db.session.commit()
class ItemModel(db.Model): __tablename__ = 'items' #id = db.Column(db.Integer, primary_key=True) id = db.Column(db.Integer, db.Sequence('seq_item'), primary_key=True) name = db.Column(db.String(80)) price = db.Column(db.Float(precision=2)) store_id = db.Column(db.Integer, db.ForeignKey('store.id')) store = db.relationship('StoreModel') # apenas uma store, lado 1 do 1xN def __init__(self,name,price, store_id): self.name = name self.price = price self.store_id = store_id def json(self): return {'name': self.name, 'price': self.price} @classmethod def find_by_name(cls, name): return cls.query.filter_by(name=name).first() #query - query builder - video 73 #SELECT * FROM Items WHERE name=name LIMIT 1 ''' connection = sqlite3.connect('data.db') cursor = connection.cursor() query = "SELECT * FROM items where name=?" result = cursor.execute(query,(name,)) row = result.fetchone() connection.close() if row: return cls(*row) ''' def save_to_db(self): #se o nome for igual, o flask atualiza db.session.add(self) db.session.commit() ''' connection = sqlite3.connect('data.db') cursor = connection.cursor() query = "INSERT INTO items VALUES (NULL,?,?)" cursor.execute(query,(self.name, self.price)) connection.commit() connection.close() ''' def delete_from_db(self): db.session.delete(self) db.session.commit() '''