Browse Source

规范字段

master
si@aidatagov.com 4 weeks ago
parent
commit
b158c58cfa
  1. 54
      vue-fastapi-backend/module_admin/controller/datastd_controller.py
  2. 432
      vue-fastapi-backend/module_admin/dao/datastd_dao.py
  3. 195
      vue-fastapi-backend/module_admin/entity/do/datastd_do.py
  4. 87
      vue-fastapi-backend/module_admin/entity/vo/datastd_vo.py
  5. 6
      vue-fastapi-backend/module_admin/service/approval_service.py
  6. 404
      vue-fastapi-backend/module_admin/service/datastd_service.py
  7. 10
      vue-fastapi-backend/sql/ruoyi-fastapi-pg.sql
  8. 6
      vue-fastapi-backend/sql/ruoyi-fastapi.sql
  9. 22
      vue-fastapi-backend/sql/syq20250204版本更新(数据安全模块).sql
  10. 2
      vue-fastapi-frontend/src/api/datastd/std.js
  11. 4
      vue-fastapi-frontend/src/main.js
  12. 17
      vue-fastapi-frontend/src/store/modules/user.js
  13. 6
      vue-fastapi-frontend/src/views/datastd/main/components/AddEditForm.vue
  14. 12
      vue-fastapi-frontend/src/views/datastd/main/index.vue
  15. 50
      vue-fastapi-frontend/src/views/datastd/stdcode/codeComponents.vue
  16. 99
      vue-fastapi-frontend/src/views/datastd/stdcode/codeItem.vue
  17. 44
      vue-fastapi-frontend/src/views/datastd/stdcode/codeItemCommon.vue
  18. 121
      vue-fastapi-frontend/src/views/datastd/stdcode/codeMap.vue
  19. 10
      vue-fastapi-frontend/src/views/datastd/stdcode/codeStdMap.vue
  20. 83
      vue-fastapi-frontend/src/views/datastd/stdcode/index.vue
  21. 6
      vue-fastapi-frontend/src/views/datastd/stddict/AddEditForm.vue
  22. 60
      vue-fastapi-frontend/src/views/datastd/stddict/codeItem.vue
  23. 28
      vue-fastapi-frontend/src/views/datastd/stddict/codeItemCommon.vue
  24. 10
      vue-fastapi-frontend/src/views/datastd/stddict/index.vue
  25. 41
      vue-fastapi-frontend/src/views/system/flow/codeItemCommon.vue
  26. 8
      vue-fastapi-frontend/src/views/system/flow/dataStdCodeAppr.vue
  27. 10
      vue-fastapi-frontend/src/views/system/flow/dataStdDictAppr.vue
  28. 8
      vue-fastapi-frontend/src/views/system/flow/dataStdMainAppr.vue

54
vue-fastapi-backend/module_admin/controller/datastd_controller.py

@ -87,8 +87,8 @@ async def add_std_code(
add_std_code.create_by = current_user.user.user_name add_std_code.create_by = current_user.user.user_name
add_std_code.create_time = datetime.now() add_std_code.create_time = datetime.now()
add_std_code.update_by = current_user.user.user_name add_std_code.upd_prsn = current_user.user.user_name
add_std_code.update_time = datetime.now() add_std_code.upd_time = datetime.now()
add_std_code_result = await DataStdService.add_std_code_services(request, query_db, add_std_code) add_std_code_result = await DataStdService.add_std_code_services(request, query_db, add_std_code)
logger.info(add_std_code_result.message) logger.info(add_std_code_result.message)
return ResponseUtil.success(msg=add_std_code_result.message) return ResponseUtil.success(msg=add_std_code_result.message)
@ -102,8 +102,8 @@ async def edit_std_code(
query_db: AsyncSession = Depends(get_db), query_db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user), current_user: CurrentUserModel = Depends(LoginService.get_current_user),
): ):
edit_std_code.update_by = current_user.user.user_name edit_std_code.upd_prsn = current_user.user.user_name
edit_std_code.update_time = datetime.now() edit_std_code.upd_time = datetime.now()
edit_std_code_result = await DataStdService.edit_std_code_services(request, query_db, edit_std_code) edit_std_code_result = await DataStdService.edit_std_code_services(request, query_db, edit_std_code)
logger.info(edit_std_code_result.message) logger.info(edit_std_code_result.message)
return ResponseUtil.success(msg=edit_std_code_result.message) return ResponseUtil.success(msg=edit_std_code_result.message)
@ -145,9 +145,9 @@ async def add_std_code_with_items(
# 设置标准代码的创建和更新时间 # 设置标准代码的创建和更新时间
code.create_by = current_user.user.user_name code.create_by = current_user.user.user_name
code.create_time = datetime.now() code.create_time = datetime.now()
code.update_by = current_user.user.user_name code.upd_prsn = current_user.user.user_name
code.update_time = datetime.now() code.upd_time = datetime.now()
code.sys_name='公司级' if 'company'==code.code_type else code.sys_name code.src_sys='公司级' if 'company'==code.cd_type else code.src_sys
# 传递给服务层,处理标准代码和代码项的添加 # 传递给服务层,处理标准代码和代码项的添加
result = await DataStdService.add_std_code_with_items_services(request, query_db, code, code_item_list) result = await DataStdService.add_std_code_with_items_services(request, query_db, code, code_item_list)
@ -181,9 +181,9 @@ async def edit_std_code_with_items(
current_user: CurrentUserModel = Depends(LoginService.get_current_user), current_user: CurrentUserModel = Depends(LoginService.get_current_user),
): ):
# 设置标准代码的创建和更新时间 # 设置标准代码的创建和更新时间
code.sys_name='公司级' if 'company'==code.code_type else code.sys_name code.src_sys='公司级' if 'company'==code.cd_type else code.src_sys
code.update_by = current_user.user.user_name code.upd_prsn = current_user.user.user_name
code.update_time = datetime.now() code.upd_time = datetime.now()
# 传递给服务层,处理标准代码和代码项的添加 # 传递给服务层,处理标准代码和代码项的添加
result = await DataStdService.edit_std_code_with_items_services(request, query_db, code, code_item_list) result = await DataStdService.edit_std_code_with_items_services(request, query_db, code, code_item_list)
@ -258,8 +258,8 @@ async def add_std_dict(
add_std_dict.create_by = current_user.user.user_name add_std_dict.create_by = current_user.user.user_name
add_std_dict.create_time = datetime.now() add_std_dict.create_time = datetime.now()
add_std_dict.update_by = current_user.user.user_name add_std_dict.upd_prsn = current_user.user.user_name
add_std_dict.update_time = datetime.now() add_std_dict.upd_time = datetime.now()
add_std_dict_result = await DataStdService.add_std_dict_services(request, query_db, add_std_dict) add_std_dict_result = await DataStdService.add_std_dict_services(request, query_db, add_std_dict)
logger.info(add_std_dict_result.message) logger.info(add_std_dict_result.message)
return ResponseUtil.success(msg=add_std_dict_result.message) return ResponseUtil.success(msg=add_std_dict_result.message)
@ -273,8 +273,8 @@ async def edit_std_dict(
query_db: AsyncSession = Depends(get_db), query_db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user), current_user: CurrentUserModel = Depends(LoginService.get_current_user),
): ):
edit_std_dict.update_by = current_user.user.user_name edit_std_dict.upd_prsn = current_user.user.user_name
edit_std_dict.update_time = datetime.now() edit_std_dict.upd_time = datetime.now()
edit_std_dict_result = await DataStdService.edit_std_dict_services(request, query_db, edit_std_dict) edit_std_dict_result = await DataStdService.edit_std_dict_services(request, query_db, edit_std_dict)
logger.info(edit_std_dict_result.message) logger.info(edit_std_dict_result.message)
return ResponseUtil.success(msg=edit_std_dict_result.message) return ResponseUtil.success(msg=edit_std_dict_result.message)
@ -310,8 +310,8 @@ async def add_std_dict_appr(
): ):
add_std_dict.create_by = current_user.user.user_name add_std_dict.create_by = current_user.user.user_name
add_std_dict.create_time = datetime.now() add_std_dict.create_time = datetime.now()
add_std_dict.update_by = current_user.user.user_name add_std_dict.upd_prsn = current_user.user.user_name
add_std_dict.update_time = datetime.now() add_std_dict.upd_time = datetime.now()
add_std_dict_result = await DataStdService.add_std_dict_appr(query_db, add_std_dict) add_std_dict_result = await DataStdService.add_std_dict_appr(query_db, add_std_dict)
logger.info(add_std_dict_result.message) logger.info(add_std_dict_result.message)
return ResponseUtil.success(msg=add_std_dict_result.message) return ResponseUtil.success(msg=add_std_dict_result.message)
@ -323,8 +323,8 @@ async def edit_std_dict_appr(
query_db: AsyncSession = Depends(get_db), query_db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user), current_user: CurrentUserModel = Depends(LoginService.get_current_user),
): ):
edit_std_dict.update_by = current_user.user.user_name edit_std_dict.upd_prsn = current_user.user.user_name
edit_std_dict.update_time = datetime.now() edit_std_dict.upd_time = datetime.now()
edit_std_dict_result = await DataStdService.edit_std_dict_appr(query_db, edit_std_dict) edit_std_dict_result = await DataStdService.edit_std_dict_appr(query_db, edit_std_dict)
logger.info(edit_std_dict_result.message) logger.info(edit_std_dict_result.message)
return ResponseUtil.success(msg=edit_std_dict_result.message) return ResponseUtil.success(msg=edit_std_dict_result.message)
@ -574,8 +574,8 @@ async def add_std_main(
): ):
add_std_main.create_by = current_user.user.user_name add_std_main.create_by = current_user.user.user_name
add_std_main.create_time = datetime.now() add_std_main.create_time = datetime.now()
add_std_main.update_by = current_user.user.user_name add_std_main.upd_prsn = current_user.user.user_name
add_std_main.update_time = datetime.now() add_std_main.upd_time = datetime.now()
add_std_main_result = await DataStdService.add_std_main(query_db, add_std_main) add_std_main_result = await DataStdService.add_std_main(query_db, add_std_main)
logger.info(add_std_main_result.message) logger.info(add_std_main_result.message)
return ResponseUtil.success(msg=add_std_main_result.message) return ResponseUtil.success(msg=add_std_main_result.message)
@ -590,8 +590,8 @@ async def add_std_main_appr(
): ):
add_std_main.create_by = current_user.user.user_name add_std_main.create_by = current_user.user.user_name
add_std_main.create_time = datetime.now() add_std_main.create_time = datetime.now()
add_std_main.update_by = current_user.user.user_name add_std_main.upd_prsn = current_user.user.user_name
add_std_main.update_time = datetime.now() add_std_main.upd_time = datetime.now()
add_std_main_result = await DataStdService.add_std_main_appr(query_db, add_std_main) add_std_main_result = await DataStdService.add_std_main_appr(query_db, add_std_main)
logger.info(add_std_main_result.message) logger.info(add_std_main_result.message)
return ResponseUtil.success(msg=add_std_main_result.message) return ResponseUtil.success(msg=add_std_main_result.message)
@ -605,8 +605,8 @@ async def edit_std_main(
query_db: AsyncSession = Depends(get_db), query_db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user), current_user: CurrentUserModel = Depends(LoginService.get_current_user),
): ):
edit_std_main.update_by = current_user.user.user_name edit_std_main.upd_prsn = current_user.user.user_name
edit_std_main.update_time = datetime.now() edit_std_main.upd_time = datetime.now()
edit_std_main_result = await DataStdService.edit_std_main(query_db, edit_std_main) edit_std_main_result = await DataStdService.edit_std_main(query_db, edit_std_main)
logger.info(edit_std_main_result.message) logger.info(edit_std_main_result.message)
return ResponseUtil.success(msg=edit_std_main_result.message) return ResponseUtil.success(msg=edit_std_main_result.message)
@ -618,8 +618,8 @@ async def edit_std_main_appr(
query_db: AsyncSession = Depends(get_db), query_db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user), current_user: CurrentUserModel = Depends(LoginService.get_current_user),
): ):
edit_std_main.update_by = current_user.user.user_name edit_std_main.upd_prsn = current_user.user.user_name
edit_std_main.update_time = datetime.now() edit_std_main.upd_time = datetime.now()
edit_std_main_result = await DataStdService.edit_std_main_appr(query_db, edit_std_main) edit_std_main_result = await DataStdService.edit_std_main_appr(query_db, edit_std_main)
logger.info(edit_std_main_result.message) logger.info(edit_std_main_result.message)
return ResponseUtil.success(msg=edit_std_main_result.message) return ResponseUtil.success(msg=edit_std_main_result.message)
@ -651,7 +651,7 @@ async def change_std_main_onum(
edit_std_main: DataStdMainModel, edit_std_main: DataStdMainModel,
query_db: AsyncSession = Depends(get_db), query_db: AsyncSession = Depends(get_db),
): ):
delete_std_main_result = await DataStdService.change_std_main_onum(query_db, edit_std_main.id,edit_std_main.sys_id) delete_std_main_result = await DataStdService.change_std_main_onum(query_db, edit_std_main.onum,edit_std_main.src_sys)
logger.info(delete_std_main_result.message) logger.info(delete_std_main_result.message)
return ResponseUtil.success(msg=delete_std_main_result.message) return ResponseUtil.success(msg=delete_std_main_result.message)
# 标准代码映射图谱 # 标准代码映射图谱

432
vue-fastapi-backend/module_admin/dao/datastd_dao.py

