fix: 售后回流口径统一 — 状态双字段同步、工序名归一、标签配色
产品存在 overall_status 与 status 两个状态字段,此前各写入点各写一份映射、 甚至只改 overall_status 不改 status,导致回流设备(product.status 停留在 OUTBOUND)污染看板统计口径。 - lifecycle.py: 把映射表收敛为单一来源 overall_to_product_status / sync_product_status;新增 normalize_after_sales_step,将售后设备沿用生产 阶段写法的历史工序名(测试/维修)折算到售后区独立工序名 - product_service.py: 删除本地 _OVERALL_TO_STATUS 副本,改用共享函数 - dashboard_service.py: WIP 矩阵补出 lifecycle_phase 列,活跃任务判定 (is_active) 提前到所有终结态判定之前,避免残留 OUTBOUND 被误判为完结 - scripts/fix_product_status.py: 历史数据修复脚本(一次性) - constants/task.ts: 售后工序标签由红色改紫色 —— 红色在本系统是「驳回/危险」 语义色,售后只是另一条流转支线,用红色会让操作员误以为设备报错
This commit is contained in:
@ -112,17 +112,20 @@ export const STATUS_CONFIG: Record<string, StatusStyle> = {
|
||||
ring: "ring-blue-400",
|
||||
label: "维修",
|
||||
},
|
||||
// ---- 售后回流阶段专属工序(红系,与生产阶段一眼区分)----
|
||||
// ---- 售后回流阶段专属工序(紫系)----
|
||||
// 选紫色而非红色:红色在本系统里是「驳回 / 危险」的语义色,售后只是另一条
|
||||
// 流转支线而非异常,用红色会让操作员误以为设备报错。也不选靛蓝——那已被
|
||||
// 「已出库 OUTBOUND」占用,两者相邻显示会混淆。
|
||||
发货测试: {
|
||||
bg: "bg-red-50",
|
||||
text: "text-red-700",
|
||||
ring: "ring-red-400",
|
||||
bg: "bg-purple-50",
|
||||
text: "text-purple-700",
|
||||
ring: "ring-purple-300",
|
||||
label: "发货测试",
|
||||
},
|
||||
售后维修: {
|
||||
bg: "bg-red-50",
|
||||
text: "text-red-700",
|
||||
ring: "ring-red-400",
|
||||
bg: "bg-purple-50",
|
||||
text: "text-purple-700",
|
||||
ring: "ring-purple-300",
|
||||
label: "售后维修",
|
||||
},
|
||||
};
|
||||
@ -230,9 +233,11 @@ export interface LifecycleBadge {
|
||||
/**
|
||||
* 生命周期标签 — 只在设备确实处于**售后回流环节**时返回:
|
||||
* 生命周期为 AFTER_SALES 且当前工序是「发货测试」或「售后维修」
|
||||
* → 红底白字,文案即工序名。
|
||||
* → 紫底白字,文案即工序名。
|
||||
*
|
||||
* 生产制造阶段一律返回 null(不打标),避免和售后设备混淆。
|
||||
* 配色用紫色:红色在本系统是「驳回 / 危险」语义,售后只是另一条流转支线,
|
||||
* 用红色会让操作员误以为设备报错。
|
||||
*/
|
||||
export function lifecycleBadge(
|
||||
overallStatus: string | null | undefined,
|
||||
@ -243,7 +248,7 @@ export function lifecycleBadge(
|
||||
if (!AFTER_SALES_TAG_STEPS.has(step)) return null;
|
||||
return {
|
||||
label: step,
|
||||
className: "bg-red-600 text-white ring-1 ring-red-600",
|
||||
className: "bg-purple-600 text-white ring-1 ring-purple-600",
|
||||
phase: LIFECYCLE_PHASE.AFTER_SALES,
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user