|
|
dcc92b223e
|
feat: 生产看板多维度重构(全量在制品、时间维度联动、口径提示)
本次只含后端看板接口与 PC 端页面。移动端的体验优化已在之前的 12 个提交中
入库,不在本提交范围内。
后端 · 服务层 dashboard_service.py
- 在制品列表不再按 20 条静默截断:此前 `.limit(limit*2)` 预取再排序切片,
前端又拿数组长度当总数,表现为「卡片 23、列表却写共 20 个」的数据被吞。
现默认返回全量,limit 降级为防御性上限
- 产品流转「已完结」接入右上角时间筛选(since/until),废弃硬编码「本月」。
此前选「今天」也会看到整月产出,业务语义分裂;待流转/流转中仍为实时快照。
Product 表无 completed_at,以名下工序的完成时间锚定「完结时刻」
- 返工任务可见性:未完结卡点永远展示,已了结的仅限本月,且与卡片数字共用
同一份条件,避免「按钮显示 2、点开共 0 条」
- 驳回明细的「返工给」改为真实溯源:直接查派生出的返工任务当前 assignee_id,
不再复刻 reject_task 的推算逻辑(返工任务事后被转交时会显示旧名字)
后端 · 接口层 dashboard.py
- /wip-tasks 的 limit 默认 20→500、上限 100→1000
- /my-stats 支持 since/until,新增接收/转交/上传备注口径(与 PC 人员操作统计
逐字段交叉验证一致)
PC 端
- AdminDashboard: 在制品计数绑定真实总数并加截断提示、列表改为容器内滚动;
驳回明细只展示「已驳回」行(返工行不再独立成行,其信息已由「返工给」承载);
「待流转」「待接收」图例新增口径 Tooltip,消除「产品数 > 任务数」的误解;
移除已失真的时间筛选提示条
- App.tsx: dayjs 中文 locale 上提到应用根。此前散落在 AdminPeoplePage /
AnalyticsDashboard 两个页面里,而路由是 lazy 分割的 —— 直接打开概览页时
那两个模块未加载,日期面板就露出 Sep/Su/Mo
- AdminPeoplePage / AnalyticsDashboard: 移除重复的页面级 locale 设置
- dashboardApi.ts: fetchWipTasks 默认值同步为 500
|
2026-09-16 14:29:56 +08:00 |
|
|
|
44ca09ae22
|
feat: 新增个人效能统计接口 /dashboard/my-stats(支持自选时段)
移动端「个人中心 → 工作统计」的数据源。现有接口拿不到这份数据:
/dashboard/people-history 支持 assignee_id 但只返回 WIP/PENDING/COMPLETED,
不含 REJECTED;/dashboard/rejected-tasks 则根本没有 assignee_id 参数 ——
「今日被驳回数」按现有接口无论如何都过滤不到个人。故补一个薄桥接端点。
服务端 get_my_stats(db, assignee_id, since, until) 返回两组指标:
生产战绩(按 Task.assignee_id 归因)
- tasks_completed / tasks_rejected:status 判定 + completed_at 落在区间,
与 get_dashboard_stats 的 t_done_q 同一口径,只多了 assignee_id 过滤
- products_touched:按 product_id 去重,同一台设备做多道工序只算一台
操作统计(与 PC /dashboard/user-operations 严格同口径)
- receive/transfer:task_logs 的 receive / complete,按 operator_id 归因
- record:task_records 按 Task.assignee_id 归因,排除 '[' 开头的系统自动备注
- 前两项归因 operator_id、第三项归因 assignee_id 是 PC 端既有口径,
此处刻意保持一致,便于工人自查的数与主管看到的面板对得上
端点侧新增 _parse_bound():裸时间字符串(无时区偏移)按北京时间解释,
否则会被当作服务器本地时间,边界整体偏 8 小时,出现「选了今日却统计到
昨天下午」。since/until 缺省为「本月 1 日 ~ 此刻」。
|
2026-09-15 15:51:34 +08:00 |
|
|
|
3019653dfa
|
refactor: 宏观状态统一(待仓库收货/已入库)废弃"在库"; WIP矩阵返回product_name并新增下钻明细
|
2026-09-02 10:38:49 +08:00 |
|
|
|
41dd257260
|
feat(透视表): 工序分布包含在库/完成 + 增加时间筛选
- wip-matrix 去掉状态过滤,全量分布,工序包含「在库」(生产完成)
- 后端加 since/until 按任务接手/创建时间过滤
- 前端 MatrixBoard 加 RangePicker 日期筛选 + 全部清除
|
2026-08-28 16:32:01 +08:00 |
|
|
|
7547a886cc
|
feat(backend): 新增 /dashboard/wip-matrix 在制品交叉聚合接口
- 规格型号×人员/工序 的设备数量聚合(WIP/PENDING任务)
- dimension 参数: assignee(中文姓名)/task_name(工序名)
- 返回扁平数组含 count + assignees(该交叉点主负责人列表)
|
2026-08-28 16:25:20 +08:00 |
|
|
|
7205de369a
|
feat(backend): 新增 /dashboard/user-operations/detail 操作明细下钻接口
- 按人+操作类型(receive/transfer/record)查询明细:任务/产品/备注/时间
- record 明细与该人统计口径一致(名下任务手动备注,排除系统自动)
|
2026-08-28 13:36:23 +08:00 |
|
|
|
b85188e625
|
feat(backend): 新增 /dashboard/user-operations 人员操作统计接口
- add_task_record 补 action_type=record 日志,使上传备注可统计到人
- get_user_operations 按人聚合 接收(receive)/转交(complete)/上传备注(record) 次数,时间筛选,中文名映射
- 复用 get_display_names,不新增数据库字段
|
2026-08-28 13:14:09 +08:00 |
|
|
|
7e00683a21
|
feat(backend): 新增 /dashboard/rejected-tasks 驳回/返工下钻接口
- RejectedTask schema: 设备/工序/驳回人/返工负责人/原因/时间
- get_rejected_tasks 批量窗口取驳回人(reject log) + 复刻 reject_task 的返工负责人追溯逻辑(create log→父任务→自身)
- 复用 get_display_names 中文名映射、BEIJING_TZ 时间转换
|
2026-08-28 11:18:58 +08:00 |
|
|
|
91b1426ccb
|
feat(dashboard): 人员工时台账——平铺明细+多维筛选+时间交集+动态工时+备注+CSV导出
|
2026-08-13 16:04:23 +08:00 |
|
|
|
c2e6ed240b
|
feat(dashboard): 看板增强——流转完成率下钻明细 + 人员看板(按人聚合在制品设备)
|
2026-08-13 12:00:12 +08:00 |
|
|
|
3b53db03c1
|
feat: 看板全局时间筛选 + 协同留言抽屉
任务1 — 后端时间快照逻辑:
get_dashboard_stats 新增 since/until 参数
PENDING/WIP/总数 → 永远实时快照(忽略时间筛选)
COMPLETED/REJECTED → 严格按时段过滤
完成率基于过滤后的COMPLETED计算
任务2 — 前端时间筛选器:
Radio.Button: 今天 | 近7天 | 近30天 | 自定义
DatePicker.RangePicker 自定义区间
切换时重新拉取 /dashboard/stats
任务3 — 协同留言抽屉:
后端: GET /dashboard/messages(上帝视角全厂数据)
JOIN Product → serial_number + material_name
支持 keyword 搜: SN/物料名/留言人/内容
按 created_at 倒序
前端: Drawer + Input.Search + List
点击"留言"数字打开抽屉
分页展示: 留言人/内容/SN标签/物料名/时间
|
2026-08-12 13:50:56 +08:00 |
|
|
|
39377ae5e4
|
feat: 看板重构 — 在制品看板 + 留言未读数
核心理念转变:
旧: 最近操作历史(谁做了什么)
新: 当前在制品状态(谁的活卡了多久)
后端:
- DashboardStats 新增 unread_messages(协同留言总数)
- 新增 GET /dashboard/wip-tasks(在制品端点)
- 按滞留时间升序排列,PENDING/WIP 任务倒计时
- 自动计算 duration_hours(已滞留小时数)
前端:
- 品质卡片: 新增留言未读数(紫色)
- 在制品看板: 替换原最近动态
每行显示: 状态徽标 | 任务名+负责人+身份证 | 滞留时长
- 滞留颜色: 48h+红 | 24h+橙 | 8h+黄 | <8h灰
- 系统通知可点击跳转
|
2026-08-12 13:40:08 +08:00 |
|
|
|
00fae01eed
|
fix: 看板4项体验修复 — 时间/身份证/日期筛选/通知跳转
1. 完整16位产品身份证号显示(不再截断)
2. 日期筛选栏: 今天 | 近7天 | 近30天 | 全部
- 后端 recent-activity 支持 since/until ISO参数
- 默认展示今天动态,可按时间范围切换
3. 操作人兜底: TaskLog无operator_id时用任务assignee_id
4. 未读通知可点击跳转通知页面 + 快捷入口增加通知中心
|
2026-08-12 13:35:23 +08:00 |
|
|
|
658fc28b9b
|
feat: 管理看板全面改版 — 增强可读性 + 填充空白区域
后端增强:
- DashboardStats 新增 tasks_rejected, tasks_rework, unread_notifications
- 新增 GET /dashboard/recent-activity 最近动态端点
- 关联 Task + Product 表返回完整动态信息
前端改版 (AdminDashboard.tsx):
- 4 张概览卡片: 产品流转 | 任务状态 | 品质通知 | 完成率
- 每张卡片含进度条(百分比标注) + 中文说明
- SVG 环形图展示任务完成率
- 最近流转动态时间线 (8条)
- 快捷入口: 创建产品/任务管理/打印配置/扫码干活
- 底部说明卡片解释"产品 vs 任务"的区别
- 响应式网格填满全屏, 无空白区域
|
2026-08-12 13:25:49 +08:00 |
|
|
|
b22de514a1
|
feat: 实现后端核心业务逻辑 (Auth鉴权、二维码服务、看板与产品端点)
|
2026-08-04 17:09:47 +08:00 |
|