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.

160 lines
5.4 KiB

1 month ago
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