feat(dingdingflow): 接入钉钉审批模块
- app/pipeline_app.py: load_dingdingflow(),置于 load_pipeline_service() 之前 (后者的 dingtalk_approval 适配器依赖前者注册的 register_biz_handler) - build.sh: 四处模块列表 + 8b DDL 循环加 dingdingflow(dda_* 表建到 pipeline 库) - wwwroot/index.ui: 侧边栏加「钉钉审批」菜单(open_tab) - i18n zh/en/jp/ko 补文案
This commit is contained in:
parent
bcd8f54a9d
commit
947b6d3abf
@ -54,6 +54,12 @@ def init():
|
||||
from rag.init import init_rag_module
|
||||
except ImportError:
|
||||
def init_rag_module(): pass
|
||||
# dingdingflow:钉钉审批(表名 dda_ 前缀)。必须早于 pipeline_service,
|
||||
# 后者的 dingtalk_approval 适配器要用它注册的 register_biz_handler
|
||||
try:
|
||||
from dingdingflow.init import load_dingdingflow
|
||||
except ImportError:
|
||||
def load_dingdingflow(): pass
|
||||
|
||||
set_globalvariable()
|
||||
ServerEnv().get_module_dbname = get_module_dbname
|
||||
@ -63,6 +69,7 @@ def init():
|
||||
load_pipeline_core()
|
||||
load_pipeline_ops()
|
||||
load_pipeline_dist()
|
||||
load_dingdingflow() # 先于 pipeline_service:其钉钉审批适配器依赖 register_biz_handler
|
||||
load_pipeline_service()
|
||||
load_sdlc_adapter()
|
||||
load_app_audit()
|
||||
|
||||
11
build.sh
11
build.sh
@ -53,7 +53,7 @@ for mod in pipeline_core pipeline_ops pipeline_dist; do
|
||||
done
|
||||
|
||||
# 5. Install business modules (clone external, local already in pkgs)
|
||||
for mod in pipeline-sdlc showcase evaluate pipeline-service pipeline-task tenant app_audit product_management discount pricing unipay smssend accounting uapi rag; do
|
||||
for mod in pipeline-sdlc showcase evaluate pipeline-service pipeline-task tenant app_audit product_management discount pricing unipay smssend accounting uapi rag dingdingflow; do
|
||||
cd "$cdir/pkgs"
|
||||
if [ ! -d "$mod" ]; then
|
||||
git clone https://git.opencomputing.cn/yumoqing/$mod || echo "SKIP: $mod"
|
||||
@ -62,7 +62,7 @@ for mod in pipeline-sdlc showcase evaluate pipeline-service pipeline-task tenant
|
||||
done
|
||||
|
||||
# 6. pip install all modules from pkgs/(pipeline-service 是普通 install 非 editable,部署必 pull+pip install 都做)
|
||||
for mod in pipeline_core pipeline_ops pipeline_dist pipeline-sdlc showcase pipeline-service tenant app_audit product_management discount pricing unipay smssend accounting uapi rag; do
|
||||
for mod in pipeline_core pipeline_ops pipeline_dist pipeline-sdlc showcase pipeline-service tenant app_audit product_management discount pricing unipay smssend accounting uapi rag dingdingflow; do
|
||||
if [ -d "pkgs/$mod" ]; then
|
||||
"$cdir/py3/bin/pip" install "pkgs/$mod/" 2>&1 | tail -1
|
||||
fi
|
||||
@ -89,7 +89,7 @@ if [ -d "pkgs/pipeline_core/skills_library" ]; then
|
||||
fi
|
||||
|
||||
# 7. Regenerate CRUD from json for all pipeline modules
|
||||
for mod in appbase pipeline_core pipeline_ops pipeline_dist pipeline-sdlc rbac dapi accounting uapi rag; do
|
||||
for mod in appbase pipeline_core pipeline_ops pipeline_dist pipeline-sdlc rbac dapi accounting uapi rag dingdingflow; do
|
||||
json_dir="pkgs/$mod/json"
|
||||
models_dir="pkgs/$mod/models"
|
||||
wwwroot_dir="pkgs/$mod/wwwroot"
|
||||
@ -102,7 +102,7 @@ done
|
||||
|
||||
|
||||
# 8. Link module wwwroot directories (symlinks from pkgs/)
|
||||
for mod in pipeline-sdlc showcase tenant pipeline_core pipeline_ops pipeline_dist appbase app_audit product_management discount pricing unipay rbac dapi accounting uapi rag; do
|
||||
for mod in pipeline-sdlc showcase tenant pipeline_core pipeline_ops pipeline_dist appbase app_audit product_management discount pricing unipay rbac dapi accounting uapi rag dingdingflow; do
|
||||
src="pkgs/$mod/wwwroot"
|
||||
dst="wwwroot/$mod"
|
||||
if [ -d "$src" ]; then
|
||||
@ -117,7 +117,7 @@ mkdir -p wwwroot/pipeline_task
|
||||
# 8b. uapi + rag 模块建表 + 导入外部服务配置种子
|
||||
# uapi 表(upapp/uapi/uapiio...)必须先建,rag 的 uapi_seed.sql 才有表可插
|
||||
# rag 表统一 rag_ 前缀,与产线业务表隔离;数据独立于 ragserver(同代码不同宿主,各自的数据)
|
||||
for m in uapi rag; do
|
||||
for m in uapi rag dingdingflow; do
|
||||
if [ -d "pkgs/$m/models" ] && ls pkgs/$m/models/*.json >/dev/null 2>&1; then
|
||||
cd "$cdir/pkgs/$m/models"
|
||||
"$cdir/py3/bin/json2ddl" mysql . > "/tmp/pipeline_${m}_ddl.sql" || {
|
||||
@ -140,6 +140,7 @@ kw = cfg.databases['pipeline'].kwargs
|
||||
pwd = aes_decode_b64(cfg.password_key, kw.password)
|
||||
# 顺序关键:uapi 建表 → rag 建表 → rag 的 uapi 配置种子
|
||||
for sqlfile in ['/tmp/pipeline_uapi_ddl.sql', '/tmp/pipeline_rag_ddl.sql',
|
||||
'/tmp/pipeline_dingdingflow_ddl.sql',
|
||||
'pkgs/rag/init/uapi_seed.sql']:
|
||||
if not os.path.exists(sqlfile):
|
||||
print(' SKIP (missing): %s' % sqlfile)
|
||||
|
||||
@ -21,3 +21,4 @@ Submit: Submit
|
||||
向量引擎: Vector Engine
|
||||
多媒体(图文音视): Multimedia (image/audio/video)
|
||||
文本(文档检索): Text (document retrieval)
|
||||
钉钉审批: DingTalk Approval
|
||||
|
||||
@ -21,3 +21,4 @@ Submit: 送信
|
||||
向量引擎: ベクトルエンジン
|
||||
多媒体(图文音视): マルチメディア(画像・音声・動画)
|
||||
文本(文档检索): テキスト(文書検索)
|
||||
钉钉审批: DingTalk承認
|
||||
|
||||
@ -21,3 +21,4 @@ Submit: 제출
|
||||
向量引擎: 벡터 엔진
|
||||
多媒体(图文音视): 멀티미디어(이미지/음성/영상)
|
||||
文本(文档检索): 텍스트(문서 검색)
|
||||
钉钉审批: 딩톡 결재
|
||||
|
||||
@ -21,3 +21,4 @@ Submit: Submit
|
||||
向量引擎: 向量引擎
|
||||
多媒体(图文音视): 多媒体(图文音视)
|
||||
文本(文档检索): 文本(文档检索)
|
||||
钉钉审批: 钉钉审批
|
||||
|
||||
@ -165,6 +165,12 @@
|
||||
"icon": "{{entire_url('/imgs/mic.svg')}}",
|
||||
"script": "this.open_tab({name:'pipeline_ktv',label:'KTV产线',url:'/pipeline_task/task_submit.ui',removable:true})"
|
||||
},
|
||||
{
|
||||
"name": "dda_approval",
|
||||
"label": "钉钉审批",
|
||||
"icon": "{{entire_url('/imgs/workflow.svg')}}",
|
||||
"script": "this.open_tab({name:'dda_approval',label:'钉钉审批',url:'/dingdingflow/api/dd_approvals_list.dspy',removable:true})"
|
||||
},
|
||||
{
|
||||
"name": "rag_kb",
|
||||
"label": "知识库",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user