diff --git a/vue-fastapi-backend/module_admin/controller/metadata_config_controller.py b/vue-fastapi-backend/module_admin/controller/metadata_config_controller.py
index 4cdc96f..770ddec 100644
--- a/vue-fastapi-backend/module_admin/controller/metadata_config_controller.py
+++ b/vue-fastapi-backend/module_admin/controller/metadata_config_controller.py
@@ -18,6 +18,7 @@ from module_admin.entity.vo.metadata_config_vo import (
BatchDataopLabelConfigModel,
BatchDatatypeLabelConfigModel,
BatchBusiLabelConfigPageQueryModel,
+ BatchDataopLabelConfigModelVo,
BatchDataopLabelModelPageQueryModel,
BatchDatatypeLabelConfigPageQueryModel,
SecuBizPermiConfigQueryModel,
@@ -357,19 +358,19 @@ async def get_busi_label_detail(
@metadataConfigController.get('/dataopLabel/list', response_model=PageResponseModel)
async def get_dataop_label_list(
request: Request,
- query: BatchDataopLabelConfigModel,
+ query: BatchDataopLabelConfigModel=Depends(BatchDataopLabelModelPageQueryModel.as_query),
query_db: AsyncSession = Depends(get_db),
):
- result = await BatchLabelConfigService.get_dataop_list_services(query_db, query, is_page=True)
+ result = await BatchLabelConfigService.get_dataop_vo_services(query_db, query, is_page=True)
logger.info('获取操作标签配置列表成功')
- return ResponseUtil.success(model_content=result)
+ return ResponseUtil.success(data=result)
@metadataConfigController.post('/dataopLabel')
@ValidateFields(validate_model='add_dataop_label')
async def add_dataop_label(
request: Request,
- model: BatchDataopLabelConfigModel,
+ model: BatchDataopLabelConfigModelVo,
query_db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user),
diff --git a/vue-fastapi-backend/module_admin/dao/batch_label_config_dao.py b/vue-fastapi-backend/module_admin/dao/batch_label_config_dao.py
index 21a96ec..8ea6cc4 100644
--- a/vue-fastapi-backend/module_admin/dao/batch_label_config_dao.py
+++ b/vue-fastapi-backend/module_admin/dao/batch_label_config_dao.py
@@ -49,11 +49,25 @@ class BatchLabelConfigDAO:
@classmethod
async def get_dataop_list(cls, db: AsyncSession, query_object, is_page: bool = False):
query = select(BatchDataopLabelConfig).where(
- BatchDataopLabelConfig.optype.like(f"%{query_object.optype}%") if query_object.optype else True,
BatchDataopLabelConfig.mdl_name == query_object.mdl_name if query_object.mdl_name else True,
+ BatchDataopLabelConfig.ssys_cd == query_object.ssys_cd if query_object.ssys_cd else True,
)
-
+
return await PageUtil.paginate(db, query, query_object.page_num, query_object.page_size, is_page)
+ @classmethod
+ async def get_dataop_list_all(cls, db: AsyncSession, query_object):
+ conditions = []
+
+ if query_object.mdl_name:
+ conditions.append(BatchDataopLabelConfig.mdl_name == query_object.mdl_name)
+
+ if query_object.ssys_cd:
+ conditions.append(BatchDataopLabelConfig.ssys_cd == query_object.ssys_cd)
+
+ stmt = select(BatchDataopLabelConfig).where(*conditions)
+
+ result = await db.execute(stmt)
+ return result.scalars().all()
@classmethod
async def add_dataop(cls, db: AsyncSession, obj):
diff --git a/vue-fastapi-backend/module_admin/entity/vo/metadata_config_vo.py b/vue-fastapi-backend/module_admin/entity/vo/metadata_config_vo.py
index 4a2db07..407a60f 100644
--- a/vue-fastapi-backend/module_admin/entity/vo/metadata_config_vo.py
+++ b/vue-fastapi-backend/module_admin/entity/vo/metadata_config_vo.py
@@ -257,6 +257,23 @@ class BatchDataopLabelConfigModel(BaseModel):
mdl_name: Optional[str] = Field(default=None, description='模块名称')
upd_by: Optional[str] = Field(default=None, description='更新人员')
upd_time: Optional[datetime] = Field(default=None, description='更新时间')
+
+class BatchDataopLabelConfigModelVo(BaseModel):
+ """
+ 批处理数据操作标签配置 Pydantic 模型
+ """
+ model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
+ config1: Optional[float] = Field(default=None, description='参数1')
+ config2: Optional[float] = Field(default=None, description='参数2')
+ config3: Optional[float] = Field(default=None, description='参数3')
+ config4: Optional[float] = Field(default=None, description='参数4')
+ config5: Optional[float] = Field(default=None, description='参数5')
+ config6: Optional[float] = Field(default=None, description='参数6')
+ config7: Optional[float] = Field(default=None, description='参数7')
+ ssys_cd: Optional[str] = Field(default=None, description='系统代码')
+ mdl_name: Optional[str] = Field(default=None, description='模块名称')
+ upd_by: Optional[str] = Field(default=None, description='更新人员')
+ upd_time: Optional[datetime] = Field(default=None, description='更新时间')
class BatchDatatypeLabelConfigModel(BaseModel):
"""
批处理字段类型标签配置 Pydantic 模型
diff --git a/vue-fastapi-backend/module_admin/service/batch_label_config_service.py b/vue-fastapi-backend/module_admin/service/batch_label_config_service.py
index d9a1c4a..ab75c45 100644
--- a/vue-fastapi-backend/module_admin/service/batch_label_config_service.py
+++ b/vue-fastapi-backend/module_admin/service/batch_label_config_service.py
@@ -1,7 +1,7 @@
from sqlalchemy.ext.asyncio import AsyncSession
from module_admin.dao.batch_label_config_dao import BatchLabelConfigDAO
from module_admin.entity.vo.common_vo import CrudResponseModel
-from module_admin.entity.vo.metadata_config_vo import BatchBusiLabelConfigModel,BatchDataopLabelConfigModel,BatchDatatypeLabelConfigModel
+from module_admin.entity.vo.metadata_config_vo import BatchBusiLabelConfigModel,BatchDataopLabelConfigModel,BatchDatatypeLabelConfigModel,BatchDataopLabelConfigModelVo
from exceptions.exception import ServiceException
import uuid
from utils.common_util import CamelCaseUtil
@@ -70,14 +70,95 @@ class BatchLabelConfigService:
@classmethod
async def get_dataop_list_services(cls, db: AsyncSession, query_object, is_page: bool = False):
return await BatchLabelConfigDAO.get_dataop_list(db, query_object, is_page)
+ @classmethod
+ async def get_dataop_vo_services(cls, db: AsyncSession, query_object, is_page: bool = False):
+ result = BatchDataopLabelConfigModelVo() # 自定义返回 VO 对象
+ resultList = await BatchLabelConfigDAO.get_dataop_list_all(db, query_object)
+ if resultList:
+ for item in resultList:
+ if item.optype == "唯一类型":
+ result.config1 = item.config1
+ result.config2 = item.config2
+ result.config3 = item.config3
+ result.config4 = item.config4
+ result.ssys_cd = item.ssys_cd
+ result.mdl_name = item.mdl_name
+ result.upd_by = item.upd_by
+ result.upd_time = item.upd_time
+
+ elif item.optype == "忽略类型":
+ result.config5 = item.config1 # 注意:忽略类型只有 config1, config2
+ result.config6 = item.config2
+ # 其他公共字段,如果你也想覆盖可再写一次:
+ result.ssys_cd = item.ssys_cd
+ result.mdl_name = item.mdl_name
+ result.upd_by = item.upd_by
+ result.upd_time = item.upd_time
+
+ return result
+
@classmethod
async def add_dataop_services(cls, db: AsyncSession, page_object):
try:
- page_object.onum = str(uuid.uuid4())
- await BatchLabelConfigDAO.add_dataop(db, page_object)
+
+ resultList = await BatchLabelConfigDAO.get_dataop_list_all(db, page_object)
+
+ # 唯一类型对象
+ onopLabel = BatchDataopLabelConfigModel(
+ optype="唯一类型",
+ config1=page_object.config1,
+ config2=page_object.config2,
+ config3=page_object.config3,
+ config4=page_object.config4,
+ ssysCd=page_object.ssys_cd,
+ mdlName=page_object.mdl_name,
+ updBy=page_object.upd_by,
+ updTime=page_object.upd_time
+ )
+
+ # 忽略类型对象
+ inopLabel = BatchDataopLabelConfigModel(
+ optype="忽略类型",
+ config1=page_object.config5,
+ config2=page_object.config6,
+ ssysCd=page_object.ssys_cd,
+ mdlName=page_object.mdl_name,
+ updBy=page_object.upd_by,
+ updTime=page_object.upd_time
+ )
+
+ if resultList:
+ for item in resultList:
+ if item.optype == "唯一类型":
+ update_data = {
+ "config1": onopLabel.config1,
+ "config2": onopLabel.config2,
+ "config3": onopLabel.config3,
+ "config4": onopLabel.config4,
+ "ssys_cd": onopLabel.ssys_cd,
+ "mdl_name": onopLabel.mdl_name,
+ "upd_by": onopLabel.upd_by,
+ "upd_time": onopLabel.upd_time
+ }
+ elif item.optype == "忽略类型":
+ update_data = {
+ "config1": inopLabel.config1,
+ "config2": inopLabel.config2,
+ "ssys_cd": inopLabel.ssys_cd,
+ "mdl_name": inopLabel.mdl_name,
+ "upd_by": inopLabel.upd_by,
+ "upd_time": inopLabel.upd_time
+ }
+ else:
+ continue # 忽略未知类型
+ await BatchLabelConfigDAO.edit_dataop(db, item.onum, update_data)
+ else:
+ await BatchLabelConfigDAO.add_dataop(db, onopLabel)
+ await BatchLabelConfigDAO.add_dataop(db, inopLabel)
+
await db.commit()
- return CrudResponseModel(is_success=True, message="新增成功")
+ return CrudResponseModel(is_success=True, message="新增或更新成功")
except Exception as e:
await db.rollback()
raise e
diff --git a/vue-fastapi-frontend/src/store/modules/user.js b/vue-fastapi-frontend/src/store/modules/user.js
index 3dbb5e7..3d8e084 100644
--- a/vue-fastapi-frontend/src/store/modules/user.js
+++ b/vue-fastapi-frontend/src/store/modules/user.js
@@ -31,16 +31,7 @@ const useUserStore = defineStore(
setToken(res.token)
this.token = res.token
resolve()
- datasourcetree()
- .then(res => {
- this.dsSysList = res.rows || [] // 确保为空时不报错
- resolve(res)
- })
- .catch(error => {
- this.dsSysList = [] // 请求失败也清空列表,避免残留
- reject(error)
- })
}).catch(error => {
reject(error)
})
@@ -66,6 +57,15 @@ const useUserStore = defineStore(
} else {
this.roles = ['ROLE_DEFAULT']
}
+ datasourcetree()
+ .then(res => {
+ this.dsSysList = res.rows || [] // 确保为空时不报错
+ resolve(res)
+ })
+ .catch(error => {
+ this.dsSysList = [] // 请求失败也清空列表,避免残留
+ reject(error)
+ })
this.id = user.userId
this.name = user.userName
this.avatar = avatar
diff --git a/vue-fastapi-frontend/src/views/datastd/stdcode/codeMap.vue b/vue-fastapi-frontend/src/views/datastd/stdcode/codeMap.vue
index cd27c0d..12af09b 100644
--- a/vue-fastapi-frontend/src/views/datastd/stdcode/codeMap.vue
+++ b/vue-fastapi-frontend/src/views/datastd/stdcode/codeMap.vue
@@ -84,6 +84,7 @@ const props = defineProps({
},
});
+
const getSrcSysName = (id) => {
const match = dsSysList.find(item => item.id === id);
return match ? match.name : id;
diff --git a/vue-fastapi-frontend/src/views/metadataConfig/metaclas/index.vue b/vue-fastapi-frontend/src/views/metadataConfig/metaclas/index.vue
index 1716c6f..5f24481 100644
--- a/vue-fastapi-frontend/src/views/metadataConfig/metaclas/index.vue
+++ b/vue-fastapi-frontend/src/views/metadataConfig/metaclas/index.vue
@@ -64,11 +64,11 @@
stripe
>
-
-
-
+
+
+
-
+
业务类型参数调整
@@ -110,17 +110,46 @@
stripe
>
-
-
-
-
+
+
+
+
-
+
字段处理类型参数调整
+
+唯一类型数值类判定条件
-
+
+
+
+
+
+
+
+
+
+ 唯一类型非数值类判定条件
+
+
+
+ 忽略类型数值类判断条件
+
+
+
+ 忽略类型其他判断条件
+
+
+
+
+ 保存
{
getList1();
getList2();
+ getList3();
});