Commit Graph

  • c3e03bb177 fix(透视表): 不再把任意已完成工序强制归在库 duxingchen 2026-08-28 16:57:02 +08:00
  • b57ae19b44 fix(透视表): 每台设备只按当前工序统计一次,修复待确认重复计数 duxingchen 2026-08-28 16:54:43 +08:00
  • 0dcdb5dad7 fix(透视表): WIP 分布矩阵只统计主分支 duxingchen 2026-08-28 16:51:46 +08:00
  • 8c3c0c4d90 refactor(透视表): 取消按人员分布,时间筛选对齐全局概览 duxingchen 2026-08-28 16:36:45 +08:00
  • 9d08c50ef6 feat(透视表): 列数超6时分块垂直排列 + 规格型号列升降序 duxingchen 2026-08-28 16:35:26 +08:00
  • 41dd257260 feat(透视表): 工序分布包含在库/完成 + 增加时间筛选 duxingchen 2026-08-28 16:32:01 +08:00
  • fdd7465afb feat(前端): 新增 WIP 分布矩阵透视表页面 duxingchen 2026-08-28 16:25:26 +08:00
  • 7547a886cc feat(backend): 新增 /dashboard/wip-matrix 在制品交叉聚合接口 duxingchen 2026-08-28 16:25:20 +08:00
  • d9ec15b72f refactor(效能分析): 人员视图改为数据切片瀑布流,告别横向滚动 duxingchen 2026-08-28 16:17:37 +08:00
  • e62855df43 feat(效能分析): 人员视图设备过多时分页显示,解决超宽无滚动 duxingchen 2026-08-28 16:10:43 +08:00
  • 1d4023a27c fix(效能分析): 自然天/工作日切换按钮移至各视图顶部,全选长图也能看到 duxingchen 2026-08-28 15:51:53 +08:00
  • 907473b18c feat(效能分析): 人员视图也支持自然天/工作日耗时切换 duxingchen 2026-08-28 15:38:32 +08:00
  • 4447a1f52d feat(效能分析): 轨迹流转图时间轴支持工作日/自然天切换 duxingchen 2026-08-28 15:34:17 +08:00
  • 7f1858387c feat(前端): 产品卡片双生产总天数 + 效能分析设备总天数按钮切换 duxingchen 2026-08-28 15:29:01 +08:00
  • b09187ac6e feat(backend): 生产总天数返回自然天+工作日两个口径 duxingchen 2026-08-28 15:28:56 +08:00
  • 451e24c34c fix(workload): get_people_workload 内嵌 _to_bj 改用 to_beijing,修复 BEIJING_TZ 未定义 duxingchen 2026-08-28 15:13:18 +08:00
  • bad0941d67 fix(时长): 所有时长计算排除非工作日 + 修复两处时区多算8小时 duxingchen 2026-08-28 15:08:10 +08:00
  • ad4b55dece feat(工作日): 新增工作小时计算工具 + 节假日表与管理接口 duxingchen 2026-08-28 15:08:05 +08:00
  • 1a5716a1ab feat(操作统计): 抽屉内增加独立时间筛选 duxingchen 2026-08-28 14:40:58 +08:00
  • 788d7a7f78 fix(操作统计): 全不选生效——默认全选,全不选后显示空态提示 duxingchen 2026-08-28 13:54:43 +08:00
  • d0fc8cdecf feat(操作统计): 点击接收/转交/上传备注数字下钻查看明细 duxingchen 2026-08-28 13:36:28 +08:00
  • 7205de369a feat(backend): 新增 /dashboard/user-operations/detail 操作明细下钻接口 duxingchen 2026-08-28 13:36:23 +08:00
  • 554608b948 feat(操作统计): 人员筛选增加全选/全不选按钮 duxingchen 2026-08-28 13:33:08 +08:00
  • 5722fe159a feat(操作统计): 人员筛选改为人名宫格多选 + 表头升降序 duxingchen 2026-08-28 13:31:03 +08:00
  • 477a187fc1 fix(操作统计): 上传备注改为按任务负责人归因,历史数据可回溯 duxingchen 2026-08-28 13:26:26 +08:00
  • 41c19242cf fix(操作统计): 返回全部人员而非仅有操作的人 duxingchen 2026-08-28 13:22:56 +08:00
  • 9471c1b7c5 feat(全局概览): 人员操作统计改为快捷入口内入口+抽屉弹窗展示 duxingchen 2026-08-28 13:19:45 +08:00
  • 72fbb8b501 feat(全局概览): 快捷入口下方新增人员操作统计区域 duxingchen 2026-08-28 13:14:13 +08:00
  • b85188e625 feat(backend): 新增 /dashboard/user-operations 人员操作统计接口 duxingchen 2026-08-28 13:14:09 +08:00
  • dd14185ab4 feat(APP): 记录页实现编辑记录弹窗,替代占位的「返回详情页」提示 duxingchen 2026-08-28 13:02:29 +08:00
  • d5315cb9a1 fix(APP): 撤回转交也加入5秒倒计时确认 duxingchen 2026-08-28 12:12:27 +08:00
  • 8537bce30c fix(APP): 倒计时期间确认按钮禁用虚化 + 收窄倒计时范围 duxingchen 2026-08-28 12:05:13 +08:00
  • d8e08497f6 fix(APP): 记录页删除也改为5秒倒计时双重确认 duxingchen 2026-08-28 11:49:48 +08:00
  • 5f8eeda818 fix(APP): 操作确认改为5秒倒计时双重确认,杜绝误触 duxingchen 2026-08-28 11:49:43 +08:00
  • d9a70793f7 feat(产品管理): 当前人时间着色与任务全景一致 duxingchen 2026-08-28 11:33:57 +08:00
  • 90f5718e68 fix(驳回/返工): 抽屉与卡片数字口径一致,同时展示已驳回+返工任务 duxingchen 2026-08-28 11:33:54 +08:00
  • 1e6adeb576 fix(二维码): 弹窗打开时锁定背景滚动 duxingchen 2026-08-28 11:33:49 +08:00
  • 88f02cbdcf fix(图片): 记录弹窗图片从页面跳转改为点击放大预览 duxingchen 2026-08-28 11:33:46 +08:00
  • 1bb93e0a5f fix(流转树): 弹窗打开时锁定背景滚动,消除滚动穿透 duxingchen 2026-08-28 11:24:59 +08:00
  • ddb1b4364b feat(任务全景): 新增列显隐控制,可勾选去掉不想要的列 duxingchen 2026-08-28 11:21:22 +08:00
  • 7cfaf4b04b feat(任务全景): 流转树改为宽屏弹窗并放大字体 duxingchen 2026-08-28 11:19:08 +08:00
  • d92fcc4d4a feat(全局概览): 驳回/返工卡片可点击下钻明细抽屉 duxingchen 2026-08-28 11:19:03 +08:00
  • 7e00683a21 feat(backend): 新增 /dashboard/rejected-tasks 驳回/返工下钻接口 duxingchen 2026-08-28 11:18:58 +08:00
  • 645c594ecd fix(任务状态): REJECTED 标签由「待接收」修正为「已驳回」 duxingchen 2026-08-28 11:18:53 +08:00
  • 91f10cf818 fix(docker): track 主库 DNS 冲突 — db 服务名被 MOM 抢占导致密码认证失败 duxingchen 2026-08-28 10:54:23 +08:00
  • 0bd0fbc2ec fix(docker): MOM 数据库连接超时 — 修正网络挂载与数据库地址 duxingchen 2026-08-28 10:49:42 +08:00
  • 19c7c7bbf1 feat(任务全景): 表头排序/筛选/列拖拽 + 新增当前人滞留列 duxingchen 2026-08-28 10:46:20 +08:00
  • 24c124cd30 feat(产品管理): 卡片跳转 + 时间字段 + 状态筛选多选 duxingchen 2026-08-28 10:46:17 +08:00
  • d007c7b843 feat(frontend): ProductResponse 类型增加 active_duration_hours duxingchen 2026-08-28 10:46:13 +08:00
  • 90d615cbb0 feat(backend): 产品列表返回当前人滞留时长 active_duration_hours duxingchen 2026-08-28 10:46:10 +08:00
  • 620df5ce11 feat(analytics): 人员视图重构为 custom 居中紧凑柱状 + 原生横向滚动 duxingchen 2026-08-14 15:43:31 +08:00
  • 1e374e76bf feat(analytics): CapabilityDevice 增加 material_name(X 轴展示物料名) duxingchen 2026-08-14 15:43:22 +08:00
  • 00741ae288 fix(analytics): 柱色对齐图例、刷新智能定位 tab、视图更名 duxingchen 2026-08-14 14:49:56 +08:00
  • 31d9a8781a feat(analytics): 筛选器体验升级(人名网格化/规格物料名/设备卡片下拉) duxingchen 2026-08-14 14:30:43 +08:00
  • 807df56c3a feat(analytics): 规格型号带物料名 + 设备字典(/options 数据契约扩展) duxingchen 2026-08-14 14:30:35 +08:00
  • 7d48daca0c style(analytics): 隐去设备生命周期时间轴主干背景,仅保留柱顶总计标签 duxingchen 2026-08-14 11:46:44 +08:00
  • 99235d29e0 feat(analytics): 设备生命周期时间轴(主干居中 + 主次分支 + 上帝视角 tooltip) duxingchen 2026-08-14 11:44:55 +08:00
  • 2b17dde42e feat(analytics): 前端 ECharts CustomChart 注册 + 数据契约类型扩展 duxingchen 2026-08-14 11:44:48 +08:00
  • 74d404cc11 feat(analytics): 设备流转甘特图数据底座(lead_time/started_at/task_type 主次标识) duxingchen 2026-08-14 11:44:41 +08:00
  • 54b5ea00f1 feat: 新增效能分析看板(个人能力图谱 + 设备人员耗时对比) duxingchen 2026-08-14 10:19:44 +08:00
  • f4fc23be42 feat(web): 人员工时台账表格+多维搜索+CSV导出+新流转红点标注+分页中文 duxingchen 2026-08-13 16:04:29 +08:00
  • 91b1426ccb feat(dashboard): 人员工时台账——平铺明细+多维筛选+时间交集+动态工时+备注+CSV导出 duxingchen 2026-08-13 16:04:23 +08:00
  • c2e6ed240b feat(dashboard): 看板增强——流转完成率下钻明细 + 人员看板(按人聚合在制品设备) duxingchen 2026-08-13 12:00:12 +08:00
  • b6ef0751e0 fix(web): 列表最新动态显示操作人、流转树焦点模式保留活跃并发分支 duxingchen 2026-08-13 11:17:13 +08:00
  • e5829c7d06 fix(backend): 修复并发任务聚合——当前位置汇总全部负责人、最新动态携带操作人、状态聚合补齐 REJECTED duxingchen 2026-08-13 11:17:10 +08:00
  • 3288223a92 refactor(mobile): 移动端上传/展示去 IP 化,统一公网域名并支持 NODE_ENV 环境感知 duxingchen 2026-08-13 10:34:56 +08:00
  • 77137cfced feat(deploy): 隔离上传目录 uploads_prod,清理部署脚本无效排除项 duxingchen 2026-08-13 10:34:50 +08:00
  • 11ae3260ac fix(web): 修复图片 URL 拼接逻辑,/api/ 路径支持公网域名去重拼接 duxingchen 2026-08-13 10:34:45 +08:00
  • f056cc8625 fix: 图片URL双重/api/v1前缀导致404 duxingchen 2026-08-13 09:07:10 +08:00
  • b8ade13b61 fix: TaskRecordResponse改用field_validator — 不再污染ORM对象导致图片列表写回VARCHAR报错 duxingchen 2026-08-13 09:03:17 +08:00
  • abc8999358 hotfix: get_product_by_serial补全func导入 — 修复500错误 duxingchen 2026-08-13 09:01:34 +08:00
  • 997e16d9ba fix: 移除manifest.json中残留的push SDK配置 duxingchen 2026-08-12 18:05:52 +08:00
  • d8d42e9613 feat: 上游显示真实发送人 — 从task_logs追溯created_by duxingchen 2026-08-12 17:52:35 +08:00
  • 2170e2e9cf fix: 转交通知中product_sn始终为空 — product查询移到通知循环之前 duxingchen 2026-08-12 17:33:32 +08:00
  • badb470ea9 Revert "fix: 表格grid 16→14列对齐 — 身份证列宽更充足" duxingchen 2026-08-12 17:31:22 +08:00
  • f0503f8800 fix: 表格grid 16→14列对齐 — 身份证列宽更充足 duxingchen 2026-08-12 17:29:15 +08:00
  • 5062745c14 Revert "fix: 序列号列兜底显示 — external_serial为空时展示身份证后6位" duxingchen 2026-08-12 17:28:04 +08:00
  • 8ac4c425a5 fix: 序列号列兜底显示 — external_serial为空时展示身份证后6位 duxingchen 2026-08-12 17:24:37 +08:00
  • d9c875924c feat: 移动端扫码页手动输入框增加一键清除×按钮 duxingchen 2026-08-12 17:23:20 +08:00
  • eba0c3be98 fix: 端点层operator_id兜底current_user.username — 管理员代办检测生效 duxingchen 2026-08-12 17:19:56 +08:00
  • 828aee5161 feat: 任务全景搜索框增加一键清除(×)按钮 duxingchen 2026-08-12 17:14:09 +08:00
  • e7bfdc261b fix: TaskRecord也加入管理员代办审计标记 — 看板最新动态可见代理操作 duxingchen 2026-08-12 17:11:07 +08:00
  • 74cb77f547 refactor: 扫码页简化为单页模式 — 拍照按钮+手动输入 duxingchen 2026-08-12 17:06:40 +08:00
  • f6ba1d1740 fix: 扫码页优化 — 修复黑屏+右下角相册+Webview透明+扫描框位置调整 duxingchen 2026-08-12 17:05:42 +08:00
  • a09d4481a3 feat: 扫码页双模式 — 主页+微信级全屏扫码(plus.barcode原生摄像头) duxingchen 2026-08-12 16:59:33 +08:00
  • 2ca382bb2c refactor: 删除扫码页相册选择功能,仅保留拍照扫码+手动输入 duxingchen 2026-08-12 16:55:43 +08:00
  • 9f3deb5b6c revert: 恢复扫码页为双按钮版本(拍照+相册) duxingchen 2026-08-12 16:53:31 +08:00
  • 8303c8b93f fix: 滑动卡片指示器联动 — _cardIdx从computed迁移到data独立管理 duxingchen 2026-08-12 16:11:22 +08:00
  • a5e256330a fix: parseImages支持数组输入 — Pydantic序列化后images已是数组非字符串 duxingchen 2026-08-12 16:08:37 +08:00
  • a38be2c568 fix: TaskRecordResponse类型匹配后端schema — 补全images字段 duxingchen 2026-08-12 16:05:05 +08:00
  • e511952ea0 feat: 最新动态列支持图片展示 — 纯文字/纯图片/图文混合三种模式 duxingchen 2026-08-12 16:01:24 +08:00
  • 92c388190c fix: grid-cols-[16]改为inline style避免Tailwind任意值不生效导致表头竖排 duxingchen 2026-08-12 16:00:03 +08:00
  • b21b9ed0e2 fix: 表格布局恢复原始列宽 — 规格型号/创建时间各2列, 总16列 duxingchen 2026-08-12 15:56:48 +08:00
  • 6016f92dd0 hotfix: func→sa_func 解决局部变量遮蔽 duxingchen 2026-08-12 15:52:06 +08:00
  • b21df33e0a hotfix: 补充 product_service.py 顶部缺失的 func 导入 duxingchen 2026-08-12 15:50:01 +08:00
  • 163d9c20bb feat: 任务全景表格新增"最新动态"列 duxingchen 2026-08-12 15:43:33 +08:00
  • 1fdc607c07 feat: 管理员代工模式 — 前端权限放开 + 后端审计留痕 duxingchen 2026-08-12 15:24:50 +08:00
  • 49cbf22854 fix: 修复or_局部导入遮蔽模块级导入导致UnboundLocalError + Drawer改用size duxingchen 2026-08-12 15:05:39 +08:00
  • 9b59521746 feat: 看板在制品点击跳转任务全景并自动展开流转树 duxingchen 2026-08-12 15:00:37 +08:00
  • fd289db0fc hotfix: 修复模板字符串转义错误导致的编译失败 duxingchen 2026-08-12 14:54:06 +08:00