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