Browse Source

审批

master
siyaqi 1 month ago
parent
commit
60ec812902
  1. 8
      vue-fastapi-backend/module_admin/service/approval_service.py
  2. 34
      vue-fastapi-backend/module_admin/service/datastd_service.py
  3. 2
      vue-fastapi-frontend/src/views/system/flow/conf.vue

8
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='操作成功')

34
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
@ -392,11 +403,13 @@ class DataStdService:
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)
@ -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"

2
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([])

Loading…
Cancel
Save