from sqlalchemy.orm import Session from module_admin.entity.do.fccbd_do import SysFccbd from module_admin.entity.vo.fccbd_vo import FccbdModel from utils.time_format_util import list_format_datetime class FccbdDao: """ 词典配置表模块数据库操作层 """ @classmethod def get_fccbd_by_id(cls, db: Session, onum: int): """ 根据数据字典id获取在用数据字典详细信息 :param db: orm对象 :param onum:代码id :return: 在用词典配置表信息对象 """ fccbd_info = db.query(SysFccbd) \ .filter(SysFccbd.onum == onum, SysFccbd.status == 0) \ .first() return fccbd_info @classmethod def get_fccbd_detail_by_id(cls, db: Session, onum: int): """ 根据数据字典id获取数据字典详细信息 :param db: orm对象 :param onum:代码id :return:代码信息对象 """ fccbd_info = db.query(SysFccbd) \ .filter(SysFccbd.onum == onum) \ .first() return fccbd_info @classmethod def get_fccbd_detail_by_info(cls, db: Session, fccbd: FccbdModel): """ 根据数据字典参数获取词典配置表信息 :param db: orm对象 :param fccbd:代码参数对象 :return:代码信息对象 """ fccbd_info = db.query(SysFccbd) \ .filter(SysFccbd.term == fccbd.term if fccbd.term else True, SysFccbd.pos == fccbd.pos if fccbd.pos else True, SysFccbd.pos_name == fccbd.pos_name if fccbd.pos_name else True, SysFccbd.status == fccbd.status if fccbd.status else True) \ .first() return fccbd_info @classmethod def get_fccbd_select_option_dao(cls, db: Session): """ 获取所有在用词典配置表信息 :param db: orm对象 :return: 在用词典配置表信息列表 """ fccbd_info = db.query(SysFccbd) \ .filter(SysFccbd.status == 0) \ .all() return fccbd_info @classmethod def get_fccbd_list(cls, db: Session, query_object: FccbdModel): """ 根据查询参数获取数据字典列表信息 :param db: orm对象 :param query_object: 查询参数对象 :return:代码列表信息对象 """ fccbd_list = db.query(SysFccbd) \ .filter(SysFccbd.term.like(f'%{query_object.term}%') if query_object.term else True, SysFccbd.pos.like(f'%{query_object.pos}%') if query_object.pos else True, SysFccbd.pos_name.like(f'%{query_object.pos_name}%') if query_object.pos_name else True, SysFccbd.status == query_object.status if query_object.status else True ) \ .order_by(SysFccbd.onum) \ .distinct().all() return list_format_datetime(fccbd_list) @classmethod def add_fccbd_dao(cls, db: Session, fccbd: FccbdModel): """ 新增数据字典数据库操作 :param db: orm对象 :param fccbd:代码对象 :return: """ db_fccbd = SysFccbd(**fccbd.dict()) db.add(db_fccbd) db.flush() return db_fccbd @classmethod def edit_fccbd_dao(cls, db: Session, fccbd: dict): """ 编辑数据字典数据库操作 :param db: orm对象 :param fccbd: 需要更新的数据字典字典 :return: """ db.query(SysFccbd) \ .filter(SysFccbd.term == fccbd.get('term'),SysFccbd.pos == fccbd.get('pos')) \ .update(fccbd) db.query(SysFccbd) \ .filter(SysFccbd.onum == fccbd.get('onum')) \ .update(fccbd) @classmethod def delete_fccbd_dao(cls, db: Session, fccbd: FccbdModel): """ 删除数据字典数据库操作 :param db: orm对象 :param fccbd:代码对象 :return: """ db.query(SysFccbd) \ .filter(SysFccbd.onum == fccbd.onum) \ .delete() @classmethod def get_fccbd_by_info(cls, db: Session, fccbd: FccbdModel): """ 根据用户参数获取fccbd信息 :param db: orm对象 :param user: fccbd参数 :return: 当前fccbd参数的fccbd信息对象 """ query_fccbd_info = db.query(SysFccbd) \ .filter(SysFccbd.status == 0, SysFccbd.onum == fccbd.onum) \ .order_by(SysFccbd.onum).distinct().first() return query_fccbd_info @classmethod def get_fccbd_by_info_imp(cls, db: Session, tsmcb: FccbdModel): """ 根据用户参数获取fccbd信息 :param db: orm对象 :param user: fccbd参数 :return: 当前fccbd参数的fccbd信息对象 """ query_fccbd_info_imp = db.query(SysFccbd) \ .filter(SysFccbd.status == 0, SysFccbd.term == tsmcb.term, SysFccbd.pos == tsmcb.pos) \ .order_by(SysFccbd.onum).distinct().first() return query_fccbd_info_imp