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.

383 lines
15 KiB

from app.models.Repository import OrmBase
from app.models.DateEntity import EntityUser, EntityRole, DeviceConfig, ExperimentSpecimen, ExperimentInfo, \
ExperimentReport, Channel
from app.lib.Utils import *
from sqlalchemy import and_, or_, desc, text
# 分页参数模型
class PageParam(object):
def __init__(self, curPage, pageRows, totalRecords=None, orderType=None, orderField=None):
self.orderType = orderType # 排序类型 asc=正序 desc=倒序
self.orderField = orderField # 排序字段
self.pageRows = pageRows # 单页行数
self.curPage = curPage # 当前页码
self.totalRecords = totalRecords # 总页数
# 用户逻辑类
class BllUser(OrmBase):
def __init__(self, entityType=EntityUser):
super().__init__(entityType)
# 用户登录
def login(self, username, password):
return self.findEntity(and_(EntityUser.user_name == username, EntityUser.user_pwd == Utils.MD5(password), EntityUser.is_enabled == 0))
def facelogin(self, id):
return self.findEntity(EntityUser.user_id == id)
# 获取用户列表
def getUserList(self):
return self.findList(EntityUser.is_enabled == 0)
# 获取用户详情信息
def getUserInfo(self, userId):
return self.findEntity(userId)
# 设备配置类
class BllDeviceConfig(OrmBase):
def __init__(self, entityType=DeviceConfig):
super().__init__(entityType)
# 获取设置详情信息
def getInfo(self):
return self.findEntity()
# 实验信息类
class BllExperimentInfo(OrmBase):
def __init__(self, entityType=ExperimentInfo):
super().__init__(entityType)
# 获取试验列表
def getExperimentList(self, search_word):
orm_query = self.findList(ExperimentInfo.is_enabled == 0)
if search_word.name:
orm_query = orm_query.filter(ExperimentInfo.specimen_name.like(f"%{search_word.name}%"))
if search_word.date:
orm_query = orm_query.filter(ExperimentInfo.created_time.contains(search_word.date))
if search_word.experiment_id:
orm_query = orm_query.filter(ExperimentInfo.id == search_word.experiment_id)
# if search_word.state:
# orm_query = orm_query.filter(ExperimentInfo.state == search_word.state)
return orm_query.order_by(desc(ExperimentInfo.created_time))
# 实验报表类
class BllExperimentReport(OrmBase):
def __init__(self, entityType=ExperimentReport):
super().__init__(entityType)
# 通道类
class BllChannel(OrmBase):
def __init__(self, entityType=Channel):
super().__init__(entityType)
# 材料类
class BllExperimentSpecimen(OrmBase):
def __init__(self, entityType=ExperimentSpecimen):
super().__init__(entityType)
# 角色逻辑类
class BllRole(OrmBase):
def __init__(self, entityType=EntityRole):
super().__init__(entityType)
# 获取角色列表
def getRoleList(self):
return self.findList(EntityRole.is_enabled == 0).all()
#
#
# class BllSpecimen(OrmBase):
# def __init__(self, entityType=EntitySpecimen):
# super().__init__(entityType)
#
# def insertSpecimen(self, **kwargs):
# entity = EntitySpecimen()
# entity.specimen_id = kwargs["specimen_id"]
# entity.user_id = kwargs["user_id"]
# entity.user_name = kwargs["user_name"]
#
# entity.specimen_name = kwargs["specimen_name"]
# entity.specimen_code = kwargs["specimen_code"]
# entity.specimen_type = kwargs["specimen_type"]
# entity.specimen_origin = kwargs["specimen_origin"]
# entity.specimen_desc = kwargs["specimen_desc"]
# entity.storage_location = kwargs["storage_location"]
#
# entity.remark = kwargs["remark"]
# entity.rfid = kwargs["rfid"]
# entity.created_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# entity.update_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
#
# entity.is_enabled = 0
# self.insert(entity)
#
# def updateSpecimen(self, **kwargs):
# entity = self.findEntity(EntitySpecimen.specimen_id == kwargs["specimen_id"])
# if "rfid" in kwargs:
# entity.rfid = kwargs.get("rfid")
# entity.rfid_state = 1 if kwargs.get("rfid") else 2
# if "inventory_status" in kwargs:
# entity.inventory_status = kwargs.get("inventory_status")
# if "disinfection_state" in kwargs:
# entity.disinfection_state = kwargs.get("disinfection_state")
#
# entity.update_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# self.update(entity)
# return entity
#
# def get_specimen_list(self, search_word):
# orm_query = self.findList(EntitySpecimen.is_enabled == 0)
# if search_word.specimen_name:
# orm_query = orm_query.filter(EntitySpecimen.specimen_name.like(f"%{search_word.specimen_name}%"))
# if hasattr(search_word, 'specimen_id') and search_word.specimen_id:
# orm_query = orm_query.filter(EntitySpecimen.specimen_id == search_word.specimen_id)
# if hasattr(search_word, 'record_id') and search_word.record_id:
# orm_query = orm_query.filter(EntitySpecimen.specimen_id == search_word.record_id)
# if hasattr(search_word, 'date') and search_word.date:
# orm_query = orm_query.filter(EntitySpecimen.created_time.contains(search_word.date))
# return orm_query.order_by(desc(EntitySpecimen.update_time))
#
# def delSpecimen(self, specimen_id):
# entity = self.findEntity(EntitySpecimen.specimen_id == specimen_id)
# entity.is_enabled = 1
# self.update(entity)
#
#
# class BllWaitDisinfSpecimen(OrmBase):
# def __init__(self, entityType=EntityWaitDisinfSpecimen):
# super().__init__(entityType)
#
# def insert_wait_disinf_specimen(self, **kwargs):
# entity = EntityWaitDisinfSpecimen()
# entity.user_id = kwargs["user_id"]
# entity.user_name = kwargs["user_name"]
# entity.record_id = kwargs["record_id"]
# entity.specimen_id = kwargs["specimen_id"]
# entity.specimen_name = kwargs["specimen_name"]
# entity.specimen_code = kwargs["specimen_code"]
# entity.specimen_desc = kwargs["specimen_desc"]
# entity.specimen_origin = kwargs["specimen_origin"]
# entity.specimen_type = kwargs["specimen_type"]
# entity.storage_location = kwargs["storage_location"]
# entity.remark = kwargs["remark"]
# entity.rfid = kwargs["rfid"]
# entity.disinf_type = kwargs["disinf_type"]
# entity.created_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# entity.update_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# entity.is_enabled = 0
# self.insert(entity)
#
# def get_wait_disinf_specimen_list(self, search_word):
# orm_query = self.findList(and_(EntityWaitDisinfSpecimen.is_enabled == 0,
# EntityWaitDisinfSpecimen.done == 0))
# if hasattr(search_word, 'user_id') and search_word.user_id:
# orm_query = orm_query.filter(EntityWaitDisinfSpecimen.user_id == search_word.user_id)
# return orm_query.order_by(desc(EntityWaitDisinfSpecimen.update_time))
#
#
#
# class BllExperimentConfig(OrmBase):
#
# def __init__(self, entityType=EntityExperimentConfig):
# super().__init__(entityType)
#
# def insertConfig(self, **kwargs):
# entity = EntityExperimentConfig()
# entity.config_id = kwargs["config_id"]
# entity.user_id = kwargs["user_id"]
# entity.user_name = kwargs["user_name"]
#
# entity.ozone_disinf = kwargs["ozone_disinf"]
# entity.uv_disinf = kwargs["uv_disinf"]
# entity.ozone_conc = kwargs["ozone_conc"]
# entity.disinf_time = kwargs["disinf_time"]
# entity.temperature = kwargs["temperature"]
# entity.humidity = kwargs["humidity"]
#
# entity.config_name = kwargs["config_name"]
# entity.config_desc = kwargs["config_desc"]
#
# entity.created_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# entity.update_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# self.insert(entity)
#
# def get_config_list(self, search_word):
# orm_query = self.findList(EntityExperimentConfig.is_enabled == 0)
# if hasattr(search_word, 'user_id') and search_word.user_id:
# orm_query = orm_query.filter(EntityExperimentConfig.user_id == search_word.user_id)
# return orm_query.order_by(desc(EntityExperimentConfig.update_time))
#
#
# class BllExperiment(OrmBase):
# def __init__(self, entityType=EntityExperiment):
# super().__init__(entityType)
#
# def insertExperiment(self, **kwargs):
# specimen_ids = kwargs["specimens"]
# specimens = BllSpecimen().findList(and_(EntitySpecimen.specimen_id.in_(specimen_ids), EntitySpecimen.is_enabled == 0)).all()
#
# entity = EntityExperiment()
# entity.experiment_id = kwargs["experiment_id"]
# entity.name = kwargs["name"]
# entity.user_id = kwargs["user_id"]
# entity.user_name = kwargs["user_name"]
#
# entity.ozone_disinf = kwargs["ozone_disinf"]
# entity.uv_disinf = kwargs["uv_disinf"]
# entity.ozone_conc = kwargs["ozone_conc"]
# entity.disinf_time = kwargs["disinf_time"]
# entity.temperature = kwargs["temperature"]
# entity.humidity = kwargs["humidity"]
#
# entity.created_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# entity.update_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# entity.is_enabled = 0
#
# for specimen in specimens:
# from sqlalchemy.orm import object_session
# current_session = object_session(specimen)
# if current_session is not None:
# current_session.expunge(specimen)
# entity.specimens.append(specimen)
#
# self.insert(entity)
#
# def updateExperiment(self, **kwargs):
# entity = self.findEntity(kwargs["experiment_id"])
# entity.update_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
#
# self.update(entity)
# return entity
#
# # 获取试验列表
# def getExperimentList(self, search_word):
# orm_query = self.findList(EntityExperiment.is_enabled == 0)
# if search_word.name:
# orm_query = orm_query.filter(EntityExperiment.name.like(f"%{search_word.name}%"))
# if search_word.date:
# orm_query = orm_query.filter(EntityExperiment.created_time.contains(search_word.date))
# if search_word.experiment_id:
# orm_query = orm_query.filter(EntityExperiment.experiment_id == search_word.experiment_id)
# return orm_query.order_by(desc(EntityExperiment.update_time))
#
# # 删除单次试验
# def delExperiment(self, experiment_id):
# entity = self.findEntity(EntityExperiment.experiment_id == experiment_id)
# entity.is_enabled = 1
# self.update(entity)
#
# # 查询最后一次试验
# def getLastExperiment(self):
# orm_query = self.findList(EntityExperiment.is_enabled == 0)
# return orm_query.order_by(desc(EntityExperiment.created_time)).first()
#
# # 试验记录逻辑类
#
#
# class BllExperimentRecord(OrmBase):
#
# def __init__(self, entityType=EntityExperimentRecord):
# super().__init__(entityType)
#
# # 新增试验记录信息
#
# def insertExperimentRecord(self, **kwargs):
# entity = EntityExperimentRecord()
# entity.record_id = kwargs["record_id"]
# entity.experiment_id = kwargs["experiment_id"]
# entity.user_id = kwargs["user_id"]
# entity.user_name = kwargs["user_name"]
#
# entity.initial_press = kwargs["initial_press"]
# entity.final_press = kwargs["final_press"]
# entity.leakage_rate = kwargs["leakage_rate"]
# entity.dijici = kwargs["dijici"]
#
# entity.is_enabled = 0
# entity.created_time = kwargs['created_time'] if "created_time" in kwargs else datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# entity.update_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# self.insert(entity)
#
# # 更新试验记录信息
# def updateExperimentRecord(self, **kwargs):
# entity = self.findEntity(EntityExperimentRecord.record_id == kwargs["record_id"])
# if entity:
# entity.update_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# self.update(entity)
#
# # 获取单条试验记录信息
# def getExperimentRecord_by_record_id(self, record_id):
# data = self.findEntity(EntityExperimentRecord.record_id == record_id)
# return data
#
# # 获取单条试验记录信息
# def getExperimentRecord_by_experiment_id(self, experiment_id):
# data = self.findEntity(EntityExperimentRecord.experiment_id == experiment_id)
# return data
#
# # 删除单条记录
# def delExperimentRecord(self, record_id):
# entity = self.findEntity(EntityExperimentRecord.record_id == record_id)
# entity.is_enabled = 1
# self.update(entity)
#
#
# class BllUselog(OrmBase):
# def __init__(self, entityType=EntityUseLog):
# super().__init__(entityType)
#
# def insert_log(self, **kwargs):
# entity = EntityUseLog()
# entity.user_id = kwargs["user_id"]
# entity.user_name = kwargs["user_name"]
# entity.specimen_id = kwargs["specimen_id"]
# entity.specimen_code = kwargs["specimen_code"]
# entity.specimen_name = kwargs["specimen_name"]
# entity.operation_type = kwargs["operation_type"]
# entity.record_id = Utils.get_uuid()
# entity.created_time = Utils.get_time()
# entity.update_time = Utils.get_time()
# self.insert(entity)
#
#
# class BllTerminal(OrmBase):
# def __init__(self, entityType=EntityTerminal):
# super().__init__(entityType)
#
# def insert_terminal(self, **kwargs):
# entity = EntityTerminal()
# entity.name = kwargs["name"]
# entity.title = kwargs["title"]
# entity.login_count = kwargs["login_count"]
# entity.index_of_user = kwargs["index_of_user"]
# entity.id = Utils.get_uuid()
# entity.created_time = Utils.get_time()
# entity.update_time = Utils.get_time()
# self.insert(entity)
#
# def update_terminal(self, **kwargs):
# entity = self.findEntity(EntityTerminal.id == kwargs["id"])
# entity.name = kwargs["name"]
# entity.title = kwargs["title"]
# entity.login_count = kwargs["login_count"]
# entity.index_of_user = kwargs["index_of_user"]
# entity.update_time = Utils.get_time()
# self.update(entity)
#