diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..e96f6e0
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/vue-fastapi-backend/module_admin/controller/cdplb_controller.py b/vue-fastapi-backend/module_admin/controller/cdplb_controller.py
new file mode 100644
index 0000000..a8a1f33
--- /dev/null
+++ b/vue-fastapi-backend/module_admin/controller/cdplb_controller.py
@@ -0,0 +1,38 @@
+from typing import List
+
+from fastapi import APIRouter, Depends, Request
+from sqlalchemy.ext.asyncio import AsyncSession
+from config.get_db import get_db
+from module_admin.entity.vo.user_vo import CurrentUserModel
+from module_admin.entity.vo.dataint_vo import CdplbPageObject, SaveCdplbModel
+from module_admin.service.login_service import LoginService
+from module_admin.service.cdplb_service import CdplbService
+from utils.response_util import ResponseUtil
+
+cdplbController = APIRouter(prefix='/dataint/cdplb', dependencies=[Depends(LoginService.get_current_user)])
+
+
+@cdplbController.get("/list")
+async def get_tsmcb_list(request: Request, cdplb_query: CdplbPageObject = Depends(CdplbPageObject.as_query),
+ query_db: AsyncSession = Depends(get_db),
+ current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
+ meta_query_result = await CdplbService.get_cdplb_list_services(query_db, cdplb_query, current_user)
+ return ResponseUtil.success(data=meta_query_result)
+
+
+@cdplbController.post("/save")
+async def save_tsmcb(request: Request,
+ saveCdplbModel: SaveCdplbModel,
+ query_db: AsyncSession = Depends(get_db),
+ current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
+ result = await CdplbService.save_cdplb(query_db, saveCdplbModel, current_user)
+ return ResponseUtil.success(msg=result.message)
+
+
+@cdplbController.post("/delete")
+async def delete_tsmcb(request: Request,
+ array: List[str],
+ query_db: AsyncSession = Depends(get_db),
+ current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
+ result = await CdplbService.delete_cdplb(query_db, array)
+ return ResponseUtil.success(msg=result.message)
diff --git a/vue-fastapi-backend/module_admin/controller/fccbd_controller.py b/vue-fastapi-backend/module_admin/controller/fccbd_controller.py
new file mode 100644
index 0000000..4e654c6
--- /dev/null
+++ b/vue-fastapi-backend/module_admin/controller/fccbd_controller.py
@@ -0,0 +1,38 @@
+from typing import List
+
+from fastapi import APIRouter, Depends, Request
+from sqlalchemy.ext.asyncio import AsyncSession
+from config.get_db import get_db
+from module_admin.entity.vo.user_vo import CurrentUserModel
+from module_admin.entity.vo.dataint_vo import FccbdPageObject, SaveFccbdModel
+from module_admin.service.login_service import LoginService
+from module_admin.service.fccbd_service import FccbdService
+from utils.response_util import ResponseUtil
+
+fccbdController = APIRouter(prefix='/dataint/fccbd', dependencies=[Depends(LoginService.get_current_user)])
+
+
+@fccbdController.get("/list")
+async def get_tsmcb_list(request: Request, fccbd_query: FccbdPageObject = Depends(FccbdPageObject.as_query),
+ query_db: AsyncSession = Depends(get_db),
+ current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
+ meta_query_result = await FccbdService.get_fccbd_list_services(query_db, fccbd_query, current_user)
+ return ResponseUtil.success(data=meta_query_result)
+
+
+@fccbdController.post("/save")
+async def save_tsmcb(request: Request,
+ saveFccbdModel: SaveFccbdModel,
+ query_db: AsyncSession = Depends(get_db),
+ current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
+ result = await FccbdService.save_fccbd(query_db, saveFccbdModel, current_user)
+ return ResponseUtil.success(msg=result.message)
+
+
+@fccbdController.post("/delete")
+async def delete_tsmcb(request: Request,
+ array: List[str],
+ query_db: AsyncSession = Depends(get_db),
+ current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
+ result = await FccbdService.delete_fccbd(query_db, array)
+ return ResponseUtil.success(msg=result.message)
diff --git a/vue-fastapi-backend/module_admin/controller/sscf_controller.py b/vue-fastapi-backend/module_admin/controller/sscf_controller.py
new file mode 100644
index 0000000..ffaec16
--- /dev/null
+++ b/vue-fastapi-backend/module_admin/controller/sscf_controller.py
@@ -0,0 +1,55 @@
+from typing import List
+
+from fastapi import APIRouter, Depends, Request
+from sqlalchemy.ext.asyncio import AsyncSession
+from config.get_db import get_db
+from module_admin.entity.vo.user_vo import CurrentUserModel
+from module_admin.entity.vo.dataint_vo import SscfPageObject, SaveSscfModel, TreeOperateModel
+from module_admin.service.login_service import LoginService
+from module_admin.service.sscf_service import SscfService
+from utils.response_util import ResponseUtil
+
+sscfController = APIRouter(prefix='/dataint/sscf', dependencies=[Depends(LoginService.get_current_user)])
+
+
+@sscfController.get("/list")
+async def get_tsmcb_list(request: Request, sscf_query: SscfPageObject = Depends(SscfPageObject.as_query),
+ query_db: AsyncSession = Depends(get_db),
+ current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
+ meta_query_result = await SscfService.get_sscf_list_services(query_db, sscf_query, current_user)
+ return ResponseUtil.success(data=meta_query_result)
+
+
+@sscfController.get("/tree")
+async def get_tsmcb_list(request: Request,
+ query_db: AsyncSession = Depends(get_db),
+ current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
+ meta_query_result = await SscfService.get_dasset_tree_services(query_db, current_user)
+ return ResponseUtil.success(data=meta_query_result)
+
+
+@sscfController.post("/tree")
+async def get_tsmcb_list(request: Request,
+ treeOperate: TreeOperateModel,
+ query_db: AsyncSession = Depends(get_db),
+ current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
+ meta_query_result = await SscfService.save_dasset_tree_services(query_db, treeOperate, current_user)
+ return ResponseUtil.success(data=meta_query_result)
+
+
+@sscfController.post("/save")
+async def save_tsmcb(request: Request,
+ saveSscfModel: SaveSscfModel,
+ query_db: AsyncSession = Depends(get_db),
+ current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
+ result = await SscfService.save_sscf(query_db, saveSscfModel, current_user)
+ return ResponseUtil.success(msg=result.message)
+
+
+@sscfController.post("/delete")
+async def delete_tsmcb(request: Request,
+ array: List[str],
+ query_db: AsyncSession = Depends(get_db),
+ current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
+ result = await SscfService.delete_sscf(query_db, array)
+ return ResponseUtil.success(msg=result.message)
diff --git a/vue-fastapi-backend/module_admin/controller/tsmcb_controller.py b/vue-fastapi-backend/module_admin/controller/tsmcb_controller.py
new file mode 100644
index 0000000..e4bfd62
--- /dev/null
+++ b/vue-fastapi-backend/module_admin/controller/tsmcb_controller.py
@@ -0,0 +1,41 @@
+from typing import List
+
+from fastapi import APIRouter, Depends, Request
+from sqlalchemy.ext.asyncio import AsyncSession
+from config.get_db import get_db
+from module_admin.entity.vo.user_vo import CurrentUserModel
+from module_admin.entity.vo.dataint_vo import TsmcbPageObject, SaveTsmcbModel
+from module_admin.service.login_service import LoginService
+from module_admin.service.tsmcb_service import TsmcbService
+from utils.response_util import ResponseUtil
+
+
+tsmcbController = APIRouter(prefix='/dataint/tsmcb', dependencies=[Depends(LoginService.get_current_user)])
+
+
+@tsmcbController.get("/list")
+async def get_tsmcb_list(request: Request, tsmcb_query: TsmcbPageObject = Depends(TsmcbPageObject.as_query),
+ query_db: AsyncSession = Depends(get_db),
+ current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
+ meta_query_result = await TsmcbService.get_tsmcb_list_services(query_db, tsmcb_query, current_user)
+ return ResponseUtil.success(data=meta_query_result)
+
+
+@tsmcbController.post("/save")
+async def save_tsmcb(request: Request,
+ saveTsmcbModel: SaveTsmcbModel,
+ query_db: AsyncSession = Depends(get_db),
+ current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
+ result = await TsmcbService.save_tsmcb(query_db, saveTsmcbModel, current_user)
+ return ResponseUtil.success(msg=result.message)
+
+@tsmcbController.post("/delete")
+async def delete_tsmcb(request: Request,
+ array: List[str],
+ query_db: AsyncSession = Depends(get_db),
+ current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
+ result = await TsmcbService.delete_tsmcb(query_db, array)
+ return ResponseUtil.success(msg=result.message)
+
+
+
diff --git a/vue-fastapi-backend/module_admin/controller/vecset_controller.py b/vue-fastapi-backend/module_admin/controller/vecset_controller.py
new file mode 100644
index 0000000..6881427
--- /dev/null
+++ b/vue-fastapi-backend/module_admin/controller/vecset_controller.py
@@ -0,0 +1,41 @@
+from typing import List
+
+from fastapi import APIRouter, Depends, Request
+from sqlalchemy.ext.asyncio import AsyncSession
+from config.get_db import get_db
+from module_admin.entity.vo.user_vo import CurrentUserModel
+from module_admin.entity.vo.dataint_vo import VecsetPageObject, SaveVecsetModel
+from module_admin.service.login_service import LoginService
+from module_admin.service.vecset_service import VecsetService
+from utils.response_util import ResponseUtil
+
+
+vecsetController = APIRouter(prefix='/dataint/vecset', dependencies=[Depends(LoginService.get_current_user)])
+
+
+@vecsetController.get("/list")
+async def get_vecset_list(request: Request, vecset_query: VecsetPageObject = Depends(VecsetPageObject.as_query),
+ query_db: AsyncSession = Depends(get_db),
+ current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
+ meta_query_result = await VecsetService.get_vecset_list_services(query_db, vecset_query, current_user)
+ return ResponseUtil.success(data=meta_query_result)
+
+
+@vecsetController.post("/save")
+async def save_Vecset(request: Request,
+ saveVecsetModel: SaveVecsetModel,
+ query_db: AsyncSession = Depends(get_db),
+ current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
+ result = await VecsetService.save_vecset(query_db, saveVecsetModel, current_user)
+ return ResponseUtil.success(msg=result.message)
+
+@vecsetController.post("/delete")
+async def delete_vecset(request: Request,
+ array: List[str],
+ query_db: AsyncSession = Depends(get_db),
+ current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
+ result = await VecsetService.delete_vecset(query_db, array)
+ return ResponseUtil.success(msg=result.message)
+
+
+
diff --git a/vue-fastapi-backend/module_admin/dao/cdplb_dao.py b/vue-fastapi-backend/module_admin/dao/cdplb_dao.py
new file mode 100644
index 0000000..3741a05
--- /dev/null
+++ b/vue-fastapi-backend/module_admin/dao/cdplb_dao.py
@@ -0,0 +1,53 @@
+from typing import List
+
+from sqlalchemy import desc, delete, func, select, update
+from sqlalchemy.ext.asyncio import AsyncSession
+from module_admin.entity.vo.user_vo import CurrentUserModel
+from module_admin.entity.vo.dataint_vo import CdplbPageObject
+from module_admin.entity.do.dataint_do import SysCdplb
+from sqlalchemy import select, text, cast, Integer, and_, or_, outerjoin, func, join
+from utils.page_util import PageUtil
+
+
+class CdplbDao:
+ """
+ 菜单管理模块数据库操作层
+ """
+
+ @classmethod
+ async def get_cdplb_list(cls, db: AsyncSession, cdplb_query: CdplbPageObject):
+ query = (
+ select(SysCdplb).where(
+ SysCdplb.bath_obj_tabName == cdplb_query.bath_obj_tabName if cdplb_query.bath_obj_tabName else True,
+ SysCdplb.bath_obj_fldName == cdplb_query.bath_obj_fldName if cdplb_query.bath_obj_fldName else True,
+ SysCdplb.pos_name == cdplb_query.pos_name if cdplb_query.pos_name else True,
+ SysCdplb.status == cdplb_query.status if cdplb_query.status else True
+ ).distinct()
+ )
+ query_result = await PageUtil.paginate(db, query, cdplb_query.page_num, cdplb_query.page_size, True)
+ return query_result
+
+ @classmethod
+ async def insert_cdplb(cls, db: AsyncSession, sysCdplb: SysCdplb):
+ db.add(sysCdplb)
+ await db.flush()
+ return sysCdplb
+
+ @classmethod
+ async def get_cdplb_by_id(cls, db: AsyncSession, onum: str):
+ result = (
+ (
+ await db.execute(
+ select(SysCdplb).where(SysCdplb.onum == onum).distinct()
+ )
+ ).scalars().first()
+ )
+ return result
+
+ @classmethod
+ async def update_cdplb(cls, db: AsyncSession, saveObj: dict):
+ await db.execute(update(SysCdplb), [saveObj])
+
+ @classmethod
+ async def delete_cdplb(cls, db: AsyncSession, array: List[str]):
+ await db.execute(delete(SysCdplb).where(SysCdplb.onum.in_(array)))
diff --git a/vue-fastapi-backend/module_admin/dao/fccbd_dao.py b/vue-fastapi-backend/module_admin/dao/fccbd_dao.py
new file mode 100644
index 0000000..827aa9d
--- /dev/null
+++ b/vue-fastapi-backend/module_admin/dao/fccbd_dao.py
@@ -0,0 +1,53 @@
+from typing import List
+
+from sqlalchemy import desc, delete, func, select, update
+from sqlalchemy.ext.asyncio import AsyncSession
+from module_admin.entity.vo.user_vo import CurrentUserModel
+from module_admin.entity.vo.dataint_vo import FccbdPageObject
+from module_admin.entity.do.dataint_do import SysFccbd
+from sqlalchemy import select, text, cast, Integer, and_, or_, outerjoin, func, join
+from utils.page_util import PageUtil
+
+
+class FccbdDao:
+ """
+ 菜单管理模块数据库操作层
+ """
+
+ @classmethod
+ async def get_fccbd_list(cls, db: AsyncSession, fccbd_query: FccbdPageObject):
+ query = (
+ select(SysFccbd).where(
+ SysFccbd.pos == fccbd_query.pos if fccbd_query.pos else True,
+ SysFccbd.pos_name == fccbd_query.pos_name if fccbd_query.pos_name else True,
+ SysFccbd.term == fccbd_query.term if fccbd_query.term else True,
+ SysFccbd.status == fccbd_query.status if fccbd_query.status else True
+ ).distinct()
+ )
+ query_result = await PageUtil.paginate(db, query, fccbd_query.page_num, fccbd_query.page_size, True)
+ return query_result
+
+ @classmethod
+ async def insert_fccbd(cls, db: AsyncSession, sysFccbd: SysFccbd):
+ db.add(sysFccbd)
+ await db.flush()
+ return sysFccbd
+
+ @classmethod
+ async def get_fccbd_by_id(cls, db: AsyncSession, onum: str):
+ result = (
+ (
+ await db.execute(
+ select(SysFccbd).where(SysFccbd.onum == onum).distinct()
+ )
+ ).scalars().first()
+ )
+ return result
+
+ @classmethod
+ async def update_fccbd(cls, db: AsyncSession, saveObj: dict):
+ await db.execute(update(SysFccbd), [saveObj])
+
+ @classmethod
+ async def delete_fccbd(cls, db: AsyncSession, array: List[str]):
+ await db.execute(delete(SysFccbd).where(SysFccbd.onum.in_(array)))
diff --git a/vue-fastapi-backend/module_admin/dao/sscf_dao.py b/vue-fastapi-backend/module_admin/dao/sscf_dao.py
new file mode 100644
index 0000000..4d38615
--- /dev/null
+++ b/vue-fastapi-backend/module_admin/dao/sscf_dao.py
@@ -0,0 +1,96 @@
+import uuid
+from typing import List
+
+from sqlalchemy import desc, delete, func, select, update
+from sqlalchemy.ext.asyncio import AsyncSession
+from module_admin.entity.vo.user_vo import CurrentUserModel
+from module_admin.entity.vo.dataint_vo import SscfPageObject, TreeOperateModel
+from module_admin.entity.do.dataint_do import SysSscf, SysDassetTree
+from sqlalchemy import select, text, cast, Integer, and_, or_, outerjoin, func, join
+from utils.page_util import PageUtil
+
+
+class SscfDao:
+ """
+ 菜单管理模块数据库操作层
+ """
+
+ @classmethod
+ async def get_sscf_list(cls, db: AsyncSession, sscf_query: SscfPageObject):
+ query = (
+ select(SysSscf).where(
+ SysSscf.keyword == sscf_query.keyword if sscf_query.keyword else True,
+ SysSscf.type == sscf_query.type if sscf_query.type else True,
+ SysSscf.dasset_id == sscf_query.dasset_id if sscf_query.dasset_id else True,
+ SysSscf.status == sscf_query.status if sscf_query.status else True
+ ).distinct()
+ )
+ query_result = await PageUtil.paginate(db, query, sscf_query.page_num, sscf_query.page_size, True)
+ return query_result
+
+ @classmethod
+ async def insert_sscf(cls, db: AsyncSession, sysSscf: SysSscf):
+ db.add(sysSscf)
+ await db.flush()
+ return sysSscf
+
+ @classmethod
+ async def get_sscf_by_id(cls, db: AsyncSession, onum: str):
+ result = (
+ (
+ await db.execute(
+ select(SysSscf).where(SysSscf.onum == onum).distinct()
+ )
+ ).scalars().first()
+ )
+ return result
+
+ @classmethod
+ async def update_sscf(cls, db: AsyncSession, saveObj: dict):
+ await db.execute(update(SysSscf), [saveObj])
+
+ @classmethod
+ async def delete_sscf(cls, db: AsyncSession, array: List[str]):
+ await db.execute(delete(SysSscf).where(SysSscf.onum.in_(array)))
+
+ @classmethod
+ async def get_dasset_tree(cls, db: AsyncSession):
+ result = (
+ (
+ await db.execute(
+ select(SysDassetTree).distinct()
+ )
+ ).scalars().all()
+ )
+ return result
+
+ @classmethod
+ async def get_dasset_tree_by_code(cls, db: AsyncSession, code: str):
+ result = (
+ (
+ await db.execute(
+ select(SysDassetTree).where(SysDassetTree.dasset_code == code).distinct()
+ )
+ ).scalars().first()
+ )
+ return result
+
+ @classmethod
+ async def insert_dasset_tree(cls, db: AsyncSession, treeOperate: TreeOperateModel):
+ tree = SysDassetTree()
+ tree.onum = uuid.uuid4()
+ tree.dasset_code = treeOperate.dasset_code
+ tree.dasset_name = treeOperate.dasset_name
+ tree.parent_code = "1"
+ db.add(tree)
+ await db.flush()
+ return tree
+
+ @classmethod
+ async def save_dasset_tree(cls, db: AsyncSession, treeOperate: dict):
+ await db.execute(update(SysDassetTree), [treeOperate])
+
+ @classmethod
+ async def delete_dasset_tree(cls, db: AsyncSession, onum: str):
+ await db.execute(delete(SysDassetTree).where(SysDassetTree.onum == onum))
+
diff --git a/vue-fastapi-backend/module_admin/dao/tsmcb_dao.py b/vue-fastapi-backend/module_admin/dao/tsmcb_dao.py
new file mode 100644
index 0000000..6b5dd72
--- /dev/null
+++ b/vue-fastapi-backend/module_admin/dao/tsmcb_dao.py
@@ -0,0 +1,53 @@
+from typing import List
+
+from sqlalchemy import desc, delete, func, select, update
+from sqlalchemy.ext.asyncio import AsyncSession
+from module_admin.entity.vo.user_vo import CurrentUserModel
+from module_admin.entity.vo.dataint_vo import TsmcbPageObject
+from module_admin.entity.do.dataint_do import SysTsmcb
+from sqlalchemy import select, text, cast, Integer, and_, or_, outerjoin, func, join
+from utils.page_util import PageUtil
+
+
+class TsmcbDao:
+ """
+ 菜单管理模块数据库操作层
+ """
+
+ @classmethod
+ async def get_tsmcb_list(cls, db: AsyncSession, tsmcb_query: TsmcbPageObject):
+ query = (
+ select(SysTsmcb).where(
+ SysTsmcb.pos == tsmcb_query.pos if tsmcb_query.pos else True,
+ SysTsmcb.type == tsmcb_query.type if tsmcb_query.type else True,
+ SysTsmcb.std_rpl_str == tsmcb_query.std_rpl_str if tsmcb_query.std_rpl_str else True,
+ SysTsmcb.status == tsmcb_query.status if tsmcb_query.status else True
+ ).distinct()
+ )
+ query_result = await PageUtil.paginate(db, query, tsmcb_query.page_num, tsmcb_query.page_size, True)
+ return query_result
+
+ @classmethod
+ async def insert_tsmcb(cls, db: AsyncSession, sysTsmcb: SysTsmcb):
+ db.add(sysTsmcb)
+ await db.flush()
+ return sysTsmcb
+
+ @classmethod
+ async def get_tsmcb_by_id(cls, db: AsyncSession, onum: str):
+ result = (
+ (
+ await db.execute(
+ select(SysTsmcb).where(SysTsmcb.onum == onum).distinct()
+ )
+ ).scalars().first()
+ )
+ return result
+
+ @classmethod
+ async def update_tsmcb(cls, db: AsyncSession, saveObj: dict):
+ await db.execute(update(SysTsmcb), [saveObj])
+
+ @classmethod
+ async def delete_tsmcb(cls, db: AsyncSession, array: List[str]):
+ await db.execute(delete(SysTsmcb).where(SysTsmcb.onum.in_(array)))
diff --git a/vue-fastapi-backend/module_admin/dao/vecset_dao.py b/vue-fastapi-backend/module_admin/dao/vecset_dao.py
new file mode 100644
index 0000000..7c31591
--- /dev/null
+++ b/vue-fastapi-backend/module_admin/dao/vecset_dao.py
@@ -0,0 +1,54 @@
+from typing import List
+
+from sqlalchemy import desc, delete, func, select, update
+from sqlalchemy.ext.asyncio import AsyncSession
+from module_admin.entity.vo.user_vo import CurrentUserModel
+from module_admin.entity.vo.dataint_vo import VecsetPageObject
+from module_admin.entity.do.dataint_do import SysVecset
+from sqlalchemy import select, text, cast, Integer, and_, or_, outerjoin, func, join
+from utils.page_util import PageUtil
+
+
+class VecsetDao:
+ """
+ 菜单管理模块数据库操作层
+ """
+
+ @classmethod
+ async def get_vecset_list(cls, db: AsyncSession, vecset_query: VecsetPageObject):
+ query = (
+ select(SysVecset).where(
+ SysVecset.dasset_id == vecset_query.dasset_id if vecset_query.dasset_id else True,
+ SysVecset.stab_name == vecset_query.stab_name if vecset_query.stab_name else True,
+ SysVecset.squery == vecset_query.squery if vecset_query.squery else True,
+ SysVecset.sanal_plan == vecset_query.sanal_plan if vecset_query.sanal_plan else True,
+ SysVecset.status == vecset_query.status if vecset_query.status else True
+ ).distinct()
+ )
+ query_result = await PageUtil.paginate(db, query, vecset_query.page_num, vecset_query.page_size, True)
+ return query_result
+
+ @classmethod
+ async def insert_vecset(cls, db: AsyncSession, sysVecset: SysVecset):
+ db.add(sysVecset)
+ await db.flush()
+ return sysVecset
+
+ @classmethod
+ async def get_vecset_by_id(cls, db: AsyncSession, onum: str):
+ result = (
+ (
+ await db.execute(
+ select(SysVecset).where(SysVecset.onum == onum).distinct()
+ )
+ ).scalars().first()
+ )
+ return result
+
+ @classmethod
+ async def update_vecset(cls, db: AsyncSession, saveObj: dict):
+ await db.execute(update(SysVecset), [saveObj])
+
+ @classmethod
+ async def delete_vecset(cls, db: AsyncSession, array: List[str]):
+ await db.execute(delete(SysVecset).where(SysVecset.onum.in_(array)))
diff --git a/vue-fastapi-backend/module_admin/entity/do/dataint_do.py b/vue-fastapi-backend/module_admin/entity/do/dataint_do.py
new file mode 100644
index 0000000..90c35ee
--- /dev/null
+++ b/vue-fastapi-backend/module_admin/entity/do/dataint_do.py
@@ -0,0 +1,123 @@
+from sqlalchemy import Column, Float, Integer, String, Text, DateTime, Boolean, ForeignKey, UniqueConstraint, Index, \
+ text
+from config.database import Base
+from datetime import datetime
+
+
+class SysTsmcb(Base):
+ """
+ 词性文本替换表
+ """
+ __tablename__ = 't_pos_txt_rpl'
+
+ onum = Column(String(50), primary_key=True, comment='序号')
+ pos = Column(String(500, collation='utf8_general_ci'), comment='词性')
+ type = Column(String(500, collation='utf8_general_ci'), comment='类型')
+ std_rpl_str = Column(String(500, collation='utf8_general_ci'), comment='标准化替换字符串')
+ prefix_supp_str = Column(String(500, collation='utf8_general_ci'), comment='前缀补充字符串')
+ suffix_supp_str = Column(String(500, collation='utf8_general_ci'), comment='后缀补充字符串')
+ status = Column(String(1, collation='utf8_general_ci'), default='0', comment='状态(0正常 1停用)')
+ create_by = Column(String(64), default='', comment='创建者')
+ create_time = Column(DateTime, comment='创建时间')
+ update_by = Column(String(64), default='', comment='更新者')
+ update_time = Column(DateTime, comment='更新时间')
+ remark = Column(String(500), nullable=True, default='', comment='备注')
+
+
+class SysFccbd(Base):
+ """
+ 词典配置表
+ """
+ __tablename__ = 't_dict_config'
+
+ onum = Column(String(50), primary_key=True, comment='序号')
+ term = Column(String(500, collation='utf8_general_ci'), comment='词语')
+ freq = Column(String(500, collation='utf8_general_ci'), comment='频次')
+ pos = Column(String(500, collation='utf8_general_ci'), comment='词性')
+ pos_name = Column(String(500, collation='utf8_general_ci'), comment='词性名称')
+ status = Column(String(500, collation='utf8_general_ci'), comment='状态(0正常 1停用)')
+ create_by = Column(String(500, collation='utf8_general_ci'), comment='创建者')
+ create_time = Column(DateTime, comment='创建时间')
+ update_by = Column(String(64, collation='utf8_general_ci'), comment='更新者')
+ update_time = Column(DateTime, comment='更新时间')
+ remark = Column(String(500, collation='utf8_general_ci'), comment='备注')
+
+
+class SysCdplb(Base):
+ """
+ 词典配置表
+ """
+ __tablename__ = 't_bath_dict_config'
+
+ onum = Column(String(50, collation='utf8_general_ci'), primary_key=True, comment='序号')
+ bath_obj_tab_name = Column(String(500, collation='utf8_general_ci'), comment='批量对象表名')
+ bath_obj_fld_name = Column(String(500, collation='utf8_general_ci'), comment='批里对象字段名')
+ freq = Column(String(500, collation='utf8_general_ci'), comment='频次')
+ pos = Column(String(500, collation='utf8_general_ci'), comment='词性')
+ pos_name = Column(String(500, collation='utf8_general_ci'), comment='词性名称')
+ status = Column(String(1, collation='utf8_general_ci'), comment='状态(0正常 1停用)')
+ create_by = Column(String(64, collation='utf8_general_ci'), comment='创建者')
+ create_time = Column(DateTime, comment='创建时间')
+ update_by = Column(String(64, collation='utf8_general_ci'), comment='更新者')
+ update_time = Column(DateTime, comment='更新时间')
+ remark = Column(String(500, collation='utf8_general_ci'), comment='备注')
+
+
+class SysSscf(Base):
+ """
+ 短句配置表
+ """
+ __tablename__ = 't_keyword'
+
+ onum = Column(String(60), primary_key=True, comment='序号')
+ dasset_id = Column(String(500), comment='数据域名ID')
+ keywords = Column(String(500), comment='关键词JSON') # 根据你的注释,这里使用了String而不是JSON
+ keyword = Column(String(500), comment='关键词')
+ algorithm = Column(String(500), comment='算法')
+ order = Column(String(500), comment='指令')
+ whole_sentence = Column(String(500), comment='整句')
+ type = Column(String(500), comment='类型')
+ supp_expl = Column(String(500), comment='补充说明')
+ bak1 = Column(String(500), comment='备注1')
+ bak2 = Column(String(500), comment='备注2')
+ bak3 = Column(String(500), comment='备注3')
+ bak4 = Column(String(500), comment='备注4')
+ bak5 = Column(String(500), comment='备注5')
+ status = Column(String(1), comment='有效标志')
+ del_flag = Column(String(1), comment='删除标志')
+ update_time = Column(DateTime, comment='更新时间')
+ update_by = Column(String(50), comment='更新者')
+ create_time = Column(DateTime, comment='创建时间')
+ create_by = Column(String(50), comment='创建者')
+
+
+class SysDassetTree(Base):
+ __tablename__ = 't_dasset_tree'
+
+ onum = Column(String(60), primary_key=True, comment='序号')
+ dasset_code = Column(String(500), comment='code')
+ dasset_name = Column(String(500), comment='name') # 根据你的注释,这里使用了String而不是JSON
+ parent_code = Column(String(500), comment='父节点code')
+
+
+class SysVecset(Base):
+ """
+ 智能语句配置表
+ """
+ __tablename__ = 't_vecset'
+
+ onum = Column(String(60), primary_key=True, comment='序号')
+ dasset_id = Column(String(500), comment='数据域名')
+ squery = Column(String(500), comment='查询语句')
+ sanal_plan = Column(String(500), comment='分析方法')
+ sintnt_term = Column(String(500), comment='意图词')
+ stab_name = Column(String(500), comment='表名称')
+ ssql = Column(String(8000), comment='参考sql')
+ sim_thrsh = Column(String(500), comment='相似阈值')
+ status = Column(String(1), comment='状态(0正常 1停用)')
+ del_flag = Column(String(1), comment='删除标志(0代表存在 2代表删除)')
+ create_by = Column(String(64), comment='创建者')
+ create_time = Column(DateTime, comment='创建时间')
+ update_by = Column(String(64), comment='更新者')
+ update_time = Column(DateTime, comment='更新时间')
+ remark = Column(String(500), comment='备注')
diff --git a/vue-fastapi-backend/module_admin/entity/vo/dataint_vo.py b/vue-fastapi-backend/module_admin/entity/vo/dataint_vo.py
new file mode 100644
index 0000000..3b53989
--- /dev/null
+++ b/vue-fastapi-backend/module_admin/entity/vo/dataint_vo.py
@@ -0,0 +1,127 @@
+from pydantic import BaseModel
+from typing import Union, Optional, List
+from module_admin.annotation.pydantic_annotation import as_query
+from pydantic import BaseModel, ConfigDict, Field, model_validator
+from pydantic.alias_generators import to_camel
+
+
+@as_query
+class TsmcbPageObject(BaseModel):
+ model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
+ page_num: int
+ page_size: int
+ pos: Optional[str] = None
+ type: Optional[str] = None
+ std_rpl_str: Optional[str] = None
+ status: Optional[str] = None
+
+
+class SaveTsmcbModel(BaseModel):
+ model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
+ onum: Optional[str] = None
+ pos: Optional[str] = None
+ type: Optional[str] = None
+ std_rpl_str: Optional[str] = None
+ prefix_supp_str: Optional[str] = None
+ suffix_supp_str: Optional[str] = None
+ status: Optional[str] = None
+
+
+@as_query
+class FccbdPageObject(BaseModel):
+ model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
+ page_num: int
+ page_size: int
+ pos: Optional[str] = None
+ term: Optional[str] = None
+ pos_name: Optional[str] = None
+ status: Optional[str] = None
+
+
+class SaveFccbdModel(BaseModel):
+ model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
+ onum: Optional[str] = None
+ term: Optional[str] = None
+ freq: Optional[str] = None
+ pos: Optional[str] = None
+ pos_name: Optional[str] = None
+ status: Optional[str] = None
+
+
+@as_query
+class CdplbPageObject(BaseModel):
+ model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
+ page_num: int
+ page_size: int
+ bath_obj_tabName: Optional[str] = None
+ bath_obj_fldName: Optional[str] = None
+ pos_name: Optional[str] = None
+ status: Optional[str] = None
+
+
+class SaveCdplbModel(BaseModel):
+ model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
+ onum: Optional[str] = None
+ bath_obj_tab_name: Optional[str] = None
+ bath_obj_fld_name: Optional[str] = None
+ freq: Optional[str] = None
+ pos: Optional[str] = None
+ pos_name: Optional[str] = None
+ status: Optional[str] = None
+
+
+@as_query
+class SscfPageObject(BaseModel):
+ model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
+ page_num: int
+ page_size: int
+ keyword: Optional[str] = None
+ type: Optional[str] = None
+ dasset_id: Optional[str] = None
+ status: Optional[str] = None
+
+
+class SaveSscfModel(BaseModel):
+ model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
+ onum: Optional[str] = None
+ dasset_id: Optional[str] = None
+ keyword: Optional[str] = None
+ status: Optional[str] = None
+ algorithm: Optional[str] = None
+ order: Optional[str] = None
+ whole_sentence: Optional[str] = None
+ type: Optional[str] = None
+ supp_expl: Optional[str] = None
+
+@as_query
+class VecsetPageObject(BaseModel):
+ model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
+ page_num: int
+ page_size: int
+ stab_name: Optional[str] = None
+ squery: Optional[str] = None
+ sanal_plan: Optional[str] = None
+ dasset_id: Optional[str] = None
+ status: Optional[str] = None
+
+
+class SaveVecsetModel(BaseModel):
+ model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
+ onum: Optional[str] = None
+ dasset_id: Optional[str] = None
+ stab_name: Optional[str] = None
+ squery: Optional[str] = None
+ sanal_plan: Optional[str] = None
+ ssql: Optional[str] = None
+ sintnt_term: Optional[str] = None
+ status: Optional[str] = None
+ sim_thrsh: Optional[str] = None
+
+
+class TreeOperateModel(BaseModel):
+ model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
+ operate: Optional[str] = None
+ onum: Optional[str] = None
+ dasset_code: Optional[str] = None
+ dasset_name: Optional[str] = None
+
diff --git a/vue-fastapi-backend/module_admin/service/cdplb_service.py b/vue-fastapi-backend/module_admin/service/cdplb_service.py
new file mode 100644
index 0000000..51b0d69
--- /dev/null
+++ b/vue-fastapi-backend/module_admin/service/cdplb_service.py
@@ -0,0 +1,54 @@
+import json
+import uuid
+
+from typing import Optional, List
+from sqlalchemy.ext.asyncio import AsyncSession
+from module_admin.entity.vo.common_vo import CrudResponseModel
+from module_admin.entity.vo.user_vo import CurrentUserModel
+from module_admin.entity.vo.dataint_vo import CdplbPageObject, SaveCdplbModel
+from module_admin.entity.do.dataint_do import SysCdplb
+from module_admin.dao.cdplb_dao import CdplbDao
+from exceptions.exception import ServiceException, ServiceWarning
+from datetime import datetime
+from utils.common_util import CamelCaseUtil
+
+
+class CdplbService:
+ """
+ 智能问答服务层
+ """
+
+ @classmethod
+ async def get_cdplb_list_services(cls, result_db: AsyncSession, cdplb_query: CdplbPageObject, current_user: CurrentUserModel):
+ result = await CdplbDao.get_cdplb_list(result_db, cdplb_query)
+ return CamelCaseUtil.transform_result(result)
+
+ @classmethod
+ async def save_cdplb(cls, result_db: AsyncSession, saveCdplbModel: SaveCdplbModel, current_user: CurrentUserModel):
+ if saveCdplbModel.onum is None:
+ # add
+ saveCdplbModel.onum = uuid.uuid4()
+ addObj = SysCdplb(**saveCdplbModel.model_dump())
+ addObj.create_by = current_user.user.user_name
+ addObj.create_time = datetime.now()
+ addObj.update_by = current_user.user.user_name
+ addObj.update_time = datetime.now()
+ await CdplbDao.insert_cdplb(result_db, addObj)
+ else:
+ # update
+ oldObj = await CdplbDao.get_cdplb_by_id(result_db, saveCdplbModel.onum)
+ if oldObj is None:
+ raise ServiceException(message='所改对象不存在')
+ saveObj = saveCdplbModel.model_dump(exclude_unset=True)
+ saveObj['update_by'] = current_user.user.user_name
+ saveObj['update_time'] = datetime.now()
+ await CdplbDao.update_cdplb(result_db, saveObj)
+ await result_db.commit()
+ return CrudResponseModel(is_success=True, message='操作成功')
+
+ @classmethod
+ async def delete_cdplb(cls, db: AsyncSession, array: List[str]):
+ await CdplbDao.delete_cdplb(db, array)
+ await db.commit()
+ return CrudResponseModel(is_success=True, message='操作成功')
+
diff --git a/vue-fastapi-backend/module_admin/service/fccbd_service.py b/vue-fastapi-backend/module_admin/service/fccbd_service.py
new file mode 100644
index 0000000..c5a4e0b
--- /dev/null
+++ b/vue-fastapi-backend/module_admin/service/fccbd_service.py
@@ -0,0 +1,54 @@
+import json
+import uuid
+
+from typing import Optional, List
+from sqlalchemy.ext.asyncio import AsyncSession
+from module_admin.entity.vo.common_vo import CrudResponseModel
+from module_admin.entity.vo.user_vo import CurrentUserModel
+from module_admin.entity.vo.dataint_vo import FccbdPageObject, SaveFccbdModel
+from module_admin.entity.do.dataint_do import SysFccbd
+from module_admin.dao.fccbd_dao import FccbdDao
+from exceptions.exception import ServiceException, ServiceWarning
+from datetime import datetime
+from utils.common_util import CamelCaseUtil
+
+
+class FccbdService:
+ """
+ 智能问答服务层
+ """
+
+ @classmethod
+ async def get_fccbd_list_services(cls, result_db: AsyncSession, fccbd_query: FccbdPageObject, current_user: CurrentUserModel):
+ result = await FccbdDao.get_fccbd_list(result_db, fccbd_query)
+ return CamelCaseUtil.transform_result(result)
+
+ @classmethod
+ async def save_fccbd(cls, result_db: AsyncSession, saveFccbdModel: SaveFccbdModel, current_user: CurrentUserModel):
+ if saveFccbdModel.onum is None:
+ # add
+ saveFccbdModel.onum = uuid.uuid4()
+ addObj = SysFccbd(**saveFccbdModel.model_dump())
+ addObj.create_by = current_user.user.user_name
+ addObj.create_time = datetime.now()
+ addObj.update_by = current_user.user.user_name
+ addObj.update_time = datetime.now()
+ await FccbdDao.insert_fccbd(result_db, addObj)
+ else:
+ # update
+ oldObj = await FccbdDao.get_fccbd_by_id(result_db, saveFccbdModel.onum)
+ if oldObj is None:
+ raise ServiceException(message='所改对象不存在')
+ saveObj = saveFccbdModel.model_dump(exclude_unset=True)
+ saveObj['update_by'] = current_user.user.user_name
+ saveObj['update_time'] = datetime.now()
+ await FccbdDao.update_fccbd(result_db, saveObj)
+ await result_db.commit()
+ return CrudResponseModel(is_success=True, message='操作成功')
+
+ @classmethod
+ async def delete_fccbd(cls, db: AsyncSession, array: List[str]):
+ await FccbdDao.delete_fccbd(db, array)
+ await db.commit()
+ return CrudResponseModel(is_success=True, message='操作成功')
+
diff --git a/vue-fastapi-backend/module_admin/service/sscf_service.py b/vue-fastapi-backend/module_admin/service/sscf_service.py
new file mode 100644
index 0000000..fcaca73
--- /dev/null
+++ b/vue-fastapi-backend/module_admin/service/sscf_service.py
@@ -0,0 +1,96 @@
+import json
+import uuid
+
+from typing import Optional, List
+from sqlalchemy.ext.asyncio import AsyncSession
+from module_admin.entity.vo.common_vo import CrudResponseModel
+from module_admin.entity.vo.user_vo import CurrentUserModel
+from module_admin.entity.vo.dataint_vo import SscfPageObject, SaveSscfModel, TreeOperateModel
+from module_admin.entity.do.dataint_do import SysSscf
+from module_admin.dao.sscf_dao import SscfDao
+from exceptions.exception import ServiceException, ServiceWarning
+from datetime import datetime
+from utils.common_util import CamelCaseUtil
+
+
+class SscfService:
+ """
+ 智能问答服务层
+ """
+
+ @classmethod
+ async def get_sscf_list_services(cls, result_db: AsyncSession, sscf_query: SscfPageObject, current_user: CurrentUserModel):
+ result = await SscfDao.get_sscf_list(result_db, sscf_query)
+ return CamelCaseUtil.transform_result(result)
+
+ @classmethod
+ async def get_dasset_tree_services(cls, result_db: AsyncSession, current_user: CurrentUserModel):
+ result = await SscfDao.get_dasset_tree(result_db)
+ return CamelCaseUtil.transform_result(result)
+
+ @classmethod
+ async def save_dasset_tree_services(cls, result_db: AsyncSession, treeOperate: TreeOperateModel, current_user: CurrentUserModel):
+ tree = await SscfDao.get_dasset_tree_by_code(result_db, treeOperate.dasset_code)
+ if treeOperate.operate == 'ADD':
+ if tree:
+ raise ServiceException(message="已存在code为:"+treeOperate.dasset_code+"的目录,无法重复新增,请修改code后新增")
+ else:
+ await SscfDao.insert_dasset_tree(result_db, treeOperate)
+ await result_db.commit()
+ if treeOperate.operate == 'UPDATE':
+ if tree:
+ if tree.onum == treeOperate.onum:
+ treeObj = dict(
+ onum=treeOperate.onum,
+ dasset_code=treeOperate.dasset_code,
+ dasset_name=treeOperate.dasset_name
+ )
+ await SscfDao.save_dasset_tree(result_db, treeObj)
+ await result_db.commit()
+ else:
+ raise ServiceException(message="已存在code为:"+treeOperate.dasset_code+"的目录")
+ else:
+ treeObj = dict(
+ onum=treeOperate.onum,
+ dasset_code=treeOperate.dasset_code,
+ dasset_name=treeOperate.dasset_name
+ )
+ await SscfDao.save_dasset_tree(result_db, treeObj)
+ await result_db.commit()
+ if treeOperate.operate == 'DELETE':
+ if tree:
+ await SscfDao.delete_dasset_tree(result_db, treeOperate.onum)
+ await result_db.commit()
+ else:
+ raise ServiceException(mssage="不存在code为:"+treeOperate.dasset_code+"的目录")
+ return CrudResponseModel(is_success=True, message='操作成功')
+
+ @classmethod
+ async def save_sscf(cls, result_db: AsyncSession, saveSscfModel: SaveSscfModel, current_user: CurrentUserModel):
+ if saveSscfModel.onum is None:
+ # add
+ saveSscfModel.onum = uuid.uuid4()
+ addObj = SysSscf(**saveSscfModel.model_dump())
+ addObj.create_by = current_user.user.user_name
+ addObj.create_time = datetime.now()
+ addObj.update_by = current_user.user.user_name
+ addObj.update_time = datetime.now()
+ await SscfDao.insert_sscf(result_db, addObj)
+ else:
+ # update
+ oldObj = await SscfDao.get_sscf_by_id(result_db, saveSscfModel.onum)
+ if oldObj is None:
+ raise ServiceException(message='所改对象不存在')
+ saveObj = saveSscfModel.model_dump(exclude_unset=True)
+ saveObj['update_by'] = current_user.user.user_name
+ saveObj['update_time'] = datetime.now()
+ await SscfDao.update_sscf(result_db, saveObj)
+ await result_db.commit()
+ return CrudResponseModel(is_success=True, message='操作成功')
+
+ @classmethod
+ async def delete_sscf(cls, db: AsyncSession, array: List[str]):
+ await SscfDao.delete_sscf(db, array)
+ await db.commit()
+ return CrudResponseModel(is_success=True, message='操作成功')
+
diff --git a/vue-fastapi-backend/module_admin/service/tsmcb_service.py b/vue-fastapi-backend/module_admin/service/tsmcb_service.py
new file mode 100644
index 0000000..e253289
--- /dev/null
+++ b/vue-fastapi-backend/module_admin/service/tsmcb_service.py
@@ -0,0 +1,54 @@
+import json
+import uuid
+
+from typing import Optional, List
+from sqlalchemy.ext.asyncio import AsyncSession
+from module_admin.entity.vo.common_vo import CrudResponseModel
+from module_admin.entity.vo.user_vo import CurrentUserModel
+from module_admin.entity.vo.dataint_vo import TsmcbPageObject, SaveTsmcbModel
+from module_admin.entity.do.dataint_do import SysTsmcb
+from module_admin.dao.tsmcb_dao import TsmcbDao
+from exceptions.exception import ServiceException, ServiceWarning
+from datetime import datetime
+from utils.common_util import CamelCaseUtil
+
+
+class TsmcbService:
+ """
+ 智能问答服务层
+ """
+
+ @classmethod
+ async def get_tsmcb_list_services(cls, result_db: AsyncSession, tsmcb_query: TsmcbPageObject, current_user: CurrentUserModel):
+ result = await TsmcbDao.get_tsmcb_list(result_db, tsmcb_query)
+ return CamelCaseUtil.transform_result(result)
+
+ @classmethod
+ async def save_tsmcb(cls, result_db: AsyncSession, saveTsmcbModel: SaveTsmcbModel, current_user: CurrentUserModel):
+ if saveTsmcbModel.onum is None:
+ # add
+ saveTsmcbModel.onum = uuid.uuid4()
+ addObj = SysTsmcb(**saveTsmcbModel.model_dump())
+ addObj.create_by = current_user.user.user_name
+ addObj.create_time = datetime.now()
+ addObj.update_by = current_user.user.user_name
+ addObj.update_time = datetime.now()
+ await TsmcbDao.insert_tsmcb(result_db, addObj)
+ else:
+ # update
+ oldObj = await TsmcbDao.get_tsmcb_by_id(result_db, saveTsmcbModel.onum)
+ if oldObj is None:
+ raise ServiceException(message='所改对象不存在')
+ saveObj = saveTsmcbModel.model_dump(exclude_unset=True)
+ saveObj['update_by'] = current_user.user.user_name
+ saveObj['update_time'] = datetime.now()
+ await TsmcbDao.update_tsmcb(result_db, saveObj)
+ await result_db.commit()
+ return CrudResponseModel(is_success=True, message='操作成功')
+
+ @classmethod
+ async def delete_tsmcb(cls, db: AsyncSession, array: List[str]):
+ await TsmcbDao.delete_tsmcb(db, array)
+ await db.commit()
+ return CrudResponseModel(is_success=True, message='操作成功')
+
diff --git a/vue-fastapi-backend/module_admin/service/vecset_service.py b/vue-fastapi-backend/module_admin/service/vecset_service.py
new file mode 100644
index 0000000..a623be1
--- /dev/null
+++ b/vue-fastapi-backend/module_admin/service/vecset_service.py
@@ -0,0 +1,54 @@
+import json
+import uuid
+
+from typing import Optional, List
+from sqlalchemy.ext.asyncio import AsyncSession
+from module_admin.entity.vo.common_vo import CrudResponseModel
+from module_admin.entity.vo.user_vo import CurrentUserModel
+from module_admin.entity.vo.dataint_vo import VecsetPageObject, SaveVecsetModel
+from module_admin.entity.do.dataint_do import SysVecset
+from module_admin.dao.vecset_dao import VecsetDao
+from exceptions.exception import ServiceException, ServiceWarning
+from datetime import datetime
+from utils.common_util import CamelCaseUtil
+
+
+class VecsetService:
+ """
+ 智能问答服务层
+ """
+
+ @classmethod
+ async def get_vecset_list_services(cls, result_db: AsyncSession, vecset_query: VecsetPageObject, current_user: CurrentUserModel):
+ result = await VecsetDao.get_vecset_list(result_db, vecset_query)
+ return CamelCaseUtil.transform_result(result)
+
+ @classmethod
+ async def save_vecset(cls, result_db: AsyncSession, saveVecsetModel: SaveVecsetModel, current_user: CurrentUserModel):
+ if saveVecsetModel.onum is None:
+ # add
+ saveVecsetModel.onum = uuid.uuid4()
+ addObj = SysVecset(**saveVecsetModel.model_dump())
+ addObj.create_by = current_user.user.user_name
+ addObj.create_time = datetime.now()
+ addObj.update_by = current_user.user.user_name
+ addObj.update_time = datetime.now()
+ await VecsetDao.insert_vecset(result_db, addObj)
+ else:
+ # update
+ oldObj = await VecsetDao.get_vecset_by_id(result_db, saveVecsetModel.onum)
+ if oldObj is None:
+ raise ServiceException(message='所改对象不存在')
+ saveObj = saveVecsetModel.model_dump(exclude_unset=True)
+ saveObj['update_by'] = current_user.user.user_name
+ saveObj['update_time'] = datetime.now()
+ await VecsetDao.update_vecset(result_db, saveObj)
+ await result_db.commit()
+ return CrudResponseModel(is_success=True, message='操作成功')
+
+ @classmethod
+ async def delete_vecset(cls, db: AsyncSession, array: List[str]):
+ await VecsetDao.delete_vecset(db, array)
+ await db.commit()
+ return CrudResponseModel(is_success=True, message='操作成功')
+
diff --git a/vue-fastapi-backend/server.py b/vue-fastapi-backend/server.py
index e0ba955..e7cca0f 100644
--- a/vue-fastapi-backend/server.py
+++ b/vue-fastapi-backend/server.py
@@ -29,6 +29,11 @@ from module_admin.controller.metasecurity_controller import metaSecurityControll
from module_admin.controller.datastd_controller import datastdController
from module_admin.controller.approval_controller import approvalController
from module_admin.controller.data_ast_content_controller import dataCatalogController
+from module_admin.controller.tsmcb_controller import tsmcbController
+from module_admin.controller.fccbd_controller import fccbdController
+from module_admin.controller.cdplb_controller import cdplbController
+from module_admin.controller.sscf_controller import sscfController
+from module_admin.controller.vecset_controller import vecsetController
from sub_applications.handle import handle_sub_applications
from utils.common_util import worship
from utils.log_util import logger
@@ -91,6 +96,11 @@ controller_list = [
{'router': approvalController, 'tags': ['审批模块']},
{'router': datastdController, 'tags': ['数据标准模块']},
{'router': dataCatalogController, 'tags': ['系统管理-数据目录管理']},
+ {'router': tsmcbController, 'tags': ['智能数据-特殊名词补充']},
+ {'router': fccbdController, 'tags': ['智能数据-分词词典补充']},
+ {'router': cdplbController, 'tags': ['智能数据-词典批量补充']},
+ {'router': sscfController, 'tags': ['智能数据-短句配置']},
+ {'router': vecsetController, 'tags': ['智能数据-全句配置']},
]
for controller in controller_list:
diff --git a/vue-fastapi-frontend/src/api/dataint/cdplb.js b/vue-fastapi-frontend/src/api/dataint/cdplb.js
new file mode 100644
index 0000000..480d95f
--- /dev/null
+++ b/vue-fastapi-frontend/src/api/dataint/cdplb.js
@@ -0,0 +1,26 @@
+import request from '@/utils/request'
+
+
+export function getCdplbList(data) {
+ return request({
+ url: '/default-api/dataint/cdplb/list',
+ method: 'get',
+ params: data
+ })
+}
+
+export function saveCdplb(data){
+ return request({
+ url: '/default-api/dataint/cdplb/save',
+ method: 'post',
+ data: data
+ })
+}
+
+export function deleteCdplb(array){
+ return request({
+ url: '/default-api/dataint/cdplb/delete',
+ method: 'post',
+ data: array
+ })
+}
diff --git a/vue-fastapi-frontend/src/api/dataint/fccbd.js b/vue-fastapi-frontend/src/api/dataint/fccbd.js
new file mode 100644
index 0000000..afe312a
--- /dev/null
+++ b/vue-fastapi-frontend/src/api/dataint/fccbd.js
@@ -0,0 +1,26 @@
+import request from '@/utils/request'
+
+
+export function getFccbdList(data) {
+ return request({
+ url: '/default-api/dataint/fccbd/list',
+ method: 'get',
+ params: data
+ })
+}
+
+export function saveFccbd(data){
+ return request({
+ url: '/default-api/dataint/fccbd/save',
+ method: 'post',
+ data: data
+ })
+}
+
+export function deleteFccbd(array){
+ return request({
+ url: '/default-api/dataint/fccbd/delete',
+ method: 'post',
+ data: array
+ })
+}
diff --git a/vue-fastapi-frontend/src/api/dataint/sscf.js b/vue-fastapi-frontend/src/api/dataint/sscf.js
new file mode 100644
index 0000000..0210e20
--- /dev/null
+++ b/vue-fastapi-frontend/src/api/dataint/sscf.js
@@ -0,0 +1,41 @@
+import request from '@/utils/request'
+
+
+export function getSscfList(data) {
+ return request({
+ url: '/default-api/dataint/sscf/list',
+ method: 'get',
+ params: data
+ })
+}
+
+export function saveSscf(data){
+ return request({
+ url: '/default-api/dataint/sscf/save',
+ method: 'post',
+ data: data
+ })
+}
+
+export function deleteSscf(array){
+ return request({
+ url: '/default-api/dataint/sscf/delete',
+ method: 'post',
+ data: array
+ })
+}
+
+export function get_dasset_tree() {
+ return request({
+ url: '/default-api/dataint/sscf/tree',
+ method: 'get',
+ })
+}
+
+export function saveDassetTreeNode(data) {
+ return request({
+ url: '/default-api/dataint/sscf/tree',
+ method: 'post',
+ data: data
+ })
+}
\ No newline at end of file
diff --git a/vue-fastapi-frontend/src/api/dataint/tsmcb.js b/vue-fastapi-frontend/src/api/dataint/tsmcb.js
new file mode 100644
index 0000000..19bbf56
--- /dev/null
+++ b/vue-fastapi-frontend/src/api/dataint/tsmcb.js
@@ -0,0 +1,26 @@
+import request from '@/utils/request'
+
+
+export function getTsmcbList(data) {
+ return request({
+ url: '/default-api/dataint/tsmcb/list',
+ method: 'get',
+ params: data
+ })
+}
+
+export function saveTsmcb(data){
+ return request({
+ url: '/default-api/dataint/tsmcb/save',
+ method: 'post',
+ data: data
+ })
+}
+
+export function deleteTsmcb(array){
+ return request({
+ url: '/default-api/dataint/tsmcb/delete',
+ method: 'post',
+ data: array
+ })
+}
diff --git a/vue-fastapi-frontend/src/api/dataint/vecset.js b/vue-fastapi-frontend/src/api/dataint/vecset.js
new file mode 100644
index 0000000..3ef5c5e
--- /dev/null
+++ b/vue-fastapi-frontend/src/api/dataint/vecset.js
@@ -0,0 +1,26 @@
+import request from '@/utils/request'
+
+
+export function getVecsetList(data) {
+ return request({
+ url: '/default-api/dataint/vecset/list',
+ method: 'get',
+ params: data
+ })
+}
+
+export function saveVecset(data){
+ return request({
+ url: '/default-api/dataint/vecset/save',
+ method: 'post',
+ data: data
+ })
+}
+
+export function deleteVecset(array){
+ return request({
+ url: '/default-api/dataint/vecset/delete',
+ method: 'post',
+ data: array
+ })
+}
diff --git a/vue-fastapi-frontend/src/views/dataint/cypz/cdplb.vue b/vue-fastapi-frontend/src/views/dataint/cypz/cdplb.vue
new file mode 100644
index 0000000..db57734
--- /dev/null
+++ b/vue-fastapi-frontend/src/views/dataint/cypz/cdplb.vue
@@ -0,0 +1,271 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+ 新增
+
+
+ 删除
+
+
+ 导入
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{scope.row.updateTime.replace("T"," ")}}
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 正常
+ 停用
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/vue-fastapi-frontend/src/views/dataint/cypz/fccbd.vue b/vue-fastapi-frontend/src/views/dataint/cypz/fccbd.vue
new file mode 100644
index 0000000..b9f1944
--- /dev/null
+++ b/vue-fastapi-frontend/src/views/dataint/cypz/fccbd.vue
@@ -0,0 +1,263 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+ 新增
+
+
+ 删除
+
+
+ 导入
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{scope.row.updateTime.replace("T"," ")}}
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 正常
+ 停用
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/vue-fastapi-frontend/src/views/dataint/cypz/tsmcb.vue b/vue-fastapi-frontend/src/views/dataint/cypz/tsmcb.vue
new file mode 100644
index 0000000..4fbe2de
--- /dev/null
+++ b/vue-fastapi-frontend/src/views/dataint/cypz/tsmcb.vue
@@ -0,0 +1,281 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+ 删除
+
+
+ 导入
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{scope.row.updateTime.replace("T"," ")}}
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 正常
+ 停用
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/vue-fastapi-frontend/src/views/dataint/sscf/index.vue b/vue-fastapi-frontend/src/views/dataint/sscf/index.vue
new file mode 100644
index 0000000..348da07
--- /dev/null
+++ b/vue-fastapi-frontend/src/views/dataint/sscf/index.vue
@@ -0,0 +1,451 @@
+
+
+
+
+
+
+
+
+
+
+
+
{{ data.dassetName }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+ 删除
+
+
+ 导入
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{scope.row.updateTime.replace("T"," ")}}
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 正常
+ 停用
+
+
+
+
+ 包含
+ 等于
+
+
+
+
+
+
+
+
+
+
+ 补充
+ 替换
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/vue-fastapi-frontend/src/views/dataint/vecset/index.vue b/vue-fastapi-frontend/src/views/dataint/vecset/index.vue
new file mode 100644
index 0000000..f552a12
--- /dev/null
+++ b/vue-fastapi-frontend/src/views/dataint/vecset/index.vue
@@ -0,0 +1,473 @@
+
+
+
+
+
+
+
+
+
+
+
+
{{ data.dassetName }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+ 删除
+
+
+ 导入
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{scope.row.updateTime.replace("T"," ")}}
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 正常
+ 停用
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file