Commit Graph

77 Commits

Author SHA1 Message Date
eb97c12bed 修复撤回: 移除parent_task_id空校验+兼容无父任务场景(仅删除) 2026-08-06 12:39:47 +08:00
58cb9a23ef 修复撤回: transfer新任务parent_task_id=task.id(溯源链) + canRecall放宽(兼容旧数据) 2026-08-06 12:38:26 +08:00
67755c7847 修复撤回500: 先删task_logs+task_records再删task,加delete import 2026-08-06 11:41:45 +08:00
57884d7baa 撤回转交: recall接口删除子任务恢复父WIP + 前端canRecall判断 + 红色撤回按钮 2026-08-06 11:39:22 +08:00
b2cfa3871e 取消转交的协助分支阻塞: transfer_task移除_check_children_done,仅end_task保留 2026-08-06 11:29:58 +08:00
ef9e5bbae5 修复get_all_tasks: 改用_to_flat_response(不递归children)彻底消除MissingGreenlet 2026-08-06 11:19:19 +08:00
9846dd6c8f 修复: MissingGreenlet_product访问try/catch + spawn_subtask不再覆盖overall_status 2026-08-06 11:16:07 +08:00
e183ea5583 工业级重构: 用户Grid选择+工序由接收人定+隐藏结束按钮(次分支卡片内结束)+蓝图网格背景 2026-08-06 09:52:21 +08:00
eb52e2fd48 修复: create_task同步current_location_id到接收人 + receive_task兜底同步产品位置 2026-08-06 09:12:07 +08:00
f3fb000bda 产品宏观状态自动同步: create_task/transfer_task/spawn_subtask均更新overall_status 2026-08-06 09:06:07 +08:00
f665cf7e24 紧急修复: transfer中real_assignees→real_branches变量名 + SpawnRequest BaseModel导入 2026-08-05 18:16:07 +08:00
b547844dca 并发模型: spawn派发协助分支 + 转交简化为单线 + 子分支未完成拦截(409) 2026-08-05 18:01:14 +08:00
d9f4e7e66e 紧急修复: product_service._task_to_response补remark — 扫码详情页remark=null的根因 2026-08-05 17:41:09 +08:00
21aa608db3 工艺节点树: 新增结束分支(终止)接口 + 前端🏁结束分支按钮 + WIP可无下游完结 2026-08-05 16:37:05 +08:00
e2d9590c48 修复remark丢失(_to_response漏字段) + UI重构swiper专注卡片看板 2026-08-05 16:35:14 +08:00
4ee3cb7552 紧急修复: get_all_tasks移除parent_task_id过滤 — 子任务也能出现在我的任务列表 2026-08-05 16:30:45 +08:00
9978714d40 紧急修复: receive_task语法错误 — raise HTTPException括号未闭合导致后端启动失败 2026-08-05 16:25:34 +08:00
71e8eeb7e8 权限: receive/reject校验assignee_id匹配 + 前端myActiveTask只显示本人任务 + 403处理 2026-08-05 16:21:27 +08:00
62422e7558 全栈: 接收任务写入remark — 后端receive接口+Body参数+前端接收弹窗备注输入 2026-08-05 16:16:35 +08:00
353633f061 修复: 409错误提示可见 + PENDING状态拦截(必须先接收) + request.js显示409详情 2026-08-05 16:10:45 +08:00
4f14a40bd9 修复: 驳回返工任务追溯上一环转交人 — parent.assignee → TaskLog.operator_id 三层兜底 2026-08-05 16:03:33 +08:00
7810097b39 全栈修复: remark字段全链路打通 — TaskCreate+TransferRequest+transfer_task+前端Payload 2026-08-05 15:59:20 +08:00
1fed716829 feat(services): 核心业务逻辑 — 接收/返工/裂变/记录/标签打印
task_service:
- receive_task() — PENDING→WIP, 记录 received_at
- reject_task() — →REJECTED + 自动返工闭环
- transfer_task() — →COMPLETED + 多路裂变 + virtual_warehouse入库
- add_task_record() — 图文记录追加
- 全链路 selectinload(Task.records)
- 全部 now 改用 get_beijing_time()

product_service:
- create_product() — PG Sequence 自动生成16位HEX
- update_overall_status() — 宏观状态校验+更新
- 扫码返回完整 task_tree (含 records)
- order_no 自由文本→自动创建 ProductionOrder
- update_product() 支持 order_no 编辑

label_service:
- 480×360 工业级排版 (QR+名/规/单+底部通栏码)
- simhei.ttf 34px/28px + stroke_width 描边
- TSPL Socket 发送到打标机
2026-08-05 14:00:55 +08:00
82f474f71f chore: 基础设施 — 阿里云源、北京时间、HEX计数器、打印机配置 2026-08-05 14:00:13 +08:00
b22de514a1 feat: 实现后端核心业务逻辑 (Auth鉴权、二维码服务、看板与产品端点) 2026-08-04 17:09:47 +08:00
8028be58c4 feat(services): 重写核心业务逻辑 — 接收/驳回返工/裂变转交
task_service 新增 3 个核心业务函数:
- receive_task(): PENDING→WIP, 记录 received_at, 仅 PENDING 状态可接收
- reject_task(): →REJECTED, 记录 reject_reason+completed_at,
  防呆闭环: 自动查找父任务负责人, 创建 is_rework=True 的返工任务
- transfer_task(): →COMPLETED, 记录 completed_at,
  裂变转交: 遍历 next_assignees 批量创建 PENDING 任务,
  多路裂变(>1)时子任务挂载形成树状分支,
  virtual_warehouse 入库逻辑更新 Product.current_location_id
- complete_task(): 保留兼容, 同步使用新状态常量 TASK_STATUS_*

product_service 重构:
- get_product_by_serial(): 新增 task_tree 返回完整递归任务树
- _load_task_tree(): 递归加载产品关联的所有任务嵌套关系
2026-08-04 17:03:37 +08:00
17105dc9c2 初始提交:项目基础结构
- backend: FastAPI 后端服务 (Python)
- frontend: React + Tauri 前端应用
- docker-compose.yml: 容器编排配置
2026-08-04 10:05:59 +08:00