diff --git a/vue-fastapi-backend/module_admin/service/approval_service.py b/vue-fastapi-backend/module_admin/service/approval_service.py index fbba1f1..f07e9ad 100644 --- a/vue-fastapi-backend/module_admin/service/approval_service.py +++ b/vue-fastapi-backend/module_admin/service/approval_service.py @@ -208,14 +208,13 @@ class ApprovalService: change_type = appr_model.changeType if operateType =='succeed': if change_type == "add": - # 将 DataStdDictApprModel 转换为 DataStdDictModel - main_model = DataStdDictModel(**appr_model.model_dump(exclude_unset=True, by_alias=True)) + main_model = DataStdCodeModel(**appr_model.model_dump(exclude_unset=True, by_alias=True)) await DataStdDao.add_std_code(result_db, main_model) elif change_type == "edit": # 使用 oldInstId 作为主键 - main_model = DataStdDictModel(**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 await DataStdDao.update_std_code(result_db, main_model.model_dump(exclude_unset=True)) @@ -225,8 +224,9 @@ class ApprovalService: # 更新 approStatus 状态 appr_model.approStatus = operateType - await DataStdDao.update_std_dict_appr(result_db, appr_model) - + main_appro_model = DataStdCodeApprModel(**appr_model.model_dump(exclude_unset=True, by_alias=True)) + + await DataStdDao.update_std_code_appr(result_db, main_appro_model.model_dump(exclude_unset=True)) return CrudResponseModel(is_success=True, message='操作成功') diff --git a/vue-fastapi-backend/module_admin/service/datastd_service.py b/vue-fastapi-backend/module_admin/service/datastd_service.py index d38de0d..6283137 100644 --- a/vue-fastapi-backend/module_admin/service/datastd_service.py +++ b/vue-fastapi-backend/module_admin/service/datastd_service.py @@ -3,7 +3,7 @@ from sqlalchemy.ext.asyncio import AsyncSession from exceptions.exception import ServiceException from module_admin.dao.datastd_dao import DataStdDao from module_admin.entity.vo.common_vo import CrudResponseModel -from module_admin.entity.vo.datastd_vo import DataStdCodeModel,DeleteDataStdModel,DataStdDictModel,DataStdMainModel,DataStdMainApprModel,DataStdDictApprModel,DataStdCodeApprModel +from module_admin.entity.vo.datastd_vo import DataStdCodeModel,DeleteDataStdModel,DataStdDictModel,DataStdMainModel,DataStdMainApprModel,DataStdDictApprModel,DataStdCodeApprModel,DataStdCodePageQueryModel from utils.common_util import CamelCaseUtil import uuid from module_admin.entity.vo.approval_vo import ApplyModel @@ -377,9 +377,20 @@ class DataStdService: appr_model.code_status = "9" appr_model.approStatus = "waiting" appr_model.flowId = str(uuid.uuid4()) # flowId 共用 + appr_model.id = 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.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} + # 同步处理代码项 for item in code_item_list: item.parent_id = code.id @@ -390,14 +401,16 @@ class DataStdService: if item.id: # 修改项 if not await cls.check_code_unique_services(query_db, item): raise ServiceException(message=f'父级代码{code.code_num}下代码项{item.code_num}重复,无法提交修改审批') - + 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) item_appr_model.changeType = "update" - item_appr_model.compareId = item.id + item_appr_model.compareId = last_item_appr.id item_appr_model.oldInstId = item.id item_appr_model.approStatus = "waiting" item_appr_model.flowId = appr_model.flowId - + item_appr_model.id = str(uuid.uuid4()) # flowId 共用 + await DataStdDao.add_std_code_appr(query_db, item_appr_model) else: # 新增项 @@ -416,7 +429,22 @@ class DataStdService: item_appr_model.flowId = appr_model.flowId 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: + # 创建“删除”审批记录 + 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"] + delete_appr_model.approStatus = "waiting" + delete_appr_model.flowId = appr_model.flowId + delete_appr_model.id = str(uuid.uuid4()) + + delete_appr_model.update_by = current_user.user.user_name + delete_appr_model.update_time = datetime.now() + + await DataStdDao.add_std_code_appr(query_db, delete_appr_model) # 创建审批流程 apply_model = ApplyModel() apply_model.businessType = "dataStdCode" diff --git a/vue-fastapi-frontend/src/views/system/flow/conf.vue b/vue-fastapi-frontend/src/views/system/flow/conf.vue index 04dd203..e6d296e 100644 --- a/vue-fastapi-frontend/src/views/system/flow/conf.vue +++ b/vue-fastapi-frontend/src/views/system/flow/conf.vue @@ -62,7 +62,7 @@ import { listRole } from "@/api/system/role"; import {getFlowConfList,saveFlowConfig } from "@/api/flow/flow"; const { proxy } = getCurrentInstance(); -const moduleList = ref([{'module':'metaDataInfo','text':'元数据'},{'module':'dataStdMain','text':'数据标准'},{'module':'dataStdDict','text':'数据字典'},{'module':'other','text':'其他模块(敬请期待)'}]) +const moduleList = ref([{'module':'metaDataInfo','text':'元数据'},{'module':'dataStdMain','text':'数据标准'},{'module':'dataStdDict','text':'数据字典'},{'module':'dataStdCode','text':'标准代码'},{'module':'other','text':'其他模块(敬请期待)'}]) let graph = null const roleList = ref([]) const data = ref([])