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