Browse Source

标准模块问题处理

master
siyaqi 3 days ago
parent
commit
2fd163cb4d
  1. 2
      vue-fastapi-backend/module_admin/controller/metadata_config_controller.py
  2. 5
      vue-fastapi-backend/module_admin/dao/datastd_dao.py
  3. 4
      vue-fastapi-backend/module_admin/entity/do/datastd_do.py
  4. 2
      vue-fastapi-backend/module_admin/entity/vo/datastd_vo.py
  5. 20
      vue-fastapi-backend/module_admin/service/datastd_service.py
  6. 23
      vue-fastapi-frontend/src/views/datastd/main/components/AddEditForm.vue
  7. 20
      vue-fastapi-frontend/src/views/datastd/main/index.vue
  8. 8
      vue-fastapi-frontend/src/views/system/flow/dataStdMainAppr.vue

2
vue-fastapi-backend/module_admin/controller/metadata_config_controller.py

@ -181,7 +181,7 @@ async def get_biz_config_list_all(
return ResponseUtil.success(data=result) return ResponseUtil.success(data=result)
@metadataConfigController.post("/bizConfig/add") @metadataConfigController.post("/bizConfig/add")
@ValidateFields(["bizModule", "configType", "securityLevel", "applyType"]) @ValidateFields(["bizModule", "configType", "data_sec_lvl", "applyType"])
async def add_biz_config( async def add_biz_config(
item: SecuBizConfigAddModel, item: SecuBizConfigAddModel,
db: AsyncSession = Depends(get_db), db: AsyncSession = Depends(get_db),

5
vue-fastapi-backend/module_admin/dao/datastd_dao.py

@ -324,6 +324,7 @@ class DataStdDao:
DataStdDict.data_dict_eng_name, DataStdDict.data_dict_eng_name,
DataStdDict.data_dict_cn_name, DataStdDict.data_dict_cn_name,
DataStdDict.data_dict_vest, DataStdDict.data_dict_vest,
DataStdDict.data_dict_type,
DataStdDict.data_dict_data_type, DataStdDict.data_dict_data_type,
DataStdDict.src_sys, DataStdDict.src_sys,
DataStdDict.src_sys, DataStdDict.src_sys,
@ -796,7 +797,7 @@ class DataStdDao:
DataStdMain.data_std_eng_name, DataStdMain.data_std_eng_name,
DataStdMain.data_std_cn_name, DataStdMain.data_std_cn_name,
DataStdMain.data_std_type, DataStdMain.data_std_type,
DataStdMain.securityLevel, DataStdMain.data_sec_lvl,
DataStdMain.src_sys, DataStdMain.src_sys,
DataStdMain.data_std_vest, DataStdMain.data_std_vest,
DataStdMain.data_std_busi_defn, DataStdMain.data_std_busi_defn,
@ -847,7 +848,7 @@ class DataStdDao:
DataStdMain.data_std_eng_name, DataStdMain.data_std_eng_name,
DataStdMain.data_std_cn_name, DataStdMain.data_std_cn_name,
DataStdMain.data_std_type, DataStdMain.data_std_type,
DataStdMain.securityLevel, DataStdMain.data_sec_lvl,
DataStdMain.src_sys, DataStdMain.src_sys,
DataStdMain.data_std_vest, DataStdMain.data_std_vest,
DataStdMain.data_std_busi_defn, DataStdMain.data_std_busi_defn,

4
vue-fastapi-backend/module_admin/entity/do/datastd_do.py

@ -144,7 +144,7 @@ class DataStdMain(Base):
data_std_eng_name = Column(String(50), default=None, comment='标准英文名') data_std_eng_name = Column(String(50), default=None, comment='标准英文名')
data_std_cn_name = Column(String(200), default=None, comment='标准中文名') data_std_cn_name = Column(String(200), default=None, comment='标准中文名')
data_std_type = Column(String(1), default=None, comment='标准类型(0:基础数据 1:指标数据)') data_std_type = Column(String(1), default=None, comment='标准类型(0:基础数据 1:指标数据)')
securityLevel = Column(String(1), default=None, comment='安全等级') data_sec_lvl = Column(String(1), default=None, comment='安全等级')
src_sys = Column(String(50), default=None, comment='来源系统') src_sys = Column(String(50), default=None, comment='来源系统')
data_std_vest = Column(String(50), default=None, comment='数据标准归属(公司级、系统级)') data_std_vest = Column(String(50), default=None, comment='数据标准归属(公司级、系统级)')
data_std_busi_defn = Column(String(200), default=None, comment='标准业务定义') data_std_busi_defn = Column(String(200), default=None, comment='标准业务定义')
@ -175,7 +175,7 @@ class DataStdMainAppr(Base):
data_std_eng_name = Column(String(50), default=None, comment='标准英文名') data_std_eng_name = Column(String(50), default=None, comment='标准英文名')
data_std_cn_name = Column(String(200), default=None, comment='标准中文名') data_std_cn_name = Column(String(200), default=None, comment='标准中文名')
data_std_type = Column(String(1), default=None, comment='标准类型(0:基础数据 1:指标数据)') data_std_type = Column(String(1), default=None, comment='标准类型(0:基础数据 1:指标数据)')
securityLevel = Column(String(1), default=None, comment='安全等级') data_sec_lvl = Column(String(1), default=None, comment='安全等级')
src_sys = Column(Integer, default=None, comment='来源系统') src_sys = Column(Integer, default=None, comment='来源系统')
data_std_vest = Column(String(50), default=None, comment='数据标准归属(公司级、系统级)') data_std_vest = Column(String(50), default=None, comment='数据标准归属(公司级、系统级)')
data_std_busi_defn = Column(String(200), default=None, comment='标准业务定义') data_std_busi_defn = Column(String(200), default=None, comment='标准业务定义')

2
vue-fastapi-backend/module_admin/entity/vo/datastd_vo.py

@ -107,7 +107,7 @@ class DataStdMainModel(BaseModel):
data_std_eng_name: Optional[str] = Field(default=None, description='标准英文名') data_std_eng_name: Optional[str] = Field(default=None, description='标准英文名')
data_std_cn_name: Optional[str] = Field(default=None, description='标准中文名') data_std_cn_name: Optional[str] = Field(default=None, description='标准中文名')
data_std_type: Optional[str] = Field(default=None, description='标准类型(0:基础数据 1:指标数据)') data_std_type: Optional[str] = Field(default=None, description='标准类型(0:基础数据 1:指标数据)')
securityLevel: Optional[str] = Field(default=None, description='安全等级') data_sec_lvl: Optional[str] = Field(default=None, description='安全等级')
src_sys: Optional[int] = Field(default=None, description='归属系统') src_sys: Optional[int] = Field(default=None, description='归属系统')
data_std_busi_defn: Optional[str] = Field(default=None, description='标准业务定义') data_std_busi_defn: Optional[str] = Field(default=None, description='标准业务定义')
cd_id: Optional[str] = Field(default=None, description='代码id') cd_id: Optional[str] = Field(default=None, description='代码id')

20
vue-fastapi-backend/module_admin/service/datastd_service.py

@ -127,7 +127,7 @@ class DataStdService:
try: try:
# 创建新的 page_object 实例,避免修改原始对象 # 创建新的 page_object 实例,避免修改原始对象
new_page_object = DataStdCodeModel(**page_object.model_dump(by_alias=True)) new_page_object = DataStdCodeModel(**page_object.model_dump(by_alias=True))
new_page_object.cd_val_stat="9" new_page_object.cd_val_stat="1"
# 调用 DAO 方法插入数据 # 调用 DAO 方法插入数据
await DataStdDao.add_std_code(query_db, new_page_object) await DataStdDao.add_std_code(query_db, new_page_object)
return CrudResponseModel(is_success=True, message='新增标准代码成功') return CrudResponseModel(is_success=True, message='新增标准代码成功')
@ -240,7 +240,7 @@ class DataStdService:
std_code_appr.compareId = last_appr.onum std_code_appr.compareId = last_appr.onum
std_code_appr.oldInstId = data_std_no.onum std_code_appr.oldInstId = data_std_no.onum
std_code_appr.approStatus = "waiting" std_code_appr.approStatus = "waiting"
std_code_appr.cd_val_stat = "9" std_code_appr.cd_val_stat = "1"
std_code_appr.flowId = flow_id std_code_appr.flowId = flow_id
std_code_appr.onum=str(uuid.uuid4()) std_code_appr.onum=str(uuid.uuid4())
std_code_appr.create_by = current_user.user.user_name std_code_appr.create_by = current_user.user.user_name
@ -260,7 +260,7 @@ class DataStdService:
appr_item.compareId = last_appr_item.onum appr_item.compareId = last_appr_item.onum
appr_item.oldInstId = appr_item.onum appr_item.oldInstId = appr_item.onum
appr_item.approStatus = "waiting" appr_item.approStatus = "waiting"
appr_item.cd_val_stat = "9" appr_item.cd_val_stat = "1"
appr_item.flowId = flow_id appr_item.flowId = flow_id
appr_item.onum=str(uuid.uuid4()) appr_item.onum=str(uuid.uuid4())
appr_item.create_by = current_user.user.user_name appr_item.create_by = current_user.user.user_name
@ -368,7 +368,7 @@ class DataStdService:
appr_model.changeType = "add" appr_model.changeType = "add"
appr_model.compareId = code.onum appr_model.compareId = code.onum
appr_model.oldInstId = code.onum appr_model.oldInstId = code.onum
appr_model.cd_val_stat="9" appr_model.cd_val_stat="1"
appr_model.approStatus = "waiting" appr_model.approStatus = "waiting"
appr_model.flowId = str(uuid.uuid4()) # 新生成 Flow ID appr_model.flowId = str(uuid.uuid4()) # 新生成 Flow ID
@ -632,7 +632,7 @@ class DataStdService:
raise ServiceException(message=f"数据字典{page_object.data_dict_no}已存在") raise ServiceException(message=f"数据字典{page_object.data_dict_no}已存在")
# 创建新的 page_object 实例,避免修改原始对象 # 创建新的 page_object 实例,避免修改原始对象
new_page_object = DataStdDictModel(**page_object.model_dump(by_alias=True)) new_page_object = DataStdDictModel(**page_object.model_dump(by_alias=True))
new_page_object.data_dict_stat="9" new_page_object.data_dict_stat="1"
new_page_object.onum=str(uuid.uuid4()) new_page_object.onum=str(uuid.uuid4())
# 调用 DAO 方法插入数据 # 调用 DAO 方法插入数据
await DataStdDao.add_std_dict(query_db, new_page_object) await DataStdDao.add_std_dict(query_db, new_page_object)
@ -1182,7 +1182,7 @@ class DataStdService:
if not await cls.check_std_num_unique(query_db, model): if not await cls.check_std_num_unique(query_db, model):
raise ServiceException(message=f"标准编号 {model.data_std_no} 已存在") raise ServiceException(message=f"标准编号 {model.data_std_no} 已存在")
model.onum=str(uuid.uuid4()) model.onum=str(uuid.uuid4())
model.std_status="9" model.std_status="1"
model.belt_data_std_content=2 model.belt_data_std_content=2
await DataStdDao.add_std_main(query_db, model) await DataStdDao.add_std_main(query_db, model)
return CrudResponseModel(is_success=True, message='新增标准成功') return CrudResponseModel(is_success=True, message='新增标准成功')
@ -1203,7 +1203,7 @@ class DataStdService:
if not await cls.check_std_num_unique(query_db, model): if not await cls.check_std_num_unique(query_db, model):
raise ServiceException(message=f"标准编号 {model.data_std_no} 已存在") raise ServiceException(message=f"标准编号 {model.data_std_no} 已存在")
model.onum=str(uuid.uuid4()) model.onum=str(uuid.uuid4())
model.std_status="9" model.std_status="1"
model.belt_data_std_content=2 model.belt_data_std_content=2
# 将 DataStdMainModel 转换为 DataStdMainApprModel,保留字段原始名 # 将 DataStdMainModel 转换为 DataStdMainApprModel,保留字段原始名
apprModel = DataStdMainApprModel(**model.model_dump(exclude_unset=True, by_alias=True)) apprModel = DataStdMainApprModel(**model.model_dump(exclude_unset=True, by_alias=True))
@ -1224,7 +1224,7 @@ class DataStdService:
if not await cls.check_dict_unique_services(query_db, model): if not await cls.check_dict_unique_services(query_db, model):
raise ServiceException(message=f"字典编号 {model.data_dict_no} 已存在") raise ServiceException(message=f"字典编号 {model.data_dict_no} 已存在")
model.onum=str(uuid.uuid4()) model.onum=str(uuid.uuid4())
model.data_dict_stat="9" model.data_dict_stat="1"
# 将 DataStdMainModel 转换为 DataStdMainApprModel,保留字段原始名 # 将 DataStdMainModel 转换为 DataStdMainApprModel,保留字段原始名
apprModel = DataStdDictApprModel(**model.model_dump(exclude_unset=True, by_alias=True)) apprModel = DataStdDictApprModel(**model.model_dump(exclude_unset=True, by_alias=True))
apprModel.changeType="add" apprModel.changeType="add"
@ -1243,7 +1243,7 @@ class DataStdService:
async def edit_std_main_appr(cls, query_db: AsyncSession, model: DataStdMainModel): async def edit_std_main_appr(cls, query_db: AsyncSession, model: DataStdMainModel):
if not await cls.check_std_num_unique(query_db, model): if not await cls.check_std_num_unique(query_db, model):
raise ServiceException(message=f"标准编号 {model.data_std_no} 已存在") raise ServiceException(message=f"标准编号 {model.data_std_no} 已存在")
model.std_status="9" model.std_status="1"
# 将 DataStdMainModel 转换为 DataStdMainApprModel,保留字段原始名 # 将 DataStdMainModel 转换为 DataStdMainApprModel,保留字段原始名
watingList=await DataStdDao.check_std_main_waiting(model.onum, query_db) watingList=await DataStdDao.check_std_main_waiting(model.onum, query_db)
@ -1268,7 +1268,7 @@ class DataStdService:
async def edit_std_dict_appr(cls, query_db: AsyncSession, model: DataStdDictModel): async def edit_std_dict_appr(cls, query_db: AsyncSession, model: DataStdDictModel):
if not await cls.check_dict_unique_services(query_db, model): if not await cls.check_dict_unique_services(query_db, model):
raise ServiceException(message=f"字典编号 {model.c} 已存在") raise ServiceException(message=f"字典编号 {model.c} 已存在")
model.data_dict_stat="9" model.data_dict_stat="1"
watingList=await DataStdDao.check_std_dict_waiting(model.onum, query_db) watingList=await DataStdDao.check_std_dict_waiting(model.onum, query_db)
if len(watingList)>0 : # 如果 watingList 存在,意味着标准正在审批中 if len(watingList)>0 : # 如果 watingList 存在,意味着标准正在审批中

23
vue-fastapi-frontend/src/views/datastd/main/components/AddEditForm.vue

@ -40,13 +40,16 @@
</el-form-item> </el-form-item>
<el-form-item label="标准业务定义" prop="dataStdBusiDefn"> <el-form-item label="标准业务定义" prop="dataStdBusiDefn">
<el-input <el-input
v-model="formData.dataStdBusiDefn" type="textarea"
:disabled="isShow" v-model="formData.dataStdBusiDefn"
placeholder="请输入标准业务定义" :disabled="isShow"
clearable placeholder="请输入标准业务定义"
/> clearable
</el-form-item> rows="6"
/>
</el-form-item>
<el-form-item label="标准类型" prop="dataStdType"> <el-form-item label="标准类型" prop="dataStdType">
<el-select <el-select
@ -102,9 +105,9 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="安全等级" prop="securityLevel"> <el-form-item label="安全等级" prop="dataSecLvl">
<el-select <el-select
v-model="formData.securityLevel" v-model="formData.dataSecLvl"
:disabled="isShow" :disabled="isShow"
placeholder="请选择安全等级" placeholder="请选择安全等级"
> >
@ -314,7 +317,7 @@ const handleSubmit = () => {
const res = await api(submitData); const res = await api(submitData);
if (res.code === 200) { if (res.code === 200) {
ElMessage.success(props.isEdit ? '修改成功' : '新增成功'); ElMessage.success(props.isEdit ? '已提交修改审核' : '已提交新增审核');
emit('refresh'); emit('refresh');
handleClose(); handleClose();
} else { } else {

20
vue-fastapi-frontend/src/views/datastd/main/index.vue

@ -238,7 +238,19 @@
<el-table-column label="标准编号" prop="dataStdNo" width="150"></el-table-column> <el-table-column label="标准编号" prop="dataStdNo" width="150"></el-table-column>
<el-table-column label="标准英文名" prop="dataStdEngName" width="150"></el-table-column> <el-table-column label="标准英文名" prop="dataStdEngName" width="150"></el-table-column>
<el-table-column label="标准中文名" prop="dataStdCnName" width="150"></el-table-column> <el-table-column label="标准中文名" prop="dataStdCnName" width="150"></el-table-column>
<el-table-column label="标准业务定义" prop="dataStdBusiDefn" width="150"></el-table-column> <el-table-column label="标准业务定义" prop="dataStdBusiDefn" width="150">
<template #default="{ row }">
<el-tooltip effect="dark" :content="row.dataStdBusiDefn" placement="top">
<!-- 设置 title 属性便于右键复制全文 -->
<span :title="row.dataStdBusiDefn" style="cursor: text; user-select: text;">
{{ row.dataStdBusiDefn?.length > 20
? row.dataStdBusiDefn.slice(0, 20) + '...'
: row.dataStdBusiDefn }}
</span>
</el-tooltip>
</template>
</el-table-column>
<el-table-column label="类型" prop="dataStdType" width="150"> <el-table-column label="类型" prop="dataStdType" width="150">
<template #default="scope"> <template #default="scope">
<!-- 根据 dataClas 的值来显示不同颜色的标签 --> <!-- 根据 dataClas 的值来显示不同颜色的标签 -->
@ -260,7 +272,7 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="安全等级" prop="securityLevel" width="150"></el-table-column> <el-table-column label="安全等级" prop="dataSecLvl" width="150"></el-table-column>
<el-table-column label="来源系统" align="center" prop="srcSys"> <el-table-column label="来源系统" align="center" prop="srcSys">
<template #default="scope"> <template #default="scope">
<span > <span >
@ -297,7 +309,7 @@
:total="total" :total="total"
v-model:page="queryParams.pageNum" v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize" v-model:limit="queryParams.pageSize"
@pagination="handlePagination" @pagination="getList"
/> />
</el-col> </el-col>
</el-row> </el-row>
@ -526,7 +538,7 @@ const handleAdd = () => {
dataStdBusiDefn: '', dataStdBusiDefn: '',
dataStdSrc: '', dataStdSrc: '',
dataClas: '', dataClas: '',
securityLevel: '1', dataSecLvl: '1',
dataStdVest: '', dataStdVest: '',
typicalFld: '', typicalFld: '',

8
vue-fastapi-frontend/src/views/system/flow/dataStdMainAppr.vue

@ -16,7 +16,7 @@
<el-tag v-else type="warning">指标数据</el-tag> <el-tag v-else type="warning">指标数据</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="securityLevel" label="安全等级" align="center" /> <el-table-column prop="dataSecLvl" label="安全等级" align="center" />
<el-table-column label="来源系统" align="center" prop="srcSys"> <el-table-column label="来源系统" align="center" prop="srcSys">
<template #default="scope"> <template #default="scope">
<span > <span >
@ -121,11 +121,11 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item prop="securityLevel"> <el-form-item prop="dataSecLvl">
<template #label> <template #label>
<span :class="{ 'changed-label': isChanged(formData.securityLevel) }">安全等级</span> <span :class="{ 'changed-label': isChanged(formData.dataSecLvl) }">安全等级</span>
</template> </template>
<span :class="{ 'changed-value': isChanged(formData.securityLevel) }">{{ formatValue(formData.securityLevel) }}</span> <span :class="{ 'changed-value': isChanged(formData.dataSecLvl) }">{{ formatValue(formData.dataSecLvl) }}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">

Loading…
Cancel
Save