|
|
@ -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" |
|
|
|