diff --git a/vue-fastapi-backend/module_admin/dao/datastd_dao.py b/vue-fastapi-backend/module_admin/dao/datastd_dao.py index 7a21c2b..42642bf 100644 --- a/vue-fastapi-backend/module_admin/dao/datastd_dao.py +++ b/vue-fastapi-backend/module_admin/dao/datastd_dao.py @@ -25,58 +25,7 @@ class DataStdDao: filters.append(DataStdCodeAppr.flowId == flowId) query = select(DataStdCodeAppr).where(*filters).order_by(desc(DataStdCodeAppr.create_time)) return await PageUtil.paginate(db, query, 0, 0, False) - # @classmethod - # async def get_std_code_list(cls, db: AsyncSession, query_object: DataStdCodeModel, is_page: bool = False): - # """ - # 获取 DataStdCode 的列表信息,支持模糊查询和分页 - # :param db: ORM对象 - # :param query_object: 查询参数对象 - # :param is_page: 是否开启分页 - # :return: 列表信息 - # """ - # # 构建查询条件 - # filters = [] - # if query_object.cd_val_cn_mean: - # filters.append(DataStdCode.cd_val_cn_mean.like(f"%{query_object.cd_val_cn_mean}%")) - # if query_object.cd_no: - # filters.append( or_( - # DataStdCode.cd_val_cn_mean.like(f"%{query_object.cd_no}%"), - # DataStdCode.cd_no.like(f"%{query_object.cd_no}%") - # )) - # if query_object.cd_val_stat: - # filters.append(DataStdCode.cd_val_stat==query_object.cd_val_stat) - # if query_object.src_sys: - # filters.append(DataStdCode.src_sys==query_object.src_sys) - # if query_object.cd_type: - # filters.append(DataStdCode.cd_type==query_object.cd_type) - - # if query_object.class_id: - # filters.append(DataStdCode.class_id==query_object.class_id) - # if query_object.class_id=='codeItem' and not query_object.parent_id: - # filters.append(1==2) - # if query_object.parent_id: - # filters.append(DataStdCode.parent_id==query_object.parent_id) - # # 构建查询语句 - # # query = ( - # # select(DataStdCode) - # # .where(*filters) - # # .order_by(desc(DataStdCode.create_time)) # 按创建时间降序排序 - # # ) - # alias_map = aliased(DataStdCode) - # query = ( - # select( - # DataStdCode, - # alias_map.cd_val_cn_mean.label("code_map_cn") - # ) - # .outerjoin(alias_map, DataStdCode.code_map_id == alias_map.onum) - # .where(*filters) - # .order_by(desc(DataStdCode.create_time)) - # ) - # # 分页处理 - # col_list = await PageUtil.paginate( - # db, query, query_object.page_num, query_object.page_size, is_page - # ) - # return col_list + @classmethod async def get_std_code_list(cls, db: AsyncSession, query_object: DataStdCodeModel, is_page: bool = False): """ @@ -363,8 +312,7 @@ class DataStdDao: filters.append(DataStdDict.data_dict_data_type == query_object.data_dict_data_type) if query_object.data_dict_stat: filters.append(DataStdDict.data_dict_stat == query_object.data_dict_stat) - c1 = aliased(SysDept) # 技术部门 - c2 = aliased(SysDept) # 业务部门 + c1 = aliased(DataStdDict) # 技术部门 # 构建查询语句 query = ( select(DataStdDict.onum, @@ -382,12 +330,20 @@ class DataStdDao: DataStdDict.data_dict_busi_mean, DataStdDict.data_dict_data_type, DataStdDict.data_std_no, - DataStdDict.data_dict_stat - ).select_from(DataStdDict) + DataStdDict.data_dict_stat, + DataStdMain.data_std_it_ownership_dept.label("data_std_it_ownership_dept") , + DataStdMain.data_std_busi_ownership_dept.label("data_std_busi_ownership_dept") , + DataStdMain.data_std_it_ownership_prsn.label("data_std_it_ownership_prsn") , + DataStdMain.data_std_busi_ownership_prsn.label("data_std_busi_ownership_prsn") + + ) + .outerjoin( # 使用left outer join确保即使没有关联code也能返回主表数据 + DataStdDict, + DataStdMain.data_std_no == DataStdDict.data_std_no + ) .where(*filters) .order_by(desc(DataStdDict.create_time)) # 按创建时间降序排序 ) - # 分页处理 col_list = await PageUtil.paginate( db, query, query_object.page_num, query_object.page_size, is_page @@ -831,7 +787,40 @@ class DataStdDao: if query_object.belt_data_std_content: filters.append(DataStdMain.belt_data_std_content == query_object.belt_data_std_content) - query = select(DataStdMain).where(*filters).order_by(desc(DataStdMain.create_time)) + query = ( + select( + DataStdMain.onum, + DataStdMain.create_by, + DataStdMain.create_time, + DataStdMain.upd_prsn, + DataStdMain.upd_time, + DataStdMain.data_std_no, + DataStdMain.data_std_eng_name, + DataStdMain.data_std_cn_name, + DataStdMain.data_std_type, + DataStdMain.securityLevel, + DataStdMain.src_sys, + DataStdMain.data_std_vest, + DataStdMain.data_std_busi_defn, + DataStdMain.cd_id, + DataStdMain.std_status, + DataStdMain.data_std_busi_ownership_dept, + DataStdMain.data_std_it_ownership_dept, + DataStdMain.data_std_busi_ownership_prsn, + DataStdMain.data_std_it_ownership_prsn, + DataStdMain.belt_data_std_content, + DataStdMain.data_std_src, + DataStdMain.data_clas, + DataStdMain.typical_fld, + DataStdCode.cd_no.label("cd_no") # 关联查询的cd_no + ) + .outerjoin( # 使用left outer join确保即使没有关联code也能返回主表数据 + DataStdCode, + DataStdMain.cd_id == DataStdCode.onum + ) + .where(*filters) + .order_by(desc(DataStdMain.create_time)) + ) return await PageUtil.paginate(db, query, query_object.page_num, query_object.page_size, is_page) @classmethod async def get_std_main_list_all(cls, db: AsyncSession, query_object: DataStdMainModel): @@ -849,7 +838,40 @@ class DataStdDao: filters.append(DataStdMain.data_std_type == query_object.data_std_type) if query_object.std_status: filters.append(DataStdMain.std_status == query_object.std_status) - query = select(DataStdMain).where(*filters).order_by(desc(DataStdMain.create_time)) + query = ( + select( + DataStdMain.onum, + DataStdMain.create_by, + DataStdMain.create_time, + DataStdMain.upd_prsn, + DataStdMain.upd_time, + DataStdMain.data_std_no, + DataStdMain.data_std_eng_name, + DataStdMain.data_std_cn_name, + DataStdMain.data_std_type, + DataStdMain.securityLevel, + DataStdMain.src_sys, + DataStdMain.data_std_vest, + DataStdMain.data_std_busi_defn, + DataStdMain.cd_id, + DataStdMain.std_status, + DataStdMain.data_std_busi_ownership_dept, + DataStdMain.data_std_it_ownership_dept, + DataStdMain.data_std_busi_ownership_prsn, + DataStdMain.data_std_it_ownership_prsn, + DataStdMain.belt_data_std_content, + DataStdMain.data_std_src, + DataStdMain.data_clas, + DataStdMain.typical_fld, + DataStdCode.cd_no.label("cd_no") # 关联查询的cd_no + ) + .outerjoin( # 使用left outer join确保即使没有关联code也能返回主表数据 + DataStdCode, + DataStdMain.cd_id == DataStdCode.onum + ) + .where(*filters) + .order_by(desc(DataStdMain.create_time)) + ) return await PageUtil.paginate(db, query, 0, 0, False) @classmethod async def add_std_main(cls, db: AsyncSession, model: DataStdMainModel): diff --git a/vue-fastapi-backend/module_admin/entity/vo/datastd_vo.py b/vue-fastapi-backend/module_admin/entity/vo/datastd_vo.py index 9e7f8a7..f0a4312 100644 --- a/vue-fastapi-backend/module_admin/entity/vo/datastd_vo.py +++ b/vue-fastapi-backend/module_admin/entity/vo/datastd_vo.py @@ -108,15 +108,14 @@ class DataStdMainModel(BaseModel): data_std_cn_name: Optional[str] = Field(default=None, description='标准中文名') data_std_type: Optional[str] = Field(default=None, description='标准类型(0:基础数据 1:指标数据)') securityLevel: Optional[str] = Field(default=None, description='安全等级') - src_sys: Optional[str] = Field(default=None, description='归属系统') + src_sys: Optional[int] = Field(default=None, description='归属系统') data_std_busi_defn: Optional[str] = Field(default=None, description='标准业务定义') - cd_no: Optional[str] = Field(default=None, description='代码编号') cd_id: Optional[str] = Field(default=None, description='代码id') std_status: Optional[str] = Field(default=None, description='标准状态(1:有效 0:无效)') data_std_busi_ownership_dept: Optional[str] = Field(default=None, description='业务认责部门') data_std_it_ownership_dept: Optional[str] = Field(default=None, description='技术认责部门') - buss_user: Optional[str] = Field(default=None, description='业务认责人员') - tech_user: Optional[str] = Field(default=None, description='技术认责人员') + data_std_busi_ownership_prsn: Optional[str] = Field(default=None, description='业务认责人员') + data_std_it_ownership_prsn: Optional[str] = Field(default=None, description='技术认责人员') belt_data_std_content: Optional[int] = Field(default=None, description='分类') data_std_src: Optional[str] = Field(default=None, description='标准来源') data_clas: Optional[str] = Field(default=None, description='数据类别') diff --git a/vue-fastapi-backend/module_admin/service/datastd_service.py b/vue-fastapi-backend/module_admin/service/datastd_service.py index a3c76b7..ba725c6 100644 --- a/vue-fastapi-backend/module_admin/service/datastd_service.py +++ b/vue-fastapi-backend/module_admin/service/datastd_service.py @@ -838,7 +838,7 @@ class DataStdService: raise ServiceException(message=f"创建目录时发生错误: {str(e)}") @classmethod - async def edit_catalog_leaf_services(cls, query_db: AsyncSession,belt_data_std_content : int, leaf_node_flag : int): + async def edit_catalog_leaf_services(cls, query_db: AsyncSession,content_onum : int, leaf_node_flag : int): """ 编辑数据目录信息service @@ -847,7 +847,7 @@ class DataStdService: :return: 编辑目录操作结果 """ catalog_data1 = { - 'belt_data_std_content': belt_data_std_content, + 'content_onum': content_onum, 'leaf_node_flag': leaf_node_flag } try: @@ -870,7 +870,7 @@ class DataStdService: """ catalog_data = { - 'belt_data_std_content': request.belt_data_std_content, + 'content_onum': request.content_onum, 'content_name': request.content_name, 'content_stat': request.content_stat, 'content_intr': request.content_intr, @@ -973,7 +973,7 @@ class DataStdService: """ moved_catalog_data = { - 'belt_data_std_content': request.belt_data_std_content, + 'content_onum': request.content_onum, 'supr_content_onum': request.supr_content_onum, 'supr_content_onum_after': request.supr_content_onum_after } @@ -998,7 +998,7 @@ class DataStdService: """ merge_catalog_data = { - 'belt_data_std_content': request.belt_data_std_content, + 'content_onum': request.content_onum, 'supr_content_onum': request.supr_content_onum, 'content_onum_after': request.content_onum_after, 'supr_content_onum_after': request.supr_content_onum_after @@ -1021,7 +1021,7 @@ class DataStdService: removerel_catalog_data = { 'rela_onum': request.rela_onum, - 'belt_data_std_content': request.belt_data_std_content, + 'content_onum': request.content_onum, 'ast_onum': request.ast_onum, 'rela_type': request.rela_type, 'rela_eff_begn_date': request.rela_eff_begn_date, @@ -1050,7 +1050,7 @@ class DataStdService: moverel_catalog_data = { 'rela_onum': request.rela_onum, - 'belt_data_std_content': request.belt_data_std_content, + 'content_onum': request.content_onum, 'content_onum_after': request.content_onum_after } diff --git a/vue-fastapi-frontend/src/views/datastd/main/components/AddEditForm.vue b/vue-fastapi-frontend/src/views/datastd/main/components/AddEditForm.vue index 668258f..f993c7f 100644 --- a/vue-fastapi-frontend/src/views/datastd/main/components/AddEditForm.vue +++ b/vue-fastapi-frontend/src/views/datastd/main/components/AddEditForm.vue @@ -1,35 +1,81 @@ + - - + + + @@ -410,6 +418,10 @@ const queryParams = ref({ pageNum: 1, pageSize: 10, }); +const getSrcSysName = (id) => { + const match = dbResourceOldList.value.find(item => item.id === id); + return match ? match.name : id; +}; const single = ref(true); const multiple = ref(true); const dialogVisible = ref(false); @@ -430,7 +442,7 @@ const handlePagination = (pageNum, pageSize) => { }; // 点击代码名称,弹出第二个对话框并传递数据 const handleCodeClick = (row) => { - codeId.value=row.codeId + codeId.value=row.cdId codeVisible.value = true; }; @@ -505,18 +517,29 @@ const dbResourceOldList = ref([]); const handleAdd = () => { isEdit.value = false; selectedRow.value = { - dataStdType: "", - dataStdNo: "", - dataStdEngName: "", - dataStdCnName: "", - dataStdBusiDefn: "", - dataType: "", - dataStdBusiOwnershipDept: "", - dataStdBusiOwnershipPrsn: "", - dataStdItOwnershipDept: "", - dataStdItOwnershipPrsn: "", - securityLevel:"", - sourceSystem:"" + // 基础信息 + onum: '', + dataStdNo: '', + dataStdCnName: '', + dataStdEngName: '', + dataStdType: '0', + dataStdBusiDefn: '', + dataStdSrc: '', + dataClas: '', + securityLevel: '1', + dataStdVest: '', + typicalFld: '', + + // 系统关联 + srcSys: null, + cdId: '', + cdNo: '', + + // 责任信息 + dataStdBusiOwnershipDept: '', + dataStdBusiOwnershipPrsn: '', + dataStdItOwnershipDept: '', + dataStdItOwnershipPrsn: '', }; // 清空选中的数据 diff --git a/vue-fastapi-frontend/src/views/datastd/stddict/AddEditForm.vue b/vue-fastapi-frontend/src/views/datastd/stddict/AddEditForm.vue index d8a40af..f9dd7f0 100644 --- a/vue-fastapi-frontend/src/views/datastd/stddict/AddEditForm.vue +++ b/vue-fastapi-frontend/src/views/datastd/stddict/AddEditForm.vue @@ -56,9 +56,9 @@ diff --git a/vue-fastapi-frontend/src/views/datastd/stddict/index.vue b/vue-fastapi-frontend/src/views/datastd/stddict/index.vue index 1e91636..60f2428 100644 --- a/vue-fastapi-frontend/src/views/datastd/stddict/index.vue +++ b/vue-fastapi-frontend/src/views/datastd/stddict/index.vue @@ -142,7 +142,7 @@ @click="handleStdClick(row.dataStdNo)" style="cursor: pointer" > - {{transIdtoCode(row.dataStdNo)}} + {{row.dataStdNo}} @@ -170,7 +170,7 @@ label="技术认责部门" width="120" align="center" - prop="dataStdItOwnershipPrsn" + prop="dataStdItOwnershipDept" /> { return match ? "系统级:"+ match.name : id; }; const dbResourceOptions = ref([]); -const handleStdClick = (id) => { +const handleStdClick = (code) => { + var id =transCodetoId(code) getStdMain(id).then((response) => { stdRow.value = response.data; stdVisible.value = true; @@ -300,9 +301,10 @@ const handlePagination = (pageNum, pageSize) => { queryParams.value.pageSize = pageSize; handleQuery(); }; -const transIdtoCode = (dataStdNo) => { - const match = stdList.value.find(item => item.onum === dataStdNo); - return match ? match.dataStdNo : ''; + +const transCodetoId = (dataStdNo) => { + const match = stdList.value.find(item => item.dataStdNo === dataStdNo); + return match ? match.onum : ''; }; const filterNode = (value, data) => { if (!value) return true;