feat: LICA 部门独立实例 — 组织隔离与端口/标识改造

派生自 IRIS 实例的 feature/ai-audit-update @ 192c8ee,在同一台机器上独立运行。

隔离机制(开关集中在 app/core/config.py 的 ORG_DEPARTMENT / MATERIAL_CATEGORY_PREFIX):
- 登录:sys_user 查询增加 department 条件,非本部门账号一律 401
- 人员列表:服务端钉死部门、忽略客户端传参;删除「异常退回全表」的降级分支
- 物料:groups 与 items 都增加 category LIKE 'LICA/%' 前缀过滤
- 人员操作统计:把硬编码的 department='IRIS' 改为配置项

物料为什么用前缀而不是 LIKE '%LICA%':
MOM 里存在 171 条 IRIS/成品/LICA/...(无人机/野外便携/高塔监测等),
模糊匹配会把这些 IRIS 物料漏给 LICA。实测前缀匹配命中 795 条 / 5 个分组。

部署隔离:
- 端口 8030/8031/8032,容器名 lica_*,卷 lica_pgdata(与 IRIS 完全独立)
- 服务名改为 lica_backend,避免在 projects_default 网络上与 IRIS 的 backend
  重名 —— 否则将来任何一方写 http://backend:8000 会随机打到另一个部门
- SECRET_KEY 重新生成:实测两边 token 互不通用(双向 401)

客户端标识(不改会导致两个部门的客户端互相覆盖):
- Tauri identifier 改 com.lica.production(否则桌面端互相覆盖安装,且共用
  WebView 数据目录会让 track_admin_token 串号)
- uni-app appid 改 __UNI__D2F4A19(否则同机 APK 互相覆盖、wgt 热更新串号)
- uni-app 地址端口 8011 → 8031(收敛在 utils/config.js 单一来源)
- sync-watch.sh 的 DST 指向 LICA 专属 HBuilderX 目录(否则会把源码灌进 IRIS 工程)

排除项:未复制 deploy.sh / deploy_full.sh / docker-compose.prod.yml ——
它们写死了 IRIS 的生产服务器,误跑会覆盖线上系统。
This commit is contained in:
2026-09-21 16:10:52 +08:00
parent 3286a11bc7
commit 347b7b6a68
15 changed files with 237 additions and 110 deletions

View File

@ -1,10 +1,26 @@
DATABASE_URL=postgresql+asyncpg://track:track_prod_2026@localhost:5433/track_production
# ============================================================
# LICA 实例 — 本地裸跑后端时的配置示例
# 容器部署(docker compose)无需此文件,所有变量由 docker-compose.yml 注入。
# 复制为 .env 后按需修改;.env 已被 .gitignore 忽略,不会提交。
# ============================================================
# 本机直连 LICA 库(容器内用的是 lica_db,端口 5432)
DATABASE_URL=postgresql+asyncpg://lica:lica_dev_password@localhost:8032/lica_production
SECRET_KEY=change-me-to-a-random-secret-key-in-production
ACCESS_TOKEN_EXPIRE_MINUTES=30
DEBUG=true
CORS_ORIGINS='["http://localhost:1420", "tauri://localhost"]'
CORS_ORIGINS='["http://localhost:8030", "tauri://localhost"]'
# 日志:LOG_JSON=true 输出单行 JSON(便于采集),本地调试可设 false 换可读格式
# ---- 组织隔离(本实例唯一的部门开关)----
ORG_DEPARTMENT=LICA
MATERIAL_CATEGORY_PREFIX=LICA/
# ---- MOM 老系统库(只读,用于登录校验/人员/物料)----
# 容器内用容器名 inventory_db:5432;本机裸跑走宿主机映射端口 5435
MOM_DB_HOST=localhost
MOM_DB_PORT=5435
# ---- 日志:LOG_JSON=true 输出单行 JSON(便于采集),本地调试可设 false 换可读格式 ----
LOG_LEVEL=INFO
LOG_JSON=true