Commit Graph

109 Commits

Author SHA1 Message Date
d9a70793f7 feat(产品管理): 当前人时间着色与任务全景一致
- 当前人时间按滞留时长着色:<1h 绿 / ≥1h 橙 / ≥24h 红
- 与任务全景「当前人滞留」列的配色逻辑统一
2026-08-28 11:33:57 +08:00
90f5718e68 fix(驳回/返工): 抽屉与卡片数字口径一致,同时展示已驳回+返工任务
- 根因:卡片数字含返工任务(tasks_rework 实时快照),但抽屉只列已驳回 → 点开为空
- get_rejected_tasks 扩展返回两类(kind=rejected 按时间过滤 / kind=rework 实时不过滤)
- 前端抽屉按「已驳回」「返工任务」分组展示,数字与明细一一对应
2026-08-28 11:33:54 +08:00
1e6adeb576 fix(二维码): 弹窗打开时锁定背景滚动
- 与流转树弹窗一致,二维码弹窗打开时 body overflow=hidden 防止滚动穿透
2026-08-28 11:33:49 +08:00
88f02cbdcf fix(图片): 记录弹窗图片从页面跳转改为点击放大预览
- TaskFlowView 记录图片 window.open 跳转 → antd Image.PreviewGroup 点击放大
- 与人员看板/效能分析的图片查看模式全局统一
2026-08-28 11:33:46 +08:00
1bb93e0a5f fix(流转树): 弹窗打开时锁定背景滚动,消除滚动穿透
- 通用 Modal 打开时 body overflow=hidden,关闭时恢复
- 修复流转树宽屏弹窗滚动时背景看板跟随滚动的问题
- TaskFlowView 记录弹窗同步加锁(覆盖无外层弹窗的页面内打开场景)
2026-08-28 11:24:59 +08:00
ddb1b4364b feat(任务全景): 新增列显隐控制,可勾选去掉不想要的列
- 工具栏新增「列设置」按钮,弹出 checkbox 列表控制列显示/隐藏
- 勾选=显示,取消=去掉该列(如不需要宏观状态可直接取消勾选)
- 操作列(流转树)固定显示不可隐藏,提供「全部显示」重置
- 表格列数与网格跨度按实际显示列动态计算,原有排序/筛选/拖拽保留
2026-08-28 11:21:22 +08:00
7cfaf4b04b feat(任务全景): 流转树改为宽屏弹窗并放大字体
- TaskFlowView 增加 size prop(sm默认/lg放大),弹窗模式卡片/字体/按钮全部放大
- TaskTreeViewer 通用 Modal 导出并支持 widthClass/bodyClassName 定制
- AdminTasksPage 内嵌展开改为宽屏 Modal(max-w-6xl),保留接收/转交/驳回操作
- 记录弹窗放大且 z-index 提升到 z-[60] 保证覆盖弹窗
- 修复 TaskRecordResponse 无 note 字段的类型错误,清理未使用 import
2026-08-28 11:19:08 +08:00
d92fcc4d4a feat(全局概览): 驳回/返工卡片可点击下钻明细抽屉
- 驳回/返工数字改为可点击按钮,打开明细抽屉(仿完成明细)
- RejectedRow 展示设备/被驳回工序/驳回人/返工给谁/原因/时间,行点击跳转任务全景
- 跟随顶部时间筛选(since/until)
2026-08-28 11:19:03 +08:00
645c594ecd fix(任务状态): REJECTED 标签由「待接收」修正为「已驳回」
- constants/task.ts 的 STATUS_CONFIG 中 REJECTED 误复用 PENDING 文案
- 修复后流转树/扫码页等所有用 getStatusConfig 展示驳回任务的地方显示正确
2026-08-28 11:18:53 +08:00
19c7c7bbf1 feat(任务全景): 表头排序/筛选/列拖拽 + 新增当前人滞留列
- 状态筛选 tabs 去掉「已入库」并支持多选
- 表头点击排序:身份证/序列号/当前人滞留/最新动态/创建时间,三态循环(升/降/取消)
- 表头漏斗筛选:文本列模糊过滤,枚举列(宏观状态/任务状态/当前位置)多选过滤
- 列头拖拽调整列显示顺序
- 新增「当前人滞留」列,读 active_duration_hours 按天/小时/分钟着色展示
- 修复 handleSearch 引用不存在的 setExpandedProducts(应为此前的展开状态) 导致的查询报错
2026-08-28 10:46:20 +08:00
24c124cd30 feat(产品管理): 卡片跳转 + 时间字段 + 状态筛选多选
- 点击产品卡片跳转 /admin/tasks?sn=身份证,与全局概览看板一致
- 卡片新增「当前人时间」(滞留时长) 与「生产总天数」(自创建)
- 状态筛选 tabs 去掉「已入库」(仓库已显示为已完成),改为多选
- 卡片内编辑/删除/打印按钮 stopPropagation 避免误触跳转
- 清理未使用的 import
2026-08-28 10:46:17 +08:00
d007c7b843 feat(frontend): ProductResponse 类型增加 active_duration_hours
- 与后端 ProductResponse 字段同步,供产品管理页/任务全景页展示滞留时长
2026-08-28 10:46:13 +08:00
620df5ce11 feat(analytics): 人员视图重构为 custom 居中紧凑柱状 + 原生横向滚动
- capabilityOption 改 custom 系列,居中紧凑算法消除幽灵占位
- 柱宽保底 3px(0值/极小值也有柱子)、数字标签悬浮柱顶
- X 轴四行展示:物料名/规格型号/序列号/身份证
- 原生横向滚动容器(每设备 140px)+ custom-scrollbar 样式
- tooltip appendToBody 避免被容器裁剪
2026-08-14 15:43:31 +08:00
1e374e76bf feat(analytics): CapabilityDevice 增加 material_name(X 轴展示物料名)
- 后端 CapabilityDevice 新增 material_name,get_capability_profile 查询并填充
- 前端类型同步 material_name
2026-08-14 15:43:22 +08:00
00741ae288 fix(analytics): 柱色对齐图例、刷新智能定位 tab、视图更名
- custom series 补 itemStyle.color,使柱色与 legend/tooltip 色点一致
- activeTab 根据 URL 参数智能初始化(选人→人员视图,选设备→轨迹流转)
- 视图及页头文案从「个人能力图谱/设备流转对比」改为「人员视图/轨迹流转」
2026-08-14 14:49:56 +08:00
31d9a8781a feat(analytics): 筛选器体验升级(人名网格化/规格物料名/设备卡片下拉)
- 人员选择器 4 列网格 + 两字姓名对齐 + 全选/全不选
- 规格型号 2 列网格 + 物料名展示 + 全选/全不选
- 设备输入框改为卡片式下拉器(物料名/S/N/完整身份证)
- productSn(string) 改为 productSns(string[]) 多选
2026-08-14 14:30:43 +08:00
807df56c3a feat(analytics): 规格型号带物料名 + 设备字典(/options 数据契约扩展)
- 后端新增 SpecModelOption/DeviceOption schema
- get_analytics_options 返回规格型号的物料名(同型号取首个非空名)+ 关联设备列表
- 前端同步 SpecModelOption/DeviceOption 类型
2026-08-14 14:30:35 +08:00
7d48daca0c style(analytics): 隐去设备生命周期时间轴主干背景,仅保留柱顶总计标签
- 主干 series 的 itemStyle.color 改为 transparent,去掉灰色填充与描边
- 保留 label 的 {title|总计}\n{value|...} 文本,让总时长优雅悬浮在时间轴顶端
2026-08-14 11:46:44 +08:00
99235d29e0 feat(analytics): 设备生命周期时间轴(主干居中 + 主次分支 + 上帝视角 tooltip)
- flowOption 从堆叠柱状改为 custom 区间甘特图
- 灰色主干打底居中,主线任务绝对居中、分支任务悬挂右侧(靠透明度区分并行)
- tooltip 上帝视角:开始时间/流转周期/累计工时/中间空闲时长/人员占比(色点标识)
2026-08-14 11:44:55 +08:00
2b17dde42e feat(analytics): 前端 ECharts CustomChart 注册 + 数据契约类型扩展
- BaseEChart 注册 CustomChart 支持区间渲染
- FlowInterval 类型扩为 6 位(含 isMain)
- FlowDevice 增加 lead_time/started_at
2026-08-14 11:44:48 +08:00
54b5ea00f1 feat: 新增效能分析看板(个人能力图谱 + 设备人员耗时对比)
- 前端:AnalyticsDashboard 页面 + BaseEChart 封装 + analyticsApi,路由与导航
- 后端:/analytics 系列接口(capability/flow/options/device-records)
- 能力图谱单机颗粒度、流转对比按人堆叠识别瓶颈、点击下钻备注、筛选动态联动
- 依赖:引入 echarts,移除 echarts-for-react
2026-08-14 10:19:44 +08:00
f4fc23be42 feat(web): 人员工时台账表格+多维搜索+CSV导出+新流转红点标注+分页中文 2026-08-13 16:04:29 +08:00
c2e6ed240b feat(dashboard): 看板增强——流转完成率下钻明细 + 人员看板(按人聚合在制品设备) 2026-08-13 12:00:12 +08:00
b6ef0751e0 fix(web): 列表最新动态显示操作人、流转树焦点模式保留活跃并发分支 2026-08-13 11:17:13 +08:00
11ae3260ac fix(web): 修复图片 URL 拼接逻辑,/api/ 路径支持公网域名去重拼接 2026-08-13 10:34:45 +08:00
f056cc8625 fix: 图片URL双重/api/v1前缀导致404
根因: 后端返回 /api/v1/upload/files/xxx.jpg
      前端imageUrl又拼VITE_API_BASE_URL=/api/v1
      → /api/v1/api/v1/upload/files/xxx.jpg → 404
