Commit 14e583b9f8172980517933fc17814d7b677eb8f7

Authored by zichun
1 parent 62635218

Add saaslocal profile, useful-forms SQL view; make mvnw executable

- application-saaslocal.yml: local override profile for the saas-8s+ macOS stack
- sql/viw_ai_useful_forms.sql: view listing AI-usable ERP forms
- mvnw: mark executable (100644 -> 100755)
mvnw 100644 → 100755
sql/viw_ai_useful_forms.sql 0 → 100644
  1 +-- ============================================================
  2 +-- 视图:viw_ai_useful_forms —— ERP「有用业务表单」目录
  3 +-- 合并 gdsmodule(菜单窗体) + gdsconfigformmaster(表单配置)
  4 +-- 过滤原则:保召回优先,只剔除"必然无用"的项,再用字段让调用方自行收窄
  5 +-- 剔除:失效 / 系统配置源(gds*/sys*) / BI报表 / 首页 / 外链 / 弹窗 / 系统配置窗体
  6 +-- 保留:有业务数据源(表/视图/过程)的表单
  7 +-- 收窄开关(作为字段暴露,不写死在过滤里,避免误删"明细/查询"类窗体):
  8 +-- bVisibleMenu = 1 → 主菜单可见的窗体(约370张,精度高)
  9 +-- bIsGrid = 1 → 列表/表格型窗体(适合出数据列表)
  10 +-- 调接口用法:POST /business/getBusinessDataByFormcustomId/{sFormId}?sModelsId={sModuleId}
  11 +-- ============================================================
  12 +CREATE OR REPLACE VIEW viw_ai_useful_forms AS
  13 +SELECT
  14 + m.sId AS sModuleId, -- 菜单窗体id (= 接口 sModelsId / ai_tool.sSrcFormId)
  15 + m.sChinese AS sModuleName, -- 窗体/菜单名称
  16 + m.sModelType AS sModelType, -- 前端路由/业务域(可能为空)
  17 + f.sId AS sFormId, -- 表单id (= 接口路径 gdsconfigformmasterId)
  18 + f.sChinese AS sFormTitle, -- 表单标题
  19 + f.sTbName AS sDataSource, -- 数据源(表/视图/过程)
  20 + f.sType AS sExecType, -- 执行类型 table/view/proc
  21 + CAST(f.bGrd AS UNSIGNED) AS bIsGrid, -- 1=列表型窗体, 0=明细型 (收窄开关)
  22 + CAST(m.bVisible AS UNSIGNED) AS bVisibleMenu, -- 1=主菜单可见, 0=次级/查询窗体 (收窄开关)
  23 + m.iOrder AS iOrder -- 菜单排序
  24 +FROM gdsmodule m
  25 +JOIN gdsconfigformmaster f ON f.sParentId = m.sId
  26 +WHERE IFNULL(m.bInvalid, 0) = 0
  27 + AND IFNULL(f.sTbName, '') <> ''
  28 + AND f.sType IN ('table', 'view', 'proc')
  29 + AND f.sTbName NOT LIKE 'gds%'
  30 + AND f.sTbName NOT LIKE 'sys%'
  31 + AND IFNULL(m.sModelType, '') NOT LIKE 'commonAuto/Bi%'
  32 + AND IFNULL(m.sModelType, '') NOT LIKE '%IndexPage'
  33 + AND IFNULL(m.sModelType, '') NOT LIKE 'http%'
  34 + AND IFNULL(m.sModelType, '') NOT LIKE '%ipAddress%'
  35 + AND IFNULL(m.sModelType, '') NOT LIKE 'modal/%'
  36 + AND IFNULL(m.sModelType, '') NOT IN (
  37 + 'gdsmodule', 'gdsconfigformmaster', 'gdsconfigtbmaster',
  38 + 'gdsformconst', 'gdsjurisdiction', 'gdsconfigcharmaster', 'gdsinterfacemaster'
  39 + );
... ...
src/main/resources/application-saaslocal.yml 0 → 100644
  1 +# Local override profile so xlyAi runs against the saas-8s+ local stack on macOS.
  2 +#
  3 +# Run: JAVA_HOME=$(/usr/libexec/java_home -v 17) ./mvnw spring-boot:run \
  4 +# -Dspring-boot.run.profiles=saaslocal
  5 +#
  6 +# Only overrides what differs from the committed application.yml (which targets a
  7 +# remote Windows deploy). Redis already points at the local shared redis-local
  8 +# (127.0.0.1:16379 / db 0) so it is inherited unchanged. Milvus/Ollama stay remote
  9 +# — their clients are lazy, so the app boots even if they are unreachable.
  10 +logging:
  11 + dirpath: /Users/reporkey/Desktop/saas-8s+/logs/xlyAi
  12 +
  13 +spring:
  14 + datasource:
  15 + # Local saas DB from docker-compose.saas.yml (mysql-saas, root/local).
  16 + url: jdbc:mysql://127.0.0.1:33307/xlyweberp_saas?allowPublicKeyRetrieval=true&keepAlive=true&autoReconnect=true&autoReconnectForPools=true&connectTimeout=30000&socketTimeout=180000&nullCatalogMeansCurrent=true&allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&failOverReadOnly=false&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=CONVERT_TO_NULL
  17 + username: root
  18 + password: local
  19 +
  20 +# macOS-friendly temp path (was D:/xlyweberp/ai/ocrtmp)
  21 +ocr:
  22 + tmpPath: /Users/reporkey/Desktop/saas-8s+/tempPath/ocrtmp
  23 +
  24 +# LLM 可观测(Langfuse,架构 §1)。默认关闭;自托管起来后填 key 开启。
  25 +# 自托管:docker compose -f docker-compose.langfuse.yml up -d → http://localhost:3000 拿 key。
  26 +langfuse:
  27 + enabled: false
  28 + host: http://localhost:3000
  29 + public-key: ""
  30 + secret-key: ""
... ...