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) #