市场部和质检部,在系统中点击废弃后,另外一边自动转换为废弃状态,不需要人工再次点击废弃按钮。(市场和质检,任何一边废弃了样本,另外一边也自动废弃) 比如,质检部的老师在接收样本时,选择了废弃,在市场部那边,协议状态自动变更为【已废弃】状态,不需要市场部老师额外再废弃这份协议。
web端和小程序端 ,协议单【包括 细胞存储、科研捐赠】 只要变成了 【已作废】的状态。 那么协议单中的样本接收的状态自动变成废弃。
当协议单中的所有的样本接收选择了 废弃(或者拒收)。 那么协议单的状态 变成 已作废, 作废类型为“实验室废弃“ 。
工单诉求是市场协议作废 ↔ 质检样本接收废弃双向自动联动(细胞存储 + 科研捐赠)。只读定位结论:
mobile-h5
mobile-oa-h5
推荐范围:backend + web-admin(后端联动后列表/详情自动反映;mobile-h5 预计无代码改动;若需补字典标签「实验室废弃」再动 mobile-oa-h5)
backend
web-admin
等待用户确认或按会话默认策略采用推荐后再实施。
已确认修改范围:
验收要点:
personal-dev:delivery:cykj/zkxw#31:1fb25f4fc28b3ec8eca79e1d19ae39e171e32128
backend/app/services/protocol_reception_discard_sync.py
collection_protocol
research_donation
sample_reception
docs/sql/migrations/2026-11-05-void-type-lab-discard.sql
test_protocol_reception_discard_sync
test_protocol_status_transition_message
pnpm --dir web-admin build
e2e9059c170301575255f8906aab317c49843195
1fb25f4fc28b3ec8eca79e1d19ae39e171e32128
No dependencies set.
The note is not visible to the blocked user.
市场部和质检部,在系统中点击废弃后,另外一边自动转换为废弃状态,不需要人工再次点击废弃按钮。(市场和质检,任何一边废弃了样本,另外一边也自动废弃)
比如,质检部的老师在接收样本时,选择了废弃,在市场部那边,协议状态自动变更为【已废弃】状态,不需要市场部老师额外再废弃这份协议。
web端和小程序端 ,协议单【包括 细胞存储、科研捐赠】 只要变成了 【已作废】的状态。 那么协议单中的样本接收的状态自动变成废弃。
当协议单中的所有的样本接收选择了 废弃(或者拒收)。 那么协议单的状态 变成 已作废, 作废类型为“实验室废弃“ 。
修改端待确认(Agent)
工单诉求是市场协议作废 ↔ 质检样本接收废弃双向自动联动(细胞存储 + 科研捐赠)。只读定位结论:
mobile-h5无协议作废/样本接收业务页;小程序内市场协议实际在mobile-oa-h5(WebView)推荐范围:
backend+web-admin(后端联动后列表/详情自动反映;mobile-h5预计无代码改动;若需补字典标签「实验室废弃」再动mobile-oa-h5)等待用户确认或按会话默认策略采用推荐后再实施。
范围确认(按默认策略超时采用推荐)
已确认修改范围:
backend(共享联动落库,必需)web-admin(质检样本接收 / 市场协议作废入口验证)mobile-h5:预计无代码改动(无对应业务页)mobile-oa-h5:仅当需补「实验室废弃」展示标签时再改验收要点:
交付验收(Agent)
personal-dev:delivery:cykj/zkxw#31:1fb25f4fc28b3ec8eca79e1d19ae39e171e32128
验收条件对照
修改内容
backend/app/services/protocol_reception_discard_sync.py双向联动collection_protocol/research_donation/sample_receptiondocs/sql/migrations/2026-11-05-void-type-lab-discard.sql(运行时也会 ensure)测试
test_protocol_reception_discard_sync5 passedtest_protocol_status_transition_messagepassedpnpm --dir web-admin build通过合并
e2e9059c170301575255f8906aab317c498431951fb25f4fc28b3ec8eca79e1d19ae39e171e32128遗留