@ -25,49 +25,119 @@ class DataStdDao:
filters.append(DataStdCodeAppr.flowId == flowId) filters.append(DataStdCodeAppr.flowId == flowId)
query = select(DataStdCodeAppr).where(*filters).order_by(desc(DataStdCodeAppr.create_time)) query = select(DataStdCodeAppr).where(*filters).order_by(desc(DataStdCodeAppr.create_time))
return await PageUtil.paginate(db, query, 0, 0, False) 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 @classmethod
async def get_std_code_list(cls, db: AsyncSession, query_object: DataStdCodeModel, is_page: bool = False): async def get_std_code_list(cls, db: AsyncSession, query_object: DataStdCodeModel, is_page: bool = False):
""" """
获取 DataStdCode 的列表信息支持模糊查询和分页 查询 DataStdCode 列表带出 code_map_cn 字段通过 code_map_id 关联同表获取 cd_val_cn_mean
:param db: ORM对象 :param db: ORM 会话对象
:param query_object: 查询参数对象 :param query_object: 查询条件对象
:param is_page: 是否开启分页 :param is_page: 是否分页
:return: 列表信息 :return: 列表结果分页或不分页
""" """
# 构建查询条件 # 构建别名
c1 = aliased(DataStdCode) # 当前记录
c2 = aliased(DataStdCode) # 关联 code_map_id
# 构建过滤条件
filters = [] filters = []
if query_object.code_name: if query_object.cd_val_cn_mean:
filters.append(DataStdCode.code_name.like(f"%{query_object.code_name}%")) filters.append(c1.cd_val_cn_mean.like(f"%{query_object.cd_val_cn_mean}%"))
if query_object.code_num: if query_object.cd_no:
filters.append(or_( filters.append(or_(
DataStdCode.code_name.like(f"%{query_object.code_num}%"), c1.cd_val_cn_mean.like(f"%{query_object.cd_no}%"),
DataStdCode.code_num.like(f"%{query_object.code_num}%") c1.cd_no.like(f"%{query_object.cd_no}%")
)) ))
if query_object.code_status: if query_object.cd_val_stat:
filters.append(DataStdCode.code_status==query_object.code_status) filters.append(c1.cd_val_stat == query_object.cd_val_stat)
if query_object.sys_id: if query_object.src_sys:
filters.append(DataStdCode.sys_id==query_object.sys_id) filters.append(c1.src_sys == query_object.src_sys)
if query_object.code_type: if query_object.cd_type:
filters.append(DataStdCode.code_type==query_object.code_type) filters.append(c1.cd_type == query_object.cd_type)
if query_object.class_id: if query_object.class_id:
filters.append(DataStdCode.class_id==query_object.class_id) filters.append(c1.class_id == query_object.class_id)
if query_object.class_id == 'codeItem' and not query_object.parent_id: if query_object.class_id == 'codeItem' and not query_object.parent_id:
filters.append(1 == 2) filters.append(1 == 2)
if query_object.parent_id: if query_object.parent_id:
filters.append(DataStdCode.parent_id==query_object.parent_id) filters.append(c1.parent_id == query_object.parent_id)
# 构建查询语句
# 构建查询
query = ( query = (
select(DataStdCode) select(
c1.onum, # 当前 code 数据的 Id
c1.cd_no, # 当前代码编号
c1.cd_val_cn_mean, # 当前代码值
c1.cd_type, # 当前代码类型
c1.cd_val_stat, # 当前代码状态
c1.src_sys, # 当前归属系统
c1.class_id, # 当前代码类别
c1.parent_id, # 当前代码父 id
c1.code_map_id, # 当前代码映射 Id
c2.cd_val_cn_mean.label("code_map_cn") # 映射名称
)
.select_from(c1)
.outerjoin(c2, c1.code_map_id == c2.onum)
.where(*filters) .where(*filters)
.order_by(desc(DataStdCode.create_time)) # 按创建时间降序排序 .order_by(desc(c1.create_time))
) )
# 分页处理 # 分页处理
col_list = await PageUtil.paginate( result = await PageUtil.paginate(
db, query, query_object.page_num, query_object.page_size, is_page db, query, query_object.page_num, query_object.page_size, is_page
) )
return col_list return result
@classmethod @classmethod
async def get_appr_std_code_list(cls, db: AsyncSession, query_object: DataStdCodeApprModel, is_page: bool = False): async def get_appr_std_code_list(cls, db: AsyncSession, query_object: DataStdCodeApprModel, is_page: bool = False):
""" """
@ -79,19 +149,19 @@ class DataStdDao:
""" """
# 构建查询条件 # 构建查询条件
filters = [] filters = []
if query_object.code_name: if query_object.cd_val_cn_mean:
filters.append(DataStdCodeAppr.code_name.like(f"%{query_object.code_name}%")) filters.append(DataStdCodeAppr.cd_val_cn_mean.like(f"%{query_object.cd_val_cn_mean}%"))
if query_object.code_num: if query_object.cd_no:
filters.append( or_( filters.append( or_(
DataStdCodeAppr.code_name.like(f"%{query_object.code_num}%"), DataStdCodeAppr.cd_val_cn_mean.like(f"%{query_object.cd_no}%"),
DataStdCodeAppr.code_num.like(f"%{query_object.code_num}%") DataStdCodeAppr.cd_no.like(f"%{query_object.cd_no}%")
)) ))
if query_object.code_status: if query_object.cd_val_stat:
filters.append(DataStdCodeAppr.code_status==query_object.code_status) filters.append(DataStdCodeAppr.cd_val_stat==query_object.cd_val_stat)
if query_object.sys_id: if query_object.src_sys:
filters.append(DataStdCodeAppr.sys_id==query_object.sys_id) filters.append(DataStdCodeAppr.src_sys==query_object.src_sys)
if query_object.code_type: if query_object.cd_type:
filters.append(DataStdCodeAppr.code_type==query_object.code_type) filters.append(DataStdCodeAppr.cd_type==query_object.cd_type)
if query_object.class_id: if query_object.class_id:
filters.append(DataStdCodeAppr.class_id==query_object.class_id) filters.append(DataStdCodeAppr.class_id==query_object.class_id)
@ -119,7 +189,7 @@ class DataStdDao:
DataStdCodeAppr.oldInstId == Id, DataStdCodeAppr.oldInstId == Id,
DataStdCodeAppr.approStatus == "succeed" DataStdCodeAppr.approStatus == "succeed"
) )
.order_by(DataStdCodeAppr.update_time.desc()) .order_by(DataStdCodeAppr.upd_time.desc())
.limit(1) .limit(1)
) )
return result.scalar_one_or_none() return result.scalar_one_or_none()
@ -133,7 +203,7 @@ class DataStdDao:
c3 = aliased(DataStdCode) # 别名 c3 表示映射的代码 c3 = aliased(DataStdCode) # 别名 c3 表示映射的代码
c4 = aliased(DataStdCode) # 别名 c4 表示映射父级代码 c4 = aliased(DataStdCode) # 别名 c4 表示映射父级代码
if query_object.parent_id: if query_object.parent_id:
if query_object.code_type =='sys': if query_object.cd_type =='sys':
filters.append(c1.parent_id == query_object.parent_id) filters.append(c1.parent_id == query_object.parent_id)
else: else:
filters.append(c3.parent_id == query_object.parent_id) filters.append(c3.parent_id == query_object.parent_id)
@ -143,21 +213,21 @@ class DataStdDao:
# 3. 构建基础查询,使用连接和别名 # 3. 构建基础查询,使用连接和别名
query = ( query = (
select( select(
c2.sys_id.label("target_sys_id"), # 父级系统编号 c2.src_sys.label("target_sys_id"), # 父级系统编号
c2.sys_name.label("target_sys_name"), # 父级系统名称 c2.src_sys.label("target_sys_name"), # 父级系统名称
c2.code_num.label("target_code_num"), # 父级代码编号 c2.cd_no.label("target_code_num"), # 父级代码编号
c2.code_name.label("target_code_name"), # 父级代码名称 c2.cd_val_cn_mean.label("target_code_name"), # 父级代码名称
c1.code_num.label("target_code_num_item"), # 当前 codeItem 的编号 c1.cd_no.label("target_code_num_item"), # 当前 codeItem 的编号
c1.code_name.label("target_code_name_item"), # 当前 codeItem 的名称 c1.cd_val_cn_mean.label("target_code_name_item"), # 当前 codeItem 的名称
c4.code_num.label("resource_code_num"), # 映射的父级代码编号 c4.cd_no.label("resource_code_num"), # 映射的父级代码编号
c4.code_name.label("resource_code_name"), # 映射的父级代码名称 c4.cd_val_cn_mean.label("resource_code_name"), # 映射的父级代码名称
c3.code_num.label("resource_code_num_item"), # 映射的父级代码编号 c3.cd_no.label("resource_code_num_item"), # 映射的父级代码编号
c3.code_name.label("resource_code_name_item") # 映射的父级代码名称 c3.cd_val_cn_mean.label("resource_code_name_item") # 映射的父级代码名称
) )
.select_from(c1) # 从 c1 开始查询 .select_from(c1) # 从 c1 开始查询
.join(c2, c1.parent_id == c2.id, isouter=True) # 连接 c2 .join(c2, c1.parent_id == c2.onum, isouter=True) # 连接 c2
.join(c3, c1.code_map_id == c3.id, isouter=True) # 连接 c3 .join(c3, c1.code_map_id == c3.onum, isouter=True) # 连接 c3
.join(c4, c3.parent_id == c4.id, isouter=True) # 连接 c4 .join(c4, c3.parent_id == c4.onum, isouter=True) # 连接 c4
.where(*filters) # 使用所有过滤条件 .where(*filters) # 使用所有过滤条件
.order_by(desc(c1.create_time)) # 按照创建时间降序排列 .order_by(desc(c1.create_time)) # 按照创建时间降序排列
) )
@ -172,11 +242,11 @@ class DataStdDao:
await db.execute( await db.execute(
select(DataStdCode) select(DataStdCode)
.where( .where(
DataStdCode.code_name == query_object.code_name if query_object.code_name else True, DataStdCode.cd_val_cn_mean == query_object.cd_val_cn_mean if query_object.cd_val_cn_mean else True,
DataStdCode.id == query_object.id if query_object.id else True, DataStdCode.onum == query_object.onum if query_object.onum else True,
DataStdCode.code_status == query_object.code_status if query_object.code_status else True, DataStdCode.cd_val_stat == query_object.cd_val_stat if query_object.cd_val_stat else True,
DataStdCode.sys_id == query_object.sys_id if query_object.sys_id else True, DataStdCode.src_sys == query_object.src_sys if query_object.src_sys else True,
DataStdCode.code_type == query_object.code_type if query_object.code_type else True, DataStdCode.cd_type == query_object.cd_type if query_object.cd_type else True,
DataStdCode.code_map_id == query_object.code_map_id if query_object.code_map_id else True, DataStdCode.code_map_id == query_object.code_map_id if query_object.code_map_id else True,
DataStdCode.parent_id == query_object.parent_id if query_object.parent_id else True, DataStdCode.parent_id == query_object.parent_id if query_object.parent_id else True,
DataStdCode.class_id == query_object.class_id if query_object.class_id else True DataStdCode.class_id == query_object.class_id if query_object.class_id else True
@ -190,11 +260,11 @@ class DataStdDao:
await db.execute( await db.execute(
select(DataStdCode) select(DataStdCode)
.where( .where(
DataStdCode.code_name == query_object.code_name if query_object.code_name else True, DataStdCode.cd_val_cn_mean == query_object.cd_val_cn_mean if query_object.cd_val_cn_mean else True,
DataStdCode.code_num == query_object.code_num if query_object.code_num else True, DataStdCode.cd_no == query_object.cd_no if query_object.cd_no else True,
DataStdCode.code_status == query_object.code_status if query_object.code_status else True, DataStdCode.cd_val_stat == query_object.cd_val_stat if query_object.cd_val_stat else True,
DataStdCode.sys_id == query_object.sys_id if query_object.sys_id else True, DataStdCode.src_sys == query_object.src_sys if query_object.src_sys else True,
DataStdCode.code_type == query_object.code_type if query_object.code_type else True, DataStdCode.cd_type == query_object.cd_type if query_object.cd_type else True,
DataStdCode.parent_id == query_object.parent_id if query_object.parent_id else True, DataStdCode.parent_id == query_object.parent_id if query_object.parent_id else True,
DataStdCode.class_id == query_object.class_id if query_object.class_id else True DataStdCode.class_id == query_object.class_id if query_object.class_id else True
) )
@ -206,7 +276,7 @@ class DataStdDao:
col = ( col = (
await db.execute( await db.execute(
select(DataStdCode) select(DataStdCode)
.where(DataStdCode.id == Id) .where(DataStdCode.onum == Id)
) )
).scalars().first() ).scalars().first()
return col return col
@ -215,7 +285,7 @@ class DataStdDao:
col = ( col = (
await db.execute( await db.execute(
select(DataStdCodeAppr) select(DataStdCodeAppr)
.where(DataStdCodeAppr.id == Id) .where(DataStdCodeAppr.onum == Id)
) )
).scalars().first() ).scalars().first()
return col return col
@ -240,7 +310,7 @@ class DataStdDao:
@classmethod @classmethod
async def delete_std_code(cls, db: AsyncSession, Id: str): async def delete_std_code(cls, db: AsyncSession, Id: str):
await db.execute(delete(DataStdCode).where(DataStdCode.id == Id)) await db.execute(delete(DataStdCode).where(DataStdCode.onum == Id))
@classmethod @classmethod
async def update_std_code_appr(cls, db: AsyncSession, update_data: DataStdCodeApprModel): async def update_std_code_appr(cls, db: AsyncSession, update_data: DataStdCodeApprModel):
@ -254,17 +324,17 @@ class DataStdDao:
await db.flush() await db.flush()
@classmethod @classmethod
async def check_code_num_exists(cls, query_db: AsyncSession, code_num: str) -> bool: async def check_code_num_exists(cls, query_db: AsyncSession, cd_no: str) -> bool:
""" """
检查标准代码或代码项的code_num是否已经存在 检查标准代码或代码项的code_num是否已经存在
""" """
# 查询标准代码表中是否存在相同的code_num # 查询标准代码表中是否存在相同的code_num
result = await query_db.execute(select(DataStdCodeModel).filter(DataStdCodeModel.code_num == code_num)) result = await query_db.execute(select(DataStdCodeModel).filter(DataStdCodeModel.cd_no == cd_no))
existing_code = result.scalar_one_or_none() existing_code = result.scalar_one_or_none()
# 如果不存在,则检查代码项表中是否存在相同的code_num # 如果不存在,则检查代码项表中是否存在相同的code_num
if not existing_code: if not existing_code:
result = await query_db.execute(select(DataStdCode).filter(DataStdCodeModel.code_num == code_num)) result = await query_db.execute(select(DataStdCode).filter(DataStdCodeModel.cd_no == cd_no))
existing_code_item = result.scalar_one_or_none() existing_code_item = result.scalar_one_or_none()
return existing_code_item is not None return existing_code_item is not None
@ -281,47 +351,47 @@ class DataStdDao:
""" """
# 构建查询条件 # 构建查询条件
filters = [] filters = []
if query_object.dict_name: if query_object.data_dict_cn_name:
filters.append(DataStdDict.dict_name.like(f"%{query_object.dict_name}%")) filters.append(DataStdDict.data_dict_cn_name.like(f"%{query_object.data_dict_cn_name}%"))
if query_object.dict_code: if query_object.data_dict_eng_name:
filters.append(DataStdDict.dict_code.like(f"%{query_object.dict_code}%")) filters.append(DataStdDict.data_dict_eng_name.like(f"%{query_object.data_dict_eng_name}%"))
if query_object.dict_level: if query_object.data_dict_vest:
filters.append(DataStdDict.dict_level == query_object.dict_level) filters.append(DataStdDict.data_dict_vest == query_object.data_dict_vest)
if query_object.sys_id: if query_object.src_sys:
filters.append(DataStdDict.sys_id == query_object.sys_id) filters.append(DataStdDict.src_sys == query_object.src_sys)
if query_object.dict_type: if query_object.data_dict_type:
filters.append(DataStdDict.dict_type == query_object.dict_type) filters.append(DataStdDict.data_dict_type == query_object.data_dict_type)
if query_object.dict_status: if query_object.data_dict_stat:
filters.append(DataStdDict.dict_status == query_object.dict_status) filters.append(DataStdDict.data_dict_stat == query_object.data_dict_stat)
c1 = aliased(SysDept) # 技术部门 c1 = aliased(SysDept) # 技术部门
c2 = aliased(SysDept) # 业务部门 c2 = aliased(SysDept) # 业务部门
# 构建查询语句 # 构建查询语句
query = ( query = (
select(DataStdDict.id, select(DataStdDict.onum,
DataStdDict.create_by, DataStdDict.create_by,
DataStdDict.create_time, DataStdDict.create_time,
DataStdDict.update_by, DataStdDict.upd_prsn,
DataStdDict.update_time, DataStdDict.upd_time,
DataStdDict.dict_num, DataStdDict.data_dict_no,
DataStdDict.dict_code, DataStdDict.data_dict_eng_name,
DataStdDict.dict_name, DataStdDict.data_dict_cn_name,
DataStdDict.dict_level, DataStdDict.data_dict_vest,
DataStdDict.dict_type, DataStdDict.data_dict_type,
DataStdDict.sys_name, DataStdDict.src_sys,
DataStdDict.sys_id, DataStdDict.src_sys,
DataStdDict.dict_menu, DataStdDict.data_dict_busi_mean,
DataStdDict.data_type, DataStdDict.data_dict_data_type,
DataStdDict.std_code, DataStdDict.data_std_no,
DataStdDict.std_name, DataStdDict.data_std_cn_name,
DataStdDict.dict_status, DataStdDict.data_dict_stat,
DataStdDict.buss_dept_id, DataStdDict.data_std_busi_ownership_dept,
DataStdDict.tech_dept_id, DataStdDict.data_std_it_ownership_dept,
DataStdDict.buss_user, DataStdDict.buss_user,
DataStdDict.tech_user, DataStdDict.tech_user,
c1.dept_name.label("tech_dept_name"), c1.dept_name.label("tech_dept_name"),
c2.dept_name.label("buss_dept_name")).select_from(DataStdDict) c2.dept_name.label("buss_dept_name")).select_from(DataStdDict)
.join(c1,c1.dept_id ==DataStdDict.tech_dept_id, isouter=True) .join(c1,c1.dept_id ==DataStdDict.data_std_it_ownership_dept, isouter=True)
.join(c2,c2.dept_id ==DataStdDict.buss_dept_id, isouter=True) .join(c2,c2.dept_id ==DataStdDict.data_std_busi_ownership_dept, isouter=True)
.where(*filters) .where(*filters)
.order_by(desc(DataStdDict.create_time)) # 按创建时间降序排序 .order_by(desc(DataStdDict.create_time)) # 按创建时间降序排序
) )
@ -343,12 +413,12 @@ class DataStdDao:
@classmethod @classmethod
async def delete_std_dict(cls, db: AsyncSession, Id: str): async def delete_std_dict(cls, db: AsyncSession, Id: str):
await db.execute(delete(DataStdDict).where(DataStdDict.id == Id)) await db.execute(delete(DataStdDict).where(DataStdDict.onum == Id))
@classmethod @classmethod
async def get_std_dict_list_all(cls, db: AsyncSession, query_object: DataStdDict): async def get_std_dict_list_all(cls, db: AsyncSession, query_object: DataStdDict):
filters = [] filters = []
if query_object.std_code: if query_object.data_std_no:
filters.append(DataStdDict.std_code.like(f"%{query_object.std_code}%")) filters.append(DataStdDict.data_std_no.like(f"%{query_object.data_std_no}%"))
query = select(DataStdDict).where(*filters).order_by(desc(DataStdDict.create_time)) query = select(DataStdDict).where(*filters).order_by(desc(DataStdDict.create_time))
return await PageUtil.paginate(db, query, 0, 0, False) return await PageUtil.paginate(db, query, 0, 0, False)
@classmethod @classmethod
@ -362,7 +432,7 @@ class DataStdDao:
col = ( col = (
await db.execute( await db.execute(
select(DataStdDict) select(DataStdDict)
.where(DataStdDict.id == Id) .where(DataStdDict.onum == Id)
) )
).scalars().first() ).scalars().first()
return col return col
@ -372,12 +442,12 @@ class DataStdDao:
await db.execute( await db.execute(
select(DataStdDict) select(DataStdDict)
.where( .where(
DataStdDict.dict_name == query_object.dict_name if query_object.dict_name else True, DataStdDict.data_dict_cn_name == query_object.data_dict_cn_name if query_object.data_dict_cn_name else True,
DataStdDict.dict_num == query_object.dict_num if query_object.dict_num else True, DataStdDict.data_dict_no == query_object.data_dict_no if query_object.data_dict_no else True,
DataStdDict.dict_status == query_object.dict_status if query_object.dict_status else True, DataStdDict.data_dict_stat == query_object.data_dict_stat if query_object.data_dict_stat else True,
DataStdDict.std_code == query_object.std_code if query_object.std_code else True, DataStdDict.data_std_no == query_object.data_std_no if query_object.data_std_no else True,
DataStdDict.sys_id == query_object.sys_id if query_object.sys_id else True, DataStdDict.src_sys == query_object.src_sys if query_object.src_sys else True,
DataStdDict.dict_type == query_object.dict_type if query_object.dict_type else True, DataStdDict.data_dict_type == query_object.data_dict_type if query_object.data_dict_type else True,
) )
) )
).scalars().first() ).scalars().first()
@ -385,16 +455,16 @@ class DataStdDao:
# 数据标准目录 # 数据标准目录
@classmethod @classmethod
async def get_catalog_by_id(cls, db: AsyncSession, content_onum: int): async def get_catalog_by_id(cls, db: AsyncSession, belt_data_std_content: int):
""" """
根据目录ID获取目录详细信息 根据目录ID获取目录详细信息
:param db: orm对象 :param db: orm对象
:param content_onum: 目录ID :param belt_data_std_content: 目录ID
:return: 目录信息对象 :return: 目录信息对象
""" """
catalog_info = ( catalog_info = (
(await db.execute(select(DataAstContent).where(DataAstContent.content_onum == content_onum , DataAstContent.content_stat == 1))) (await db.execute(select(DataAstContent).where(DataAstContent.belt_data_std_content == belt_data_std_content , DataAstContent.content_stat == 1)))
.scalars() .scalars()
.first() .first()
) )
@ -435,7 +505,7 @@ class DataStdDao:
# 创建别名对象 # 创建别名对象
t2 = aliased(DataAstContent, name='t2') # 正确使用aliased创建别名 t2 = aliased(DataAstContent, name='t2') # 正确使用aliased创建别名
subquery = ( subquery = (
select(DataAstContent.content_onum) select(DataAstContent.belt_data_std_content)
.where( .where(
DataAstContent.content_stat == '1', DataAstContent.content_stat == '1',
DataAstContent.leaf_node_flag == 0, DataAstContent.leaf_node_flag == 0,
@ -443,7 +513,7 @@ class DataStdDao:
select(1) select(1)
.select_from(t2) # 使用别名后的表 .select_from(t2) # 使用别名后的表
.where( .where(
t2.supr_content_onum == DataAstContent.content_onum, t2.supr_content_onum == DataAstContent.belt_data_std_content,
t2.content_stat == '1' t2.content_stat == '1'
) )
.exists() # 添加exists()方法 .exists() # 添加exists()方法
@ -453,7 +523,7 @@ class DataStdDao:
stmt = ( stmt = (
update(DataAstContent) update(DataAstContent)
.where(DataAstContent.content_onum.in_(subquery)) .where(DataAstContent.belt_data_std_content.in_(subquery))
.values(leaf_node_flag=1, upd_time=datetime.now()) .values(leaf_node_flag=1, upd_time=datetime.now())
) )
await db.execute(stmt) await db.execute(stmt)
@ -484,7 +554,7 @@ class DataStdDao:
# 创建 ORM 模型实例 # 创建 ORM 模型实例
processed_child = dict(child_dict) processed_child = dict(child_dict)
processed_child['content_onum'] = db_catalog.content_onum processed_child['belt_data_std_content'] = db_catalog.belt_data_std_content
db_child = DataAstContentRela(**processed_child) db_child = DataAstContentRela(**processed_child)
db.add(db_child) db.add(db_child)
@ -500,10 +570,10 @@ class DataStdDao:
:param catalog: 需要更新的目录字典 :param catalog: 需要更新的目录字典
:return: :return:
""" """
content_onum = catalog['content_onum'] belt_data_std_content = catalog['belt_data_std_content']
stmt = ( stmt = (
update(DataAstContent) update(DataAstContent)
.where(DataAstContent.content_onum == content_onum) .where(DataAstContent.belt_data_std_content == belt_data_std_content)
.values( .values(
leaf_node_flag=catalog['leaf_node_flag'] leaf_node_flag=catalog['leaf_node_flag']
) )
@ -519,11 +589,11 @@ class DataStdDao:
:param catalog: 需要更新的目录字典 :param catalog: 需要更新的目录字典
:return: :return:
""" """
content_onum = catalog['content_onum'] belt_data_std_content = catalog['belt_data_std_content']
stmt = ( stmt = (
update(DataAstContent) update(DataAstContent)
.where(DataAstContent.content_onum == content_onum) .where(DataAstContent.belt_data_std_content == belt_data_std_content)
.values( .values(
content_name=catalog['content_name'], content_name=catalog['content_name'],
content_stat=catalog['content_stat'], content_stat=catalog['content_stat'],
@ -545,7 +615,7 @@ class DataStdDao:
update(DataAstContentRela) update(DataAstContentRela)
.where(DataAstContentRela.rela_onum == rela_onum) .where(DataAstContentRela.rela_onum == rela_onum)
.values( .values(
content_onum=child.get('content_onum'), belt_data_std_content=child.get('belt_data_std_content'),
ast_onum=child.get('ast_onum'), ast_onum=child.get('ast_onum'),
rela_type=child.get('rela_type'), rela_type=child.get('rela_type'),
rela_eff_begn_date=child.get('rela_eff_begn_date'), rela_eff_begn_date=child.get('rela_eff_begn_date'),
@ -556,7 +626,7 @@ class DataStdDao:
await db.execute(st) await db.execute(st)
await cls.update_leaf_node_flag(db) await cls.update_leaf_node_flag(db)
else: else:
child['content_onum'] = content_onum child['belt_data_std_content'] = belt_data_std_content
db_child = DataAstContentRela(**child) db_child = DataAstContentRela(**child)
db.add(db_child) db.add(db_child)
await db.flush() await db.flush()
@ -575,7 +645,7 @@ class DataStdDao:
content_onums = catalog.content_onums.split(',') content_onums = catalog.content_onums.split(',')
await db.execute( await db.execute(
update(DataAstContentRela) update(DataAstContentRela)
.where(DataAstContentRela.content_onum.in_(content_onums)) .where(DataAstContentRela.belt_data_std_content.in_(content_onums))
.values( .values(
rela_status=0, rela_status=0,
rela_eff_end_date=datetime.now() rela_eff_end_date=datetime.now()
@ -583,7 +653,7 @@ class DataStdDao:
) )
await db.execute( await db.execute(
update(DataAstContent) update(DataAstContent)
.where(DataAstContent.content_onum.in_(content_onums)) .where(DataAstContent.belt_data_std_content.in_(content_onums))
.values( .values(
content_stat=0, content_stat=0,
upd_time=datetime.now() upd_time=datetime.now()
@ -602,11 +672,11 @@ class DataStdDao:
:param catalog: 需要更新的目录字典 :param catalog: 需要更新的目录字典
:return: :return:
""" """
# content_onum = moved_catalog_data['content_onum'] # belt_data_std_content = moved_catalog_data['belt_data_std_content']
stmt = ( stmt = (
update(DataAstContent) update(DataAstContent)
.where(DataAstContent.content_onum == moved_catalog_data['content_onum'] , DataAstContent.supr_content_onum == moved_catalog_data['supr_content_onum']) .where(DataAstContent.belt_data_std_content == moved_catalog_data['belt_data_std_content'] , DataAstContent.supr_content_onum == moved_catalog_data['supr_content_onum'])
.values( .values(
supr_content_onum=moved_catalog_data['supr_content_onum_after'], supr_content_onum=moved_catalog_data['supr_content_onum_after'],
upd_time=datetime.now() upd_time=datetime.now()
@ -627,9 +697,9 @@ class DataStdDao:
# stmt = ( # stmt = (
# update(DataAstContent) # update(DataAstContent)
# .where(DataAstContent.content_onum == merge_catalog_data['content_onum'] , DataAstContent.supr_content_onum == merge_catalog_data['supr_content_onum']) # .where(DataAstContent.belt_data_std_content == merge_catalog_data['belt_data_std_content'] , DataAstContent.supr_content_onum == merge_catalog_data['supr_content_onum'])
# .values( # .values(
# content_onum=merge_catalog_data['content_onum_after'], # belt_data_std_content=merge_catalog_data['content_onum_after'],
# supr_content_onum=merge_catalog_data['supr_content_onum_after'], # supr_content_onum=merge_catalog_data['supr_content_onum_after'],
# upd_time=datetime.now() # upd_time=datetime.now()
# ) ) # ) )
@ -637,9 +707,9 @@ class DataStdDao:
# await db.execute(stmt) # await db.execute(stmt)
stmt1 = ( stmt1 = (
update(DataAstContentRela) update(DataAstContentRela)
.where( DataAstContentRela.content_onum == merge_catalog_data['content_onum'] and DataAstContentRela.rela_status == 1 ) .where( DataAstContentRela.belt_data_std_content == merge_catalog_data['belt_data_std_content'] and DataAstContentRela.rela_status == 1 )
.values( .values(
content_onum=merge_catalog_data['content_onum_after'], belt_data_std_content=merge_catalog_data['content_onum_after'],
rela_eff_begn_date=datetime.now() rela_eff_begn_date=datetime.now()
) )
) )
@ -647,7 +717,7 @@ class DataStdDao:
stmt2 = ( stmt2 = (
update(DataAstContent) update(DataAstContent)
.where(DataAstContent.content_onum == merge_catalog_data['content_onum'] , DataAstContent.supr_content_onum == merge_catalog_data['supr_content_onum']) .where(DataAstContent.belt_data_std_content == merge_catalog_data['belt_data_std_content'] , DataAstContent.supr_content_onum == merge_catalog_data['supr_content_onum'])
.values( content_stat = '0' ) .values( content_stat = '0' )
) )
await db.execute(stmt2) await db.execute(stmt2)
@ -665,7 +735,7 @@ class DataStdDao:
stmt = ( stmt = (
update(DataAstContentRela) update(DataAstContentRela)
.where(DataAstContentRela.rela_onum == removerel_catalog_data['rela_onum'] , DataAstContentRela.content_onum == removerel_catalog_data['content_onum']) .where(DataAstContentRela.rela_onum == removerel_catalog_data['rela_onum'] , DataAstContentRela.belt_data_std_content == removerel_catalog_data['belt_data_std_content'])
.values( .values(
rela_status=removerel_catalog_data['rela_status'] rela_status=removerel_catalog_data['rela_status']
) ) ) )
@ -686,9 +756,9 @@ class DataStdDao:
stmt = ( stmt = (
update(DataAstContentRela) update(DataAstContentRela)
.where(DataAstContentRela.rela_onum == moverel_catalog_data['rela_onum'] , DataAstContentRela.content_onum == moverel_catalog_data['content_onum']) .where(DataAstContentRela.rela_onum == moverel_catalog_data['rela_onum'] , DataAstContentRela.belt_data_std_content == moverel_catalog_data['belt_data_std_content'])
.values( .values(
content_onum=moverel_catalog_data['content_onum_after'], belt_data_std_content=moverel_catalog_data['content_onum_after'],
rela_eff_end_date=datetime.now() rela_eff_end_date=datetime.now()
) ) ) )
@ -709,16 +779,16 @@ class DataStdDao:
# 修改子查询部分 # 修改子查询部分
subquery_t1 = ( subquery_t1 = (
select(DataAstContentRela) select(DataAstContentRela)
.where(DataAstContentRela.upd_prsn == query_object.upd_prsn, DataAstContentRela.content_onum == '2' and DataAstContentRela.rela_status == '1') .where(DataAstContentRela.upd_prsn == query_object.upd_prsn, DataAstContentRela.belt_data_std_content == '2' and DataAstContentRela.rela_status == '1')
.union_all( .union_all(
select(DataAstContentRela) select(DataAstContentRela)
.where(DataAstContentRela.content_onum != '2' and DataAstContentRela.rela_status == '1') .where(DataAstContentRela.belt_data_std_content != '2' and DataAstContentRela.rela_status == '1')
) )
).alias('subquery_t1') # 为子查询分配唯一别名 ).alias('subquery_t1') # 为子查询分配唯一别名
query = ( query = (
select( select(
DataAstContent.content_onum, DataAstContent.belt_data_std_content,
DataAstContent.content_name, DataAstContent.content_name,
DataAstContent.content_stat, DataAstContent.content_stat,
DataAstContent.content_intr, DataAstContent.content_intr,
@ -737,9 +807,9 @@ class DataStdDao:
) )
.distinct() .distinct()
.select_from(DataAstContent) .select_from(DataAstContent)
.outerjoin(subquery_t1, DataAstContent.content_onum == subquery_t1.c.content_onum) # 明确使用子查询别名 .outerjoin(subquery_t1, DataAstContent.belt_data_std_content == subquery_t1.c.belt_data_std_content) # 明确使用子查询别名
.where(DataAstContent.content_stat == 1) .where(DataAstContent.content_stat == 1)
.order_by(DataAstContent.content_onum) .order_by(DataAstContent.belt_data_std_content)
) )
# 使用分页工具进行查询 # 使用分页工具进行查询
@ -756,18 +826,18 @@ class DataStdDao:
@classmethod @classmethod
async def get_std_main_list(cls, db: AsyncSession, query_object: DataStdMainModel, is_page: bool = False): async def get_std_main_list(cls, db: AsyncSession, query_object: DataStdMainModel, is_page: bool = False):
filters = [] filters = []
if query_object.std_name: if query_object.data_std_cn_name:
filters.append(DataStdMain.std_name.like(f"%{query_object.std_name}%")) filters.append(DataStdMain.data_std_cn_name.like(f"%{query_object.data_std_cn_name}%"))
if query_object.std_code: if query_object.data_std_no:
filters.append(DataStdMain.std_code.like(f"%{query_object.std_code}%")) filters.append(DataStdMain.data_std_no.like(f"%{query_object.data_std_no}%"))
if query_object.sys_id: if query_object.src_sys:
filters.append(DataStdMain.sys_id == query_object.sys_id) filters.append(DataStdMain.src_sys == query_object.src_sys)
if query_object.std_type: if query_object.data_std_type:
filters.append(DataStdMain.std_type == query_object.std_type) filters.append(DataStdMain.data_std_type == query_object.data_std_type)
if query_object.std_status: if query_object.std_status:
filters.append(DataStdMain.std_status == query_object.std_status) filters.append(DataStdMain.std_status == query_object.std_status)
if query_object.content_onum: if query_object.belt_data_std_content:
filters.append(DataStdMain.content_onum == query_object.content_onum) 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).where(*filters).order_by(desc(DataStdMain.create_time))
return await PageUtil.paginate(db, query, query_object.page_num, query_object.page_size, is_page) return await PageUtil.paginate(db, query, query_object.page_num, query_object.page_size, is_page)
@ -775,16 +845,16 @@ class DataStdDao:
async def get_std_main_list_all(cls, db: AsyncSession, query_object: DataStdMainModel): async def get_std_main_list_all(cls, db: AsyncSession, query_object: DataStdMainModel):
filters = [] filters = []
if query_object.std_name: if query_object.data_std_cn_name:
filters.append(DataStdMain.std_name.like(f"%{query_object.std_name}%")) filters.append(DataStdMain.data_std_cn_name.like(f"%{query_object.data_std_cn_name}%"))
if query_object.std_code: if query_object.data_std_no:
filters.append(DataStdMain.std_code.like(f"%{query_object.std_code}%")) filters.append(DataStdMain.data_std_no.like(f"%{query_object.data_std_no}%"))
if query_object.sys_id: if query_object.src_sys:
filters.append(DataStdMain.sys_id == query_object.sys_id) filters.append(DataStdMain.src_sys == query_object.src_sys)
if query_object.code_id: if query_object.cd_id:
filters.append(DataStdMain.code_id == query_object.code_id) filters.append(DataStdMain.cd_id == query_object.cd_id)
if query_object.std_type: if query_object.data_std_type:
filters.append(DataStdMain.std_type == query_object.std_type) filters.append(DataStdMain.data_std_type == query_object.data_std_type)
if query_object.std_status: if query_object.std_status:
filters.append(DataStdMain.std_status == 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).where(*filters).order_by(desc(DataStdMain.create_time))
@ -809,10 +879,10 @@ class DataStdDao:
return col return col
@classmethod @classmethod
async def delete_std_main(cls, db: AsyncSession, Id: str): async def delete_std_main(cls, db: AsyncSession, Id: str):
await db.execute(delete(DataStdMain).where(DataStdMain.id == Id)) await db.execute(delete(DataStdMain).where(DataStdMain.onum == Id))
@classmethod @classmethod
async def delete_std_dict_appr(cls, db: AsyncSession, Id: str): async def delete_std_dict_appr(cls, db: AsyncSession, Id: str):
await db.execute(delete(DataStdDictAppr).where(DataStdDictAppr.id == Id)) await db.execute(delete(DataStdDictAppr).where(DataStdDictAppr.onum == Id))
@classmethod @classmethod
async def update_std_main(cls, db: AsyncSession, update_data: DataStdMainModel): async def update_std_main(cls, db: AsyncSession, update_data: DataStdMainModel):
@ -827,19 +897,19 @@ class DataStdDao:
@classmethod @classmethod
async def get_std_main_by_id(cls, db: AsyncSession, Id: str): async def get_std_main_by_id(cls, db: AsyncSession, Id: str):
col = await db.execute(select(DataStdMain).where(DataStdMain.id == Id)) col = await db.execute(select(DataStdMain).where(DataStdMain.onum == Id))
return col.scalars().first() return col.scalars().first()
@classmethod @classmethod
async def get_data_main_by_info(cls, db: AsyncSession, query_object: DataStdMainModel): async def get_data_main_by_info(cls, db: AsyncSession, query_object: DataStdMainModel):
col = await db.execute( col = await db.execute(
select(DataStdMain).where( select(DataStdMain).where(
DataStdMain.std_name == query_object.std_name if query_object.std_name else True, DataStdMain.data_std_cn_name == query_object.data_std_cn_name if query_object.data_std_cn_name else True,
DataStdMain.std_code == query_object.std_code if query_object.std_code else True, DataStdMain.data_std_no == query_object.data_std_no if query_object.data_std_no else True,
DataStdMain.std_num == query_object.std_num if query_object.std_num else True, DataStdMain.data_std_no == query_object.data_std_no if query_object.data_std_no else True,
DataStdMain.sys_id == query_object.sys_id if query_object.sys_id else True, DataStdMain.src_sys == query_object.src_sys if query_object.src_sys else True,
DataStdMain.std_type == query_object.std_type if query_object.std_type else True, DataStdMain.data_std_type == query_object.data_std_type if query_object.data_std_type else True,
DataStdMain.code_id == query_object.code_id if query_object.code_id else True, DataStdMain.cd_id == query_object.cd_id if query_object.cd_id else True,
DataStdMain.std_status == query_object.std_status if query_object.std_status else True DataStdMain.std_status == query_object.std_status if query_object.std_status else True
) )
) )
@ -848,18 +918,18 @@ class DataStdDao:
async def get_std_main_appr_list_all(cls, db: AsyncSession, query_object: DataStdMainApprModel): async def get_std_main_appr_list_all(cls, db: AsyncSession, query_object: DataStdMainApprModel):
filters = [] filters = []
if query_object.std_name: if query_object.data_std_cn_name:
filters.append(DataStdMainAppr.std_name.like(f"%{query_object.std_name}%")) filters.append(DataStdMainAppr.data_std_cn_name.like(f"%{query_object.data_std_cn_name}%"))
if query_object.std_code: if query_object.data_std_no:
filters.append(DataStdMainAppr.std_code.like(f"%{query_object.std_code}%")) filters.append(DataStdMainAppr.data_std_no.like(f"%{query_object.data_std_no}%"))
if query_object.sys_id: if query_object.src_sys:
filters.append(DataStdMainAppr.sys_id == query_object.sys_id) filters.append(DataStdMainAppr.src_sys == query_object.src_sys)
if query_object.code_id: if query_object.cd_id:
filters.append(DataStdMainAppr.code_id == query_object.code_id) filters.append(DataStdMainAppr.cd_id == query_object.cd_id)
if query_object.flowId: if query_object.flowId:
filters.append(DataStdMainAppr.flowId == query_object.flowId) filters.append(DataStdMainAppr.flowId == query_object.flowId)
if query_object.std_type: if query_object.data_std_type:
filters.append(DataStdMainAppr.std_type == query_object.std_type) filters.append(DataStdMainAppr.data_std_type == query_object.data_std_type)
if query_object.std_status: if query_object.std_status:
filters.append(DataStdMainAppr.std_status == query_object.std_status) filters.append(DataStdMainAppr.std_status == query_object.std_status)
query = select(DataStdMainAppr).where(*filters).order_by(desc(DataStdMainAppr.create_time)) query = select(DataStdMainAppr).where(*filters).order_by(desc(DataStdMainAppr.create_time))
@ -880,11 +950,11 @@ class DataStdDao:
@classmethod @classmethod
async def get_std_main_appr_by_id(cls, db: AsyncSession, Id: str): async def get_std_main_appr_by_id(cls, db: AsyncSession, Id: str):
col = await db.execute(select(DataStdMainAppr).where(DataStdMainAppr.id == Id)) col = await db.execute(select(DataStdMainAppr).where(DataStdMainAppr.onum == Id))
return col.scalars().first() return col.scalars().first()
@classmethod @classmethod
async def get_std_dict_appr_by_id(cls, db: AsyncSession, Id: str): async def get_std_dict_appr_by_id(cls, db: AsyncSession, Id: str):
col = await db.execute(select(DataStdDictAppr).where(DataStdDictAppr.id == Id)) col = await db.execute(select(DataStdDictAppr).where(DataStdDictAppr.onum == Id))
return col.scalars().first() return col.scalars().first()
@classmethod @classmethod
async def get_last_std_main_appr_by_id(cls,db: AsyncSession, Id: str ): async def get_last_std_main_appr_by_id(cls,db: AsyncSession, Id: str ):
@ -894,7 +964,7 @@ class DataStdDao:
DataStdMainAppr.oldInstId == Id, DataStdMainAppr.oldInstId == Id,
DataStdMainAppr.approStatus == "succeed" DataStdMainAppr.approStatus == "succeed"
) )
.order_by(DataStdMainAppr.update_time.desc()) .order_by(DataStdMainAppr.upd_time.desc())
.limit(1) .limit(1)
) )
return result.scalar_one_or_none() return result.scalar_one_or_none()
@ -906,7 +976,7 @@ class DataStdDao:
DataStdDictAppr.oldInstId == Id, DataStdDictAppr.oldInstId == Id,
DataStdDictAppr.approStatus == "succeed" DataStdDictAppr.approStatus == "succeed"
) )
.order_by(DataStdDictAppr.update_time.desc()) .order_by(DataStdDictAppr.upd_time.desc())
.limit(1) .limit(1)
) )
return result.scalar_one_or_none() return result.scalar_one_or_none()

195
vue-fastapi-backend/module_admin/entity/do/datastd_do.py

@ -8,46 +8,41 @@ class DataStdCode(Base):
""" """
标准代码表 (Standard Code Table) 标准代码表 (Standard Code Table)
""" """
__tablename__ = 't_datastd_code' __tablename__ = 't_data_cd_val'
id = Column(String(50), primary_key=True, comment='标准代码Id') onum = Column(String(50), primary_key=True, comment='标准代码Id')
create_by = Column(String(20), default='', comment='创建者') create_by = Column(String(20), default='', comment='创建者')
create_time = Column(DateTime, nullable=True, default=None, comment='创建时间') create_time = Column(DateTime, nullable=True, default=None, comment='创建时间')
update_by = Column(String(20), default='', comment='更新者') upd_prsn = Column(String(20), default='', comment='更新者')
update_time = Column(DateTime, nullable=True, default=None, comment='更新时间') upd_time = Column(DateTime, nullable=True, default=None, comment='更新时间')
code_num = Column(String(50), default=None, comment='标准代码编号') cd_no = Column(String(50), default=None, comment='标准代码编号')
code_name = Column(String(200), default=None, comment='标准代码值') cd_val_cn_mean = Column(String(200), default=None, comment='标准代码值')
code_type = Column(String(10), default=None, comment='标准代码类型(sys:系统级 company:公司级)') cd_type = Column(String(10), default=None, comment='标准代码类型(sys:系统级 company:公司级)')
code_status = Column(String(1), default=None, comment='代码状态(0:有效 1:无效)') cd_val_stat = Column(String(1), default=None, comment='代码状态(0:有效 1:无效)')
sys_name = Column(String(50), default=None, comment='归属系统') src_sys = Column(String(50), default=None, comment='归属系统')
sys_id = Column(Integer, default=None, comment='归属系统Id')
class_id = Column(String(10), default=None, comment='代码类型(code:代码 codeItem:代码项)') class_id = Column(String(10), default=None, comment='代码类型(code:代码 codeItem:代码项)')
parent_id = Column(String(50), default=None, comment='父id') parent_id = Column(String(50), default=None, comment='父id')
code_map_id = Column(String(50), default=None,comment='标准代码Id') code_map_id = Column(String(50), default=None,comment='标准代码Id')
code_map_num = Column(String(50), default=None, comment='标准代码编号')
code_map_name = Column(String(200), default=None, comment='标准代码值')
class DataStdCodeAppr(Base): class DataStdCodeAppr(Base):
""" """
标准代码表 (Standard Code Table) 标准代码表 (Standard Code Table)
""" """
__tablename__ = 't_datastd_code_appr' __tablename__ = 't_data_cd_val_appr'
id = Column(String(50), primary_key=True, comment='标准代码Id') onum = Column(String(50), primary_key=True, comment='标准代码Id')
create_by = Column(String(20), default='', comment='创建者') create_by = Column(String(20), default='', comment='创建者')
create_time = Column(DateTime, nullable=True, default=None, comment='创建时间') create_time = Column(DateTime, nullable=True, default=None, comment='创建时间')
update_by = Column(String(20), default='', comment='更新者') upd_prsn = Column(String(20), default='', comment='更新者')
update_time = Column(DateTime, nullable=True, default=None, comment='更新时间') upd_time = Column(DateTime, nullable=True, default=None, comment='更新时间')
code_num = Column(String(50), default=None, comment='标准代码编号') cd_no = Column(String(50), default=None, comment='标准代码编号')
code_name = Column(String(200), default=None, comment='标准代码值') cd_val_cn_mean = Column(String(200), default=None, comment='标准代码值')
code_type = Column(String(10), default=None, comment='标准代码类型(sys:系统级 company:公司级)') cd_type = Column(String(10), default=None, comment='标准代码类型(sys:系统级 company:公司级)')
code_status = Column(String(1), default=None, comment='代码状态(0:有效 1:无效)') cd_val_stat = Column(String(1), default=None, comment='代码状态(0:有效 1:无效)')
sys_name = Column(String(50), default=None, comment='归属系统') src_sys = Column(String(50), default=None, comment='归属系统')
sys_id = Column(Integer, default=None, comment='归属系统Id')
class_id = Column(String(10), default=None, comment='代码类型(code:代码 codeItem:代码项)') class_id = Column(String(10), default=None, comment='代码类型(code:代码 codeItem:代码项)')
parent_id = Column(String(50), default=None, comment='父id') parent_id = Column(String(50), default=None, comment='父id')
code_map_id = Column(String(50), default=None,comment='标准代码Id') code_map_id = Column(String(50), default=None,comment='标准代码Id')
code_map_num = Column(String(50), default=None, comment='标准代码编号')
code_map_name = Column(String(200), default=None, comment='标准代码值')
changeType = Column(String(10), default=None, comment='变更类型') changeType = Column(String(10), default=None, comment='变更类型')
flowId = Column(String(50), default=None, comment='审批Id') flowId = Column(String(50), default=None, comment='审批Id')
oldInstId = Column(String(50), default=None, comment='原始正式id') oldInstId = Column(String(50), default=None, comment='原始正式id')
@ -58,54 +53,50 @@ class DataStdDict(Base):
""" """
标准字典表 (Standard Code Table) 标准字典表 (Standard Code Table)
""" """
__tablename__ = 't_datastd_dict' # 表名为 t_datastd_dict __tablename__ = 't_data_dict' # 表名为 t_datastd_dict
id = Column(String(50), primary_key=True, comment='标准代码Id') onum = Column(String(50), primary_key=True, comment='标准代码Id')
create_by = Column(String(20), default='', comment='创建者') create_by = Column(String(20), default='', comment='创建者')
create_time = Column(DateTime, nullable=True, default=None, comment='创建时间') create_time = Column(DateTime, nullable=True, default=None, comment='创建时间')
update_by = Column(String(20), default='', comment='更新者') upd_prsn = Column(String(20), default='', comment='更新者')
update_time = Column(DateTime, nullable=True, default=None, comment='更新时间') upd_time = Column(DateTime, nullable=True, default=None, comment='更新时间')
dict_num = Column(String(50), default=None, comment='字典编号') data_dict_no = Column(String(50), default=None, comment='字典编号')
dict_code = Column(String(50), default=None, comment='字典英文名') data_dict_eng_name = Column(String(50), default=None, comment='字典英文名')
dict_name = Column(String(200), default=None, comment='字典中文名') data_dict_cn_name = Column(String(200), default=None, comment='字典中文名')
dict_level = Column(String(10), default=None, comment='字典归属(sys:系统级 company:公司级)') data_dict_vest = Column(String(10), default=None, comment='字典归属(sys:系统级 company:公司级)')
dict_type = Column(String(1), default=None, comment='字典类型(0:基础数据 1:指标数据)') data_dict_type = Column(String(1), default=None, comment='字典类型(0:基础数据 1:指标数据)')
sys_name = Column(String(50), default=None, comment='归属系统') src_sys = Column(String(50), default=None, comment='归属系统')
sys_id = Column(Integer, default=None, comment='归属系统Id') data_dict_busi_mean = Column(String(200), default=None, comment='字典业务定义')
dict_menu = Column(String(200), default=None, comment='字典业务定义') data_dict_data_type = Column(String(20), default=None, comment='数据类型')
data_type = Column(String(20), default=None, comment='数据类型') data_std_no = Column(String(50), default=None, comment='数据标准编号')
std_code = Column(String(50), default=None, comment='数据标准编号') src_sys_tab_fld_name = Column(String(1000), default=None, comment='来源系统表字段名')
std_name = Column(String(50), default=None, comment='数据标准名称') data_std_cn_name = Column(String(50), default=None, comment='数据标准名称')
dict_status = Column(String(1), default=None, comment='字典状态(1:有效 0:无效)') data_dict_stat = Column(String(1), default=None, comment='字典状态(1:有效 0:无效)')
buss_dept_id = Column(BigInteger, default=None, comment='业务认责部门')
tech_dept_id = Column(BigInteger, default=None, comment='技术认责部门')
buss_user = Column(String(20), default=None, comment='业务认责人员')
tech_user = Column(String(20), default=None, comment='技术认责人员')
class DataStdDictAppr(Base): class DataStdDictAppr(Base):
""" """
标准字典审批表 (Standard Code Table) 标准字典审批表 (Standard Code Table)
""" """
__tablename__ = 't_datastd_dict_appr' # 表名为 t_datastd_dict __tablename__ = 't_data_dict_appr' # 表名为 t_datastd_dict
id = Column(String(50), primary_key=True, comment='标准代码Id') onum = Column(String(50), primary_key=True, comment='标准代码Id')
create_by = Column(String(20), default='', comment='创建者') create_by = Column(String(20), default='', comment='创建者')
create_time = Column(DateTime, nullable=True, default=None, comment='创建时间') create_time = Column(DateTime, nullable=True, default=None, comment='创建时间')
update_by = Column(String(20), default='', comment='更新者') upd_prsn = Column(String(20), default='', comment='更新者')
update_time = Column(DateTime, nullable=True, default=None, comment='更新时间') upd_time = Column(DateTime, nullable=True, default=None, comment='更新时间')
dict_num = Column(String(50), default=None, comment='字典编号') data_dict_no = Column(String(50), default=None, comment='字典编号')
dict_code = Column(String(50), default=None, comment='字典英文名') data_dict_eng_name = Column(String(50), default=None, comment='字典英文名')
dict_name = Column(String(200), default=None, comment='字典中文名') data_dict_cn_name = Column(String(200), default=None, comment='字典中文名')
dict_level = Column(String(10), default=None, comment='字典归属(sys:系统级 company:公司级)') data_dict_vest = Column(String(10), default=None, comment='字典归属(sys:系统级 company:公司级)')
dict_type = Column(String(1), default=None, comment='字典类型(0:基础数据 1:指标数据)') data_dict_type = Column(String(1), default=None, comment='字典类型(0:基础数据 1:指标数据)')
sys_name = Column(String(50), default=None, comment='归属系统') src_sys = Column(String(50), default=None, comment='归属系统')
sys_id = Column(Integer, default=None, comment='归属系统Id') data_dict_busi_mean = Column(String(200), default=None, comment='字典业务定义')
dict_menu = Column(String(200), default=None, comment='字典业务定义')
data_type = Column(String(20), default=None, comment='数据类型') data_type = Column(String(20), default=None, comment='数据类型')
std_code = Column(String(50), default=None, comment='数据标准编号') data_std_no = Column(String(50), default=None, comment='数据标准编号')
std_name = Column(String(50), default=None, comment='数据标准名称') data_std_cn_name = Column(String(50), default=None, comment='数据标准名称')
dict_status = Column(String(1), default=None, comment='字典状态(1:有效 0:无效)') data_dict_stat = Column(String(1), default=None, comment='字典状态(1:有效 0:无效)')
buss_dept_id = Column(BigInteger, default=None, comment='业务认责部门') data_std_busi_ownership_dept = Column(BigInteger, default=None, comment='业务认责部门')
tech_dept_id = Column(BigInteger, default=None, comment='技术认责部门') data_std_it_ownership_dept = Column(BigInteger, default=None, comment='技术认责部门')
buss_user = Column(String(20), default=None, comment='业务认责人员') buss_user = Column(String(20), default=None, comment='业务认责人员')
tech_user = Column(String(20), default=None, comment='技术认责人员') tech_user = Column(String(20), default=None, comment='技术认责人员')
changeType = Column(String(10), default=None, comment='变更类型') changeType = Column(String(10), default=None, comment='变更类型')
@ -117,7 +108,7 @@ class DataStdDictAppr(Base):
class DataAstContent(Base): class DataAstContent(Base):
__tablename__ = "t_data_std_content" __tablename__ = "t_data_std_content"
content_onum = Column(Integer, primary_key=True, autoincrement=True, comment='目录序号') belt_data_std_content = Column(Integer, primary_key=True, autoincrement=True, comment='目录序号')
content_name = Column(String(255), nullable=False, comment='目录名称') content_name = Column(String(255), nullable=False, comment='目录名称')
content_stat = Column(String(10), nullable=False, comment='目录状态(有效/废弃/停用)') content_stat = Column(String(10), nullable=False, comment='目录状态(有效/废弃/停用)')
content_intr = Column(Text, comment='目录简介') content_intr = Column(Text, comment='目录简介')
@ -134,7 +125,7 @@ class DataAstContentRela(Base):
__tablename__ = "t_data_std_content_rela" __tablename__ = "t_data_std_content_rela"
rela_onum = Column(Integer, primary_key=True, autoincrement=True, comment='关系序号') rela_onum = Column(Integer, primary_key=True, autoincrement=True, comment='关系序号')
content_onum = Column(Integer, nullable=False, comment='目录序号') belt_data_std_content = Column(Integer, nullable=False, comment='目录序号')
ast_onum = Column(Integer, nullable=False, comment='资产序号') ast_onum = Column(Integer, nullable=False, comment='资产序号')
rela_type = Column(String(50), default='归属关系', comment='关系类型') rela_type = Column(String(50), default='归属关系', comment='关系类型')
rela_eff_begn_date = Column(Date, nullable=True, comment='关系生效开始日期') rela_eff_begn_date = Column(Date, nullable=True, comment='关系生效开始日期')
@ -147,64 +138,62 @@ class DataStdMain(Base):
""" """
数据标准表 数据标准表
""" """
__tablename__ = 't_datastd_main' __tablename__ = 't_data_std'
id = Column(String(50), primary_key=True, comment='标准代码Id') onum = Column(String(50), primary_key=True, comment='标准代码Id')
create_by = Column(String(20), default='', comment='创建者') create_by = Column(String(20), default='', comment='创建者')
create_time = Column(DateTime, nullable=True, default=None, comment='创建时间') create_time = Column(DateTime, nullable=True, default=None, comment='创建时间')
update_by = Column(String(20), default='', comment='更新者') upd_prsn = Column(String(20), default='', comment='更新者')
update_time = Column(DateTime, nullable=True, default=None, comment='更新时间') upd_time = Column(DateTime, nullable=True, default=None, comment='更新时间')
std_num = Column(String(50), default=None, comment='标准编号') data_std_no = Column(String(50), default=None, comment='标准编号')
std_code = Column(String(50), default=None, comment='标准英文名') data_std_eng_name = Column(String(50), default=None, comment='标准英文名')
std_name = Column(String(200), default=None, comment='标准中文名') data_std_cn_name = Column(String(200), default=None, comment='标准中文名')
std_type = Column(String(1), default=None, comment='标准类型(0:基础数据 1:指标数据)') data_std_type = Column(String(1), default=None, comment='标准类型(0:基础数据 1:指标数据)')
securityLevel = Column(String(1), default=None, comment='安全等级') securityLevel = Column(String(1), default=None, comment='安全等级')
sourceSystem = Column(String(50), default=None, comment='来源系统') src_sys = Column(String(50), default=None, comment='来源系统')
sys_name = Column(String(50), default=None, comment='归属系统') data_std_vest = Column(String(50), default=None, comment='数据标准归属(公司级、系统级)')
sys_id = Column(Integer, default=None, comment='归属系统Id') data_std_busi_defn = Column(String(200), default=None, comment='标准业务定义')
std_menu = Column(String(200), default=None, comment='标准业务定义') cd_id = Column(String(50), default=None, comment='代码id')
code_num = Column(String(50), default=None, comment='代码编号')
code_id = Column(String(50), default=None, comment='代码id')
std_status = Column(String(1), default=None, comment='标准状态(1:有效 0:无效)') std_status = Column(String(1), default=None, comment='标准状态(1:有效 0:无效)')
buss_dept_id = Column(BigInteger, default=None, comment='业务认责部门') data_std_busi_ownership_dept = Column(String(100), default=None, comment='业务认责部门')
tech_dept_id = Column(BigInteger, default=None, comment='技术认责部门') data_std_it_ownership_dept = Column(String(100), default=None, comment='技术认责部门')
buss_user = Column(String(20), default=None, comment='业务认责人员') data_std_busi_ownership_prsn = Column(String(100), default=None, comment='业务认责人员')
tech_user = Column(String(20), default=None, comment='技术认责人员') data_std_it_ownership_prsn = Column(String(100), default=None, comment='技术认责人员')
content_onum = Column(Integer, default=None, comment='分类') belt_data_std_content = Column(Integer, default=None, comment='分类')
std_src = Column(String(20), default=None, comment='标准来源') data_std_src = Column(String(20), default=None, comment='标准来源')
data_clas = Column(String(20), default=None, comment='数据类别') data_clas = Column(String(20), default=None, comment='数据类别')
typical_fld = Column(String(500), default=None, comment='典型字段')
class DataStdMainAppr(Base): class DataStdMainAppr(Base):
""" """
数据标准表 数据标准表
""" """
__tablename__ = 't_datastd_main_appr' __tablename__ = 't_data_std_appr'
id = Column(String(50), primary_key=True, comment='标准代码Id') onum = Column(String(50), primary_key=True, comment='标准代码Id')
create_by = Column(String(20), default='', comment='创建者') create_by = Column(String(20), default='', comment='创建者')
create_time = Column(DateTime, nullable=True, default=None, comment='创建时间') create_time = Column(DateTime, nullable=True, default=None, comment='创建时间')
update_by = Column(String(20), default='', comment='更新者') upd_prsn = Column(String(20), default='', comment='更新者')
update_time = Column(DateTime, nullable=True, default=None, comment='更新时间') upd_time = Column(DateTime, nullable=True, default=None, comment='更新时间')
std_num = Column(String(50), default=None, comment='标准编号') data_std_no = Column(String(50), default=None, comment='标准编号')
std_code = Column(String(50), default=None, comment='标准英文名') data_std_eng_name = Column(String(50), default=None, comment='标准英文名')
std_name = Column(String(200), default=None, comment='标准中文名') data_std_cn_name = Column(String(200), default=None, comment='标准中文名')
std_type = Column(String(1), default=None, comment='标准类型(0:基础数据 1:指标数据)') data_std_type = Column(String(1), default=None, comment='标准类型(0:基础数据 1:指标数据)')
securityLevel = Column(String(1), default=None, comment='安全等级') securityLevel = Column(String(1), default=None, comment='安全等级')
sourceSystem = Column(String(50), default=None, comment='来源系统') src_sys = Column(Integer, default=None, comment='来源系统')
sys_name = Column(String(50), default=None, comment='归属系统') data_std_vest = Column(String(50), default=None, comment='数据标准归属(公司级、系统级)')
sys_id = Column(Integer, default=None, comment='归属系统Id') data_std_busi_defn = Column(String(200), default=None, comment='标准业务定义')
std_menu = Column(String(200), default=None, comment='标准业务定义') cd_id = Column(String(50), default=None, comment='代码id')
code_num = Column(String(50), default=None, comment='代码编号')
code_id = Column(String(50), default=None, comment='代码id')
std_status = Column(String(1), default=None, comment='标准状态(1:有效 0:无效)') std_status = Column(String(1), default=None, comment='标准状态(1:有效 0:无效)')
buss_dept_id = Column(BigInteger, default=None, comment='业务认责部门') data_std_busi_ownership_dept = Column(String(100), default=None, comment='业务认责部门')
tech_dept_id = Column(BigInteger, default=None, comment='技术认责部门') data_std_it_ownership_dept = Column(String(100), default=None, comment='技术认责部门')
buss_user = Column(String(20), default=None, comment='业务认责人员') data_std_busi_ownership_prsn = Column(String(100), default=None, comment='业务认责人员')
tech_user = Column(String(20), default=None, comment='技术认责人员') data_std_it_ownership_prsn = Column(String(100), default=None, comment='技术认责人员')
content_onum = Column(Integer, default=None, comment='分类') belt_data_std_content = Column(Integer, default=None, comment='分类')
std_src = Column(String(20), default=None, comment='标准来源') data_std_src = Column(String(20), default=None, comment='标准来源')
data_clas = Column(String(20), default=None, comment='数据类别') data_clas = Column(String(20), default=None, comment='数据类别')
typical_fld = Column(String(500), default=None, comment='典型字段')
changeType = Column(String(10), default=None, comment='变更类型') changeType = Column(String(10), default=None, comment='变更类型')
flowId = Column(String(50), default=None, comment='审批Id') flowId = Column(String(50), default=None, comment='审批Id')
oldInstId = Column(String(50), default=None, comment='原始正式id') oldInstId = Column(String(50), default=None, comment='原始正式id')

87
vue-fastapi-backend/module_admin/entity/vo/datastd_vo.py

@ -18,22 +18,20 @@ class DataStdCodeModel(BaseModel):
""" """
model_config = ConfigDict(alias_generator=to_camel, from_attributes=True) model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
id: Optional[str] = Field(default=None, description='标准代码主键') onum: Optional[str] = Field(default=None, description='序号')
code_num: Optional[str] = Field(default=None, description='标准代码编号') cd_no: Optional[str] = Field(default=None, description='标准代码编号')
code_name: Optional[str] = Field(default=None, description='标准代码名称') cd_val_cn_mean: Optional[str] = Field(default=None, description='标准代码名称')
code_type: Optional[str] = Field(default=None, description='标准代码类型') cd_type: Optional[str] = Field(default=None, description='标准代码类型')
code_status: Optional[str] = Field(default=None, description='标准代码状态') cd_val_stat: Optional[str] = Field(default=None, description='标准代码状态')
sys_name: Optional[str] = Field(default=None, description='系统名称') src_sys: Optional[int] = Field(default=None, description='系统ID')
sys_id: Optional[int] = Field(default=None, description='系统ID')
parent_id: Optional[str] = Field(default=None, description='父级ID') parent_id: Optional[str] = Field(default=None, description='父级ID')
class_id: Optional[str] = Field(default=None, description='类目ID') class_id: Optional[str] = Field(default=None, description='类目ID')
create_by: Optional[str] = Field(default=None, description='创建者') create_by: Optional[str] = Field(default=None, description='创建者')
create_time: Optional[datetime] = Field(default=None, description='创建时间') create_time: Optional[datetime] = Field(default=None, description='创建时间')
update_by: Optional[str] = Field(default=None, description='更新者') upd_prsn: Optional[str] = Field(default=None, description='更新者')
update_time: Optional[datetime] = Field(default=None, description='更新时间') upd_time: Optional[datetime] = Field(default=None, description='更新时间')
code_map_id: Optional[str] = Field(default=None, description='标准代码主键(映射)') code_map_id: Optional[str] = Field(default=None, description='标准代码主键(映射)')
code_map_num: Optional[str] = Field(default=None, description='标准代码编号(映射)')
code_map_name: Optional[str] = Field(default=None, description='标准代码名称(映射)')
class DataStdCodeApprModel(DataStdCodeModel): class DataStdCodeApprModel(DataStdCodeModel):
changeType: Optional[str] = Field(default=None, description='变更类型') changeType: Optional[str] = Field(default=None, description='变更类型')
@ -64,25 +62,25 @@ class DataStdDictModel(BaseModel):
""" """
model_config = ConfigDict(alias_generator=to_camel, from_attributes=True) model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
id: Optional[str] = Field(default=None, description='标准字典主键') onum: Optional[str] = Field(default=None, description='标准字典主键')
create_by: Optional[str] = Field(default='', description='创建者') create_by: Optional[str] = Field(default='', description='创建者')
create_time: Optional[datetime] = Field(default=None, description='创建时间') create_time: Optional[datetime] = Field(default=None, description='创建时间')
update_by: Optional[str] = Field(default='', description='更新者') upd_prsn: Optional[str] = Field(default='', description='更新者')
update_time: Optional[datetime] = Field(default=None, description='更新时间') upd_time: Optional[datetime] = Field(default=None, description='更新时间')
dict_num: Optional[str] = Field(default=None, description='字典编号') data_dict_no: Optional[str] = Field(default=None, description='字典编号')
dict_code: Optional[str] = Field(default=None, description='字典英文名') data_dict_eng_name: Optional[str] = Field(default=None, description='字典英文名')
dict_name: Optional[str] = Field(default=None, description='字典中文名') data_dict_cn_name: Optional[str] = Field(default=None, description='字典中文名')
dict_level: Optional[str] = Field(default=None, description='字典归属(sys:系统级 company:公司级)') data_dict_vest: Optional[str] = Field(default=None, description='字典归属(sys:系统级 company:公司级)')
dict_type: Optional[str] = Field(default=None, description='字典类型(0:基础数据 1:指标数据)') data_dict_type: Optional[str] = Field(default=None, description='字典类型(0:基础数据 1:指标数据)')
sys_name: Optional[str] = Field(default=None, description='归属系统') src_sys: Optional[str] = Field(default=None, description='归属系统')
sys_id: Optional[int] = Field(default=None, description='归属系统Id') data_dict_busi_mean: Optional[str] = Field(default=None, description='字典业务定义')
dict_menu: Optional[str] = Field(default=None, description='字典业务定义') data_dict_data_type: Optional[str] = Field(default=None, description='数据类型')
data_type: Optional[str] = Field(default=None, description='数据类型') src_sys_tab_fld_name: Optional[str] = Field(default=None, description='来源系统表字段名')
std_code: Optional[str] = Field(default=None, description='数据标准编号') data_std_no: Optional[str] = Field(default=None, description='数据标准编号')
std_name: Optional[str] = Field(default=None, description='数据标准名称') data_std_cn_name: Optional[str] = Field(default=None, description='数据标准名称')
dict_status: Optional[str] = Field(default=None, description='字典状态(1:有效 0:无效)') data_dict_stat: Optional[str] = Field(default=None, description='字典状态(1:有效 0:无效)')
buss_dept_id: Optional[int] = Field(default=None, description='业务认责部门') data_std_busi_ownership_dept: Optional[int] = Field(default=None, description='业务认责部门')
tech_dept_id: Optional[int] = Field(default=None, description='技术认责部门') data_std_it_ownership_dept: Optional[int] = Field(default=None, description='技术认责部门')
buss_user: Optional[str] = Field(default=None, description='业务认责人员') buss_user: Optional[str] = Field(default=None, description='业务认责人员')
tech_user: Optional[str] = Field(default=None, description='技术认责人员') tech_user: Optional[str] = Field(default=None, description='技术认责人员')
@as_query @as_query
@ -104,30 +102,29 @@ class DataStdMainModel(BaseModel):
""" """
model_config = ConfigDict(alias_generator=to_camel, from_attributes=True) model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
id: Optional[str] = Field(default=None, description='标准代码Id') onum: Optional[str] = Field(default=None, description='标准代码Id')
create_by: Optional[str] = Field(default='', description='创建者') create_by: Optional[str] = Field(default='', description='创建者')
create_time: Optional[datetime] = Field(default=None, description='创建时间') create_time: Optional[datetime] = Field(default=None, description='创建时间')
update_by: Optional[str] = Field(default='', description='更新者') upd_prsn: Optional[str] = Field(default='', description='更新者')
update_time: Optional[datetime] = Field(default=None, description='更新时间') upd_time: Optional[datetime] = Field(default=None, description='更新时间')
std_num: Optional[str] = Field(default=None, description='标准编号') data_std_no: Optional[str] = Field(default=None, description='标准编号')
std_code: Optional[str] = Field(default=None, description='标准英文名') data_std_eng_name: Optional[str] = Field(default=None, description='标准英文名')
std_name: Optional[str] = Field(default=None, description='标准中文名') data_std_cn_name: Optional[str] = Field(default=None, description='标准中文名')
std_type: Optional[str] = Field(default=None, description='标准类型(0:基础数据 1:指标数据)') data_std_type: Optional[str] = Field(default=None, description='标准类型(0:基础数据 1:指标数据)')
securityLevel: Optional[str] = Field(default=None, description='安全等级') securityLevel: Optional[str] = Field(default=None, description='安全等级')
sourceSystem: Optional[str] = Field(default=None, description='来源系统') src_sys: Optional[str] = Field(default=None, description='归属系统')
sys_name: Optional[str] = Field(default=None, description='归属系统') data_std_busi_defn: Optional[str] = Field(default=None, description='标准业务定义')
sys_id: Optional[int] = Field(default=None, description='归属系统Id') cd_no: Optional[str] = Field(default=None, description='代码编号')
std_menu: Optional[str] = Field(default=None, description='标准业务定义') cd_id: Optional[str] = Field(default=None, description='代码id')
code_num: Optional[str] = Field(default=None, description='代码编号')
code_id: Optional[str] = Field(default=None, description='代码id')
std_status: Optional[str] = Field(default=None, description='标准状态(1:有效 0:无效)') std_status: Optional[str] = Field(default=None, description='标准状态(1:有效 0:无效)')
buss_dept_id: Optional[int] = Field(default=None, description='业务认责部门') data_std_busi_ownership_dept: Optional[int] = Field(default=None, description='业务认责部门')
tech_dept_id: Optional[int] = Field(default=None, description='技术认责部门') data_std_it_ownership_dept: Optional[int] = Field(default=None, description='技术认责部门')
buss_user: Optional[str] = Field(default=None, description='业务认责人员') buss_user: Optional[str] = Field(default=None, description='业务认责人员')
tech_user: Optional[str] = Field(default=None, description='技术认责人员') tech_user: Optional[str] = Field(default=None, description='技术认责人员')
content_onum: Optional[int] = Field(default=None, description='分类') belt_data_std_content: Optional[int] = Field(default=None, description='分类')
std_src: Optional[str] = Field(default=None, description='标准来源') data_std_src: Optional[str] = Field(default=None, description='标准来源')
data_clas: Optional[str] = Field(default=None, description='数据类别') data_clas: Optional[str] = Field(default=None, description='数据类别')
typical_fld: Optional[str] = Field(default=None, description='典型字段')
@as_query @as_query
class DataStdMainPageQueryModel(DataStdMainModel): class DataStdMainPageQueryModel(DataStdMainModel):
""" """

6
vue-fastapi-backend/module_admin/service/approval_service.py

@ -151,7 +151,7 @@ class ApprovalService:
elif change_type == "edit": elif change_type == "edit":
# 使用 oldInstId 作为主键 # 使用 oldInstId 作为主键
main_model = DataStdMainModel(**appr_model.model_dump(exclude_unset=True, by_alias=True)) main_model = DataStdMainModel(**appr_model.model_dump(exclude_unset=True, by_alias=True))
main_model.id = appr_model.oldInstId main_model.onum = appr_model.oldInstId
await DataStdDao.update_std_main(result_db, main_model) await DataStdDao.update_std_main(result_db, main_model)
elif change_type == "delete": elif change_type == "delete":
@ -184,7 +184,7 @@ class ApprovalService:
# 使用 oldInstId 作为主键 # 使用 oldInstId 作为主键
main_model = DataStdDictModel(**appr_model.model_dump(exclude_unset=True, by_alias=True)) main_model = DataStdDictModel(**appr_model.model_dump(exclude_unset=True, by_alias=True))
main_model.id = appr_model.oldInstId main_model.onum = appr_model.oldInstId
await DataStdDao.update_std_dict(result_db, main_model.model_dump(exclude_unset=True)) await DataStdDao.update_std_dict(result_db, main_model.model_dump(exclude_unset=True))
elif change_type == "delete": elif change_type == "delete":
@ -216,7 +216,7 @@ class ApprovalService:
# 使用 oldInstId 作为主键 # 使用 oldInstId 作为主键
main_model = DataStdCodeModel(**appr_model.model_dump(exclude_unset=True, by_alias=True)) main_model = DataStdCodeModel(**appr_model.model_dump(exclude_unset=True, by_alias=True))
main_model.id = appr_model.oldInstId main_model.onum = appr_model.oldInstId
await DataStdDao.update_std_code(result_db, main_model.model_dump(exclude_unset=True)) await DataStdDao.update_std_code(result_db, main_model.model_dump(exclude_unset=True))
elif change_type == "delete": elif change_type == "delete":

404
vue-fastapi-backend/module_admin/service/datastd_service.py

@ -40,7 +40,7 @@ class DataStdService:
# col_list_result = await DataStdDao.get_appr_std_code_list(query_db, query_object, is_page) # col_list_result = await DataStdDao.get_appr_std_code_list(query_db, query_object, is_page)
# # for 循环col_list_result.rows 如果changeType是update的 去查他的compareId 用oldItem= get_std_code_appr_by_id(compareId ) 获取原始数据 比较 code_num code_name code_map_id (code_map_id都为空的情况应该判断一致) 如果三个属性都一致的 判定一致 移除这个col_list_result,不一致的把改属性改为 item.code_num=oldItem.code_num-->item.code_num # # for 循环col_list_result.rows 如果changeType是update的 去查他的compareId 用oldItem= get_std_code_appr_by_id(compareId ) 获取原始数据 比较 cd_no cd_val_cn_mean code_map_id (code_map_id都为空的情况应该判断一致) 如果三个属性都一致的 判定一致 移除这个col_list_result,不一致的把改属性改为 item.cd_no=oldItem.cd_no-->item.cd_no
# return col_list_result # return col_list_result
@classmethod @classmethod
async def get_appr_std_code_list_services( async def get_appr_std_code_list_services(
@ -54,8 +54,8 @@ class DataStdService:
old_item = await DataStdDao.get_std_code_appr_by_id(query_db, item.get("compareId")) old_item = await DataStdDao.get_std_code_appr_by_id(query_db, item.get("compareId"))
# 判断三个字段是否一致(空值也算一致) # 判断三个字段是否一致(空值也算一致)
is_code_num_same = item.get("codeNum") == old_item.code_num is_code_num_same = item.get("cdNo") == old_item.cd_no
is_code_name_same = item.get("codeName") == old_item.code_name is_code_name_same = item.get("cdValCnMean") == old_item.cd_val_cn_mean
is_code_map_id_same = ( is_code_map_id_same = (
(not item.get("codeMapId") and not old_item.code_map_id) or (not item.get("codeMapId") and not old_item.code_map_id) or
(item.get("codeMapId") == old_item.code_map_id) (item.get("codeMapId") == old_item.code_map_id)
@ -66,9 +66,9 @@ class DataStdService:
else: else:
# 拼接变更格式:旧值 ==> 新值 # 拼接变更格式:旧值 ==> 新值
if not is_code_num_same: if not is_code_num_same:
item["codeNum"] = f"{old_item.code_num or ''} ==> {item.get('codeNum', '')}" item["cdNo"] = f"{old_item.cd_no or ''} ==> {item.get('cdNo', '')}"
if not is_code_name_same: if not is_code_name_same:
item["codeName"] = f"{old_item.code_name or ''} ==> {item.get('codeName', '')}" item["cdValCnMean"] = f"{old_item.cd_val_cn_mean or ''} ==> {item.get('cdValCnMean', '')}"
if not is_code_map_id_same: if not is_code_map_id_same:
old_val = old_item.code_map_id or "" old_val = old_item.code_map_id or ""
new_val = item.get("codeMapId") or "" new_val = item.get("codeMapId") or ""
@ -127,7 +127,7 @@ class DataStdService:
try: try:
# 创建新的 page_object 实例,避免修改原始对象 # 创建新的 page_object 实例,避免修改原始对象
new_page_object = DataStdCodeModel(**page_object.model_dump(by_alias=True)) new_page_object = DataStdCodeModel(**page_object.model_dump(by_alias=True))
new_page_object.code_status="9" new_page_object.cd_val_stat="9"
# 调用 DAO 方法插入数据 # 调用 DAO 方法插入数据
await DataStdDao.add_std_code(query_db, new_page_object) await DataStdDao.add_std_code(query_db, new_page_object)
return CrudResponseModel(is_success=True, message='新增标准代码成功') return CrudResponseModel(is_success=True, message='新增标准代码成功')
@ -179,7 +179,7 @@ class DataStdService:
:return: 编辑列配置校验结果 :return: 编辑列配置校验结果
""" """
edit_col = page_object.model_dump(exclude_unset=True) edit_col = page_object.model_dump(exclude_unset=True)
col_info = await cls.get_std_code_by_id_services(query_db, page_object.id) col_info = await cls.get_std_code_by_id_services(query_db, page_object.onum)
if col_info: if col_info:
try: try:
@ -189,7 +189,7 @@ class DataStdService:
await query_db.rollback() await query_db.rollback()
raise e raise e
else: else:
raise ServiceException(message=f'标准代码{page_object.id}不存在') raise ServiceException(message=f'标准代码{page_object.onum}不存在')
@classmethod @classmethod
async def delete_std_code_with_items_appr( async def delete_std_code_with_items_appr(
@ -208,8 +208,8 @@ class DataStdService:
raise ServiceException(message="请提供有效的标准代码ID列表") raise ServiceException(message="请提供有效的标准代码ID列表")
for std_id in id_list: for std_id in id_list:
std_code = await DataStdDao.get_std_code_by_id(query_db, std_id) data_std_no = await DataStdDao.get_std_code_by_id(query_db, std_id)
if not std_code: if not data_std_no:
raise ServiceException(message=f"ID 为 {std_id} 的标准代码不存在,无法提交删除审批") raise ServiceException(message=f"ID 为 {std_id} 的标准代码不存在,无法提交删除审批")
@ -217,19 +217,19 @@ class DataStdService:
last_appr= await DataStdDao.get_last_std_code_appr_by_id(query_db,std_id) last_appr= await DataStdDao.get_last_std_code_appr_by_id(query_db,std_id)
# 标准代码审批记录 # 标准代码审批记录
std_code_appr = DataStdCodeApprModel(**CamelCaseUtil.transform_result(std_code)) std_code_appr = DataStdCodeApprModel(**CamelCaseUtil.transform_result(data_std_no))
std_code_appr.changeType = "delete" std_code_appr.changeType = "delete"
std_code_appr.compareId = last_appr.id std_code_appr.compareId = last_appr.onum
std_code_appr.oldInstId = std_code.id std_code_appr.oldInstId = data_std_no.onum
std_code_appr.approStatus = "waiting" std_code_appr.approStatus = "waiting"
std_code_appr.code_status = "9" std_code_appr.cd_val_stat = "9"
std_code_appr.flowId = flow_id std_code_appr.flowId = flow_id
std_code_appr.id=str(uuid.uuid4()) std_code_appr.onum=str(uuid.uuid4())
std_code_appr.create_by = current_user.user.user_name std_code_appr.create_by = current_user.user.user_name
std_code_appr.create_time = datetime.now() std_code_appr.create_time = datetime.now()
await DataStdDao.add_std_code_appr(query_db, std_code_appr) await DataStdDao.add_std_code_appr(query_db, std_code_appr)
queryCodeItem = DataStdCodePageQueryModel() queryCodeItem = DataStdCodePageQueryModel()
queryCodeItem.parent_id=std_code.id queryCodeItem.parent_id=data_std_no.onum
queryCodeItem.class_id="codeItem" queryCodeItem.class_id="codeItem"
queryCodeItem.page_size=100 queryCodeItem.page_size=100
queryCodeItem.page_num=1 queryCodeItem.page_num=1
@ -238,13 +238,13 @@ class DataStdService:
appr_item=DataStdCodeApprModel(**code_item) appr_item=DataStdCodeApprModel(**code_item)
last_appr_item= await DataStdDao.get_last_std_code_appr_by_id(query_db,std_id) last_appr_item= await DataStdDao.get_last_std_code_appr_by_id(query_db,std_id)
appr_item.changeType = "delete" appr_item.changeType = "delete"
appr_item.parent_id = std_code_appr.id appr_item.parent_id = std_code_appr.onum
appr_item.compareId = last_appr_item.id appr_item.compareId = last_appr_item.onum
appr_item.oldInstId = appr_item.id appr_item.oldInstId = appr_item.onum
appr_item.approStatus = "waiting" appr_item.approStatus = "waiting"
appr_item.code_status = "9" appr_item.cd_val_stat = "9"
appr_item.flowId = flow_id appr_item.flowId = flow_id
appr_item.id=str(uuid.uuid4()) appr_item.onum=str(uuid.uuid4())
appr_item.create_by = current_user.user.user_name appr_item.create_by = current_user.user.user_name
appr_item.create_time = datetime.now() appr_item.create_time = datetime.now()
await DataStdDao.add_std_code_appr(query_db, appr_item) await DataStdDao.add_std_code_appr(query_db, appr_item)
@ -297,26 +297,26 @@ class DataStdService:
try: try:
# 先校验标准代码是否唯一 # 先校验标准代码是否唯一
if not await cls.check_code_unique_services(query_db, code): if not await cls.check_code_unique_services(query_db, code):
raise ServiceException(message=f'新增代码{code.code_name}失败,{code.code_num}代码已存在') raise ServiceException(message=f'新增代码{code.cd_val_cn_mean}失败,{code.cd_no}代码已存在')
else: else:
# 保存标准代码 # 保存标准代码
code.id=str(uuid.uuid4()) code.onum=str(uuid.uuid4())
await cls.add_std_code_services(request, query_db, code) await cls.add_std_code_services(request, query_db, code)
# 为每个代码项设置parent_id,并进行校验 # 为每个代码项设置parent_id,并进行校验
for code_item in code_item_list: for code_item in code_item_list:
# 校验同一个父级下,code是否已存在 # 校验同一个父级下,code是否已存在
code_item.parent_id = code.id code_item.parent_id = code.onum
if not await cls.check_code_unique_services(query_db, code_item): if not await cls.check_code_unique_services(query_db, code_item):
raise ServiceException(message=f"父级代码{code.code_num}下的代码项{code_item.code_num}已存在") raise ServiceException(message=f"父级代码{code.cd_no}下的代码项{code_item.cd_no}已存在")
# 将parent_id设为code的ID # 将parent_id设为code的ID
code_item.id=str(uuid.uuid4()) code_item.onum=str(uuid.uuid4())
code_item.create_by=code.create_by code_item.create_by=code.create_by
code_item.create_time=code.create_time code_item.create_time=code.create_time
code_item.update_by=code.update_by code_item.upd_prsn=code.upd_prsn
code_item.update_time=code.update_time code_item.upd_time=code.upd_time
await cls.add_std_code_services(request, query_db, code_item) await cls.add_std_code_services(request, query_db, code_item)
# 提交事务 # 提交事务
@ -335,23 +335,22 @@ class DataStdService:
current_user: CurrentUserModel current_user: CurrentUserModel
): ):
# 设置标准代码的创建和更新时间 # 设置标准代码的创建和更新时间
code.id = str(uuid.uuid4()) # 新生成 ID code.onum = str(uuid.uuid4()) # 新生成 ID
code.create_by = current_user.user.user_name code.create_by = current_user.user.user_name
code.create_time = datetime.now() code.create_time = datetime.now()
code.update_by = current_user.user.user_name code.upd_prsn = current_user.user.user_name
code.update_time = datetime.now() code.upd_time = datetime.now()
code.sys_name = '公司级' if 'company' == code.code_type else code.sys_name
# 校验标准代码是否已存在于正式表中 # 校验标准代码是否已存在于正式表中
if not await cls.check_code_unique_services(query_db, code): if not await cls.check_code_unique_services(query_db, code):
raise ServiceException(message=f'标准代码{code.code_num}已经存在于正式表中,无法新增') raise ServiceException(message=f'标准代码{code.cd_no}已经存在于正式表中,无法新增')
# 先创建标准代码的审批记录 # 先创建标准代码的审批记录
appr_model = DataStdCodeApprModel(**code.model_dump(exclude_unset=True, by_alias=True)) appr_model = DataStdCodeApprModel(**code.model_dump(exclude_unset=True, by_alias=True))
appr_model.changeType = "add" appr_model.changeType = "add"
appr_model.compareId = code.id appr_model.compareId = code.onum
appr_model.oldInstId = code.id appr_model.oldInstId = code.onum
appr_model.code_status="9" appr_model.cd_val_stat="9"
appr_model.approStatus = "waiting" appr_model.approStatus = "waiting"
appr_model.flowId = str(uuid.uuid4()) # 新生成 Flow ID appr_model.flowId = str(uuid.uuid4()) # 新生成 Flow ID
@ -359,23 +358,23 @@ class DataStdService:
await DataStdDao.add_std_code_appr(query_db, appr_model) await DataStdDao.add_std_code_appr(query_db, appr_model)
# 同时处理代码项的添加 # 同时处理代码项的添加
for item in code_item_list: for item in code_item_list:
item.id = str(uuid.uuid4()) # 新生成 ID item.onum = str(uuid.uuid4()) # 新生成 ID
item.create_by = current_user.user.user_name item.create_by = current_user.user.user_name
item.create_time = datetime.now() item.create_time = datetime.now()
item.update_by = current_user.user.user_name item.upd_prsn = current_user.user.user_name
item.update_time = datetime.now() item.upd_time = datetime.now()
item.sys_name = '公司级' if 'company' == item.code_type else item.sys_name item.src_sys = '公司级' if 'company' == item.cd_type else item.src_sys
item.parent_id = appr_model.id # 设置父级 ID item.parent_id = appr_model.onum # 设置父级 ID
# 校验代码项是否已存在于正式表中 # 校验代码项是否已存在于正式表中
if not await cls.check_code_unique_services(query_db, item): if not await cls.check_code_unique_services(query_db, item):
raise ServiceException(message=f'代码项{item.code_num}已经存在于正式表中,无法新增') raise ServiceException(message=f'代码项{item.cd_no}已经存在于正式表中,无法新增')
# 同样需要创建审批记录 # 同样需要创建审批记录
item_appr_model = DataStdCodeApprModel(**item.model_dump(exclude_unset=True, by_alias=True)) item_appr_model = DataStdCodeApprModel(**item.model_dump(exclude_unset=True, by_alias=True))
item_appr_model.changeType = "add" item_appr_model.changeType = "add"
item_appr_model.compareId = item.id item_appr_model.compareId = item.onum
item_appr_model.oldInstId = item.id item_appr_model.oldInstId = item.onum
item_appr_model.approStatus = "waiting" item_appr_model.approStatus = "waiting"
item_appr_model.flowId = appr_model.flowId # 使用相同的 Flow ID item_appr_model.flowId = appr_model.flowId # 使用相同的 Flow ID
@ -397,34 +396,34 @@ class DataStdService:
try: try:
# 校验标准代码是否存在并且唯一 # 校验标准代码是否存在并且唯一
if not await cls.check_code_unique_services(query_db, code): if not await cls.check_code_unique_services(query_db, code):
raise ServiceException(message=f'修改代码{code.code_name}失败,{code.code_num}代码不存在或已存在') raise ServiceException(message=f'修改代码{code.cd_val_cn_mean}失败,{code.cd_no}代码不存在或已存在')
# 更新标准代码 # 更新标准代码
await cls.edit_std_code_services(request, query_db, code) await cls.edit_std_code_services(request, query_db, code)
# 为每个代码项设置parent_id,并进行校验 # 为每个代码项设置parent_id,并进行校验
for code_item in code_item_list: for code_item in code_item_list:
code_item.parent_id = code.id code_item.parent_id = code.onum
if code_item.id : if code_item.onum :
# 校验同一个父级下,code_num是否已存在 # 校验同一个父级下,code_num是否已存在
if not await cls.check_code_unique_services(query_db, code_item): if not await cls.check_code_unique_services(query_db, code_item):
raise ServiceException(message=f"父级代码{code.code_num}下的代码项{code_item.code_num}已存在") raise ServiceException(message=f"父级代码{code.cd_no}下的代码项{code_item.cd_no}已存在")
# 更新代码项的相关信息 # 更新代码项的相关信息
code_item.update_time = code.update_time code_item.upd_time = code.upd_time
code_item.update_by = code.update_by code_item.upd_prsn = code.upd_prsn
await cls.edit_std_code_services(request, query_db, code_item) # 执行更新操作 await cls.edit_std_code_services(request, query_db, code_item) # 执行更新操作
else: # 如果code_item的id不为0,表示是修改操作 else: # 如果code_item的id不为0,表示是修改操作
# 校验同一个父级下,code_num是否已存在 # 校验同一个父级下,code_num是否已存在
if not await cls.check_code_unique_services(query_db, code_item): if not await cls.check_code_unique_services(query_db, code_item):
raise ServiceException(message=f"父级代码{code.code_num}下的代码项{code_item.code_num}已存在") raise ServiceException(message=f"父级代码{code.cd_no}下的代码项{code_item.cd_no}已存在")
# 生成新的UUID,并新增代码项 # 生成新的UUID,并新增代码项
code_item.id = str(uuid.uuid4()) # 新生成的UUID code_item.onum = str(uuid.uuid4()) # 新生成的UUID
code_item.create_time = code.update_time code_item.create_time = code.upd_time
code_item.create_by = code.create_by code_item.create_by = code.create_by
code_item.update_time = code.update_time code_item.upd_time = code.upd_time
code_item.update_by = code.update_by code_item.upd_prsn = code.upd_prsn
await cls.add_std_code_services(request, query_db, code_item) # 执行新增操作 await cls.add_std_code_services(request, query_db, code_item) # 执行新增操作
# 提交事务 # 提交事务
await query_db.commit() await query_db.commit()
@ -444,92 +443,91 @@ class DataStdService:
): ):
""" """
修改标准代码及其代码项的审批流程修改审批 修改标准代码及其代码项的审批流程修改审批
code_item.id 存在为修改若为空则为新增 code_item.onum 存在为修改若为空则为新增
""" """
# 更新时间及人 # 更新时间及人
code.create_by = current_user.user.user_name code.create_by = current_user.user.user_name
code.create_time = datetime.now() code.create_time = datetime.now()
code.sys_name = '公司级' if 'company' == code.code_type else code.sys_name
# 校验标准代码是否存在并且唯一 # 校验标准代码是否存在并且唯一
if not await cls.check_code_unique_services(query_db, code): if not await cls.check_code_unique_services(query_db, code):
raise ServiceException(message=f'标准代码{code.code_num}不存在或已存在,无法提交修改审批') raise ServiceException(message=f'标准代码{code.cd_no}不存在或已存在,无法提交修改审批')
# 创建标准代码的审批记录(changeType 为 update) # 创建标准代码的审批记录(changeType 为 update)
appr_model = DataStdCodeApprModel(**code.model_dump(exclude_unset=True, by_alias=True)) appr_model = DataStdCodeApprModel(**code.model_dump(exclude_unset=True, by_alias=True))
last_appr= await DataStdDao.get_last_std_code_appr_by_id(query_db,code.id) last_appr= await DataStdDao.get_last_std_code_appr_by_id(query_db,code.onum)
appr_model.changeType = "update" appr_model.changeType = "update"
appr_model.compareId = last_appr.id # 对比对象为正式表的 ID appr_model.compareId = last_appr.onum # 对比对象为正式表的 ID
appr_model.oldInstId = code.id appr_model.oldInstId = code.onum
appr_model.code_status = "9" appr_model.cd_val_stat = "9"
appr_model.approStatus = "waiting" appr_model.approStatus = "waiting"
appr_model.flowId = str(uuid.uuid4()) # flowId 共用 appr_model.flowId = str(uuid.uuid4()) # flowId 共用
appr_model.id = str(uuid.uuid4()) # flowId 共用 appr_model.onum = str(uuid.uuid4()) # flowId 共用
await DataStdDao.add_std_code_appr(query_db, appr_model) await DataStdDao.add_std_code_appr(query_db, appr_model)
# query_object. # query_object.
query_object = DataStdCodePageQueryModel( query_object = DataStdCodePageQueryModel(
) )
query_object.parent_id=code.id query_object.parent_id=code.onum
query_object.class_id="codeItem" query_object.class_id="codeItem"
query_object.page_size=100 query_object.page_size=100
query_object.page_num=1 query_object.page_num=1
code_item_list_old = await DataStdDao.get_std_code_list(query_db, query_object, False) code_item_list_old = await DataStdDao.get_std_code_list(query_db, query_object, False)
new_ids = {item.id for item in code_item_list if item.id} new_ids = {item.onum for item in code_item_list if item.onum}
# 同步处理代码项 # 同步处理代码项
for item in code_item_list: for item in code_item_list:
item.parent_id = code.id item.parent_id = code.onum
item.update_by = current_user.user.user_name item.upd_prsn = current_user.user.user_name
item.update_time = datetime.now() item.upd_time = datetime.now()
item.sys_name = '公司级' if 'company' == item.code_type else item.sys_name item.src_sys = '公司级' if 'company' == item.cd_type else item.src_sys
if item.id: # 修改项 if item.onum: # 修改项
if not await cls.check_code_unique_services(query_db, item): if not await cls.check_code_unique_services(query_db, item):
raise ServiceException(message=f'父级代码{code.code_num}下代码项{item.code_num}重复,无法提交修改审批') raise ServiceException(message=f'父级代码{code.cd_no}下代码项{item.cd_no}重复,无法提交修改审批')
item_appr_model = DataStdCodeApprModel(**item.model_dump(exclude_unset=True, by_alias=True)) item_appr_model = DataStdCodeApprModel(**item.model_dump(exclude_unset=True, by_alias=True))
last_item_appr= await DataStdDao.get_last_std_code_appr_by_id(query_db,item_appr_model.id) last_item_appr= await DataStdDao.get_last_std_code_appr_by_id(query_db,item_appr_model.onum)
item_appr_model.changeType = "update" item_appr_model.changeType = "update"
item_appr_model.compareId = last_item_appr.id item_appr_model.compareId = last_item_appr.onum
item_appr_model.parent_id = appr_model.id item_appr_model.parent_id = code.onum
item_appr_model.oldInstId = item.id item_appr_model.oldInstId = item.onum
item_appr_model.approStatus = "waiting" item_appr_model.approStatus = "waiting"
item_appr_model.flowId = appr_model.flowId item_appr_model.flowId = appr_model.flowId
item_appr_model.id = str(uuid.uuid4()) # flowId 共用 item_appr_model.onum = str(uuid.uuid4()) # flowId 共用
await DataStdDao.add_std_code_appr(query_db, item_appr_model) await DataStdDao.add_std_code_appr(query_db, item_appr_model)
else: # 新增项 else: # 新增项
item.id = str(uuid.uuid4()) item.onum = str(uuid.uuid4())
item.create_by = current_user.user.user_name item.create_by = current_user.user.user_name
item.create_time = datetime.now() item.create_time = datetime.now()
if not await cls.check_code_unique_services(query_db, item): if not await cls.check_code_unique_services(query_db, item):
raise ServiceException(message=f'父级代码{code.code_num}下代码项{item.code_num}重复,无法提交新增审批') raise ServiceException(message=f'父级代码{code.cd_no}下代码项{item.cd_no}重复,无法提交新增审批')
item_appr_model = DataStdCodeApprModel(**item.model_dump(exclude_unset=True, by_alias=True)) item_appr_model = DataStdCodeApprModel(**item.model_dump(exclude_unset=True, by_alias=True))
item_appr_model.changeType = "add" item_appr_model.changeType = "add"
item_appr_model.compareId = item.id item_appr_model.compareId = item.onum
item_appr_model.oldInstId = item.id item_appr_model.oldInstId = item.onum
item_appr_model.approStatus = "waiting" item_appr_model.approStatus = "waiting"
item_appr_model.flowId = appr_model.flowId item_appr_model.flowId = appr_model.flowId
item_appr_model.parent_id = appr_model.id item_appr_model.parent_id = code.onum
await DataStdDao.add_std_code_appr(query_db, item_appr_model) await DataStdDao.add_std_code_appr(query_db, item_appr_model)
for old_item in code_item_list_old: for old_item in code_item_list_old:
if old_item["id"] not in new_ids: if old_item["onum"] not in new_ids:
# 创建“删除”审批记录 # 创建“删除”审批记录
delete_appr_model = DataStdCodeApprModel(**old_item) delete_appr_model = DataStdCodeApprModel(**old_item)
delete_appr_model.changeType = "delete" delete_appr_model.changeType = "delete"
last_appr= await DataStdDao.get_last_std_code_appr_by_id(query_db,old_item["id"]) last_appr= await DataStdDao.get_last_std_code_appr_by_id(query_db,old_item["onum"])
delete_appr_model.compareId = last_appr.id delete_appr_model.compareId = last_appr.onum
delete_appr_model.oldInstId = old_item["id"] delete_appr_model.oldInstId = old_item["onum"]
delete_appr_model.approStatus = "waiting" delete_appr_model.approStatus = "waiting"
delete_appr_model.flowId = appr_model.flowId delete_appr_model.flowId = appr_model.flowId
delete_appr_model.id = str(uuid.uuid4()) delete_appr_model.onum = str(uuid.uuid4())
delete_appr_model.parent_id = appr_model.id delete_appr_model.parent_id = code.onum
delete_appr_model.create_by = current_user.user.user_name delete_appr_model.create_by = current_user.user.user_name
delete_appr_model.create_time = datetime.now() delete_appr_model.create_time = datetime.now()
@ -539,7 +537,7 @@ class DataStdService:
apply_model = ApplyModel() apply_model = ApplyModel()
apply_model.businessType = "dataStdCode" apply_model.businessType = "dataStdCode"
apply_model.businessId = appr_model.flowId apply_model.businessId = appr_model.flowId
apply_model.applicant = appr_model.update_by apply_model.applicant = appr_model.upd_prsn
await ApprovalService.apply_services(query_db, apply_model, 'dataStdCode') await ApprovalService.apply_services(query_db, apply_model, 'dataStdCode')
return CrudResponseModel(is_success=True, message='提交修改标准代码审批成功!') return CrudResponseModel(is_success=True, message='提交修改标准代码审批成功!')
@ -553,15 +551,15 @@ class DataStdService:
:param page_object: 字典类型对象 :param page_object: 字典类型对象
:return: 校验结果 :return: 校验结果
""" """
id = -1 if page_object.id is None else page_object.id id = -1 if page_object.onum is None else page_object.onum
codemodel=DataStdCodeModel() codemodel=DataStdCodeModel()
codemodel.code_num=page_object.code_num codemodel.cd_no=page_object.cd_no
codemodel.class_id=page_object.class_id codemodel.class_id=page_object.class_id
codemodel.parent_id=page_object.parent_id codemodel.parent_id=page_object.parent_id
codemodel.code_type=page_object.code_type codemodel.cd_type=page_object.cd_type
dict_type = await DataStdDao.get_data_code_by_info(query_db, codemodel data_dict_type = await DataStdDao.get_data_code_by_info(query_db, codemodel
) )
if dict_type and dict_type.id != id: if data_dict_type and data_dict_type.onum != id:
return CommonConstant.NOT_UNIQUE return CommonConstant.NOT_UNIQUE
return CommonConstant.UNIQUE return CommonConstant.UNIQUE
# ----------------------------------------------------------------数据字典---------------------------------------------------------------------------------------------------- # ----------------------------------------------------------------数据字典----------------------------------------------------------------------------------------------------
@ -611,11 +609,11 @@ class DataStdService:
""" """
try: try:
if not await cls.check_dict_unique_services(query_db, page_object): if not await cls.check_dict_unique_services(query_db, page_object):
raise ServiceException(message=f"数据字典{page_object.dict_num}已存在") raise ServiceException(message=f"数据字典{page_object.data_dict_no}已存在")
# 创建新的 page_object 实例,避免修改原始对象 # 创建新的 page_object 实例,避免修改原始对象
new_page_object = DataStdDictModel(**page_object.model_dump(by_alias=True)) new_page_object = DataStdDictModel(**page_object.model_dump(by_alias=True))
new_page_object.dict_status="9" new_page_object.data_dict_stat="9"
new_page_object.id=str(uuid.uuid4()) new_page_object.onum=str(uuid.uuid4())
# 调用 DAO 方法插入数据 # 调用 DAO 方法插入数据
await DataStdDao.add_std_dict(query_db, new_page_object) await DataStdDao.add_std_dict(query_db, new_page_object)
return CrudResponseModel(is_success=True, message='新增数据字典成功') return CrudResponseModel(is_success=True, message='新增数据字典成功')
@ -651,9 +649,9 @@ class DataStdService:
:return: 编辑列配置校验结果 :return: 编辑列配置校验结果
""" """
if not await cls.check_dict_unique_services(query_db, page_object): if not await cls.check_dict_unique_services(query_db, page_object):
raise ServiceException(message=f"数据字典编号:{page_object.dict_num}已存在") raise ServiceException(message=f"数据字典编号:{page_object.data_dict_no}已存在")
edit_col = page_object.model_dump(exclude_unset=True) edit_col = page_object.model_dump(exclude_unset=True)
col_info = await cls.get_std_dict_by_id_services(query_db, page_object.id) col_info = await cls.get_std_dict_by_id_services(query_db, page_object.onum)
if col_info: if col_info:
try: try:
await DataStdDao.update_std_dict(query_db, edit_col) await DataStdDao.update_std_dict(query_db, edit_col)
@ -662,7 +660,7 @@ class DataStdService:
await query_db.rollback() await query_db.rollback()
raise e raise e
else: else:
raise ServiceException(message=f'数据字典{page_object.id}不存在') raise ServiceException(message=f'数据字典{page_object.onum}不存在')
@classmethod @classmethod
@ -700,13 +698,13 @@ class DataStdService:
:param page_object: 字典类型对象 :param page_object: 字典类型对象
:return: 校验结果 :return: 校验结果
""" """
id ='-1' if page_object.id is None else page_object.id id ='-1' if page_object.onum is None else page_object.onum
codemodel=DataStdDictModel() codemodel=DataStdDictModel()
codemodel.dict_num=page_object.dict_num codemodel.data_dict_no=page_object.data_dict_no
dict_type = await DataStdDao.get_data_dict_by_info(query_db, codemodel data_dict_type = await DataStdDao.get_data_dict_by_info(query_db, codemodel
) )
if dict_type and dict_type.id != id: if data_dict_type and data_dict_type.onum != id:
return CommonConstant.NOT_UNIQUE return CommonConstant.NOT_UNIQUE
return CommonConstant.UNIQUE return CommonConstant.UNIQUE
# ----------------------------------------------------------------数据标准分类---------------------------------------------------------------------------------------------------- # ----------------------------------------------------------------数据标准分类----------------------------------------------------------------------------------------------------
@ -732,7 +730,7 @@ class DataStdService:
nodes = {} # 存储所有处理后的节点 nodes = {} # 存储所有处理后的节点
# 处理每个组,生成节点 # 处理每个组,生成节点
for content_onum, items in grouped.items(): for belt_data_std_content, items in grouped.items():
first_item = items[0] first_item = items[0]
is_leaf = first_item['leafNodeFlag'] == 1 is_leaf = first_item['leafNodeFlag'] == 1
rela_onum = first_item['relaOnum'] is not None rela_onum = first_item['relaOnum'] is not None
@ -751,12 +749,12 @@ class DataStdService:
'children': [] 'children': []
} }
nodes[content_onum] = common_fields nodes[belt_data_std_content] = common_fields
# 构建父子关系 # 构建父子关系
root = None root = None
for content_onum, node in nodes.items(): for belt_data_std_content, node in nodes.items():
supr = node['suprContentOnum'] supr = node['suprContentOnum']
if supr is None: if supr is None:
root = node root = node
@ -766,7 +764,7 @@ class DataStdService:
parent['children'].append(node) parent['children'].append(node)
# 对每个父节点的children进行排序,将'临时的节点'放到最后 # 对每个父节点的children进行排序,将'临时的节点'放到最后
for content_onum, node in nodes.items(): for belt_data_std_content, node in nodes.items():
if 'children' in node: if 'children' in node:
# 排序时,'临时的节点'会被放到最后 # 排序时,'临时的节点'会被放到最后
node['children'] = sorted( node['children'] = sorted(
@ -782,16 +780,16 @@ class DataStdService:
return catalog_list_result return catalog_list_result
@classmethod @classmethod
async def get_catalog_detail_services(cls, query_db: AsyncSession, content_onum: int): async def get_catalog_detail_services(cls, query_db: AsyncSession, belt_data_std_content: int):
""" """
获取数据目录详细信息service 获取数据目录详细信息service
:param query_db: orm对象 :param query_db: orm对象
:param content_onum: 数据目录ID :param belt_data_std_content: 数据目录ID
:return: 数据目录详细信息对象 :return: 数据目录详细信息对象
""" """
catalog_detail_result = await DataStdDao.get_catalog_by_id(query_db, content_onum) catalog_detail_result = await DataStdDao.get_catalog_by_id(query_db, belt_data_std_content)
return catalog_detail_result return catalog_detail_result
@ -840,7 +838,7 @@ class DataStdService:
raise ServiceException(message=f"创建目录时发生错误: {str(e)}") raise ServiceException(message=f"创建目录时发生错误: {str(e)}")
@classmethod @classmethod
async def edit_catalog_leaf_services(cls, query_db: AsyncSession,content_onum : int, leaf_node_flag : int): async def edit_catalog_leaf_services(cls, query_db: AsyncSession,belt_data_std_content : int, leaf_node_flag : int):
""" """
编辑数据目录信息service 编辑数据目录信息service
@ -849,7 +847,7 @@ class DataStdService:
:return: 编辑目录操作结果 :return: 编辑目录操作结果
""" """
catalog_data1 = { catalog_data1 = {
'content_onum': content_onum, 'belt_data_std_content': belt_data_std_content,
'leaf_node_flag': leaf_node_flag 'leaf_node_flag': leaf_node_flag
} }
try: try:
@ -872,7 +870,7 @@ class DataStdService:
""" """
catalog_data = { catalog_data = {
'content_onum': request.content_onum, 'belt_data_std_content': request.belt_data_std_content,
'content_name': request.content_name, 'content_name': request.content_name,
'content_stat': request.content_stat, 'content_stat': request.content_stat,
'content_intr': request.content_intr, 'content_intr': request.content_intr,
@ -918,12 +916,12 @@ class DataStdService:
if request.content_onums: if request.content_onums:
content_onum_list = request.content_onums.split(',') content_onum_list = request.content_onums.split(',')
try: try:
for content_onum in content_onum_list: for belt_data_std_content in content_onum_list:
catalog = await cls.get_catalog_detail_services(query_db, int(content_onum)) catalog = await cls.get_catalog_detail_services(query_db, int(belt_data_std_content))
if not catalog: if not catalog:
raise ServiceException(message=f'目录ID {content_onum} 不存在') raise ServiceException(message=f'目录ID {belt_data_std_content} 不存在')
await DataStdDao.delete_catalog_dao(query_db, DeleteDataCatalogModel(content_onums=content_onum)) await DataStdDao.delete_catalog_dao(query_db, DeleteDataCatalogModel(content_onums=belt_data_std_content))
# await DataStdDao.delete_ast_book_mark_rela_by_content_onum(query_db, int(content_onum), user_id) # await DataStdDao.delete_ast_book_mark_rela_by_content_onum(query_db, int(belt_data_std_content), user_id)
await query_db.commit() await query_db.commit()
return CrudResponseModel(is_success=True, message='删除成功') return CrudResponseModel(is_success=True, message='删除成功')
except Exception as e: except Exception as e:
@ -949,16 +947,16 @@ class DataStdService:
sys_groups = {} sys_groups = {}
for item in rows: for item in rows:
sys_name, eng_name, cn_name, ast_no = item src_sys, eng_name, cn_name, ast_no = item
# 创建或获取系统分组 # 创建或获取系统分组
if sys_name not in sys_groups: if src_sys not in sys_groups:
sys_groups[sys_name] = { sys_groups[src_sys] = {
"dataAssetSysName": sys_name, "dataAssetSysName": src_sys,
"children": [] "children": []
} }
# 添加子节点 # 添加子节点
sys_groups[sys_name]["children"].append({ sys_groups[src_sys]["children"].append({
"dataAssetCatalogNo": eng_name, "dataAssetCatalogNo": eng_name,
"dataAssetCatalogName": cn_name, "dataAssetCatalogName": cn_name,
"dataAssetCatalogAstno": ast_no "dataAssetCatalogAstno": ast_no
@ -975,7 +973,7 @@ class DataStdService:
""" """
moved_catalog_data = { moved_catalog_data = {
'content_onum': request.content_onum, 'belt_data_std_content': request.belt_data_std_content,
'supr_content_onum': request.supr_content_onum, 'supr_content_onum': request.supr_content_onum,
'supr_content_onum_after': request.supr_content_onum_after 'supr_content_onum_after': request.supr_content_onum_after
} }
@ -1000,7 +998,7 @@ class DataStdService:
""" """
merge_catalog_data = { merge_catalog_data = {
'content_onum': request.content_onum, 'belt_data_std_content': request.belt_data_std_content,
'supr_content_onum': request.supr_content_onum, 'supr_content_onum': request.supr_content_onum,
'content_onum_after': request.content_onum_after, 'content_onum_after': request.content_onum_after,
'supr_content_onum_after': request.supr_content_onum_after 'supr_content_onum_after': request.supr_content_onum_after
@ -1023,7 +1021,7 @@ class DataStdService:
removerel_catalog_data = { removerel_catalog_data = {
'rela_onum': request.rela_onum, 'rela_onum': request.rela_onum,
'content_onum': request.content_onum, 'belt_data_std_content': request.belt_data_std_content,
'ast_onum': request.ast_onum, 'ast_onum': request.ast_onum,
'rela_type': request.rela_type, 'rela_type': request.rela_type,
'rela_eff_begn_date': request.rela_eff_begn_date, 'rela_eff_begn_date': request.rela_eff_begn_date,
@ -1052,7 +1050,7 @@ class DataStdService:
moverel_catalog_data = { moverel_catalog_data = {
'rela_onum': request.rela_onum, 'rela_onum': request.rela_onum,
'content_onum': request.content_onum, 'belt_data_std_content': request.belt_data_std_content,
'content_onum_after': request.content_onum_after 'content_onum_after': request.content_onum_after
} }
@ -1070,11 +1068,11 @@ class DataStdService:
""" """
校验标准编号是否唯一 校验标准编号是否唯一
""" """
id = '-1' if model.id is None else model.id id = '-1' if model.onum is None else model.onum
check_model = DataStdMainModel() check_model = DataStdMainModel()
check_model.std_num=model.std_num check_model.data_std_no=model.data_std_no
existing = await DataStdDao.get_data_main_by_info(query_db, check_model) existing = await DataStdDao.get_data_main_by_info(query_db, check_model)
return CommonConstant.NOT_UNIQUE if existing and existing.id != id else CommonConstant.UNIQUE return CommonConstant.NOT_UNIQUE if existing and existing.onum != id else CommonConstant.UNIQUE
@classmethod @classmethod
async def get_std_main_list(cls, query_db: AsyncSession, query_object: DataStdMainModel, is_page: bool = False): async def get_std_main_list(cls, query_db: AsyncSession, query_object: DataStdMainModel, is_page: bool = False):
@ -1162,10 +1160,10 @@ class DataStdService:
@classmethod @classmethod
async def add_std_main(cls, query_db: AsyncSession, model: DataStdMainModel): async def add_std_main(cls, query_db: AsyncSession, model: DataStdMainModel):
if not await cls.check_std_num_unique(query_db, model): if not await cls.check_std_num_unique(query_db, model):
raise ServiceException(message=f"标准编号 {model.std_num} 已存在") raise ServiceException(message=f"标准编号 {model.data_std_no} 已存在")
model.id=str(uuid.uuid4()) model.onum=str(uuid.uuid4())
model.std_status="9" model.std_status="9"
model.content_onum=2 model.belt_data_std_content=2
await DataStdDao.add_std_main(query_db, model) await DataStdDao.add_std_main(query_db, model)
return CrudResponseModel(is_success=True, message='新增标准成功') return CrudResponseModel(is_success=True, message='新增标准成功')
@ -1173,25 +1171,25 @@ class DataStdService:
@classmethod @classmethod
async def edit_std_main(cls, query_db: AsyncSession, model: DataStdMainModel): async def edit_std_main(cls, query_db: AsyncSession, model: DataStdMainModel):
if not await cls.check_std_num_unique(query_db, model): if not await cls.check_std_num_unique(query_db, model):
raise ServiceException(message=f"标准编号 {model.std_num} 已存在") raise ServiceException(message=f"标准编号 {model.data_std_no} 已存在")
existing = await cls.get_std_main_by_id(query_db, model.id) existing = await cls.get_std_main_by_id(query_db, model.onum)
if existing: if existing:
await DataStdDao.update_std_main(query_db, model.model_dump(exclude_unset=True)) await DataStdDao.update_std_main(query_db, model.model_dump(exclude_unset=True))
return CrudResponseModel(is_success=True, message='编辑标准成功') return CrudResponseModel(is_success=True, message='编辑标准成功')
else: else:
raise ServiceException(message=f'标准 {model.id} 不存在') raise ServiceException(message=f'标准 {model.onum} 不存在')
@classmethod @classmethod
async def add_std_main_appr(cls, query_db: AsyncSession, model: DataStdMainModel): async def add_std_main_appr(cls, query_db: AsyncSession, model: DataStdMainModel):
if not await cls.check_std_num_unique(query_db, model): if not await cls.check_std_num_unique(query_db, model):
raise ServiceException(message=f"标准编号 {model.std_num} 已存在") raise ServiceException(message=f"标准编号 {model.data_std_no} 已存在")
model.id=str(uuid.uuid4()) model.onum=str(uuid.uuid4())
model.std_status="9" model.std_status="9"
model.content_onum=2 model.belt_data_std_content=2
# 将 DataStdMainModel 转换为 DataStdMainApprModel,保留字段原始名 # 将 DataStdMainModel 转换为 DataStdMainApprModel,保留字段原始名
apprModel = DataStdMainApprModel(**model.model_dump(exclude_unset=True, by_alias=True)) apprModel = DataStdMainApprModel(**model.model_dump(exclude_unset=True, by_alias=True))
apprModel.changeType="add" apprModel.changeType="add"
apprModel.compareId=model.id apprModel.compareId=model.onum
apprModel.oldInstId=model.id apprModel.oldInstId=model.onum
apprModel.approStatus="waiting" apprModel.approStatus="waiting"
apprModel.flowId=str(uuid.uuid4()) apprModel.flowId=str(uuid.uuid4())
await DataStdDao.add_std_main_appr(query_db, apprModel) await DataStdDao.add_std_main_appr(query_db, apprModel)
@ -1204,14 +1202,14 @@ class DataStdService:
@classmethod @classmethod
async def add_std_dict_appr(cls, query_db: AsyncSession, model: DataStdDictModel): async def add_std_dict_appr(cls, query_db: AsyncSession, model: DataStdDictModel):
if not await cls.check_dict_unique_services(query_db, model): if not await cls.check_dict_unique_services(query_db, model):
raise ServiceException(message=f"字典编号 {model.dict_num} 已存在") raise ServiceException(message=f"字典编号 {model.data_dict_no} 已存在")
model.id=str(uuid.uuid4()) model.onum=str(uuid.uuid4())
model.dict_status="9" model.data_dict_stat="9"
# 将 DataStdMainModel 转换为 DataStdMainApprModel,保留字段原始名 # 将 DataStdMainModel 转换为 DataStdMainApprModel,保留字段原始名
apprModel = DataStdDictApprModel(**model.model_dump(exclude_unset=True, by_alias=True)) apprModel = DataStdDictApprModel(**model.model_dump(exclude_unset=True, by_alias=True))
apprModel.changeType="add" apprModel.changeType="add"
apprModel.compareId=model.id apprModel.compareId=model.onum
apprModel.oldInstId=model.id apprModel.oldInstId=model.onum
apprModel.approStatus="waiting" apprModel.approStatus="waiting"
apprModel.flowId=str(uuid.uuid4()) apprModel.flowId=str(uuid.uuid4())
await DataStdDao.add_std_dict_appr(query_db, apprModel) await DataStdDao.add_std_dict_appr(query_db, apprModel)
@ -1224,19 +1222,19 @@ class DataStdService:
@classmethod @classmethod
async def edit_std_main_appr(cls, query_db: AsyncSession, model: DataStdMainModel): async def edit_std_main_appr(cls, query_db: AsyncSession, model: DataStdMainModel):
if not await cls.check_std_num_unique(query_db, model): if not await cls.check_std_num_unique(query_db, model):
raise ServiceException(message=f"标准编号 {model.std_num} 已存在") raise ServiceException(message=f"标准编号 {model.data_std_no} 已存在")
model.std_status="9" model.std_status="9"
# 将 DataStdMainModel 转换为 DataStdMainApprModel,保留字段原始名 # 将 DataStdMainModel 转换为 DataStdMainApprModel,保留字段原始名
watingList=await DataStdDao.check_std_main_waiting(model.id, query_db) watingList=await DataStdDao.check_std_main_waiting(model.onum, query_db)
if len(watingList)>0 : # 如果 watingList 存在,意味着标准正在审批中 if len(watingList)>0 : # 如果 watingList 存在,意味着标准正在审批中
raise ServiceException(message="标准正在审批中,请等待审批完成") raise ServiceException(message="标准正在审批中,请等待审批完成")
lastAppr =await DataStdDao.get_last_std_main_appr_by_id(query_db,model.id) lastAppr =await DataStdDao.get_last_std_main_appr_by_id(query_db,model.onum)
apprModel = DataStdMainApprModel(**model.model_dump(exclude_unset=True, by_alias=True)) apprModel = DataStdMainApprModel(**model.model_dump(exclude_unset=True, by_alias=True))
apprModel.changeType="edit" apprModel.changeType="edit"
apprModel.id=str(uuid.uuid4()) apprModel.onum=str(uuid.uuid4())
apprModel.oldInstId=model.id apprModel.oldInstId=model.onum
apprModel.compareId=lastAppr.id apprModel.compareId=lastAppr.onum
apprModel.approStatus="waiting" apprModel.approStatus="waiting"
apprModel.flowId=str(uuid.uuid4()) apprModel.flowId=str(uuid.uuid4())
await DataStdDao.add_std_main_appr(query_db, apprModel) await DataStdDao.add_std_main_appr(query_db, apprModel)
@ -1250,17 +1248,17 @@ class DataStdService:
async def edit_std_dict_appr(cls, query_db: AsyncSession, model: DataStdDictModel): async def edit_std_dict_appr(cls, query_db: AsyncSession, model: DataStdDictModel):
if not await cls.check_dict_unique_services(query_db, model): if not await cls.check_dict_unique_services(query_db, model):
raise ServiceException(message=f"字典编号 {model.c} 已存在") raise ServiceException(message=f"字典编号 {model.c} 已存在")
model.dict_status="9" model.data_dict_stat="9"
watingList=await DataStdDao.check_std_dict_waiting(model.id, query_db) watingList=await DataStdDao.check_std_dict_waiting(model.onum, query_db)
if len(watingList)>0 : # 如果 watingList 存在,意味着标准正在审批中 if len(watingList)>0 : # 如果 watingList 存在,意味着标准正在审批中
raise ServiceException(message="标准正在审批中,请等待审批完成") raise ServiceException(message="标准正在审批中,请等待审批完成")
lastAppr =await DataStdDao.get_last_std_dict_appr_by_id(query_db,model.id) lastAppr =await DataStdDao.get_last_std_dict_appr_by_id(query_db,model.onum)
apprModel = DataStdDictApprModel(**model.model_dump(exclude_unset=True, by_alias=True)) apprModel = DataStdDictApprModel(**model.model_dump(exclude_unset=True, by_alias=True))
apprModel.changeType="edit" apprModel.changeType="edit"
apprModel.id=str(uuid.uuid4()) apprModel.onum=str(uuid.uuid4())
apprModel.oldInstId=model.id apprModel.oldInstId=model.onum
apprModel.compareId=lastAppr.id apprModel.compareId=lastAppr.onum
apprModel.approStatus="waiting" apprModel.approStatus="waiting"
apprModel.flowId=str(uuid.uuid4()) apprModel.flowId=str(uuid.uuid4())
await DataStdDao.add_std_dict_appr(query_db, apprModel) await DataStdDao.add_std_dict_appr(query_db, apprModel)
@ -1278,13 +1276,13 @@ class DataStdService:
for col_id in col_id_list: for col_id in col_id_list:
col_info = await cls.get_std_main_by_id(query_db, col_id) col_info = await cls.get_std_main_by_id(query_db, col_id)
if col_info: if col_info:
watingList=await DataStdDao.check_std_main_waiting(col_info.id,query_db ) watingList=await DataStdDao.check_std_main_waiting(col_info.onum,query_db )
if len(watingList)>0 : # 如果 watingList 存在,意味着标准正在审批中 if len(watingList)>0 : # 如果 watingList 存在,意味着标准正在审批中
raise ServiceException(message="标准正在审批中,请等待审批完成") raise ServiceException(message="标准正在审批中,请等待审批完成")
apprModel = DataStdMainApprModel(**col_info.model_dump(exclude_unset=True, by_alias=True)) apprModel = DataStdMainApprModel(**col_info.model_dump(exclude_unset=True, by_alias=True))
apprModel.changeType="delete" apprModel.changeType="delete"
apprModel.id=str(uuid.uuid4()) apprModel.onum=str(uuid.uuid4())
apprModel.oldInstId=col_info.id apprModel.oldInstId=col_info.onum
apprModel.approStatus="waiting" apprModel.approStatus="waiting"
apprModel.flowId=str(uuid.uuid4()) apprModel.flowId=str(uuid.uuid4())
await DataStdDao.add_std_main_appr(query_db, apprModel) await DataStdDao.add_std_main_appr(query_db, apprModel)
@ -1308,13 +1306,13 @@ class DataStdService:
for col_id in col_id_list: for col_id in col_id_list:
col_info = await cls.get_std_dict_by_id_services(query_db, col_id) col_info = await cls.get_std_dict_by_id_services(query_db, col_id)
if col_info: if col_info:
watingList=await DataStdDao.check_std_dict_waiting(col_info.id,query_db ) watingList=await DataStdDao.check_std_dict_waiting(col_info.onum,query_db )
if len(watingList)>0 : # 如果 watingList 存在,意味着标准正在审批中 if len(watingList)>0 : # 如果 watingList 存在,意味着标准正在审批中
raise ServiceException(message="标准正在审批中,请等待审批完成") raise ServiceException(message="标准正在审批中,请等待审批完成")
apprModel = DataStdDictApprModel(**col_info.model_dump(exclude_unset=True, by_alias=True)) apprModel = DataStdDictApprModel(**col_info.model_dump(exclude_unset=True, by_alias=True))
apprModel.changeType="delete" apprModel.changeType="delete"
apprModel.id=str(uuid.uuid4()) apprModel.onum=str(uuid.uuid4())
apprModel.oldInstId=col_info.id apprModel.oldInstId=col_info.onum
apprModel.approStatus="waiting" apprModel.approStatus="waiting"
apprModel.flowId=str(uuid.uuid4()) apprModel.flowId=str(uuid.uuid4())
await DataStdDao.add_std_dict_appr(query_db, apprModel) await DataStdDao.add_std_dict_appr(query_db, apprModel)
@ -1355,7 +1353,7 @@ class DataStdService:
for col_id in col_id_list: for col_id in col_id_list:
col_info = await cls.get_std_main_by_id(query_db, col_id) col_info = await cls.get_std_main_by_id(query_db, col_id)
if col_info: if col_info:
col_info.content_onum=onum col_info.belt_data_std_content=onum
await DataStdDao.update_std_main(query_db,col_info.model_dump(exclude_unset=True) ) await DataStdDao.update_std_main(query_db,col_info.model_dump(exclude_unset=True) )
await query_db.commit() await query_db.commit()
return CrudResponseModel(is_success=True, message='修改标准分类成功') return CrudResponseModel(is_success=True, message='修改标准分类成功')
@ -1370,9 +1368,9 @@ class DataStdService:
async def get_code_std_map_list_services(cls, query_db: AsyncSession, id: str): async def get_code_std_map_list_services(cls, query_db: AsyncSession, id: str):
# 查询 A 表(t_datastd_main) # 查询 A 表(t_datastd_main)
check_model = DataStdMainModel() check_model = DataStdMainModel()
check_model.code_id = id check_model.cd_id = id
main_list = await DataStdDao.get_std_main_list_all(query_db, check_model) main_list = await DataStdDao.get_std_main_list_all(query_db, check_model)
stdCode=await DataStdDao.get_std_code_by_id(query_db, id) dataStdNo=await DataStdDao.get_std_code_by_id(query_db, id)
if not main_list: if not main_list:
return {"tableData": [], "children": []} # 如果 A 表没有数据,返回空结构 return {"tableData": [], "children": []} # 如果 A 表没有数据,返回空结构
@ -1381,43 +1379,43 @@ class DataStdService:
children = [] # 存储图谱数据 children = [] # 存储图谱数据
for main in main_list: for main in main_list:
# 查询 B 表(t_datastd_dict),通过 A 表的 id 匹配 std_code # 查询 B 表(t_datastd_dict),通过 A 表的 id 匹配 data_std_no
dict_model = DataStdDictModel() dict_model = DataStdDictModel()
dict_model.std_code = main.get('id') # 使用 get() 方法访问字段 dict_model.data_std_no = main.get('id') # 使用 get() 方法访问字段
dict_list = await DataStdDao.get_std_dict_list_all(query_db, dict_model) dict_list = await DataStdDao.get_std_dict_list_all(query_db, dict_model)
# 组织表格数据 # 组织表格数据
if dict_list: if dict_list:
for dict_item in dict_list: for dict_item in dict_list:
table_data.append({ table_data.append({
"codeNum": stdCode.code_num, # 使用 get() 方法访问字段 "cdNo": dataStdNo.cd_no, # 使用 get() 方法访问字段
"codeName": stdCode.code_name, # 使用 get() 方法访问字段 "cdValCnMean": dataStdNo.cd_val_cn_mean, # 使用 get() 方法访问字段
"stdNum": main.get('stdNum'), # 使用 get() 方法访问字段 "dataStdNo": main.get('dataStdNo'), # 使用 get() 方法访问字段
"stdName": main.get('stdName'), # 使用 get() 方法访问字段 "dataStdCnName": main.get('dataStdCnName'), # 使用 get() 方法访问字段
"stdCode": main.get('stdCode'), # 使用 get() 方法访问字段 "dataStdNo": main.get('dataStdNo'), # 使用 get() 方法访问字段
"dictNum": dict_item.get('dictNum'), # 使用 get() 方法访问字段 "dataDictNo": dict_item.get('dataDictNo'), # 使用 get() 方法访问字段
"dictName": dict_item.get('dictName'), # 使用 get() 方法访问字段 "dataDictCnName": dict_item.get('dataDictCnName'), # 使用 get() 方法访问字段
"dictCode": dict_item.get('dictCode'), # 使用 get() 方法访问字段 "dataDictEngName": dict_item.get('dataDictEngName'), # 使用 get() 方法访问字段
}) })
else : else :
table_data.append({ table_data.append({
"codeNum": stdCode.code_num, # 使用 get() 方法访问字段 "cdNo": dataStdNo.cd_no, # 使用 get() 方法访问字段
"codeName": stdCode.code_name, # 使用 get() 方法访问字段 "cdValCnMean": dataStdNo.cd_val_cn_mean, # 使用 get() 方法访问字段
"stdNum": main.get('stdNum'), # 使用 get() 方法访问字段 "dataStdNo": main.get('dataStdNo'), # 使用 get() 方法访问字段
"stdName": main.get('stdName'), # 使用 get() 方法访问字段 "dataStdCnName": main.get('dataStdCnName'), # 使用 get() 方法访问字段
"stdCode": main.get('stdCode'), # 使用 get() 方法访问字段 "dataStdNo": main.get('dataStdNo'), # 使用 get() 方法访问字段
"dictNum": "", # 使用 get() 方法访问字段 "dataDictNo": "", # 使用 get() 方法访问字段
"dictName":"", # 使用 get() 方法访问字段 "dataDictCnName":"", # 使用 get() 方法访问字段
"dictCode": "", # 使用 get() 方法访问字段 "dataDictEngName": "", # 使用 get() 方法访问字段
}) })
# 组织图谱数据(A 表作为父节点) # 组织图谱数据(A 表作为父节点)
node = { node = {
"id": f"node_{main.get('id')}", # 使用 get() 方法访问字段 "id": f"node_{main.get('id')}", # 使用 get() 方法访问字段
"name": main.get('stdName'), # 使用 get() 方法访问字段 "name": main.get('dataStdCnName'), # 使用 get() 方法访问字段
"label": main.get('stdCode'), # 使用 get() 方法访问字段 "label": main.get('dataStdNo'), # 使用 get() 方法访问字段
"rate": 1.0, "rate": 1.0,
"status": "B", "status": "B",
"currency": main.get('stdNum'), # 使用 get() 方法访问字段 "currency": main.get('dataStdNo'), # 使用 get() 方法访问字段
"variableValue": "标准", "variableValue": "标准",
"variableUp": True, "variableUp": True,
"children": [], "children": [],
@ -1427,11 +1425,11 @@ class DataStdService:
for dict_item in dict_list: for dict_item in dict_list:
node["children"].append({ node["children"].append({
"id": f"dict_{dict_item.get('id')}", # 使用 get() 方法访问字段 "id": f"dict_{dict_item.get('id')}", # 使用 get() 方法访问字段
"name": dict_item.get('dictName'), # 使用 get() 方法访问字段 "name": dict_item.get('dataDictCnName'), # 使用 get() 方法访问字段
"label": dict_item.get('dictCode'), # 使用 get() 方法访问字段 "label": dict_item.get('dataDictEngName'), # 使用 get() 方法访问字段
"rate": 1.0, "rate": 1.0,
"status": "R", "status": "R",
"currency": dict_item.get('dictNum'), # 使用 get() 方法访问字段 "currency": dict_item.get('dataDictNo'), # 使用 get() 方法访问字段
"variableValue": "词典", "variableValue": "词典",
"variableUp": True, "variableUp": True,
}) })
@ -1445,16 +1443,16 @@ class DataStdService:
@classmethod @classmethod
async def get_code_map_list(cls, query_db: AsyncSession, id: str): async def get_code_map_list(cls, query_db: AsyncSession, id: str):
check_model = DataStdCodeModel() check_model = DataStdCodeModel()
stdCode=await DataStdDao.get_std_code_by_id(query_db, id) dataStdNo=await DataStdDao.get_std_code_by_id(query_db, id)
code_type="公司级" cd_type="公司级"
if stdCode.code_type=='sys': if dataStdNo.cd_type=='sys':
if stdCode.code_map_id: if dataStdNo.code_map_id:
check_model.id=stdCode.code_map_id check_model.onum=dataStdNo.code_map_id
else: else:
check_model.id="no" check_model.onum="no"
else: else:
check_model.code_map_id = id check_model.code_map_id = id
code_type="系统级" cd_type="系统级"
main_list = await DataStdDao.get_data_code_list_by_info(query_db, check_model) main_list = await DataStdDao.get_data_code_list_by_info(query_db, check_model)
@ -1467,13 +1465,13 @@ class DataStdService:
for main in main_list: for main in main_list:
# 组织图谱数据(A 表作为父节点) # 组织图谱数据(A 表作为父节点)
node = { node = {
"id": f"node_{main.id}", # 使用 get() 方法访问字段 "id": f"node_{main.onum}", # 使用 get() 方法访问字段
"name": main.code_name, # 使用 get() 方法访问字段 "name": main.cd_val_cn_mean, # 使用 get() 方法访问字段
"label": main.code_num, # 使用 get() 方法访问字段 "label": main.cd_no, # 使用 get() 方法访问字段
"rate": 1.0, "rate": 1.0,
"status": "B", "status": "B",
# "currency": main.get('stdNum'), # 使用 get() 方法访问字段 # "currency": main.get('dataStdNo'), # 使用 get() 方法访问字段
"variableValue": code_type, "variableValue": cd_type,
"variableUp": True, "variableUp": True,
"children": [], "children": [],
} }

10
vue-fastapi-backend/sql/ruoyi-fastapi-pg.sql

@ -553,7 +553,7 @@ comment on table sys_oper_log is '操作日志记录';
drop table if exists sys_dict_type; drop table if exists sys_dict_type;
create table sys_dict_type ( create table sys_dict_type (
dict_id bigserial not null, dict_id bigserial not null,
dict_name varchar(100) default '', data_dict_cn_name varchar(100) default '',
dict_type varchar(100) unique default '', dict_type varchar(100) unique default '',
status char(1) default '0', status char(1) default '0',
create_by varchar(64) default '', create_by varchar(64) default '',
@ -565,7 +565,7 @@ create table sys_dict_type (
); );
alter sequence sys_dict_type_dict_id_seq restart 100; alter sequence sys_dict_type_dict_id_seq restart 100;
comment on column sys_dict_type.dict_id is '字典主键'; comment on column sys_dict_type.dict_id is '字典主键';
comment on column sys_dict_type.dict_name is '字典名称'; comment on column sys_dict_type.data_dict_cn_name is '字典名称';
comment on column sys_dict_type.dict_type is '字典类型'; comment on column sys_dict_type.dict_type is '字典类型';
comment on column sys_dict_type.status is '状态(0正常 1停用)'; comment on column sys_dict_type.status is '状态(0正常 1停用)';
comment on column sys_dict_type.create_by is '创建者'; comment on column sys_dict_type.create_by is '创建者';
@ -595,7 +595,7 @@ insert into sys_dict_type values(11, '系统状态', 'sys_common_status', '0
-- ---------------------------- -- ----------------------------
drop table if exists sys_dict_data; drop table if exists sys_dict_data;
create table sys_dict_data ( create table sys_dict_data (
dict_code bigserial not null, data_dict_eng_name bigserial not null,
dict_sort int4 default 0, dict_sort int4 default 0,
dict_label varchar(100) default '', dict_label varchar(100) default '',
dict_value varchar(100) default '', dict_value varchar(100) default '',
@ -609,10 +609,10 @@ create table sys_dict_data (
update_by varchar(64) default '', update_by varchar(64) default '',
update_time timestamp(0), update_time timestamp(0),
remark varchar(500) default null, remark varchar(500) default null,
primary key (dict_code) primary key (data_dict_eng_name)
); );
alter sequence sys_dict_data_dict_code_seq restart 100; alter sequence sys_dict_data_dict_code_seq restart 100;
comment on column sys_dict_data.dict_code is '字典编码'; comment on column sys_dict_data.data_dict_eng_name is '字典编码';
comment on column sys_dict_data.dict_sort is '字典排序'; comment on column sys_dict_data.dict_sort is '字典排序';
comment on column sys_dict_data.dict_label is '字典标签'; comment on column sys_dict_data.dict_label is '字典标签';
comment on column sys_dict_data.dict_value is '字典键值'; comment on column sys_dict_data.dict_value is '字典键值';

6
vue-fastapi-backend/sql/ruoyi-fastapi.sql

@ -448,7 +448,7 @@ drop table if exists sys_dict_type;
create table sys_dict_type create table sys_dict_type
( (
dict_id bigint(20) not null auto_increment comment '字典主键', dict_id bigint(20) not null auto_increment comment '字典主键',
dict_name varchar(100) default '' comment '字典名称', data_dict_cn_name varchar(100) default '' comment '字典名称',
dict_type varchar(100) default '' comment '字典类型', dict_type varchar(100) default '' comment '字典类型',
status char(1) default '0' comment '状态(0正常 1停用)', status char(1) default '0' comment '状态(0正常 1停用)',
create_by varchar(64) default '' comment '创建者', create_by varchar(64) default '' comment '创建者',
@ -479,7 +479,7 @@ insert into sys_dict_type values(11, '系统状态', 'sys_common_status', '0
drop table if exists sys_dict_data; drop table if exists sys_dict_data;
create table sys_dict_data create table sys_dict_data
( (
dict_code bigint(20) not null auto_increment comment '字典编码', data_dict_eng_name bigint(20) not null auto_increment comment '字典编码',
dict_sort int(4) default 0 comment '字典排序', dict_sort int(4) default 0 comment '字典排序',
dict_label varchar(100) default '' comment '字典标签', dict_label varchar(100) default '' comment '字典标签',
dict_value varchar(100) default '' comment '字典键值', dict_value varchar(100) default '' comment '字典键值',
@ -493,7 +493,7 @@ create table sys_dict_data
update_by varchar(64) default '' comment '更新者', update_by varchar(64) default '' comment '更新者',
update_time datetime comment '更新时间', update_time datetime comment '更新时间',
remark varchar(500) default null comment '备注', remark varchar(500) default null comment '备注',
primary key (dict_code) primary key (data_dict_eng_name)
) engine=innodb auto_increment=100 comment = '字典数据表'; ) engine=innodb auto_increment=100 comment = '字典数据表';
insert into sys_dict_data values(1, 1, '', '0', 'sys_user_sex', '', '', 'Y', '0', 'admin', sysdate(), '', null, '性别男'); insert into sys_dict_data values(1, 1, '', '0', 'sys_user_sex', '', '', 'Y', '0', 'admin', sysdate(), '', null, '性别男');

22
vue-fastapi-backend/sql/syq20250204版本更新(数据安全模块).sql

@ -47,17 +47,17 @@ CREATE TABLE `meta_security_row` (
SET FOREIGN_KEY_CHECKS = 1; SET FOREIGN_KEY_CHECKS = 1;
-- --
INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (110, 0, '不可见', '0', 'metasecurity_ctr', NULL, 'danger', 'N', '0', 'admin', '2025-01-26 00:07:29', 'admin', '2025-02-03 13:40:02', NULL); INSERT INTO `sys_dict_data` (`data_dict_eng_name`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (110, 0, '不可见', '0', 'metasecurity_ctr', NULL, 'danger', 'N', '0', 'admin', '2025-01-26 00:07:29', 'admin', '2025-02-03 13:40:02', NULL);
INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (111, 0, '可见', '1', 'metasecurity_ctr', NULL, 'primary', 'N', '0', 'admin', '2025-01-26 00:07:52', 'admin', '2025-02-03 13:40:23', NULL); INSERT INTO `sys_dict_data` (`data_dict_eng_name`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (111, 0, '可见', '1', 'metasecurity_ctr', NULL, 'primary', 'N', '0', 'admin', '2025-01-26 00:07:52', 'admin', '2025-02-03 13:40:23', NULL);
INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (112, 1, '用户', '0', 'metasecurity_obj', NULL, 'primary', 'N', '0', 'admin', '2025-01-26 00:48:48', 'admin', '2025-01-26 00:48:48', NULL); INSERT INTO `sys_dict_data` (`data_dict_eng_name`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (112, 1, '用户', '0', 'metasecurity_obj', NULL, 'primary', 'N', '0', 'admin', '2025-01-26 00:48:48', 'admin', '2025-01-26 00:48:48', NULL);
INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (113, 1, '角色', '1', 'metasecurity_obj', NULL, 'warning', 'N', '0', 'admin', '2025-01-26 00:49:08', 'admin', '2025-01-26 00:49:08', NULL); INSERT INTO `sys_dict_data` (`data_dict_eng_name`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (113, 1, '角色', '1', 'metasecurity_obj', NULL, 'warning', 'N', '0', 'admin', '2025-01-26 00:49:08', 'admin', '2025-01-26 00:49:08', NULL);
INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (114, 0, '固定值', '0', 'metasecurity_type', NULL, 'default', 'N', '0', 'admin', '2025-01-26 00:53:04', 'admin', '2025-01-26 00:53:04', NULL); INSERT INTO `sys_dict_data` (`data_dict_eng_name`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (114, 0, '固定值', '0', 'metasecurity_type', NULL, 'default', 'N', '0', 'admin', '2025-01-26 00:53:04', 'admin', '2025-01-26 00:53:04', NULL);
INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (115, 0, '表和字段', '1', 'metasecurity_type', NULL, 'default', 'N', '0', 'admin', '2025-01-26 00:53:12', 'admin', '2025-02-03 14:27:24', NULL); INSERT INTO `sys_dict_data` (`data_dict_eng_name`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (115, 0, '表和字段', '1', 'metasecurity_type', NULL, 'default', 'N', '0', 'admin', '2025-01-26 00:53:12', 'admin', '2025-02-03 14:27:24', NULL);
INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (116, 0, '程序', '2', 'metasecurity_type', NULL, 'default', 'N', '0', 'admin', '2025-01-26 00:53:26', 'admin', '2025-02-03 14:27:32', NULL); INSERT INTO `sys_dict_data` (`data_dict_eng_name`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (116, 0, '程序', '2', 'metasecurity_type', NULL, 'default', 'N', '0', 'admin', '2025-01-26 00:53:26', 'admin', '2025-02-03 14:27:32', NULL);
INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (117, 3, '应用', '2', 'metasecurity_obj', NULL, 'danger', 'N', '0', 'admin', '2025-02-03 14:25:37', 'admin', '2025-02-03 14:25:37', NULL); INSERT INTO `sys_dict_data` (`data_dict_eng_name`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (117, 3, '应用', '2', 'metasecurity_obj', NULL, 'danger', 'N', '0', 'admin', '2025-02-03 14:25:37', 'admin', '2025-02-03 14:25:37', NULL);
INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (105, '控制方向', 'metasecurity_ctr', '0', 'admin', '2025-01-26 00:07:04', 'admin', '2025-01-26 01:19:54', NULL); INSERT INTO `sys_dict_type` (`dict_id`, `data_dict_cn_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (105, '控制方向', 'metasecurity_ctr', '0', 'admin', '2025-01-26 00:07:04', 'admin', '2025-01-26 01:19:54', NULL);
INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (106, '对象类型', 'metasecurity_obj', '0', 'admin', '2025-01-26 00:48:20', 'admin', '2025-01-26 00:48:20', NULL); INSERT INTO `sys_dict_type` (`dict_id`, `data_dict_cn_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (106, '对象类型', 'metasecurity_obj', '0', 'admin', '2025-01-26 00:48:20', 'admin', '2025-01-26 00:48:20', NULL);
INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (107, '控制类型', 'metasecurity_type', '0', 'admin', '2025-01-26 00:52:24', 'admin', '2025-01-26 00:52:24', NULL); INSERT INTO `sys_dict_type` (`dict_id`, `data_dict_cn_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (107, '控制类型', 'metasecurity_type', '0', 'admin', '2025-01-26 00:52:24', 'admin', '2025-01-26 00:52:24', NULL);
-- --
INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2020, '删除', 2014, 4, '', '', '', '', 1, 0, 'F', '0', '0', 'meta:metaSecurityCol:remove', '#', 'admin', '2025-01-15 22:26:08', '', NULL, ''); INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2020, '删除', 2014, 4, '', '', '', '', 1, 0, 'F', '0', '0', 'meta:metaSecurityCol:remove', '#', 'admin', '2025-01-15 22:26:08', '', NULL, '');
INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2019, '修改', 2014, 3, '', '', '', '', 1, 0, 'F', '0', '0', 'meta:metaSecurityCol:edit', '#', 'admin', '2025-01-15 22:26:08', '', NULL, ''); INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2019, '修改', 2014, 3, '', '', '', '', 1, 0, 'F', '0', '0', 'meta:metaSecurityCol:edit', '#', 'admin', '2025-01-15 22:26:08', '', NULL, '');

2
vue-fastapi-frontend/src/api/datastd/std.js

@ -20,7 +20,7 @@ export function listStdCodeCompany() {
return request({ return request({
url: '/default-api/datastd/stdcode/code/list', url: '/default-api/datastd/stdcode/code/list',
method: 'get', method: 'get',
params: {classId:'code',codeType:"company"} params: {classId:'code',cdType:"company"}
}) })
} }
export function listStdCodemap(query) { export function listStdCodemap(query) {

4
vue-fastapi-frontend/src/main.js

@ -13,6 +13,7 @@ import App from './App'
import store from './store' import store from './store'
import router from './router' import router from './router'
import directive from './directive' // directive import directive from './directive' // directive
import useUserStore from '@/store/modules/user'
// 注册指令 // 注册指令
import plugins from './plugins' // plugins import plugins from './plugins' // plugins
@ -81,5 +82,6 @@ app.use(ElementPlus, {
// 支持 large、default、small // 支持 large、default、small
size: Cookies.get('size') || 'default' size: Cookies.get('size') || 'default'
}) })
const userStore = useUserStore()
userStore.getdsSysList()
app.mount('#app') app.mount('#app')

17
vue-fastapi-frontend/src/store/modules/user.js

@ -4,6 +4,7 @@ import { isHttp, isEmpty } from "@/utils/validate"
import defAva from '@/assets/images/profile.jpg' import defAva from '@/assets/images/profile.jpg'
import md5 from 'js-md5' import md5 from 'js-md5'
import cache from "@/plugins/cache.js"; import cache from "@/plugins/cache.js";
import { datasourcetree } from "@/api/meta/metatask";
const useUserStore = defineStore( const useUserStore = defineStore(
@ -15,6 +16,7 @@ const useUserStore = defineStore(
name: '', name: '',
avatar: '', avatar: '',
roles: [], roles: [],
dsSysList:[],
permissions: [] permissions: []
}), }),
actions: { actions: {
@ -32,6 +34,20 @@ const useUserStore = defineStore(
}).catch(error => { }).catch(error => {
reject(error) reject(error)
}) })
})
},
getdsSysList(){
return new Promise((resolve, reject) => {
datasourcetree()
.then(res => {
this.dsSysList = res.rows || [] // 确保为空时不报错
resolve(res)
})
.catch(error => {
this.dsSysList = [] // 请求失败也清空列表,避免残留
reject(error)
})
}) })
}, },
// 获取用户信息 // 获取用户信息
@ -58,6 +74,7 @@ const useUserStore = defineStore(
}) })
}) })
}, },
// 退出系统 // 退出系统
logOut() { logOut() {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {

6
vue-fastapi-frontend/src/views/datastd/main/components/AddEditForm.vue

@ -62,9 +62,9 @@
<el-option label="4" value="4" /> <el-option label="4" value="4" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="代码编号" prop="codeNum"> <el-form-item label="代码编号" prop="cdNo">
<el-input <el-input
v-model="formData.codeNum" v-model="formData.cdNo"
placeholder="请输入代码编号" placeholder="请输入代码编号"
clearable clearable
style="width: 80%;" style="width: 80%;"
@ -198,7 +198,7 @@ const codeSave = () => {
}else{ }else{
const mapCodeItem=child.selections[0] const mapCodeItem=child.selections[0]
formData.value.codeNum=mapCodeItem.codeNum formData.value.cdNo=mapCodeItem.cdNo
formData.value.codeId=mapCodeItem.id formData.value.codeId=mapCodeItem.id
codeVisible.value = false; codeVisible.value = false;

12
vue-fastapi-frontend/src/views/datastd/main/index.vue

@ -247,7 +247,7 @@
</template> </template>
</el-table-column><el-table-column label="" prop="stdSrc" width="150"></el-table-column> </el-table-column><el-table-column label="" prop="stdSrc" width="150"></el-table-column>
<el-table-column label="数据类别" prop="dataClas" width="150"></el-table-column> <el-table-column label="数据类别" prop="dataClas" width="150"></el-table-column>
<el-table-column label="代码编号" prop="codeNum" width="150"> <el-table-column label="代码编号" prop="cdNo" width="150">
<template #default="scope"> <template #default="scope">
<el-link <el-link
type="primary" type="primary"
@ -255,7 +255,7 @@
@click="handleCodeClick(scope.row)" @click="handleCodeClick(scope.row)"
style="cursor: pointer" style="cursor: pointer"
> >
{{ scope.row.codeNum }} {{ scope.row.cdNo }}
</el-link> </el-link>
</template> </template>
</el-table-column> </el-table-column>
@ -462,7 +462,7 @@ const submitTree = async () => {
const handleSelectionChange = (selection) => { const handleSelectionChange = (selection) => {
single.value = selection.length !== 1; single.value = selection.length !== 1;
multiple.value = !selection.length; multiple.value = !selection.length;
ids.value = selection.map((item) => item.id); ids.value = selection.map((item) => item.onum);
stdNums.value = selection.map((item) => item.stdNum); stdNums.value = selection.map((item) => item.stdNum);
}; };
const setDirectoryTree = () => { const setDirectoryTree = () => {
@ -487,7 +487,7 @@ const getList = async () => {
loading.value = false; loading.value = false;
}; };
const handleRemove = (row) => { const handleRemove = (row) => {
const idsToDelete = row.id ? [row.id] : ids.value; const idsToDelete = row.onum ? [row.onum] : ids.value;
const codesToDelete = row.stdNum ? [row.stdNum] : stdNums.value; const codesToDelete = row.stdNum ? [row.stdNum] : stdNums.value;
proxy.$modal proxy.$modal
.confirm( .confirm(
@ -527,7 +527,7 @@ const handleAdd = () => {
}; };
const handleEdit = (row) => { const handleEdit = (row) => {
const id = row.id ? row.id : ids.value.toString(); const id = row.onum ? row.onum : ids.value.toString();
getStdMain(id).then((response) => { getStdMain(id).then((response) => {
selectedRow.value = response.data; selectedRow.value = response.data;
isEdit.value = true; isEdit.value = true;
@ -616,7 +616,7 @@ const handleCollect = (data, e) => {
e.stopPropagation() e.stopPropagation()
addDirectoryCollection({ addDirectoryCollection({
dataAstNo: String(data.dataAstNo), dataAstNo: String(data.dataAstNo),
userId: String(userStore.id), userId: String(userStore.onum),
}).then(() => { }).then(() => {
proxy.$modal.msgSuccess('收藏成功') proxy.$modal.msgSuccess('收藏成功')
setDirectoryTree() setDirectoryTree()

50
vue-fastapi-frontend/src/views/datastd/stdcode/codeComponents.vue

@ -35,11 +35,11 @@
<el-col :span="20" :xs="24"> <el-col :span="20" :xs="24">
<el-form :model="queryParams" ref="queryRef" :inline="true"> <el-form :model="queryParams" ref="queryRef" :inline="true">
<el-form-item label="标准代码编号" prop="codeNum"> <el-form-item label="标准代码编号" prop="cdNo">
<el-input v-model="queryParams.codeNum" placeholder="请输入标准代码编号" clearable style="width: 220px" /> <el-input v-model="queryParams.cdNo" placeholder="请输入标准代码编号" clearable style="width: 220px" />
</el-form-item> </el-form-item>
<el-form-item label="标准代码值" prop="codeName"> <el-form-item label="标准代码值" prop="cdValCnMean">
<el-input v-model="queryParams.codeName" placeholder="请输入标准代码值" clearable style="width: 220px" /> <el-input v-model="queryParams.cdValCnMean" placeholder="请输入标准代码值" clearable style="width: 220px" />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="handleQuery">搜索</el-button> <el-button type="primary" @click="handleQuery">搜索</el-button>
@ -52,8 +52,8 @@
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="代码归属" align="center" prop="sysName" /> <el-table-column label="代码归属" align="center" prop="sysName" />
<el-table-column label="标准代码编号" align="center" prop="codeNum" /> <el-table-column label="标准代码编号" align="center" prop="cdNo" />
<el-table-column label="标准代码名称" align="center" prop="codeName" > <el-table-column label="标准代码名称" align="center" prop="cdValCnMean" >
<template #default="scope"> <template #default="scope">
<el-link <el-link
type="primary" type="primary"
@ -61,15 +61,15 @@
@click="handleCodeClick(scope.row)" @click="handleCodeClick(scope.row)"
style="cursor: pointer" style="cursor: pointer"
> >
{{ scope.row.codeName }} {{ scope.row.cdValCnMean }}
</el-link> </el-link>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="代码状态" align="center" prop="codeStatus"> <el-table-column label="代码状态" align="center" prop="cdValStat">
<template #default="scope"> <template #default="scope">
<dict-tag <dict-tag
:options="std_code_appr" :options="std_code_appr"
:value="scope.row.codeStatus" :value="scope.row.cdValStat"
/> />
</template> </template>
</el-table-column> </el-table-column>
@ -94,7 +94,7 @@
@click="handleMapCodeClick(scope.row)" @click="handleMapCodeClick(scope.row)"
style="cursor: pointer" style="cursor: pointer"
> >
<span v-if="!scope.row.codeMapName||scope.row.codeType=='company'">代码映射</span> <span v-if="!scope.row.codeMapName||scope.row.cdType=='company'">代码映射</span>
<span v-else>{{ scope.row.codeMapName }}</span> <span v-else>{{ scope.row.codeMapName }}</span>
</el-link> </el-link>
</template> </template>
@ -144,9 +144,9 @@ const { proxy } = getCurrentInstance();
const { std_code_status,std_code_appr } = proxy.useDict("std_code_status","std_code_appr"); const { std_code_status,std_code_appr } = proxy.useDict("std_code_status","std_code_appr");
const queryParams = ref({ const queryParams = ref({
codeNum: '', cdNo: '',
codeName: '', cdValCnMean: '',
codeType: '', cdType: '',
sysName: '', sysName: '',
classId:'code', classId:'code',
sysId: '', sysId: '',
@ -188,15 +188,15 @@ const handleNodeClick = (data) => {
const dbResourceOptions = ref(undefined); const dbResourceOptions = ref(undefined);
const form = ref({ const form = ref({
id: '', id: '',
codeNum: '', cdNo: '',
codeName: '', cdValCnMean: '',
codeType: 'company', cdType: 'company',
codeStatus: '', cdValStat: '',
sysName: '', sysName: '',
sysId: undefined sysId: undefined
}); });
const ids = ref([]); const ids = ref([]);
const codeNums = ref([]); const cdNos = ref([]);
// //
const getList = async () => { const getList = async () => {
@ -237,9 +237,9 @@ defineExpose({
}); });
const resetQuery = () => { const resetQuery = () => {
queryParams.value = { queryParams.value = {
codeNum: '', cdNo: '',
codeName: '', cdValCnMean: '',
codeType: '', cdType: '',
sysName: '', sysName: '',
sysId: '', sysId: '',
pageNum: 1, pageNum: 1,
@ -252,10 +252,10 @@ const handleAdd = () => {
dialogTitle.value = "新增标准代码"; dialogTitle.value = "新增标准代码";
form.value = { form.value = {
id: '', id: '',
codeNum: '', cdNo: '',
codeName: '', cdValCnMean: '',
codeType: '', cdType: '',
codeStatus: '', cdValStat: '',
sysName: '', sysName: '',
sysId: '', sysId: '',
}; };

99
vue-fastapi-frontend/src/views/datastd/stdcode/codeItem.vue

@ -4,15 +4,15 @@
<el-row :gutter="20"> <el-row :gutter="20">
<!-- 代码编号 --> <!-- 代码编号 -->
<el-col :span="8"> <el-col :span="8">
<el-form-item label="代码编号" prop="codeNum"> <el-form-item label="代码编号" prop="cdNo">
<el-input v-model="form.codeNum" placeholder="请输入代码编号" /> <el-input v-model="form.cdNo" placeholder="请输入代码编号" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- 代码名称 --> <!-- 代码名称 -->
<el-col :span="8"> <el-col :span="8">
<el-form-item label="代码名称" prop="codeName"> <el-form-item label="代码名称" prop="cdValCnMean">
<el-input v-model="form.codeName" placeholder="请输入代码名称" /> <el-input v-model="form.cdValCnMean" placeholder="请输入代码名称" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -20,9 +20,9 @@
<el-row :gutter="20"> <el-row :gutter="20">
<!-- 代码类型 --> <!-- 代码类型 -->
<el-col :span="8"> <el-col :span="8">
<el-form-item label="代码类型" prop="codeType"> <el-form-item label="代码类型" prop="cdType">
<el-select <el-select
v-model="form.codeType" v-model="form.cdType"
placeholder="请选择代码类型" placeholder="请选择代码类型"
maxlength="30" maxlength="30"
@change="changeCodeType" @change="changeCodeType"
@ -39,9 +39,9 @@
<!-- 归属系统 --> <!-- 归属系统 -->
<el-col :span="8" v-show="showSys"> <el-col :span="8" v-show="showSys">
<el-form-item label="归属系统" prop="sysId"> <el-form-item label="归属系统" prop="srcSys">
<el-select <el-select
v-model="form.sysId" v-model="form.srcSys"
placeholder="请选择归属系统" placeholder="请选择归属系统"
maxlength="30" maxlength="30"
@change="dataChange" @change="dataChange"
@ -66,9 +66,9 @@
> >
<el-option <el-option
v-for="dict in companyist" v-for="dict in companyist"
:key="dict.id" :key="dict.onum"
:label="dict.codeName" :label="dict.cdValCnMean"
:value="dict.id" :value="dict.onum"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -79,9 +79,9 @@
<!-- 查询表单 --> <!-- 查询表单 -->
<!-- <div class="query-form-container"> <!-- <div class="query-form-container">
<el-form :model="queryParams" ref="queryRef" :inline="true"> <el-form :model="queryParams" ref="queryRef" :inline="true">
<el-form-item label="代码值/名称" prop="codeNum"> <el-form-item label="代码值/名称" prop="cdNo">
<el-input <el-input
v-model="queryParams.codeNum" v-model="queryParams.cdNo"
placeholder="请输入代码编号" placeholder="请输入代码编号"
clearable clearable
style="width: 220px" style="width: 220px"
@ -133,36 +133,36 @@
<el-table-column <el-table-column
label="代码值" label="代码值"
align="center" align="center"
prop="codeNum" prop="cdNo"
:editable="true" :editable="true"
> >
<template #default="scope"> <template #default="scope">
<el-input <el-input
v-if="scope.row.isEditing" v-if="scope.row.isEditing"
v-model="scope.row.codeNum" v-model="scope.row.cdNo"
size="small" size="small"
placeholder="请输入代码值" placeholder="请输入代码值"
@blur="handleBlur(scope.row)" @blur="handleBlur(scope.row)"
/> />
<span v-else>{{ scope.row.codeNum }}</span> <span v-else>{{ scope.row.cdNo }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="代码含义" label="代码含义"
align="center" align="center"
prop="codeName" prop="cdValCnMean"
:editable="true" :editable="true"
> >
<template #default="scope"> <template #default="scope">
<el-input <el-input
v-if="scope.row.isEditing" v-if="scope.row.isEditing"
v-model="scope.row.codeName" v-model="scope.row.cdValCnMean"
size="small" size="small"
placeholder="请输入代码含义" placeholder="请输入代码含义"
@blur="handleBlur(scope.row)" @blur="handleBlur(scope.row)"
/> />
<span v-else>{{ scope.row.codeName }}</span> <span v-else>{{ scope.row.cdValCnMean }}</span>
</template> </template>
</el-table-column> </el-table-column>
@ -179,8 +179,8 @@
@click="handleCodeClick(scope.row, scope.$index)" @click="handleCodeClick(scope.row, scope.$index)"
style="cursor: pointer" style="cursor: pointer"
> >
<span v-if="!scope.row.codeMapName">代码映射</span> <span v-if="!scope.row.codeMapId">代码映射</span>
<span v-else>{{ scope.row.codeMapName }}</span> <span v-else>{{ scope.row.codeMapCn }}</span>
</el-link> </el-link>
</template> </template>
</el-table-column> </el-table-column>
@ -215,29 +215,27 @@ const props = defineProps({
}); });
const queryParams = ref({ const queryParams = ref({
codeNum: '', cdNo: '',
parentId: props.rowData.id, parentId: props.rowData.onum,
codeName: '', cdValCnMean: '',
codeType: '', cdType: '',
sysName: '',
classId: 'codeItem', classId: 'codeItem',
sysId: '', srcSys: '',
pageNum: 1, pageNum: 1,
pageSize: 100 pageSize: 100
}); });
const form = ref({ const form = ref({
id: "", onum: "",
codeNum: '', cdNo: '',
codeName: '', cdValCnMean: '',
codeType: 'company', cdType: 'company',
codeStatus: '', cdValStat: '',
sysName: '',
classId: 'code', classId: 'code',
codeMapId: '', codeMapId: '',
codeMapName: '', codeMapName: '',
codeMapNum: '', codeMapNum: '',
sysId: undefined srcSys: undefined
}); });
const handleCancel2 = () => { const handleCancel2 = () => {
mapVisible.value = false; mapVisible.value = false;
@ -251,32 +249,31 @@ const mapVisible = ref(false);
const multiple = ref(false); const multiple = ref(false);
function dataChange(data) { function dataChange(data) {
// dbResourceOldList name // dbResourceOldList name
const selectedItem = props.dbResourceOldList.find(item => item.id === data); const selectedItem = props.dbResourceOldList.find(item => item.onum === data);
if (selectedItem) { if (selectedItem) {
// name form.value.dbRName // name form.value.dbRName
form.value.sysName = selectedItem.name; form.value.sysName = selectedItem.name;
} else { } else {
// form.value.dbRName // form.value.dbRName
form.value.sysName = '';
} }
} }
function mapChange(data) { function mapChange(data) {
const selectedItem = companyist.value.find(item => item.id === data); const selectedItem = companyist.value.find(item => item.onum === data);
console.log("selectmap",selectedItem,data) console.log("selectmap",selectedItem,data)
if (selectedItem) { if (selectedItem) {
// name form.value.dbRName // name form.value.dbRName
form.value.codeMapName = selectedItem.codeName; form.value.codeMapName = selectedItem.cdValCnMean;
form.value.codeMapNum = selectedItem.codeNum; form.value.codeMapNum = selectedItem.cdNo;
} else { } else {
// form.value.codeMapName // form.value.codeMapName
form.value.codeMapName = ''; form.value.codeMapName = '';
} }
} }
// //
if (props.rowData.id) { if (props.rowData.onum) {
form.value = { ...props.rowData }; form.value = { ...props.rowData };
if (form.value.codeType == "sys") { if (form.value.cdType == "sys") {
showSys.value = true; showSys.value = true;
} else { } else {
showSys.value = false; showSys.value = false;
@ -311,8 +308,8 @@ const getcompanyList = async () => {
companyist.value = response.rows; companyist.value = response.rows;
}; };
const formRules = reactive({ const formRules = reactive({
codeNum: [{ required: true, message: "请输入代码编号", trigger: "blur" }], cdNo: [{ required: true, message: "请输入代码编号", trigger: "blur" }],
codeName: [{ required: true, message: "请输入代码名称", trigger: "blur" }] cdValCnMean: [{ required: true, message: "请输入代码名称", trigger: "blur" }]
}); });
const handleCodeClick = (row,index) => { const handleCodeClick = (row,index) => {
selectedRow.value=row selectedRow.value=row
@ -335,9 +332,9 @@ const handleSave2 =async () => {
}else{ }else{
const mapCodeItem=child.selections[0] const mapCodeItem=child.selections[0]
if (selectedRow.value) { if (selectedRow.value) {
tableData.value[selectedRowIndex.value].codeMapId = mapCodeItem.id; tableData.value[selectedRowIndex.value].codeMapId = mapCodeItem.onum;
tableData.value[selectedRowIndex.value].codeMapName = mapCodeItem.codeName; tableData.value[selectedRowIndex.value].codeMapName = mapCodeItem.cdValCnMean;
tableData.value[selectedRowIndex.value].codeMapNum = mapCodeItem.codeNum; tableData.value[selectedRowIndex.value].codeMapNum = mapCodeItem.cdNo;
tableData.value = [...tableData.value]; // This ensures reactivity is triggered tableData.value = [...tableData.value]; // This ensures reactivity is triggered
@ -353,7 +350,7 @@ const handleSave = async () => {
try { try {
let response; let response;
if (props.rowData.id) { if (props.rowData.onum) {
// ID updateStdCode // ID updateStdCode
response = await updateStdCode(params); response = await updateStdCode(params);
if (response.success) { if (response.success) {
@ -418,17 +415,15 @@ const handleRemove = () => {
function changeCodeType(data) { function changeCodeType(data) {
if (data != "company") { if (data != "company") {
showSys.value = true; showSys.value = true;
form.value.sysName = ""; form.value.srcSys = undefined;
form.value.sysId = undefined;
} else { } else {
showSys.value = false; showSys.value = false;
form.value.sysName = "公司级"; form.value.srcSys = 10000;
form.value.sysId = 10000;
} }
} }
// //
const handleAdd = () => { const handleAdd = () => {
const newRow = {id:'',classId: 'codeItem',parentId: props.rowData.id,codeNum: '', codeName: '', codeMapId: '', const newRow = {onum:'',classId: 'codeItem',parentId: props.rowData.onum,cdNo: '', cdValCnMean: '', codeMapId: '',
codeMapName: '', codeMapName: '',
codeMapNum: '', isEditing: true }; codeMapNum: '', isEditing: true };
tableData.value.push(newRow); tableData.value.push(newRow);

44
vue-fastapi-frontend/src/views/datastd/stdcode/codeItemCommon.vue

@ -4,17 +4,20 @@
<el-row :gutter="20"> <el-row :gutter="20">
<!-- 代码归属 --> <!-- 代码归属 -->
<el-col :span="8"> <el-col :span="8">
<span class="info-text">代码归属: {{ form.sysName || '暂无代码归属' }}</span> <span class="info-text" v-if="form.cdType === 'company'">代码归属 :公司级</span>
<span class="info-text" v-else-if="form.cdType === 'sys'">
代码归属 :{{ getSrcSysName(form.srcSys) }}
</span>
</el-col> </el-col>
<!-- 代码编号 --> <!-- 代码编号 -->
<el-col :span="8"> <el-col :span="8">
<span class="info-text">代码编号: {{ form.codeNum || '暂无代码编号' }}</span> <span class="info-text">代码编号: {{ form.cdNo || '暂无代码编号' }}</span>
</el-col> </el-col>
<!-- 代码名称 --> <!-- 代码名称 -->
<el-col :span="8"> <el-col :span="8">
<span class="info-text">代码名称: {{ form.codeName || '暂无代码名称' }}</span> <span class="info-text">代码名称: {{ form.cdValCnMean || '暂无代码名称' }}</span>
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
@ -23,9 +26,9 @@
<!-- 查询表单 --> <!-- 查询表单 -->
<div class="query-form-container"> <div class="query-form-container">
<el-form :model="queryParams" ref="queryRef" :inline="true"> <el-form :model="queryParams" ref="queryRef" :inline="true">
<el-form-item label="代码值/名称" prop="codeNum"> <el-form-item label="代码值/名称" prop="cdNo">
<el-input <el-input
v-model="queryParams.codeNum" v-model="queryParams.cdNo"
placeholder="请输入标准代码编号" placeholder="请输入标准代码编号"
clearable clearable
style="width: 220px" style="width: 220px"
@ -54,7 +57,7 @@
<el-table-column <el-table-column
label="代码值" label="代码值"
align="center" align="center"
prop="codeNum" prop="cdNo"
:editable="true" :editable="true"
> >
@ -63,7 +66,7 @@
<el-table-column <el-table-column
label="代码含义" label="代码含义"
align="center" align="center"
prop="codeName" prop="cdValCnMean"
:editable="true" :editable="true"
> >
@ -84,28 +87,35 @@ const props = defineProps({
codeId: { codeId: {
type: Object, type: Object,
required: false required: false
},
dbResourceOldList: {
type: Object,
required: false
} }
}); });
console.log(props.codeNum) console.log(props.cdNo)
const queryParams = ref({ const queryParams = ref({
codeNum: '', cdNo: '',
parentId: props.codeId, parentId: props.codeId,
codeName: '', cdValCnMean: '',
codeType: '', cdType: '',
sysName: '', sysName: '',
classId: 'codeItem', classId: 'codeItem',
sysId: '', sysId: '',
pageNum: 1, pageNum: 1,
pageSize: 100 pageSize: 100
}); });
const getSrcSysName = (id) => {
const match = props.dbResourceOldList.find(item => item.id === id);
return match ? match.name : id;
};
const form = ref({ const form = ref({
id: "", id: "",
codeNum: '', cdNo: '',
codeName: '', cdValCnMean: '',
codeType: 'company', cdType: 'company',
codeStatus: '', cdValStat: '',
sysName: '', sysName: '',
classId: 'code', classId: 'code',
codeMapId: '', codeMapId: '',
@ -124,7 +134,7 @@ const multiple = ref(false);
// //
if (props.codeId) { if (props.codeId) {
form.value = { ...props.rowData }; form.value = { ...props.rowData };
if (form.value.codeType == "sys") { if (form.value.cdType == "sys") {
showSys.value = true; showSys.value = true;
} else { } else {
showSys.value = false; showSys.value = false;

121
vue-fastapi-frontend/src/views/datastd/stdcode/codeMap.vue

@ -10,17 +10,20 @@
<el-row :gutter="20"> <el-row :gutter="20">
<!-- 代码归属 --> <!-- 代码归属 -->
<el-col :span="8"> <el-col :span="8">
<span class="info-text">代码归属: {{ form.sysName || '暂无代码归属' }}</span> <span class="info-text" v-if="form.cdType === 'company'">代码归属 :公司级</span>
<span class="info-text" v-else-if="form.cdType === 'sys'">
代码归属 :{{ getSrcSysName(form.srcSys) }}
</span>
</el-col> </el-col>
<!-- 代码编号 --> <!-- 代码编号 -->
<el-col :span="8"> <el-col :span="8">
<span class="info-text">代码编号: {{ form.codeNum || '暂无代码编号' }}</span> <span class="info-text">代码编号: {{ form.cdNo || '暂无代码编号' }}</span>
</el-col> </el-col>
<!-- 代码名称 --> <!-- 代码名称 -->
<el-col :span="8"> <el-col :span="8">
<span class="info-text">代码名称: {{ form.codeName || '暂无代码名称' }}</span> <span class="info-text">代码名称: {{ form.cdValCnMean || '暂无代码名称' }}</span>
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
@ -40,69 +43,24 @@
style="width: 100%" style="width: 100%"
> >
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column <el-table-column label="源系统" align="center" prop="targetSysName">
label="源系统" <template #default="scope">
align="center" <span >
prop="targetSysName" {{
> getSrcSysName(scope.row.targetSysName)
}}
</el-table-column> </span>
<el-table-column </template>
label="系统级代码编号"
align="center"
prop="targetCodeNum"
>
</el-table-column>
<el-table-column
label="系统级代码名称"
align="center"
prop="targetCodeName"
>
</el-table-column>
<el-table-column
label="系统级代码"
align="center"
prop="targetCodeNumItem"
>
</el-table-column>
<el-table-column
label="系统级代码含义"
align="center"
prop="targetCodeNameItem"
>
</el-table-column>
<el-table-column
label="公司级代码名称"
align="center"
prop="resourceCodeNum"
>
</el-table-column>
<el-table-column
label="公司级代码编号"
align="center"
prop="resourceCodeName"
>
</el-table-column>
<el-table-column
label="公司级代码"
align="center"
prop="resourceCodeNumItem"
>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="系统级代码编号" align="center" prop="targetCodeNum" />
label="公司级代码含义" <el-table-column label="系统级代码名称" align="center" prop="targetCodeName" />
align="center" <el-table-column label="系统级代码" align="center" prop="targetCodeNumItem" />
prop="resourceCodeNameItem" <el-table-column label="系统级代码含义" align="center" prop="targetCodeNameItem" />
> <el-table-column label="公司级代码编号" align="center" prop="resourceCodeNum" />
<el-table-column label="公司级代码名称" align="center" prop="resourceCodeName" />
<el-table-column label="公司级代码" align="center" prop="resourceCodeNumItem" />
<el-table-column label="公司级代码含义" align="center" prop="resourceCodeNameItem" />
</el-table-column>
</el-table> </el-table>
</el-tab-pane> </el-tab-pane>
@ -115,7 +73,10 @@ import treeNodeg6 from "./treeNodeg6.vue";
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
const { std_code_status } = proxy.useDict("std_code_status"); const { std_code_status } = proxy.useDict("std_code_status");
import useUserStore from '@/store/modules/user'; //
const userStore = useUserStore(); //
const dsSysList = userStore.dsSysList; // 访
const props = defineProps({ const props = defineProps({
codeId: { codeId: {
type: Object, type: Object,
@ -123,13 +84,16 @@ const props = defineProps({
}, },
}); });
const getSrcSysName = (id) => {
const match = dsSysList.find(item => item.id === id);
return match ? match.name : id;
};
const queryParams = ref({ const queryParams = ref({
codeNum: '', cdNo: '',
parentId: props.codeId, parentId: props.codeId,
codeName: '', cdValCnMean: '',
codeType: '', cdType: '',
sysName: '', sysName: '',
classId: 'codeItem', classId: 'codeItem',
sysId: '', sysId: '',
@ -139,16 +103,15 @@ const queryParams = ref({
const form = ref({ const form = ref({
id: "", id: "",
codeNum: '', cdNo: '',
codeName: '', cdValCnMean: '',
codeType: 'company', cdType: 'company',
codeStatus: '', cdValStat: '',
sysName: '', sysName: '',
classId: 'code', classId: 'code',
codeMapId: '', codeMapId: '',
codeMapName: '', codeMapName: '',
codeMapNum: '', codeMapNum: '',
sysId: undefined
}); });
const activeName = ref("1"); // const activeName = ref("1"); //
const tableData = ref([]); const tableData = ref([]);
@ -161,7 +124,7 @@ const multiple = ref(false);
// //
if (props.codeId) { if (props.codeId) {
form.value = { ...props.rowData }; form.value = { ...props.rowData };
if (form.value.codeType == "sys") { if (form.value.cdType == "sys") {
showSys.value = true; showSys.value = true;
} else { } else {
showSys.value = false; showSys.value = false;
@ -232,11 +195,11 @@ onMounted(() => {
nextTick(() => { nextTick(() => {
getStdCode(props.codeId).then(response => { getStdCode(props.codeId).then(response => {
form.value = response.data; form.value = response.data;
queryParams.value.codeType=form.value.codeType queryParams.value.cdType=form.value.cdType
mockData.value.variableValue=form.value.codeType == "sys"?"系统级":"公司级" mockData.value.variableValue=form.value.cdType == "sys"?"系统级":"公司级"
mockData.value.name=form.value.codeName mockData.value.name=form.value.cdValCnMean
mockData.value.label=form.value.codeNum mockData.value.label=form.value.cdNo
getStdCodeMap(form.value.id).then(response => { getStdCodeMap(form.value.onum).then(response => {
mockData.value.children = response.data.children; mockData.value.children = response.data.children;
tableData.value = response.data.tableData; tableData.value = response.data.tableData;
if (treeGraph.value) { if (treeGraph.value) {

10
vue-fastapi-frontend/src/views/datastd/stdcode/codeStdMap.vue

@ -1,6 +1,6 @@
<template> <template>
<el-tabs v-model="activeName" style="margin-top: 8px"> <el-tabs v-model="activeName" style="margin-top: 8px">
<el-tab-pane label="图谱" name="1"> <el-tab-pane label="图谱1" name="1">
<treeNodeg6 ref="treeGraph" :mockData="mockData" /> <treeNodeg6 ref="treeGraph" :mockData="mockData" />
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="表格" name="2"> <el-tab-pane label="表格" name="2">
@ -12,8 +12,8 @@
style="width: 100%" style="width: 100%"
> >
<el-table-column label="代码编号" align="center" prop="codeNum" /> <el-table-column label="代码编号" align="center" prop="cdNo" />
<el-table-column label="代码名称" align="center" prop="codeName" /> <el-table-column label="代码名称" align="center" prop="cdValCnMean" />
<el-table-column label="引用标准编号" align="center" prop="stdNum" /> <el-table-column label="引用标准编号" align="center" prop="stdNum" />
<el-table-column label="引用标准英文名" align="center" prop="stdCode" /> <el-table-column label="引用标准英文名" align="center" prop="stdCode" />
<el-table-column label="引用标准中文名" align="center" prop="stdName" /> <el-table-column label="引用标准中文名" align="center" prop="stdName" />
@ -46,9 +46,9 @@ const props = defineProps({
// mocked data // mocked data
const mockData = ref({ const mockData = ref({
id: "g1", id: "g1",
name: props.rowData.codeName, name: props.rowData.cdValCnMean,
count: 123456, count: 123456,
label: props.rowData.codeNum, label: props.rowData.cdNo,
rate: 1.0, rate: 1.0,
status: "G", status: "G",
variableValue: "代码", variableValue: "代码",

83
vue-fastapi-frontend/src/views/datastd/stdcode/index.vue

@ -35,11 +35,11 @@
<el-col :span="20" :xs="24"> <el-col :span="20" :xs="24">
<el-form :model="queryParams" ref="queryRef" :inline="true"> <el-form :model="queryParams" ref="queryRef" :inline="true">
<el-form-item label="标准代码编号" prop="codeNum"> <el-form-item label="标准代码编号" prop="cdNo">
<el-input v-model="queryParams.codeNum" placeholder="请输入标准代码编号" clearable style="width: 220px" /> <el-input v-model="queryParams.cdNo" placeholder="请输入标准代码编号" clearable style="width: 220px" />
</el-form-item> </el-form-item>
<el-form-item label="标准代码值" prop="codeName"> <el-form-item label="标准代码值" prop="cdValCnMean">
<el-input v-model="queryParams.codeName" placeholder="请输入标准代码值" clearable style="width: 220px" /> <el-input v-model="queryParams.cdValCnMean" placeholder="请输入标准代码值" clearable style="width: 220px" />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="handleQuery">搜索</el-button> <el-button type="primary" @click="handleQuery">搜索</el-button>
@ -83,9 +83,17 @@
<el-table v-loading="loading" :data="tableData" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="tableData" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="代码归属" align="center" prop="sysName" /> <el-table-column label="代码归属" align="center" prop="cdType">
<el-table-column label="标准代码编号" align="center" prop="codeNum" /> <template #default="scope">
<el-table-column label="标准代码名称" align="center" prop="codeName" > <span v-if="scope.row.cdType === 'company'">公司级</span>
<span v-else-if="scope.row.cdType === 'sys'">
{{
getSrcSysName(scope.row.srcSys)
}}
</span>
</template>
</el-table-column> <el-table-column label="标准代码编号" align="center" prop="cdNo" />
<el-table-column label="标准代码名称" align="center" prop="cdValCnMean" >
<template #default="scope"> <template #default="scope">
<el-link <el-link
type="primary" type="primary"
@ -93,15 +101,15 @@
@click="handleCodeClick(scope.row)" @click="handleCodeClick(scope.row)"
style="cursor: pointer" style="cursor: pointer"
> >
{{ scope.row.codeName }} {{ scope.row.cdValCnMean }}
</el-link> </el-link>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="代码状态" align="center" prop="codeStatus"> <el-table-column label="代码状态" align="center" prop="cdValStat">
<template #default="scope"> <template #default="scope">
<dict-tag <dict-tag
:options="std_code_appr" :options="std_code_appr"
:value="scope.row.codeStatus" :value="scope.row.cdValStat"
/> />
</template> </template>
</el-table-column> </el-table-column>
@ -126,7 +134,7 @@
@click="handleMapCodeClick(scope.row)" @click="handleMapCodeClick(scope.row)"
style="cursor: pointer" style="cursor: pointer"
> >
<span v-if="!scope.row.codeMapName||scope.row.codeType=='company'">代码映射</span> <span v-if="!scope.row.codeMapName||scope.row.cdType=='company'">代码映射</span>
<span v-else>{{ scope.row.codeMapName }}</span> <span v-else>{{ scope.row.codeMapName }}</span>
</el-link> </el-link>
</template> </template>
@ -156,7 +164,7 @@
</el-dialog> </el-dialog>
<el-dialog v-model="codeVisible" width="1000px"> <el-dialog v-model="codeVisible" width="1000px">
<!-- 引入第二个页面组件 --> <!-- 引入第二个页面组件 -->
<code-item-common ref="showCodeDialog" v-if="codeVisible" :codeId="codeMapId"/> <code-item-common ref="showCodeDialog" v-if="codeVisible" :codeId="codeMapId" :dbResourceOldList="dbResourceOldList"/>
</el-dialog> </el-dialog>
<el-dialog v-model="mapVisible" width="1200px"> <el-dialog v-model="mapVisible" width="1200px">
@ -186,9 +194,9 @@ const { proxy } = getCurrentInstance();
const { std_code_status,std_code_appr } = proxy.useDict("std_code_status","std_code_appr"); const { std_code_status,std_code_appr } = proxy.useDict("std_code_status","std_code_appr");
const queryParams = ref({ const queryParams = ref({
codeNum: '', cdNo: '',
codeName: '', cdValCnMean: '',
codeType: '', cdType: '',
sysName: '', sysName: '',
classId:'code', classId:'code',
sysId: '', sysId: '',
@ -211,6 +219,11 @@ const handlePagination = (pageNum, pageSize) => {
queryParams.value.pageSize = pageSize; queryParams.value.pageSize = pageSize;
handleQuery(); handleQuery();
}; };
const getSrcSysName = (id) => {
const match = dbResourceOldList.value.find(item => item.id === id);
return match ? match.name : id;
};
const filterNode = (value, data) => { const filterNode = (value, data) => {
if (!value) return true; if (!value) return true;
return data.name.indexOf(value) !== -1; return data.name.indexOf(value) !== -1;
@ -220,7 +233,7 @@ const handleNodeClick = (data) => {
queryParams.value.sysId =undefined; queryParams.value.sysId =undefined;
}else{ }else{
queryParams.value.sysId = data.id; queryParams.value.sysId = data.onum;
} }
@ -230,15 +243,15 @@ const handleNodeClick = (data) => {
const dbResourceOptions = ref(undefined); const dbResourceOptions = ref(undefined);
const form = ref({ const form = ref({
id: '', id: '',
codeNum: '', cdNo: '',
codeName: '', cdValCnMean: '',
codeType: 'company', cdType: 'company',
codeStatus: '', cdValStat: '',
sysName: '', sysName: '',
sysId: undefined sysId: undefined
}); });
const ids = ref([]); const ids = ref([]);
const codeNums = ref([]); const cdNos = ref([]);
// //
const getList = async () => { const getList = async () => {
@ -255,12 +268,12 @@ const codeMapId = ref(null);
// //
const handleCodeClick = (row) => { const handleCodeClick = (row) => {
codeMapId.value=row.id codeMapId.value=row.onum
codeVisible.value = true; codeVisible.value = true;
}; };
const handleMapCodeClick = (row) => { const handleMapCodeClick = (row) => {
codeMapId.value=row.id codeMapId.value=row.onum
mapVisible.value = true; mapVisible.value = true;
}; };
@ -270,8 +283,8 @@ const handleMapCodeStdClick = (row) => {
}; };
function handleSelectionChange(selection) { function handleSelectionChange(selection) {
ids.value = selection.map(item => item.id); ids.value = selection.map(item => item.onum);
codeNums.value = selection.map(item => item.codeNum); cdNos.value = selection.map(item => item.cdNo);
single.value = ids.value.length !== 1; single.value = ids.value.length !== 1;
multiple.value = !ids.value.length > 0; multiple.value = !ids.value.length > 0;
} }
@ -283,9 +296,9 @@ const handleQuery = () => {
const resetQuery = () => { const resetQuery = () => {
queryParams.value = { queryParams.value = {
codeNum: '', cdNo: '',
codeName: '', cdValCnMean: '',
codeType: '', cdType: '',
sysName: '', sysName: '',
sysId: '', sysId: '',
pageNum: 1, pageNum: 1,
@ -298,10 +311,10 @@ const handleAdd = () => {
dialogTitle.value = "新增标准代码"; dialogTitle.value = "新增标准代码";
form.value = { form.value = {
id: '', id: '',
codeNum: '', cdNo: '',
codeName: '', cdValCnMean: '',
codeType: '', cdType: '',
codeStatus: '', cdValStat: '',
sysName: '', sysName: '',
sysId: '', sysId: '',
}; };
@ -310,7 +323,7 @@ const handleAdd = () => {
}; };
const handleEdit = (row) => { const handleEdit = (row) => {
const id = row.id ?row.id: ids.value.toString() const id = row.onum ?row.onum: ids.value.toString()
dialogTitle.value = "编辑标准代码"; dialogTitle.value = "编辑标准代码";
getStdCode(id).then(response => { getStdCode(id).then(response => {
form.value = response.data; form.value = response.data;
@ -321,8 +334,8 @@ const handleEdit = (row) => {
}; };
const handleRemove = (row) => { const handleRemove = (row) => {
const idsToDelete = row.id ? [row.id] : ids.value; const idsToDelete = row.onum ? [row.onum] : ids.value;
const codesToDelete = row.codeNum ? [row.codeNum] : codeNums.value; const codesToDelete = row.cdNo ? [row.cdNo] : cdNos.value;
proxy.$modal.confirm('是否确认删除ID为"' + codesToDelete.toString() + '"的数据项?').then(function () { proxy.$modal.confirm('是否确认删除ID为"' + codesToDelete.toString() + '"的数据项?').then(function () {
return deleteStdCode(idsToDelete.toString()); return deleteStdCode(idsToDelete.toString());
}).then((res) => { }).then((res) => {

6
vue-fastapi-frontend/src/views/datastd/stddict/AddEditForm.vue

@ -1,9 +1,9 @@
<template> <template>
<el-dialog width="500px" append-to-body :title="isEdit ? '修改数据字典' : '新增数据字典'" v-model="visible" @close="handleClose"> <el-dialog width="500px" append-to-body :title="isEdit ? '修改数据字典' : '新增数据字典'" v-model="visible" @close="handleClose">
<el-form :model="formData" ref="formRef" label-width="120px" :rules="formRules"> <el-form :model="formData" ref="formRef" label-width="120px" :rules="formRules">
<el-form-item label="字典归属" prop="dictLevel"> <el-form-item label="字典归属" prop="dataDictVest">
<el-select <el-select
v-model="formData.dictLevel" v-model="formData.dataDictVest"
placeholder="请选择字典归属" placeholder="请选择字典归属"
maxlength="30" maxlength="30"
@change="changeCodeType" @change="changeCodeType"
@ -144,7 +144,7 @@ const props = defineProps({
}); });
// //
const formRules = ref({ const formRules = ref({
dictLevel: [{ required: true, message: '请选择字典归属', trigger: 'blur' }], dataDictVest: [{ required: true, message: '请选择字典归属', trigger: 'blur' }],
dictType: [{ required: true, message: '请选择数据字典类型', trigger: 'blur' }], dictType: [{ required: true, message: '请选择数据字典类型', trigger: 'blur' }],
bussDeptId: [{ required: true, message: '请选择业务认责部门', trigger: 'blur' }], bussDeptId: [{ required: true, message: '请选择业务认责部门', trigger: 'blur' }],
techDeptId: [{ required: true, message: '请选择技术认责部门', trigger: 'blur' }], techDeptId: [{ required: true, message: '请选择技术认责部门', trigger: 'blur' }],

60
vue-fastapi-frontend/src/views/datastd/stddict/codeItem.vue

@ -4,15 +4,15 @@
<el-row :gutter="20"> <el-row :gutter="20">
<!-- 标准代码编号 --> <!-- 标准代码编号 -->
<el-col :span="8"> <el-col :span="8">
<el-form-item label="标准代码编号" prop="codeNum"> <el-form-item label="标准代码编号" prop="cdNo">
<el-input v-model="form.codeNum" placeholder="请输入标准代码编号" /> <el-input v-model="form.cdNo" placeholder="请输入标准代码编号" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- 标准代码名称 --> <!-- 标准代码名称 -->
<el-col :span="8"> <el-col :span="8">
<el-form-item label="标准代码名称" prop="codeName"> <el-form-item label="标准代码名称" prop="cdValCnMean">
<el-input v-model="form.codeName" placeholder="请输入标准代码名称" /> <el-input v-model="form.cdValCnMean" placeholder="请输入标准代码名称" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -20,9 +20,9 @@
<el-row :gutter="20"> <el-row :gutter="20">
<!-- 标准代码类型 --> <!-- 标准代码类型 -->
<el-col :span="8"> <el-col :span="8">
<el-form-item label="标准代码类型" prop="codeType"> <el-form-item label="标准代码类型" prop="cdType">
<el-select <el-select
v-model="form.codeType" v-model="form.cdType"
placeholder="请选择标准代码类型" placeholder="请选择标准代码类型"
maxlength="30" maxlength="30"
@change="changeCodeType" @change="changeCodeType"
@ -67,7 +67,7 @@
<el-option <el-option
v-for="dict in companyist" v-for="dict in companyist"
:key="dict.id" :key="dict.id"
:label="dict.codeName" :label="dict.cdValCnMean"
:value="dict.id" :value="dict.id"
></el-option> ></el-option>
</el-select> </el-select>
@ -79,9 +79,9 @@
<!-- 查询表单 --> <!-- 查询表单 -->
<!-- <div class="query-form-container"> <!-- <div class="query-form-container">
<el-form :model="queryParams" ref="queryRef" :inline="true"> <el-form :model="queryParams" ref="queryRef" :inline="true">
<el-form-item label="代码值/名称" prop="codeNum"> <el-form-item label="代码值/名称" prop="cdNo">
<el-input <el-input
v-model="queryParams.codeNum" v-model="queryParams.cdNo"
placeholder="请输入标准代码编号" placeholder="请输入标准代码编号"
clearable clearable
style="width: 220px" style="width: 220px"
@ -133,36 +133,36 @@
<el-table-column <el-table-column
label="代码值" label="代码值"
align="center" align="center"
prop="codeNum" prop="cdNo"
:editable="true" :editable="true"
> >
<template #default="scope"> <template #default="scope">
<el-input <el-input
v-if="scope.row.isEditing" v-if="scope.row.isEditing"
v-model="scope.row.codeNum" v-model="scope.row.cdNo"
size="small" size="small"
placeholder="请输入代码值" placeholder="请输入代码值"
@blur="handleBlur(scope.row)" @blur="handleBlur(scope.row)"
/> />
<span v-else>{{ scope.row.codeNum }}</span> <span v-else>{{ scope.row.cdNo }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="代码含义" label="代码含义"
align="center" align="center"
prop="codeName" prop="cdValCnMean"
:editable="true" :editable="true"
> >
<template #default="scope"> <template #default="scope">
<el-input <el-input
v-if="scope.row.isEditing" v-if="scope.row.isEditing"
v-model="scope.row.codeName" v-model="scope.row.cdValCnMean"
size="small" size="small"
placeholder="请输入代码含义" placeholder="请输入代码含义"
@blur="handleBlur(scope.row)" @blur="handleBlur(scope.row)"
/> />
<span v-else>{{ scope.row.codeName }}</span> <span v-else>{{ scope.row.cdValCnMean }}</span>
</template> </template>
</el-table-column> </el-table-column>
@ -215,10 +215,10 @@ const props = defineProps({
}); });
const queryParams = ref({ const queryParams = ref({
codeNum: '', cdNo: '',
parentId: props.rowData.id, parentId: props.rowData.id,
codeName: '', cdValCnMean: '',
codeType: '', cdType: '',
sysName: '', sysName: '',
classId: 'codeItem', classId: 'codeItem',
sysId: '', sysId: '',
@ -228,10 +228,10 @@ const queryParams = ref({
const form = ref({ const form = ref({
id: "", id: "",
codeNum: '', cdNo: '',
codeName: '', cdValCnMean: '',
codeType: 'company', cdType: 'company',
codeStatus: '', cdValStat: '',
sysName: '', sysName: '',
classId: 'code', classId: 'code',
codeMapId: '', codeMapId: '',
@ -266,8 +266,8 @@ function mapChange(data) {
console.log("selectmap",selectedItem,data) console.log("selectmap",selectedItem,data)
if (selectedItem) { if (selectedItem) {
// name form.value.dbRName // name form.value.dbRName
form.value.codeMapName = selectedItem.codeName; form.value.codeMapName = selectedItem.cdValCnMean;
form.value.codeMapNum = selectedItem.codeNum; form.value.codeMapNum = selectedItem.cdNo;
} else { } else {
// form.value.codeMapName // form.value.codeMapName
form.value.codeMapName = ''; form.value.codeMapName = '';
@ -276,7 +276,7 @@ function mapChange(data) {
// //
if (props.rowData.id) { if (props.rowData.id) {
form.value = { ...props.rowData }; form.value = { ...props.rowData };
if (form.value.codeType == "sys") { if (form.value.cdType == "sys") {
showSys.value = true; showSys.value = true;
} else { } else {
showSys.value = false; showSys.value = false;
@ -312,8 +312,8 @@ const getcompanyList = async () => {
console.log(companyist.value,"companyCodeList") console.log(companyist.value,"companyCodeList")
}; };
const formRules = reactive({ const formRules = reactive({
codeNum: [{ required: true, message: "请输入标准代码编号", trigger: "blur" }], cdNo: [{ required: true, message: "请输入标准代码编号", trigger: "blur" }],
codeName: [{ required: true, message: "请输入标准代码名称", trigger: "blur" }] cdValCnMean: [{ required: true, message: "请输入标准代码名称", trigger: "blur" }]
}); });
const handleCodeClick = (row,index) => { const handleCodeClick = (row,index) => {
selectedRow.value=row selectedRow.value=row
@ -337,8 +337,8 @@ const handleSave2 =async () => {
const mapCodeItem=child.selections[0] const mapCodeItem=child.selections[0]
if (selectedRow.value) { if (selectedRow.value) {
tableData.value[selectedRowIndex.value].codeMapId = mapCodeItem.id; tableData.value[selectedRowIndex.value].codeMapId = mapCodeItem.id;
tableData.value[selectedRowIndex.value].codeMapName = mapCodeItem.codeName; tableData.value[selectedRowIndex.value].codeMapName = mapCodeItem.cdValCnMean;
tableData.value[selectedRowIndex.value].codeMapNum = mapCodeItem.codeNum; tableData.value[selectedRowIndex.value].codeMapNum = mapCodeItem.cdNo;
tableData.value = [...tableData.value]; // This ensures reactivity is triggered tableData.value = [...tableData.value]; // This ensures reactivity is triggered
@ -407,7 +407,7 @@ function changeCodeType(data) {
} }
// //
const handleAdd = () => { const handleAdd = () => {
const newRow = {id:'',classId: 'codeItem',parentId: props.rowData.id,codeNum: '', codeName: '', codeMapId: '', const newRow = {id:'',classId: 'codeItem',parentId: props.rowData.id,cdNo: '', cdValCnMean: '', codeMapId: '',
codeMapName: '', codeMapName: '',
codeMapNum: '', isEditing: true }; codeMapNum: '', isEditing: true };
tableData.value.push(newRow); tableData.value.push(newRow);

28
vue-fastapi-frontend/src/views/datastd/stddict/codeItemCommon.vue

@ -9,12 +9,12 @@
<!-- 代码编号 --> <!-- 代码编号 -->
<el-col :span="8"> <el-col :span="8">
<span class="info-text">代码编号: {{ form.codeNum || '暂无代码编号' }}</span> <span class="info-text">代码编号: {{ form.cdNo || '暂无代码编号' }}</span>
</el-col> </el-col>
<!-- 代码名称 --> <!-- 代码名称 -->
<el-col :span="8"> <el-col :span="8">
<span class="info-text">代码名称: {{ form.codeName || '暂无代码名称' }}</span> <span class="info-text">代码名称: {{ form.cdValCnMean || '暂无代码名称' }}</span>
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
@ -23,9 +23,9 @@
<!-- 查询表单 --> <!-- 查询表单 -->
<div class="query-form-container"> <div class="query-form-container">
<el-form :model="queryParams" ref="queryRef" :inline="true"> <el-form :model="queryParams" ref="queryRef" :inline="true">
<el-form-item label="代码值/名称" prop="codeNum"> <el-form-item label="代码值/名称" prop="cdNo">
<el-input <el-input
v-model="queryParams.codeNum" v-model="queryParams.cdNo"
placeholder="请输入标准代码编号" placeholder="请输入标准代码编号"
clearable clearable
style="width: 220px" style="width: 220px"
@ -54,7 +54,7 @@
<el-table-column <el-table-column
label="代码值" label="代码值"
align="center" align="center"
prop="codeNum" prop="cdNo"
:editable="true" :editable="true"
> >
@ -63,7 +63,7 @@
<el-table-column <el-table-column
label="代码含义" label="代码含义"
align="center" align="center"
prop="codeName" prop="cdValCnMean"
:editable="true" :editable="true"
> >
@ -89,10 +89,10 @@ const props = defineProps({
}); });
const queryParams = ref({ const queryParams = ref({
codeNum: '', cdNo: '',
parentId: props.codeId, parentId: props.codeId,
codeName: '', cdValCnMean: '',
codeType: '', cdType: '',
sysName: '', sysName: '',
classId: 'codeItem', classId: 'codeItem',
sysId: '', sysId: '',
@ -102,10 +102,10 @@ const queryParams = ref({
const form = ref({ const form = ref({
id: "", id: "",
codeNum: '', cdNo: '',
codeName: '', cdValCnMean: '',
codeType: 'company', cdType: 'company',
codeStatus: '', cdValStat: '',
sysName: '', sysName: '',
classId: 'code', classId: 'code',
codeMapId: '', codeMapId: '',
@ -124,7 +124,7 @@ const multiple = ref(false);
// //
if (props.codeId) { if (props.codeId) {
form.value = { ...props.rowData }; form.value = { ...props.rowData };
if (form.value.codeType == "sys") { if (form.value.cdType == "sys") {
showSys.value = true; showSys.value = true;
} else { } else {
showSys.value = false; showSys.value = false;

10
vue-fastapi-frontend/src/views/datastd/stddict/index.vue

@ -95,7 +95,7 @@
<el-table-column label="归属" align="center" width="200"> <el-table-column label="归属" align="center" width="200">
<template #default="{ row }"> <template #default="{ row }">
{{ {{
row.dictLevel === "company" row.dataDictVest === "company"
? "公司级" ? "公司级"
: "系统级(" + row.sysName + ")" : "系统级(" + row.sysName + ")"
}} }}
@ -280,7 +280,7 @@ const total = ref(0);
const loading = ref(false); const loading = ref(false);
const stdVisible = ref(false); const stdVisible = ref(false);
const ids = ref([]); const ids = ref([]);
const codeNums = ref([]); const cdNos = ref([]);
const dbResourceOptions = ref([]); const dbResourceOptions = ref([]);
const handleStdClick = (id) => { const handleStdClick = (id) => {
@ -313,7 +313,7 @@ const handleSelectionChange = (selection) => {
single.value = selection.length !== 1; single.value = selection.length !== 1;
multiple.value = !selection.length; multiple.value = !selection.length;
ids.value = selection.map((item) => item.id); ids.value = selection.map((item) => item.id);
codeNums.value = selection.map((item) => item.dictNum); cdNos.value = selection.map((item) => item.dictNum);
}; };
const getList = async () => { const getList = async () => {
@ -349,7 +349,7 @@ const resetQuery = () => {
const handleRemove = (row) => { const handleRemove = (row) => {
const idsToDelete = row.id ? [row.id] : ids.value; const idsToDelete = row.id ? [row.id] : ids.value;
const codesToDelete = row.codeNum ? [row.codeNum] : codeNums.value; const codesToDelete = row.cdNo ? [row.cdNo] : cdNos.value;
proxy.$modal proxy.$modal
.confirm( .confirm(
'是否确认删除字典编号为"' + codesToDelete.toString() + '"的数据项?' '是否确认删除字典编号为"' + codesToDelete.toString() + '"的数据项?'
@ -369,7 +369,7 @@ const handleAdd = () => {
console.log("update:visible", 111); console.log("update:visible", 111);
isEdit.value = false; isEdit.value = false;
selectedRow.value = { selectedRow.value = {
dictLevel: "company", dataDictVest: "company",
sysId: 10000, sysId: 10000,
sysName: "公司级", sysName: "公司级",
dictType: "", dictType: "",

41
vue-fastapi-frontend/src/views/system/flow/codeItemCommon.vue

@ -4,17 +4,20 @@
<el-row :gutter="20"> <el-row :gutter="20">
<!-- 代码归属 --> <!-- 代码归属 -->
<el-col :span="8"> <el-col :span="8">
<span class="info-text">代码归属: {{ form.sysName || '暂无代码归属' }}</span> <span class="info-text" v-if="form.cdType === 'company'">代码归属 :公司级</span>
<span class="info-text" v-else-if="form.cdType === 'sys'">
代码归属 :{{ getSrcSysName(form.srcSys) }}
</span>
</el-col> </el-col>
<!-- 代码编号 --> <!-- 代码编号 -->
<el-col :span="8"> <el-col :span="8">
<span class="info-text">代码编号: {{ form.codeNum || '暂无代码编号' }}</span> <span class="info-text">代码编号: {{ form.cdNo || '暂无代码编号' }}</span>
</el-col> </el-col>
<!-- 代码名称 --> <!-- 代码名称 -->
<el-col :span="8"> <el-col :span="8">
<span class="info-text">代码名称: {{ form.codeName || '暂无代码名称' }}</span> <span class="info-text">代码名称: {{ form.cdValCnMean || '暂无代码名称' }}</span>
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
@ -23,9 +26,9 @@
<!-- 查询表单 --> <!-- 查询表单 -->
<div class="query-form-container"> <div class="query-form-container">
<el-form :model="queryParams" ref="queryRef" :inline="true"> <el-form :model="queryParams" ref="queryRef" :inline="true">
<el-form-item label="代码值/名称" prop="codeNum"> <el-form-item label="代码值/名称" prop="cdNo">
<el-input <el-input
v-model="queryParams.codeNum" v-model="queryParams.cdNo"
placeholder="请输入标准代码编号" placeholder="请输入标准代码编号"
clearable clearable
style="width: 220px" style="width: 220px"
@ -55,7 +58,7 @@
<el-table-column <el-table-column
label="代码值" label="代码值"
align="center" align="center"
prop="codeNum" prop="cdNo"
:editable="true" :editable="true"
> >
@ -64,7 +67,7 @@
<el-table-column <el-table-column
label="代码含义" label="代码含义"
align="center" align="center"
prop="codeName" prop="cdValCnMean"
:editable="true" :editable="true"
> >
@ -84,7 +87,10 @@ import { listStdCodeApprById,getStdCodeAppr} from "@/api/datastd/std"; // 更新
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
const { std_code_status } = proxy.useDict("std_code_status"); const { std_code_status } = proxy.useDict("std_code_status");
import useUserStore from '@/store/modules/user'; //
const userStore = useUserStore(); //
const dsSysList = userStore.dsSysList; // 访
const props = defineProps({ const props = defineProps({
codeId: { codeId: {
type: Object, type: Object,
@ -92,12 +98,15 @@ const props = defineProps({
} }
}); });
console.log(props.codeNum) const getSrcSysName = (id) => {
const match = dsSysList.find(item => item.id === id);
return match ? match.name : id;
};
const queryParams = ref({ const queryParams = ref({
codeNum: '', cdNo: '',
parentId: props.codeId, parentId: props.codeId,
codeName: '', cdValCnMean: '',
codeType: '', cdType: '',
sysName: '', sysName: '',
classId: 'codeItem', classId: 'codeItem',
sysId: '', sysId: '',
@ -107,10 +116,10 @@ const queryParams = ref({
const form = ref({ const form = ref({
id: "", id: "",
codeNum: '', cdNo: '',
codeName: '', cdValCnMean: '',
codeType: 'company', cdType: 'company',
codeStatus: '', cdValStat: '',
sysName: '', sysName: '',
classId: 'code', classId: 'code',
codeMapId: '', codeMapId: '',
@ -129,7 +138,7 @@ const multiple = ref(false);
// //
if (props.codeId) { if (props.codeId) {
form.value = { ...props.rowData }; form.value = { ...props.rowData };
if (form.value.codeType == "sys") { if (form.value.cdType == "sys") {
showSys.value = true; showSys.value = true;
} else { } else {
showSys.value = false; showSys.value = false;

8
vue-fastapi-frontend/src/views/system/flow/dataStdCodeAppr.vue

@ -12,7 +12,7 @@
<el-table-column label="归属" align="center" width="200"> <el-table-column label="归属" align="center" width="200">
<template #default="{ row }"> <template #default="{ row }">
{{ {{
row.dictLevel === 'company' row.dataDictVest === 'company'
? '公司级' ? '公司级'
: '系统级(' + row.sysName + ')' : '系统级(' + row.sysName + ')'
}} }}
@ -27,8 +27,8 @@
<el-table-column label="代码归属" align="center" prop="sysName" /> <el-table-column label="代码归属" align="center" prop="sysName" />
<el-table-column label="标准代码编号" align="center" prop="codeNum" /> <el-table-column label="标准代码编号" align="center" prop="cdNo" />
<el-table-column label="标准代码名称" align="center" prop="codeName" /> <el-table-column label="标准代码名称" align="center" prop="cdValCnMean" />
<el-table-column label="变更类型" align="center"> <el-table-column label="变更类型" align="center">
<template #default="{ row }"> <template #default="{ row }">
@ -45,7 +45,7 @@
<!-- 查看 操作列固定右侧 --> <!-- 查看 操作列固定右侧 -->
<el-table-column fixed="right" label="操作" width="100" align="center"> <el-table-column fixed="right" label="操作" width="100" align="center">
<template #default="{ row }"> <template #default="{ row }">
<el-button text type="primary" @click="handleView(row.id)"> <el-button text type="primary" @click="handleView(row.onum)">
查看 查看
</el-button> </el-button>
</template> </template>

10
vue-fastapi-frontend/src/views/system/flow/dataStdDictAppr.vue

@ -12,7 +12,7 @@
<el-table-column label="归属" align="center" width="200"> <el-table-column label="归属" align="center" width="200">
<template #default="{ row }"> <template #default="{ row }">
{{ {{
row.dictLevel === 'company' row.dataDictVest === 'company'
? '公司级' ? '公司级'
: '系统级(' + row.sysName + ')' : '系统级(' + row.sysName + ')'
}} }}
@ -71,14 +71,14 @@
<!-- 第一行3 --> <!-- 第一行3 -->
<el-row gutter="20"> <el-row gutter="20">
<el-col :span="6"> <el-col :span="6">
<el-form-item prop="dictLevel"> <el-form-item prop="dataDictVest">
<template #label> <template #label>
<span :class="{ 'changed-label': isChanged(formData.dictLevel) }"> <span :class="{ 'changed-label': isChanged(formData.dataDictVest) }">
字典归属 字典归属
</span> </span>
</template> </template>
<span :class="{ 'changed-value': isChanged(formData.dictLevel) }"> <span :class="{ 'changed-value': isChanged(formData.dataDictVest) }">
{{ formatValue(formData.dictLevel === 'company' ? '公司级' : '系统级(' + formData.sysName + ')') }} {{ formatValue(formData.dataDictVest === 'company' ? '公司级' : '系统级(' + formData.sysName + ')') }}
</span> </span>
</el-form-item> </el-form-item>
</el-col> </el-col>

8
vue-fastapi-frontend/src/views/system/flow/dataStdMainAppr.vue

@ -18,7 +18,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="securityLevel" label="安全等级" align="center" /> <el-table-column prop="securityLevel" label="安全等级" align="center" />
<el-table-column prop="sourceSystem" label="来源系统" align="center" /> <el-table-column prop="sourceSystem" label="来源系统" align="center" />
<el-table-column prop="codeNum" label="代码编号" align="center" /> <el-table-column prop="cdNo" label="代码编号" align="center" />
<el-table-column label="变更类型" align="center"> <el-table-column label="变更类型" align="center">
<template #default="{ row }"> <template #default="{ row }">
{{ changeTypeMap[row.changeType] || row.changeType }} {{ changeTypeMap[row.changeType] || row.changeType }}
@ -122,11 +122,11 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item prop="codeNum"> <el-form-item prop="cdNo">
<template #label> <template #label>
<span :class="{ 'changed-label': isChanged(formData.codeNum) }">代码编号</span> <span :class="{ 'changed-label': isChanged(formData.cdNo) }">代码编号</span>
</template> </template>
<span :class="{ 'changed-value': isChanged(formData.codeNum) }">{{ formatValue(formData.codeNum) }}</span> <span :class="{ 'changed-value': isChanged(formData.cdNo) }">{{ formatValue(formData.cdNo) }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>

Loading…
Cancel
Save