修复: /api/开头的URL直接返回, 不再拼接前缀
2026-08-13 09:07:10 +08:00
badb470ea9 Revert "fix: 表格grid 16→14列对齐 — 身份证列宽更充足"
This reverts commit f0503f8800.
2026-08-12 17:31:22 +08:00
f0503f8800 fix: 表格grid 16→14列对齐 — 身份证列宽更充足 2026-08-12 17:29:15 +08:00
5062745c14 Revert "fix: 序列号列兜底显示 — external_serial为空时展示身份证后6位"
This reverts commit 8ac4c425a5.
2026-08-12 17:28:04 +08:00
8ac4c425a5 fix: 序列号列兜底显示 — external_serial为空时展示身份证后6位 2026-08-12 17:24:37 +08:00
828aee5161 feat: 任务全景搜索框增加一键清除(×)按钮 2026-08-12 17:14:09 +08:00
a5e256330a fix: parseImages支持数组输入 — Pydantic序列化后images已是数组非字符串 2026-08-12 16:08:37 +08:00
a38be2c568 fix: TaskRecordResponse类型匹配后端schema — 补全images字段 2026-08-12 16:05:05 +08:00
e511952ea0 feat: 最新动态列支持图片展示 — 纯文字/纯图片/图文混合三种模式
后端: ProductResponse 新增 latest_record_has_images
前端: 📷图标 + 纯图片时显示"图片记录" + Tooltip标注[含图片]
2026-08-12 16:01:24 +08:00
92c388190c fix: grid-cols-[16]改为inline style避免Tailwind任意值不生效导致表头竖排 2026-08-12 16:00:03 +08:00
b21b9ed0e2 fix: 表格布局恢复原始列宽 — 规格型号/创建时间各2列, 总16列 2026-08-12 15:56:48 +08:00
163d9c20bb feat: 任务全景表格新增"最新动态"列
后端:
  - ProductResponse 新增 latest_record_time/content 字段
  - get_all_products 批量查询活跃任务(WIP/PENDING)的最新 task_records
  - 使用窗口函数 ROW_NUMBER() PARTITION BY product_id

