from sqlalchemy.orm import Session from module_admin.entity.do.nddict_do import SysNddict from module_admin.entity.do.dassetdict_do import SysDassetdict from module_admin.entity.vo.nddict_vo import NddictModel from module_admin.entity.vo.dassetdict_vo import DassetdictModel from utils.time_format_util import list_format_datetime class NddictDao: """ 数据字典管理模块数据库操作层 """ @classmethod def get_nddict_by_id(cls, db: Session, onum: int): """ 根据数据字典id获取在用数据字典详细信息 :param db: orm对象 :param onum: 数据字典id :return: 在用代码管理信息对象 """ nddict_info = db.query(SysNddict) \ .filter(SysNddict.onum == onum, SysNddict.status == 0) \ .first() return nddict_info @classmethod def get_nddict_detail_by_id(cls, db: Session, onum: int): """ 根据数据字典id获取数据字典详细信息 :param db: orm对象 :param onum: 数据字典id :return: 代码管理信息对象 """ nddict_info = db.query(SysNddict) \ .filter(SysNddict.onum == onum) \ .first() return nddict_info @classmethod def get_nddict_detail_by_info(cls, db: Session, nddict: NddictModel): """ 根据数据字典参数获取代码管理信息 :param db: orm对象 :param nddict: 数据字典参数对象 :return: 代码管理信息对象 """ nddict_info = db.query(SysNddict) \ .filter(SysNddict.data_dict_cn_name == nddict.data_dict_cn_name if nddict.data_dict_cn_name else True, SysNddict.data_dict_no == nddict.data_dict_no if nddict.data_dict_no else True, SysNddict.dict_busi_mean == nddict.dict_busi_mean if nddict.dict_busi_mean else True) \ .first() return nddict_info @classmethod def get_nddict_select_option_dao(cls, db: Session): """ 获取所有在用代码管理信息 :param db: orm对象 :return: 在用代码管理信息列表 """ nddict_info = db.query(SysNddict) \ .filter(SysNddict.status == 0) \ .all() return nddict_info @classmethod def get_nddict_list(cls, db: Session, query_object: NddictModel): """ 根据查询参数获取数据字典列表信息 :param db: orm对象 :param query_object: 查询参数对象 :return: 数据字典列表信息对象 """ nddict_list = db.query(SysNddict) \ .filter(SysNddict.data_dict_no.like(f'%{query_object.data_dict_no}%') if query_object.data_dict_no else True, SysNddict.data_dict_cn_name.like(f'%{query_object.data_dict_cn_name}%') if query_object.data_dict_cn_name else True, SysNddict.data_std_no.like(f'%{query_object.data_std_no}%') if query_object.data_std_no else True, SysNddict.dict_busi_mean.like(f'%{query_object.dict_busi_mean}%') if query_object.dict_busi_mean else True, SysNddict.status == query_object.status if query_object.status else True ) \ .order_by(SysNddict.onum) \ .distinct().all() return list_format_datetime(nddict_list) @classmethod def add_nddict_dao(cls, db: Session, nddict: NddictModel): """ 新增数据字典数据库操作 :param db: orm对象 :param nddict: 数据字典对象 :return: """ db_nddict = SysNddict(**nddict.dict()) db.add(db_nddict) db.flush() return db_nddict @classmethod def edit_nddict_dao(cls, db: Session, nddict: dict): """ 编辑数据字典数据库操作 :param db: orm对象 :param nddict: 需要更新的数据字典字典 :return: """ db.query(SysNddict) \ .filter(SysNddict.onum == nddict.get('onum')) \ .update(nddict) db.query(SysDassetdict) \ .filter(SysDassetdict.dict_id == nddict.get('onum')) \ .update({SysDassetdict.dict_al: nddict.get('falias')}) @classmethod def delete_nddict_dao(cls, db: Session, nddict: NddictModel): """ 删除数据字典数据库操作 :param db: orm对象 :param nddict: 数据字典对象 :return: """ db.query(SysNddict) \ .filter(SysNddict.onum == nddict.onum) \ .delete() @classmethod def get_nddict_by_info(cls, db: Session, nddict: NddictModel): """ 根据用户参数获取nddict信息 :param db: orm对象 :param user: nddict参数 :return: 当前nddict参数的nddict信息对象 """ query_nddict_info = db.query(SysNddict) \ .filter(SysNddict.status == 0, SysNddict.onum == nddict.onum) \ .order_by(SysNddict.onum).distinct().first() return query_nddict_info