task-98: 移除 similar-asin/appearance-patent 模块 Coze,状态机与共享组件改名 LLM
Build Backend JAR / build (push) Has been cancelled

- similarasin/appearancepatent 模块全部 Coze 工作流调用改走 direct-LLM(已确认唯一运行路径)
- 共享组件改名:CozeTaskQueueGate→TaskQueueGate、CozeGroupResultPropagator→GroupResultPropagator
- 状态机改名:biz_task_scope_state 的 coze_* 列→llm_*、stateJson coze 键→llm(V100 迁移已应用生产)
- 删除 biz_coze_credential 表、CozeCredential* 类、SimilarAsinCozeClient、AppearancePatentCozeClient→LlmClient
- 前端 brand 页 Coze 文案→LLM;Python 后端删除 cozepy 依赖与死配置
- 修复 TaskResultFileJobWorker 启动失败:TaskFileJobConfig 注册 ResultFileJobHandlerRegistry 与 13 个 handler bean(含 validateCoverage 启动校验)
This commit is contained in:
2026-09-01 02:19:45 +08:00
parent 0cc7380205
commit e2607ab723
109 changed files with 6903 additions and 4582 deletions
+63
View File
@@ -2181,6 +2181,67 @@ def update_column(cid):
})
def _reorder_columns_by_list(data):
"""按前端拖动后的完整同级顺序重排菜单,只回写排序真正变化的记录。"""
raw_ids = data.get('ordered_ids')
if raw_ids is None:
raw_ids = data.get('orderedIds')
if not isinstance(raw_ids, list) or not raw_ids:
return jsonify({'success': False, 'error': '菜单重排参数无效'}), 400
ordered_ids = []
for raw_id in raw_ids:
try:
parsed_id = int(raw_id)
except (TypeError, ValueError):
return jsonify({'success': False, 'error': '菜单重排参数无效'}), 400
if parsed_id in ordered_ids:
return jsonify({'success': False, 'error': '菜单重排参数重复'}), 400
ordered_ids.append(parsed_id)
menu_type = (data.get('menu_type') or data.get('menuType') or 'admin').strip() or 'admin'
items, error_response, status = _java_permission_items(menu_type=menu_type)
if error_response is not None:
return error_response, status
by_id = {}
for item in _iter_permission_items(items):
try:
by_id[int(item.get('id'))] = item
except (TypeError, ValueError):
continue
missing = [item_id for item_id in ordered_ids if item_id not in by_id]
if missing:
return jsonify({'success': False, 'error': '栏目不存在'}), 400
parent_ids = {
by_id[item_id].get('parentId') if by_id[item_id].get('parentId') is not None
else by_id[item_id].get('parent_id')
for item_id in ordered_ids
}
if len(parent_ids) > 1:
return jsonify({'success': False, 'error': '只能在同级菜单之间排序'}), 400
for index, item_id in enumerate(ordered_ids):
item = by_id[item_id]
sort_order = (index + 1) * 10
current_order = item.get('sortOrder')
if current_order is None:
current_order = item.get('sort_order')
if current_order is not None and int(current_order) == sort_order:
continue
_, error_response, status = _proxy_permission_java(
'PUT',
f'/api/admin/permission-menus/{item_id}',
json_data={
'name': item.get('name') or '',
'columnKey': item.get('columnKey') or item.get('column_key') or '',
'menuType': item.get('menuType') or item.get('menu_type') or menu_type,
'routePath': item.get('routePath') or item.get('route_path') or '',
'sortOrder': sort_order,
'parentId': item.get('parentId') if item.get('parentId') is not None else item.get('parent_id'),
},
)
if error_response is not None:
return error_response, status
return jsonify({'success': True, 'msg': '排序更新成功'})
@admin_api.route('/column/reorder', methods=['POST'])
@admin_required
def reorder_column():
@@ -2188,6 +2249,8 @@ def reorder_column():
if denied:
return denied
data = request.get_json() or {}
if data.get('ordered_ids') is not None or data.get('orderedIds') is not None:
return _reorder_columns_by_list(data)
try:
column_id = int(data.get('column_id'))
target_id = int(data.get('target_id'))