Browse Source

审批

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

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

@ -208,14 +208,13 @@ class ApprovalService:
change_type = appr_model.changeType change_type = appr_model.changeType
if operateType =='succeed': if operateType =='succeed':
if change_type == "add": if change_type == "add":
# 将 DataStdDictApprModel 转换为 DataStdDictModel main_model = DataStdCodeModel(**appr_model.model_dump(exclude_unset=True, by_alias=True))
main_model = DataStdDictModel(**appr_model.model_dump(exclude_unset=True, by_alias=True))
await DataStdDao.add_std_code(result_db, main_model) await DataStdDao.add_std_code(result_db, main_model)
elif change_type == "edit": elif change_type == "edit":
# 使用 oldInstId 作为主键 # 使用 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 main_model.id = 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))
@ -225,8 +224,9 @@ class ApprovalService:
# 更新 approStatus 状态 # 更新 approStatus 状态
appr_model.approStatus = operateType 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='操作成功') return CrudResponseModel(is_success=True, message='操作成功')

40
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 exceptions.exception import ServiceException
from module_admin.dao.datastd_dao import DataStdDao from module_admin.dao.datastd_dao import DataStdDao
from module_admin.entity.vo.common_vo import CrudResponseModel 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 from utils.common_util import CamelCaseUtil
import uuid import uuid
from module_admin.entity.vo.approval_vo import ApplyModel from module_admin.entity.vo.approval_vo import ApplyModel
@ -377,9 +377,20 @@ class DataStdService:
appr_model.code_status = "9" appr_model.code_status = "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 共用
await DataStdDao.add_std_code_appr(query_db, appr_model) 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: for item in code_item_list:
item.parent_id = code.id item.parent_id = code.id
@ -390,14 +401,16 @@ class DataStdService:
if item.id: # 修改项 if item.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'父级代码{code.code_num}下代码项{item.code_num}重复,无法提交修改审批') raise ServiceException(message=f'父级代码{code.code_num}下代码项{item.code_num}重复,无法提交修改审批')
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)
item_appr_model.changeType = "update" 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.oldInstId = item.id
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 共用
await DataStdDao.add_std_code_appr(query_db, item_appr_model) await DataStdDao.add_std_code_appr(query_db, item_appr_model)
else: # 新增项 else: # 新增项
@ -416,7 +429,22 @@ class DataStdService:
item_appr_model.flowId = appr_model.flowId item_appr_model.flowId = appr_model.flowId
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:
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 = ApplyModel()
apply_model.businessType = "dataStdCode" 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"; import {getFlowConfList,saveFlowConfig } from "@/api/flow/flow";
const { proxy } = getCurrentInstance(); 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 let graph = null
const roleList = ref([]) const roleList = ref([])
const data = ref([]) const data = ref([])

Loading…
Cancel
Save