You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

305 lines
14 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import datetime
from app.lib.Utils import Utils
from app.models.Base_model import Base
from sqlalchemy import Column, String, Integer, Float,Table, ForeignKey
from sqlalchemy.orm import relationship, backref
# 用户表
class EntityUser(Base):
__tablename__ = 'user'
user_id = Column(String(50), primary_key=True, comment="用户id")
user_name = Column(String(50), comment="用户昵称")
user_pwd = Column(String(50), comment="密码")
real_name = Column(String(50), comment="真实姓名")
user_sex = Column(Integer, comment="用户性别")
role_id = Column(String(50), comment="角色id")
user_phone = Column(String(50), comment="手机号")
remark = Column(String(500), comment="备用字段")
created_time = Column(String(50), default=Utils.get_time(), comment="用户创建时间")
update_time = Column(String(50), comment="用户更新时间")
is_enabled = Column(Integer, default=0, comment="是否禁用或删除")
# 设备配置表
class DeviceConfig(Base):
__tablename__ = 'device_config'
id = Column(String(50), primary_key=True, comment="id")
box_temperature = Column(Float, comment="设备温度")
surface_temperature = Column(Float, comment="表面温度")
door_status = Column(Integer, comment="门状态")
light_status = Column(Integer, comment="灯光状态")
fan_status = Column(Integer, comment="风扇状态")
warning_light_status = Column(Integer, comment="报警灯状态")
lock_status = Column(Integer, comment="锁状态")
# 材料表
class ExperimentSpecimen(Base):
__tablename__ = "experiment_specimen"
id = Column(String(50), comment="id", primary_key=True)
specimen_name = Column(String(50), comment="样品名称")
battery_type = Column(String(50), comment="电池型号")
specimen_num = Column(String(50), comment="样品编号")
battery_specification = Column(String(255), comment="电池规格")
battery_manufacturers = Column(String(500), comment="电池厂家")
remark = Column(String(500), comment="备注")
created_time = Column(String(50), default=Utils.get_time(), comment="创建时间")
update_time = Column(String(50), comment="更新时间")
user_id = Column(String(50), comment="创建人")
user_name = Column(String(50), comment="用户昵称")
is_enabled = Column(Integer, default=0, comment="是否禁用或删除")
md5 = Column(String(256), comment="md5值 样品名称+电池型号+样品编号+电池规格+电池厂家+备注")
# 实验信息表
class ExperimentInfo(Base):
__tablename__ = "experiment_info"
id = Column(String(50), comment="id", primary_key=True)
specimen_name = Column(String(50), comment="样品名称")
battery_type = Column(String(50), comment="电池型号")
specimen_num = Column(String(50), comment="样品编号")
battery_specification = Column(String(255), comment="电池规格")
battery_manufacturers = Column(String(500), comment="电池厂家")
remark = Column(String(500), comment="备注")
temperature = Column(Float, comment="设置温度")
expose_time = Column(Float, comment="暴露时间")
put_time = Column(Float, comment="放置时间")
short_circuit_param = Column(Float, comment="短路参数")
desc = Column(String(500), comment="描述")
created_time = Column(String(50), default=Utils.get_time(), comment="创建时间")
update_time = Column(String(50), comment="更新时间")
end_time = Column(String(50), comment="结束时间")
user_id = Column(String(50), comment="创建人")
user_name = Column(String(50), comment="用户昵称")
is_enabled = Column(Integer, default=0, comment="是否禁用或删除")
state = Column(Integer, default=0, comment="状态 0未开始 1进行中 2已完成 3已取消")
specimen_id = Column(String(50), comment="材料表id")
channel_id = Column(String(256), comment="通道表id")
# 实验记录报表
class ExperimentReport(Base):
__tablename__ = "experiment_report"
id = Column(String(50), comment="id", primary_key=True)
experiment_id = Column(String(50), comment="实验表id")
channel_id = Column(String(50), comment="通道表id")
time = Column(Integer, default=0, comment="进行时间")
experiment_temperature = Column(Float, comment="实验温度")
surface_temperature = Column(Float, comment="表面温度")
battery_voltage = Column(Float, comment="电池电压")
battery_electricity = Column(Float, comment="电池电流")
recharge_capacity = Column(Float, comment="充电容量")
discharging_capacity = Column(Float, comment="放电容量")
internal_resistance = Column(Float, comment="内阻")
# 通道表
class Channel(Base):
__tablename__ = "channel"
id = Column(String(50), comment="id", primary_key=True)
name = Column(String(50), comment="通道名称")
status = Column(Integer, comment="状态 0未使用 1使用中")
last_start_time = Column(String(50), comment="最后开始时间")
# 角色表
class EntityRole(Base):
__tablename__ = 'role'
role_id = Column(String(50), primary_key=True, comment="角色id")
role_name = Column(String(50), comment="角色名称")
role_code = Column(String(50), comment="角色代号")
role_level = Column(Integer, comment="角色等级")
remark = Column(String(500), comment="备用字段")
created_time = Column(String(50), default=Utils.get_time(), comment="角色创建时间")
update_time = Column(String(50), comment="角色更新时间")
is_enabled = Column(Integer, default=0, comment="是否禁用或删除")
specimen_experiment = Table('specimen_experiment', Base.metadata,
Column('specimen_id', Integer, ForeignKey('specimen.specimen_id')),
Column('experiment_id', Integer, ForeignKey('experiment.experiment_id'))
)
# # 证物表
# class EntitySpecimen(Base):
# __tablename__ = "specimen"
#
# specimen_id = Column(String(50), comment="物品id", primary_key=True)
# specimen_name = Column(String(50), comment="物品名称")
# specimen_code = Column(String(50), comment="物品编号")
# specimen_type = Column(String(50), comment="物品类型")
# specimen_origin = Column(String(255), comment="物品来源")
# specimen_desc = Column(String(500), comment="物品描述")
# storage_location = Column(String(255), comment="存放位置")
# remark = Column(String(500), comment="备注")
# rfid = Column(String(50), comment="条码")
#
# inventory_status = Column(Integer, comment="库存状态") # 1在库2出库
# rfid_state = Column(Integer, comment="条码状态") # 1已绑定2未绑定
# '''
# 0:未消毒:没有消毒过;
# 1:三天内已消毒在3天之内有消毒记录
# 2:一周内已消毒在7天之内有消毒记录
# 3:一月内已消毒在30天之内有消毒记录
# 4:三月内已消毒在90天之内有消毒记录
# 5:半年内已消毒在180天之内有消毒记录
# 6:一年内已消毒在365天之内有消毒记录
# 7:超过一年未消毒最近一次消毒已超过365天
# '''
# disinfection_state = Column(Integer, comment="消毒状态")
#
# created_time = Column(String(50), default=Utils.get_time(), comment="创建时间")
# update_time = Column(String(50), comment="更新时间")
# user_id = Column(String(50), comment="创建人")
# user_name = Column(String(50), comment="用户昵称")
#
# is_enabled = Column(Integer, default=0, comment="是否禁用或删除")
#
# last_disinf_time = Column(String(50), comment="最新一次消毒时间")
#
# experiments = relationship('EntityExperiment', secondary=specimen_experiment, back_populates='specimens')
#
#
# def to_dict(self):
# return dict(id=self.specimen_id, specimen_name = self.specimen_name, specimen_code=self.specimen_code,
# specimen_type=self.specimen_type, specimen_origin=self.specimen_origin,
# specimen_desc=self.specimen_desc, storage_location=self.storage_location,
# remark=self.remark, rfid=self.rfid, inventory_status=self.inventory_status,
# rfid_state=self.rfid_state, disinfection_state=self.disinfection_state,
# last_disinf_time = self.last_disinf_time,
# created_time=self.created_time, user_name=self.user_name)
#
# class EntityUseLog(Base):
# __tablename__ = "use_log"
# record_id = Column(String(50), comment="记录id",primary_key=True)
# specimen_id = Column(String(50), comment="物品id")
# specimen_name = Column(String(50), comment="物品名称")
# specimen_code = Column(String(50), comment="物品编号")
# operation_type = Column(String(50), comment="操作类型")
# created_time = Column(String(50), default=Utils.get_time(), comment="创建时间")
# update_time = Column(String(50), comment="更新时间")
# user_id = Column(String(50), comment="创建人")
# user_name = Column(String(50), comment="用户昵称")
#
#
# class EntityTerminal(Base):
# __tablename__ = "terminals"
#
# id = Column(String(50), comment="id",primary_key=True)
# name = Column(String(50), comment="名称")
# title = Column(String(50), comment="标题")
# login_count = Column(Integer, comment="核验账号数")
# index_of_user = Column(Integer, comment="以第几人为使用者")
# is_enabled = Column(Integer, default=0, comment="是否禁用或删除")
#
# created_time = Column(String(50), default=Utils.get_time(), comment="创建时间")
# update_time = Column(String(50), comment="更新时间")
#
#
#
# class EntityWaitDisinfSpecimen(Base):
# __tablename__ = "wait_disinf_specimen"
# '''
# 待消毒物品记录 因一个证物可以在同一时间段被消毒多次
# '''
#
# record_id = Column(String(50), comment="记录id",primary_key=True)
# specimen_id = Column(String(50), comment="物品id")
#
# specimen_name = Column(String(50), comment="物品名称")
# specimen_code = Column(String(50), comment="物品编号")
# specimen_type = Column(String(50), comment="物品类型")
# specimen_origin = Column(String(255), comment="物品来源")
# specimen_desc = Column(String(500), comment="物品描述")
# storage_location = Column(String(255), comment="存放位置")
# remark = Column(String(500), comment="备注")
# rfid = Column(String(50), comment="条码")
#
# created_time = Column(String(50), default=Utils.get_time(), comment="创建时间")
# update_time = Column(String(50), comment="更新时间")
# user_id = Column(String(50), comment="创建人")
# user_name = Column(String(50), comment="用户昵称")
# is_enabled = Column(Integer, default=0, comment="是否禁用或删除")
# done = Column(Integer, default=0, comment="是否完成") # 0 未完成1 已完成
# disinf_type = Column(Integer, comment="消毒类型") # 1 入库消毒2 出库消毒3 其他
#
#
# # 试验配置表 每个员工可以自定多个配置,以方便后续消毒操作
# class EntityExperimentConfig(Base):
# __tablename__ = "experiment_config"
#
# config_id = Column(String(), comment="id",primary_key=True)
# ozone_disinf = Column(Integer, comment="臭氧消毒")
# uv_disinf = Column(Integer, comment="紫外线消毒")
# ozone_conc = Column(String(50), comment="臭氧浓度")
# disinf_time = Column(String(50), comment="消毒时间")
# temperature = Column(String(50), comment="温度")
# humidity = Column(String(50), comment="湿度")
# created_time = Column(String(50), default=Utils.get_time(), comment="创建时间")
# update_time = Column(String(50), comment="更新时间")
# user_id = Column(String(50), comment="创建人")
# user_name = Column(String(50), comment="用户昵称")
#
# config_name = Column(String(50), comment="配置名称")
# config_desc = Column(String(500), comment="配置描述")
# is_enabled = Column(Integer, default=0, comment="是否禁用或删除")
#
#
# # 试验表
# class EntityExperiment(Base):
# __tablename__ = "experiment"
#
# experiment_id = Column(String(50), comment="消毒流程id", primary_key=True)
# name = Column(String(50), comment="名称")
#
# ozone_disinf = Column(Integer, comment="臭氧消毒")
# uv_disinf = Column(Integer, comment="紫外线消毒")
# ozone_conc = Column(String(50), comment="臭氧浓度")
# disinf_time = Column(String(50), comment="消毒时间")
# temperature = Column(String(50), comment="浓度")
# humidity = Column(String(50), comment="湿度")
#
# remark = Column(String(500), comment="备注信息")
# created_time = Column(String(50), default=Utils.get_time(), comment="创建时间")
# update_time = Column(String(50), comment="更新时间")
#
# user_id = Column(String(50), comment="创建人")
# user_name = Column(String(50), comment="用户昵称")
# is_enabled = Column(Integer, default=0, comment="是否禁用或删除")
# state = Column(Integer, default=0, comment="状态")
#
# specimens = relationship('EntitySpecimen', secondary=specimen_experiment, back_populates='experiments')
#
# def to_dict(self):
# return dict(id=self.experiment_id, ozone_disinf=self.ozone_disinf, uv_disinf=self.uv_disinf,
# ozone_conc=self.ozone_conc, disinf_time=self.disinf_time, temperature=self.temperature,
# humidity=self.humidity, remark=self.remark, created_time=self.created_time, user_name=self.user_name)
#
#
# # 试验记录信息表
# class EntityExperimentRecord(Base):
# __tablename__ = "experiment_record"
#
# record_id = Column(String(50), comment="记录id", primary_key=True)
# update_time = Column(String(50), comment="试验记录更新时间")
# is_enabled = Column(Integer, default=0, comment="是否禁用或删除")