- 早上 7:28 的补拉在白天副本库高负载时频繁超时断开、未写入任何数据,改为每晚 21:28 拉最近 3 天; 两次同步输出追加到 storage/logs/jst-sync-shipping.log,便于排查。 - 订单商品表中平台原始商品行(数量 0、金额 0)没有实际出库,聚水潭工作平台也不显示; 包裹已有实发商品时不再写入,避免多出一个"条码"(实为平台商品编号)。 - 上游偶有超长值(如组合装商品ID 78 位)导致整批写入失败,写入前按 jst_oms_shipping 列宽截断。 > 开工时标题使用 `WIP: <任务名称>` 并先填写“任务占用与边界”。Codex 完成独立合并前自审后补齐其余内容并移除 `WIP:`。 ## 任务占用与边界 - 任务名称: - 实际开发者: - 任务来源/团队分工: - 目标结果: - 预计修改路径: - 将写入的公共契约(路由、Controller 方法、Repository、表/视图、`source_key`、`scope`、权限名、菜单键或共享组件): - 仅复用、明确不修改的公共契约: - 数据源、表/视图和字段: - 上游 `source_key` / `scope`: - 权限名、菜单键或共享组件: - 明确不修改的范围: ## 开工碰撞检查 - [ ] Codex 已执行 `scripts/codex-task-preflight.ps1` - [ ] 已检查最新 `main` 和所有远程任务分支 - [ ] 已搜索主线既有页面、接口、Repository 和数据查询 - [ ] 已把“将写入”和“仅复用、不修改”的公共契约分开;仅复用项不作为单独阻断条件 - [ ] 未发现实际写入重叠;或已在下方写明相关分支、具体重叠项和协调结论 相关分支、重叠项与协调结论: ## 实际改动 - 完成内容: - Codex 实际修改的文件: - 新增或变更的公共契约: - 与原计划的差异: ## 验证证据 - 正常流程: - 空数据/错误输入/无权限场景: - 受影响旧功能: - 自动测试及结果: - 实际页面、接口或只读业务查询结果: ## 风险检查 - [ ] 不涉及金额、权限、审批、数据库迁移、生产配置或数据修复 - [ ] 如涉及上述高风险内容,已在下方写明影响、回滚和所需授权 - [ ] 未提交 `.env`、密码、Token、私钥、真实财务数据、生产日志或构建产物 - [ ] 前端改动符合 `DESIGN.md`;无前端改动则写“不适用” 高风险影响、回滚和授权状态: ## 合并前复查 - [ ] 已重新拉取远程引用并用实际修改范围再次运行碰撞检查 - [ ] PR 不再是 `WIP:`,所有测试结果已经补齐 - [ ] Codex 已重新读取原始需求和验收标准,并逐文件审核 `origin/main...任务分支` 的完整 diff - [ ] Codex 自审确认无越界修改、重复实现、敏感内容、未处理冲突和未验证结果 - [ ] 合并顺序不会覆盖其他未合并任务 - [ ] 已授权当前任务的 Codex 执行 Squash merge、验证 `main` 并清理任务分支 - [ ] 如涉及生产迁移、数据修复、删除、覆盖配置或部署,已另行取得对应高风险授权 Reviewed-on: #707
CaiWuXiTong 财务系统
本项目基于 Akaunting 二次开发,包含统一系统设置、用户和侧边栏管理、多个只读云数据库来源,以及财务业务页面。
开发者快速开始
新人只需要做两件事:
- 启动 Docker Desktop;
- 在系统数据库页面输入负责人提供的系统数据库密码。
其余工作交给 Codex:拉取最新 main、执行 bash deploy/local-init.sh、处理本机引导库迁移、启动服务、清理缓存、打开 http://127.0.0.1:18088,并在连接后自动核对两套上游、数据字典和真实只读查询。初始化脚本会比较当前构建输入与镜像指纹,并校验必要静态资源;需要更新时自动重建,不再要求新人判断是否添加 --build。Codex 不得把这些命令、迁移或排错步骤转交给新人执行。
首次登录账号由初始化脚本生成并保存在本机私有凭据文件中。连接系统数据库成功后,临时登录会自动失效,改用系统数据库中属于自己的正式账号登录。
连接成功后,用户、侧边栏、系统设置、云数据库登记和共享快照会自动统一。不需要填写主机、端口、库名、账号、TLS、证书或两个云数据库密码,也不要复制生产环境或其他开发者的 APP_KEY、.env。
Codex 的接入验收不能只回答“成功”或“失败”,必须逐个来源报告:来源标识、数据库和 Schema、验证对象、读取字段、返回行数、耗时、数据状态及失败阶段。连接资料由系统自动处理,不属于新人操作项。
完整步骤和排错说明见 LOCAL_DEPLOY.md。需要在另一台电脑继续开发时,按 新电脑开发接续指南 操作;所有 Markdown 文档的入口见 文档索引。
数据库边界
- 本机 MySQL 只负责第一次启动和临时登录,不是团队业务数据源。
- 系统数据库统一保存应用用户、系统设置、侧边栏配置和云数据库连接记录。
- 云数据库属于只读上游。本地开发从系统数据库自动取得连接资料并执行固定只读查询;生产页面使用共享按需查询快照。
- 系统数据库保存查询登记、数据字典和生产共享快照,但不会执行 SQL,也不是 SQL Server 网络代理。
- 开发者需要新表或字段时,Codex 先通过共享数据字典和通用只读入口完成真实数据探索,再实现 Repository、生产范围和刷新器;新人不需要配置上游或执行探测命令。
- 不得把数据库密码、连接串、生产
APP_KEY、Token、SSH 私钥或runtime/.env提交到 Git。
开发和发布
- 新电脑接续指南:docs/新电脑开发接续指南.md
- 文档索引:docs/README.md
- 团队协作与安全规则:AGENTS.md
- 本地测试环境:LOCAL_DEPLOY.md
- 开发和正式部署:docs/开发与部署SOP.md
- 上游业务接入规范:docs/ecommerce-finance-development.md
- 视觉规范:DESIGN.md
正式发布只能使用已经合并的 main,并通过 scripts/deploy-from-workstation.ps1 在开发机构建提交 SHA 镜像。生产服务器只运行镜像,不执行源码构建。
技术基础
- PHP 8.3
- Laravel
- Vue
- Apache
- MySQL / MariaDB
- Docker
- Akaunting
上游 Akaunting 的版权和许可证信息见 LICENSE.txt。