Files
bj_power/技术约束.md
T
SunYF 2544c6141d refactor: 合并原库房客户端到主WMS服务,退役8891端口
1.  将bj_power_wms_client的前端代码、配置及网关逻辑全部迁移到bj_power_wms主项目
2.  删除原库房客户端相关的所有文件与配置
3.  更新README与部署文档,说明合并后的服务架构
4.  新增Web配置项支持自动打开浏览器开关,统一服务端口为8890
2026-09-07 15:55:30 +08:00

3.7 KiB
Raw Blame History

技术约束与编码规范

本文件收录本项目(bj_power 装配线统一仓库)必须遵守的技术约束与编码约定。其余历史文档均已清理。

全局规则

  • 禁止自动提交 git:所有 commit/push 必须等用户明确要求后才执行。
  • 单一 Git 仓库MES / Dashboard / WMS / WMS客户端 / 工位终端 统一为 bj_power 一个仓库;各子项目内部命名(Go module、package.json、import 路径、配置文件名)必须与其文件夹名对齐。

命名规范

  • 驼峰命名(camelCase:接口参数、默认、字段、前端 JSON 均采用 camelCaseGo 结构体字段为 PascalCasejson tag 用 camelCase。
  • 常量、枚举等大写开头,用户可读中文文案单独维护。

代码分层

  • handler 保持薄层,业务逻辑写在 logic 层,不在 handler 里写业务。
  • 不手动修改生成代码ent/internal/handler/internal/types/ 为 goctl/ent 自动生成。改 schema 走 cd schema && go generate,改 api 走 cd apis && go generate
  • 简单优先:用最少代码解决问题;不为单次使用创建抽象;不写不可能出现的错误处理。
  • 精准改动:只改必须改的部分,不改没坏的东西,风格匹配现有代码。

安全与配置

  • 敏感信息一律写入 YAML 配置文件,不硬编码进代码:JWT Secret、内部 API Token、数据库口令等。
  • 统一内部 API 密钥Hardman_2026(内部服务间鉴权,请求头 X-API-TOKEN)。
  • 鉴权约定JWT AccessSecret 统一 Hardman_2026access 短有效(1800s)并支持滑动续签;业务前端接口走 /api/v1 用 JWT 鉴权;项目间服务调用一律走 /api/internal/*,请求头必须带 X-API-TOKEN=Hardman_2026

技术栈

  • 后端Go + go-zeroREST 框架)+ Ent ORM + PostgreSQL。
  • 前端(MES / WMS客户端 / 工位终端)Vue3Semi Design / Element Plus)。
  • 看板(DashboardReact + Semi Design + ECharts。
  • 实时通信Dashboard 通过 Redis + SSE 从 MES 取数据,1 分钟过期 + 防击穿。

端口与服务约定

项目 端口 说明
bj_power_mes 8888 MESGo+内嵌 Vue3 前端,go:embed public/
bj_power_wms 8890 WMSGo+内嵌 Vue3 前端,go:embed web/static/2026-09-07 吸收原 8891 库房客户端)
bj_power_workstation 8892 工位终端(内嵌 Vue3+SQLite
bj_power_dashboard dev 5173 / 生产静态 dist 看板 React

依赖:PostgreSQL127.0.0.1:5432)、Redis127.0.0.1:6379)。前端构建产物内嵌到对应 Go 服务的 public/ 或 web/static/;看板独立部署静态 dist 或 nginx 托管。

业务架构约束

  • 产线仅为装配线:设备只有「扫码枪 + 拧紧枪」,其余为人工操作。不存在 CNC、清洗机、检验设备、内窥镜、AGV/RGV、机器人、接驳台等设备(前端看板/页面不得包含这些设备)。
  • 数据库隔离:MES 与 WMS 使用各自独立数据库,跨系统通过内部 API 通信。
  • 工位终端:拧紧数据用 SQLite 本地缓存,完成后上报 MES(两段式:点「完成」才上报,失败本地保留重试/断点续传)。
  • 半成品流转:工位「暂存/退回库房」时记录已完成工序,MES 调 WMS 半成品入库/出库,重上线从下一工序继续。
  • 日志:按天存储(如 bj_power_mes-2026-08-28.log),保留 30 天。
  • 操作日志可追溯event_log 必须含 workOrderNooperator 字段。

数据库

  • MES 库名 bj_power_mes、WMS 库名 bj_power_wms(两库独立,以各项目 etc/*.yaml 配置为准)。
  • 建表工具(如 migrate.go)的 DSN 从 YAML 读取,不硬编码。