|
|
e5b201a040
|
重构: 删除卡片中间冗余按钮 + 转交弹窗接入真实用户/工序API
|
2026-08-05 15:25:19 +08:00 |
|
|
|
22f7bb2f79
|
全栈: Task模型+remark字段 + 前端任务卡片初始说明展示区
|
2026-08-05 15:22:50 +08:00 |
|
|
|
3b02c87067
|
重构: flex布局撑满全屏 + 记录区下沉到子树底部 + 底部Footer钉死
|
2026-08-05 15:16:03 +08:00 |
|
|
|
430c0d2342
|
布局升级: 流转树撑满空间+独立历史记录页+查看全部记录入口
|
2026-08-05 15:09:09 +08:00 |
|
|
|
5e53cd7f79
|
纳入 track-uniapp 前端项目 (扫码/任务树/记录/转交Picker)
|
2026-08-05 15:01:46 +08:00 |
|
|
|
eaaeb38d0a
|
chore: gitignore 补充 backend/app/uploads/
|
2026-08-05 14:02:06 +08:00 |
|
|
|
59c182a743
|
feat(frontend): 管理端页面 — 任务全景树/创建产品/标签打印/认证守卫
App.tsx:
- AntApp + AuthProvider + ToastProvider 三层包裹
- /admin/login 独立登录页
- /admin/* 路由认证守卫
AdminLayout:
- 未登录→跳转登录; 顶部栏显示用户名+登出
- 侧边栏: 全局概览/产品管理/任务全景
CreateProductDialog (Ant Design 重写):
- MOM物料手风琴选择器 (Collapse+Table)
- 分组懒加载 + useRef缓存 + 防抖搜索
- HEX ID只读展示 + 序列号/订单号选填
AdminProductsPage:
- 打印预览弹窗 (Base64标签预览 + 份数选择)
- 打印机设置入口 → AdminPrintConfigPage
扫码组件对齐:
- ProductCard: material_name/spec_model/current_location
- TaskListCard: 递归 task_tree + 状态配色 + 返工/裂变标签
- QueryResult: task_tree 优先
- ScanPage: 宏观状态栏
|
2026-08-05 14:01:36 +08:00 |
|
|
|
d04085fc38
|
feat(frontend): 认证体系 + 类型定义 + API 服务层
认证:
- AuthContext + useAuth (JWT token 持久化, 登录/登出)
- AdminLoginPage (登录表单, 对接 POST /auth/login)
- axios 拦截器自动注入 Authorization header
- 401 自动清除 token 并跳转登录页
类型:
- api.ts: TASK_STATUS 常量, TaskResponse/ProductScanResponse 扩展字段
- admin.ts: ProductResponse 扩展 + MaterialOption/BomItem
API 服务:
- authApi: login() + getMe()
- materialApi: fetchMaterialGroups() + fetchMaterialItems()
- printApi: getLabelPreview() + executePrint() + getPrinterConfig()
- antd 6.5.3 依赖
字体: simhei.ttf (标签打印用)
|
2026-08-05 14:01:08 +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 |
|
|
|
79583cf8f4
|
feat(api): 核心端点 — 接收/驳回/转交/打印/上传/用户/物料/记录CRUD
新增端点:
- POST /tasks/{id}/receive — 确认接收 (PENDING→WIP)
- POST /tasks/{id}/reject — 品质驳回 + 自动返工
- POST /tasks/{id}/transfer — 完工裂变转交 (多路分支+入库)
- PATCH /tasks/{id}/records — 追加图文记录
- PATCH /products/scan/{sn}/status — 宏观状态定调
- POST /upload/ + GET /upload/files/{name} — 文件上传
- GET /users/ — MOM用户列表
- GET /materials/groups + /materials/items — BOM物料手风琴
- POST /print/preview + /execute — 标签预览/打印
- PUT/DELETE /records/{id} — 记录编辑/删除
- GET /tasks/ 新增 assignee_id 过滤
|
2026-08-05 14:00:43 +08:00 |
|
|
|
f9e10a7dd1
|
feat(schemas): 扩充 Task/Product Pydantic Schema
Task Schema:
- TaskResponse 新增 is_rework, reject_reason, received_at, completed_at, records, product_sn
- 新增 TaskRejectRequest, TaskTransferRequest, TaskRecordCreate, TaskRecordResponse
- TaskRecordResponse 含 json.loads 反序列化 images
Product Schema:
- ProductResponse/ProductScanResponse 新增 external_serial, current_location_id, overall_status
- ProductScanResponse 新增 task_tree (递归任务树)
- ProductCreate 改为 material_id/material_name/spec_model + external_serial + order_no 自由文本
- ProductUpdate 新增 order_no
|
2026-08-05 14:00:32 +08:00 |
|
|
|
e0c01a562f
|
feat(models): Task/Product 模型扩充 + 4个Alembic迁移
Task 模型:
- 新增 received_at, completed_at, reject_reason, is_rework
- 新增 TaskRecord 模型 (remark + images JSON)
- 状态常量 PENDING/WIP/COMPLETED/REJECTED/ARCHIVED
- 全部时间字段改用北京时间 (get_beijing_time)
Product 模型:
- order_id → 可选; 新增 external_serial, current_location_id
- 新增 material_name/spec_model/category/material_type 快照字段
- 新增 overall_status (备货/生产/测试/维修/在库)
迁移:
- b2c3: HEX计数器Sequence + external_serial + order_id nullable
- c3d4: material快照4列
- d4e5: overall_status
- e5f6: task_records表
|
2026-08-05 14:00:23 +08:00 |
|
|
|
82f474f71f
|
chore: 基础设施 — 阿里云源、北京时间、HEX计数器、打印机配置
|
2026-08-05 14:00:13 +08:00 |
|
|
|
8458b99782
|
feat(frontend): 实现任务全景树组件与三大操作弹窗
TaskTreeViewer (components/TaskTree/):
- 搜索栏: 输入 16 位序列号 → getTaskTree() → 递归渲染产品任务树
- 状态标签: PENDING(黄)/WIP(蓝)/COMPLETED(绿)/REJECTED(红)/ARCHIVED(灰)
- 返工警告: is_rework → 红色脉冲 ⚠返工 标签 + 红色 ring 边框
- 裂变标识: child_tasks>1 → 紫色 裂变×N 标签 + 树形连接线
- 产品摘要栏: 序列号/订单/当前位置(virtual_warehouse→🏭仓库)/任务总数
三大操作弹窗 (替换 alert 占位符):
- ReceiveConfirmModal: 二次确认 → receiveTask() → Toast + 刷新树
- RejectModal: 驳回原因必填(≤500字) → rejectTask() → 自动返工提示
- TransferModal: 工序名称 + 多接收人标签输入(Enter添加/X删除)
+ 🏭虚拟入库勾选 + 备注 + 实时裂变预览 → transferTask()
路由接入:
- App.tsx: 包裹 ToastProvider, 新增 /admin/tasks 路由
- AdminLayout: 侧边栏新增「任务全景」菜单 (GitBranch 图标)
- AdminTasksPage: 薄封装层
|
2026-08-04 17:30:26 +08:00 |
|
|
|
8fcb33ab5e
|
chore(frontend): 新增全局 Toast 通知组件与入场动画
components/ui/Toast.tsx:
- Context + Provider 模式,全局可用 useToast() hook
- 支持 success / error / info 三种类型,颜色自动适配
- 3.5s 自动消失,支持手动关闭
- 固定右下角渲染,z-[9999]
index.css:
- 新增 @keyframes slide-in 右侧滑入动画
|
2026-08-04 17:30:17 +08:00 |
|
|
|
2b5e3ae4c3
|
feat(frontend): 更新 TS 类型定义与 API 服务层,对接后端重构接口
types/api.ts:
- TaskSummary/TaskResponse 新增 is_rework, reject_reason, received_at, completed_at 字段
- 新增 TASK_STATUS 常量 (PENDING/WIP/COMPLETED/REJECTED/ARCHIVED)
- 新增 TaskTransferResponse, TaskRejectPayload, TaskTransferPayload 类型
- ProductScanResponse 新增 current_location_id, task_tree 字段
types/admin.ts:
- ProductResponse 新增 current_location_id 字段
services/taskApi.ts:
- 新增 getTaskTree(serialNumber) — 产品全景任务树
- 新增 receiveTask(taskId) — 确认接收
- 新增 rejectTask(taskId, reason) — 品质驳回
- 新增 transferTask(taskId, assignees, name, note?) — 完工裂变转交
|
2026-08-04 17:30:12 +08:00 |
|
|
|
340a09007e
|
feat: 实现前端管理看板与移动端扫码视图组件
|
2026-08-04 17:10:01 +08:00 |
|
|
|
d18d9dbaac
|
feat: 建立前端 TS 类型系统与 API 请求服务层
|
2026-08-04 17:09:55 +08:00 |
|
|
|
daae052878
|
chore: 配置前端 Vite 环境,搭建全局路由结构与基础样式
|
2026-08-04 17:09:51 +08:00 |
|
|
|
b22de514a1
|
feat: 实现后端核心业务逻辑 (Auth鉴权、二维码服务、看板与产品端点)
|
2026-08-04 17:09:47 +08:00 |
|
|
|
2b967afbf6
|
chore: 更新后端依赖,初始化数据库迁移与 MOM 外部系统连接
|
2026-08-04 17:09:33 +08:00 |
|
|
|
e0bd1ad44e
|
chore: 完善全栈 Docker 开发环境与容器基础设施
|
2026-08-04 17:09:30 +08:00 |
|
|
|
9ec4f8efa7
|
feat(api): 新增核心 API 端点 + 数据库迁移
新增 3 个 API 端点:
- POST /tasks/{id}/receive: 确认接收 (PENDING→WIP)
- POST /tasks/{id}/reject: 品质驳回 + 返工闭环
- POST /tasks/{id}/transfer: 完工裂变转交 (多路分支+入库)
数据库迁移 (a1b2c3d4e5f6):
- tasks 表新增 received_at, completed_at, reject_reason, is_rework
- products 表新增 current_location_id
- 数据迁移: 已有任务状态小写→大写 (pending→PENDING 等)
|
2026-08-04 17:03:43 +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 |
|
|
|
cb97d390ad
|
feat(schemas): 更新 Pydantic Schema,新增请求/响应模型
Task Schema 更新:
- TaskResponse/TaskSummaryResponse 新增 is_rework, reject_reason, received_at, completed_at 字段
- 新增 TaskRejectRequest (品质驳回请求, reason 必填)
- 新增 TaskTransferRequest (裂变转交请求, next_assignees + next_task_name 必填)
- 新增 TaskTransferResponse (裂变转交响应)
- TaskCreate 新增 is_rework 字段
Product Schema 更新:
- ProductResponse/ProductScanResponse 新增 current_location_id 字段
- ProductScanResponse 新增 task_tree 字段 (递归任务树,供十字矩阵树状图)
|
2026-08-04 17:03:29 +08:00 |
|
|
|
817be6b036
|
feat(models): 扩充 Task 和 Product 数据库模型
Task 模型新增:
- received_at: DateTime (操作员确认接收时间)
- completed_at: DateTime (任务完工转交时间)
- reject_reason: String(500) (驳回原因)
- is_rework: Boolean (是否为返工任务,默认 False)
- 状态常量: PENDING/WIP/COMPLETED/REJECTED/ARCHIVED
- 默认状态由 'pending' 升为大写 'PENDING'
Product 模型新增:
- current_location_id: String(64) (当前持有者ID 或 'virtual_warehouse')
|
2026-08-04 17:03:23 +08:00 |
|
|
|
895fed6ac3
|
chore: 添加 .gitignore 并移除敏感/缓存文件
- 添加 .gitignore (Python __pycache__, .env, .idea, node_modules 等)
- 从追踪中移除 backend/.env, frontend/.env (密钥文件)
- 从追踪中移除 __pycache__/ 目录 (编译缓存)
- 从追踪中移除 .idea/ (IDE 配置)
|
2026-08-04 17:03:17 +08:00 |
|
|
|
17105dc9c2
|
初始提交:项目基础结构
- backend: FastAPI 后端服务 (Python)
- frontend: React + Tauri 前端应用
- docker-compose.yml: 容器编排配置
|
2026-08-04 10:05:59 +08:00 |
|