59 Commits

Author SHA1 Message Date
e8d4e8e345 feat: 退款当前状态改为分钟级同步 (#899) 2026-11-05 19:05:23 +08:00
e8c5e79486 feat: 每日同步聚水潭标签并刷新种菜金额 2026-11-05 17:07:58 +08:00
3a7fe1ba82 feat: 注册种菜报销工单明细批处理 (#895)
将种菜报销工单向种菜明细表的同步命令纳入受限批处理入口,并验证生产网页容器不能直接执行。

> 开工时标题使用 `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: #895
2026-11-05 14:42:46 +08:00
825a9a1964 feat: 接入钉钉财务日报日志统计 (#876) 2026-11-04 22:19:15 +08:00
23f2e9943c feat: 增加退款每日同步和驾驶舱预警
退款待确认改为每日06:00专属同步,异常状态显示到财务驾驶舱。
2026-11-04 17:46:57 +08:00
46f62575ff perf: 优化OA流程刷新等待与并发 (#830) 2026-11-02 18:14:11 +08:00
69873f869a feat: 进销存未映射仓库自动创建提醒任务 2026-11-02 11:13:51 +08:00
fbf2c634b7 fix: OA审批自动刷新限制为每小时一次 (#794)
同一账号同一页面每小时最多定向刷新一次;失败状态改为中性提示。
2026-10-30 17:06:18 +08:00
7b8a5e1214 feat: 增加OA进行中流程按需刷新 (#785)
页面进入时仅异步刷新当前页审批中的流程,并自动载入最新镜像。
2026-10-30 15:04:43 +08:00
6b8c447134 fix: 修正OA等待时间时区与镜像调度 (#781)
修正 OA 任务 UTC 时间转换、等待时长粒度和流程增量同步调度。
2026-10-30 10:18:57 +08:00
1cb04adc7b feat: 店铺台账接入每日余额、预留标准与预警
完成店铺台账每日余额来源、日期筛选、预留标准和连续3天预警。
Co-authored-by: 92451 <924518135@qq.com>
Co-committed-by: 92451 <924518135@qq.com>
2026-10-27 18:13:00 +08:00
1dec86d1d9 防止 root CLI 破坏共享缓存权限 (#684)
容器为非网页命令降权,并为共享缓存目录设置默认 ACL,防止 root CLI 导致钉钉登录 500。
2026-10-27 13:38:52 +08:00
fa92ae8b6e 修复店铺台账每日自动回填 (#627)
Co-authored-by: 92451 <924518135@qq.com>
Co-committed-by: 92451 <924518135@qq.com>
2026-10-26 18:33:41 +08:00
6c93e4c3c1 fix: 安装明细历史回补使用受控批处理 (#620) 2026-10-26 17:34:09 +08:00
d18aa82678 修正店铺负责人关联并增加每日存档 (#584) 2026-10-26 12:01:25 +08:00
7280d86de9 安全更新:升级 PHP 8.3.36 修复 PHP2Shell (#450)
Pin production and local development to official PHP 8.3.36 Apache Bookworm, preserving resource limits. Verified 47 tests / 319 assertions, real Apache runtime and 115000-row read-only import.
2026-10-22 09:46:44 +08:00
c2a11b3064 财务台账:增加当前余额并按账户状态同步金额 2026-10-21 16:47:16 +08:00
36af0e211a 修复生产内存保护:网页限额与重型导入隔离 (#430)
网页设置 2GiB 内存边界;生产重型导入统一进入 1CPU/1GiB 独立容器,保留只读文件、互斥、超时清理和发布保护。相关回归与资源隔离测试通过。
2026-10-21 14:30:06 +08:00
17429d65ab perf(财务): 减少大表扫描与重复重算,串行受限导出 2026-10-19 17:53:14 +08:00
1f4f6f48d4 优化财务资源:减少重复扫描、隔离重型任务、约束系统日志 (#390) 2026-10-19 14:56:54 +08:00
ea80148dfc 店铺违规预警:级别/责任人/处理截止/超时/推送状态 + 处理状态四档 + 群推送接口 + 预览统计页 (#332) 2026-10-13 19:54:01 +08:00
e61e3b50fb 店铺违规预警:补充生产每日同步定时任务(cron 遗漏) (#315) 2026-10-13 09:36:14 +08:00
c55c06026f 快递应付:报价维护只留报价页签 + 附加费结算定时同步(每日7天/每周90天) (#314) 2026-10-12 17:49:10 +08:00
26f945ba29 本地预览:测试断言同步到已启用的 OPcache 配置
deploy/php-local.ini 已改为 OPcache 开启 + 每次请求校验时间戳,测试仍断言 opcache.enable=0 导致失败;更新为 enable=1 并校验时间戳。
2026-10-12 17:12:10 +08:00
cbec6a8b62 供应商管理增加每天08:15完整同步 (#302) 2026-10-11 13:57:28 +08:00
401dfb089a 店铺账号密码:上游新增字段自动跟随(镜像补列 + 页面自动多出这一列)
新增 business-mirror:follow-upstream-columns:先把数据字典刷新到最新,再把上游
视图里新增、当前数据集还没同步的字段追加进镜像定义并立刻建列,下一次常规同步
就会带回数据。只做新增,不删除/不改写已有字段;字段名带 password/secret/token/
cipher/credential 等敏感关键字的一律跳过。已登记到发布 cron(每天 06:40)。

页面侧:config/upstream_mirrors.php 的 auto_follow_columns 用「页面 => 数据集」
登记,FollowedUpstreamColumns 服务把 followed_columns 变成表格列;这类列只展示、
不生成查询条件(后端还没有对应筛选口径)。

数据集自带的数据变动仍然由每分钟的 business-mirror:sync-tables 增量同步。
2026-10-08 13:19:53 +08:00
db2ee47fd8 发布切换容器前等待生产上游同步完成 (#284) 2026-10-07 15:00:48 +08:00
c4a976751d 修复订单售后页面一直转圈:店铺候选改成定时预热
上一次把店铺候选的完整计算放在 app()->terminating() 里,但服务器是 mod_php,
响应要等整个请求(含终止回调)结束才算完成,浏览器就一直转圈、侧边栏停在骨架屏。
线上实测:发布后第一个打开订单售后费用明细的人,页面会卡两分钟以上。

改成:页面只返回毫秒级的店铺目录兜底,完整候选(目录 ∪ 订单镜像店铺)由新增的
order-data:warm-shop-candidates 每小时预热一次,并在发布脚本的 cron 里注册。
2026-10-07 14:21:36 +08:00
26556a9169 Add warehouse short names to inventory report
Restore warehouse name mapping ledger and inventory short-name column.
2026-09-28 16:33:38 +08:00
454919b0c7 Revert "Merge branch 'fix/chenxi-inventory-mapping-release-20260928'"
This reverts commit c328dcbe77e114d1111c22ca22870227ad280ab7, reversing
changes made to bfbfe935eab814027d7d2328accc18a60171a712.
2026-09-28 12:00:54 +08:00
chenxi
f562faca3c 完善进销存映射表与开发环境刷新配置 2026-09-28 09:16:02 +08:00
374df29d2b 修复生产报表负载根因 (#257)
消除报表缓存穿透与后台千万级全表计数,降低同步频率并调整共享数据库资源。
2026-09-23 20:15:59 +08:00
170e252e6f fix: schedule online daifa mirror refresh at 5am 2026-09-23 11:46:37 +08:00
06a30ee853 修复生产业务镜像迁移连接 (#240) 2026-09-22 16:07:51 +08:00
3b1d689b26 修复生产构建 Composer 镜像解析 (#233) 2026-09-21 17:49:00 +08:00
179b2cdbcc 接入并校准三方仓进销存 (#176)
新增三方仓进销存共享镜像、按日查询汇总导出、每日零点增量同步和权威历史锚点校准。
2026-09-12 20:29:43 +08:00
cc355b32ce 修复旧钉钉回调丢失域名会话 (#115) 2026-09-08 06:30:59 +08:00
77d6671de3 fix: PowerShell 7 正确创建缺失的中继任务 (#112) 2026-09-07 15:11:00 +08:00
c96b314a9d fix: 本地账号稳定注册上游中继任务 (#111) 2026-09-07 15:08:58 +08:00
be670ad988 feat: stage tiered business data storage (#104) 2026-09-07 11:55:37 +08:00
b5a53f061b fix: use canonical url after DingTalk callback 2026-09-03 18:44:30 +08:00
1486f22b55 fix: rewrite DingTalk callback redirects to https 2026-09-03 18:42:28 +08:00
754e421378 fix: preserve https after DingTalk callback 2026-09-03 18:37:07 +08:00
798a178927 chore: retire private certificate release path 2026-09-03 17:53:09 +08:00
b48786c7c4 test: stabilize DingTalk callback route check 2026-09-03 17:07:11 +08:00
0f057bc1d6 fix: route plain HTTP DingTalk callback 2026-09-03 17:07:11 +08:00
6995ad31c5 feat: add DingTalk account login 2026-09-03 15:42:46 +08:00
23fda46567 fix: install eSign polling cron during release 2026-09-02 16:16:54 +08:00
8b0f15c346 fix: avoid invalid indexes on mirrored long text columns 2026-09-01 12:46:55 +08:00
d62ad27d0f fix: centralize shared business data and remove local sqlite path 2026-09-01 11:34:37 +08:00