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
160 lines
5.4 KiB
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
|