前端:
  - AdminTasksPage: grid-cols-12→grid-cols-[14]
  - 表头+数据行新增"最新动态"列
  - Tooltip悬浮显示完整内容, 截断+灰字二级排版
2026-08-12 15:43:33 +08:00
49cbf22854 fix: 修复or_局部导入遮蔽模块级导入导致UnboundLocalError + Drawer改用size
1. product_service.py: 删除函数内两处 from sqlalchemy import or_
   Python解析器看到函数内的import就把or_当局部变量, 在赋值前使用就报UnboundLocalError
   模块顶部已有 import or_, 函数内无需重复导入

2. AdminDashboard.tsx: Drawer width→size (Antd v6 deprecation)
2026-08-12 15:05:39 +08:00
9b59521746 feat: 看板在制品点击跳转任务全景并自动展开流转树
Dashboard: WipRow 点击改为 nav(/admin/tasks?sn=xxx)
AdminTasksPage: 读取 ?sn= 参数 → 自动搜索 → 产品加载后自动展开流转树
2026-08-12 15:00:37 +08:00
fd289db0fc hotfix: 修复模板字符串转义错误导致的编译失败 2026-08-12 14:54:06 +08:00
e0a5a572cc feat: 扫码页双模式 — 看板跳转显示任务全景(无摄像头), 直接访问保留扫码 2026-08-12 14:51:36 +08:00
c90b77801d feat: 扫码页支持URL参数自动查询 — /scan?sn=xxx 直接展示流转树 2026-08-12 14:50:44 +08:00
ddc34182dd fix: 在制品点击改为应用内跳转扫码详情页(流转树) 2026-08-12 14:45:09 +08:00
729de138cd feat: 在制品附加信息补全 — 设备名称|规格型号|序列号|身份证
后端: WipTask 新增 spec_model, 查询关联 Product.spec_model
前端: 第二行格式改为 物料|规格|序列号:xxx|身份证:xxx
2026-08-12 14:43:20 +08:00
f608f6bf81 fix: SLA阈值调整 — <24h绿 24-48h橙 >48h红 2026-08-12 14:35:07 +08:00
9460a8492a feat: 在制品列表信息层级重构 + SLA预警色 + 点击跳转
1. 信息层级重构:
   主信息: [状态Tag] 任务名 | 负责人: 张三  ⏰3h
   附加信息: 物料名 SN:25022 ...A1B2C3  08-12 10:00
   新增后端 material_name 字段, 前端卡片式布局

