顺运宝明细创建采购任务并成功完成后,顺运宝列表没有显示采购完成。当前阶段判断只识别 pending/assigned/claimed 采购任务;任务进入 succeeded 后便回退到“采购就绪”,导致采购员误以为还可以再次采购,并且伪造表单请求也可能创建重复采购任务。
pending/assigned/claimed
succeeded
复现:
生产核对已确认存在成功采购任务而顺运宝上下文不再视其为活动任务。本缺陷涉及重复采购风险。
做:
manual_review
不做:
failed/cancelled
admin/repository/syb.go
admin/service/syb.go
admin/service/purchase_workflow.go
admin/templates/syb.html
docs/admin
预计修改:
docs/admin/01-requirements.md
docs/admin/05-ui-specification.md
从仓库根目录执行:
$env:GOTOOLCHAIN='go1.23.0' Set-Location admin gofmt -w repository/syb.go service/syb.go service/purchase_workflow.go go test ./repository ./service ./handler go test ./... go vet ./... go build ./cmd/admin
生产部署后,以已有成功采购任务的顺运宝货运单做只读页面核对;不得重新下单。
5528b4b
b2c9984
docs/task/169-采购完成状态与重复采购保护.md
go test ./... -count=1
go vet ./...
go build ./...
/opt/cmautobuy/releases/5528b4b/
autobuy-before-169-20260811T100957Z-notablespaces.sql.gz
PROCESS
umask 077
203/EXEC
实施进度(2026-08-11):
tasks
succeeded/manual_review
下一步:提交实现、归档,然后部署生产并用已有成功采购记录做只读核对。
用户于 2026-08-12 明确验收通过。已确认本地归档 docs/task/169-采购完成状态与重复采购保护.md 存在,现关闭工单。
No dependencies set.
The note is not visible to the blocked user.
1. 基本信息
2. 要解决什么
顺运宝明细创建采购任务并成功完成后,顺运宝列表没有显示采购完成。当前阶段判断只识别
pending/assigned/claimed采购任务;任务进入succeeded后便回退到“采购就绪”,导致采购员误以为还可以再次采购,并且伪造表单请求也可能创建重复采购任务。复现:
生产核对已确认存在成功采购任务而顺运宝上下文不再视其为活动任务。本缺陷涉及重复采购风险。
3. 做什么 / 不做什么
做:
manual_review显示待人工核对,明确禁止重新采购。不做:
failed/cancelled后现有人工重新创建策略。4. 已确认的实现方案
admin/repository/syb.go:在顺运宝上下文中分别查询是否存在succeeded、manual_review和活动采购任务。admin/service/syb.go:按“成功 → 待人工核对 → 活动任务 → 其他准备阶段”的优先级计算阶段;新增筛选项和明确说明。admin/service/purchase_workflow.go:在事务内复用顺运宝上下文,服务端拦截已有成功或待核对任务的重复采购请求。admin/templates/syb.html:完成和待核对状态只提供查看任务/结果入口,不显示创建采购动作。docs/admin稳定需求、界面说明。预计修改:
admin/repository/syb.goadmin/service/syb.goadmin/service/purchase_workflow.goadmin/templates/syb.htmldocs/admin/01-requirements.mddocs/admin/05-ui-specification.md5. 验收标准
manual_review采购任务时显示“采购待人工核对”,明确禁止重新采购。failed/cancelled的现有人工处理策略不变。6. 验证方式
从仓库根目录执行:
生产部署后,以已有成功采购任务的顺运宝货运单做只读页面核对;不得重新下单。
风险和回退
succeeded判为完成、manual_review判为待核对;活动、失败、取消状态维持各自现有语义,并以服务端校验作为最终门禁。实施记录
5528b4b(顺运宝采购完成/待核对阶段、服务端重复采购门禁、测试和基线文档)。b2c9984,归档:docs/task/169-采购完成状态与重复采购保护.md。go test ./... -count=1、go vet ./...、go build ./...全部通过。/opt/cmautobuy/releases/5528b4b/,服务 active/enabled,本机根路径 303、公网登录页 200、schema v12、近期应用错误 0。autobuy-before-169-20260811T100957Z-notablespaces.sql.gz,权限 600,gzip 校验通过。首次因业务账号无 tablespacePROCESS权限产生的不合格备份已删除。umask 077影响为 700,systemd 报203/EXEC;改为 755 后恢复正常,未发生数据库写入或回滚。实施进度(2026-08-11):
tasks实时识别成功、待人工核对和活动采购任务,并按安全优先级推导顺运宝阶段。succeeded/manual_review,直接构造请求也不会新增任务。failed/cancelled现有人工处理策略,不改 Client 四接口,不增加数据库迁移。go test ./... -count=1、go vet ./...、go build ./...。下一步:提交实现、归档,然后部署生产并用已有成功采购记录做只读核对。
用户于 2026-08-12 明确验收通过。已确认本地归档
docs/task/169-采购完成状态与重复采购保护.md存在,现关闭工单。