Просмотр исходного кода

fix: 深采入库创建本地任务记录以在入库任务页面可见; 知识库状态使用宽松比较兼容字符串类型

kinglee 1 неделя назад
Родитель
Сommit
ed20950290
2 измененных файлов с 28 добавлено и 2 удалено
  1. 27 1
      app/routes/deep_routes.py
  2. 1 1
      app/templates/knowledge_management.html

+ 27 - 1
app/routes/deep_routes.py

@@ -289,8 +289,11 @@ def list_knowledge_bases_proxy():
 def import_to_knowledge():
     """将深采数据提交到样本中心入库。"""
     import uuid
+    import json
+    from datetime import datetime, timedelta
     from app.sample_center_client import SampleCenterClient
-    from flask import current_app
+    from app.models import KnowledgeImportTask
+    from flask import current_app, url_for
 
     data = request.json
     deep_id = data.get('deep_id')
@@ -323,8 +326,31 @@ def import_to_knowledge():
         task_no=task_no,
         parents=parents,
         children=children,
+        callback_url=url_for('knowledge.knowledge_import_callback', _external=True),
+    )
+
+    # 创建本地入库任务记录,方便在"入库任务"页面查看进度
+    sc_data = result.get('data', {}) if isinstance(result, dict) else {}
+    sample_task_id = sc_data.get('task_id', '')
+
+    task = KnowledgeImportTask(
+        task_no=task_no,
+        sample_task_id=sample_task_id,
+        kb_id=kb_id,
+        kb_name=kb_name,
+        callback_url=url_for('knowledge.knowledge_import_callback', _external=True),
+        status='pending',
+        next_poll_at=datetime.utcnow() + timedelta(seconds=2),
+        created_by=current_user.id,
     )
+    db.session.add(task)
+    safe_commit(db.session)
 
+    result['data'] = {
+        'task_no': task_no,
+        'sample_task_id': sample_task_id,
+        'status': 'pending',
+    }
     return jsonify(result)
 
 

+ 1 - 1
app/templates/knowledge_management.html

@@ -230,7 +230,7 @@ function renderKnowledgeList(data) {
     }
 
     items.forEach(function(item) {
-        const statusHtml = item.status === 1
+        const statusHtml = (item.status == 1 || item.status === '1')
             ? '<span class="text-green-400"><i class="fas fa-check-circle"></i> 启用</span>'
             : '<span class="text-red-400"><i class="fas fa-times-circle"></i> 禁用</span>';
         const html = `<tr class="border-b border-gray-700 hover:bg-gray-700/30 transition-colors">