from sqlalchemy.orm import Session from module_admin.entity.do.cdplb_do import SysCdplb from module_admin.entity.vo.cdplb_vo import CdplbModel from utils.time_format_util import list_format_datetime class CdplbDao: """ 批量词典配置表模块数据库操作层 """ @classmethod def get_cdplb_by_id(cls, db: Session, onum: int): """ 根据数据字典id获取在用数据字典详细信息 :param db: orm对象 :param onum:代码id :return: 在用批量词典配置表信息对象 """ cdplb_info = db.query(SysCdplb) \ .filter(SysCdplb.onum == onum, SysCdplb.status == 0) \ .first() return cdplb_info @classmethod def get_cdplb_detail_by_id(cls, db: Session, onum: int): """ 根据数据字典id获取数据字典详细信息 :param db: orm对象 :param onum:代码id :return:代码信息对象 """ cdplb_info = db.query(SysCdplb) \ .filter(SysCdplb.onum == onum) \ .first() return cdplb_info @classmethod def get_cdplb_detail_by_info(cls, db: Session, cdplb: CdplbModel): """ 根据数据字典参数获取批量词典配置表信息 :param db: orm对象 :param cdplb:代码参数对象 :return:代码信息对象 """ cdplb_info = db.query(SysCdplb) \ .filter(SysCdplb.bath_obj_tab_name == cdplb.bath_obj_tab_name if cdplb.bath_obj_tab_name else True, SysCdplb.bath_obj_fld_name == cdplb.bath_obj_fld_name if cdplb.bath_obj_fld_name else True, SysCdplb.pos_name == cdplb.pos_name if cdplb.pos_name else True, SysCdplb.status == cdplb.status if cdplb.status else True) \ .first() return cdplb_info @classmethod def get_cdplb_select_option_dao(cls, db: Session): """ 获取所有在用批量词典配置表信息 :param db: orm对象 :return: 在用批量词典配置表信息列表 """ cdplb_info = db.query(SysCdplb) \ .filter(SysCdplb.status == 0) \ .all() return cdplb_info @classmethod def get_cdplb_list(cls, db: Session, query_object: CdplbModel): """ 根据查询参数获取数据字典列表信息 :param db: orm对象 :param query_object: 查询参数对象 :return:代码列表信息对象 """ cdplb_list = db.query(SysCdplb) \ .filter(SysCdplb.bath_obj_tab_name.like(f'%{query_object.bath_obj_tab_name}%') if query_object.bath_obj_tab_name else True, SysCdplb.bath_obj_fld_name.like(f'%{query_object.bath_obj_fld_name}%') if query_object.bath_obj_fld_name else True, SysCdplb.pos_name.like(f'%{query_object.pos_name}%') if query_object.pos_name else True, SysCdplb.status == query_object.status if query_object.status else True ) \ .order_by(SysCdplb.onum) \ .distinct().all() return list_format_datetime(cdplb_list) @classmethod def add_cdplb_dao(cls, db: Session, cdplb: CdplbModel): """ 新增数据字典数据库操作 :param db: orm对象 :param cdplb:代码对象 :return: """ db_cdplb = SysCdplb(**cdplb.dict()) db.add(db_cdplb) db.flush() return db_cdplb @classmethod def edit_cdplb_dao(cls, db: Session, cdplb: dict): """ 编辑数据字典数据库操作 :param db: orm对象 :param cdplb: 需要更新的数据字典字典 :return: """ db.query(SysCdplb) \ .filter(SysCdplb.bath_obj_tab_name == cdplb.get('bath_obj_tab_name'),SysCdplb.bath_obj_fld_name == cdplb.get('bath_obj_fld_name')) \ .update(cdplb) db.query(SysCdplb) \ .filter(SysCdplb.onum == cdplb.get('onum')) \ .update(cdplb) @classmethod def delete_cdplb_dao(cls, db: Session, cdplb: CdplbModel): """ 删除数据字典数据库操作 :param db: orm对象 :param cdplb:代码对象 :return: """ db.query(SysCdplb) \ .filter(SysCdplb.onum == cdplb.onum) \ .delete() @classmethod def get_cdplb_by_info(cls, db: Session, cdplb: CdplbModel): """ 根据用户参数获取cdplb信息 :param db: orm对象 :param user: cdplb参数 :return: 当前cdplb参数的cdplb信息对象 """ query_cdplb_info = db.query(SysCdplb) \ .filter(SysCdplb.status == 0, SysCdplb.onum == cdplb.onum) \ .order_by(SysCdplb.onum).distinct().first() return query_cdplb_info @classmethod def get_cdplb_by_info_imp(cls, db: Session, cdplb: CdplbModel): """ 根据用户参数获取cdplb信息 :param db: orm对象 :param user: cdplb参数 :return: 当前cdplb参数的cdplb信息对象 """ query_cdplb_info_imp = db.query(SysCdplb) \ .filter(SysCdplb.status == 0, SysCdplb.bath_obj_tab_name == cdplb.bath_obj_tab_name, SysCdplb.bath_obj_fld_name == cdplb.bath_obj_fld_name) \ .order_by(SysCdplb.onum).distinct().first() return query_cdplb_info_imp