2. SLA滞留预警色:
   <12h → 绿色(正常) | 12-24h → 橙色(警告) | >24h → 红色加粗(危险)

3. 交互: 点击卡片新窗口打开对应产品扫码详情页
2026-08-12 14:33:56 +08:00
079b65e761 feat: 在制品加业务序列号 + 追溯码改名为身份证
1. 在制品行: 显示 external_serial(业务序列号)
   优先 external_serial → 兜底 product_sn
   旧: 装配 A1B2C3D4  张三
   新: 装配 25022  张三

2. 留言板: 追溯码 → 身份证
   旧: 追溯码: 000000000000000D
   新: 身份证: 000000000000000D

3. 后端: WipTask 新增 external_serial 字段
   关联查询 Product.external_serial
2026-08-12 14:23:23 +08:00
ff7c791d49 fix: 留言板区分业务序列号与系统追溯码
语义修正:
  Product.serial_number  = 16位HEX系统追溯码(如000000000000000D)
  Product.external_serial = 业务产品序列号(如25022)

后端:
  - ProductMessageItem 新增 external_serial 字段
  - search_product_messages 关联查询 Product.external_serial
  - 关键词搜索也支持按 external_serial 匹配

前端显示:
  样品升降台V1J · 序列号: 25022          ← 醒目
  追溯码: 000000000000000D               ← 10px浅灰小字
2026-08-12 14:20:38 +08:00
c14bbeb891 fix: 3个逻辑/UI Bug修复
Bug1 — 任务总数与进度条不匹配:
  tasks_total 从全库历史总数改为 PENDING+WIP+COMPLETED(时段)+REJECTED(时段)
  确保进度条4段之和 = 显示的总数, 不再出现11≠9的缺口

Bug2 — 在制品排序混乱:
  移除DB层order_by, 改为Python统一按duration_hours降序
  无视status, 纯数值排序, 滞留最久排最前
  取limit*2条后在Python中排序再截断

Bug3 — 留言板产品显示割裂:
  [Tag:SN] 物料名 → 物料名 (SN: A1B2C3D4...)
  物料名加粗, SN等宽灰色, 阅读更顺畅
2026-08-12 14:13:26 +08:00
7906b8834a style: 留言板SN标签改用等宽字体更醒目 2026-08-12 14:05:46 +08:00