Ver Fonte

缺陷集中性分析系统 - 初始提交

Streamlit 交互式面板缺陷分析系统,11 个分析 Tab 覆盖描述/诊断/预测/叠加四层分析:
- 空间/类型/时间/批次/设备座号/关联/DBSCAN 集中性分析
- SPC 控制图与 Western Electric 规则告警 + 趋势判断
- 重复缺陷坐标检测 (硬损伤定位)
- CSV 数据上传 + 16 字段校验
- 缺陷空间模式自动识别 (边缘/角落/中心/线条/随机)
- 设备健康评分 (0-100) + 异常批次共性分析
- 多层叠加分析 (区域统计/跨批次对比/传播追踪)
- 3 种角色视图 (操作员/工程师/管理者) + 综合报告导出

模拟数据: 1193 条缺陷记录, 500 块面板, 30 批次, 3 台设备, 24 个座号
leod há 1 semana atrás
commit
987bf6931e
7 ficheiros alterados com 3841 adições e 0 exclusões
  1. 2091 0
      app.py
  2. 45 0
      data_summary.json
  3. 1194 0
      defect_data.csv
  4. 18 0
      findings.md
  5. 291 0
      generate_data.py
  6. 118 0
      progress.md
  7. 84 0
      task_plan.md

+ 2091 - 0
app.py

@@ -0,0 +1,2091 @@
+"""
+缺陷集中性分析 - Streamlit 交互式可视化页面
+"""
+
+import pandas as pd
+import numpy as np
+import matplotlib
+matplotlib.use("Agg")
+import matplotlib.pyplot as plt
+import matplotlib.font_manager as fm
+import seaborn as sns
+import streamlit as st
+import os
+from datetime import datetime
+from sklearn.cluster import DBSCAN
+from sklearn.decomposition import PCA
+from sklearn.preprocessing import StandardScaler
+
+# --- 中文字体设置 ---
+def setup_chinese_font():
+    """设置中文字体"""
+    font_paths = [
+        r"C:\Windows\Fonts\msyh.ttc",       # 微软雅黑
+        r"C:\Windows\Fonts\simhei.ttf",      # 黑体
+        r"C:\Windows\Fonts\simsun.ttc",      # 宋体
+        r"C:\Windows\Fonts\malgun.ttf",      # Malgun Gothic
+    ]
+    for fp in font_paths:
+        if os.path.exists(fp):
+            font_prop = fm.FontProperties(fname=fp)
+            plt.rcParams["font.family"] = font_prop.get_name()
+            plt.rcParams["axes.unicode_minus"] = False
+            return font_prop
+    # fallback
+    plt.rcParams["font.sans-serif"] = ["SimHei", "Microsoft YaHei", "Arial Unicode MS"]
+    plt.rcParams["axes.unicode_minus"] = False
+    return None
+
+setup_chinese_font()
+
+# --- 页面配置 ---
+st.set_page_config(
+    page_title="屏幕缺陷集中性分析",
+    page_icon="🔍",
+    layout="wide",
+    initial_sidebar_state="expanded"
+)
+
+# --- 加载数据 ---
+@st.cache_data(ttl=300)
+def load_data():
+    """加载并缓存数据"""
+    if not os.path.exists("defect_data.csv"):
+        st.error("未找到 defect_data.csv,请先运行 generate_data.py 生成数据")
+        return None
+    df = pd.read_csv("defect_data.csv", parse_dates=["timestamp"])
+    df["timestamp"] = pd.to_datetime(df["timestamp"])
+    return df
+
+df = load_data()
+if df is None:
+    st.stop()
+
+# --- 侧边栏 ---
+st.sidebar.title("🔍 筛选条件")
+
+# --- 数据源切换 ---
+st.sidebar.divider()
+st.sidebar.subheader("📂 数据源")
+data_source = st.sidebar.radio("选择数据源", ["内置模拟数据", "上传CSV文件"], label_visibility="collapsed")
+
+REQUIRED_COLUMNS = [
+    "defect_id", "panel_id", "batch_id", "equipment_id", "seat_id",
+    "inspection_station", "timestamp", "defect_type", "severity",
+    "x_mm", "y_mm", "panel_width_mm", "panel_height_mm",
+    "hour", "shift", "day",
+]
+
+uploaded_df = None
+if data_source == "上传CSV文件":
+    uploaded_file = st.sidebar.file_uploader("上传CSV文件", type=["csv"], accept_multiple_files=False)
+    if uploaded_file is not None:
+        try:
+            uploaded_df = pd.read_csv(uploaded_file, parse_dates=["timestamp"])
+            uploaded_df["timestamp"] = pd.to_datetime(uploaded_df["timestamp"])
+            missing = [c for c in REQUIRED_COLUMNS if c not in uploaded_df.columns]
+            if missing:
+                st.sidebar.error(f"缺少字段: {', '.join(missing)}")
+                uploaded_df = None
+            else:
+                st.sidebar.success(f"已加载 {len(uploaded_df)} 条记录")
+                # 下载模板
+                template_df = pd.DataFrame(columns=REQUIRED_COLUMNS)
+                csv_template = template_df.to_csv(index=False, encoding="utf-8-sig")
+                st.sidebar.download_button(
+                    label="📋 下载数据格式模板",
+                    data=csv_template,
+                    file_name="defect_data_template.csv",
+                    mime="text/csv"
+                )
+        except Exception as e:
+            st.sidebar.error(f"CSV解析失败: {e}")
+            uploaded_df = None
+    else:
+        st.sidebar.info("请选择一个CSV文件上传")
+
+# --- 加载数据 ---
+@st.cache_data(ttl=300)
+def load_data_from_csv():
+    """加载内置模拟数据"""
+    if not os.path.exists("defect_data.csv"):
+        st.error("未找到 defect_data.csv,请先运行 generate_data.py 生成数据")
+        return None
+    df = pd.read_csv("defect_data.csv", parse_dates=["timestamp"])
+    df["timestamp"] = pd.to_datetime(df["timestamp"])
+    return df
+
+if data_source == "上传CSV文件" and uploaded_df is not None:
+    df = uploaded_df
+else:
+    df = load_data_from_csv()
+if df is None:
+    st.stop()
+
+# --- 角色视图 ---
+st.sidebar.divider()
+st.sidebar.subheader("👤 视图模式")
+view_mode = st.sidebar.selectbox(
+    "选择视图模式",
+    options=["操作员", "工程师", "管理者"],
+    index=1,
+    help="操作员: 基础分析 | 工程师: 全部功能 | 管理者: KPI+SPC+健康评分"
+)
+
+# 各角色可见的 Tab
+tab_visibility = {
+    "操作员": {
+        "tabs": ["🗺️ 空间集中性", "📊 类型集中性 (帕累托)", "📈 时间集中性",
+                 "🏗️ 设备座号集中性", "🔬 缺陷模式识别"],
+        "show_kpi": True,
+        "show_export": True,
+    },
+    "工程师": {
+        "tabs": "all",
+        "show_kpi": True,
+        "show_export": True,
+    },
+    "管理者": {
+        "tabs": ["🚨 SPC 控制图与预警", "🔬 缺陷模式识别", "💚 设备健康与共性分析",
+                 "📊 类型集中性 (帕累托)", "📈 时间集中性"],
+        "show_kpi": True,
+        "show_export": True,
+    },
+}
+
+# 应用 Tab 可见性
+current_config = tab_visibility[view_mode]
+
+# --- 筛选条件 ---
+# 日期范围
+min_date = df["timestamp"].min().date()
+max_date = df["timestamp"].max().date()
+date_range = st.sidebar.date_input(
+    "日期范围",
+    value=[min_date, max_date],
+    min_value=min_date,
+    max_value=max_date
+)
+
+if len(date_range) == 2:
+    start_date, end_date = pd.Timestamp(date_range[0]), pd.Timestamp(date_range[1])
+else:
+    start_date, end_date = pd.Timestamp(min_date), pd.Timestamp(max_date)
+
+# 缺陷类型
+all_types = sorted(df["defect_type"].unique())
+selected_types = st.sidebar.multiselect("缺陷类型", options=all_types, default=all_types)
+
+# 班次
+shift_options = ["全部", "白班", "夜班"]
+selected_shift = st.sidebar.radio("班次", options=shift_options)
+
+# 批次
+all_batches = sorted(df["batch_id"].unique())
+selected_batches = st.sidebar.multiselect("批次", options=all_batches, default=all_batches[:5])
+
+# 严重程度
+all_severities = ["全部", "轻微", "中等", "严重"]
+selected_severity = st.sidebar.selectbox("严重程度", options=all_severities)
+
+# 设备
+all_equipment = sorted(df["equipment_id"].unique())
+selected_equipment = st.sidebar.multiselect("前贴附设备", options=all_equipment, default=all_equipment)
+
+# 座号(随设备联动)
+if selected_equipment:
+    eq_seats = sorted(df[df["equipment_id"].isin(selected_equipment)]["seat_id"].unique())
+    selected_seats = st.sidebar.multiselect("座号", options=eq_seats, default=eq_seats)
+else:
+    selected_seats = []
+
+# 应用筛选
+mask = (
+    (df["timestamp"] >= start_date) &
+    (df["timestamp"] <= end_date) &
+    (df["defect_type"].isin(selected_types)) &
+    (df["batch_id"].isin(selected_batches)) &
+    (df["equipment_id"].isin(selected_equipment))
+)
+if selected_shift != "全部":
+    mask &= (df["shift"] == selected_shift)
+if selected_severity != "全部":
+    mask &= (df["severity"] == selected_severity)
+if selected_seats:
+    mask &= (df["seat_id"].isin(selected_seats))
+
+filtered_df = df[mask].copy()
+
+# ========== KPI 看板 ==========
+total_panels_inspected = df[df["timestamp"] >= start_date]["panel_id"].nunique()
+defective_panels = filtered_df["panel_id"].nunique()
+yield_rate = (1 - defective_panels / max(total_panels_inspected, 1)) * 100
+total_defects = len(filtered_df)
+critical_defects = (filtered_df["severity"] == "严重").sum()
+top_defect_type = filtered_df["defect_type"].mode().iloc[0] if len(filtered_df) > 0 else "-"
+
+kpi1, kpi2, kpi3, kpi4, kpi5, kpi6 = st.columns(6)
+kpi1.metric("检测面板数", f"{total_panels_inspected} 块")
+kpi2.metric("不良面板数", f"{defective_panels} 块", delta=f"{defective_panels/total_panels_inspected*100:.1f}%" if total_panels_inspected > 0 else "0%")
+kpi3.metric("综合良率", f"{yield_rate:.1f}%", delta=f"{yield_rate - 95:.1f}%", delta_color="normal" if yield_rate >= 95 else "inverse")
+kpi4.metric("缺陷总数", f"{total_defects} 个")
+kpi5.metric("严重缺陷", f"{critical_defects} 个", delta=f"{critical_defects/max(total_defects,1)*100:.1f}%" if total_defects > 0 else "0%")
+kpi6.metric("主要缺陷类型", top_defect_type)
+
+# 第二排 KPI
+eq_concentrated = False
+if "equipment_id" in filtered_df.columns:
+    eq_stats = filtered_df.groupby("equipment_id").size()
+    top_eq = eq_stats.idxmax() if len(eq_stats) > 0 else "-"
+    top_eq_count = eq_stats.max() if len(eq_stats) > 0 else 0
+else:
+    top_eq, top_eq_count = "-", 0
+
+seat_concentrated = False
+if "seat_id" in filtered_df.columns and len(filtered_df) > 0:
+    seat_stats = filtered_df.groupby("seat_id").size()
+    if len(seat_stats) > 0:
+        top_seat = seat_stats.idxmax()
+        top_seat_count = seat_stats.max()
+        avg_seat_count = seat_stats.mean()
+        if top_seat_count > avg_seat_count * 2:
+            seat_concentrated = True
+    else:
+        top_seat, top_seat_count = "-", 0
+else:
+    top_seat, top_seat_count = "-", 0
+
+kpi7, kpi8, kpi9 = st.columns(3)
+kpi7.metric("最高缺陷设备", str(top_eq), f"{top_eq_count} 个缺陷")
+kpi8.metric("最高缺陷座号", str(top_seat), f"{top_seat_count} 个缺陷")
+if seat_concentrated:
+    kpi9.metric("座号集中性", "⚠️ 存在集中", delta="需关注", delta_color="inverse")
+else:
+    kpi9.metric("座号集中性", "✅ 正常分布")
+
+# --- 主标题 ---
+st.title("📊 屏幕缺陷集中性分析系统")
+st.markdown(f"**数据范围**: {start_date.strftime('%Y-%m-%d')} ~ {end_date.strftime('%Y-%m-%d')} | "
+            f"**筛选后缺陷数**: {len(filtered_df)} 条 | "
+            f"**涉及面板**: {filtered_df['panel_id'].nunique()} 块")
+
+st.divider()
+
+# --- Tab 布局 (按角色动态) ---
+ALL_TABS = [
+    "🗺️ 空间集中性",
+    "📊 类型集中性 (帕累托)",
+    "📈 时间集中性",
+    "🏭 批次集中性",
+    "🏗️ 设备座号集中性",
+    "🔗 关联分析",
+    "🧠 智能缺陷聚类 (DBSCAN)",
+    "🚨 SPC 控制图与预警",
+    "🔬 缺陷模式识别",
+    "💚 设备健康与共性分析",
+    "🔲 多层叠加分析"
+]
+
+if current_config["tabs"] == "all":
+    visible_tabs = ALL_TABS
+else:
+    visible_tabs = [t for t in ALL_TABS if t in current_config["tabs"]]
+
+tab_containers = st.tabs(visible_tabs)
+tab_map = {name: container for name, container in zip(visible_tabs, tab_containers)}
+
+def get_tab(name):
+    """获取指定 Tab 容器,如果不可见则返回 None"""
+    return tab_map.get(name)
+
+# ========== Tab 1: 空间集中性 ==========
+_t = get_tab("🗺️ 空间集中性")
+if _t:
+    with _t:
+        st.header("缺陷空间分布热力图")
+        col1, col2 = st.columns([2, 1])
+
+        with col1:
+        # 热力图分辨率
+            grid_size = st.slider("热力图网格分辨率", min_value=5, max_value=50, value=20)
+
+            fig, axes = plt.subplots(1, 2, figsize=(14, 6))
+
+        # 左图:2D 热力图
+            x_edges = np.linspace(0, df["panel_width_mm"].iloc[0], grid_size + 1)
+            y_edges = np.linspace(0, df["panel_height_mm"].iloc[0], grid_size + 1)
+
+            H, _, _ = np.histogram2d(
+                filtered_df["x_mm"], filtered_df["y_mm"],
+                bins=[x_edges, y_edges]
+            )
+
+            im = axes[0].imshow(
+                H.T, origin="lower", aspect="auto",
+                extent=[0, df["panel_width_mm"].iloc[0], 0, df["panel_height_mm"].iloc[0]],
+                cmap="YlOrRd"
+            )
+            axes[0].set_title(f"缺陷密度热力图 (总 {len(filtered_df)} 个)")
+            axes[0].set_xlabel("X (mm)")
+            axes[0].set_ylabel("Y (mm)")
+            plt.colorbar(im, ax=axes[0], label="缺陷数量")
+
+        # 右图:散点图(叠加)
+            axes[1].scatter(
+                filtered_df["x_mm"], filtered_df["y_mm"],
+                alpha=0.3, s=5, c="red", edgecolors="none"
+            )
+            axes[1].set_title("缺陷位置散点图")
+            axes[1].set_xlabel("X (mm)")
+            axes[1].set_ylabel("Y (mm)")
+            axes[1].set_aspect("equal")
+
+            st.pyplot(fig)
+            plt.close()
+
+        with col2:
+            st.subheader("区域统计")
+        # 将面板分为 9 宫格
+            x_bins = pd.cut(filtered_df["x_mm"], bins=3, labels=["左", "中", "右"])
+            y_bins = pd.cut(filtered_df["y_mm"], bins=3, labels=["上", "中", "下"])
+            region_df = pd.DataFrame({"X区域": x_bins, "Y区域": y_bins})
+            region_counts = region_df.groupby(["X区域", "Y区域"], observed=False).size().unstack(fill_value=0)
+            st.dataframe(region_counts, use_container_width=True)
+
+        # 高频缺陷区域 TOP5
+            st.subheader("高频缺陷区域 TOP5")
+            region_df["区域"] = region_df["X区域"].astype(str) + "-" + region_df["Y区域"].astype(str)
+            top_regions = region_df["区域"].value_counts().head(5)
+            for i, (region, count) in enumerate(top_regions.items(), 1):
+                st.metric(f"#{i} {region}", f"{count} 个缺陷")
+
+    # --- 模拟面板缺陷标注图 ---
+        st.divider()
+        st.subheader("🖼️ 模拟面板缺陷标注图")
+        st.markdown("选择批次和面板,查看缺陷在面板上的实际分布标注(按缺陷类型用不同颜色/形状区分)")
+
+        ann_col1, ann_col2, ann_col3 = st.columns(3)
+        with ann_col1:
+            ann_batch = st.selectbox("选择批次", options=sorted(filtered_df["batch_id"].unique()), key="ann_batch")
+        with ann_col2:
+            panels_in_batch = sorted(filtered_df[filtered_df["batch_id"] == ann_batch]["panel_id"].unique())
+            ann_panel = st.selectbox("选择面板", options=panels_in_batch, key="ann_panel")
+        with ann_col3:
+            ann_show_label = st.checkbox("显示缺陷标签", value=True)
+
+        panel_defects = filtered_df[(filtered_df["batch_id"] == ann_batch) & (filtered_df["panel_id"] == ann_panel)]
+
+        if len(panel_defects) == 0:
+            st.warning(f"当前面板 **{ann_panel}** (批次 {ann_batch}) 在筛选条件下无缺陷记录,请调整筛选条件或选择其他面板")
+        else:
+            pw = df["panel_width_mm"].iloc[0]
+            ph = df["panel_height_mm"].iloc[0]
+
+        # 缺陷类型 → 颜色/形状映射
+            type_style = {
+                "划痕": {"color": "red", "marker": "x", "size": 80},
+                "亮点": {"color": "yellow", "marker": "o", "size": 60},
+                "暗点": {"color": "black", "marker": "x", "size": 60},
+                "气泡": {"color": "cyan", "marker": "o", "size": 100},
+                "色差": {"color": "magenta", "marker": "s", "size": 70},
+                "漏光": {"color": "orange", "marker": "D", "size": 80},
+                "裂纹": {"color": "darkred", "marker": "v", "size": 90},
+                "异物": {"color": "green", "marker": "P", "size": 80},
+            }
+
+            fig_ann, ax_ann = plt.subplots(figsize=(3.5, 5))
+
+        # 面板背景(模拟屏幕灰色渐变)
+            ax_ann.add_patch(plt.Rectangle((0, 0), pw, ph, facecolor="#1a1a2e", edgecolor="#444", linewidth=2))
+        # 内框(模拟屏幕可视区域)
+            margin = 8
+            ax_ann.add_patch(plt.Rectangle((margin, margin), pw - 2*margin, ph - 2*margin,
+                                           facecolor="#16213e", edgecolor="#0f3460", linewidth=1.5))
+        # FPC绑定区域标注
+            fpc_y = ph * 0.7
+            ax_ann.axhline(y=fpc_y, color="#555", linestyle="--", alpha=0.4, linewidth=0.5)
+            ax_ann.text(pw/2, fpc_y + 2, "FPC区", color="#666", fontsize=7, ha="center", alpha=0.5)
+
+        # 绘制缺陷标注
+            for _, row in panel_defects.iterrows():
+                style = type_style.get(row["defect_type"], {"color": "white", "marker": "o", "size": 50})
+                severity_size = {"轻微": 0.7, "中等": 1.0, "严重": 1.4}.get(row["severity"], 1.0)
+                ax_ann.scatter(row["x_mm"], row["y_mm"],
+                               c=style["color"], marker=style["marker"],
+                               s=style["size"] * severity_size,
+                               edgecolors="white", linewidth=0.3, alpha=0.85, zorder=3)
+                if ann_show_label:
+                    ax_ann.annotate(row["defect_type"][:2],
+                                    (row["x_mm"], row["y_mm"]),
+                                    fontsize=5, color="white",
+                                    ha="center", va="bottom", alpha=0.7, zorder=4)
+
+        # 图例
+            legend_elements = [plt.Line2D([0], [0], marker=type_style[t]["marker"], color="w",
+                                           markerfacecolor=type_style[t]["color"], markersize=8,
+                                           label=t, markeredgewidth=0.5, markeredgecolor="white")
+                               for t in type_style]
+            ax_ann.legend(handles=legend_elements, loc="upper right", fontsize=7,
+                          framealpha=0.7, facecolor="#222", edgecolor="#555")
+
+            ax_ann.set_xlim(-5, pw + 5)
+            ax_ann.set_ylim(-5, ph + 5)
+            ax_ann.set_title(f"面板 {ann_panel} | 批次 {ann_batch} | {len(panel_defects)} 个缺陷",
+                             fontsize=11, pad=10)
+            ax_ann.set_xlabel("X (mm)")
+            ax_ann.set_ylabel("Y (mm)")
+            ax_ann.set_aspect("equal")
+            ax_ann.grid(True, alpha=0.1, color="gray")
+
+            st.pyplot(fig_ann)
+            plt.close()
+
+# ========== Tab 2: 帕累托分析 ==========
+_t = get_tab("📊 类型集中性 (帕累托)")
+if _t:
+    with _t:
+        st.header("缺陷类型帕累托分析")
+
+        type_counts = filtered_df["defect_type"].value_counts().reset_index()
+        type_counts.columns = ["缺陷类型", "数量"]
+        type_counts = type_counts.sort_values("数量", ascending=False).reset_index(drop=True)
+        type_counts["累计占比"] = type_counts["数量"].cumsum() / type_counts["数量"].sum() * 100
+        type_counts["占比"] = type_counts["数量"] / type_counts["数量"].sum() * 100
+
+        fig, ax1 = plt.subplots(figsize=(10, 5))
+
+    # 柱状图
+        bars = ax1.bar(type_counts["缺陷类型"], type_counts["数量"], color="steelblue", alpha=0.8)
+        ax1.set_xlabel("缺陷类型")
+        ax1.set_ylabel("数量", color="steelblue")
+        ax1.set_title("帕累托图 - 缺陷类型分布")
+
+    # 累计占比折线
+        ax2 = ax1.twinx()
+        ax2.plot(type_counts["缺陷类型"], type_counts["累计占比"], color="red", marker="o", linewidth=2)
+        ax2.axhline(y=80, color="green", linestyle="--", alpha=0.5, label="80%线")
+        ax2.set_ylabel("累计占比 (%)", color="red")
+        ax2.set_ylim(0, 110)
+
+    # 标注数值
+        for bar, count in zip(bars, type_counts["数量"]):
+            ax1.text(bar.get_x() + bar.get_width()/2, bar.get_height() + 2,
+                     str(count), ha="center", va="bottom", fontsize=9)
+
+        st.pyplot(fig)
+        plt.close()
+
+    # 数据表格
+        st.subheader("详细数据")
+        st.dataframe(type_counts, use_container_width=True)
+
+    # 严重程度分布
+        st.subheader("按严重程度分布")
+        sev_counts = filtered_df["severity"].value_counts()
+        fig2, ax = plt.subplots(figsize=(6, 4))
+        colors = {"轻微": "#4CAF50", "中等": "#FF9800", "严重": "#F44336"}
+        sev_counts.plot(kind="bar", ax=ax, color=[colors.get(s, "gray") for s in sev_counts.index])
+        ax.set_title("缺陷严重程度分布")
+        ax.set_ylabel("数量")
+        st.pyplot(fig2)
+        plt.close()
+
+# ========== Tab 3: 时间集中性 ==========
+_t = get_tab("📈 时间集中性")
+if _t:
+    with _t:
+        st.header("缺陷时间分布趋势")
+
+        col1, col2 = st.columns(2)
+
+        with col1:
+        # 按天趋势
+            daily = filtered_df.groupby("day").size().reset_index(name="缺陷数")
+            daily["day"] = pd.to_datetime(daily["day"])
+
+            fig1, ax1 = plt.subplots(figsize=(10, 4))
+            ax1.plot(daily["day"], daily["缺陷数"], marker="o", markersize=3, linewidth=1.5, color="steelblue")
+            ax1.fill_between(daily["day"], daily["缺陷数"], alpha=0.2, color="steelblue")
+            ax1.set_title("每日缺陷数量趋势")
+            ax1.set_ylabel("缺陷数量")
+            ax1.tick_params(axis="x", rotation=45)
+
+        # 移动平均
+            if len(daily) > 3:
+                daily["移动平均(3天)"] = daily["缺陷数"].rolling(window=3, min_periods=1).mean()
+                ax1.plot(daily["day"], daily["移动平均(3天)"], color="red", linestyle="--",
+                         linewidth=2, alpha=0.7, label="3日移动平均")
+                ax1.legend()
+
+            st.pyplot(fig1)
+            plt.close()
+
+        with col2:
+        # 按小时分布
+            hourly = filtered_df.groupby("hour").size().reindex(range(24), fill_value=0)
+            fig2, ax2 = plt.subplots(figsize=(10, 4))
+            colors = ["#FF6B6B" if (h >= 17 or h < 8) else "#4ECDC4" for h in hourly.index]
+            ax2.bar(hourly.index, hourly.values, color=colors, alpha=0.8)
+            ax2.set_title("每小时缺陷分布 (红色=夜班)")
+            ax2.set_xlabel("小时")
+            ax2.set_ylabel("缺陷数量")
+            st.pyplot(fig2)
+            plt.close()
+
+    # 班次对比
+        st.subheader("班次对比")
+        shift_stats = filtered_df.groupby("shift").agg({
+            "defect_id": "count",
+            "panel_id": "nunique"
+        }).rename(columns={"defect_id": "缺陷数", "panel_id": "涉及面板数"})
+        st.dataframe(shift_stats, use_container_width=True)
+
+    # 每周分布
+        st.subheader("按星期分布")
+        filtered_df_copy = filtered_df.copy()
+        filtered_df_copy["weekday"] = filtered_df_copy["timestamp"].dt.day_name()
+        weekday_order = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
+        weekday_cn = {"Monday": "周一", "Tuesday": "周二", "Wednesday": "周三",
+                      "Thursday": "周四", "Friday": "周五", "Saturday": "周六", "Sunday": "周日"}
+        filtered_df_copy["星期"] = filtered_df_copy["weekday"].map(weekday_cn)
+        weekday_counts = filtered_df_copy.groupby("星期").size().reindex(
+            [weekday_cn[d] for d in weekday_order], fill_value=0
+        )
+
+        fig3, ax3 = plt.subplots(figsize=(8, 4))
+        ax3.bar(range(7), weekday_counts.values, color="steelblue", alpha=0.8)
+        ax3.set_xticks(range(7))
+        ax3.set_xticklabels(weekday_counts.index)
+        ax3.set_title("按星期分布")
+        ax3.set_ylabel("缺陷数量")
+        st.pyplot(fig3)
+        plt.close()
+
+# ========== Tab 4: 批次集中性 ==========
+_t = get_tab("🏭 批次集中性")
+if _t:
+    with _t:
+        st.header("批次缺陷集中性分析")
+
+        batch_stats = filtered_df.groupby("batch_id").agg({
+            "defect_id": "count",
+            "panel_id": "nunique",
+            "severity": lambda x: (x == "严重").sum()
+        }).rename(columns={"defect_id": "缺陷数", "panel_id": "面板数", "severity": "严重缺陷数"})
+        batch_stats["缺陷率"] = batch_stats["缺陷数"] / batch_stats["面板数"]
+        batch_stats = batch_stats.sort_index()
+
+        col1, col2 = st.columns(2)
+
+        with col1:
+            fig1, ax1 = plt.subplots(figsize=(10, 4))
+            ax1.bar(range(len(batch_stats)), batch_stats["缺陷数"], color="steelblue", alpha=0.8)
+            ax1.set_title("各批次缺陷数量")
+            ax1.set_xlabel("批次")
+            ax1.set_ylabel("缺陷数")
+            ax1.set_xticks(range(len(batch_stats)))
+            ax1.set_xticklabels(batch_stats.index, rotation=90, fontsize=7)
+            st.pyplot(fig1)
+            plt.close()
+
+        with col2:
+            fig2, ax2 = plt.subplots(figsize=(10, 4))
+            ax2.plot(range(len(batch_stats)), batch_stats["缺陷率"], marker="o", markersize=3,
+                     color="red", linewidth=1.5)
+            ax2.axhline(y=batch_stats["缺陷率"].mean(), color="green", linestyle="--",
+                         label=f"平均缺陷率: {batch_stats['缺陷率'].mean():.2%}")
+            ax2.set_title("各批次缺陷率趋势")
+            ax2.set_xlabel("批次")
+            ax2.set_ylabel("缺陷率")
+            ax2.set_xticks(range(len(batch_stats)))
+            ax2.set_xticklabels(batch_stats.index, rotation=90, fontsize=7)
+            ax2.legend()
+            st.pyplot(fig2)
+            plt.close()
+
+    # 异常批次
+        st.subheader("异常批次 (缺陷率 > 平均值 + 1倍标准差)")
+        threshold = batch_stats["缺陷率"].mean() + batch_stats["缺陷率"].std()
+        abnormal = batch_stats[batch_stats["缺陷率"] > threshold].sort_values("缺陷率", ascending=False)
+        if len(abnormal) > 0:
+            st.dataframe(abnormal, use_container_width=True)
+        else:
+            st.success("未发现异常批次")
+
+# ========== Tab 5: 设备座号集中性 ==========
+_t = get_tab("🏗️ 设备座号集中性")
+if _t:
+    with _t:
+        st.header("🏗️ 前贴附制程设备座号集中性分析")
+        st.markdown(
+            "分析缺陷是否集中在特定设备的特定座号(工位)。"
+            "如果某个座号缺陷明显多于其他座号,说明该座号对应的设备局部存在问题(如吸嘴老化、加热不均、压力异常等)。"
+        )
+
+    # --- 设备对比 ---
+        st.subheader("设备级别对比")
+        eq_stats = filtered_df.groupby("equipment_id").agg({
+            "defect_id": "count",
+            "panel_id": "nunique",
+            "severity": lambda x: (x == "严重").sum()
+        }).rename(columns={"defect_id": "缺陷数", "panel_id": "面板数", "severity": "严重缺陷"})
+        eq_stats["缺陷率"] = eq_stats["缺陷数"] / eq_stats["面板数"]
+        eq_stats = eq_stats.sort_values("缺陷数", ascending=False)
+
+        col_eq1, col_eq2 = st.columns(2)
+
+        with col_eq1:
+            fig_eq1, ax_eq1 = plt.subplots(figsize=(8, 4))
+            bars1 = ax_eq1.bar(range(len(eq_stats)), eq_stats["缺陷数"], color=["#FF6B6B", "#4ECDC4", "#45B7D1"][:len(eq_stats)], alpha=0.8)
+            ax_eq1.set_xticks(range(len(eq_stats)))
+            ax_eq1.set_xticklabels(eq_stats.index, fontsize=10)
+            ax_eq1.set_ylabel("缺陷数量")
+            ax_eq1.set_title("各设备缺陷总数")
+            for bar, count in zip(bars1, eq_stats["缺陷数"]):
+                ax_eq1.text(bar.get_x() + bar.get_width()/2, bar.get_height() + 3,
+                            str(count), ha="center", va="bottom", fontsize=10, fontweight="bold")
+            st.pyplot(fig_eq1)
+            plt.close()
+
+        with col_eq2:
+            fig_eq2, ax_eq2 = plt.subplots(figsize=(8, 4))
+            bars2 = ax_eq2.bar(range(len(eq_stats)), eq_stats["缺陷率"] * 100,
+                               color=["#FF6B6B", "#4ECDC4", "#45B7D1"][:len(eq_stats)], alpha=0.8)
+            ax_eq2.set_xticks(range(len(eq_stats)))
+            ax_eq2.set_xticklabels(eq_stats.index, fontsize=10)
+            ax_eq2.set_ylabel("缺陷率 (%)")
+            ax_eq2.set_title("各设备缺陷率")
+            for bar, rate in zip(bars2, eq_stats["缺陷率"] * 100):
+                ax_eq2.text(bar.get_x() + bar.get_width()/2, bar.get_height() + 0.3,
+                            f"{rate:.1f}%", ha="center", va="bottom", fontsize=10, fontweight="bold")
+            st.pyplot(fig_eq2)
+            plt.close()
+
+        st.dataframe(eq_stats, use_container_width=True)
+
+    # --- 座号级别分析 ---
+        st.divider()
+        st.subheader("座号级别缺陷分布")
+
+    # 选择设备查看座号
+        eq_for_seat = st.selectbox("选择设备查看座号分布", options=sorted(filtered_df["equipment_id"].unique()), key="eq_seat")
+
+        eq_data = filtered_df[filtered_df["equipment_id"] == eq_for_seat]
+        eq_info = None
+        for eq_name, info in [("LAM-A01", {"rows": 4, "cols": 5}), ("LAM-A02", {"rows": 4, "cols": 5}), ("LAM-B01", {"rows": 5, "cols": 4})]:
+            if eq_name == eq_for_seat:
+                eq_info = info
+                break
+
+        seat_counts = eq_data.groupby("seat_id").size().reset_index(name="缺陷数")
+        seat_counts = seat_counts.sort_values("缺陷数", ascending=False)
+
+        if eq_info:
+        # 网格热力图
+            grid = np.zeros((eq_info["rows"], eq_info["cols"]))
+            seat_to_defects = eq_data.groupby("seat_id").size().to_dict()
+
+            for r in range(1, eq_info["rows"] + 1):
+                for c in range(1, eq_info["cols"] + 1):
+                    seat_name = f"R{r}C{c}"
+                    grid[r - 1, c - 1] = seat_to_defects.get(seat_name, 0)
+
+            fig_grid, ax_grid = plt.subplots(figsize=(8, 6))
+            im = ax_grid.imshow(grid, cmap="YlOrRd", aspect="equal")
+            ax_grid.set_title(f"{eq_for_seat} 座号缺陷热力图")
+            ax_grid.set_xlabel("列号")
+            ax_grid.set_ylabel("行号")
+            ax_grid.set_xticks(range(eq_info["cols"]))
+            ax_grid.set_xticklabels([f"C{i+1}" for i in range(eq_info["cols"])])
+            ax_grid.set_yticks(range(eq_info["rows"]))
+            ax_grid.set_yticklabels([f"R{i+1}" for i in range(eq_info["rows"])])
+
+        # 标注数值
+            for r in range(eq_info["rows"]):
+                for c in range(eq_info["cols"]):
+                    val = int(grid[r, c])
+                    color = "white" if val > grid.max() * 0.7 else "black"
+                    ax_grid.text(c, r, str(val), ha="center", va="center", fontsize=10,
+                                 color=color, fontweight="bold")
+
+            plt.colorbar(im, ax=ax_grid, label="缺陷数量")
+            st.pyplot(fig_grid)
+            plt.close()
+        else:
+            fig_bar, ax_bar = plt.subplots(figsize=(10, 4))
+            ax_bar.bar(range(len(seat_counts)), seat_counts["缺陷数"], color="steelblue", alpha=0.8)
+            ax_bar.set_xticks(range(len(seat_counts)))
+            ax_bar.set_xticklabels(seat_counts["seat_id"], rotation=45, fontsize=8)
+            ax_bar.set_ylabel("缺陷数量")
+            ax_bar.set_title("座号缺陷分布")
+            st.pyplot(fig_bar)
+            plt.close()
+
+    # 座号数据表格
+        st.dataframe(seat_counts, use_container_width=True)
+
+    # --- 异常座号检测 ---
+        st.divider()
+        st.subheader("异常座号检测")
+        all_seat_stats = filtered_df.groupby(["equipment_id", "seat_id"]).size().reset_index(name="缺陷数")
+        overall_mean = all_seat_stats["缺陷数"].mean()
+        overall_std = all_seat_stats["缺陷数"].std()
+
+        threshold_1x = overall_mean + overall_std
+        threshold_2x = overall_mean + 2 * overall_std
+
+        st.info(f"📊 全局统计: 平均每个座号 **{overall_mean:.1f}** 个缺陷 | 标准差 **{overall_std:.1f}**")
+
+        col_anom1, col_anom2 = st.columns(2)
+
+        with col_anom1:
+            st.markdown(f"**⚠️ 1σ 预警座号** (缺陷数 > {threshold_1x:.0f})")
+            warning_seats = all_seat_stats[all_seat_stats["缺陷数"] > threshold_1x].sort_values("缺陷数", ascending=False)
+            if len(warning_seats) > 0:
+                st.dataframe(warning_seats.reset_index(drop=True), use_container_width=True)
+            else:
+                st.success("无预警座号")
+
+        with col_anom2:
+            st.markdown(f"**🔴 2σ 异常座号** (缺陷数 > {threshold_2x:.0f})")
+            critical_seats = all_seat_stats[all_seat_stats["缺陷数"] > threshold_2x].sort_values("缺陷数", ascending=False)
+            if len(critical_seats) > 0:
+                st.dataframe(critical_seats.reset_index(drop=True), use_container_width=True)
+            else:
+                st.success("无异常座号")
+
+    # --- 座号 × 缺陷类型 交叉分析 ---
+        st.divider()
+        st.subheader("座号 × 缺陷类型 交叉分析")
+        st.markdown("识别哪些座号偏向产生特定类型的缺陷(如 R2C3 座号主要产生气泡 → 吸嘴问题)")
+
+        if eq_info:
+            eq_seat_type = eq_data.groupby(["seat_id", "defect_type"]).size().unstack(fill_value=0)
+            fig_ct, ax_ct = plt.subplots(figsize=(10, 6))
+            sns.heatmap(eq_seat_type, annot=True, fmt="d", cmap="YlOrRd", ax=ax_ct,
+                        linewidths=0.5, linecolor="white")
+            ax_ct.set_title(f"{eq_for_seat} 座号 × 缺陷类型 热力图")
+            st.pyplot(fig_ct)
+            plt.close()
+
+# ========== Tab 6: 关联分析 ==========
+_t = get_tab("🔗 关联分析")
+if _t:
+    with _t:
+        st.header("缺陷关联分析")
+
+        col1, col2 = st.columns(2)
+
+        with col1:
+        # 缺陷类型 x 严重程度 交叉表
+            ct = pd.crosstab(filtered_df["defect_type"], filtered_df["severity"])
+            fig1, ax1 = plt.subplots(figsize=(8, 5))
+            sns.heatmap(ct, annot=True, fmt="d", cmap="YlOrRd", ax=ax1,
+                        linewidths=0.5, linecolor="white")
+            ax1.set_title("缺陷类型 × 严重程度 热力图")
+            st.pyplot(fig1)
+            plt.close()
+
+        with col2:
+        # 缺陷类型 x 班次 交叉表
+            ct2 = pd.crosstab(filtered_df["defect_type"], filtered_df["shift"])
+            fig2, ax2 = plt.subplots(figsize=(8, 5))
+            sns.heatmap(ct2, annot=True, fmt="d", cmap="Blues", ax=ax2,
+                        linewidths=0.5, linecolor="white")
+            ax2.set_title("缺陷类型 × 班次 热力图")
+            st.pyplot(fig2)
+            plt.close()
+
+    # 面板缺陷 TOP10
+        st.subheader("缺陷最多的面板 TOP10")
+        panel_defects = filtered_df.groupby("panel_id").agg({
+            "defect_id": "count",
+            "defect_type": lambda x: x.mode().iloc[0] if len(x) > 0 else "N/A"
+        }).rename(columns={"defect_id": "缺陷数", "defect_type": "主要缺陷类型"})
+        panel_defects = panel_defects.sort_values("缺陷数", ascending=False).head(10)
+        st.dataframe(panel_defects, use_container_width=True)
+
+    # 面板缺陷分布
+        fig3, ax3 = plt.subplots(figsize=(8, 4))
+        panel_counts = filtered_df.groupby("panel_id").size()
+        ax3.hist(panel_counts, bins=20, color="steelblue", alpha=0.8, edgecolor="white")
+        ax3.set_title("单面板缺陷数量分布")
+        ax3.set_xlabel("缺陷数/面板")
+        ax3.set_ylabel("面板数量")
+        ax3.axvline(x=panel_counts.mean(), color="red", linestyle="--", label=f"平均: {panel_counts.mean():.1f}")
+        ax3.legend()
+        st.pyplot(fig3)
+        plt.close()
+
+# --- 智能缺陷聚类 (DBSCAN + PCA) ---
+_t = get_tab("🧠 智能缺陷聚类 (DBSCAN)")
+if _t:
+    with _t:
+        st.header("🧠 DBSCAN 智能缺陷空间聚类")
+        st.markdown(
+            "**原理**: DBSCAN 是基于密度的空间聚类算法,能自动识别任意形状的缺陷聚集区域,"
+            "无需预设聚类数量,自动过滤随机散落的噪声缺陷。"
+            "行业标准:半导体晶圆/面板缺陷模式识别首选算法。"
+        )
+
+        col1, col2 = st.columns([2, 1])
+
+        with col1:
+        # --- 参数控制 ---
+            st.subheader("参数设置")
+            p_col1, p_col2 = st.columns(2)
+
+            with p_col1:
+                eps = st.slider(
+                    "eps (邻域半径 mm)",
+                    min_value=5.0, max_value=100.0, value=25.0, step=5.0,
+                    help="两个点被视为'邻居'的最大距离。值越大,簇越大。"
+                )
+            with p_col2:
+                min_samples = st.slider(
+                    "min_samples (最小簇点数)",
+                    min_value=3, max_value=50, value=10,
+                    help="形成一个簇所需的最小点数。值越大,越严格的聚集才算簇。"
+                )
+
+        # --- 执行聚类 ---
+            coords = filtered_df[["x_mm", "y_mm"]].values
+
+            scaler = StandardScaler()
+            coords_scaled = scaler.fit_transform(coords)
+
+            dbscan = DBSCAN(eps=eps / scaler.scale_[0], min_samples=min_samples)
+            filtered_df["cluster"] = dbscan.fit_predict(coords_scaled)
+
+        # 统计聚类结果
+            n_clusters = len(set(dbscan.labels_)) - (1 if -1 in dbscan.labels_ else 0)
+            n_noise = list(dbscan.labels_).count(-1)
+
+            st.info(f"📊 **聚类结果**: 发现 **{n_clusters}** 个缺陷聚集区域,**{n_noise}** 个噪声点(随机散落缺陷)")
+
+        # --- 可视化 ---
+            fig, axes = plt.subplots(1, 2, figsize=(14, 6))
+
+        # 左图:聚类结果(空间位置)
+            labels = filtered_df["cluster"].values
+            unique_labels = set(labels)
+            colors = plt.cm.get_cmap("tab20", len(unique_labels) if len(unique_labels) > 0 else 1)
+
+            for k in unique_labels:
+                if k == -1:
+                # 噪声点
+                    xy = filtered_df[labels == k][["x_mm", "y_mm"]].values
+                    axes[0].scatter(xy[:, 0], xy[:, 1], c="lightgray", s=3, alpha=0.3, label="噪声")
+                else:
+                    xy = filtered_df[labels == k][["x_mm", "y_mm"]].values
+                    axes[0].scatter(xy[:, 0], xy[:, 1], c=[colors(k)], s=15, alpha=0.7,
+                                    label=f"簇 {k+1} ({len(xy)} 点)")
+
+            axes[0].set_title(f"DBSCAN 空间聚类结果 (eps={eps}, min_samples={min_samples})")
+            axes[0].set_xlabel("X (mm)")
+            axes[0].set_ylabel("Y (mm)")
+            axes[0].set_aspect("equal")
+            axes[0].legend(fontsize=7, loc="upper right", ncol=2)
+
+        # 右图:PCA 降维可视化(加入更多特征维度)
+            if len(filtered_df) > 2:
+            # 构建多维特征:x, y, hour, defect_type编码, severity编码
+                feature_df = filtered_df[["x_mm", "y_mm", "hour"]].copy()
+            # 缺陷类型编码
+                type_map = {t: i for i, t in enumerate(filtered_df["defect_type"].unique())}
+                feature_df["type_code"] = filtered_df["defect_type"].map(type_map).astype(float)
+            # 严重程度编码
+                sev_map = {"轻微": 0, "中等": 1, "严重": 2}
+                feature_df["sev_code"] = filtered_df["severity"].map(sev_map).astype(float)
+
+                features = feature_df.values
+                features_scaled = StandardScaler().fit_transform(features)
+
+            # PCA 降维到 2D
+                n_components = min(2, features_scaled.shape[1])
+                pca = PCA(n_components=n_components)
+                pca_result = pca.fit_transform(features_scaled)
+
+                explained_var = pca.explained_variance_ratio_
+
+                for k in unique_labels:
+                    mask_k = labels == k
+                    if k == -1:
+                        axes[1].scatter(pca_result[mask_k, 0], pca_result[mask_k, 1],
+                                        c="lightgray", s=3, alpha=0.3, label="噪声")
+                    else:
+                        axes[1].scatter(pca_result[mask_k, 0], pca_result[mask_k, 1],
+                                        c=[colors(k)], s=15, alpha=0.7, label=f"簇 {k+1}")
+
+                axes[1].set_title(
+                    f"PCA 多维特征降维\n"
+                    f"PC1: {explained_var[0]*100:.1f}% | PC2: {explained_var[1]*100:.1f}%"
+                )
+                axes[1].set_xlabel("主成分 1")
+                axes[1].set_ylabel("主成分 2")
+                axes[1].legend(fontsize=7, loc="upper right")
+
+            st.pyplot(fig)
+            plt.close()
+
+        # --- 簇特征统计 ---
+            if n_clusters > 0:
+                st.divider()
+                st.subheader("各簇特征分析")
+
+                cluster_data = []
+                for k in sorted([c for c in unique_labels if c != -1]):
+                    cluster_df = filtered_df[labels == k]
+                    cluster_data.append({
+                        "簇编号": k + 1,
+                        "缺陷数量": len(cluster_df),
+                        "占比": f"{len(cluster_df)/len(filtered_df)*100:.1f}%",
+                        "中心X(mm)": round(cluster_df["x_mm"].mean(), 1),
+                        "中心Y(mm)": round(cluster_df["y_mm"].mean(), 1),
+                        "X范围": f"{cluster_df['x_mm'].min():.0f}~{cluster_df['x_mm'].max():.0f}",
+                        "Y范围": f"{cluster_df['y_mm'].min():.0f}~{cluster_df['y_mm'].max():.0f}",
+                        "主要缺陷": cluster_df["defect_type"].mode().iloc[0] if len(cluster_df) > 0 else "-",
+                        "主要严重度": cluster_df["severity"].mode().iloc[0] if len(cluster_df) > 0 else "-",
+                        "涉及批次": cluster_df["batch_id"].nunique(),
+                        "涉及面板": cluster_df["panel_id"].nunique(),
+                    })
+
+                st.dataframe(pd.DataFrame(cluster_data), use_container_width=True)
+
+        with col2:
+        # --- 聚类结果说明 ---
+            st.subheader("📖 结果解读")
+            st.markdown(
+                f"""
+                **当前参数**: eps={eps}mm, min_samples={min_samples}
+
+                **聚类统计**:
+                - 缺陷聚集区域: {n_clusters} 个
+                - 随机散落噪声: {n_noise} 个
+                - 噪声占比: {n_noise/len(filtered_df)*100:.1f}%
+
+                **参数调优建议**:
+                - **eps 调大** → 簇数量减少,簇变大
+                - **eps 调小** → 簇数量增加,更精细
+                - **min_samples 调大** → 只有高度密集区域才算簇
+                - **min_samples 调小** → 更多区域被识别为簇
+
+                **工业应用**:
+                - 每个"簇"代表一个**系统性缺陷源**
+                  (如某台设备、某道工序、某个物料批次)
+                - "噪声"点是随机缺陷,通常无需特别关注
+                - 重点关注**缺陷数量多、涉及批次集中**的簇
+                """
+            )
+
+        # --- 簇分布饼图 ---
+            if n_clusters > 0:
+                st.subheader("簇规模分布")
+                cluster_counts = filtered_df[labels >= 0]["cluster"].value_counts().sort_index()
+                fig_pie, ax_pie = plt.subplots(figsize=(5, 5))
+                pie_labels = [f"簇{i+1}" for i in cluster_counts.index]
+                ax_pie.pie(cluster_counts.values, labels=pie_labels, autopct="%1.1f%%",
+                           colors=plt.cm.tab20.colors[:len(cluster_counts)], startangle=90)
+                ax_pie.set_title("各簇缺陷占比")
+                st.pyplot(fig_pie)
+                plt.close()
+
+        # --- DBSCAN vs K-Means 对比 ---
+            st.subheader("为什么选 DBSCAN?")
+            st.markdown(
+                """
+                | 维度 | DBSCAN | K-Means |
+                |------|--------|---------|
+                | 形状适应 | ✅ 任意形状 | ❌ 仅球形 |
+                | 预设K值 | ❌ 不需要 | ✅ 必须 |
+                | 噪声处理 | ✅ 自动过滤 | ❌ 干扰聚类 |
+                | 环形/线形缺陷 | ✅ 能识别 | ❌ 识别不了 |
+                """
+            )
+
+# ========== Tab 8: SPC 控制图与预警 ==========
+_t = get_tab("🚨 SPC 控制图与预警")
+if _t:
+    with _t:
+        st.header("🚨 SPC 统计过程控制")
+        st.markdown(
+            "基于统计过程控制(SPC)方法,监控每日缺陷率是否在控制限内,"
+            "自动检测异常趋势并给出改善/恶化结论。"
+        )
+
+    # --- 数据准备:按天计算缺陷率 ---
+    # 需要知道每天检测了多少面板才能算缺陷率
+    # 用 batch_id 近似日期
+        daily_all = df.groupby("day").agg(
+            total_defects=("defect_id", "count"),
+            panels_with_defects=("panel_id", "nunique")
+        ).reset_index()
+        daily_all["day"] = pd.to_datetime(daily_all["day"])
+        daily_all = daily_all.sort_values("day").reset_index(drop=True)
+
+        if len(daily_all) < 2:
+            st.warning("数据天数不足,无法生成控制图")
+        else:
+        # 估算每天检测总数:用总面板数 / 总天数近似
+            total_days = (df["timestamp"].max() - df["timestamp"].min()).days + 1
+            total_unique_panels = df["panel_id"].nunique()
+            daily_all["estimated_inspected"] = max(total_unique_panels // max(total_days // 7, 1), 1)  # 按工作日估算
+            daily_all["defect_rate"] = daily_all["panels_with_defects"] / daily_all["estimated_inspected"]
+
+        # 控制限计算
+            p_bar = daily_all["defect_rate"].mean()
+            n_avg = daily_all["estimated_inspected"].mean()
+            sigma_p = np.sqrt(p_bar * (1 - p_bar) / n_avg) if n_avg > 0 and p_bar > 0 else 0
+
+            UCL = p_bar + 3 * sigma_p  # 上控制限
+            LCL = max(0, p_bar - 3 * sigma_p)  # 下控制限
+            UWL = p_bar + 2 * sigma_p  # 上警告限
+            LWL = max(0, p_bar - 2 * sigma_p)  # 下警告限
+
+        # --- Western Electric 规则检测 ---
+            we_violations = []
+
+        # 规则1: 单点超出 3σ 控制限
+            for i, row in daily_all.iterrows():
+                if row["defect_rate"] > UCL or row["defect_rate"] < LCL:
+                    we_violations.append({
+                        "日期": row["day"].strftime("%Y-%m-%d"),
+                        "规则": "Rule 1: 超出3σ控制限",
+                        "值": f"{row['defect_rate']:.2%}"
+                    })
+
+        # 规则2: 连续7点上升或下降
+            rates = daily_all["defect_rate"].values
+            if len(rates) >= 7:
+                for i in range(len(rates) - 6):
+                    window = rates[i:i+7]
+                    if all(window[j] < window[j+1] for j in range(6)):
+                        we_violations.append({
+                            "日期": daily_all.loc[i+6, "day"].strftime("%Y-%m-%d"),
+                            "规则": "Rule 2: 连续7点上升",
+                            "值": f"{rates[i]:.2%} → {rates[i+6]:.2%}"
+                        })
+                    elif all(window[j] > window[j+1] for j in range(6)):
+                        we_violations.append({
+                            "日期": daily_all.loc[i+6, "day"].strftime("%Y-%m-%d"),
+                            "规则": "Rule 2: 连续7点下降",
+                            "值": f"{rates[i]:.2%} → {rates[i+6]:.2%}"
+                        })
+
+        # 规则3: 连续7点在中心线同一侧
+            for i in range(len(rates) - 6):
+                window = rates[i:i+7]
+                if all(v > p_bar for v in window):
+                    we_violations.append({
+                        "日期": daily_all.loc[i+6, "day"].strftime("%Y-%m-%d"),
+                        "规则": "Rule 3: 连续7点在CL上方",
+                        "值": f"持续偏高"
+                    })
+                elif all(v < p_bar for v in window):
+                    we_violations.append({
+                        "日期": daily_all.loc[i+6, "day"].strftime("%Y-%m-%d"),
+                        "规则": "Rule 3: 连续7点在CL下方",
+                        "值": f"持续偏低"
+                    })
+
+        # --- 趋势分析 ---
+            from numpy.polynomial import polynomial as P
+            x = np.arange(len(daily_all))
+            coeffs = np.polyfit(x, rates, 1)
+            slope = coeffs[0]
+            daily_all["trend"] = np.polyval(coeffs, x)
+
+            if abs(slope) < sigma_p * 0.1:
+                trend_status = "稳定"
+                trend_icon = "➡️"
+                trend_color = "normal"
+            elif slope > 0:
+                trend_status = "恶化中"
+                trend_icon = "📈"
+                trend_color = "inverse"
+            else:
+                trend_status = "改善中"
+                trend_icon = "📉"
+                trend_color = "normal"
+
+        # --- KPI 行 ---
+            kpi_spc1, kpi_spc2, kpi_spc3, kpi_spc4 = st.columns(4)
+            kpi_spc1.metric("平均缺陷率", f"{p_bar:.2%}")
+            kpi_spc2.metric("控制限 (UCL/LCL)", f"{UCL:.2%} / {LCL:.2%}")
+            kpi_spc3.metric("趋势判断", f"{trend_icon} {trend_status}", delta=f"斜率: {slope*100:.3f}%/天", delta_color=trend_color)
+            kpi_spc4.metric("Western Electric 告警", f"{len(we_violations)} 次", delta="需关注" if len(we_violations) > 0 else "正常")
+
+        # --- 控制图 ---
+            st.divider()
+            st.subheader("X-bar 控制图 (每日缺陷率)")
+
+            fig_spc, ax_spc = plt.subplots(figsize=(14, 5))
+
+        # 数据点
+            ax_spc.plot(daily_all["day"], daily_all["defect_rate"],
+                         marker="o", markersize=4, linewidth=1.5, color="steelblue", label="日缺陷率")
+            ax_spc.fill_between(daily_all["day"], daily_all["defect_rate"], alpha=0.15, color="steelblue")
+
+        # 控制限线
+            ax_spc.axhline(y=p_bar, color="green", linestyle="-", linewidth=1.5, label=f"CL (中心线): {p_bar:.2%}")
+            ax_spc.axhline(y=UCL, color="red", linestyle="--", linewidth=1, label=f"UCL: {UCL:.2%}")
+            ax_spc.axhline(y=LCL, color="red", linestyle="--", linewidth=1, label=f"LCL: {LCL:.2%}")
+            ax_spc.axhline(y=UWL, color="orange", linestyle=":", linewidth=1, alpha=0.6, label=f"UWL (2σ): {UWL:.2%}")
+            ax_spc.axhline(y=LWL, color="orange", linestyle=":", linewidth=1, alpha=0.6, label=f"LWL (2σ): {LWL:.2%}")
+
+        # 标注异常点
+            for v in we_violations:
+                if "Rule 1" in v["规则"]:
+                    anomaly_date = pd.Timestamp(v["日期"])
+                    val = float(v["值"].rstrip("%")) / 100
+                    ax_spc.annotate("⚠️", (anomaly_date, val), fontsize=12,
+                                   ha="center", va="bottom", color="red")
+
+            ax_spc.set_title("SPC 控制图 - 每日缺陷率")
+            ax_spc.set_ylabel("缺陷率")
+            ax_spc.tick_params(axis="x", rotation=45)
+            ax_spc.legend(fontsize=8, loc="upper right")
+            ax_spc.grid(True, alpha=0.3)
+
+            st.pyplot(fig_spc)
+            plt.close()
+
+        # --- 趋势图 ---
+            st.subheader("缺陷率趋势 (含线性回归)")
+
+            fig_trend, ax_trend = plt.subplots(figsize=(14, 4))
+            ax_trend.plot(daily_all["day"], daily_all["defect_rate"],
+                          marker="o", markersize=3, linewidth=1.5, color="steelblue", label="日缺陷率")
+            ax_trend.plot(daily_all["day"], daily_all["trend"],
+                          color="red", linestyle="--", linewidth=2, label=f"趋势线 (斜率: {slope*100:.3f}%/天)")
+            ax_trend.fill_between(daily_all["day"], daily_all["defect_rate"], alpha=0.1, color="steelblue")
+            ax_trend.axhline(y=p_bar, color="green", linestyle="--", alpha=0.5, label=f"平均: {p_bar:.2%}")
+            ax_trend.set_ylabel("缺陷率")
+            ax_trend.tick_params(axis="x", rotation=45)
+            ax_trend.legend(fontsize=8)
+            ax_trend.grid(True, alpha=0.3)
+
+            st.pyplot(fig_trend)
+            plt.close()
+
+        # --- 告警清单 ---
+            st.divider()
+            st.subheader("⚠️ Western Electric 规则告警清单")
+            if we_violations:
+                we_df = pd.DataFrame(we_violations)
+                st.dataframe(we_df, use_container_width=True)
+                st.warning(f"共发现 **{len(we_violations)}** 次统计异常,建议关注对应日期的工艺参数和人员排班")
+            else:
+                st.success("✅ 未触发 Western Electric 规则告警,过程处于统计控制状态")
+
+        # --- 结论 ---
+            st.divider()
+            st.subheader("📋 过程能力结论")
+
+            if trend_status == "改善中":
+                st.success(
+                    f"**趋势改善中** 📉\n\n"
+                    f"每日缺陷率以平均 {abs(slope)*100:.3f}%/天 的速度下降。\n"
+                    f"当前平均缺陷率为 {p_bar:.2%},控制上限 {UCL:.2%}。\n"
+                    f"{'已触发' if we_violations else '未触发'} Western Electric 规则告警。"
+                )
+            elif trend_status == "恶化中":
+                st.error(
+                    f"**趋势恶化中** 📈\n\n"
+                    f"每日缺陷率以平均 {slope*100:.3f}%/天 的速度上升。\n"
+                    f"当前平均缺陷率为 {p_bar:.2%},控制上限 {UCL:.2%}。\n"
+                    f"{'已触发' if we_violations else '未触发'} Western Electric 规则告警。\n\n"
+                    f"建议:检查近期工艺参数变化、设备状态和原材料批次。"
+                )
+            else:
+                st.info(
+                    f"**过程稳定** ➡️\n\n"
+                    f"缺陷率趋势平稳,斜率 {slope*100:.3f}%/天,无显著上升或下降。\n"
+                    f"当前平均缺陷率为 {p_bar:.2%},控制限 [{LCL:.2%}, {UCL:.2%}]。\n"
+                    f"{'已触发' if we_violations else '未触发'} Western Electric 规则告警。"
+                )
+
+
+# ========== 重复缺陷坐标检测 ==========
+_t = get_tab("🗺️ 空间集中性")
+if _t:
+    with _t:
+        st.divider()
+        st.subheader("🎯 重复缺陷坐标检测")
+        st.markdown(
+            "检测在不同面板上重复出现的缺陷坐标。随机缺陷不会在同一位置反复出现,"
+            "而设备硬伤(如吸嘴划伤、夹具压痕)会在相同位置持续产生缺陷。"
+            "这是从'描述分析'跨入'根因诊断'的关键一步。"
+        )
+
+    # 坐标分桶:将面板划分为网格,找出跨面板重复的缺陷桶
+        repeat_bin_size = st.slider("坐标分桶大小 (mm)", min_value=5, max_value=50, value=15, step=5,
+                                     help="将坐标按此大小分桶,同一桶内出现于不同面板的缺陷视为'重复'")
+
+        pw = df["panel_width_mm"].iloc[0]
+        ph = df["panel_height_mm"].iloc[0]
+
+    # 计算桶ID
+        df_copy = filtered_df.copy()
+        df_copy["x_bin"] = (df_copy["x_mm"] // repeat_bin_size).astype(int)
+        df_copy["y_bin"] = (df_copy["y_mm"] // repeat_bin_size).astype(int)
+        df_copy["bin_key"] = df_copy["x_bin"].astype(str) + "_" + df_copy["y_bin"].astype(str)
+
+    # 统计每个桶出现在多少不同面板上
+        bin_panels = df_copy.groupby("bin_key").agg(
+            panel_count=("panel_id", "nunique"),
+            defect_count=("defect_id", "count"),
+            x_center=("x_mm", "mean"),
+            y_center=("y_mm", "mean"),
+            dominant_type=("defect_type", lambda x: x.mode().iloc[0] if len(x) > 0 else "-"),
+            dominant_severity=("severity", lambda x: x.mode().iloc[0] if len(x) > 0 else "-"),
+        ).reset_index()
+
+        repeat_threshold = st.slider("重复判定阈值 (跨面板数)", min_value=2, max_value=10, value=3)
+        repeated_bins = bin_panels[bin_panels["panel_count"] >= repeat_threshold].sort_values("panel_count", ascending=False)
+
+        col_repeat1, col_repeat2 = st.columns([1, 2])
+
+        with col_repeat1:
+            st.metric("重复缺陷桶数", f"{len(repeated_bins)}",
+                      delta=f"阈值: ≥{repeat_threshold} 块面板")
+
+            if len(repeated_bins) > 0:
+                st.dataframe(
+                    repeated_bins[["panel_count", "defect_count", "x_center", "y_center", "dominant_type", "dominant_severity"]]
+                    .rename(columns={"panel_count": "涉及面板", "defect_count": "缺陷总数",
+                                     "x_center": "中心X", "y_center": "中心Y",
+                                     "dominant_type": "主要类型", "dominant_severity": "主要严重度"}),
+                    use_container_width=True, height=400
+                )
+            else:
+                st.info(f"未发现跨 {repeat_threshold}+ 块面板的重复缺陷坐标")
+
+        with col_repeat2:
+            if len(repeated_bins) > 0:
+            # 在面板图上标注重复缺陷桶
+                fig_repeat, ax_repeat = plt.subplots(figsize=(4, 6))
+
+            # 面板背景
+                ax_repeat.add_patch(plt.Rectangle((0, 0), pw, ph, facecolor="#1a1a2e", edgecolor="#444", linewidth=2))
+                ax_repeat.add_patch(plt.Rectangle((8, 8), pw-16, ph-16, facecolor="#16213e", edgecolor="#0f3460", linewidth=1.5))
+
+            # 所有缺陷散点(淡)
+                ax_repeat.scatter(filtered_df["x_mm"], filtered_df["y_mm"],
+                                 alpha=0.1, s=2, c="gray", edgecolors="none", zorder=1)
+
+            # 重复缺陷桶标注重叠圈
+                max_count = repeated_bins["panel_count"].max()
+                for _, row in repeated_bins.iterrows():
+                    size = 100 + (row["panel_count"] / max_count) * 400
+                    ax_repeat.scatter(row["x_center"], row["y_center"],
+                                     s=size, c="red", alpha=0.3, edgecolors="red",
+                                     linewidth=2, zorder=3)
+                    ax_repeat.text(row["x_center"], row["y_center"],
+                                  str(row["panel_count"]), ha="center", va="center",
+                                  fontsize=8, color="white", fontweight="bold", zorder=4)
+
+                ax_repeat.set_xlim(-5, pw + 5)
+                ax_repeat.set_ylim(-5, ph + 5)
+                ax_repeat.set_title(f"重复缺陷坐标 (≥{repeat_threshold} 块面板)", fontsize=11)
+                ax_repeat.set_xlabel("X (mm)")
+                ax_repeat.set_ylabel("Y (mm)")
+                ax_repeat.set_aspect("equal")
+                ax_repeat.grid(True, alpha=0.1, color="gray")
+
+                st.pyplot(fig_repeat)
+                plt.close()
+            else:
+                st.info("调整分桶大小或阈值以检测重复缺陷")
+
+# ========== Tab 9: 缺陷模式识别 ==========
+_t = get_tab("🔬 缺陷模式识别")
+if _t:
+    with _t:
+        st.header("🔬 缺陷空间模式自动识别")
+        st.markdown(
+            "参考 WM811K 晶圆缺陷图谱分类标准,对每块面板的缺陷分布进行模式评分。"
+            "不同模式对应不同的根因机制(如边缘型→贴合工艺,角落型→夹具应力,"
+            "中心型→压力不均,线条型→机械刮伤,随机型→来料污染)。"
+        )
+
+        from scipy.spatial import ConvexHull
+        from scipy.spatial.distance import cdist
+
+        pw = df["panel_width_mm"].iloc[0]
+        ph = df["panel_height_mm"].iloc[0]
+
+    # 按面板分组,逐块分析模式
+        panel_groups = filtered_df.groupby("panel_id")
+
+        patterns_results = []
+        for panel_id, panel_data in panel_groups:
+            if len(panel_data) < 3:
+                continue
+
+            coords = panel_data[["x_mm", "y_mm"]].values
+
+        # 归一化坐标到 [0,1]
+            x_norm = panel_data["x_mm"].values / pw
+            y_norm = panel_data["y_mm"].values / ph
+
+        # --- 模式1: 边缘型 (缺陷靠近面板四边) ---
+        # 计算每个点到最近边缘的距离比例
+            edge_dist = np.minimum(np.minimum(x_norm, 1 - x_norm),
+                                   np.minimum(y_norm, 1 - y_norm))
+            edge_ratio = (edge_dist < 0.12).mean()  # 12% 以内的点视为边缘点
+            edge_score = edge_ratio
+
+        # --- 模式2: 角落型 (缺陷集中在四个角落) ---
+            corner_threshold = 0.15  # 15% 范围
+            in_corner = (
+                ((x_norm < corner_threshold) & (y_norm < corner_threshold)) |  # 左下
+                ((x_norm < corner_threshold) & (y_norm > 1 - corner_threshold)) |  # 左上
+                ((x_norm > 1 - corner_threshold) & (y_norm < corner_threshold)) |  # 右下
+                ((x_norm > 1 - corner_threshold) & (y_norm > 1 - corner_threshold))  # 右上
+            )
+            corner_score = in_corner.mean()
+
+        # --- 模式3: 中心型 (缺陷集中在面板中心区域) ---
+            center_x, center_y = 0.5, 0.5
+            dist_to_center = np.sqrt((x_norm - center_x)**2 + (y_norm - center_y)**2)
+            center_radius = 0.18  # 18% 半径
+            center_score = (dist_to_center < center_radius).mean()
+
+        # --- 模式4: 线条型 (缺陷沿一条线分布) ---
+        # 用 PCA 第一主成分占比来判断线性程度
+            if len(coords) >= 3:
+                from sklearn.decomposition import PCA
+                pca = PCA(n_components=2)
+                pca.fit(coords)
+                linearity = pca.explained_variance_ratio_[0]  # 第一主成分占比
+                line_score = linearity
+            else:
+                line_score = 0
+
+        # --- 模式5: 随机型 (均匀分布,无明显模式) ---
+        # 用空间变异系数:将面板分为网格,计算各格缺陷数的变异系数
+            grid_n = 5
+            x_edges = np.linspace(0, pw, grid_n + 1)
+            y_edges = np.linspace(0, ph, grid_n + 1)
+            H, _, _ = np.histogram2d(panel_data["x_mm"].values, panel_data["y_mm"].values,
+                                      bins=[x_edges, y_edges])
+            if H.sum() > 0 and H.std() > 0:
+                cv = H.std() / H.mean() if H.mean() > 0 else 999
+            # cv 越小越均匀(随机)
+                randomness_score = max(0, 1 - cv / 3)  # 归一化到 [0,1]
+            else:
+                randomness_score = 0
+
+        # --- 主导模式判定 ---
+            scores = {
+                "边缘型": edge_score,
+                "角落型": corner_score,
+                "中心型": center_score,
+                "线条型": line_score,
+                "随机型": randomness_score,
+            }
+            dominant_pattern = max(scores, key=scores.get)
+
+            patterns_results.append({
+                "面板ID": panel_id,
+                "缺陷数": len(panel_data),
+                "主导模式": dominant_pattern,
+                "边缘型": round(edge_score, 2),
+                "角落型": round(corner_score, 2),
+                "中心型": round(center_score, 2),
+                "线条型": round(line_score, 2),
+                "随机型": round(randomness_score, 2),
+            })
+
+        if patterns_results:
+            pattern_df = pd.DataFrame(patterns_results)
+
+        # --- 模式统计 ---
+            col_pat1, col_pat2, col_pat3 = st.columns([1, 1, 2])
+
+            with col_pat1:
+                pattern_counts = pattern_df["主导模式"].value_counts()
+                fig_pat, ax_pat = plt.subplots(figsize=(8, 5))
+                colors_pat = {"边缘型": "#FF6B6B", "角落型": "#FFA500", "中心型": "#4ECDC4",
+                              "线条型": "#9B59B6", "随机型": "#95A5A6"}
+                bars = ax_pat.bar(pattern_counts.index, pattern_counts.values,
+                                 color=[colors_pat.get(p, "#888") for p in pattern_counts.index],
+                                 alpha=0.8)
+                for bar, count in zip(bars, pattern_counts.values):
+                    ax_pat.text(bar.get_x() + bar.get_width()/2, bar.get_height() + 0.5,
+                               str(count), ha="center", va="bottom", fontsize=11, fontweight="bold")
+                ax_pat.set_title("缺陷模式分布")
+                ax_pat.set_ylabel("面板数量")
+                st.pyplot(fig_pat)
+                plt.close()
+
+            with col_pat2:
+                st.subheader("模式占比")
+                total_panels = len(pattern_df)
+                for pattern in ["边缘型", "角落型", "中心型", "线条型", "随机型"]:
+                    count = (pattern_df["主导模式"] == pattern).sum()
+                    pct = count / total_panels * 100
+                    st.metric(pattern, f"{count} 块", f"{pct:.1f}%")
+
+            with col_pat3:
+            # --- 模式-根因映射 ---
+                st.subheader("模式 → 可能根因")
+                root_cause_map = {
+                    "边缘型": {
+                        "可能原因": "贴合工艺参数异常、边缘夹具压力不均、涂胶厚度不均",
+                        "建议排查": "检查贴合压力、边缘密封工艺、涂胶均匀性"
+                    },
+                    "角落型": {
+                        "可能原因": "夹具应力集中、面板放置定位偏差、角落散热不良",
+                        "建议排查": "检查夹具对齐、面板定位精度、角落温度分布"
+                    },
+                    "中心型": {
+                        "可能原因": "压力中心不均、FPC绑定区域工艺异常、中心温度过高",
+                        "建议排查": "检查压力分布曲线、FPC绑定参数、加热板温度"
+                    },
+                    "线条型": {
+                        "可能原因": "机械刮伤、传送带划痕、清洗刷毛磨损、吸嘴移动轨迹",
+                        "建议排查": "检查传送带状态、清洗设备、吸嘴运动轨迹"
+                    },
+                    "随机型": {
+                        "可能原因": "来料污染、环境尘埃、化学药液杂质",
+                        "建议排查": "检查洁净室等级、来料检验记录、药液过滤状态"
+                    },
+                }
+
+                for pattern in ["边缘型", "角落型", "中心型", "线条型", "随机型"]:
+                    count = (pattern_df["主导模式"] == pattern).sum()
+                    if count == 0:
+                        continue
+                    rc = root_cause_map[pattern]
+                    with st.expander(f"{pattern} ({count} 块面板)"):
+                        st.markdown(f"**可能原因**: {rc['可能原因']}")
+                        st.markdown(f"**建议排查**: {rc['建议排查']}")
+
+        # --- 详细数据表 ---
+            st.divider()
+            st.subheader("面板模式评分明细")
+            st.dataframe(pattern_df, use_container_width=True, height=400)
+
+        else:
+            st.warning("当前筛选条件下无足够面板数据进行模式分析(需至少 3 个缺陷/面板)")
+
+# ========== Tab 10: 设备健康与共性分析 ==========
+_t = get_tab("💚 设备健康与共性分析")
+if _t:
+    with _t:
+        st.header("💚 设备健康评分 & 共性分析")
+        st.markdown(
+            "综合评估各台设备的健康状态,并在发现异常批次时自动分析其共性特征。"
+        )
+
+    # --- 设备健康评分 ---
+        st.subheader("设备健康评分 (0-100)")
+        st.markdown("评分维度:缺陷率(40%) + 座号集中度(30%) + 严重度分布(30%)")
+
+        health_data = []
+        for eq_id in sorted(df["equipment_id"].unique()):
+            eq_all = df[df["equipment_id"] == eq_id]
+            eq_filtered = filtered_df[filtered_df["equipment_id"] == eq_id]
+
+        # 维度1: 缺陷率评分 (40%)
+            eq_panels = eq_all["panel_id"].nunique()
+            eq_defects = len(eq_all)
+            eq_defect_rate = eq_defects / max(eq_panels, 1)
+        # 缺陷率越低分越高,线性归一化
+        # 以 5 个缺陷/面板为最差(0分),0 为最好(100分)
+            rate_score = max(0, 100 * (1 - eq_defect_rate / 5))
+
+        # 维度2: 座号集中度评分 (30%)
+        # 座号分布越均匀分越高,集中分越低
+            eq_seat_counts = eq_all.groupby("seat_id").size()
+            if len(eq_seat_counts) > 1:
+                seat_cv = eq_seat_counts.std() / max(eq_seat_counts.mean(), 0.001)
+            # cv 越小越均匀,得分越高
+                seat_score = max(0, 100 * (1 - seat_cv / 3))
+            else:
+                seat_score = 50
+
+        # 维度3: 严重度评分 (30%)
+            eq_sev = eq_all["severity"].value_counts()
+            severe_ratio = eq_sev.get("严重", 0) / max(len(eq_all), 1)
+            sev_score = max(0, 100 * (1 - severe_ratio * 3))  # 严重占比 33% 时为 0 分
+
+        # 综合得分
+            total_score = rate_score * 0.4 + seat_score * 0.3 + sev_score * 0.3
+
+            health_data.append({
+                "设备ID": eq_id,
+                "缺陷总数": eq_defects,
+                "缺陷率": f"{eq_defect_rate:.2f}",
+                "座号集中度(CV)": f"{seat_cv:.2f}" if len(eq_seat_counts) > 1 else "N/A",
+                "严重占比": f"{severe_ratio:.1%}",
+                "缺陷率分(40%)": round(rate_score, 1),
+                "座号分(30%)": round(seat_score, 1),
+                "严重度分(30%)": round(sev_score, 1),
+                "健康总分": round(total_score, 1),
+            })
+
+        health_df = pd.DataFrame(health_data).sort_values("健康总分", ascending=False)
+
+    # 显示健康评分
+        col_h1, col_h2 = st.columns([3, 2])
+
+        with col_h1:
+            st.dataframe(health_df, use_container_width=True, hide_index=True)
+
+        with col_h2:
+        # 可视化排名
+            fig_health, ax_health = plt.subplots(figsize=(6, 4))
+            health_sorted = health_df.sort_values("健康总分", ascending=True)
+            colors_health = ["#4CAF50" if s >= 70 else "#FF9800" if s >= 40 else "#F44336"
+                             for s in health_sorted["健康总分"]]
+            bars = ax_health.barh(health_sorted["设备ID"], health_sorted["健康总分"],
+                                  color=colors_health, alpha=0.8, height=0.5)
+            for bar, score in zip(bars, health_sorted["健康总分"]):
+                ax_health.text(bar.get_width() + 1, bar.get_y() + bar.get_height()/2,
+                              f"{score:.0f}", ha="left", va="center", fontsize=12, fontweight="bold")
+            ax_health.set_xlabel("健康评分 (0-100)")
+            ax_health.set_title("设备健康排名")
+            ax_health.set_xlim(0, 110)
+            st.pyplot(fig_health)
+            plt.close()
+
+    # --- 共性分析 ---
+        st.divider()
+        st.subheader("🔍 异常批次共性分析")
+        st.markdown("选中异常批次后,自动分析这些批次的共同特征(设备/时段/座号/缺陷类型)。")
+
+    # 自动检测异常批次(基于缺陷率)
+        batch_stats = df.groupby("batch_id").agg(
+            defects=("defect_id", "count"),
+            panels=("panel_id", "nunique")
+        )
+        batch_stats["defect_rate"] = batch_stats["defects"] / batch_stats["panels"]
+        threshold = batch_stats["defect_rate"].mean() + batch_stats["defect_rate"].std()
+        abnormal_batches = batch_stats[batch_stats["defect_rate"] > threshold].index.tolist()
+
+        st.info(f"自动检测到的异常批次 (缺陷率 > {threshold:.2%}): **{len(abnormal_batches)}** 个")
+        st.write(", ".join(abnormal_batches[:10]))
+
+        if abnormal_batches:
+            col_c1, col_c2 = st.columns(2)
+
+            with col_c1:
+            # 选择要分析的批次
+                selected_abnormal = st.multiselect(
+                    "选择要分析的异常批次",
+                    options=abnormal_batches,
+                    default=abnormal_batches[:3] if len(abnormal_batches) >= 3 else abnormal_batches,
+                    key="commonality_batch"
+                )
+
+            if selected_abnormal:
+                abnormal_df = df[df["batch_id"].isin(selected_abnormal)]
+                normal_df = df[~df["batch_id"].isin(selected_abnormal)]
+
+                st.divider()
+                st.markdown(f"**分析对象**: {len(selected_abnormal)} 个异常批次, "
+                           f"{len(abnormal_df)} 条缺陷记录")
+
+            # 共性分析:设备
+                st.subheader("共性特征 TOP3")
+
+                col_common1, col_common2, col_common3 = st.columns(3)
+
+                with col_common1:
+                # 设备共性
+                    abnormal_eq_rate = abnormal_df.groupby("equipment_id").size() / len(abnormal_df)
+                    normal_eq_rate = normal_df.groupby("equipment_id").size() / len(normal_df)
+                    eq_boost = {}
+                    for eq in abnormal_df["equipment_id"].unique():
+                        a_rate = abnormal_eq_rate.get(eq, 0)
+                        n_rate = normal_eq_rate.get(eq, 0)
+                        if n_rate > 0:
+                            eq_boost[eq] = (a_rate - n_rate) / n_rate * 100
+                        else:
+                            eq_boost[eq] = 999
+                    eq_top = sorted(eq_boost.items(), key=lambda x: x[1], reverse=True)[:3]
+                    st.markdown("**设备共用性**")
+                    for eq, boost in eq_top:
+                        st.markdown(f"- {eq}: 异常占比 {abnormal_eq_rate.get(eq, 0):.1%}, "
+                                   f"相对正常 **+{boost:.0f}%**")
+
+                with col_common2:
+                # 时段共性
+                    abnormal_hour = abnormal_df.groupby("hour").size() / len(abnormal_df)
+                    normal_hour = normal_df.groupby("hour").size() / len(normal_df)
+                # 按班次聚合
+                    abnormal_shift = abnormal_df.groupby("shift").size() / len(abnormal_df)
+                    normal_shift = normal_df.groupby("shift").size() / len(normal_df)
+                    st.markdown("**时段共性**")
+                    for shift in ["白班", "夜班"]:
+                        a_rate = abnormal_shift.get(shift, 0)
+                        n_rate = normal_shift.get(shift, 0)
+                        if n_rate > 0:
+                            boost = (a_rate - n_rate) / n_rate * 100
+                        else:
+                            boost = 999
+                        st.markdown(f"- {shift}: 异常占比 {a_rate:.1%}, "
+                                   f"相对正常 **{'+' if boost > 0 else ''}{boost:.0f}%**")
+
+                with col_common3:
+                # 座号共性
+                    abnormal_seat = abnormal_df.groupby("seat_id").size() / len(abnormal_df)
+                    normal_seat = normal_df.groupby("seat_id").size() / len(normal_df)
+                    seat_boost = {}
+                    for seat in abnormal_df["seat_id"].unique():
+                        a_rate = abnormal_seat.get(seat, 0)
+                        n_rate = normal_seat.get(seat, 0)
+                        if n_rate > 0:
+                            seat_boost[seat] = (a_rate - n_rate) / n_rate * 100
+                        else:
+                            seat_boost[seat] = 999
+                    seat_top = sorted(seat_boost.items(), key=lambda x: x[1], reverse=True)[:3]
+                    st.markdown("**座号共性**")
+                    for seat, boost in seat_top:
+                        st.markdown(f"- {seat}: 异常占比 {abnormal_seat.get(seat, 0):.1%}, "
+                                   f"相对正常 **+{boost:.0f}%**")
+
+            # --- 缺陷类型偏差 ---
+                st.subheader("异常批次缺陷类型偏差")
+                abnormal_type = abnormal_df.groupby("defect_type").size() / len(abnormal_df)
+                normal_type = normal_df.groupby("defect_type").size() / len(normal_df)
+
+                type_diff = []
+                for t in set(list(abnormal_type.index) + list(normal_type.index)):
+                    a_rate = abnormal_type.get(t, 0)
+                    n_rate = normal_type.get(t, 0)
+                    type_diff.append({
+                        "缺陷类型": t,
+                        "异常占比": f"{a_rate:.1%}",
+                        "正常占比": f"{n_rate:.1%}",
+                        "偏差": f"{'+' if a_rate > n_rate else ''}{(a_rate - n_rate) / max(n_rate, 0.001) * 100:.0f}%",
+                    })
+
+                st.dataframe(pd.DataFrame(type_diff).sort_values("偏差", key=lambda x: x.str.rstrip("%").astype(float), ascending=False),
+                            use_container_width=True, hide_index=True)
+
+# ========== Tab 11: 多层叠加分析 ==========
+_t = get_tab("🔲 多层叠加分析")
+if _t:
+    with _t:
+        st.header("🔲 多层叠加分析")
+        st.markdown(
+            "将缺陷数据与面板物理区域、设备座号、时间维度叠加在同一视图上,"
+            "揭示单一维度看不到的深层关联。"
+        )
+
+        pw = df["panel_width_mm"].iloc[0]
+        ph = df["panel_height_mm"].iloc[0]
+
+    # --- 自定义区域定义 ---
+        st.subheader("📐 自定义区域缺陷统计")
+        st.markdown("将面板划分为不同功能区域,统计各区域缺陷分布")
+
+    # 定义区域:(名称, 判定函数)
+    # 边缘区:距四边 < 15%
+    # 中心区:距中心 < 20% 半径
+    # 角落区:四个角的 15% 范围
+    # FPC区:Y > 70% 高度
+    # 上半区/下半区
+
+        def classify_zone(x_norm, y_norm):
+            """将每个缺陷点分类到区域"""
+            zones = []
+            for i in range(len(x_norm)):
+                zx, zy = x_norm[i], y_norm[i]
+                zone_list = []
+
+            # 边缘区
+                if min(zx, 1 - zx, zy, 1 - zy) < 0.15:
+                    zone_list.append("边缘区")
+
+            # 中心区
+                if np.sqrt((zx - 0.5)**2 + (zy - 0.5)**2) < 0.20:
+                    zone_list.append("中心区")
+
+            # 角落区
+                if (zx < 0.15 or zx > 0.85) and (zy < 0.15 or zy > 0.85):
+                    zone_list.append("角落区")
+
+            # FPC区
+                if zy > 0.70:
+                    zone_list.append("FPC区")
+
+            # 上半区
+                if zy < 0.50:
+                    zone_list.append("上半区")
+
+            # 下半区
+                if zy > 0.50:
+                    zone_list.append("下半区")
+
+                if not zone_list:
+                    zone_list.append("其他区域")
+
+                zones.append(", ".join(zone_list))
+            return zones
+
+    # 计算每个缺陷的区域归属
+        x_norm_arr = filtered_df["x_mm"].values / pw
+        y_norm_arr = filtered_df["y_mm"].values / ph
+        filtered_df_copy = filtered_df.copy()
+        filtered_df_copy["zone"] = classify_zone(x_norm_arr, y_norm_arr)
+
+    # 统计各区域缺陷数
+        zone_counts = {}
+        zone_types = ["边缘区", "中心区", "角落区", "FPC区", "上半区", "下半区", "其他区域"]
+        for z in zone_types:
+            count = filtered_df_copy["zone"].str.contains(z).sum()
+            zone_counts[z] = count
+
+        col_z1, col_z2 = st.columns([1, 2])
+
+        with col_z1:
+            st.subheader("区域缺陷统计")
+            for z in zone_types:
+                count = zone_counts.get(z, 0)
+                pct = count / max(len(filtered_df_copy), 1) * 100
+                bar_len = int(pct / 100 * 200)
+                bar = "█" * max(bar_len, 0)
+                st.markdown(f"{z} | {bar} **{count}** ({pct:.1f}%)")
+
+        with col_z2:
+        # 区域可视化
+            fig_zone, ax_zone = plt.subplots(figsize=(4, 6))
+
+        # 面板背景
+            ax_zone.add_patch(plt.Rectangle((0, 0), pw, ph, facecolor="#1a1a2e", edgecolor="#444", linewidth=2))
+
+        # 区域边界
+        # 边缘区 (15% 边界)
+            margin_x = pw * 0.15
+            margin_y = ph * 0.15
+            ax_zone.add_patch(plt.Rectangle((0, 0), margin_x, ph, fill=False, edgecolor="yellow", linewidth=1, alpha=0.4, linestyle="--"))
+            ax_zone.add_patch(plt.Rectangle((pw - margin_x, 0), margin_x, ph, fill=False, edgecolor="yellow", linewidth=1, alpha=0.4, linestyle="--"))
+            ax_zone.add_patch(plt.Rectangle((0, 0), pw, margin_y, fill=False, edgecolor="yellow", linewidth=1, alpha=0.4, linestyle="--"))
+            ax_zone.add_patch(plt.Rectangle((0, ph - margin_y), pw, margin_y, fill=False, edgecolor="yellow", linewidth=1, alpha=0.4, linestyle="--"))
+
+        # 中心区 (20% 半径)
+            center_r = 0.20 * max(pw, ph) / 2
+            circle = plt.Circle((pw/2, ph/2), center_r, fill=False, edgecolor="cyan", linewidth=1.5, alpha=0.5, linestyle="--")
+            ax_zone.add_patch(circle)
+
+        # FPC区
+            fpc_y = ph * 0.70
+            ax_zone.add_patch(plt.Rectangle((0, fpc_y), pw, ph - fpc_y, fill=False, edgecolor="magenta", linewidth=1.5, alpha=0.5, linestyle="--"))
+
+        # 缺陷散点
+            scatter_colors = {"边缘区": "yellow", "中心区": "cyan", "角落区": "orange",
+                              "FPC区": "magenta", "上半区": "#4ECDC4", "下半区": "#45B7D1", "其他区域": "gray"}
+            for z_name in zone_types:
+                z_mask = filtered_df_copy["zone"].str.contains(z_name)
+                if z_mask.sum() > 0:
+                    z_data = filtered_df_copy[z_mask]
+                    ax_zone.scatter(z_data["x_mm"], z_data["y_mm"],
+                                   c=scatter_colors.get(z_name, "gray"), s=5, alpha=0.3,
+                                   label=f"{z_name} ({z_mask.sum()})", edgecolors="none", zorder=2)
+
+            ax_zone.set_xlim(-5, pw + 5)
+            ax_zone.set_ylim(-5, ph + 5)
+            ax_zone.set_title("缺陷区域叠加图 (虚线=区域边界)")
+            ax_zone.set_xlabel("X (mm)")
+            ax_zone.set_ylabel("Y (mm)")
+            ax_zone.set_aspect("equal")
+            ax_zone.legend(fontsize=7, loc="upper right", ncol=1, framealpha=0.7)
+
+            st.pyplot(fig_zone)
+            plt.close()
+
+    # --- 跨批次同座号面板对比 ---
+        st.divider()
+        st.subheader("🔀 跨批次同座号面板对比")
+        st.markdown(
+            "选择一台设备和一个座号,查看该座号在不同批次生产的面板上缺陷分布的对比。"
+            "如果同一座号持续在相同位置产生缺陷 → 该座号存在系统性问题。"
+        )
+
+        col_cmp1, col_cmp2, col_cmp3 = st.columns(3)
+
+        with col_cmp1:
+            cmp_eq = st.selectbox("选择设备", options=sorted(df["equipment_id"].unique()), key="cmp_eq")
+
+        with col_cmp2:
+            eq_seats = sorted(df[(df["equipment_id"] == cmp_eq)]["seat_id"].unique())
+            cmp_seat = st.selectbox("选择座号", options=eq_seats, key="cmp_seat")
+
+        with col_cmp3:
+        # 找出有该设备座号缺陷的批次
+            eq_seat_batches = sorted(df[(df["equipment_id"] == cmp_eq) & (df["seat_id"] == cmp_seat)]["batch_id"].unique())
+            cmp_batches = st.multiselect("选择对比批次", options=eq_seat_batches, default=eq_seat_batches[:3] if len(eq_seat_batches) >= 3 else eq_seat_batches)
+
+        if cmp_batches and len(cmp_batches) >= 2:
+            n_cols = min(len(cmp_batches), 3)
+            n_rows = (len(cmp_batches) + n_cols - 1) // n_cols
+            fig_cmp, axes_cmp = plt.subplots(n_rows, n_cols, figsize=(3.5 * n_cols, 5 * n_rows))
+            axes_cmp = axes_cmp.flatten() if n_cols * n_rows > 1 else [axes_cmp]
+
+            for i, batch in enumerate(cmp_batches):
+                ax = axes_cmp[i]
+                batch_data = df[(df["equipment_id"] == cmp_eq) & (df["seat_id"] == cmp_seat) & (df["batch_id"] == batch)]
+
+            # 面板背景
+                ax.add_patch(plt.Rectangle((0, 0), pw, ph, facecolor="#1a1a2e", edgecolor="#444", linewidth=1))
+
+                if len(batch_data) > 0:
+                # 按缺陷类型着色
+                    type_colors = {"划痕": "red", "亮点": "yellow", "暗点": "black", "气泡": "cyan",
+                                  "色差": "magenta", "漏光": "orange", "裂纹": "darkred", "异物": "green"}
+                    for _, row in batch_data.iterrows():
+                        c = type_colors.get(row["defect_type"], "white")
+                        ax.scatter(row["x_mm"], row["y_mm"], c=c, s=30, alpha=0.7, edgecolors="white", linewidth=0.3, zorder=3)
+
+                ax.set_xlim(-3, pw + 3)
+                ax.set_ylim(-3, ph + 3)
+                ax.set_title(f"{batch}\n{len(batch_data)} 缺陷", fontsize=9)
+                ax.set_aspect("equal")
+                ax.grid(True, alpha=0.1, color="gray")
+                ax.tick_params(left=False, bottom=False, labelleft=False, labelbottom=False)
+
+        # 隐藏多余子图
+            for j in range(len(cmp_batches), len(axes_cmp)):
+                axes_cmp[j].set_visible(False)
+
+            fig_cmp.suptitle(f"{cmp_eq} / {cmp_seat} 跨批次对比", fontsize=12, y=1.01)
+            plt.tight_layout()
+            st.pyplot(fig_cmp)
+            plt.close()
+
+        # 对比统计
+            st.subheader("对比统计")
+            comp_stats = []
+            for batch in cmp_batches:
+                batch_data = df[(df["equipment_id"] == cmp_eq) & (df["seat_id"] == cmp_seat) & (df["batch_id"] == batch)]
+                comp_stats.append({
+                    "批次": batch,
+                    "缺陷数": len(batch_data),
+                    "主要类型": batch_data["defect_type"].mode().iloc[0] if len(batch_data) > 0 else "-",
+                    "严重占比": f"{(batch_data['severity']=='严重').sum() / max(len(batch_data), 1):.0%}",
+                    "中心X": round(batch_data["x_mm"].mean(), 1) if len(batch_data) > 0 else "-",
+                    "中心Y": round(batch_data["y_mm"].mean(), 1) if len(batch_data) > 0 else "-",
+                })
+            st.dataframe(pd.DataFrame(comp_stats), use_container_width=True, hide_index=True)
+
+        # 趋势判断
+            if len(cmp_batches) >= 3:
+                defect_counts = [len(df[(df["equipment_id"] == cmp_eq) & (df["seat_id"] == cmp_seat) & (df["batch_id"] == b)]) for b in cmp_batches]
+                x_trend = np.arange(len(cmp_batches))
+                coeffs = np.polyfit(x_trend, defect_counts, 1)
+                slope = coeffs[0]
+                if slope > 0.5:
+                    st.warning(f"⚠️ **{cmp_eq}/{cmp_seat}** 缺陷数呈**上升趋势** (斜率: {slope:.1f}/批次),建议安排设备检修")
+                elif slope < -0.5:
+                    st.success(f"✅ **{cmp_eq}/{cmp_seat}** 缺陷数呈**改善趋势** (斜率: {slope:.1f}/批次)")
+                else:
+                    st.info(f"➡️ **{cmp_eq}/{cmp_seat}** 缺陷数**平稳** (斜率: {slope:.1f}/批次)")
+
+        else:
+            st.info("请选择至少 2 个批次进行对比")
+
+    # --- 缺陷传播追踪 ---
+        st.divider()
+        st.subheader("📡 缺陷坐标传播追踪")
+        st.markdown(
+            "追踪同一坐标区域在时间轴上的缺陷演变,识别持续恶化的位置。"
+            "如果某坐标的缺陷数量随时间递增 → 该位置存在渐进性损伤(如吸嘴持续磨损)。"
+        )
+
+    # 坐标分桶 + 时间维度
+        prop_bin = st.slider("传播追踪分桶大小 (mm)", min_value=10, max_value=50, value=20, step=10)
+
+        df_time = df.copy()
+        df_time["x_bin"] = (df_time["x_mm"] // prop_bin).astype(int)
+        df_time["y_bin"] = (df_time["y_mm"] // prop_bin).astype(int)
+
+    # 按桶 + 日期聚合
+        prop_df = df_time.groupby(["x_bin", "y_bin", "day"]).size().reset_index(name="defect_count")
+
+    # 找出至少有 3 天数据的桶
+        bucket_days = prop_df.groupby(["x_bin", "y_bin"])["day"].nunique()
+        active_buckets = bucket_days[bucket_days >= 3].index.tolist()
+
+        if active_buckets:
+        # 选择要追踪的桶
+            bucket_options = [f"({bx},{by})" for bx, by in active_buckets]
+            bucket_counts = prop_df.groupby(["x_bin", "y_bin"])["defect_count"].sum().sort_values(ascending=False)
+
+        # 默认选缺陷最多的桶
+            default_top = bucket_counts.index[0]
+            selected_bucket = st.selectbox(
+                "选择要追踪的坐标桶",
+                options=bucket_options,
+                index=0,
+                format_func=lambda x: f"{x} (总缺陷: {bucket_counts.loc[tuple(map(int, x.strip('()').split(',')))]:.0f})"
+            )
+
+            bx, by = map(int, selected_bucket.strip("()").split(","))
+            bucket_timeline = prop_df[(prop_df["x_bin"] == bx) & (prop_df["y_bin"] == by)].sort_values("day")
+            bucket_timeline["day"] = pd.to_datetime(bucket_timeline["day"])
+
+        # 传播趋势图
+            fig_prop, ax_prop = plt.subplots(figsize=(12, 4))
+            ax_prop.bar(bucket_timeline["day"], bucket_timeline["defect_count"],
+                        color="steelblue", alpha=0.7, width=0.8)
+        # 趋势线
+            if len(bucket_timeline) >= 2:
+                x_t = np.arange(len(bucket_timeline))
+                coeffs_p = np.polyfit(x_t, bucket_timeline["defect_count"].values, 1)
+                slope_p = coeffs_p[0]
+                trend_y = np.polyval(coeffs_p, x_t)
+                ax_prop.plot(bucket_timeline["day"], trend_y, color="red", linestyle="--",
+                            linewidth=2, label=f"趋势 (斜率: {slope_p:.2f}/天)")
+
+                if slope_p > 0.3:
+                    ax_prop.set_title(f"坐标桶 ({bx},{by}) — 缺陷数上升 (恶化趋势)")
+                elif slope_p < -0.3:
+                    ax_prop.set_title(f"坐标桶 ({bx},{by}) — 缺陷数下降 (改善趋势)")
+                else:
+                    ax_prop.set_title(f"坐标桶 ({bx},{by}) — 缺陷数平稳")
+            else:
+                ax_prop.set_title(f"坐标桶 ({bx},{by})")
+
+            ax_prop.set_ylabel("缺陷数量")
+            ax_prop.tick_params(axis="x", rotation=45)
+            ax_prop.legend()
+            ax_prop.grid(True, alpha=0.3, axis="y")
+            st.pyplot(fig_prop)
+            plt.close()
+
+        # 该桶的缺陷类型演变
+            bucket_data = df_time[(df_time["x_bin"] == bx) & (df_time["y_bin"] == by)]
+            st.markdown(f"**坐标桶 ({bx},{by}) 缺陷类型演变** (对应面板区域: X {bx*prop_bin}-{(bx+1)*prop_bin}mm, Y {by*prop_bin}-{(by+1)*prop_bin}mm)")
+            bucket_type_timeline = bucket_data.groupby(["day", "defect_type"]).size().unstack(fill_value=0)
+            bucket_type_timeline.index = pd.to_datetime(bucket_type_timeline.index)
+            st.dataframe(bucket_type_timeline, use_container_width=True, height=300)
+        else:
+            st.info("当前数据中无足够多天数的连续缺陷坐标桶 (需 ≥3 天)")
+
+# --- 底部:数据导出 ---
+st.divider()
+if current_config["show_export"]:
+    st.subheader("📥 数据导出")
+
+    # 综合报告导出
+    st.subheader("📋 一键导出综合报告")
+    st.markdown("包含所有分析模块的关键结论,适合汇报和存档。")
+
+    report_parts = []
+    report_parts.append("# 缺陷集中性分析综合报告\n")
+    report_parts.append(f"**生成时间**: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")
+    report_parts.append(f"**数据范围**: {start_date.strftime('%Y-%m-%d')} ~ {end_date.strftime('%Y-%m-%d')}")
+    report_parts.append(f"**筛选后缺陷数**: {len(filtered_df)} 条")
+    report_parts.append(f"**涉及面板**: {filtered_df['panel_id'].nunique()} 块")
+    report_parts.append(f"**视图模式**: {view_mode}\n")
+
+    # 1. KPI 摘要
+    report_parts.append("## 1. KPI 摘要\n")
+    total_panels_inspected_r = df[df["timestamp"] >= start_date]["panel_id"].nunique()
+    defective_panels_r = filtered_df["panel_id"].nunique()
+    yield_rate_r = (1 - defective_panels_r / max(total_panels_inspected_r, 1)) * 100
+    report_parts.append(f"- 检测面板数: {total_panels_inspected_r} 块")
+    report_parts.append(f"- 不良面板数: {defective_panels_r} 块 ({defective_panels_r/total_panels_inspected_r*100:.1f}%)")
+    report_parts.append(f"- 综合良率: {yield_rate_r:.1f}%")
+    report_parts.append(f"- 缺陷总数: {len(filtered_df)} 个")
+    report_parts.append(f"- 严重缺陷: {(filtered_df['severity']=='严重').sum()} 个\n")
+
+    # 2. 缺陷类型
+    report_parts.append("## 2. 缺陷类型分布\n")
+    type_counts_r = filtered_df["defect_type"].value_counts()
+    for t, c in type_counts_r.items():
+        report_parts.append(f"- {t}: {c} ({c/len(filtered_df)*100:.1f}%)")
+    report_parts.append("")
+
+    # 3. 设备/座号
+    if "equipment_id" in filtered_df.columns:
+        report_parts.append("## 3. 设备与座号分布\n")
+        eq_counts = filtered_df["equipment_id"].value_counts()
+        for e, c in eq_counts.items():
+            report_parts.append(f"- {e}: {c} 个缺陷")
+        seat_top = filtered_df["seat_id"].value_counts().head(5)
+        report_parts.append(f"\n**缺陷座号 TOP5**:")
+        for i, (s, c) in enumerate(seat_top.items(), 1):
+            report_parts.append(f"  {i}. {s}: {c} 个")
+        report_parts.append("")
+
+    # 4. 趋势
+    report_parts.append("## 4. 趋势分析\n")
+    daily_r = filtered_df.groupby("day").size()
+    if len(daily_r) >= 2:
+        x_r = np.arange(len(daily_r))
+        coeffs_r = np.polyfit(x_r, daily_r.values.astype(float), 1)
+        slope_r = coeffs_r[0]
+        if slope_r > 0:
+            report_parts.append(f"- 缺陷数趋势: **上升** (斜率 {slope_r:.1f}/天)")
+        else:
+            report_parts.append(f"- 缺陷数趋势: **下降** (斜率 {slope_r:.1f}/天)")
+    report_parts.append("")
+
+    # 5. 异常座号
+    report_parts.append("## 5. 异常检测\n")
+    if "seat_id" in filtered_df.columns:
+        all_seat_stats_r = filtered_df.groupby(["equipment_id", "seat_id"]).size()
+        mean_r = all_seat_stats_r.mean()
+        std_r = all_seat_stats_r.std()
+        threshold_2x_r = mean_r + 2 * std_r
+        critical_r = all_seat_stats_r[all_seat_stats_r > threshold_2x_r]
+        if len(critical_r) > 0:
+            report_parts.append(f"- ⚠️ 2σ 异常座号: {len(critical_r)} 个")
+            for (eq, seat), count in critical_r.items():
+                report_parts.append(f"  - {eq}/{seat}: {count} 个缺陷")
+        else:
+            report_parts.append("- ✅ 无 2σ 异常座号")
+    report_parts.append("")
+
+    # 6. 建议
+    report_parts.append("## 6. 建议\n")
+    top_type = type_counts_r.index[0] if len(type_counts_r) > 0 else "-"
+    top_eq = eq_counts.index[0] if len(eq_counts) > 0 else "-"
+    report_parts.append(f"- 重点关注缺陷类型: **{top_type}**")
+    report_parts.append(f"- 重点关注设备: **{top_eq}**")
+    report_parts.append("- 建议查看 SPC 控制图确认趋势状态")
+    report_parts.append("- 建议检查设备健康评分\n")
+
+    report_parts.append("---\n*本报告由缺陷集中性分析系统自动生成*")
+
+    full_report = "\n".join(report_parts)
+
+    col_exp1, col_exp2, col_exp3 = st.columns(3)
+    with col_exp1:
+        st.download_button(
+            label="📥 综合报告 (MD)",
+            data=full_report.encode("utf-8"),
+            file_name=f"defect_report_{datetime.now().strftime('%Y%m%d')}.md",
+            mime="text/markdown",
+            use_container_width=True
+        )
+    with col_exp2:
+        csv_data = filtered_df.to_csv(index=False).encode("utf-8-sig")
+        st.download_button(
+            label="📥 筛选数据 (CSV)",
+            data=csv_data,
+            file_name=f"defect_data_{datetime.now().strftime('%Y%m%d')}.csv",
+            mime="text/csv",
+            use_container_width=True
+        )
+    with col_exp3:
+        # 精简版 TXT 报告
+        txt_lines = ["缺陷集中性分析报告", f"生成时间: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}",
+                     f"缺陷数: {len(filtered_df)} | 面板: {filtered_df['panel_id'].nunique()}",
+                     f"良率: {yield_rate_r:.1f}%"]
+        for t, c in type_counts_r.head(3).items():
+            txt_lines.append(f"  TOP: {t} {c}个")
+        txt_content = "\n".join(txt_lines)
+        st.download_button(
+            label="📥 精简报告 (TXT)",
+            data=txt_content.encode("utf-8"),
+            file_name=f"defect_summary_{datetime.now().strftime('%Y%m%d')}.txt",
+            mime="text/plain",
+            use_container_width=True
+        )

+ 45 - 0
data_summary.json

@@ -0,0 +1,45 @@
+{
+  "total_defects": 1193,
+  "total_panels": 500,
+  "defect_types": {
+    "划痕": 338,
+    "亮点": 229,
+    "暗点": 174,
+    "气泡": 159,
+    "色差": 109,
+    "漏光": 100,
+    "裂纹": 38,
+    "异物": 46
+  },
+  "severity_distribution": {
+    "轻微": 492,
+    "中等": 461,
+    "严重": 240
+  },
+  "shift_distribution": {
+    "白班": 880,
+    "夜班": 313
+  },
+  "equipment_distribution": {
+    "LAM-A01": 781,
+    "LAM-A02": 330,
+    "LAM-B01": 82
+  },
+  "date_range": {
+    "start": "2026-04-01",
+    "end": "2026-04-30"
+  },
+  "lamination_config": {
+    "equipment": [
+      "LAM-A01",
+      "LAM-A02",
+      "LAM-B01"
+    ],
+    "seat_bias": {
+      "LAM-A01_R2C3": "气泡",
+      "LAM-A01_R4C1": "漏光",
+      "LAM-A02_R1C5": "色差",
+      "LAM-B01_R3C2": "异物"
+    }
+  }
+}

+ 1194 - 0
defect_data.csv

@@ -0,0 +1,1194 @@
+defect_id,panel_id,batch_id,equipment_id,seat_id,inspection_station,timestamp,defect_type,severity,x_mm,y_mm,panel_width_mm,panel_height_mm,hour,shift,day
+D00001,PANEL-0095,BATCH-20260414,LAM-A01,R4C1,AOI-前贴附#1,2026-04-14 10:36:38.402147,色差,严重,5.25,98.21,155.0,340.0,10,白班,2026-04-14
+D00002,PANEL-0125,BATCH-20260409,LAM-A01,R3C3,AOI-前贴附#1,2026-04-09 11:05:16.587483,漏光,严重,10.58,168.81,155.0,340.0,11,白班,2026-04-09
+D00003,PANEL-0041,BATCH-20260419,LAM-A01,R4C2,AOI-后段全检,2026-04-19 16:24:14.436571,亮点,轻微,10.37,227.87,155.0,340.0,16,白班,2026-04-19
+D00004,PANEL-0379,BATCH-20260430,LAM-A01,R2C2,AOI-前贴附#1,2026-04-30 14:38:56.907158,划痕,轻微,14.84,124.5,155.0,340.0,14,白班,2026-04-30
+D00005,PANEL-0254,BATCH-20260412,LAM-A02,R3C3,AOI-后段全检,2026-04-12 12:15:26.069764,裂纹,中等,3.42,300.99,155.0,340.0,12,白班,2026-04-12
+D00006,PANEL-0007,BATCH-20260426,LAM-A01,R4C1,AOI-前贴附#1,2026-04-26 07:52:06.026689,色差,中等,7.38,31.76,155.0,340.0,7,夜班,2026-04-26
+D00007,PANEL-0471,BATCH-20260427,LAM-A01,R1C4,AOI-前贴附#2,2026-04-27 05:10:03.984389,划痕,轻微,5.54,310.27,155.0,340.0,5,夜班,2026-04-27
+D00008,PANEL-0216,BATCH-20260402,LAM-A01,R2C3,AOI-前贴附#1,2026-04-02 03:29:00.899086,暗点,中等,9.96,184.39,155.0,340.0,3,夜班,2026-04-02
+D00009,PANEL-0069,BATCH-20260423,LAM-A02,R2C5,AOI-后段全检,2026-04-23 12:15:16.914642,色差,中等,3.35,147.04,155.0,340.0,12,白班,2026-04-23
+D00010,PANEL-0069,BATCH-20260408,LAM-A01,R3C2,AOI-前贴附#2,2026-04-08 01:54:56.310680,暗点,中等,8.4,190.56,155.0,340.0,1,夜班,2026-04-08
+D00011,PANEL-0081,BATCH-20260405,LAM-A02,R1C5,AOI-前贴附#1,2026-04-05 16:54:35.903472,气泡,严重,7.2,192.78,155.0,340.0,16,白班,2026-04-05
+D00012,PANEL-0030,BATCH-20260421,LAM-A01,R4C1,AOI-前贴附#1,2026-04-21 09:07:16.854279,色差,轻微,8.11,239.49,155.0,340.0,9,白班,2026-04-21
+D00013,PANEL-0073,BATCH-20260407,LAM-A01,R2C4,AOI-前贴附#1,2026-04-07 14:41:40.965281,暗点,轻微,5.86,58.31,155.0,340.0,14,白班,2026-04-07
+D00014,PANEL-0262,BATCH-20260417,LAM-A01,R3C2,AOI-前贴附#2,2026-04-17 11:46:15.212776,暗点,中等,5.34,95.0,155.0,340.0,11,白班,2026-04-17
+D00015,PANEL-0089,BATCH-20260426,LAM-A01,R4C5,AOI-前贴附#1,2026-04-26 12:20:59.863671,气泡,轻微,7.41,194.16,155.0,340.0,12,白班,2026-04-26
+D00016,PANEL-0403,BATCH-20260427,LAM-B01,R1C3,AOI-前贴附#1,2026-04-27 23:51:37.298940,气泡,中等,9.11,280.13,155.0,340.0,23,夜班,2026-04-27
+D00017,PANEL-0208,BATCH-20260413,LAM-A01,R1C5,AOI-前贴附#2,2026-04-13 03:52:00.364191,暗点,轻微,4.16,188.56,155.0,340.0,3,夜班,2026-04-13
+D00018,PANEL-0213,BATCH-20260425,LAM-A02,R3C4,AOI-前贴附#2,2026-04-25 14:47:52.325311,亮点,轻微,8.71,91.58,155.0,340.0,14,白班,2026-04-25
+D00019,PANEL-0322,BATCH-20260427,LAM-A02,R3C3,AOI-前贴附#1,2026-04-27 13:19:56.266300,亮点,轻微,7.83,223.95,155.0,340.0,13,白班,2026-04-27
+D00020,PANEL-0266,BATCH-20260417,LAM-A01,R2C2,AOI-前贴附#1,2026-04-17 09:30:36.304153,异物,轻微,13.67,241.97,155.0,340.0,9,白班,2026-04-17
+D00021,PANEL-0400,BATCH-20260407,LAM-A01,R2C5,AOI-前贴附#2,2026-04-07 08:45:29.906376,划痕,中等,7.48,91.47,155.0,340.0,8,白班,2026-04-07
+D00022,PANEL-0293,BATCH-20260408,LAM-A01,R4C1,AOI-后段全检,2026-04-08 14:06:10.974571,划痕,轻微,5.37,133.32,155.0,340.0,14,白班,2026-04-08
+D00023,PANEL-0207,BATCH-20260402,LAM-A01,R3C4,AOI-前贴附#1,2026-04-02 07:13:45.169979,亮点,轻微,17.56,180.3,155.0,340.0,7,夜班,2026-04-02
+D00024,PANEL-0333,BATCH-20260412,LAM-A01,R2C5,AOI-前贴附#2,2026-04-12 16:52:41.771798,色差,中等,13.6,136.89,155.0,340.0,16,白班,2026-04-12
+D00025,PANEL-0077,BATCH-20260414,LAM-A02,R1C4,AOI-前贴附#1,2026-04-14 16:07:20.701140,划痕,中等,11.9,109.29,155.0,340.0,16,白班,2026-04-14
+D00026,PANEL-0288,BATCH-20260402,LAM-A02,R1C1,AOI-前贴附#1,2026-04-02 17:43:48.036954,划痕,轻微,2.49,50.0,155.0,340.0,17,夜班,2026-04-02
+D00027,PANEL-0493,BATCH-20260424,LAM-A01,R2C4,AOI-前贴附#2,2026-04-24 16:20:55.304592,划痕,中等,13.65,36.05,155.0,340.0,16,白班,2026-04-24
+D00028,PANEL-0047,BATCH-20260416,LAM-A02,R1C5,AOI-前贴附#1,2026-04-16 13:05:12.693647,色差,中等,9.87,307.56,155.0,340.0,13,白班,2026-04-16
+D00029,PANEL-0110,BATCH-20260415,LAM-A01,R4C4,AOI-前贴附#2,2026-04-15 10:37:19.809336,划痕,中等,6.07,274.14,155.0,340.0,10,白班,2026-04-15
+D00030,PANEL-0200,BATCH-20260428,LAM-A02,R3C1,AOI-后段全检,2026-04-28 13:04:31.310658,亮点,严重,2.21,126.47,155.0,340.0,13,白班,2026-04-28
+D00031,PANEL-0427,BATCH-20260417,LAM-A01,R3C5,AOI-后段全检,2026-04-17 09:13:23.978358,亮点,轻微,10.83,307.04,155.0,340.0,9,白班,2026-04-17
+D00032,PANEL-0210,BATCH-20260412,LAM-A01,R2C1,AOI-前贴附#1,2026-04-12 00:25:14.838231,漏光,中等,4.48,223.03,155.0,340.0,0,夜班,2026-04-12
+D00033,PANEL-0376,BATCH-20260407,LAM-A01,R3C5,AOI-前贴附#1,2026-04-07 09:05:14.903592,亮点,中等,1.11,164.76,155.0,340.0,9,白班,2026-04-07
+D00034,PANEL-0420,BATCH-20260414,LAM-A01,R1C5,AOI-后段全检,2026-04-14 05:44:13.934539,划痕,轻微,6.23,167.91,155.0,340.0,5,夜班,2026-04-14
+D00035,PANEL-0154,BATCH-20260402,LAM-A01,R4C4,AOI-前贴附#1,2026-04-02 11:32:11.864057,暗点,中等,5.69,44.99,155.0,340.0,11,白班,2026-04-02
+D00036,PANEL-0010,BATCH-20260422,LAM-B01,R5C3,AOI-前贴附#2,2026-04-22 22:03:40.008555,异物,中等,8.33,47.51,155.0,340.0,22,夜班,2026-04-22
+D00037,PANEL-0415,BATCH-20260413,LAM-A02,R3C2,AOI-前贴附#1,2026-04-13 14:29:17.823998,暗点,轻微,7.12,200.73,155.0,340.0,14,白班,2026-04-13
+D00038,PANEL-0353,BATCH-20260423,LAM-B01,R1C4,AOI-前贴附#1,2026-04-23 17:25:14.912382,异物,中等,14.0,186.11,155.0,340.0,17,夜班,2026-04-23
+D00039,PANEL-0157,BATCH-20260427,LAM-A02,R4C3,AOI-前贴附#1,2026-04-27 18:23:48.790166,色差,轻微,11.49,83.82,155.0,340.0,18,夜班,2026-04-27
+D00040,PANEL-0261,BATCH-20260408,LAM-A01,R4C1,AOI-后段全检,2026-04-08 10:07:12.869016,划痕,轻微,7.14,303.86,155.0,340.0,10,白班,2026-04-08
+D00041,PANEL-0077,BATCH-20260411,LAM-A01,R2C3,AOI-后段全检,2026-04-11 06:34:15.692909,气泡,轻微,3.46,254.39,155.0,340.0,6,夜班,2026-04-11
+D00042,PANEL-0257,BATCH-20260413,LAM-A02,R3C2,AOI-前贴附#1,2026-04-13 15:08:03.024023,划痕,中等,13.94,54.04,155.0,340.0,15,白班,2026-04-13
+D00043,PANEL-0471,BATCH-20260417,LAM-A01,R1C2,AOI-后段全检,2026-04-17 08:04:10.093626,暗点,轻微,11.93,299.28,155.0,340.0,8,白班,2026-04-17
+D00044,PANEL-0488,BATCH-20260405,LAM-A02,R1C5,AOI-前贴附#1,2026-04-05 12:38:52.993337,亮点,轻微,21.28,312.27,155.0,340.0,12,白班,2026-04-05
+D00045,PANEL-0131,BATCH-20260423,LAM-A01,R2C4,AOI-前贴附#1,2026-04-23 13:42:41.140811,亮点,轻微,9.32,318.78,155.0,340.0,13,白班,2026-04-23
+D00046,PANEL-0067,BATCH-20260401,LAM-A01,R4C3,AOI-前贴附#2,2026-04-01 13:17:37.305195,裂纹,中等,16.21,36.76,155.0,340.0,13,白班,2026-04-01
+D00047,PANEL-0455,BATCH-20260409,LAM-A01,R3C1,AOI-前贴附#2,2026-04-09 06:20:36.577164,划痕,严重,10.3,241.11,155.0,340.0,6,夜班,2026-04-09
+D00048,PANEL-0228,BATCH-20260415,LAM-A01,R1C2,AOI-前贴附#1,2026-04-15 13:09:43.831175,漏光,中等,8.43,183.77,155.0,340.0,13,白班,2026-04-15
+D00049,PANEL-0163,BATCH-20260412,LAM-A01,R2C4,AOI-前贴附#1,2026-04-12 00:05:27.097586,划痕,轻微,0.45,231.75,155.0,340.0,0,夜班,2026-04-12
+D00050,PANEL-0015,BATCH-20260419,LAM-A02,R1C4,AOI-后段全检,2026-04-19 13:36:35.102523,划痕,轻微,11.61,310.6,155.0,340.0,13,白班,2026-04-19
+D00051,PANEL-0232,BATCH-20260424,LAM-A01,R2C4,AOI-后段全检,2026-04-24 08:45:29.347438,漏光,严重,3.78,226.41,155.0,340.0,8,白班,2026-04-24
+D00052,PANEL-0195,BATCH-20260422,LAM-A02,R3C3,AOI-后段全检,2026-04-22 17:21:44.948939,暗点,中等,5.43,271.09,155.0,340.0,17,夜班,2026-04-22
+D00053,PANEL-0349,BATCH-20260414,LAM-A02,R3C5,AOI-前贴附#1,2026-04-14 13:45:36.220279,气泡,轻微,7.78,280.06,155.0,340.0,13,白班,2026-04-14
+D00054,PANEL-0030,BATCH-20260406,LAM-A01,R2C5,AOI-前贴附#2,2026-04-06 09:28:25.743280,划痕,严重,6.62,271.54,155.0,340.0,9,白班,2026-04-06
+D00055,PANEL-0359,BATCH-20260425,LAM-A01,R4C1,AOI-前贴附#1,2026-04-25 10:01:01.013110,暗点,轻微,0.18,147.83,155.0,340.0,10,白班,2026-04-25
+D00056,PANEL-0338,BATCH-20260426,LAM-A01,R3C2,AOI-后段全检,2026-04-26 10:08:02.051702,气泡,严重,4.02,86.77,155.0,340.0,10,白班,2026-04-26
+D00057,PANEL-0331,BATCH-20260411,LAM-A01,R4C5,AOI-前贴附#1,2026-04-11 11:58:46.890440,暗点,轻微,12.65,139.0,155.0,340.0,11,白班,2026-04-11
+D00058,PANEL-0427,BATCH-20260402,LAM-A01,R1C5,AOI-前贴附#1,2026-04-02 10:07:36.948973,亮点,中等,11.39,287.57,155.0,340.0,10,白班,2026-04-02
+D00059,PANEL-0497,BATCH-20260407,LAM-A02,R2C5,AOI-前贴附#2,2026-04-07 15:04:56.965320,裂纹,中等,11.49,63.98,155.0,340.0,15,白班,2026-04-07
+D00060,PANEL-0316,BATCH-20260420,LAM-A01,R1C1,AOI-后段全检,2026-04-20 09:59:36.150149,气泡,严重,8.87,174.0,155.0,340.0,9,白班,2026-04-20
+D00061,PANEL-0486,BATCH-20260423,LAM-A02,R4C2,AOI-前贴附#2,2026-04-23 21:25:16.147795,漏光,中等,11.31,89.97,155.0,340.0,21,夜班,2026-04-23
+D00062,PANEL-0296,BATCH-20260414,LAM-A01,R4C1,AOI-前贴附#1,2026-04-14 11:01:02.657904,色差,轻微,9.21,194.39,155.0,340.0,11,白班,2026-04-14
+D00063,PANEL-0449,BATCH-20260415,LAM-A01,R1C3,AOI-前贴附#2,2026-04-15 13:36:37.071096,气泡,中等,7.16,278.94,155.0,340.0,13,白班,2026-04-15
+D00064,PANEL-0413,BATCH-20260416,LAM-A02,R2C5,AOI-后段全检,2026-04-16 16:53:00.187353,划痕,中等,13.82,284.11,155.0,340.0,16,白班,2026-04-16
+D00065,PANEL-0330,BATCH-20260401,LAM-B01,R2C3,AOI-前贴附#1,2026-04-01 19:22:18.481464,亮点,严重,6.77,91.01,155.0,340.0,19,夜班,2026-04-01
+D00066,PANEL-0220,BATCH-20260405,LAM-A01,R4C2,AOI-后段全检,2026-04-05 00:03:46.960268,漏光,严重,4.15,292.31,155.0,340.0,0,夜班,2026-04-05
+D00067,PANEL-0377,BATCH-20260419,LAM-A02,R2C1,AOI-后段全检,2026-04-19 12:03:56.290677,划痕,中等,14.06,197.57,155.0,340.0,12,白班,2026-04-19
+D00068,PANEL-0479,BATCH-20260426,LAM-A01,R1C4,AOI-前贴附#1,2026-04-26 13:04:18.170724,划痕,轻微,14.17,125.07,155.0,340.0,13,白班,2026-04-26
+D00069,PANEL-0147,BATCH-20260416,LAM-A01,R4C2,AOI-前贴附#1,2026-04-16 02:46:12.789212,亮点,中等,0.13,232.45,155.0,340.0,2,夜班,2026-04-16
+D00070,PANEL-0259,BATCH-20260417,LAM-A01,R2C4,AOI-前贴附#1,2026-04-17 12:08:38.667239,划痕,严重,11.19,164.5,155.0,340.0,12,白班,2026-04-17
+D00071,PANEL-0292,BATCH-20260410,LAM-A01,R1C4,AOI-前贴附#1,2026-04-10 10:39:17.179910,裂纹,中等,13.35,231.53,155.0,340.0,10,白班,2026-04-10
+D00072,PANEL-0299,BATCH-20260415,LAM-A01,R1C2,AOI-前贴附#2,2026-04-15 13:26:35.403960,漏光,中等,3.33,94.62,155.0,340.0,13,白班,2026-04-15
+D00073,PANEL-0143,BATCH-20260404,LAM-A02,R2C3,AOI-前贴附#2,2026-04-04 19:53:33.324029,亮点,严重,11.92,119.08,155.0,340.0,19,夜班,2026-04-04
+D00074,PANEL-0481,BATCH-20260422,LAM-A01,R3C5,AOI-前贴附#2,2026-04-22 09:48:10.154331,划痕,中等,4.93,150.34,155.0,340.0,9,白班,2026-04-22
+D00075,PANEL-0425,BATCH-20260429,LAM-A01,R3C5,AOI-前贴附#1,2026-04-29 10:20:48.187014,气泡,严重,9.66,96.1,155.0,340.0,10,白班,2026-04-29
+D00076,PANEL-0235,BATCH-20260408,LAM-A01,R2C3,AOI-前贴附#2,2026-04-08 00:31:22.752083,气泡,轻微,1.1,141.56,155.0,340.0,0,夜班,2026-04-08
+D00077,PANEL-0115,BATCH-20260425,LAM-A01,R4C1,AOI-前贴附#2,2026-04-25 04:37:23.912656,异物,中等,6.6,191.44,155.0,340.0,4,夜班,2026-04-25
+D00078,PANEL-0365,BATCH-20260419,LAM-A01,R3C1,AOI-后段全检,2026-04-19 15:52:06.098927,暗点,轻微,7.7,242.29,155.0,340.0,15,白班,2026-04-19
+D00079,PANEL-0090,BATCH-20260416,LAM-A01,R1C2,AOI-前贴附#1,2026-04-16 10:53:19.374632,亮点,轻微,12.81,250.16,155.0,340.0,10,白班,2026-04-16
+D00080,PANEL-0208,BATCH-20260428,LAM-A02,R4C2,AOI-前贴附#2,2026-04-28 22:11:25.244772,暗点,轻微,16.97,266.84,155.0,340.0,22,夜班,2026-04-28
+D00081,PANEL-0164,BATCH-20260430,LAM-A01,R4C1,AOI-后段全检,2026-04-30 07:11:21.243257,异物,中等,10.9,243.26,155.0,340.0,7,夜班,2026-04-30
+D00082,PANEL-0481,BATCH-20260408,LAM-A01,R3C5,AOI-前贴附#2,2026-04-08 15:14:13.674420,气泡,轻微,9.49,224.31,155.0,340.0,15,白班,2026-04-08
+D00083,PANEL-0084,BATCH-20260406,LAM-A01,R3C3,AOI-前贴附#1,2026-04-06 08:27:04.377946,气泡,中等,2.86,91.25,155.0,340.0,8,白班,2026-04-06
+D00084,PANEL-0077,BATCH-20260412,LAM-A01,R1C4,AOI-前贴附#1,2026-04-12 12:18:28.201400,划痕,中等,0.91,140.07,155.0,340.0,12,白班,2026-04-12
+D00085,PANEL-0161,BATCH-20260428,LAM-A02,R3C2,AOI-后段全检,2026-04-28 16:52:40.505573,气泡,轻微,8.95,163.31,155.0,340.0,16,白班,2026-04-28
+D00086,PANEL-0005,BATCH-20260419,LAM-A01,R1C4,AOI-前贴附#1,2026-04-19 11:54:00.243351,气泡,严重,8.68,44.87,155.0,340.0,11,白班,2026-04-19
+D00087,PANEL-0485,BATCH-20260403,LAM-A01,R4C2,AOI-后段全检,2026-04-03 14:30:46.439536,亮点,中等,11.04,178.51,155.0,340.0,14,白班,2026-04-03
+D00088,PANEL-0078,BATCH-20260403,LAM-A01,R4C3,AOI-后段全检,2026-04-03 11:03:16.753659,亮点,中等,11.52,150.9,155.0,340.0,11,白班,2026-04-03
+D00089,PANEL-0091,BATCH-20260407,LAM-A01,R4C3,AOI-前贴附#1,2026-04-07 09:25:27.109929,划痕,轻微,9.8,260.63,155.0,340.0,9,白班,2026-04-07
+D00090,PANEL-0087,BATCH-20260412,LAM-A01,R4C2,AOI-前贴附#2,2026-04-12 14:03:36.926354,划痕,中等,0.67,313.37,155.0,340.0,14,白班,2026-04-12
+D00091,PANEL-0270,BATCH-20260430,LAM-A01,R3C2,AOI-前贴附#1,2026-04-30 07:17:27.859946,划痕,中等,12.46,186.8,155.0,340.0,7,夜班,2026-04-30
+D00092,PANEL-0104,BATCH-20260422,LAM-A01,R1C4,AOI-前贴附#1,2026-04-22 15:20:15.286412,划痕,轻微,7.47,116.81,155.0,340.0,15,白班,2026-04-22
+D00093,PANEL-0452,BATCH-20260424,LAM-A01,R3C2,AOI-前贴附#2,2026-04-24 11:58:13.146792,暗点,轻微,3.22,33.02,155.0,340.0,11,白班,2026-04-24
+D00094,PANEL-0487,BATCH-20260419,LAM-A01,R4C5,AOI-前贴附#2,2026-04-19 01:34:50.550607,划痕,中等,5.93,297.39,155.0,340.0,1,夜班,2026-04-19
+D00095,PANEL-0500,BATCH-20260410,LAM-A02,R4C1,AOI-前贴附#1,2026-04-10 22:16:47.155420,划痕,中等,1.01,295.73,155.0,340.0,22,夜班,2026-04-10
+D00096,PANEL-0339,BATCH-20260428,LAM-A01,R3C5,AOI-后段全检,2026-04-28 12:40:50.441259,漏光,轻微,6.28,95.9,155.0,340.0,12,白班,2026-04-28
+D00097,PANEL-0175,BATCH-20260430,LAM-A01,R4C3,AOI-前贴附#1,2026-04-30 13:43:11.493300,暗点,轻微,11.75,228.62,155.0,340.0,13,白班,2026-04-30
+D00098,PANEL-0054,BATCH-20260430,LAM-A01,R1C5,AOI-前贴附#2,2026-04-30 09:48:36.909762,暗点,轻微,6.36,42.63,155.0,340.0,9,白班,2026-04-30
+D00099,PANEL-0388,BATCH-20260418,LAM-A01,R4C4,AOI-前贴附#2,2026-04-18 12:11:08.616860,亮点,轻微,3.69,69.86,155.0,340.0,12,白班,2026-04-18
+D00100,PANEL-0478,BATCH-20260407,LAM-A01,R3C3,AOI-前贴附#1,2026-04-07 08:44:38.134883,气泡,轻微,6.71,85.04,155.0,340.0,8,白班,2026-04-07
+D00101,PANEL-0211,BATCH-20260416,LAM-A02,R3C4,AOI-后段全检,2026-04-16 15:57:02.225265,划痕,中等,10.3,108.35,155.0,340.0,15,白班,2026-04-16
+D00102,PANEL-0095,BATCH-20260403,LAM-A02,R1C4,AOI-前贴附#2,2026-04-03 12:25:18.805015,色差,轻微,1.25,318.75,155.0,340.0,12,白班,2026-04-03
+D00103,PANEL-0223,BATCH-20260419,LAM-A02,R4C5,AOI-前贴附#2,2026-04-19 15:20:35.455642,划痕,轻微,2.9,229.08,155.0,340.0,15,白班,2026-04-19
+D00104,PANEL-0009,BATCH-20260419,LAM-A02,R4C4,AOI-前贴附#2,2026-04-19 14:44:38.195606,气泡,轻微,8.64,135.26,155.0,340.0,14,白班,2026-04-19
+D00105,PANEL-0053,BATCH-20260405,LAM-A01,R3C2,AOI-前贴附#1,2026-04-05 13:54:39.149313,亮点,中等,1.75,241.13,155.0,340.0,13,白班,2026-04-05
+D00106,PANEL-0077,BATCH-20260418,LAM-A01,R3C2,AOI-前贴附#1,2026-04-18 16:50:39.624150,气泡,轻微,17.73,294.58,155.0,340.0,16,白班,2026-04-18
+D00107,PANEL-0206,BATCH-20260403,LAM-A01,R1C4,AOI-前贴附#2,2026-04-03 08:22:49.966430,暗点,严重,7.23,307.61,155.0,340.0,8,白班,2026-04-03
+D00108,PANEL-0316,BATCH-20260414,LAM-A01,R1C2,AOI-后段全检,2026-04-14 00:42:19.162012,亮点,中等,3.47,37.36,155.0,340.0,0,夜班,2026-04-14
+D00109,PANEL-0302,BATCH-20260414,LAM-A02,R1C5,AOI-后段全检,2026-04-14 13:15:36.493223,划痕,轻微,3.91,138.36,155.0,340.0,13,白班,2026-04-14
+D00110,PANEL-0310,BATCH-20260420,LAM-A01,R2C5,AOI-前贴附#1,2026-04-20 06:16:31.409219,暗点,中等,5.58,52.03,155.0,340.0,6,夜班,2026-04-20
+D00111,PANEL-0330,BATCH-20260412,LAM-A01,R2C5,AOI-前贴附#2,2026-04-12 08:16:04.615103,异物,中等,5.15,120.7,155.0,340.0,8,白班,2026-04-12
+D00112,PANEL-0112,BATCH-20260417,LAM-A01,R3C3,AOI-前贴附#1,2026-04-17 14:07:11.149814,色差,轻微,14.32,214.05,155.0,340.0,14,白班,2026-04-17
+D00113,PANEL-0351,BATCH-20260418,LAM-A01,R1C5,AOI-前贴附#1,2026-04-18 13:09:29.998317,划痕,轻微,7.92,136.48,155.0,340.0,13,白班,2026-04-18
+D00114,PANEL-0165,BATCH-20260416,LAM-A01,R2C5,AOI-前贴附#2,2026-04-16 08:15:12.852387,亮点,中等,7.86,88.82,155.0,340.0,8,白班,2026-04-16
+D00115,PANEL-0279,BATCH-20260406,LAM-A01,R2C5,AOI-前贴附#2,2026-04-06 11:14:59.374034,裂纹,严重,12.09,99.78,155.0,340.0,11,白班,2026-04-06
+D00116,PANEL-0027,BATCH-20260404,LAM-A02,R4C4,AOI-前贴附#1,2026-04-04 14:23:35.090467,暗点,严重,2.73,128.1,155.0,340.0,14,白班,2026-04-04
+D00117,PANEL-0070,BATCH-20260407,LAM-A01,R2C3,AOI-前贴附#2,2026-04-07 14:51:51.070136,气泡,轻微,4.21,97.98,155.0,340.0,14,白班,2026-04-07
+D00118,PANEL-0218,BATCH-20260429,LAM-A01,R4C2,AOI-前贴附#2,2026-04-29 15:48:11.279092,漏光,严重,10.29,155.97,155.0,340.0,15,白班,2026-04-29
+D00119,PANEL-0450,BATCH-20260419,LAM-A01,R2C2,AOI-前贴附#1,2026-04-19 09:05:57.758378,漏光,中等,7.68,29.69,155.0,340.0,9,白班,2026-04-19
+D00120,PANEL-0365,BATCH-20260419,LAM-A02,R4C2,AOI-前贴附#2,2026-04-19 16:41:12.829481,暗点,中等,9.72,103.93,155.0,340.0,16,白班,2026-04-19
+D00121,PANEL-0189,BATCH-20260417,LAM-A01,R2C4,AOI-前贴附#1,2026-04-17 07:43:44.302879,亮点,中等,7.6,143.36,155.0,340.0,7,夜班,2026-04-17
+D00122,PANEL-0333,BATCH-20260407,LAM-A02,R1C5,AOI-前贴附#2,2026-04-07 20:06:08.837925,亮点,中等,6.79,200.83,155.0,340.0,20,夜班,2026-04-07
+D00123,PANEL-0435,BATCH-20260419,LAM-A02,R4C5,AOI-后段全检,2026-04-19 13:00:44.304339,气泡,中等,15.17,101.29,155.0,340.0,13,白班,2026-04-19
+D00124,PANEL-0306,BATCH-20260423,LAM-A01,R2C3,AOI-前贴附#2,2026-04-23 14:29:09.518520,亮点,轻微,13.33,59.96,155.0,340.0,14,白班,2026-04-23
+D00125,PANEL-0124,BATCH-20260416,LAM-A01,R2C1,AOI-后段全检,2026-04-16 00:36:45.353823,划痕,中等,15.4,302.16,155.0,340.0,0,夜班,2026-04-16
+D00126,PANEL-0019,BATCH-20260410,LAM-A02,R4C4,AOI-前贴附#1,2026-04-10 23:32:51.389014,亮点,中等,18.79,144.99,155.0,340.0,23,夜班,2026-04-10
+D00127,PANEL-0257,BATCH-20260403,LAM-B01,R5C2,AOI-前贴附#2,2026-04-03 19:41:07.190681,划痕,严重,14.16,194.35,155.0,340.0,19,夜班,2026-04-03
+D00128,PANEL-0296,BATCH-20260426,LAM-A02,R3C3,AOI-前贴附#2,2026-04-26 17:48:51.462278,气泡,轻微,6.93,295.75,155.0,340.0,17,夜班,2026-04-26
+D00129,PANEL-0416,BATCH-20260416,LAM-A01,R3C4,AOI-前贴附#2,2026-04-16 11:00:37.033694,暗点,轻微,4.55,44.82,155.0,340.0,11,白班,2026-04-16
+D00130,PANEL-0022,BATCH-20260414,LAM-A01,R1C1,AOI-后段全检,2026-04-14 06:22:35.637102,亮点,轻微,11.64,283.0,155.0,340.0,6,夜班,2026-04-14
+D00131,PANEL-0368,BATCH-20260408,LAM-A02,R3C1,AOI-前贴附#2,2026-04-08 14:17:23.356277,亮点,轻微,4.9,185.48,155.0,340.0,14,白班,2026-04-08
+D00132,PANEL-0477,BATCH-20260422,LAM-A01,R1C4,AOI-前贴附#2,2026-04-22 14:06:00.838876,漏光,严重,9.78,69.45,155.0,340.0,14,白班,2026-04-22
+D00133,PANEL-0450,BATCH-20260425,LAM-A01,R3C2,AOI-前贴附#1,2026-04-25 11:24:20.351048,划痕,中等,7.89,143.38,155.0,340.0,11,白班,2026-04-25
+D00134,PANEL-0040,BATCH-20260402,LAM-B01,R2C2,AOI-前贴附#1,2026-04-02 19:24:47.348602,气泡,轻微,14.09,253.28,155.0,340.0,19,夜班,2026-04-02
+D00135,PANEL-0038,BATCH-20260402,LAM-A01,R1C1,AOI-前贴附#2,2026-04-02 09:01:52.283312,漏光,中等,6.05,164.11,155.0,340.0,9,白班,2026-04-02
+D00136,PANEL-0048,BATCH-20260403,LAM-A01,R4C1,AOI-前贴附#2,2026-04-03 14:37:07.605574,亮点,中等,5.79,315.59,155.0,340.0,14,白班,2026-04-03
+D00137,PANEL-0183,BATCH-20260428,LAM-A01,R3C4,AOI-后段全检,2026-04-28 11:55:48.322853,暗点,轻微,9.89,133.02,155.0,340.0,11,白班,2026-04-28
+D00138,PANEL-0075,BATCH-20260407,LAM-A01,R4C5,AOI-前贴附#1,2026-04-07 16:27:49.759268,裂纹,严重,17.67,244.87,155.0,340.0,16,白班,2026-04-07
+D00139,PANEL-0209,BATCH-20260418,LAM-A02,R2C1,AOI-前贴附#1,2026-04-18 12:05:36.991747,划痕,严重,8.4,137.9,155.0,340.0,12,白班,2026-04-18
+D00140,PANEL-0183,BATCH-20260411,LAM-A01,R1C5,AOI-前贴附#2,2026-04-11 03:47:19.281258,暗点,中等,5.92,268.75,155.0,340.0,3,夜班,2026-04-11
+D00141,PANEL-0435,BATCH-20260412,LAM-A02,R4C3,AOI-后段全检,2026-04-12 15:21:54.870000,亮点,中等,12.29,190.72,155.0,340.0,15,白班,2026-04-12
+D00142,PANEL-0107,BATCH-20260415,LAM-A01,R2C1,AOI-后段全检,2026-04-15 15:28:46.660712,划痕,中等,11.59,39.05,155.0,340.0,15,白班,2026-04-15
+D00143,PANEL-0188,BATCH-20260413,LAM-A01,R4C4,AOI-前贴附#1,2026-04-13 10:40:24.634614,色差,中等,3.24,31.05,155.0,340.0,10,白班,2026-04-13
+D00144,PANEL-0264,BATCH-20260430,LAM-A01,R1C1,AOI-前贴附#1,2026-04-30 11:15:46.768959,漏光,严重,5.32,60.16,155.0,340.0,11,白班,2026-04-30
+D00145,PANEL-0086,BATCH-20260409,LAM-A02,R3C3,AOI-前贴附#2,2026-04-09 22:22:44.344466,色差,轻微,13.48,24.1,155.0,340.0,22,夜班,2026-04-09
+D00146,PANEL-0324,BATCH-20260413,LAM-A01,R2C5,AOI-前贴附#1,2026-04-13 15:51:51.801581,划痕,严重,10.14,42.61,155.0,340.0,15,白班,2026-04-13
+D00147,PANEL-0331,BATCH-20260411,LAM-A01,R1C3,AOI-后段全检,2026-04-11 04:11:36.983877,划痕,中等,10.41,180.3,155.0,340.0,4,夜班,2026-04-11
+D00148,PANEL-0456,BATCH-20260428,LAM-A01,R2C4,AOI-前贴附#2,2026-04-28 08:00:07.512919,暗点,中等,12.63,244.97,155.0,340.0,8,白班,2026-04-28
+D00149,PANEL-0137,BATCH-20260426,LAM-A02,R1C3,AOI-前贴附#1,2026-04-26 16:45:18.991645,划痕,轻微,3.81,293.95,155.0,340.0,16,白班,2026-04-26
+D00150,PANEL-0346,BATCH-20260402,LAM-A01,R3C3,AOI-前贴附#1,2026-04-02 08:47:08.173260,气泡,中等,11.39,195.54,155.0,340.0,8,白班,2026-04-02
+D00151,PANEL-0386,BATCH-20260424,LAM-A02,R3C3,AOI-前贴附#1,2026-04-24 13:27:37.181749,暗点,严重,17.36,237.84,155.0,340.0,13,白班,2026-04-24
+D00152,PANEL-0336,BATCH-20260413,LAM-A01,R4C5,AOI-后段全检,2026-04-13 11:13:42.032213,气泡,严重,9.98,247.12,155.0,340.0,11,白班,2026-04-13
+D00153,PANEL-0095,BATCH-20260427,LAM-A01,R4C5,AOI-前贴附#1,2026-04-27 02:35:44.978960,暗点,严重,4.87,133.36,155.0,340.0,2,夜班,2026-04-27
+D00154,PANEL-0326,BATCH-20260425,LAM-A02,R3C3,AOI-前贴附#1,2026-04-25 13:02:04.446655,亮点,轻微,5.39,92.33,155.0,340.0,13,白班,2026-04-25
+D00155,PANEL-0245,BATCH-20260405,LAM-A02,R4C1,AOI-后段全检,2026-04-05 14:13:35.196782,划痕,中等,8.07,81.51,155.0,340.0,14,白班,2026-04-05
+D00156,PANEL-0469,BATCH-20260424,LAM-A01,R2C1,AOI-前贴附#1,2026-04-24 11:03:46.979827,亮点,轻微,9.89,95.43,155.0,340.0,11,白班,2026-04-24
+D00157,PANEL-0090,BATCH-20260413,LAM-A01,R3C3,AOI-前贴附#2,2026-04-13 16:55:40.242217,暗点,严重,8.31,102.42,155.0,340.0,16,白班,2026-04-13
+D00158,PANEL-0059,BATCH-20260416,LAM-A01,R4C2,AOI-前贴附#1,2026-04-16 02:03:24.205451,气泡,轻微,10.51,82.17,155.0,340.0,2,夜班,2026-04-16
+D00159,PANEL-0403,BATCH-20260418,LAM-A01,R2C4,AOI-前贴附#2,2026-04-18 14:17:40.693878,色差,严重,7.27,283.47,155.0,340.0,14,白班,2026-04-18
+D00160,PANEL-0028,BATCH-20260413,LAM-A01,R4C2,AOI-前贴附#1,2026-04-13 08:36:14.628419,气泡,轻微,8.9,247.1,155.0,340.0,8,白班,2026-04-13
+D00161,PANEL-0072,BATCH-20260415,LAM-A01,R1C2,AOI-前贴附#1,2026-04-15 10:18:51.652485,异物,轻微,12.82,34.07,155.0,340.0,10,白班,2026-04-15
+D00162,PANEL-0270,BATCH-20260409,LAM-A01,R4C4,AOI-前贴附#2,2026-04-09 14:58:29.861824,划痕,轻微,2.68,100.6,155.0,340.0,14,白班,2026-04-09
+D00163,PANEL-0024,BATCH-20260422,LAM-A01,R2C2,AOI-前贴附#1,2026-04-22 08:46:32.468031,划痕,轻微,8.54,26.66,155.0,340.0,8,白班,2026-04-22
+D00164,PANEL-0112,BATCH-20260401,LAM-A02,R2C5,AOI-前贴附#2,2026-04-01 16:08:12.015942,亮点,轻微,8.53,169.45,155.0,340.0,16,白班,2026-04-01
+D00165,PANEL-0300,BATCH-20260413,LAM-A01,R2C5,AOI-前贴附#1,2026-04-13 09:24:51.483421,气泡,轻微,12.6,162.86,155.0,340.0,9,白班,2026-04-13
+D00166,PANEL-0485,BATCH-20260428,LAM-A01,R4C5,AOI-前贴附#2,2026-04-28 14:12:39.687341,亮点,轻微,6.87,269.41,155.0,340.0,14,白班,2026-04-28
+D00167,PANEL-0056,BATCH-20260404,LAM-A01,R4C2,AOI-后段全检,2026-04-04 15:12:41.315460,色差,中等,11.27,112.33,155.0,340.0,15,白班,2026-04-04
+D00168,PANEL-0474,BATCH-20260416,LAM-A01,R3C5,AOI-前贴附#1,2026-04-16 13:37:42.480692,暗点,轻微,13.51,264.92,155.0,340.0,13,白班,2026-04-16
+D00169,PANEL-0223,BATCH-20260424,LAM-A02,R1C4,AOI-前贴附#1,2026-04-24 12:51:28.248238,裂纹,严重,13.84,46.52,155.0,340.0,12,白班,2026-04-24
+D00170,PANEL-0120,BATCH-20260429,LAM-A01,R4C4,AOI-后段全检,2026-04-29 03:18:43.796607,裂纹,中等,3.07,257.55,155.0,340.0,3,夜班,2026-04-29
+D00171,PANEL-0179,BATCH-20260422,LAM-A01,R1C5,AOI-前贴附#2,2026-04-22 14:09:37.470385,划痕,轻微,2.53,196.99,155.0,340.0,14,白班,2026-04-22
+D00172,PANEL-0288,BATCH-20260425,LAM-A01,R4C3,AOI-前贴附#1,2026-04-25 15:24:22.207148,亮点,轻微,3.98,146.16,155.0,340.0,15,白班,2026-04-25
+D00173,PANEL-0434,BATCH-20260401,LAM-A01,R2C2,AOI-前贴附#2,2026-04-01 13:38:19.674815,暗点,中等,7.98,255.4,155.0,340.0,13,白班,2026-04-01
+D00174,PANEL-0425,BATCH-20260428,LAM-A01,R2C2,AOI-前贴附#1,2026-04-28 14:35:21.217944,划痕,轻微,6.08,211.81,155.0,340.0,14,白班,2026-04-28
+D00175,PANEL-0450,BATCH-20260414,LAM-A01,R1C4,AOI-前贴附#1,2026-04-14 09:51:39.631457,亮点,中等,5.69,261.51,155.0,340.0,9,白班,2026-04-14
+D00176,PANEL-0281,BATCH-20260417,LAM-A02,R3C3,AOI-后段全检,2026-04-17 15:47:35.422832,气泡,轻微,2.44,290.95,155.0,340.0,15,白班,2026-04-17
+D00177,PANEL-0372,BATCH-20260408,LAM-B01,R2C2,AOI-前贴附#2,2026-04-08 20:27:23.876034,划痕,轻微,12.34,205.18,155.0,340.0,20,夜班,2026-04-08
+D00178,PANEL-0492,BATCH-20260403,LAM-A01,R1C5,AOI-前贴附#2,2026-04-03 14:15:29.343544,暗点,中等,12.79,314.14,155.0,340.0,14,白班,2026-04-03
+D00179,PANEL-0189,BATCH-20260427,LAM-A01,R3C2,AOI-前贴附#1,2026-04-27 01:49:34.133531,气泡,中等,10.09,202.43,155.0,340.0,1,夜班,2026-04-27
+D00180,PANEL-0066,BATCH-20260407,LAM-A02,R2C4,AOI-前贴附#1,2026-04-07 16:58:14.024285,划痕,中等,19.37,186.44,155.0,340.0,16,白班,2026-04-07
+D00181,PANEL-0298,BATCH-20260425,LAM-A01,R1C4,AOI-后段全检,2026-04-25 05:00:06.026349,亮点,中等,8.73,47.3,155.0,340.0,5,夜班,2026-04-25
+D00182,PANEL-0449,BATCH-20260419,LAM-A01,R4C4,AOI-前贴附#1,2026-04-19 11:03:10.223990,划痕,轻微,10.7,237.92,155.0,340.0,11,白班,2026-04-19
+D00183,PANEL-0420,BATCH-20260408,LAM-A02,R3C4,AOI-前贴附#1,2026-04-08 16:14:05.308496,气泡,轻微,0.51,184.23,155.0,340.0,16,白班,2026-04-08
+D00184,PANEL-0249,BATCH-20260403,LAM-A01,R4C3,AOI-前贴附#1,2026-04-03 14:58:10.809840,划痕,中等,7.94,155.27,155.0,340.0,14,白班,2026-04-03
+D00185,PANEL-0076,BATCH-20260425,LAM-A02,R4C4,AOI-前贴附#2,2026-04-25 13:32:06.929345,漏光,严重,10.07,293.14,155.0,340.0,13,白班,2026-04-25
+D00186,PANEL-0137,BATCH-20260424,LAM-B01,R5C2,AOI-前贴附#1,2026-04-24 18:29:44.983043,亮点,严重,7.3,109.39,155.0,340.0,18,夜班,2026-04-24
+D00187,PANEL-0164,BATCH-20260411,LAM-A01,R3C1,AOI-前贴附#1,2026-04-11 12:06:18.883481,划痕,轻微,12.36,177.08,155.0,340.0,12,白班,2026-04-11
+D00188,PANEL-0233,BATCH-20260414,LAM-A01,R1C3,AOI-后段全检,2026-04-14 09:06:15.998560,亮点,轻微,14.5,229.29,155.0,340.0,9,白班,2026-04-14
+D00189,PANEL-0255,BATCH-20260410,LAM-A01,R4C2,AOI-前贴附#2,2026-04-10 12:13:38.668051,亮点,中等,1.28,258.94,155.0,340.0,12,白班,2026-04-10
+D00190,PANEL-0476,BATCH-20260422,LAM-A01,R3C5,AOI-前贴附#1,2026-04-22 15:07:33.215092,亮点,轻微,12.25,157.8,155.0,340.0,15,白班,2026-04-22
+D00191,PANEL-0294,BATCH-20260412,LAM-A02,R2C4,AOI-前贴附#2,2026-04-12 16:26:27.459573,暗点,轻微,9.97,272.63,155.0,340.0,16,白班,2026-04-12
+D00192,PANEL-0417,BATCH-20260415,LAM-A01,R1C3,AOI-前贴附#1,2026-04-15 15:08:38.980360,暗点,中等,7.98,250.68,155.0,340.0,15,白班,2026-04-15
+D00193,PANEL-0170,BATCH-20260426,LAM-A02,R4C4,AOI-前贴附#2,2026-04-26 16:05:21.653630,划痕,严重,0.15,39.87,155.0,340.0,16,白班,2026-04-26
+D00194,PANEL-0317,BATCH-20260410,LAM-A01,R3C3,AOI-前贴附#2,2026-04-10 11:13:55.345631,划痕,轻微,15.4,33.76,155.0,340.0,11,白班,2026-04-10
+D00195,PANEL-0174,BATCH-20260413,LAM-A02,R4C5,AOI-前贴附#1,2026-04-13 13:15:15.319097,气泡,严重,9.98,206.24,155.0,340.0,13,白班,2026-04-13
+D00196,PANEL-0470,BATCH-20260422,LAM-A02,R4C2,AOI-前贴附#1,2026-04-22 22:32:56.458635,暗点,严重,6.78,82.74,155.0,340.0,22,夜班,2026-04-22
+D00197,PANEL-0345,BATCH-20260404,LAM-A02,R1C1,AOI-前贴附#2,2026-04-04 22:01:07.452804,亮点,中等,9.64,193.89,155.0,340.0,22,夜班,2026-04-04
+D00198,PANEL-0445,BATCH-20260418,LAM-A02,R3C5,AOI-后段全检,2026-04-18 12:09:28.136754,色差,中等,10.53,122.47,155.0,340.0,12,白班,2026-04-18
+D00199,PANEL-0018,BATCH-20260404,LAM-A01,R2C2,AOI-前贴附#2,2026-04-04 11:38:12.732681,亮点,中等,7.36,181.18,155.0,340.0,11,白班,2026-04-04
+D00200,PANEL-0070,BATCH-20260406,LAM-A01,R4C3,AOI-前贴附#1,2026-04-06 10:35:44.179183,色差,严重,9.71,158.04,155.0,340.0,10,白班,2026-04-06
+D00201,PANEL-0338,BATCH-20260411,LAM-A01,R4C1,AOI-前贴附#1,2026-04-11 05:39:25.465650,亮点,中等,18.59,195.43,155.0,340.0,5,夜班,2026-04-11
+D00202,PANEL-0116,BATCH-20260418,LAM-A01,R3C4,AOI-前贴附#1,2026-04-18 04:54:49.825174,划痕,中等,15.73,140.09,155.0,340.0,4,夜班,2026-04-18
+D00203,PANEL-0080,BATCH-20260413,LAM-A02,R4C3,AOI-前贴附#1,2026-04-13 13:37:58.675775,裂纹,中等,3.25,229.3,155.0,340.0,13,白班,2026-04-13
+D00204,PANEL-0015,BATCH-20260423,LAM-A01,R2C2,AOI-前贴附#2,2026-04-23 13:44:11.300196,亮点,中等,5.02,74.02,155.0,340.0,13,白班,2026-04-23
+D00205,PANEL-0176,BATCH-20260427,LAM-A01,R4C2,AOI-前贴附#2,2026-04-27 00:59:58.712405,色差,轻微,7.44,228.95,155.0,340.0,0,夜班,2026-04-27
+D00206,PANEL-0456,BATCH-20260413,LAM-A01,R4C3,AOI-前贴附#1,2026-04-13 11:36:00.850376,划痕,轻微,1.29,282.3,155.0,340.0,11,白班,2026-04-13
+D00207,PANEL-0269,BATCH-20260423,LAM-A02,R2C3,AOI-前贴附#1,2026-04-23 13:32:41.994845,暗点,中等,2.26,311.93,155.0,340.0,13,白班,2026-04-23
+D00208,PANEL-0119,BATCH-20260407,LAM-A01,R1C2,AOI-前贴附#2,2026-04-07 08:11:46.800755,漏光,中等,14.95,200.58,155.0,340.0,8,白班,2026-04-07
+D00209,PANEL-0299,BATCH-20260410,LAM-A01,R1C4,AOI-前贴附#1,2026-04-10 14:05:08.222759,划痕,中等,3.72,87.15,155.0,340.0,14,白班,2026-04-10
+D00210,PANEL-0188,BATCH-20260401,LAM-B01,R2C2,AOI-后段全检,2026-04-01 23:40:34.192685,色差,轻微,2.86,266.54,155.0,340.0,23,夜班,2026-04-01
+D00211,PANEL-0057,BATCH-20260421,LAM-A01,R2C4,AOI-前贴附#2,2026-04-21 16:36:36.911274,暗点,轻微,12.41,123.52,155.0,340.0,16,白班,2026-04-21
+D00212,PANEL-0199,BATCH-20260414,LAM-A01,R2C4,AOI-后段全检,2026-04-14 06:52:46.776711,暗点,中等,5.75,124.29,155.0,340.0,6,夜班,2026-04-14
+D00213,PANEL-0017,BATCH-20260416,LAM-A01,R3C4,AOI-后段全检,2026-04-16 10:41:51.389262,暗点,轻微,10.09,29.54,155.0,340.0,10,白班,2026-04-16
+D00214,PANEL-0434,BATCH-20260404,LAM-A02,R4C4,AOI-后段全检,2026-04-04 16:54:51.570571,漏光,轻微,4.36,184.61,155.0,340.0,16,白班,2026-04-04
+D00215,PANEL-0288,BATCH-20260423,LAM-A02,R4C3,AOI-前贴附#1,2026-04-23 21:28:44.718604,划痕,轻微,10.34,126.8,155.0,340.0,21,夜班,2026-04-23
+D00216,PANEL-0406,BATCH-20260424,LAM-A01,R1C5,AOI-后段全检,2026-04-24 03:16:28.555264,划痕,轻微,0.24,288.27,155.0,340.0,3,夜班,2026-04-24
+D00217,PANEL-0055,BATCH-20260424,LAM-A01,R3C4,AOI-前贴附#1,2026-04-24 05:45:15.934597,漏光,中等,5.45,58.62,155.0,340.0,5,夜班,2026-04-24
+D00218,PANEL-0499,BATCH-20260426,LAM-A02,R1C4,AOI-前贴附#1,2026-04-26 14:58:28.930337,气泡,中等,4.34,119.03,155.0,340.0,14,白班,2026-04-26
+D00219,PANEL-0441,BATCH-20260421,LAM-A01,R4C5,AOI-前贴附#2,2026-04-21 16:37:44.604988,划痕,轻微,8.98,116.47,155.0,340.0,16,白班,2026-04-21
+D00220,PANEL-0269,BATCH-20260407,LAM-B01,R3C4,AOI-前贴附#1,2026-04-07 21:06:19.894447,暗点,中等,5.22,47.69,155.0,340.0,21,夜班,2026-04-07
+D00221,PANEL-0303,BATCH-20260427,LAM-A01,R1C2,AOI-前贴附#1,2026-04-27 08:08:48.933953,暗点,中等,7.36,164.34,155.0,340.0,8,白班,2026-04-27
+D00222,PANEL-0087,BATCH-20260422,LAM-A02,R3C4,AOI-前贴附#1,2026-04-22 21:46:19.545420,亮点,轻微,0.2,226.34,155.0,340.0,21,夜班,2026-04-22
+D00223,PANEL-0318,BATCH-20260423,LAM-A02,R4C1,AOI-前贴附#1,2026-04-23 12:52:04.483930,划痕,严重,18.0,173.5,155.0,340.0,12,白班,2026-04-23
+D00224,PANEL-0438,BATCH-20260415,LAM-A01,R4C5,AOI-前贴附#2,2026-04-15 01:15:32.816869,气泡,轻微,2.0,67.09,155.0,340.0,1,夜班,2026-04-15
+D00225,PANEL-0029,BATCH-20260407,LAM-A01,R2C1,AOI-前贴附#1,2026-04-07 08:01:58.887827,划痕,严重,14.01,133.19,155.0,340.0,8,白班,2026-04-07
+D00226,PANEL-0022,BATCH-20260405,LAM-A01,R1C4,AOI-前贴附#2,2026-04-05 12:58:25.604758,色差,中等,8.75,20.78,155.0,340.0,12,白班,2026-04-05
+D00227,PANEL-0321,BATCH-20260416,LAM-A01,R3C5,AOI-后段全检,2026-04-16 09:28:39.904139,色差,严重,8.7,280.49,155.0,340.0,9,白班,2026-04-16
+D00228,PANEL-0285,BATCH-20260425,LAM-A02,R1C1,AOI-前贴附#2,2026-04-25 12:59:02.113566,亮点,轻微,9.77,45.36,155.0,340.0,12,白班,2026-04-25
+D00229,PANEL-0048,BATCH-20260413,LAM-A01,R2C2,AOI-前贴附#2,2026-04-13 08:33:17.704381,划痕,中等,12.83,315.88,155.0,340.0,8,白班,2026-04-13
+D00230,PANEL-0005,BATCH-20260413,LAM-A01,R3C2,AOI-后段全检,2026-04-13 10:05:43.365846,划痕,轻微,5.45,180.98,155.0,340.0,10,白班,2026-04-13
+D00231,PANEL-0250,BATCH-20260420,LAM-A01,R2C5,AOI-前贴附#1,2026-04-20 10:37:26.964944,亮点,轻微,14.05,297.21,155.0,340.0,10,白班,2026-04-20
+D00232,PANEL-0163,BATCH-20260401,LAM-A01,R1C5,AOI-前贴附#2,2026-04-01 10:51:05.419142,气泡,轻微,7.24,90.83,155.0,340.0,10,白班,2026-04-01
+D00233,PANEL-0202,BATCH-20260402,LAM-A02,R4C3,AOI-后段全检,2026-04-02 13:43:32.461205,亮点,轻微,6.13,247.99,155.0,340.0,13,白班,2026-04-02
+D00234,PANEL-0467,BATCH-20260415,LAM-A01,R2C5,AOI-后段全检,2026-04-15 11:18:58.117174,暗点,轻微,1.54,179.38,155.0,340.0,11,白班,2026-04-15
+D00235,PANEL-0101,BATCH-20260406,LAM-A02,R3C2,AOI-前贴附#2,2026-04-06 16:39:36.329780,亮点,轻微,4.17,236.15,155.0,340.0,16,白班,2026-04-06
+D00236,PANEL-0071,BATCH-20260423,LAM-A01,R2C2,AOI-前贴附#1,2026-04-23 06:06:06.228212,亮点,中等,10.11,38.7,155.0,340.0,6,夜班,2026-04-23
+D00237,PANEL-0430,BATCH-20260417,LAM-A01,R4C3,AOI-后段全检,2026-04-17 10:16:27.513587,划痕,中等,1.46,64.32,155.0,340.0,10,白班,2026-04-17
+D00238,PANEL-0163,BATCH-20260430,LAM-A02,R2C5,AOI-前贴附#1,2026-04-30 12:40:08.804629,划痕,中等,3.71,226.15,155.0,340.0,12,白班,2026-04-30
+D00239,PANEL-0173,BATCH-20260430,LAM-A01,R3C2,AOI-前贴附#1,2026-04-30 12:21:58.211288,划痕,中等,12.2,273.33,155.0,340.0,12,白班,2026-04-30
+D00240,PANEL-0141,BATCH-20260408,LAM-A01,R4C2,AOI-前贴附#1,2026-04-08 03:56:10.653588,亮点,轻微,16.91,244.88,155.0,340.0,3,夜班,2026-04-08
+D00241,PANEL-0138,BATCH-20260402,LAM-A02,R2C2,AOI-前贴附#2,2026-04-02 14:19:44.360488,漏光,中等,4.61,29.14,155.0,340.0,14,白班,2026-04-02
+D00242,PANEL-0066,BATCH-20260414,LAM-A02,R2C4,AOI-前贴附#2,2026-04-14 12:02:30.905903,色差,轻微,0.26,280.16,155.0,340.0,12,白班,2026-04-14
+D00243,PANEL-0198,BATCH-20260403,LAM-A01,R4C4,AOI-后段全检,2026-04-03 09:33:44.951725,划痕,严重,6.28,126.24,155.0,340.0,9,白班,2026-04-03
+D00244,PANEL-0328,BATCH-20260422,LAM-B01,R2C3,AOI-前贴附#2,2026-04-22 20:17:53.512738,划痕,中等,8.92,139.15,155.0,340.0,20,夜班,2026-04-22
+D00245,PANEL-0228,BATCH-20260422,LAM-A01,R1C2,AOI-前贴附#1,2026-04-22 11:37:20.625389,划痕,中等,10.89,51.46,155.0,340.0,11,白班,2026-04-22
+D00246,PANEL-0281,BATCH-20260402,LAM-A02,R4C3,AOI-前贴附#2,2026-04-02 16:05:09.778216,亮点,轻微,18.67,241.22,155.0,340.0,16,白班,2026-04-02
+D00247,PANEL-0172,BATCH-20260411,LAM-A02,R3C3,AOI-前贴附#2,2026-04-11 15:45:39.661873,亮点,严重,9.13,74.69,155.0,340.0,15,白班,2026-04-11
+D00248,PANEL-0316,BATCH-20260428,LAM-A02,R4C4,AOI-前贴附#2,2026-04-28 16:25:06.593368,亮点,轻微,16.28,189.19,155.0,340.0,16,白班,2026-04-28
+D00249,PANEL-0431,BATCH-20260426,LAM-A02,R1C2,AOI-后段全检,2026-04-26 14:03:15.679752,划痕,轻微,5.69,272.21,155.0,340.0,14,白班,2026-04-26
+D00250,PANEL-0040,BATCH-20260404,LAM-A01,R3C2,AOI-后段全检,2026-04-04 08:57:39.648177,划痕,中等,8.43,46.76,155.0,340.0,8,白班,2026-04-04
+D00251,PANEL-0007,BATCH-20260418,LAM-A01,R3C5,AOI-前贴附#2,2026-04-18 11:21:31.269994,划痕,中等,5.04,180.6,155.0,340.0,11,白班,2026-04-18
+D00252,PANEL-0174,BATCH-20260413,LAM-A02,R2C1,AOI-前贴附#1,2026-04-13 13:20:52.479145,划痕,轻微,4.6,89.96,155.0,340.0,13,白班,2026-04-13
+D00253,PANEL-0151,BATCH-20260411,LAM-A02,R1C5,AOI-前贴附#2,2026-04-11 15:56:37.383692,色差,中等,6.68,122.88,155.0,340.0,15,白班,2026-04-11
+D00254,PANEL-0211,BATCH-20260421,LAM-A01,R4C3,AOI-后段全检,2026-04-21 07:39:04.239702,划痕,轻微,6.6,162.19,155.0,340.0,7,夜班,2026-04-21
+D00255,PANEL-0302,BATCH-20260401,LAM-A02,R1C3,AOI-前贴附#1,2026-04-01 14:46:33.348353,亮点,中等,4.98,126.53,155.0,340.0,14,白班,2026-04-01
+D00256,PANEL-0086,BATCH-20260412,LAM-A02,R2C5,AOI-后段全检,2026-04-12 17:43:37.496009,暗点,轻微,5.25,214.65,155.0,340.0,17,夜班,2026-04-12
+D00257,PANEL-0397,BATCH-20260411,LAM-A01,R1C3,AOI-前贴附#1,2026-04-11 13:38:58.427131,漏光,中等,13.48,163.87,155.0,340.0,13,白班,2026-04-11
+D00258,PANEL-0253,BATCH-20260412,LAM-A01,R3C2,AOI-前贴附#2,2026-04-12 10:58:43.417295,漏光,严重,18.57,195.26,155.0,340.0,10,白班,2026-04-12
+D00259,PANEL-0021,BATCH-20260419,LAM-A01,R4C1,AOI-前贴附#2,2026-04-19 15:36:00.894462,色差,中等,5.51,241.05,155.0,340.0,15,白班,2026-04-19
+D00260,PANEL-0257,BATCH-20260426,LAM-A01,R4C2,AOI-前贴附#2,2026-04-26 11:37:48.533147,划痕,中等,6.38,187.32,155.0,340.0,11,白班,2026-04-26
+D00261,PANEL-0379,BATCH-20260417,LAM-A01,R2C2,AOI-后段全检,2026-04-17 07:29:08.390751,暗点,严重,10.62,195.96,155.0,340.0,7,夜班,2026-04-17
+D00262,PANEL-0403,BATCH-20260410,LAM-A01,R3C3,AOI-前贴附#1,2026-04-10 09:17:18.223230,色差,严重,23.94,189.34,155.0,340.0,9,白班,2026-04-10
+D00263,PANEL-0381,BATCH-20260413,LAM-A02,R1C2,AOI-前贴附#1,2026-04-13 13:47:58.633812,划痕,轻微,8.42,133.63,155.0,340.0,13,白班,2026-04-13
+D00264,PANEL-0444,BATCH-20260422,LAM-A01,R1C4,AOI-前贴附#2,2026-04-22 08:38:47.741141,暗点,严重,12.86,121.23,155.0,340.0,8,白班,2026-04-22
+D00265,PANEL-0033,BATCH-20260412,LAM-A01,R2C5,AOI-前贴附#1,2026-04-12 10:06:23.205334,漏光,严重,15.72,289.89,155.0,340.0,10,白班,2026-04-12
+D00266,PANEL-0260,BATCH-20260419,LAM-A01,R2C2,AOI-前贴附#2,2026-04-19 00:38:17.127597,亮点,轻微,9.72,202.27,155.0,340.0,0,夜班,2026-04-19
+D00267,PANEL-0234,BATCH-20260426,LAM-B01,R5C1,AOI-前贴附#1,2026-04-26 22:59:48.713982,划痕,严重,12.63,93.31,155.0,340.0,22,夜班,2026-04-26
+D00268,PANEL-0003,BATCH-20260423,LAM-A02,R2C1,AOI-前贴附#1,2026-04-23 14:15:19.458710,划痕,轻微,11.04,169.47,155.0,340.0,14,白班,2026-04-23
+D00269,PANEL-0347,BATCH-20260405,LAM-A01,R1C5,AOI-前贴附#2,2026-04-05 12:40:53.753497,亮点,中等,13.16,119.1,155.0,340.0,12,白班,2026-04-05
+D00270,PANEL-0308,BATCH-20260429,LAM-A02,R2C5,AOI-前贴附#2,2026-04-29 14:36:59.283550,划痕,中等,2.83,300.11,155.0,340.0,14,白班,2026-04-29
+D00271,PANEL-0489,BATCH-20260414,LAM-A01,R3C3,AOI-前贴附#1,2026-04-14 13:00:31.540791,气泡,轻微,9.02,22.26,155.0,340.0,13,白班,2026-04-14
+D00272,PANEL-0227,BATCH-20260420,LAM-A01,R4C4,AOI-前贴附#1,2026-04-20 02:49:38.264403,气泡,轻微,10.41,87.6,155.0,340.0,2,夜班,2026-04-20
+D00273,PANEL-0284,BATCH-20260407,LAM-A01,R2C1,AOI-前贴附#1,2026-04-07 15:45:46.467701,划痕,严重,10.34,129.61,155.0,340.0,15,白班,2026-04-07
+D00274,PANEL-0070,BATCH-20260414,LAM-A02,R1C3,AOI-前贴附#2,2026-04-14 14:46:39.356671,漏光,严重,13.69,166.34,155.0,340.0,14,白班,2026-04-14
+D00275,PANEL-0454,BATCH-20260425,LAM-A01,R1C4,AOI-前贴附#1,2026-04-25 15:13:38.338413,亮点,轻微,10.23,275.25,155.0,340.0,15,白班,2026-04-25
+D00276,PANEL-0439,BATCH-20260403,LAM-A01,R1C5,AOI-前贴附#2,2026-04-03 04:42:11.978613,划痕,严重,2.28,46.37,155.0,340.0,4,夜班,2026-04-03
+D00277,PANEL-0313,BATCH-20260425,LAM-A02,R4C1,AOI-前贴附#2,2026-04-25 13:43:36.251533,气泡,严重,10.96,261.76,155.0,340.0,13,白班,2026-04-25
+D00278,PANEL-0364,BATCH-20260414,LAM-B01,R1C3,AOI-前贴附#2,2026-04-14 22:45:29.637838,色差,严重,3.58,36.7,155.0,340.0,22,夜班,2026-04-14
+D00279,PANEL-0471,BATCH-20260424,LAM-A01,R3C2,AOI-前贴附#1,2026-04-24 12:59:22.218795,暗点,严重,4.5,272.69,155.0,340.0,12,白班,2026-04-24
+D00280,PANEL-0254,BATCH-20260424,LAM-A01,R2C3,AOI-前贴附#2,2026-04-24 03:45:11.145406,色差,轻微,5.91,35.49,155.0,340.0,3,夜班,2026-04-24
+D00281,PANEL-0481,BATCH-20260405,LAM-A01,R1C4,AOI-后段全检,2026-04-05 12:48:23.213742,气泡,中等,7.44,25.47,155.0,340.0,12,白班,2026-04-05
+D00282,PANEL-0144,BATCH-20260409,LAM-A02,R3C4,AOI-前贴附#1,2026-04-09 16:54:40.524339,漏光,中等,0.28,229.09,155.0,340.0,16,白班,2026-04-09
+D00283,PANEL-0024,BATCH-20260425,LAM-A01,R2C1,AOI-前贴附#1,2026-04-25 15:37:24.382022,亮点,中等,13.58,319.18,155.0,340.0,15,白班,2026-04-25
+D00284,PANEL-0453,BATCH-20260419,LAM-A02,R1C4,AOI-前贴附#2,2026-04-19 22:04:05.642270,气泡,轻微,2.22,288.98,155.0,340.0,22,夜班,2026-04-19
+D00285,PANEL-0425,BATCH-20260424,LAM-A01,R2C3,AOI-前贴附#1,2026-04-24 10:54:39.065127,异物,轻微,15.85,192.8,155.0,340.0,10,白班,2026-04-24
+D00286,PANEL-0234,BATCH-20260413,LAM-A01,R1C3,AOI-前贴附#2,2026-04-13 13:20:56.907972,气泡,轻微,2.38,295.22,155.0,340.0,13,白班,2026-04-13
+D00287,PANEL-0333,BATCH-20260423,LAM-A01,R2C4,AOI-后段全检,2026-04-23 14:15:03.585666,划痕,轻微,14.41,21.59,155.0,340.0,14,白班,2026-04-23
+D00288,PANEL-0175,BATCH-20260404,LAM-A01,R1C2,AOI-前贴附#2,2026-04-04 02:47:01.744131,暗点,中等,134.21,333.3,155.0,340.0,2,夜班,2026-04-04
+D00289,PANEL-0332,BATCH-20260425,LAM-A01,R3C3,AOI-前贴附#2,2026-04-25 07:24:04.474383,暗点,严重,135.74,298.92,155.0,340.0,7,夜班,2026-04-25
+D00290,PANEL-0325,BATCH-20260429,LAM-B01,R1C2,AOI-前贴附#2,2026-04-29 20:49:21.431887,划痕,严重,144.23,327.52,155.0,340.0,20,夜班,2026-04-29
+D00291,PANEL-0357,BATCH-20260427,LAM-B01,R3C3,AOI-前贴附#1,2026-04-27 23:23:25.293612,异物,严重,141.66,304.36,155.0,340.0,23,夜班,2026-04-27
+D00292,PANEL-0159,BATCH-20260424,LAM-A02,R3C5,AOI-前贴附#1,2026-04-24 23:21:15.761688,划痕,轻微,152.96,316.08,155.0,340.0,23,夜班,2026-04-24
+D00293,PANEL-0348,BATCH-20260401,LAM-A01,R1C3,AOI-后段全检,2026-04-01 12:02:55.520172,划痕,中等,147.46,322.02,155.0,340.0,12,白班,2026-04-01
+D00294,PANEL-0348,BATCH-20260415,LAM-A01,R1C3,AOI-后段全检,2026-04-15 11:32:27.260642,漏光,轻微,133.91,326.19,155.0,340.0,11,白班,2026-04-15
+D00295,PANEL-0286,BATCH-20260410,LAM-B01,R3C4,AOI-前贴附#2,2026-04-10 17:13:04.614268,亮点,中等,135.48,291.05,155.0,340.0,17,夜班,2026-04-10
+D00296,PANEL-0018,BATCH-20260427,LAM-A02,R1C5,AOI-后段全检,2026-04-27 15:19:52.653229,划痕,中等,131.98,310.24,155.0,340.0,15,白班,2026-04-27
+D00297,PANEL-0044,BATCH-20260426,LAM-A01,R4C5,AOI-前贴附#1,2026-04-26 09:13:07.449223,暗点,轻微,142.24,335.65,155.0,340.0,9,白班,2026-04-26
+D00298,PANEL-0155,BATCH-20260413,LAM-A01,R2C2,AOI-前贴附#1,2026-04-13 09:10:42.080974,暗点,轻微,118.07,333.02,155.0,340.0,9,白班,2026-04-13
+D00299,PANEL-0355,BATCH-20260410,LAM-A01,R3C3,AOI-前贴附#1,2026-04-10 13:02:06.103313,划痕,中等,136.33,324.25,155.0,340.0,13,白班,2026-04-10
+D00300,PANEL-0410,BATCH-20260401,LAM-A01,R3C3,AOI-前贴附#1,2026-04-01 16:23:43.483616,异物,轻微,137.55,299.76,155.0,340.0,16,白班,2026-04-01
+D00301,PANEL-0377,BATCH-20260422,LAM-A01,R3C2,AOI-后段全检,2026-04-22 10:09:14.474515,暗点,轻微,127.81,328.78,155.0,340.0,10,白班,2026-04-22
+D00302,PANEL-0231,BATCH-20260416,LAM-A01,R3C3,AOI-后段全检,2026-04-16 10:14:17.117771,暗点,轻微,146.38,330.7,155.0,340.0,10,白班,2026-04-16
+D00303,PANEL-0497,BATCH-20260401,LAM-A01,R2C5,AOI-后段全检,2026-04-01 11:47:06.294786,暗点,轻微,130.89,320.71,155.0,340.0,11,白班,2026-04-01
+D00304,PANEL-0371,BATCH-20260429,LAM-A01,R2C3,AOI-前贴附#2,2026-04-29 12:01:04.602896,气泡,轻微,142.14,338.35,155.0,340.0,12,白班,2026-04-29
+D00305,PANEL-0316,BATCH-20260412,LAM-A02,R4C1,AOI-前贴附#1,2026-04-12 14:17:06.627573,划痕,中等,127.11,312.35,155.0,340.0,14,白班,2026-04-12
+D00306,PANEL-0402,BATCH-20260422,LAM-B01,R4C1,AOI-前贴附#1,2026-04-22 22:57:59.625709,划痕,严重,138.81,282.73,155.0,340.0,22,夜班,2026-04-22
+D00307,PANEL-0225,BATCH-20260405,LAM-A01,R1C3,AOI-前贴附#1,2026-04-05 10:00:44.385398,暗点,轻微,136.74,333.8,155.0,340.0,10,白班,2026-04-05
+D00308,PANEL-0217,BATCH-20260418,LAM-A01,R1C3,AOI-前贴附#2,2026-04-18 09:49:07.820289,色差,严重,135.18,324.71,155.0,340.0,9,白班,2026-04-18
+D00309,PANEL-0056,BATCH-20260418,LAM-A01,R1C5,AOI-前贴附#2,2026-04-18 03:11:42.053258,划痕,轻微,146.08,294.77,155.0,340.0,3,夜班,2026-04-18
+D00310,PANEL-0031,BATCH-20260412,LAM-A02,R3C1,AOI-后段全检,2026-04-12 12:25:20.575668,暗点,轻微,148.85,293.62,155.0,340.0,12,白班,2026-04-12
+D00311,PANEL-0357,BATCH-20260412,LAM-A01,R2C2,AOI-后段全检,2026-04-12 07:00:43.373199,色差,中等,146.17,306.91,155.0,340.0,7,夜班,2026-04-12
+D00312,PANEL-0059,BATCH-20260420,LAM-A01,R2C5,AOI-前贴附#1,2026-04-20 12:12:10.702580,划痕,轻微,134.21,331.9,155.0,340.0,12,白班,2026-04-20
+D00313,PANEL-0380,BATCH-20260415,LAM-B01,R5C4,AOI-前贴附#1,2026-04-15 21:51:23.582922,划痕,中等,125.84,307.93,155.0,340.0,21,夜班,2026-04-15
+D00314,PANEL-0386,BATCH-20260414,LAM-B01,R1C3,AOI-前贴附#2,2026-04-14 22:30:22.197916,亮点,轻微,131.74,304.91,155.0,340.0,22,夜班,2026-04-14
+D00315,PANEL-0353,BATCH-20260416,LAM-A01,R2C3,AOI-前贴附#1,2026-04-16 04:50:04.792654,气泡,中等,141.36,304.24,155.0,340.0,4,夜班,2026-04-16
+D00316,PANEL-0423,BATCH-20260425,LAM-A01,R3C1,AOI-前贴附#2,2026-04-25 16:25:03.933534,划痕,中等,140.72,290.99,155.0,340.0,16,白班,2026-04-25
+D00317,PANEL-0445,BATCH-20260404,LAM-A01,R2C2,AOI-前贴附#2,2026-04-04 13:55:29.298772,亮点,中等,143.9,301.89,155.0,340.0,13,白班,2026-04-04
+D00318,PANEL-0235,BATCH-20260428,LAM-A01,R1C2,AOI-前贴附#1,2026-04-28 14:56:00.240514,暗点,轻微,152.64,303.94,155.0,340.0,14,白班,2026-04-28
+D00319,PANEL-0107,BATCH-20260419,LAM-A02,R2C4,AOI-前贴附#2,2026-04-19 14:00:06.909089,暗点,轻微,139.04,330.24,155.0,340.0,14,白班,2026-04-19
+D00320,PANEL-0191,BATCH-20260430,LAM-A01,R4C5,AOI-前贴附#2,2026-04-30 13:45:34.302681,划痕,轻微,140.91,317.51,155.0,340.0,13,白班,2026-04-30
+D00321,PANEL-0480,BATCH-20260423,LAM-A01,R1C2,AOI-后段全检,2026-04-23 09:26:18.238667,亮点,严重,135.24,307.62,155.0,340.0,9,白班,2026-04-23
+D00322,PANEL-0018,BATCH-20260425,LAM-A01,R4C3,AOI-前贴附#1,2026-04-25 10:30:02.082297,色差,中等,137.45,310.04,155.0,340.0,10,白班,2026-04-25
+D00323,PANEL-0401,BATCH-20260402,LAM-A02,R3C2,AOI-后段全检,2026-04-02 13:58:42.000135,裂纹,中等,137.45,337.51,155.0,340.0,13,白班,2026-04-02
+D00324,PANEL-0226,BATCH-20260418,LAM-A01,R2C2,AOI-前贴附#2,2026-04-18 10:26:46.029209,漏光,中等,148.28,296.45,155.0,340.0,10,白班,2026-04-18
+D00325,PANEL-0167,BATCH-20260414,LAM-A01,R4C2,AOI-前贴附#2,2026-04-14 16:39:39.735898,暗点,轻微,122.34,321.11,155.0,340.0,16,白班,2026-04-14
+D00326,PANEL-0071,BATCH-20260429,LAM-A01,R3C1,AOI-前贴附#1,2026-04-29 14:52:46.523486,亮点,中等,142.89,312.24,155.0,340.0,14,白班,2026-04-29
+D00327,PANEL-0362,BATCH-20260402,LAM-A02,R3C4,AOI-前贴附#2,2026-04-02 12:45:29.866537,亮点,轻微,137.84,311.02,155.0,340.0,12,白班,2026-04-02
+D00328,PANEL-0054,BATCH-20260414,LAM-B01,R2C2,AOI-前贴附#2,2026-04-14 18:02:58.882216,划痕,中等,147.58,328.33,155.0,340.0,18,夜班,2026-04-14
+D00329,PANEL-0245,BATCH-20260428,LAM-A01,R1C2,AOI-前贴附#2,2026-04-28 04:25:50.983271,划痕,中等,138.0,310.66,155.0,340.0,4,夜班,2026-04-28
+D00330,PANEL-0483,BATCH-20260429,LAM-A01,R4C5,AOI-前贴附#2,2026-04-29 11:06:10.257404,气泡,中等,150.41,312.56,155.0,340.0,11,白班,2026-04-29
+D00331,PANEL-0350,BATCH-20260427,LAM-A01,R3C5,AOI-前贴附#2,2026-04-27 08:11:01.942921,划痕,轻微,134.59,317.48,155.0,340.0,8,白班,2026-04-27
+D00332,PANEL-0076,BATCH-20260418,LAM-A02,R4C2,AOI-后段全检,2026-04-18 13:49:33.078849,划痕,严重,122.16,314.4,155.0,340.0,13,白班,2026-04-18
+D00333,PANEL-0035,BATCH-20260425,LAM-A02,R2C3,AOI-前贴附#1,2026-04-25 22:19:28.924502,异物,中等,148.41,302.4,155.0,340.0,22,夜班,2026-04-25
+D00334,PANEL-0267,BATCH-20260403,LAM-A01,R4C2,AOI-后段全检,2026-04-03 15:37:08.199458,划痕,中等,133.25,331.94,155.0,340.0,15,白班,2026-04-03
+D00335,PANEL-0317,BATCH-20260423,LAM-A02,R1C1,AOI-前贴附#1,2026-04-23 13:39:59.648734,划痕,严重,127.36,335.73,155.0,340.0,13,白班,2026-04-23
+D00336,PANEL-0300,BATCH-20260422,LAM-A01,R4C3,AOI-后段全检,2026-04-22 10:32:47.103478,划痕,中等,140.13,325.15,155.0,340.0,10,白班,2026-04-22
+D00337,PANEL-0121,BATCH-20260428,LAM-A01,R3C5,AOI-后段全检,2026-04-28 08:17:45.385588,暗点,轻微,138.09,314.35,155.0,340.0,8,白班,2026-04-28
+D00338,PANEL-0324,BATCH-20260419,LAM-A01,R2C2,AOI-前贴附#1,2026-04-19 12:21:02.377803,暗点,轻微,146.58,309.42,155.0,340.0,12,白班,2026-04-19
+D00339,PANEL-0025,BATCH-20260408,LAM-A02,R2C1,AOI-前贴附#2,2026-04-08 14:22:13.804744,亮点,中等,147.14,309.45,155.0,340.0,14,白班,2026-04-08
+D00340,PANEL-0432,BATCH-20260421,LAM-A02,R1C5,AOI-前贴附#2,2026-04-21 12:30:55.653379,暗点,严重,132.92,334.07,155.0,340.0,12,白班,2026-04-21
+D00341,PANEL-0160,BATCH-20260430,LAM-A01,R4C4,AOI-前贴附#1,2026-04-30 03:08:25.361850,色差,严重,142.3,307.4,155.0,340.0,3,夜班,2026-04-30
+D00342,PANEL-0084,BATCH-20260412,LAM-A01,R2C5,AOI-前贴附#2,2026-04-12 09:48:44.300322,色差,中等,141.32,322.47,155.0,340.0,9,白班,2026-04-12
+D00343,PANEL-0114,BATCH-20260424,LAM-A02,R2C5,AOI-前贴附#1,2026-04-24 22:27:07.163678,裂纹,中等,144.55,314.56,155.0,340.0,22,夜班,2026-04-24
+D00344,PANEL-0223,BATCH-20260405,LAM-A01,R4C1,AOI-后段全检,2026-04-05 10:36:07.917192,漏光,中等,133.0,328.76,155.0,340.0,10,白班,2026-04-05
+D00345,PANEL-0388,BATCH-20260421,LAM-B01,R5C2,AOI-后段全检,2026-04-21 17:22:40.659764,暗点,中等,136.8,328.15,155.0,340.0,17,夜班,2026-04-21
+D00346,PANEL-0166,BATCH-20260419,LAM-A01,R1C1,AOI-前贴附#2,2026-04-19 14:14:45.700104,划痕,中等,144.08,336.25,155.0,340.0,14,白班,2026-04-19
+D00347,PANEL-0191,BATCH-20260429,LAM-A01,R4C1,AOI-前贴附#2,2026-04-29 02:04:02.986249,划痕,轻微,149.98,307.24,155.0,340.0,2,夜班,2026-04-29
+D00348,PANEL-0175,BATCH-20260405,LAM-A02,R2C1,AOI-前贴附#2,2026-04-05 12:29:52.387332,划痕,中等,147.73,321.57,155.0,340.0,12,白班,2026-04-05
+D00349,PANEL-0001,BATCH-20260413,LAM-A01,R1C3,AOI-前贴附#1,2026-04-13 00:20:26.897400,气泡,轻微,140.66,293.77,155.0,340.0,0,夜班,2026-04-13
+D00350,PANEL-0387,BATCH-20260427,LAM-A02,R1C2,AOI-前贴附#2,2026-04-27 15:27:37.141580,色差,中等,136.1,301.14,155.0,340.0,15,白班,2026-04-27
+D00351,PANEL-0229,BATCH-20260410,LAM-A01,R3C3,AOI-前贴附#2,2026-04-10 08:41:03.970227,暗点,轻微,143.23,333.26,155.0,340.0,8,白班,2026-04-10
+D00352,PANEL-0086,BATCH-20260417,LAM-A01,R4C1,AOI-后段全检,2026-04-17 14:43:44.445310,划痕,中等,131.27,305.74,155.0,340.0,14,白班,2026-04-17
+D00353,PANEL-0062,BATCH-20260424,LAM-A01,R1C5,AOI-前贴附#2,2026-04-24 14:54:06.734573,暗点,轻微,133.46,307.39,155.0,340.0,14,白班,2026-04-24
+D00354,PANEL-0320,BATCH-20260413,LAM-A01,R2C2,AOI-前贴附#2,2026-04-13 14:40:56.588385,裂纹,中等,152.08,319.88,155.0,340.0,14,白班,2026-04-13
+D00355,PANEL-0401,BATCH-20260406,LAM-A01,R3C3,AOI-前贴附#2,2026-04-06 08:31:28.695336,暗点,轻微,143.22,330.42,155.0,340.0,8,白班,2026-04-06
+D00356,PANEL-0382,BATCH-20260429,LAM-A02,R3C3,AOI-前贴附#1,2026-04-29 12:09:12.945135,色差,中等,137.22,304.09,155.0,340.0,12,白班,2026-04-29
+D00357,PANEL-0206,BATCH-20260416,LAM-A02,R2C2,AOI-前贴附#2,2026-04-16 23:09:21.358262,色差,轻微,146.63,267.79,155.0,340.0,23,夜班,2026-04-16
+D00358,PANEL-0105,BATCH-20260406,LAM-A01,R2C5,AOI-前贴附#2,2026-04-06 08:37:18.503266,裂纹,严重,150.3,306.95,155.0,340.0,8,白班,2026-04-06
+D00359,PANEL-0318,BATCH-20260405,LAM-A01,R2C1,AOI-前贴附#1,2026-04-05 13:49:11.300799,色差,严重,136.44,338.08,155.0,340.0,13,白班,2026-04-05
+D00360,PANEL-0291,BATCH-20260407,LAM-A01,R1C2,AOI-前贴附#2,2026-04-07 15:59:31.101744,气泡,轻微,136.58,325.15,155.0,340.0,15,白班,2026-04-07
+D00361,PANEL-0250,BATCH-20260412,LAM-A01,R3C5,AOI-前贴附#2,2026-04-12 11:33:50.643264,划痕,中等,135.58,339.86,155.0,340.0,11,白班,2026-04-12
+D00362,PANEL-0013,BATCH-20260430,LAM-A02,R4C1,AOI-前贴附#2,2026-04-30 16:38:54.322063,划痕,轻微,147.71,303.02,155.0,340.0,16,白班,2026-04-30
+D00363,PANEL-0163,BATCH-20260424,LAM-A02,R4C4,AOI-前贴附#2,2026-04-24 17:51:26.355847,暗点,中等,147.79,295.41,155.0,340.0,17,夜班,2026-04-24
+D00364,PANEL-0043,BATCH-20260409,LAM-A01,R2C4,AOI-前贴附#2,2026-04-09 08:07:37.567868,划痕,严重,151.09,326.94,155.0,340.0,8,白班,2026-04-09
+D00365,PANEL-0386,BATCH-20260404,LAM-A01,R4C4,AOI-前贴附#2,2026-04-04 05:47:48.164395,异物,轻微,148.07,323.6,155.0,340.0,5,夜班,2026-04-04
+D00366,PANEL-0440,BATCH-20260422,LAM-A01,R2C2,AOI-后段全检,2026-04-22 04:19:34.600238,划痕,中等,126.94,324.58,155.0,340.0,4,夜班,2026-04-22
+D00367,PANEL-0111,BATCH-20260405,LAM-A02,R1C3,AOI-前贴附#1,2026-04-05 15:27:34.040667,漏光,中等,142.25,333.99,155.0,340.0,15,白班,2026-04-05
+D00368,PANEL-0205,BATCH-20260410,LAM-A01,R4C5,AOI-后段全检,2026-04-10 08:59:38.458897,亮点,轻微,131.53,326.33,155.0,340.0,8,白班,2026-04-10
+D00369,PANEL-0384,BATCH-20260406,LAM-A01,R3C1,AOI-前贴附#2,2026-04-06 11:21:51.582114,亮点,轻微,135.9,326.08,155.0,340.0,11,白班,2026-04-06
+D00370,PANEL-0256,BATCH-20260427,LAM-A02,R2C1,AOI-前贴附#2,2026-04-27 17:38:43.055086,裂纹,严重,141.36,330.73,155.0,340.0,17,夜班,2026-04-27
+D00371,PANEL-0307,BATCH-20260413,LAM-A01,R3C1,AOI-前贴附#2,2026-04-13 00:09:40.457557,亮点,中等,146.68,327.54,155.0,340.0,0,夜班,2026-04-13
+D00372,PANEL-0438,BATCH-20260409,LAM-A01,R1C1,AOI-前贴附#1,2026-04-09 15:35:55.256556,亮点,轻微,132.87,332.86,155.0,340.0,15,白班,2026-04-09
+D00373,PANEL-0144,BATCH-20260412,LAM-A01,R2C2,AOI-前贴附#1,2026-04-12 11:42:02.834079,划痕,严重,121.4,335.13,155.0,340.0,11,白班,2026-04-12
+D00374,PANEL-0146,BATCH-20260417,LAM-A01,R2C1,AOI-前贴附#2,2026-04-17 11:26:38.992048,气泡,中等,138.38,327.21,155.0,340.0,11,白班,2026-04-17
+D00375,PANEL-0391,BATCH-20260430,LAM-A02,R1C2,AOI-前贴附#2,2026-04-30 14:10:30.719040,划痕,中等,140.38,314.45,155.0,340.0,14,白班,2026-04-30
+D00376,PANEL-0301,BATCH-20260420,LAM-A01,R1C4,AOI-前贴附#2,2026-04-20 08:39:34.076985,暗点,中等,154.26,307.5,155.0,340.0,8,白班,2026-04-20
+D00377,PANEL-0164,BATCH-20260405,LAM-A01,R3C5,AOI-前贴附#2,2026-04-05 15:20:48.594228,暗点,轻微,144.72,309.66,155.0,340.0,15,白班,2026-04-05
+D00378,PANEL-0169,BATCH-20260429,LAM-A02,R1C1,AOI-前贴附#1,2026-04-29 13:31:17.904155,气泡,轻微,141.73,327.42,155.0,340.0,13,白班,2026-04-29
+D00379,PANEL-0478,BATCH-20260415,LAM-A01,R1C3,AOI-前贴附#1,2026-04-15 05:22:26.717542,气泡,中等,143.54,326.27,155.0,340.0,5,夜班,2026-04-15
+D00380,PANEL-0298,BATCH-20260417,LAM-A02,R2C2,AOI-前贴附#2,2026-04-17 20:10:54.584261,暗点,轻微,142.0,326.01,155.0,340.0,20,夜班,2026-04-17
+D00381,PANEL-0233,BATCH-20260420,LAM-A01,R3C1,AOI-前贴附#1,2026-04-20 16:07:11.752410,亮点,轻微,130.88,316.61,155.0,340.0,16,白班,2026-04-20
+D00382,PANEL-0391,BATCH-20260404,LAM-B01,R5C4,AOI-前贴附#2,2026-04-04 23:14:55.188986,色差,轻微,129.27,320.05,155.0,340.0,23,夜班,2026-04-04
+D00383,PANEL-0271,BATCH-20260413,LAM-A01,R4C4,AOI-前贴附#1,2026-04-13 14:37:51.313042,亮点,严重,141.47,297.66,155.0,340.0,14,白班,2026-04-13
+D00384,PANEL-0060,BATCH-20260416,LAM-A01,R1C2,AOI-前贴附#2,2026-04-16 11:48:22.752289,暗点,轻微,140.8,320.37,155.0,340.0,11,白班,2026-04-16
+D00385,PANEL-0296,BATCH-20260427,LAM-B01,R3C4,AOI-前贴附#1,2026-04-27 23:32:05.979041,亮点,轻微,139.28,321.35,155.0,340.0,23,夜班,2026-04-27
+D00386,PANEL-0467,BATCH-20260425,LAM-A01,R2C5,AOI-前贴附#1,2026-04-25 11:02:32.151854,漏光,严重,146.25,331.3,155.0,340.0,11,白班,2026-04-25
+D00387,PANEL-0235,BATCH-20260416,LAM-A01,R1C5,AOI-前贴附#2,2026-04-16 09:11:06.192107,亮点,中等,135.3,323.2,155.0,340.0,9,白班,2026-04-16
+D00388,PANEL-0165,BATCH-20260423,LAM-A01,R1C2,AOI-前贴附#2,2026-04-23 16:05:03.265141,亮点,严重,138.93,324.0,155.0,340.0,16,白班,2026-04-23
+D00389,PANEL-0194,BATCH-20260413,LAM-A01,R1C2,AOI-前贴附#1,2026-04-13 05:09:55.043744,气泡,严重,148.57,313.98,155.0,340.0,5,夜班,2026-04-13
+D00390,PANEL-0234,BATCH-20260428,LAM-B01,R2C2,AOI-后段全检,2026-04-28 20:05:04.246174,暗点,轻微,135.34,328.07,155.0,340.0,20,夜班,2026-04-28
+D00391,PANEL-0368,BATCH-20260409,LAM-A01,R2C5,AOI-前贴附#1,2026-04-09 13:49:35.205588,划痕,轻微,146.82,320.72,155.0,340.0,13,白班,2026-04-09
+D00392,PANEL-0183,BATCH-20260405,LAM-A01,R4C3,AOI-前贴附#2,2026-04-05 05:12:38.667116,暗点,轻微,121.43,338.13,155.0,340.0,5,夜班,2026-04-05
+D00393,PANEL-0333,BATCH-20260406,LAM-A01,R3C2,AOI-前贴附#1,2026-04-06 05:02:02.466908,气泡,轻微,138.16,298.38,155.0,340.0,5,夜班,2026-04-06
+D00394,PANEL-0232,BATCH-20260415,LAM-A02,R4C2,AOI-前贴附#1,2026-04-15 16:35:25.230342,异物,中等,145.03,322.63,155.0,340.0,16,白班,2026-04-15
+D00395,PANEL-0361,BATCH-20260419,LAM-A01,R2C1,AOI-前贴附#2,2026-04-19 13:33:19.400905,暗点,轻微,150.16,326.13,155.0,340.0,13,白班,2026-04-19
+D00396,PANEL-0491,BATCH-20260412,LAM-A01,R4C1,AOI-前贴附#1,2026-04-12 06:47:16.862431,亮点,中等,133.45,317.2,155.0,340.0,6,夜班,2026-04-12
+D00397,PANEL-0107,BATCH-20260408,LAM-A02,R1C3,AOI-前贴附#2,2026-04-08 18:58:52.674107,划痕,中等,127.98,313.93,155.0,340.0,18,夜班,2026-04-08
+D00398,PANEL-0378,BATCH-20260427,LAM-A02,R1C5,AOI-前贴附#1,2026-04-27 16:56:29.490624,漏光,中等,137.91,314.56,155.0,340.0,16,白班,2026-04-27
+D00399,PANEL-0223,BATCH-20260411,LAM-A01,R3C4,AOI-前贴附#2,2026-04-11 06:56:09.854080,色差,中等,131.0,322.62,155.0,340.0,6,夜班,2026-04-11
+D00400,PANEL-0080,BATCH-20260418,LAM-B01,R4C1,AOI-前贴附#1,2026-04-18 17:44:19.379408,划痕,中等,138.81,292.85,155.0,340.0,17,夜班,2026-04-18
+D00401,PANEL-0234,BATCH-20260402,LAM-A02,R2C1,AOI-前贴附#1,2026-04-02 13:32:55.346678,划痕,中等,139.95,334.48,155.0,340.0,13,白班,2026-04-02
+D00402,PANEL-0381,BATCH-20260416,LAM-A01,R3C2,AOI-前贴附#1,2026-04-16 15:18:28.123240,气泡,中等,129.45,312.8,155.0,340.0,15,白班,2026-04-16
+D00403,PANEL-0184,BATCH-20260419,LAM-B01,R2C4,AOI-前贴附#2,2026-04-19 17:25:20.294428,亮点,中等,146.44,321.92,155.0,340.0,17,夜班,2026-04-19
+D00404,PANEL-0428,BATCH-20260402,LAM-A01,R1C5,AOI-前贴附#2,2026-04-02 10:58:36.269039,亮点,轻微,138.74,325.51,155.0,340.0,10,白班,2026-04-02
+D00405,PANEL-0185,BATCH-20260409,LAM-A01,R3C5,AOI-后段全检,2026-04-09 10:40:39.312655,划痕,中等,148.64,312.11,155.0,340.0,10,白班,2026-04-09
+D00406,PANEL-0134,BATCH-20260410,LAM-A01,R4C1,AOI-前贴附#2,2026-04-10 16:39:08.964032,划痕,轻微,125.24,318.03,155.0,340.0,16,白班,2026-04-10
+D00407,PANEL-0220,BATCH-20260429,LAM-A01,R1C1,AOI-前贴附#2,2026-04-29 04:49:24.018158,亮点,轻微,131.86,289.47,155.0,340.0,4,夜班,2026-04-29
+D00408,PANEL-0288,BATCH-20260428,LAM-A02,R1C5,AOI-前贴附#2,2026-04-28 14:33:42.868304,色差,轻微,144.13,330.98,155.0,340.0,14,白班,2026-04-28
+D00409,PANEL-0364,BATCH-20260424,LAM-A01,R4C5,AOI-前贴附#1,2026-04-24 12:21:19.270770,亮点,严重,133.61,336.2,155.0,340.0,12,白班,2026-04-24
+D00410,PANEL-0202,BATCH-20260418,LAM-A01,R3C3,AOI-前贴附#1,2026-04-18 15:38:08.691354,亮点,轻微,138.68,294.49,155.0,340.0,15,白班,2026-04-18
+D00411,PANEL-0370,BATCH-20260422,LAM-A01,R4C1,AOI-前贴附#2,2026-04-22 01:21:42.285041,亮点,轻微,140.01,313.9,155.0,340.0,1,夜班,2026-04-22
+D00412,PANEL-0146,BATCH-20260423,LAM-A01,R3C1,AOI-前贴附#2,2026-04-23 14:43:01.783607,亮点,轻微,141.27,301.55,155.0,340.0,14,白班,2026-04-23
+D00413,PANEL-0324,BATCH-20260428,LAM-A01,R1C2,AOI-前贴附#1,2026-04-28 14:28:29.762099,划痕,中等,134.58,317.33,155.0,340.0,14,白班,2026-04-28
+D00414,PANEL-0127,BATCH-20260415,LAM-A01,R2C1,AOI-前贴附#2,2026-04-15 08:47:13.110546,亮点,中等,141.19,329.73,155.0,340.0,8,白班,2026-04-15
+D00415,PANEL-0457,BATCH-20260421,LAM-A01,R2C1,AOI-前贴附#2,2026-04-21 05:28:29.832543,气泡,轻微,133.74,334.81,155.0,340.0,5,夜班,2026-04-21
+D00416,PANEL-0135,BATCH-20260402,LAM-A02,R3C1,AOI-前贴附#2,2026-04-02 16:10:49.333111,划痕,轻微,145.39,336.83,155.0,340.0,16,白班,2026-04-02
+D00417,PANEL-0114,BATCH-20260420,LAM-A01,R2C3,AOI-前贴附#1,2026-04-20 09:47:35.211536,划痕,轻微,139.08,339.66,155.0,340.0,9,白班,2026-04-20
+D00418,PANEL-0264,BATCH-20260408,LAM-A01,R2C3,AOI-前贴附#2,2026-04-08 00:31:57.930816,划痕,严重,141.24,316.66,155.0,340.0,0,夜班,2026-04-08
+D00419,PANEL-0064,BATCH-20260415,LAM-A01,R1C1,AOI-前贴附#1,2026-04-15 03:34:39.977908,暗点,轻微,131.14,318.28,155.0,340.0,3,夜班,2026-04-15
+D00420,PANEL-0491,BATCH-20260404,LAM-A02,R2C2,AOI-前贴附#1,2026-04-04 23:22:03.997796,漏光,轻微,151.11,329.5,155.0,340.0,23,夜班,2026-04-04
+D00421,PANEL-0135,BATCH-20260409,LAM-A02,R2C1,AOI-前贴附#2,2026-04-09 13:09:26.193891,划痕,中等,118.73,301.59,155.0,340.0,13,白班,2026-04-09
+D00422,PANEL-0041,BATCH-20260426,LAM-A01,R2C3,AOI-前贴附#1,2026-04-26 11:54:40.509699,裂纹,严重,130.07,333.47,155.0,340.0,11,白班,2026-04-26
+D00423,PANEL-0296,BATCH-20260428,LAM-A02,R4C5,AOI-前贴附#1,2026-04-28 17:17:43.879166,划痕,轻微,130.58,316.9,155.0,340.0,17,夜班,2026-04-28
+D00424,PANEL-0003,BATCH-20260424,LAM-B01,R4C2,AOI-前贴附#1,2026-04-24 19:34:23.667307,色差,中等,141.63,309.34,155.0,340.0,19,夜班,2026-04-24
+D00425,PANEL-0401,BATCH-20260407,LAM-A01,R4C3,AOI-前贴附#2,2026-04-07 16:34:28.334202,亮点,轻微,142.32,309.96,155.0,340.0,16,白班,2026-04-07
+D00426,PANEL-0194,BATCH-20260411,LAM-A01,R4C1,AOI-前贴附#1,2026-04-11 15:51:12.337902,气泡,中等,137.96,321.11,155.0,340.0,15,白班,2026-04-11
+D00427,PANEL-0463,BATCH-20260428,LAM-A02,R3C5,AOI-前贴附#1,2026-04-28 17:05:49.703414,暗点,轻微,138.8,316.56,155.0,340.0,17,夜班,2026-04-28
+D00428,PANEL-0110,BATCH-20260421,LAM-B01,R3C2,AOI-前贴附#2,2026-04-21 20:30:08.113920,暗点,中等,144.22,334.26,155.0,340.0,20,夜班,2026-04-21
+D00429,PANEL-0221,BATCH-20260407,LAM-A01,R4C1,AOI-前贴附#2,2026-04-07 13:36:13.694955,漏光,轻微,146.67,314.86,155.0,340.0,13,白班,2026-04-07
+D00430,PANEL-0370,BATCH-20260420,LAM-A02,R4C5,AOI-后段全检,2026-04-20 13:16:23.173669,气泡,轻微,129.39,327.58,155.0,340.0,13,白班,2026-04-20
+D00431,PANEL-0368,BATCH-20260407,LAM-A01,R1C5,AOI-前贴附#1,2026-04-07 13:13:59.758115,亮点,严重,137.1,319.57,155.0,340.0,13,白班,2026-04-07
+D00432,PANEL-0436,BATCH-20260417,LAM-B01,R2C3,AOI-前贴附#1,2026-04-17 17:58:15.577408,划痕,轻微,139.44,324.05,155.0,340.0,17,夜班,2026-04-17
+D00433,PANEL-0406,BATCH-20260425,LAM-A02,R2C4,AOI-前贴附#2,2026-04-25 23:13:36.081776,划痕,轻微,143.88,316.55,155.0,340.0,23,夜班,2026-04-25
+D00434,PANEL-0004,BATCH-20260412,LAM-A02,R4C1,AOI-前贴附#1,2026-04-12 14:47:31.153993,色差,轻微,133.82,330.62,155.0,340.0,14,白班,2026-04-12
+D00435,PANEL-0244,BATCH-20260414,LAM-A01,R2C1,AOI-后段全检,2026-04-14 10:46:22.054745,暗点,中等,139.29,330.84,155.0,340.0,10,白班,2026-04-14
+D00436,PANEL-0390,BATCH-20260413,LAM-A02,R4C1,AOI-前贴附#2,2026-04-13 16:21:22.529363,亮点,轻微,140.24,326.9,155.0,340.0,16,白班,2026-04-13
+D00437,PANEL-0166,BATCH-20260409,LAM-A01,R2C1,AOI-前贴附#1,2026-04-09 10:44:44.204614,气泡,轻微,134.36,329.11,155.0,340.0,10,白班,2026-04-09
+D00438,PANEL-0026,BATCH-20260402,LAM-A01,R3C4,AOI-前贴附#2,2026-04-02 13:22:53.077316,漏光,中等,134.17,305.83,155.0,340.0,13,白班,2026-04-02
+D00439,PANEL-0395,BATCH-20260420,LAM-A01,R1C1,AOI-前贴附#1,2026-04-20 13:56:36.598812,暗点,中等,140.79,324.85,155.0,340.0,13,白班,2026-04-20
+D00440,PANEL-0474,BATCH-20260407,LAM-A01,R2C4,AOI-后段全检,2026-04-07 13:43:55.019044,气泡,轻微,138.96,338.74,155.0,340.0,13,白班,2026-04-07
+D00441,PANEL-0017,BATCH-20260419,LAM-A01,R3C3,AOI-后段全检,2026-04-19 11:41:24.135791,气泡,严重,144.0,327.37,155.0,340.0,11,白班,2026-04-19
+D00442,PANEL-0216,BATCH-20260428,LAM-A02,R4C4,AOI-前贴附#2,2026-04-28 12:27:20.605639,亮点,中等,131.57,304.54,155.0,340.0,12,白班,2026-04-28
+D00443,PANEL-0092,BATCH-20260421,LAM-A01,R4C2,AOI-前贴附#1,2026-04-21 08:06:16.532336,划痕,轻微,137.19,319.25,155.0,340.0,8,白班,2026-04-21
+D00444,PANEL-0483,BATCH-20260417,LAM-A01,R3C1,AOI-前贴附#1,2026-04-17 08:27:33.022993,色差,轻微,138.17,325.62,155.0,340.0,8,白班,2026-04-17
+D00445,PANEL-0031,BATCH-20260411,LAM-A02,R2C3,AOI-前贴附#1,2026-04-11 13:35:42.976558,亮点,严重,146.51,308.64,155.0,340.0,13,白班,2026-04-11
+D00446,PANEL-0205,BATCH-20260414,LAM-A01,R1C5,AOI-前贴附#1,2026-04-14 04:26:11.441916,漏光,中等,132.48,299.63,155.0,340.0,4,夜班,2026-04-14
+D00447,PANEL-0419,BATCH-20260409,LAM-A02,R2C2,AOI-前贴附#2,2026-04-09 12:54:55.591504,划痕,严重,141.88,315.26,155.0,340.0,12,白班,2026-04-09
+D00448,PANEL-0400,BATCH-20260405,LAM-A02,R1C4,AOI-后段全检,2026-04-05 12:43:00.155143,划痕,轻微,142.02,308.89,155.0,340.0,12,白班,2026-04-05
+D00449,PANEL-0207,BATCH-20260410,LAM-A01,R3C4,AOI-前贴附#2,2026-04-10 13:43:10.368824,裂纹,严重,153.17,319.79,155.0,340.0,13,白班,2026-04-10
+D00450,PANEL-0107,BATCH-20260426,LAM-A01,R1C2,AOI-前贴附#2,2026-04-26 09:28:12.808436,暗点,中等,131.94,296.13,155.0,340.0,9,白班,2026-04-26
+D00451,PANEL-0146,BATCH-20260403,LAM-A02,R2C4,AOI-前贴附#2,2026-04-03 23:00:16.985226,亮点,轻微,134.74,328.47,155.0,340.0,23,夜班,2026-04-03
+D00452,PANEL-0367,BATCH-20260417,LAM-A01,R1C1,AOI-后段全检,2026-04-17 07:01:48.188787,气泡,中等,132.5,310.48,155.0,340.0,7,夜班,2026-04-17
+D00453,PANEL-0101,BATCH-20260429,LAM-A01,R2C5,AOI-前贴附#1,2026-04-29 10:35:45.191430,气泡,轻微,126.64,334.94,155.0,340.0,10,白班,2026-04-29
+D00454,PANEL-0368,BATCH-20260406,LAM-A02,R4C5,AOI-前贴附#2,2026-04-06 15:07:46.616063,暗点,轻微,154.12,315.85,155.0,340.0,15,白班,2026-04-06
+D00455,PANEL-0318,BATCH-20260409,LAM-A01,R1C3,AOI-前贴附#2,2026-04-09 09:14:54.946572,划痕,严重,130.07,319.62,155.0,340.0,9,白班,2026-04-09
+D00456,PANEL-0368,BATCH-20260411,LAM-A01,R2C1,AOI-后段全检,2026-04-11 09:43:44.727167,色差,严重,133.47,317.4,155.0,340.0,9,白班,2026-04-11
+D00457,PANEL-0241,BATCH-20260414,LAM-A01,R2C1,AOI-后段全检,2026-04-14 13:44:07.415621,漏光,中等,150.53,309.68,155.0,340.0,13,白班,2026-04-14
+D00458,PANEL-0489,BATCH-20260428,LAM-A01,R1C2,AOI-前贴附#2,2026-04-28 08:36:50.316163,划痕,轻微,146.05,312.56,155.0,340.0,8,白班,2026-04-28
+D00459,PANEL-0411,BATCH-20260403,LAM-A01,R4C3,AOI-前贴附#1,2026-04-03 02:32:53.730772,漏光,严重,128.7,335.35,155.0,340.0,2,夜班,2026-04-03
+D00460,PANEL-0247,BATCH-20260420,LAM-A01,R1C2,AOI-前贴附#2,2026-04-20 10:26:29.965593,漏光,中等,149.97,303.6,155.0,340.0,10,白班,2026-04-20
+D00461,PANEL-0163,BATCH-20260409,LAM-A01,R3C2,AOI-前贴附#1,2026-04-09 09:18:45.930543,暗点,中等,122.64,325.58,155.0,340.0,9,白班,2026-04-09
+D00462,PANEL-0372,BATCH-20260406,LAM-A02,R1C5,AOI-前贴附#2,2026-04-06 13:27:08.246577,气泡,严重,125.97,327.18,155.0,340.0,13,白班,2026-04-06
+D00463,PANEL-0173,BATCH-20260410,LAM-A02,R2C2,AOI-前贴附#2,2026-04-10 16:48:52.724634,亮点,中等,135.64,319.64,155.0,340.0,16,白班,2026-04-10
+D00464,PANEL-0035,BATCH-20260424,LAM-A01,R4C1,AOI-前贴附#2,2026-04-24 11:13:04.697222,亮点,轻微,147.77,311.43,155.0,340.0,11,白班,2026-04-24
+D00465,PANEL-0284,BATCH-20260414,LAM-B01,R1C1,AOI-后段全检,2026-04-14 23:22:22.631715,气泡,轻微,139.75,316.05,155.0,340.0,23,夜班,2026-04-14
+D00466,PANEL-0359,BATCH-20260408,LAM-A01,R4C2,AOI-前贴附#2,2026-04-08 16:36:59.071103,漏光,严重,137.31,313.95,155.0,340.0,16,白班,2026-04-08
+D00467,PANEL-0381,BATCH-20260422,LAM-A01,R1C1,AOI-前贴附#1,2026-04-22 11:43:16.904922,气泡,中等,145.38,327.87,155.0,340.0,11,白班,2026-04-22
+D00468,PANEL-0358,BATCH-20260426,LAM-A01,R4C5,AOI-前贴附#1,2026-04-26 14:08:30.513486,暗点,严重,136.65,306.86,155.0,340.0,14,白班,2026-04-26
+D00469,PANEL-0393,BATCH-20260411,LAM-A02,R2C4,AOI-后段全检,2026-04-11 20:35:32.092185,划痕,严重,129.69,320.56,155.0,340.0,20,夜班,2026-04-11
+D00470,PANEL-0460,BATCH-20260410,LAM-A01,R3C5,AOI-前贴附#1,2026-04-10 09:52:29.056390,划痕,轻微,140.81,315.96,155.0,340.0,9,白班,2026-04-10
+D00471,PANEL-0399,BATCH-20260414,LAM-A01,R1C3,AOI-前贴附#1,2026-04-14 07:33:39.948943,亮点,轻微,126.96,318.71,155.0,340.0,7,夜班,2026-04-14
+D00472,PANEL-0021,BATCH-20260429,LAM-A01,R3C4,AOI-前贴附#1,2026-04-29 01:40:34.789240,划痕,中等,144.41,317.31,155.0,340.0,1,夜班,2026-04-29
+D00473,PANEL-0308,BATCH-20260426,LAM-A02,R3C1,AOI-前贴附#2,2026-04-26 19:05:59.858581,暗点,中等,145.74,322.93,155.0,340.0,19,夜班,2026-04-26
+D00474,PANEL-0163,BATCH-20260406,LAM-A01,R3C2,AOI-前贴附#1,2026-04-06 10:43:36.773423,亮点,中等,136.25,304.06,155.0,340.0,10,白班,2026-04-06
+D00475,PANEL-0490,BATCH-20260415,LAM-A01,R3C3,AOI-后段全检,2026-04-15 15:57:31.462813,气泡,轻微,144.22,334.83,155.0,340.0,15,白班,2026-04-15
+D00476,PANEL-0097,BATCH-20260404,LAM-A02,R2C5,AOI-后段全检,2026-04-04 18:46:54.707347,亮点,轻微,152.96,329.35,155.0,340.0,18,夜班,2026-04-04
+D00477,PANEL-0307,BATCH-20260429,LAM-A01,R1C3,AOI-后段全检,2026-04-29 08:31:44.274426,暗点,轻微,152.56,312.6,155.0,340.0,8,白班,2026-04-29
+D00478,PANEL-0339,BATCH-20260405,LAM-A01,R1C4,AOI-前贴附#1,2026-04-05 09:03:33.610751,暗点,中等,131.97,313.33,155.0,340.0,9,白班,2026-04-05
+D00479,PANEL-0055,BATCH-20260422,LAM-B01,R2C4,AOI-后段全检,2026-04-22 23:35:21.323790,划痕,中等,144.08,324.13,155.0,340.0,23,夜班,2026-04-22
+D00480,PANEL-0471,BATCH-20260418,LAM-A02,R4C2,AOI-后段全检,2026-04-18 13:11:32.518326,划痕,中等,138.74,308.02,155.0,340.0,13,白班,2026-04-18
+D00481,PANEL-0333,BATCH-20260412,LAM-A01,R4C4,AOI-后段全检,2026-04-12 08:36:44.527898,划痕,轻微,143.07,325.37,155.0,340.0,8,白班,2026-04-12
+D00482,PANEL-0127,BATCH-20260407,LAM-A02,R3C5,AOI-前贴附#2,2026-04-07 13:30:43.629814,漏光,中等,121.04,325.9,155.0,340.0,13,白班,2026-04-07
+D00483,PANEL-0428,BATCH-20260404,LAM-A01,R4C1,AOI-前贴附#2,2026-04-04 10:56:38.727606,划痕,中等,137.22,330.22,155.0,340.0,10,白班,2026-04-04
+D00484,PANEL-0193,BATCH-20260427,LAM-A01,R1C2,AOI-前贴附#1,2026-04-27 14:23:41.784557,气泡,中等,141.59,311.31,155.0,340.0,14,白班,2026-04-27
+D00485,PANEL-0243,BATCH-20260413,LAM-A01,R3C1,AOI-后段全检,2026-04-13 10:53:12.555683,异物,中等,128.53,336.34,155.0,340.0,10,白班,2026-04-13
+D00486,PANEL-0349,BATCH-20260417,LAM-A02,R3C5,AOI-前贴附#1,2026-04-17 20:53:25.817182,色差,严重,144.65,321.72,155.0,340.0,20,夜班,2026-04-17
+D00487,PANEL-0088,BATCH-20260403,LAM-A02,R4C4,AOI-前贴附#1,2026-04-03 15:35:44.141985,划痕,中等,127.81,334.25,155.0,340.0,15,白班,2026-04-03
+D00488,PANEL-0336,BATCH-20260404,LAM-A02,R3C1,AOI-后段全检,2026-04-04 12:09:35.334223,漏光,严重,133.61,317.03,155.0,340.0,12,白班,2026-04-04
+D00489,PANEL-0409,BATCH-20260404,LAM-A01,R1C5,AOI-前贴附#2,2026-04-04 10:17:29.010681,划痕,轻微,150.73,339.76,155.0,340.0,10,白班,2026-04-04
+D00490,PANEL-0215,BATCH-20260427,LAM-A02,R3C3,AOI-前贴附#1,2026-04-27 18:09:14.968603,亮点,轻微,132.93,326.02,155.0,340.0,18,夜班,2026-04-27
+D00491,PANEL-0092,BATCH-20260421,LAM-B01,R3C3,AOI-后段全检,2026-04-21 23:23:28.629306,漏光,中等,125.97,314.46,155.0,340.0,23,夜班,2026-04-21
+D00492,PANEL-0303,BATCH-20260426,LAM-A02,R1C2,AOI-后段全检,2026-04-26 16:11:30.180000,暗点,轻微,137.56,304.53,155.0,340.0,16,白班,2026-04-26
+D00493,PANEL-0464,BATCH-20260424,LAM-A01,R2C4,AOI-前贴附#1,2026-04-24 14:57:37.970223,亮点,中等,140.76,312.06,155.0,340.0,14,白班,2026-04-24
+D00494,PANEL-0235,BATCH-20260423,LAM-A01,R2C5,AOI-后段全检,2026-04-23 09:41:52.314297,划痕,中等,141.43,329.28,155.0,340.0,9,白班,2026-04-23
+D00495,PANEL-0184,BATCH-20260417,LAM-A02,R2C2,AOI-前贴附#1,2026-04-17 12:10:51.424755,亮点,严重,144.86,336.94,155.0,340.0,12,白班,2026-04-17
+D00496,PANEL-0038,BATCH-20260424,LAM-A01,R2C2,AOI-前贴附#1,2026-04-24 15:53:11.329212,暗点,严重,139.96,318.55,155.0,340.0,15,白班,2026-04-24
+D00497,PANEL-0139,BATCH-20260408,LAM-A01,R1C3,AOI-前贴附#1,2026-04-08 09:58:12.303355,亮点,轻微,134.73,306.0,155.0,340.0,9,白班,2026-04-08
+D00498,PANEL-0195,BATCH-20260405,LAM-A02,R2C2,AOI-前贴附#1,2026-04-05 14:10:15.290799,异物,中等,126.48,331.3,155.0,340.0,14,白班,2026-04-05
+D00499,PANEL-0015,BATCH-20260404,LAM-A01,R1C1,AOI-前贴附#1,2026-04-04 13:37:43.721899,裂纹,中等,147.9,303.08,155.0,340.0,13,白班,2026-04-04
+D00500,PANEL-0257,BATCH-20260407,LAM-A02,R4C1,AOI-前贴附#1,2026-04-07 18:31:40.763522,漏光,严重,137.18,328.46,155.0,340.0,18,夜班,2026-04-07
+D00501,PANEL-0135,BATCH-20260418,LAM-A01,R1C2,AOI-后段全检,2026-04-18 14:54:00.309689,亮点,轻微,141.94,312.47,155.0,340.0,14,白班,2026-04-18
+D00502,PANEL-0001,BATCH-20260427,LAM-A02,R2C2,AOI-前贴附#2,2026-04-27 19:36:08.802320,气泡,中等,141.44,323.17,155.0,340.0,19,夜班,2026-04-27
+D00503,PANEL-0049,BATCH-20260403,LAM-A02,R1C4,AOI-后段全检,2026-04-03 14:07:09.917817,漏光,中等,137.32,336.37,155.0,340.0,14,白班,2026-04-03
+D00504,PANEL-0096,BATCH-20260427,LAM-B01,R5C2,AOI-前贴附#2,2026-04-27 18:17:09.601024,漏光,中等,139.62,333.99,155.0,340.0,18,夜班,2026-04-27
+D00505,PANEL-0201,BATCH-20260406,LAM-A01,R1C4,AOI-前贴附#1,2026-04-06 13:05:41.843229,亮点,轻微,127.54,333.1,155.0,340.0,13,白班,2026-04-06
+D00506,PANEL-0413,BATCH-20260405,LAM-B01,R4C1,AOI-后段全检,2026-04-05 22:28:24.075943,划痕,中等,136.8,292.04,155.0,340.0,22,夜班,2026-04-05
+D00507,PANEL-0026,BATCH-20260411,LAM-A02,R1C3,AOI-后段全检,2026-04-11 21:42:03.372925,划痕,中等,144.0,306.48,155.0,340.0,21,夜班,2026-04-11
+D00508,PANEL-0343,BATCH-20260418,LAM-A01,R4C1,AOI-前贴附#1,2026-04-18 09:45:49.016455,暗点,轻微,144.26,296.57,155.0,340.0,9,白班,2026-04-18
+D00509,PANEL-0429,BATCH-20260418,LAM-A01,R1C4,AOI-前贴附#1,2026-04-18 08:08:32.948847,暗点,轻微,147.44,318.42,155.0,340.0,8,白班,2026-04-18
+D00510,PANEL-0235,BATCH-20260423,LAM-A02,R4C1,AOI-前贴附#2,2026-04-23 19:24:48.949915,色差,轻微,149.15,295.51,155.0,340.0,19,夜班,2026-04-23
+D00511,PANEL-0349,BATCH-20260409,LAM-A01,R4C4,AOI-前贴附#2,2026-04-09 11:14:10.472440,划痕,严重,129.45,311.41,155.0,340.0,11,白班,2026-04-09
+D00512,PANEL-0244,BATCH-20260407,LAM-A01,R1C1,AOI-后段全检,2026-04-07 08:36:24.139115,划痕,中等,138.19,332.01,155.0,340.0,8,白班,2026-04-07
+D00513,PANEL-0358,BATCH-20260401,LAM-A02,R4C4,AOI-前贴附#1,2026-04-01 19:51:48.468890,亮点,轻微,148.52,322.69,155.0,340.0,19,夜班,2026-04-01
+D00514,PANEL-0481,BATCH-20260403,LAM-A02,R3C1,AOI-前贴附#1,2026-04-03 14:12:37.177095,亮点,轻微,140.96,327.99,155.0,340.0,14,白班,2026-04-03
+D00515,PANEL-0327,BATCH-20260413,LAM-A02,R4C5,AOI-前贴附#2,2026-04-13 17:53:56.151061,划痕,中等,146.53,301.19,155.0,340.0,17,夜班,2026-04-13
+D00516,PANEL-0396,BATCH-20260428,LAM-A01,R1C5,AOI-前贴附#2,2026-04-28 10:43:15.896874,气泡,轻微,150.29,331.66,155.0,340.0,10,白班,2026-04-28
+D00517,PANEL-0351,BATCH-20260420,LAM-A01,R1C4,AOI-前贴附#1,2026-04-20 15:08:43.401244,暗点,中等,148.5,326.02,155.0,340.0,15,白班,2026-04-20
+D00518,PANEL-0416,BATCH-20260419,LAM-A02,R1C4,AOI-前贴附#1,2026-04-19 14:25:16.444898,气泡,严重,136.37,309.72,155.0,340.0,14,白班,2026-04-19
+D00519,PANEL-0374,BATCH-20260411,LAM-A01,R1C4,AOI-前贴附#2,2026-04-11 03:08:01.415696,亮点,严重,145.06,324.86,155.0,340.0,3,夜班,2026-04-11
+D00520,PANEL-0404,BATCH-20260426,LAM-A01,R4C5,AOI-前贴附#2,2026-04-26 10:18:53.318778,亮点,中等,127.79,315.63,155.0,340.0,10,白班,2026-04-26
+D00521,PANEL-0375,BATCH-20260416,LAM-A01,R4C3,AOI-前贴附#1,2026-04-16 10:42:31.124146,亮点,轻微,139.54,295.24,155.0,340.0,10,白班,2026-04-16
+D00522,PANEL-0051,BATCH-20260424,LAM-A02,R4C1,AOI-前贴附#2,2026-04-24 14:55:44.631872,漏光,中等,146.55,319.24,155.0,340.0,14,白班,2026-04-24
+D00523,PANEL-0081,BATCH-20260420,LAM-A01,R2C4,AOI-后段全检,2026-04-20 10:57:03.655247,划痕,中等,141.07,317.65,155.0,340.0,10,白班,2026-04-20
+D00524,PANEL-0036,BATCH-20260408,LAM-A01,R4C3,AOI-后段全检,2026-04-08 03:53:16.468463,色差,轻微,143.57,335.94,155.0,340.0,3,夜班,2026-04-08
+D00525,PANEL-0067,BATCH-20260429,LAM-A01,R1C2,AOI-前贴附#1,2026-04-29 11:31:35.644454,亮点,轻微,138.29,286.48,155.0,340.0,11,白班,2026-04-29
+D00526,PANEL-0129,BATCH-20260414,LAM-A01,R1C4,AOI-前贴附#1,2026-04-14 06:13:44.815439,漏光,中等,149.03,323.53,155.0,340.0,6,夜班,2026-04-14
+D00527,PANEL-0370,BATCH-20260429,LAM-A02,R3C2,AOI-后段全检,2026-04-29 15:01:52.895670,色差,轻微,139.36,302.67,155.0,340.0,15,白班,2026-04-29
+D00528,PANEL-0155,BATCH-20260417,LAM-A01,R2C2,AOI-前贴附#1,2026-04-17 10:55:08.041659,亮点,中等,136.28,324.79,155.0,340.0,10,白班,2026-04-17
+D00529,PANEL-0245,BATCH-20260407,LAM-A01,R2C2,AOI-前贴附#2,2026-04-07 13:36:43.106893,气泡,中等,51.61,269.73,155.0,340.0,13,白班,2026-04-07
+D00530,PANEL-0111,BATCH-20260402,LAM-A01,R4C2,AOI-前贴附#2,2026-04-02 04:38:30.738133,划痕,中等,100.72,240.48,155.0,340.0,4,夜班,2026-04-02
+D00531,PANEL-0168,BATCH-20260405,LAM-A02,R4C4,AOI-前贴附#1,2026-04-05 13:18:48.067017,漏光,轻微,68.15,275.07,155.0,340.0,13,白班,2026-04-05
+D00532,PANEL-0481,BATCH-20260422,LAM-A01,R2C4,AOI-前贴附#2,2026-04-22 11:37:13.824641,亮点,轻微,84.43,260.03,155.0,340.0,11,白班,2026-04-22
+D00533,PANEL-0468,BATCH-20260429,LAM-A01,R3C4,AOI-前贴附#2,2026-04-29 11:38:20.659388,亮点,中等,76.56,246.54,155.0,340.0,11,白班,2026-04-29
+D00534,PANEL-0142,BATCH-20260426,LAM-A01,R1C5,AOI-前贴附#2,2026-04-26 12:25:20.819556,气泡,中等,87.04,254.33,155.0,340.0,12,白班,2026-04-26
+D00535,PANEL-0356,BATCH-20260412,LAM-A02,R4C5,AOI-前贴附#1,2026-04-12 12:46:07.209234,色差,严重,79.04,261.7,155.0,340.0,12,白班,2026-04-12
+D00536,PANEL-0197,BATCH-20260410,LAM-A02,R3C4,AOI-后段全检,2026-04-10 16:08:36.333655,划痕,严重,51.84,255.91,155.0,340.0,16,白班,2026-04-10
+D00537,PANEL-0471,BATCH-20260409,LAM-A01,R3C4,AOI-前贴附#2,2026-04-09 11:06:31.482172,气泡,轻微,97.43,261.47,155.0,340.0,11,白班,2026-04-09
+D00538,PANEL-0109,BATCH-20260402,LAM-A01,R1C1,AOI-前贴附#2,2026-04-02 14:28:51.964042,亮点,轻微,67.62,243.95,155.0,340.0,14,白班,2026-04-02
+D00539,PANEL-0376,BATCH-20260424,LAM-A01,R1C3,AOI-后段全检,2026-04-24 08:55:20.695657,亮点,轻微,46.37,257.03,155.0,340.0,8,白班,2026-04-24
+D00540,PANEL-0079,BATCH-20260413,LAM-A02,R2C2,AOI-前贴附#2,2026-04-13 16:59:15.465841,气泡,轻微,68.94,238.04,155.0,340.0,16,白班,2026-04-13
+D00541,PANEL-0390,BATCH-20260420,LAM-B01,R4C3,AOI-前贴附#2,2026-04-20 17:23:29.407129,亮点,严重,107.52,253.67,155.0,340.0,17,夜班,2026-04-20
+D00542,PANEL-0161,BATCH-20260408,LAM-A01,R4C5,AOI-后段全检,2026-04-08 15:48:41.167864,亮点,轻微,94.5,244.15,155.0,340.0,15,白班,2026-04-08
+D00543,PANEL-0439,BATCH-20260416,LAM-A01,R1C2,AOI-前贴附#1,2026-04-16 10:35:00.482463,色差,中等,70.53,246.17,155.0,340.0,10,白班,2026-04-16
+D00544,PANEL-0019,BATCH-20260417,LAM-A01,R4C4,AOI-前贴附#2,2026-04-17 11:36:35.333361,划痕,中等,70.51,269.83,155.0,340.0,11,白班,2026-04-17
+D00545,PANEL-0127,BATCH-20260409,LAM-A01,R2C4,AOI-后段全检,2026-04-09 10:15:51.481740,气泡,轻微,71.07,268.1,155.0,340.0,10,白班,2026-04-09
+D00546,PANEL-0205,BATCH-20260427,LAM-A01,R1C5,AOI-前贴附#1,2026-04-27 16:16:47.870751,划痕,轻微,119.03,262.31,155.0,340.0,16,白班,2026-04-27
+D00547,PANEL-0029,BATCH-20260417,LAM-B01,R4C4,AOI-前贴附#1,2026-04-17 20:03:32.549094,划痕,严重,85.14,241.89,155.0,340.0,20,夜班,2026-04-17
+D00548,PANEL-0445,BATCH-20260422,LAM-A01,R1C4,AOI-后段全检,2026-04-22 08:41:41.874250,划痕,中等,86.1,251.2,155.0,340.0,8,白班,2026-04-22
+D00549,PANEL-0454,BATCH-20260421,LAM-A01,R3C2,AOI-后段全检,2026-04-21 10:21:54.760610,暗点,严重,98.11,269.56,155.0,340.0,10,白班,2026-04-21
+D00550,PANEL-0207,BATCH-20260407,LAM-A01,R2C2,AOI-后段全检,2026-04-07 13:18:26.817113,气泡,轻微,82.28,256.7,155.0,340.0,13,白班,2026-04-07
+D00551,PANEL-0464,BATCH-20260426,LAM-A02,R3C2,AOI-前贴附#1,2026-04-26 14:53:30.095513,划痕,轻微,72.32,282.83,155.0,340.0,14,白班,2026-04-26
+D00552,PANEL-0280,BATCH-20260425,LAM-A01,R1C5,AOI-前贴附#1,2026-04-25 12:51:43.879476,划痕,中等,73.57,259.72,155.0,340.0,12,白班,2026-04-25
+D00553,PANEL-0151,BATCH-20260414,LAM-A01,R2C5,AOI-前贴附#1,2026-04-14 12:21:58.781162,漏光,中等,76.07,257.3,155.0,340.0,12,白班,2026-04-14
+D00554,PANEL-0240,BATCH-20260419,LAM-A02,R2C5,AOI-前贴附#2,2026-04-19 14:29:42.595904,划痕,轻微,76.76,251.29,155.0,340.0,14,白班,2026-04-19
+D00555,PANEL-0266,BATCH-20260414,LAM-A02,R4C2,AOI-前贴附#2,2026-04-14 17:43:02.760139,漏光,轻微,92.05,256.6,155.0,340.0,17,夜班,2026-04-14
+D00556,PANEL-0182,BATCH-20260430,LAM-A01,R3C3,AOI-前贴附#1,2026-04-30 12:27:13.735911,划痕,轻微,78.54,253.17,155.0,340.0,12,白班,2026-04-30
+D00557,PANEL-0105,BATCH-20260414,LAM-A01,R2C5,AOI-前贴附#1,2026-04-14 09:55:10.063958,气泡,轻微,92.15,263.5,155.0,340.0,9,白班,2026-04-14
+D00558,PANEL-0425,BATCH-20260403,LAM-A01,R2C4,AOI-前贴附#2,2026-04-03 06:30:36.066509,亮点,轻微,75.89,266.48,155.0,340.0,6,夜班,2026-04-03
+D00559,PANEL-0433,BATCH-20260413,LAM-A01,R1C1,AOI-前贴附#2,2026-04-13 16:30:19.283025,漏光,严重,79.07,245.57,155.0,340.0,16,白班,2026-04-13
+D00560,PANEL-0401,BATCH-20260424,LAM-A02,R1C4,AOI-前贴附#1,2026-04-24 13:42:08.776043,气泡,轻微,37.54,239.03,155.0,340.0,13,白班,2026-04-24
+D00561,PANEL-0497,BATCH-20260414,LAM-A01,R4C3,AOI-后段全检,2026-04-14 09:06:52.602393,亮点,中等,95.83,232.97,155.0,340.0,9,白班,2026-04-14
+D00562,PANEL-0440,BATCH-20260424,LAM-A02,R4C3,AOI-前贴附#1,2026-04-24 20:25:31.581789,划痕,中等,84.43,261.1,155.0,340.0,20,夜班,2026-04-24
+D00563,PANEL-0236,BATCH-20260421,LAM-A02,R3C5,AOI-前贴附#2,2026-04-21 16:48:26.104007,气泡,严重,97.46,241.76,155.0,340.0,16,白班,2026-04-21
+D00564,PANEL-0173,BATCH-20260411,LAM-A01,R2C1,AOI-后段全检,2026-04-11 09:06:20.676671,暗点,严重,19.57,229.17,155.0,340.0,9,白班,2026-04-11
+D00565,PANEL-0158,BATCH-20260425,LAM-A01,R2C5,AOI-前贴附#2,2026-04-25 10:21:03.402848,划痕,轻微,119.27,259.66,155.0,340.0,10,白班,2026-04-25
+D00566,PANEL-0172,BATCH-20260411,LAM-A01,R3C5,AOI-前贴附#1,2026-04-11 10:44:10.412758,划痕,中等,74.71,284.92,155.0,340.0,10,白班,2026-04-11
+D00567,PANEL-0494,BATCH-20260425,LAM-A02,R1C4,AOI-前贴附#1,2026-04-25 19:44:48.825465,色差,严重,99.66,254.93,155.0,340.0,19,夜班,2026-04-25
+D00568,PANEL-0458,BATCH-20260410,LAM-A01,R4C3,AOI-后段全检,2026-04-10 11:10:39.006330,划痕,轻微,56.7,265.06,155.0,340.0,11,白班,2026-04-10
+D00569,PANEL-0311,BATCH-20260409,LAM-A02,R4C2,AOI-前贴附#1,2026-04-09 12:37:30.409840,暗点,中等,89.76,255.98,155.0,340.0,12,白班,2026-04-09
+D00570,PANEL-0403,BATCH-20260402,LAM-A01,R3C2,AOI-前贴附#2,2026-04-02 09:26:18.848356,亮点,轻微,56.43,253.81,155.0,340.0,9,白班,2026-04-02
+D00571,PANEL-0157,BATCH-20260428,LAM-A01,R4C1,AOI-后段全检,2026-04-28 16:15:24.383529,漏光,中等,65.02,266.03,155.0,340.0,16,白班,2026-04-28
+D00572,PANEL-0258,BATCH-20260407,LAM-A01,R3C4,AOI-后段全检,2026-04-07 15:17:53.823234,漏光,严重,115.78,251.52,155.0,340.0,15,白班,2026-04-07
+D00573,PANEL-0164,BATCH-20260413,LAM-A01,R4C4,AOI-前贴附#2,2026-04-13 16:05:04.128965,异物,轻微,73.69,258.21,155.0,340.0,16,白班,2026-04-13
+D00574,PANEL-0147,BATCH-20260422,LAM-B01,R3C2,AOI-后段全检,2026-04-22 21:39:33.839547,划痕,轻微,81.85,258.86,155.0,340.0,21,夜班,2026-04-22
+D00575,PANEL-0391,BATCH-20260424,LAM-A01,R2C1,AOI-后段全检,2026-04-24 09:23:01.533376,漏光,严重,94.9,246.98,155.0,340.0,9,白班,2026-04-24
+D00576,PANEL-0154,BATCH-20260410,LAM-A01,R2C5,AOI-前贴附#1,2026-04-10 14:06:15.157918,划痕,严重,87.41,266.9,155.0,340.0,14,白班,2026-04-10
+D00577,PANEL-0463,BATCH-20260408,LAM-A02,R4C5,AOI-前贴附#1,2026-04-08 15:29:39.616727,暗点,严重,80.51,252.9,155.0,340.0,15,白班,2026-04-08
+D00578,PANEL-0367,BATCH-20260421,LAM-A02,R4C1,AOI-前贴附#1,2026-04-21 14:04:44.691202,暗点,严重,84.8,245.93,155.0,340.0,14,白班,2026-04-21
+D00579,PANEL-0038,BATCH-20260401,LAM-A01,R2C1,AOI-前贴附#1,2026-04-01 12:25:49.042152,划痕,中等,125.57,261.44,155.0,340.0,12,白班,2026-04-01
+D00580,PANEL-0131,BATCH-20260403,LAM-A01,R1C4,AOI-后段全检,2026-04-03 13:54:34.997788,裂纹,严重,76.35,244.22,155.0,340.0,13,白班,2026-04-03
+D00581,PANEL-0358,BATCH-20260423,LAM-A01,R3C4,AOI-前贴附#2,2026-04-23 12:01:43.264838,划痕,轻微,81.52,255.34,155.0,340.0,12,白班,2026-04-23
+D00582,PANEL-0255,BATCH-20260405,LAM-A01,R1C1,AOI-后段全检,2026-04-05 10:10:53.310338,气泡,中等,98.51,254.89,155.0,340.0,10,白班,2026-04-05
+D00583,PANEL-0208,BATCH-20260404,LAM-A01,R4C5,AOI-前贴附#2,2026-04-04 10:27:10.376939,色差,严重,99.61,268.03,155.0,340.0,10,白班,2026-04-04
+D00584,PANEL-0450,BATCH-20260407,LAM-A01,R1C5,AOI-前贴附#2,2026-04-07 10:21:22.090201,色差,轻微,101.24,260.7,155.0,340.0,10,白班,2026-04-07
+D00585,PANEL-0095,BATCH-20260403,LAM-A01,R2C3,AOI-前贴附#2,2026-04-03 09:45:13.979882,划痕,中等,90.27,254.7,155.0,340.0,9,白班,2026-04-03
+D00586,PANEL-0348,BATCH-20260402,LAM-B01,R1C2,AOI-前贴附#1,2026-04-02 19:47:45.258271,亮点,中等,54.64,264.81,155.0,340.0,19,夜班,2026-04-02
+D00587,PANEL-0327,BATCH-20260409,LAM-A01,R3C2,AOI-后段全检,2026-04-09 11:24:55.079771,色差,严重,110.17,271.68,155.0,340.0,11,白班,2026-04-09
+D00588,PANEL-0478,BATCH-20260420,LAM-A02,R1C5,AOI-前贴附#2,2026-04-20 21:15:35.143706,亮点,轻微,54.57,261.69,155.0,340.0,21,夜班,2026-04-20
+D00589,PANEL-0171,BATCH-20260423,LAM-A02,R3C3,AOI-前贴附#2,2026-04-23 17:26:00.773698,亮点,轻微,83.55,255.12,155.0,340.0,17,夜班,2026-04-23
+D00590,PANEL-0250,BATCH-20260415,LAM-A01,R2C5,AOI-前贴附#1,2026-04-15 14:56:56.253859,划痕,中等,62.41,239.26,155.0,340.0,14,白班,2026-04-15
+D00591,PANEL-0190,BATCH-20260421,LAM-A01,R1C1,AOI-后段全检,2026-04-21 10:09:38.120712,亮点,中等,76.22,242.22,155.0,340.0,10,白班,2026-04-21
+D00592,PANEL-0199,BATCH-20260407,LAM-A01,R1C3,AOI-后段全检,2026-04-07 11:40:50.031698,漏光,中等,84.08,251.34,155.0,340.0,11,白班,2026-04-07
+D00593,PANEL-0484,BATCH-20260410,LAM-A01,R4C3,AOI-前贴附#2,2026-04-10 01:50:43.947124,亮点,轻微,83.93,247.69,155.0,340.0,1,夜班,2026-04-10
+D00594,PANEL-0221,BATCH-20260417,LAM-A01,R3C2,AOI-前贴附#2,2026-04-17 11:34:10.945160,暗点,中等,85.94,252.76,155.0,340.0,11,白班,2026-04-17
+D00595,PANEL-0024,BATCH-20260422,LAM-A01,R1C3,AOI-前贴附#2,2026-04-22 12:16:28.015872,亮点,轻微,109.77,255.68,155.0,340.0,12,白班,2026-04-22
+D00596,PANEL-0244,BATCH-20260405,LAM-A02,R2C4,AOI-前贴附#1,2026-04-05 16:20:47.899207,亮点,轻微,86.57,261.36,155.0,340.0,16,白班,2026-04-05
+D00597,PANEL-0423,BATCH-20260418,LAM-A02,R1C2,AOI-前贴附#1,2026-04-18 14:03:56.704449,划痕,中等,72.62,254.15,155.0,340.0,14,白班,2026-04-18
+D00598,PANEL-0324,BATCH-20260411,LAM-A01,R1C3,AOI-前贴附#2,2026-04-11 06:58:22.749045,划痕,轻微,96.78,260.84,155.0,340.0,6,夜班,2026-04-11
+D00599,PANEL-0128,BATCH-20260408,LAM-A02,R1C4,AOI-前贴附#1,2026-04-08 14:32:09.935490,亮点,中等,101.29,255.77,155.0,340.0,14,白班,2026-04-08
+D00600,PANEL-0093,BATCH-20260430,LAM-A01,R4C4,AOI-前贴附#2,2026-04-30 11:04:01.017106,暗点,轻微,52.95,231.29,155.0,340.0,11,白班,2026-04-30
+D00601,PANEL-0300,BATCH-20260410,LAM-A01,R2C2,AOI-前贴附#2,2026-04-10 12:50:01.064832,亮点,轻微,89.45,243.73,155.0,340.0,12,白班,2026-04-10
+D00602,PANEL-0133,BATCH-20260404,LAM-A02,R1C3,AOI-前贴附#1,2026-04-04 14:17:16.434907,亮点,中等,91.52,253.27,155.0,340.0,14,白班,2026-04-04
+D00603,PANEL-0055,BATCH-20260427,LAM-A01,R2C4,AOI-前贴附#1,2026-04-27 03:35:00.871970,亮点,轻微,71.55,240.48,155.0,340.0,3,夜班,2026-04-27
+D00604,PANEL-0477,BATCH-20260405,LAM-A01,R1C2,AOI-前贴附#1,2026-04-05 11:54:15.035642,划痕,严重,105.01,262.2,155.0,340.0,11,白班,2026-04-05
+D00605,PANEL-0158,BATCH-20260417,LAM-A01,R2C4,AOI-前贴附#1,2026-04-17 10:16:19.712024,裂纹,严重,74.5,273.37,155.0,340.0,10,白班,2026-04-17
+D00606,PANEL-0029,BATCH-20260404,LAM-A01,R3C2,AOI-前贴附#2,2026-04-04 10:45:31.732385,暗点,中等,80.01,269.63,155.0,340.0,10,白班,2026-04-04
+D00607,PANEL-0410,BATCH-20260402,LAM-A02,R3C2,AOI-前贴附#2,2026-04-02 16:04:06.987641,划痕,严重,74.04,252.44,155.0,340.0,16,白班,2026-04-02
+D00608,PANEL-0211,BATCH-20260420,LAM-A01,R1C2,AOI-后段全检,2026-04-20 16:43:16.278400,划痕,严重,77.81,272.89,155.0,340.0,16,白班,2026-04-20
+D00609,PANEL-0154,BATCH-20260417,LAM-A01,R4C3,AOI-前贴附#1,2026-04-17 09:12:08.299668,异物,中等,55.57,256.78,155.0,340.0,9,白班,2026-04-17
+D00610,PANEL-0293,BATCH-20260430,LAM-A01,R3C4,AOI-后段全检,2026-04-30 12:44:51.146498,划痕,严重,48.7,250.95,155.0,340.0,12,白班,2026-04-30
+D00611,PANEL-0475,BATCH-20260402,LAM-A01,R2C5,AOI-前贴附#1,2026-04-02 12:47:48.027779,色差,严重,109.39,247.64,155.0,340.0,12,白班,2026-04-02
+D00612,PANEL-0222,BATCH-20260404,LAM-A01,R3C2,AOI-前贴附#2,2026-04-04 11:12:02.122922,划痕,轻微,60.56,251.37,155.0,340.0,11,白班,2026-04-04
+D00613,PANEL-0115,BATCH-20260423,LAM-A02,R3C1,AOI-前贴附#2,2026-04-23 14:00:27.494029,裂纹,严重,57.67,250.34,155.0,340.0,14,白班,2026-04-23
+D00614,PANEL-0437,BATCH-20260430,LAM-A01,R1C2,AOI-前贴附#2,2026-04-30 09:30:12.906015,漏光,严重,34.43,257.04,155.0,340.0,9,白班,2026-04-30
+D00615,PANEL-0158,BATCH-20260423,LAM-A01,R2C2,AOI-前贴附#2,2026-04-23 12:45:56.971792,暗点,中等,64.72,256.93,155.0,340.0,12,白班,2026-04-23
+D00616,PANEL-0259,BATCH-20260419,LAM-A01,R2C1,AOI-前贴附#1,2026-04-19 14:05:26.269962,划痕,严重,51.04,255.04,155.0,340.0,14,白班,2026-04-19
+D00617,PANEL-0251,BATCH-20260420,LAM-A02,R1C3,AOI-前贴附#1,2026-04-20 13:52:56.346837,划痕,轻微,110.34,260.24,155.0,340.0,13,白班,2026-04-20
+D00618,PANEL-0122,BATCH-20260402,LAM-A01,R3C3,AOI-后段全检,2026-04-02 11:10:17.215428,亮点,轻微,97.7,269.29,155.0,340.0,11,白班,2026-04-02
+D00619,PANEL-0299,BATCH-20260405,LAM-A01,R2C1,AOI-前贴附#1,2026-04-05 13:53:03.252202,亮点,轻微,63.74,266.39,155.0,340.0,13,白班,2026-04-05
+D00620,PANEL-0263,BATCH-20260416,LAM-A01,R4C2,AOI-前贴附#1,2026-04-16 12:56:51.856487,划痕,中等,122.55,237.18,155.0,340.0,12,白班,2026-04-16
+D00621,PANEL-0381,BATCH-20260415,LAM-A02,R3C2,AOI-前贴附#1,2026-04-15 14:22:09.540142,划痕,轻微,97.14,224.35,155.0,340.0,14,白班,2026-04-15
+D00622,PANEL-0049,BATCH-20260424,LAM-A01,R4C2,AOI-前贴附#1,2026-04-24 08:53:27.255557,暗点,轻微,71.0,266.21,155.0,340.0,8,白班,2026-04-24
+D00623,PANEL-0377,BATCH-20260424,LAM-A02,R1C2,AOI-前贴附#2,2026-04-24 16:21:22.273019,暗点,严重,27.51,238.6,155.0,340.0,16,白班,2026-04-24
+D00624,PANEL-0329,BATCH-20260419,LAM-A01,R3C1,AOI-前贴附#2,2026-04-19 09:05:51.735930,划痕,中等,123.32,252.3,155.0,340.0,9,白班,2026-04-19
+D00625,PANEL-0297,BATCH-20260409,LAM-A02,R1C2,AOI-前贴附#1,2026-04-09 17:27:32.284925,划痕,中等,49.71,240.96,155.0,340.0,17,夜班,2026-04-09
+D00626,PANEL-0362,BATCH-20260405,LAM-A02,R4C3,AOI-前贴附#1,2026-04-05 16:38:34.559134,异物,严重,44.59,233.38,155.0,340.0,16,白班,2026-04-05
+D00627,PANEL-0077,BATCH-20260429,LAM-A01,R1C4,AOI-前贴附#2,2026-04-29 04:18:04.408925,亮点,轻微,97.95,261.5,155.0,340.0,4,夜班,2026-04-29
+D00628,PANEL-0463,BATCH-20260401,LAM-A01,R2C3,AOI-前贴附#2,2026-04-01 11:49:36.069457,气泡,轻微,126.3,264.11,155.0,340.0,11,白班,2026-04-01
+D00629,PANEL-0438,BATCH-20260401,LAM-A01,R4C5,AOI-后段全检,2026-04-01 08:57:11.375414,亮点,中等,105.19,248.08,155.0,340.0,8,白班,2026-04-01
+D00630,PANEL-0127,BATCH-20260412,LAM-A01,R3C4,AOI-后段全检,2026-04-12 11:41:43.242034,划痕,轻微,88.78,223.91,155.0,340.0,11,白班,2026-04-12
+D00631,PANEL-0197,BATCH-20260405,LAM-A02,R4C3,AOI-后段全检,2026-04-05 13:31:26.119084,亮点,中等,89.4,248.45,155.0,340.0,13,白班,2026-04-05
+D00632,PANEL-0221,BATCH-20260401,LAM-A01,R2C3,AOI-前贴附#2,2026-04-01 16:30:17.804592,亮点,轻微,94.57,259.7,155.0,340.0,16,白班,2026-04-01
+D00633,PANEL-0483,BATCH-20260410,LAM-B01,R4C3,AOI-前贴附#2,2026-04-10 21:15:51.332511,色差,中等,92.68,237.25,155.0,340.0,21,夜班,2026-04-10
+D00634,PANEL-0091,BATCH-20260420,LAM-A01,R4C4,AOI-前贴附#1,2026-04-20 13:46:57.468064,气泡,轻微,83.12,257.2,155.0,340.0,13,白班,2026-04-20
+D00635,PANEL-0411,BATCH-20260408,LAM-B01,R2C4,AOI-前贴附#2,2026-04-08 17:45:52.968222,划痕,中等,79.58,254.82,155.0,340.0,17,夜班,2026-04-08
+D00636,PANEL-0008,BATCH-20260407,LAM-A01,R4C4,AOI-前贴附#1,2026-04-07 14:19:56.833662,异物,轻微,76.25,261.95,155.0,340.0,14,白班,2026-04-07
+D00637,PANEL-0032,BATCH-20260404,LAM-A02,R3C1,AOI-后段全检,2026-04-04 22:22:52.495725,亮点,中等,62.42,256.43,155.0,340.0,22,夜班,2026-04-04
+D00638,PANEL-0468,BATCH-20260404,LAM-A01,R2C3,AOI-前贴附#2,2026-04-04 16:18:57.954634,异物,轻微,71.89,243.32,155.0,340.0,16,白班,2026-04-04
+D00639,PANEL-0320,BATCH-20260430,LAM-A01,R2C3,AOI-前贴附#2,2026-04-30 14:09:32.412694,异物,中等,43.64,269.36,155.0,340.0,14,白班,2026-04-30
+D00640,PANEL-0394,BATCH-20260413,LAM-A01,R4C4,AOI-前贴附#1,2026-04-13 11:15:11.507616,划痕,严重,75.53,253.1,155.0,340.0,11,白班,2026-04-13
+D00641,PANEL-0269,BATCH-20260405,LAM-A02,R4C3,AOI-前贴附#2,2026-04-05 14:05:10.239374,亮点,中等,57.73,254.67,155.0,340.0,14,白班,2026-04-05
+D00642,PANEL-0191,BATCH-20260425,LAM-A01,R2C5,AOI-前贴附#1,2026-04-25 03:11:03.678586,亮点,轻微,55.43,243.8,155.0,340.0,3,夜班,2026-04-25
+D00643,PANEL-0349,BATCH-20260415,LAM-A01,R2C2,AOI-前贴附#1,2026-04-15 13:45:40.100178,气泡,中等,81.1,249.68,155.0,340.0,13,白班,2026-04-15
+D00644,PANEL-0163,BATCH-20260424,LAM-A01,R2C4,AOI-前贴附#1,2026-04-24 06:26:18.494754,暗点,轻微,105.34,244.38,155.0,340.0,6,夜班,2026-04-24
+D00645,PANEL-0061,BATCH-20260422,LAM-A01,R4C4,AOI-前贴附#1,2026-04-22 16:46:19.939690,异物,中等,95.87,252.92,155.0,340.0,16,白班,2026-04-22
+D00646,PANEL-0438,BATCH-20260415,LAM-A02,R4C4,AOI-前贴附#2,2026-04-15 20:45:36.344509,气泡,轻微,46.09,275.54,155.0,340.0,20,夜班,2026-04-15
+D00647,PANEL-0264,BATCH-20260425,LAM-A01,R3C5,AOI-前贴附#2,2026-04-25 15:33:58.164911,划痕,轻微,57.71,238.54,155.0,340.0,15,白班,2026-04-25
+D00648,PANEL-0285,BATCH-20260418,LAM-A01,R4C1,AOI-后段全检,2026-04-18 08:22:12.295595,划痕,中等,96.32,235.64,155.0,340.0,8,白班,2026-04-18
+D00649,PANEL-0095,BATCH-20260412,LAM-A01,R2C2,AOI-前贴附#2,2026-04-12 16:23:16.556108,气泡,轻微,57.85,272.65,155.0,340.0,16,白班,2026-04-12
+D00650,PANEL-0041,BATCH-20260405,LAM-A01,R3C2,AOI-前贴附#1,2026-04-05 02:15:35.501541,划痕,轻微,73.01,252.49,155.0,340.0,2,夜班,2026-04-05
+D00651,PANEL-0414,BATCH-20260426,LAM-A02,R1C5,AOI-后段全检,2026-04-26 15:40:29.112561,色差,中等,88.5,246.97,155.0,340.0,15,白班,2026-04-26
+D00652,PANEL-0470,BATCH-20260430,LAM-A02,R1C5,AOI-前贴附#2,2026-04-30 13:56:56.853718,亮点,轻微,58.13,267.48,155.0,340.0,13,白班,2026-04-30
+D00653,PANEL-0149,BATCH-20260422,LAM-A02,R1C5,AOI-前贴附#2,2026-04-22 18:36:06.812576,亮点,中等,79.61,247.73,155.0,340.0,18,夜班,2026-04-22
+D00654,PANEL-0204,BATCH-20260430,LAM-A02,R3C5,AOI-前贴附#2,2026-04-30 16:02:45.633954,划痕,中等,50.82,276.91,155.0,340.0,16,白班,2026-04-30
+D00655,PANEL-0267,BATCH-20260419,LAM-A01,R1C1,AOI-后段全检,2026-04-19 16:13:06.610365,气泡,轻微,65.47,263.14,155.0,340.0,16,白班,2026-04-19
+D00656,PANEL-0002,BATCH-20260419,LAM-A01,R3C1,AOI-前贴附#1,2026-04-19 11:03:21.349722,划痕,轻微,83.9,249.15,155.0,340.0,11,白班,2026-04-19
+D00657,PANEL-0178,BATCH-20260418,LAM-A01,R1C1,AOI-前贴附#1,2026-04-18 11:29:10.895980,色差,轻微,45.64,280.89,155.0,340.0,11,白班,2026-04-18
+D00658,PANEL-0425,BATCH-20260408,LAM-A02,R4C3,AOI-前贴附#2,2026-04-08 19:34:26.303894,亮点,中等,86.31,247.73,155.0,340.0,19,夜班,2026-04-08
+D00659,PANEL-0194,BATCH-20260403,LAM-B01,R4C4,AOI-前贴附#1,2026-04-03 17:49:13.552712,色差,轻微,77.11,263.91,155.0,340.0,17,夜班,2026-04-03
+D00660,PANEL-0482,BATCH-20260410,LAM-A01,R2C2,AOI-后段全检,2026-04-10 12:39:51.512485,暗点,轻微,88.55,258.59,155.0,340.0,12,白班,2026-04-10
+D00661,PANEL-0387,BATCH-20260402,LAM-A01,R4C1,AOI-前贴附#2,2026-04-02 14:04:07.304713,划痕,中等,81.98,270.62,155.0,340.0,14,白班,2026-04-02
+D00662,PANEL-0336,BATCH-20260421,LAM-A01,R4C2,AOI-前贴附#2,2026-04-21 12:42:55.243943,气泡,轻微,104.78,273.74,155.0,340.0,12,白班,2026-04-21
+D00663,PANEL-0435,BATCH-20260427,LAM-B01,R1C2,AOI-前贴附#2,2026-04-27 23:06:55.805023,划痕,轻微,80.0,255.38,155.0,340.0,23,夜班,2026-04-27
+D00664,PANEL-0196,BATCH-20260405,LAM-A01,R2C1,AOI-前贴附#1,2026-04-05 15:29:54.591151,亮点,轻微,68.91,245.96,155.0,340.0,15,白班,2026-04-05
+D00665,PANEL-0343,BATCH-20260428,LAM-A02,R4C3,AOI-后段全检,2026-04-28 14:22:19.295108,划痕,中等,79.95,260.52,155.0,340.0,14,白班,2026-04-28
+D00666,PANEL-0249,BATCH-20260414,LAM-A01,R2C1,AOI-后段全检,2026-04-14 11:01:06.952421,气泡,轻微,88.37,246.87,155.0,340.0,11,白班,2026-04-14
+D00667,PANEL-0498,BATCH-20260427,LAM-B01,R5C2,AOI-前贴附#2,2026-04-27 17:08:22.933412,漏光,严重,78.48,279.16,155.0,340.0,17,夜班,2026-04-27
+D00668,PANEL-0212,BATCH-20260409,LAM-A01,R2C4,AOI-后段全检,2026-04-09 16:06:10.502251,暗点,轻微,78.31,256.64,155.0,340.0,16,白班,2026-04-09
+D00669,PANEL-0153,BATCH-20260401,LAM-A02,R2C5,AOI-前贴附#1,2026-04-01 13:38:31.556602,暗点,中等,63.46,250.62,155.0,340.0,13,白班,2026-04-01
+D00670,PANEL-0158,BATCH-20260405,LAM-A01,R2C1,AOI-后段全检,2026-04-05 16:56:16.667399,气泡,轻微,64.24,257.22,155.0,340.0,16,白班,2026-04-05
+D00671,PANEL-0466,BATCH-20260404,LAM-A01,R3C4,AOI-前贴附#1,2026-04-04 01:12:21.304704,划痕,严重,49.45,238.83,155.0,340.0,1,夜班,2026-04-04
+D00672,PANEL-0362,BATCH-20260427,LAM-B01,R2C2,AOI-前贴附#1,2026-04-27 17:14:17.905787,漏光,轻微,112.49,243.34,155.0,340.0,17,夜班,2026-04-27
+D00673,PANEL-0139,BATCH-20260427,LAM-A02,R2C2,AOI-前贴附#1,2026-04-27 15:39:07.736483,划痕,中等,52.62,269.4,155.0,340.0,15,白班,2026-04-27
+D00674,PANEL-0221,BATCH-20260412,LAM-A02,R1C3,AOI-前贴附#1,2026-04-12 15:54:07.876731,异物,轻微,63.64,247.12,155.0,340.0,15,白班,2026-04-12
+D00675,PANEL-0273,BATCH-20260420,LAM-B01,R5C3,AOI-前贴附#1,2026-04-20 23:43:03.525338,气泡,轻微,63.13,242.44,155.0,340.0,23,夜班,2026-04-20
+D00676,PANEL-0154,BATCH-20260407,LAM-A01,R4C1,AOI-后段全检,2026-04-07 13:08:08.357546,漏光,中等,95.4,261.44,155.0,340.0,13,白班,2026-04-07
+D00677,PANEL-0249,BATCH-20260405,LAM-A01,R2C2,AOI-后段全检,2026-04-05 09:42:53.873317,气泡,轻微,71.6,269.23,155.0,340.0,9,白班,2026-04-05
+D00678,PANEL-0279,BATCH-20260403,LAM-B01,R5C2,AOI-前贴附#1,2026-04-03 17:22:31.210353,亮点,中等,102.45,263.63,155.0,340.0,17,夜班,2026-04-03
+D00679,PANEL-0440,BATCH-20260430,LAM-A01,R3C3,AOI-前贴附#1,2026-04-30 09:21:33.352156,暗点,严重,64.03,266.95,155.0,340.0,9,白班,2026-04-30
+D00680,PANEL-0436,BATCH-20260403,LAM-A01,R2C4,AOI-后段全检,2026-04-03 06:35:41.015648,划痕,中等,83.08,245.92,155.0,340.0,6,夜班,2026-04-03
+D00681,PANEL-0304,BATCH-20260415,LAM-A02,R2C4,AOI-前贴附#1,2026-04-15 12:40:07.104894,暗点,中等,60.79,237.94,155.0,340.0,12,白班,2026-04-15
+D00682,PANEL-0276,BATCH-20260410,LAM-A01,R4C5,AOI-前贴附#1,2026-04-10 16:05:43.103812,暗点,中等,120.4,273.02,155.0,340.0,16,白班,2026-04-10
+D00683,PANEL-0493,BATCH-20260418,LAM-B01,R4C1,AOI-前贴附#2,2026-04-18 19:20:57.734563,漏光,中等,53.75,251.13,155.0,340.0,19,夜班,2026-04-18
+D00684,PANEL-0002,BATCH-20260412,LAM-A01,R1C2,AOI-前贴附#2,2026-04-12 02:11:12.619586,暗点,轻微,83.7,251.99,155.0,340.0,2,夜班,2026-04-12
+D00685,PANEL-0088,BATCH-20260420,LAM-A01,R1C2,AOI-前贴附#1,2026-04-20 14:07:07.254382,划痕,轻微,90.18,270.94,155.0,340.0,14,白班,2026-04-20
+D00686,PANEL-0287,BATCH-20260408,LAM-A02,R2C1,AOI-前贴附#2,2026-04-08 21:46:27.823394,亮点,轻微,85.78,261.67,155.0,340.0,21,夜班,2026-04-08
+D00687,PANEL-0411,BATCH-20260413,LAM-A02,R2C5,AOI-前贴附#2,2026-04-13 21:33:50.031341,气泡,严重,73.79,260.47,155.0,340.0,21,夜班,2026-04-13
+D00688,PANEL-0130,BATCH-20260404,LAM-A01,R2C1,AOI-前贴附#1,2026-04-04 01:29:25.116219,划痕,严重,74.9,280.98,155.0,340.0,1,夜班,2026-04-04
+D00689,PANEL-0078,BATCH-20260421,LAM-A01,R4C1,AOI-后段全检,2026-04-21 04:58:50.978452,亮点,中等,78.38,247.28,155.0,340.0,4,夜班,2026-04-21
+D00690,PANEL-0260,BATCH-20260410,LAM-A01,R4C2,AOI-前贴附#2,2026-04-10 09:43:51.942746,色差,轻微,74.56,266.13,155.0,340.0,9,白班,2026-04-10
+D00691,PANEL-0241,BATCH-20260415,LAM-A02,R1C3,AOI-前贴附#1,2026-04-15 20:22:28.482538,暗点,轻微,96.78,255.68,155.0,340.0,20,夜班,2026-04-15
+D00692,PANEL-0141,BATCH-20260408,LAM-A02,R2C2,AOI-前贴附#1,2026-04-08 13:35:55.396922,暗点,中等,121.71,258.22,155.0,340.0,13,白班,2026-04-08
+D00693,PANEL-0228,BATCH-20260416,LAM-A01,R2C4,AOI-前贴附#1,2026-04-16 11:21:56.502583,亮点,轻微,66.35,273.34,155.0,340.0,11,白班,2026-04-16
+D00694,PANEL-0163,BATCH-20260409,LAM-A02,R3C2,AOI-前贴附#2,2026-04-09 12:42:51.751981,气泡,轻微,50.1,261.09,155.0,340.0,12,白班,2026-04-09
+D00695,PANEL-0236,BATCH-20260424,LAM-A01,R1C5,AOI-前贴附#1,2026-04-24 02:13:49.943622,划痕,严重,75.73,261.46,155.0,340.0,2,夜班,2026-04-24
+D00696,PANEL-0128,BATCH-20260425,LAM-A02,R3C1,AOI-前贴附#2,2026-04-25 21:21:04.917076,气泡,轻微,129.09,267.87,155.0,340.0,21,夜班,2026-04-25
+D00697,PANEL-0200,BATCH-20260415,LAM-A01,R1C4,AOI-前贴附#1,2026-04-15 09:08:28.149195,划痕,中等,61.43,250.62,155.0,340.0,9,白班,2026-04-15
+D00698,PANEL-0450,BATCH-20260410,LAM-A01,R1C5,AOI-前贴附#2,2026-04-10 01:19:51.052096,漏光,严重,110.28,244.93,155.0,340.0,1,夜班,2026-04-10
+D00699,PANEL-0390,BATCH-20260416,LAM-A01,R4C3,AOI-前贴附#2,2026-04-16 12:01:38.438652,亮点,轻微,111.05,242.46,155.0,340.0,12,白班,2026-04-16
+D00700,PANEL-0031,BATCH-20260418,LAM-B01,R4C1,AOI-前贴附#2,2026-04-18 23:48:19.209753,亮点,中等,66.43,231.4,155.0,340.0,23,夜班,2026-04-18
+D00701,PANEL-0138,BATCH-20260405,LAM-A02,R1C2,AOI-前贴附#2,2026-04-05 20:58:30.046535,暗点,轻微,88.88,279.67,155.0,340.0,20,夜班,2026-04-05
+D00702,PANEL-0492,BATCH-20260417,LAM-A01,R1C5,AOI-后段全检,2026-04-17 09:41:55.452134,暗点,中等,110.07,241.76,155.0,340.0,9,白班,2026-04-17
+D00703,PANEL-0021,BATCH-20260405,LAM-A01,R3C3,AOI-前贴附#2,2026-04-05 08:04:02.384389,划痕,严重,69.92,252.34,155.0,340.0,8,白班,2026-04-05
+D00704,PANEL-0234,BATCH-20260427,LAM-A02,R4C1,AOI-前贴附#1,2026-04-27 16:41:37.533729,气泡,轻微,73.43,251.68,155.0,340.0,16,白班,2026-04-27
+D00705,PANEL-0202,BATCH-20260403,LAM-A02,R1C3,AOI-前贴附#2,2026-04-03 12:50:38.433135,划痕,轻微,65.87,258.69,155.0,340.0,12,白班,2026-04-03
+D00706,PANEL-0279,BATCH-20260428,LAM-A01,R1C4,AOI-后段全检,2026-04-28 02:40:36.072083,漏光,中等,57.2,264.79,155.0,340.0,2,夜班,2026-04-28
+D00707,PANEL-0131,BATCH-20260421,LAM-A02,R3C4,AOI-前贴附#1,2026-04-21 23:54:20.569690,色差,轻微,64.51,265.33,155.0,340.0,23,夜班,2026-04-21
+D00708,PANEL-0416,BATCH-20260411,LAM-A01,R1C3,AOI-前贴附#1,2026-04-11 06:48:37.469588,亮点,轻微,53.02,248.0,155.0,340.0,6,夜班,2026-04-11
+D00709,PANEL-0148,BATCH-20260416,LAM-B01,R4C3,AOI-前贴附#2,2026-04-16 23:02:14.956817,色差,轻微,78.18,252.99,155.0,340.0,23,夜班,2026-04-16
+D00710,PANEL-0458,BATCH-20260428,LAM-A02,R2C5,AOI-前贴附#2,2026-04-28 14:16:05.746315,亮点,中等,62.1,258.39,155.0,340.0,14,白班,2026-04-28
+D00711,PANEL-0029,BATCH-20260430,LAM-A01,R2C4,AOI-前贴附#2,2026-04-30 02:25:38.722766,划痕,轻微,82.18,252.02,155.0,340.0,2,夜班,2026-04-30
+D00712,PANEL-0361,BATCH-20260410,LAM-A01,R3C1,AOI-前贴附#1,2026-04-10 06:32:11.021796,异物,严重,46.38,274.29,155.0,340.0,6,夜班,2026-04-10
+D00713,PANEL-0308,BATCH-20260419,LAM-B01,R3C2,AOI-前贴附#1,2026-04-19 20:42:31.061234,气泡,轻微,84.12,260.89,155.0,340.0,20,夜班,2026-04-19
+D00714,PANEL-0371,BATCH-20260421,LAM-A01,R4C4,AOI-后段全检,2026-04-21 12:00:45.284378,亮点,中等,94.17,263.82,155.0,340.0,12,白班,2026-04-21
+D00715,PANEL-0430,BATCH-20260417,LAM-A02,R1C2,AOI-前贴附#1,2026-04-17 13:44:02.465480,亮点,轻微,37.63,262.95,155.0,340.0,13,白班,2026-04-17
+D00716,PANEL-0162,BATCH-20260424,LAM-A02,R4C4,AOI-前贴附#1,2026-04-24 15:19:49.828168,亮点,严重,84.98,269.08,155.0,340.0,15,白班,2026-04-24
+D00717,PANEL-0357,BATCH-20260410,LAM-A01,R2C3,AOI-前贴附#2,2026-04-10 11:14:32.176648,异物,中等,123.54,4.99,155.0,340.0,11,白班,2026-04-10
+D00718,PANEL-0340,BATCH-20260425,LAM-A01,R1C3,AOI-后段全检,2026-04-25 09:33:53.058534,划痕,严重,119.05,11.39,155.0,340.0,9,白班,2026-04-25
+D00719,PANEL-0061,BATCH-20260415,LAM-A01,R3C4,AOI-前贴附#2,2026-04-15 09:56:16.667092,亮点,轻微,34.1,4.36,155.0,340.0,9,白班,2026-04-15
+D00720,PANEL-0125,BATCH-20260403,LAM-A01,R4C1,AOI-后段全检,2026-04-03 09:13:08.905263,暗点,中等,45.66,5.3,155.0,340.0,9,白班,2026-04-03
+D00721,PANEL-0456,BATCH-20260404,LAM-A01,R1C3,AOI-前贴附#1,2026-04-04 16:48:39.953776,亮点,轻微,42.51,7.89,155.0,340.0,16,白班,2026-04-04
+D00722,PANEL-0071,BATCH-20260429,LAM-A01,R4C3,AOI-前贴附#1,2026-04-29 02:15:43.805186,亮点,轻微,98.97,13.09,155.0,340.0,2,夜班,2026-04-29
+D00723,PANEL-0326,BATCH-20260414,LAM-A01,R2C1,AOI-前贴附#1,2026-04-14 16:04:38.317953,划痕,中等,107.69,2.42,155.0,340.0,16,白班,2026-04-14
+D00724,PANEL-0395,BATCH-20260430,LAM-A01,R1C1,AOI-后段全检,2026-04-30 09:57:00.601783,划痕,中等,50.28,10.68,155.0,340.0,9,白班,2026-04-30
+D00725,PANEL-0364,BATCH-20260401,LAM-A01,R2C5,AOI-前贴附#2,2026-04-01 08:07:55.423001,划痕,轻微,78.06,14.13,155.0,340.0,8,白班,2026-04-01
+D00726,PANEL-0466,BATCH-20260419,LAM-A01,R2C1,AOI-前贴附#1,2026-04-19 10:41:50.838150,漏光,严重,109.87,9.22,155.0,340.0,10,白班,2026-04-19
+D00727,PANEL-0243,BATCH-20260419,LAM-A01,R3C2,AOI-前贴附#2,2026-04-19 12:25:52.138485,划痕,中等,99.62,8.52,155.0,340.0,12,白班,2026-04-19
+D00728,PANEL-0490,BATCH-20260414,LAM-A02,R3C3,AOI-前贴附#1,2026-04-14 12:58:05.274391,气泡,中等,81.51,11.61,155.0,340.0,12,白班,2026-04-14
+D00729,PANEL-0249,BATCH-20260413,LAM-A01,R2C3,AOI-前贴附#2,2026-04-13 13:47:31.159480,气泡,轻微,86.08,9.23,155.0,340.0,13,白班,2026-04-13
+D00730,PANEL-0221,BATCH-20260422,LAM-A01,R4C5,AOI-后段全检,2026-04-22 09:58:02.737354,色差,中等,78.29,15.56,155.0,340.0,9,白班,2026-04-22
+D00731,PANEL-0473,BATCH-20260406,LAM-A01,R3C2,AOI-前贴附#1,2026-04-06 15:48:24.860527,漏光,严重,58.27,5.55,155.0,340.0,15,白班,2026-04-06
+D00732,PANEL-0447,BATCH-20260409,LAM-A01,R2C2,AOI-前贴附#1,2026-04-09 09:49:48.190771,划痕,轻微,83.68,9.79,155.0,340.0,9,白班,2026-04-09
+D00733,PANEL-0021,BATCH-20260426,LAM-A01,R3C2,AOI-前贴附#1,2026-04-26 10:07:36.130722,划痕,轻微,95.44,10.82,155.0,340.0,10,白班,2026-04-26
+D00734,PANEL-0494,BATCH-20260421,LAM-A02,R3C4,AOI-前贴附#1,2026-04-21 13:55:10.575406,亮点,轻微,112.97,8.49,155.0,340.0,13,白班,2026-04-21
+D00735,PANEL-0387,BATCH-20260421,LAM-A01,R1C5,AOI-前贴附#1,2026-04-21 08:42:07.796088,划痕,轻微,102.31,9.36,155.0,340.0,8,白班,2026-04-21
+D00736,PANEL-0082,BATCH-20260412,LAM-A01,R2C4,AOI-前贴附#2,2026-04-12 09:30:33.173143,气泡,中等,45.21,13.6,155.0,340.0,9,白班,2026-04-12
+D00737,PANEL-0344,BATCH-20260408,LAM-A01,R3C1,AOI-前贴附#1,2026-04-08 12:47:12.065756,暗点,轻微,73.85,13.11,155.0,340.0,12,白班,2026-04-08
+D00738,PANEL-0367,BATCH-20260421,LAM-A01,R1C5,AOI-后段全检,2026-04-21 08:18:05.237770,漏光,严重,30.89,11.42,155.0,340.0,8,白班,2026-04-21
+D00739,PANEL-0486,BATCH-20260418,LAM-A01,R1C3,AOI-前贴附#1,2026-04-18 10:13:50.161541,划痕,中等,53.43,5.61,155.0,340.0,10,白班,2026-04-18
+D00740,PANEL-0010,BATCH-20260427,LAM-A01,R4C2,AOI-前贴附#1,2026-04-27 15:59:53.049658,漏光,严重,99.01,11.58,155.0,340.0,15,白班,2026-04-27
+D00741,PANEL-0411,BATCH-20260412,LAM-A01,R1C2,AOI-前贴附#1,2026-04-12 07:03:17.748052,划痕,轻微,124.22,7.71,155.0,340.0,7,夜班,2026-04-12
+D00742,PANEL-0012,BATCH-20260416,LAM-A02,R1C1,AOI-前贴附#2,2026-04-16 12:58:58.572894,亮点,中等,39.42,11.41,155.0,340.0,12,白班,2026-04-16
+D00743,PANEL-0263,BATCH-20260416,LAM-A01,R2C2,AOI-前贴附#2,2026-04-16 11:35:55.082921,亮点,中等,68.14,10.49,155.0,340.0,11,白班,2026-04-16
+D00744,PANEL-0145,BATCH-20260424,LAM-A02,R3C4,AOI-后段全检,2026-04-24 16:19:05.172092,气泡,轻微,106.01,6.09,155.0,340.0,16,白班,2026-04-24
+D00745,PANEL-0449,BATCH-20260428,LAM-A01,R1C5,AOI-前贴附#2,2026-04-28 08:22:41.064721,亮点,中等,49.38,6.43,155.0,340.0,8,白班,2026-04-28
+D00746,PANEL-0192,BATCH-20260411,LAM-A01,R4C4,AOI-后段全检,2026-04-11 10:29:27.573760,裂纹,中等,82.73,11.42,155.0,340.0,10,白班,2026-04-11
+D00747,PANEL-0250,BATCH-20260421,LAM-A01,R3C1,AOI-前贴附#2,2026-04-21 08:22:18.290657,漏光,中等,99.64,9.12,155.0,340.0,8,白班,2026-04-21
+D00748,PANEL-0114,BATCH-20260410,LAM-A02,R1C2,AOI-前贴附#1,2026-04-10 20:45:16.519607,漏光,严重,88.52,6.64,155.0,340.0,20,夜班,2026-04-10
+D00749,PANEL-0026,BATCH-20260410,LAM-A02,R2C4,AOI-后段全检,2026-04-10 14:00:53.451458,划痕,中等,47.86,6.31,155.0,340.0,14,白班,2026-04-10
+D00750,PANEL-0271,BATCH-20260424,LAM-A01,R1C3,AOI-后段全检,2026-04-24 12:23:46.981981,漏光,中等,63.76,8.78,155.0,340.0,12,白班,2026-04-24
+D00751,PANEL-0499,BATCH-20260430,LAM-A02,R2C2,AOI-后段全检,2026-04-30 16:54:41.710266,色差,轻微,104.46,16.27,155.0,340.0,16,白班,2026-04-30
+D00752,PANEL-0033,BATCH-20260401,LAM-A01,R1C5,AOI-前贴附#1,2026-04-01 15:25:46.192537,划痕,严重,82.65,7.9,155.0,340.0,15,白班,2026-04-01
+D00753,PANEL-0062,BATCH-20260427,LAM-A02,R3C3,AOI-前贴附#2,2026-04-27 15:46:46.387173,划痕,严重,30.5,9.94,155.0,340.0,15,白班,2026-04-27
+D00754,PANEL-0229,BATCH-20260419,LAM-A01,R4C5,AOI-前贴附#1,2026-04-19 13:29:43.959736,划痕,中等,102.29,10.41,155.0,340.0,13,白班,2026-04-19
+D00755,PANEL-0303,BATCH-20260411,LAM-A01,R2C1,AOI-前贴附#1,2026-04-11 10:01:40.361278,划痕,轻微,33.35,5.48,155.0,340.0,10,白班,2026-04-11
+D00756,PANEL-0095,BATCH-20260427,LAM-A01,R4C5,AOI-前贴附#2,2026-04-27 10:44:37.263759,暗点,严重,100.84,2.95,155.0,340.0,10,白班,2026-04-27
+D00757,PANEL-0035,BATCH-20260418,LAM-A02,R1C2,AOI-后段全检,2026-04-18 13:51:12.589929,异物,轻微,49.24,5.89,155.0,340.0,13,白班,2026-04-18
+D00758,PANEL-0193,BATCH-20260402,LAM-A01,R2C1,AOI-前贴附#2,2026-04-02 09:12:49.979143,亮点,轻微,121.02,10.99,155.0,340.0,9,白班,2026-04-02
+D00759,PANEL-0456,BATCH-20260406,LAM-A01,R1C3,AOI-后段全检,2026-04-06 14:46:55.126576,暗点,轻微,64.95,10.35,155.0,340.0,14,白班,2026-04-06
+D00760,PANEL-0076,BATCH-20260428,LAM-A01,R1C1,AOI-前贴附#1,2026-04-28 01:07:17.390113,异物,中等,61.06,12.81,155.0,340.0,1,夜班,2026-04-28
+D00761,PANEL-0379,BATCH-20260407,LAM-A01,R1C1,AOI-前贴附#1,2026-04-07 10:11:28.743349,划痕,严重,44.14,10.39,155.0,340.0,10,白班,2026-04-07
+D00762,PANEL-0249,BATCH-20260409,LAM-A01,R4C4,AOI-前贴附#2,2026-04-09 08:51:32.498722,漏光,中等,59.03,9.56,155.0,340.0,8,白班,2026-04-09
+D00763,PANEL-0083,BATCH-20260407,LAM-A02,R3C3,AOI-前贴附#1,2026-04-07 18:28:02.731267,暗点,轻微,113.28,7.58,155.0,340.0,18,夜班,2026-04-07
+D00764,PANEL-0025,BATCH-20260415,LAM-A01,R4C4,AOI-后段全检,2026-04-15 08:08:29.182542,暗点,中等,124.65,13.54,155.0,340.0,8,白班,2026-04-15
+D00765,PANEL-0057,BATCH-20260408,LAM-A02,R4C1,AOI-前贴附#1,2026-04-08 15:09:32.475302,亮点,中等,64.99,6.32,155.0,340.0,15,白班,2026-04-08
+D00766,PANEL-0032,BATCH-20260426,LAM-A01,R4C4,AOI-前贴附#2,2026-04-26 12:04:16.208872,暗点,轻微,72.62,5.56,155.0,340.0,12,白班,2026-04-26
+D00767,PANEL-0319,BATCH-20260401,LAM-A01,R1C3,AOI-前贴附#2,2026-04-01 08:20:07.696732,划痕,严重,98.6,12.27,155.0,340.0,8,白班,2026-04-01
+D00768,PANEL-0012,BATCH-20260425,LAM-A02,R1C5,AOI-前贴附#1,2026-04-25 12:17:00.828854,色差,中等,114.19,4.67,155.0,340.0,12,白班,2026-04-25
+D00769,PANEL-0319,BATCH-20260425,LAM-A02,R2C2,AOI-后段全检,2026-04-25 15:59:47.282571,划痕,中等,86.34,19.66,155.0,340.0,15,白班,2026-04-25
+D00770,PANEL-0333,BATCH-20260424,LAM-A01,R3C5,AOI-前贴附#2,2026-04-24 13:43:17.289545,漏光,轻微,67.19,10.32,155.0,340.0,13,白班,2026-04-24
+D00771,PANEL-0092,BATCH-20260409,LAM-A02,R1C3,AOI-前贴附#2,2026-04-09 16:37:18.338790,亮点,中等,69.2,11.39,155.0,340.0,16,白班,2026-04-09
+D00772,PANEL-0001,BATCH-20260426,LAM-A02,R4C5,AOI-后段全检,2026-04-26 12:07:41.604531,划痕,轻微,96.08,6.77,155.0,340.0,12,白班,2026-04-26
+D00773,PANEL-0435,BATCH-20260419,LAM-A01,R1C5,AOI-前贴附#1,2026-04-19 10:01:12.933728,气泡,轻微,30.31,8.74,155.0,340.0,10,白班,2026-04-19
+D00774,PANEL-0326,BATCH-20260423,LAM-A02,R2C3,AOI-后段全检,2026-04-23 13:55:33.265489,划痕,轻微,88.86,8.29,155.0,340.0,13,白班,2026-04-23
+D00775,PANEL-0136,BATCH-20260412,LAM-A02,R1C1,AOI-前贴附#1,2026-04-12 16:39:09.514075,气泡,轻微,63.77,7.83,155.0,340.0,16,白班,2026-04-12
+D00776,PANEL-0196,BATCH-20260426,LAM-A02,R4C3,AOI-前贴附#1,2026-04-26 13:12:08.969004,异物,轻微,105.45,12.53,155.0,340.0,13,白班,2026-04-26
+D00777,PANEL-0133,BATCH-20260429,LAM-A01,R4C5,AOI-后段全检,2026-04-29 10:18:36.131924,色差,中等,38.83,8.2,155.0,340.0,10,白班,2026-04-29
+D00778,PANEL-0473,BATCH-20260427,LAM-A01,R4C1,AOI-后段全检,2026-04-27 09:33:49.779670,划痕,中等,85.88,14.07,155.0,340.0,9,白班,2026-04-27
+D00779,PANEL-0086,BATCH-20260409,LAM-A02,R4C5,AOI-前贴附#1,2026-04-09 12:52:07.933028,暗点,轻微,75.69,20.65,155.0,340.0,12,白班,2026-04-09
+D00780,PANEL-0476,BATCH-20260401,LAM-A02,R3C3,AOI-前贴附#2,2026-04-01 13:11:33.283651,气泡,轻微,91.02,8.82,155.0,340.0,13,白班,2026-04-01
+D00781,PANEL-0295,BATCH-20260402,LAM-A01,R2C5,AOI-后段全检,2026-04-02 12:57:25.541225,色差,轻微,36.16,10.61,155.0,340.0,12,白班,2026-04-02
+D00782,PANEL-0279,BATCH-20260430,LAM-A01,R3C4,AOI-前贴附#1,2026-04-30 16:09:50.573653,划痕,轻微,85.1,11.52,155.0,340.0,16,白班,2026-04-30
+D00783,PANEL-0324,BATCH-20260407,LAM-A01,R4C1,AOI-前贴附#1,2026-04-07 09:55:33.186786,暗点,轻微,83.34,17.25,155.0,340.0,9,白班,2026-04-07
+D00784,PANEL-0180,BATCH-20260428,LAM-A01,R3C5,AOI-前贴附#2,2026-04-28 09:37:13.623005,暗点,中等,83.26,9.67,155.0,340.0,9,白班,2026-04-28
+D00785,PANEL-0004,BATCH-20260424,LAM-A01,R3C2,AOI-前贴附#1,2026-04-24 06:41:25.299876,划痕,轻微,87.33,6.68,155.0,340.0,6,夜班,2026-04-24
+D00786,PANEL-0126,BATCH-20260427,LAM-A01,R2C3,AOI-前贴附#1,2026-04-27 12:13:03.002167,亮点,中等,94.26,4.93,155.0,340.0,12,白班,2026-04-27
+D00787,PANEL-0175,BATCH-20260411,LAM-A02,R4C3,AOI-后段全检,2026-04-11 13:00:20.408135,亮点,中等,106.47,9.77,155.0,340.0,13,白班,2026-04-11
+D00788,PANEL-0251,BATCH-20260414,LAM-A01,R4C3,AOI-前贴附#1,2026-04-14 15:42:30.367140,色差,轻微,55.63,8.21,155.0,340.0,15,白班,2026-04-14
+D00789,PANEL-0021,BATCH-20260428,LAM-A02,R1C4,AOI-后段全检,2026-04-28 23:20:41.739078,裂纹,严重,108.38,18.04,155.0,340.0,23,夜班,2026-04-28
+D00790,PANEL-0485,BATCH-20260424,LAM-A02,R1C5,AOI-前贴附#2,2026-04-24 19:54:39.411523,气泡,轻微,77.33,17.08,155.0,340.0,19,夜班,2026-04-24
+D00791,PANEL-0440,BATCH-20260421,LAM-A01,R4C1,AOI-前贴附#2,2026-04-21 09:50:06.642743,亮点,严重,37.32,5.86,155.0,340.0,9,白班,2026-04-21
+D00792,PANEL-0105,BATCH-20260406,LAM-A01,R2C5,AOI-前贴附#2,2026-04-06 14:47:51.116238,划痕,中等,35.56,7.16,155.0,340.0,14,白班,2026-04-06
+D00793,PANEL-0066,BATCH-20260422,LAM-B01,R5C2,AOI-前贴附#2,2026-04-22 17:19:59.199995,异物,轻微,61.75,10.3,155.0,340.0,17,夜班,2026-04-22
+D00794,PANEL-0443,BATCH-20260404,LAM-A01,R4C3,AOI-前贴附#1,2026-04-04 14:34:44.691752,异物,中等,104.57,15.59,155.0,340.0,14,白班,2026-04-04
+D00795,PANEL-0263,BATCH-20260406,LAM-A01,R2C2,AOI-前贴附#1,2026-04-06 08:16:11.268618,裂纹,严重,97.23,10.23,155.0,340.0,8,白班,2026-04-06
+D00796,PANEL-0049,BATCH-20260402,LAM-A02,R1C5,AOI-前贴附#2,2026-04-02 15:07:41.495487,色差,轻微,104.92,7.41,155.0,340.0,15,白班,2026-04-02
+D00797,PANEL-0016,BATCH-20260413,LAM-A02,R4C1,AOI-前贴附#1,2026-04-13 12:53:04.216998,亮点,轻微,79.14,9.76,155.0,340.0,12,白班,2026-04-13
+D00798,PANEL-0145,BATCH-20260420,LAM-A01,R4C3,AOI-前贴附#1,2026-04-20 14:18:17.383359,色差,轻微,71.82,7.49,155.0,340.0,14,白班,2026-04-20
+D00799,PANEL-0340,BATCH-20260418,LAM-A01,R3C4,AOI-后段全检,2026-04-18 10:22:13.155015,亮点,中等,44.01,12.41,155.0,340.0,10,白班,2026-04-18
+D00800,PANEL-0250,BATCH-20260401,LAM-A02,R4C2,AOI-后段全检,2026-04-01 23:43:50.466987,亮点,轻微,61.18,7.16,155.0,340.0,23,夜班,2026-04-01
+D00801,PANEL-0343,BATCH-20260402,LAM-A01,R4C2,AOI-前贴附#1,2026-04-02 13:19:51.912783,气泡,中等,71.23,7.96,155.0,340.0,13,白班,2026-04-02
+D00802,PANEL-0354,BATCH-20260429,LAM-A01,R3C1,AOI-前贴附#1,2026-04-29 16:52:21.970195,划痕,轻微,38.42,14.65,155.0,340.0,16,白班,2026-04-29
+D00803,PANEL-0075,BATCH-20260404,LAM-A01,R4C2,AOI-前贴附#2,2026-04-04 09:46:15.906762,划痕,中等,50.96,6.93,155.0,340.0,9,白班,2026-04-04
+D00804,PANEL-0290,BATCH-20260402,LAM-B01,R4C2,AOI-后段全检,2026-04-02 20:05:24.766555,亮点,中等,86.83,4.22,155.0,340.0,20,夜班,2026-04-02
+D00805,PANEL-0417,BATCH-20260407,LAM-A01,R4C5,AOI-前贴附#1,2026-04-07 11:06:38.383347,亮点,中等,99.89,10.38,155.0,340.0,11,白班,2026-04-07
+D00806,PANEL-0282,BATCH-20260418,LAM-A02,R4C4,AOI-前贴附#1,2026-04-18 16:05:22.160211,漏光,轻微,124.84,8.56,155.0,340.0,16,白班,2026-04-18
+D00807,PANEL-0066,BATCH-20260404,LAM-A01,R2C2,AOI-后段全检,2026-04-04 15:33:14.591592,划痕,中等,118.65,12.05,155.0,340.0,15,白班,2026-04-04
+D00808,PANEL-0125,BATCH-20260411,LAM-A01,R3C3,AOI-后段全检,2026-04-11 03:02:47.118388,划痕,轻微,91.04,11.27,155.0,340.0,3,夜班,2026-04-11
+D00809,PANEL-0319,BATCH-20260414,LAM-A01,R4C3,AOI-前贴附#2,2026-04-14 05:25:56.918871,划痕,中等,70.02,9.87,155.0,340.0,5,夜班,2026-04-14
+D00810,PANEL-0087,BATCH-20260420,LAM-A01,R3C4,AOI-前贴附#1,2026-04-20 10:24:00.799372,划痕,中等,90.44,9.76,155.0,340.0,10,白班,2026-04-20
+D00811,PANEL-0041,BATCH-20260426,LAM-A01,R2C2,AOI-前贴附#2,2026-04-26 14:33:51.232343,划痕,中等,104.64,7.06,155.0,340.0,14,白班,2026-04-26
+D00812,PANEL-0470,BATCH-20260429,LAM-A02,R4C3,AOI-前贴附#2,2026-04-29 16:49:26.368999,气泡,中等,41.24,10.33,155.0,340.0,16,白班,2026-04-29
+D00813,PANEL-0186,BATCH-20260422,LAM-A01,R1C1,AOI-前贴附#1,2026-04-22 13:41:19.455813,亮点,中等,68.94,13.53,155.0,340.0,13,白班,2026-04-22
+D00814,PANEL-0354,BATCH-20260423,LAM-A01,R4C2,AOI-前贴附#1,2026-04-23 03:41:43.769819,气泡,轻微,109.78,6.11,155.0,340.0,3,夜班,2026-04-23
+D00815,PANEL-0380,BATCH-20260401,LAM-A01,R2C1,AOI-前贴附#1,2026-04-01 16:06:02.483661,异物,轻微,66.46,9.98,155.0,340.0,16,白班,2026-04-01
+D00816,PANEL-0335,BATCH-20260409,LAM-A01,R1C3,AOI-前贴附#2,2026-04-09 09:02:11.969870,气泡,轻微,84.33,14.15,155.0,340.0,9,白班,2026-04-09
+D00817,PANEL-0266,BATCH-20260422,LAM-A02,R1C5,AOI-前贴附#2,2026-04-22 13:38:34.582569,划痕,轻微,18.54,53.83,155.0,340.0,13,白班,2026-04-22
+D00818,PANEL-0271,BATCH-20260403,LAM-A01,R1C2,AOI-后段全检,2026-04-03 08:07:30.346580,划痕,中等,68.96,286.34,155.0,340.0,8,白班,2026-04-03
+D00819,PANEL-0042,BATCH-20260406,LAM-A02,R1C4,AOI-前贴附#2,2026-04-06 16:18:27.710003,漏光,中等,33.36,239.59,155.0,340.0,16,白班,2026-04-06
+D00820,PANEL-0093,BATCH-20260429,LAM-A02,R2C5,AOI-后段全检,2026-04-29 13:41:43.620618,暗点,中等,32.07,304.29,155.0,340.0,13,白班,2026-04-29
+D00821,PANEL-0185,BATCH-20260427,LAM-A02,R3C1,AOI-后段全检,2026-04-27 14:13:03.870625,色差,中等,18.64,48.68,155.0,340.0,14,白班,2026-04-27
+D00822,PANEL-0215,BATCH-20260420,LAM-A01,R4C1,AOI-前贴附#1,2026-04-20 13:48:38.802659,漏光,严重,56.72,200.69,155.0,340.0,13,白班,2026-04-20
+D00823,PANEL-0017,BATCH-20260414,LAM-B01,R5C1,AOI-前贴附#1,2026-04-14 21:25:42.149817,裂纹,严重,114.83,202.71,155.0,340.0,21,夜班,2026-04-14
+D00824,PANEL-0444,BATCH-20260419,LAM-A02,R2C2,AOI-前贴附#2,2026-04-19 13:58:33.904843,裂纹,严重,45.08,121.64,155.0,340.0,13,白班,2026-04-19
+D00825,PANEL-0265,BATCH-20260418,LAM-A02,R1C3,AOI-前贴附#1,2026-04-18 14:13:48.793670,暗点,中等,50.29,156.29,155.0,340.0,14,白班,2026-04-18
+D00826,PANEL-0114,BATCH-20260424,LAM-A01,R4C1,AOI-后段全检,2026-04-24 00:23:43.409603,亮点,轻微,98.19,17.53,155.0,340.0,0,夜班,2026-04-24
+D00827,PANEL-0292,BATCH-20260401,LAM-A02,R3C2,AOI-前贴附#1,2026-04-01 15:50:37.014852,异物,中等,33.4,251.13,155.0,340.0,15,白班,2026-04-01
+D00828,PANEL-0457,BATCH-20260422,LAM-A01,R4C2,AOI-前贴附#1,2026-04-22 12:52:09.388303,暗点,轻微,135.06,186.28,155.0,340.0,12,白班,2026-04-22
+D00829,PANEL-0464,BATCH-20260405,LAM-A01,R4C3,AOI-前贴附#2,2026-04-05 11:30:32.681677,划痕,中等,80.43,24.05,155.0,340.0,11,白班,2026-04-05
+D00830,PANEL-0292,BATCH-20260410,LAM-A01,R3C1,AOI-前贴附#2,2026-04-10 06:24:12.821029,暗点,中等,69.9,229.65,155.0,340.0,6,夜班,2026-04-10
+D00831,PANEL-0048,BATCH-20260422,LAM-A02,R4C1,AOI-前贴附#2,2026-04-22 16:33:41.948600,暗点,中等,85.88,159.04,155.0,340.0,16,白班,2026-04-22
+D00832,PANEL-0307,BATCH-20260411,LAM-A01,R2C4,AOI-前贴附#2,2026-04-11 15:41:48.854400,漏光,严重,29.07,16.37,155.0,340.0,15,白班,2026-04-11
+D00833,PANEL-0097,BATCH-20260408,LAM-A02,R4C5,AOI-前贴附#1,2026-04-08 12:36:42.378836,气泡,轻微,93.95,324.97,155.0,340.0,12,白班,2026-04-08
+D00834,PANEL-0375,BATCH-20260420,LAM-A01,R1C2,AOI-前贴附#1,2026-04-20 16:22:46.364425,亮点,中等,57.65,318.21,155.0,340.0,16,白班,2026-04-20
+D00835,PANEL-0095,BATCH-20260407,LAM-A01,R2C4,AOI-后段全检,2026-04-07 10:46:54.397575,异物,中等,135.09,174.26,155.0,340.0,10,白班,2026-04-07
+D00836,PANEL-0326,BATCH-20260403,LAM-A01,R2C1,AOI-前贴附#1,2026-04-03 08:57:38.613401,色差,轻微,29.48,35.91,155.0,340.0,8,白班,2026-04-03
+D00837,PANEL-0074,BATCH-20260425,LAM-A01,R4C5,AOI-前贴附#1,2026-04-25 13:07:34.883789,暗点,轻微,78.52,254.03,155.0,340.0,13,白班,2026-04-25
+D00838,PANEL-0336,BATCH-20260402,LAM-A02,R2C2,AOI-前贴附#2,2026-04-02 14:40:01.968471,划痕,轻微,91.73,167.34,155.0,340.0,14,白班,2026-04-02
+D00839,PANEL-0068,BATCH-20260421,LAM-A01,R1C1,AOI-前贴附#1,2026-04-21 14:50:05.901567,亮点,轻微,9.84,104.81,155.0,340.0,14,白班,2026-04-21
+D00840,PANEL-0246,BATCH-20260413,LAM-A01,R1C5,AOI-前贴附#2,2026-04-13 11:58:52.920520,气泡,中等,57.74,167.17,155.0,340.0,11,白班,2026-04-13
+D00841,PANEL-0406,BATCH-20260407,LAM-A01,R2C1,AOI-前贴附#2,2026-04-07 09:46:10.237339,划痕,严重,111.23,177.41,155.0,340.0,9,白班,2026-04-07
+D00842,PANEL-0077,BATCH-20260414,LAM-A02,R1C2,AOI-前贴附#2,2026-04-14 17:06:33.701212,划痕,轻微,123.95,190.69,155.0,340.0,17,夜班,2026-04-14
+D00843,PANEL-0208,BATCH-20260403,LAM-A01,R3C5,AOI-前贴附#2,2026-04-03 03:08:15.125922,气泡,中等,50.41,150.6,155.0,340.0,3,夜班,2026-04-03
+D00844,PANEL-0372,BATCH-20260406,LAM-A01,R3C3,AOI-前贴附#1,2026-04-06 12:07:38.827512,亮点,轻微,120.8,204.9,155.0,340.0,12,白班,2026-04-06
+D00845,PANEL-0254,BATCH-20260428,LAM-A01,R3C4,AOI-前贴附#2,2026-04-28 09:41:47.265001,亮点,轻微,145.32,308.18,155.0,340.0,9,白班,2026-04-28
+D00846,PANEL-0221,BATCH-20260410,LAM-A01,R2C2,AOI-前贴附#1,2026-04-10 09:47:22.588796,划痕,轻微,129.25,124.55,155.0,340.0,9,白班,2026-04-10
+D00847,PANEL-0262,BATCH-20260418,LAM-A01,R3C4,AOI-前贴附#1,2026-04-18 08:33:52.564676,亮点,轻微,22.06,244.49,155.0,340.0,8,白班,2026-04-18
+D00848,PANEL-0410,BATCH-20260422,LAM-A01,R2C5,AOI-前贴附#2,2026-04-22 09:48:18.661828,色差,严重,112.26,300.17,155.0,340.0,9,白班,2026-04-22
+D00849,PANEL-0331,BATCH-20260412,LAM-A01,R4C2,AOI-前贴附#1,2026-04-12 10:19:43.169107,划痕,严重,51.35,155.47,155.0,340.0,10,白班,2026-04-12
+D00850,PANEL-0344,BATCH-20260420,LAM-A02,R2C3,AOI-前贴附#2,2026-04-20 13:02:52.574394,划痕,严重,148.32,151.34,155.0,340.0,13,白班,2026-04-20
+D00851,PANEL-0477,BATCH-20260404,LAM-A01,R1C4,AOI-前贴附#2,2026-04-04 11:00:17.914742,气泡,轻微,75.38,203.7,155.0,340.0,11,白班,2026-04-04
+D00852,PANEL-0259,BATCH-20260419,LAM-B01,R4C4,AOI-后段全检,2026-04-19 19:53:37.145927,异物,中等,22.75,200.16,155.0,340.0,19,夜班,2026-04-19
+D00853,PANEL-0308,BATCH-20260419,LAM-A01,R3C3,AOI-前贴附#2,2026-04-19 09:02:44.393741,暗点,轻微,110.15,271.17,155.0,340.0,9,白班,2026-04-19
+D00854,PANEL-0074,BATCH-20260410,LAM-A01,R4C5,AOI-前贴附#1,2026-04-10 11:20:09.826605,划痕,轻微,51.84,162.24,155.0,340.0,11,白班,2026-04-10
+D00855,PANEL-0125,BATCH-20260406,LAM-A02,R3C4,AOI-前贴附#1,2026-04-06 15:40:03.155839,亮点,中等,149.58,333.72,155.0,340.0,15,白班,2026-04-06
+D00856,PANEL-0188,BATCH-20260412,LAM-A02,R1C5,AOI-前贴附#1,2026-04-12 16:23:26.391002,漏光,严重,147.07,24.63,155.0,340.0,16,白班,2026-04-12
+D00857,PANEL-0254,BATCH-20260414,LAM-A02,R2C4,AOI-前贴附#1,2026-04-14 13:59:29.289481,划痕,严重,100.14,6.05,155.0,340.0,13,白班,2026-04-14
+D00858,PANEL-0447,BATCH-20260403,LAM-A01,R1C3,AOI-前贴附#1,2026-04-03 07:42:10.170135,暗点,严重,23.82,216.27,155.0,340.0,7,夜班,2026-04-03
+D00859,PANEL-0321,BATCH-20260406,LAM-A02,R2C3,AOI-前贴附#1,2026-04-06 13:32:49.918857,亮点,轻微,104.59,103.48,155.0,340.0,13,白班,2026-04-06
+D00860,PANEL-0308,BATCH-20260422,LAM-A02,R2C5,AOI-前贴附#2,2026-04-22 15:56:04.985963,划痕,中等,18.49,84.33,155.0,340.0,15,白班,2026-04-22
+D00861,PANEL-0235,BATCH-20260424,LAM-A01,R4C4,AOI-前贴附#2,2026-04-24 03:03:03.814541,色差,轻微,9.26,107.93,155.0,340.0,3,夜班,2026-04-24
+D00862,PANEL-0474,BATCH-20260418,LAM-A01,R1C3,AOI-前贴附#2,2026-04-18 09:54:58.225537,气泡,中等,124.33,89.5,155.0,340.0,9,白班,2026-04-18
+D00863,PANEL-0250,BATCH-20260401,LAM-A01,R3C1,AOI-前贴附#2,2026-04-01 13:47:12.209342,气泡,中等,35.41,15.16,155.0,340.0,13,白班,2026-04-01
+D00864,PANEL-0332,BATCH-20260412,LAM-A02,R4C2,AOI-前贴附#2,2026-04-12 18:18:55.863047,划痕,轻微,59.96,325.61,155.0,340.0,18,夜班,2026-04-12
+D00865,PANEL-0398,BATCH-20260410,LAM-A01,R4C1,AOI-前贴附#2,2026-04-10 10:37:55.239411,划痕,中等,146.15,77.85,155.0,340.0,10,白班,2026-04-10
+D00866,PANEL-0345,BATCH-20260409,LAM-A01,R2C2,AOI-前贴附#2,2026-04-09 11:49:03.579173,暗点,严重,53.84,247.23,155.0,340.0,11,白班,2026-04-09
+D00867,PANEL-0072,BATCH-20260417,LAM-B01,R5C3,AOI-前贴附#1,2026-04-17 18:38:33.773044,暗点,中等,47.99,256.66,155.0,340.0,18,夜班,2026-04-17
+D00868,PANEL-0235,BATCH-20260420,LAM-B01,R4C3,AOI-前贴附#2,2026-04-20 21:05:53.108733,划痕,轻微,138.14,311.65,155.0,340.0,21,夜班,2026-04-20
+D00869,PANEL-0324,BATCH-20260427,LAM-A01,R3C1,AOI-前贴附#2,2026-04-27 11:13:37.591724,划痕,严重,21.06,15.08,155.0,340.0,11,白班,2026-04-27
+D00870,PANEL-0156,BATCH-20260425,LAM-A01,R1C5,AOI-前贴附#1,2026-04-25 09:47:02.263125,划痕,轻微,115.14,292.78,155.0,340.0,9,白班,2026-04-25
+D00871,PANEL-0455,BATCH-20260401,LAM-A02,R3C5,AOI-前贴附#1,2026-04-01 21:24:48.044121,异物,中等,148.27,178.98,155.0,340.0,21,夜班,2026-04-01
+D00872,PANEL-0394,BATCH-20260407,LAM-A01,R4C3,AOI-前贴附#1,2026-04-07 11:32:48.833238,色差,轻微,135.69,213.74,155.0,340.0,11,白班,2026-04-07
+D00873,PANEL-0115,BATCH-20260405,LAM-A01,R3C1,AOI-前贴附#2,2026-04-05 06:06:46.995254,裂纹,中等,99.49,217.68,155.0,340.0,6,夜班,2026-04-05
+D00874,PANEL-0313,BATCH-20260410,LAM-A01,R3C2,AOI-前贴附#2,2026-04-10 09:37:00.659850,划痕,中等,50.54,275.53,155.0,340.0,9,白班,2026-04-10
+D00875,PANEL-0228,BATCH-20260401,LAM-A01,R1C2,AOI-前贴附#1,2026-04-01 08:39:28.897718,异物,中等,41.88,115.02,155.0,340.0,8,白班,2026-04-01
+D00876,PANEL-0322,BATCH-20260427,LAM-A01,R4C5,AOI-前贴附#1,2026-04-27 10:22:02.748308,划痕,严重,123.79,246.91,155.0,340.0,10,白班,2026-04-27
+D00877,PANEL-0346,BATCH-20260413,LAM-A01,R4C5,AOI-后段全检,2026-04-13 14:42:50.575417,暗点,轻微,132.57,179.43,155.0,340.0,14,白班,2026-04-13
+D00878,PANEL-0245,BATCH-20260411,LAM-B01,R5C2,AOI-前贴附#1,2026-04-11 20:27:08.995583,色差,严重,81.19,266.82,155.0,340.0,20,夜班,2026-04-11
+D00879,PANEL-0306,BATCH-20260402,LAM-A02,R4C4,AOI-前贴附#1,2026-04-02 12:31:28.464888,亮点,中等,40.43,331.88,155.0,340.0,12,白班,2026-04-02
+D00880,PANEL-0014,BATCH-20260416,LAM-A01,R3C1,AOI-前贴附#1,2026-04-16 10:38:52.846927,亮点,轻微,21.38,71.21,155.0,340.0,10,白班,2026-04-16
+D00881,PANEL-0016,BATCH-20260421,LAM-A01,R1C2,AOI-前贴附#2,2026-04-21 09:46:46.054082,划痕,轻微,17.64,333.23,155.0,340.0,9,白班,2026-04-21
+D00882,PANEL-0438,BATCH-20260428,LAM-A02,R2C3,AOI-前贴附#2,2026-04-28 19:38:31.795319,划痕,严重,109.27,34.64,155.0,340.0,19,夜班,2026-04-28
+D00883,PANEL-0427,BATCH-20260425,LAM-A01,R3C1,AOI-前贴附#2,2026-04-25 11:31:55.785701,暗点,轻微,65.92,5.76,155.0,340.0,11,白班,2026-04-25
+D00884,PANEL-0042,BATCH-20260412,LAM-A01,R1C5,AOI-后段全检,2026-04-12 08:45:16.456360,气泡,中等,136.28,19.57,155.0,340.0,8,白班,2026-04-12
+D00885,PANEL-0465,BATCH-20260427,LAM-A01,R4C3,AOI-前贴附#2,2026-04-27 11:29:31.406102,色差,严重,112.25,117.79,155.0,340.0,11,白班,2026-04-27
+D00886,PANEL-0110,BATCH-20260405,LAM-A01,R4C3,AOI-前贴附#1,2026-04-05 11:07:40.125372,暗点,中等,32.73,213.86,155.0,340.0,11,白班,2026-04-05
+D00887,PANEL-0278,BATCH-20260402,LAM-B01,R3C2,AOI-前贴附#2,2026-04-02 17:14:55.853818,气泡,中等,94.0,27.78,155.0,340.0,17,夜班,2026-04-02
+D00888,PANEL-0324,BATCH-20260413,LAM-A02,R2C4,AOI-前贴附#1,2026-04-13 23:09:15.225933,划痕,中等,68.15,6.87,155.0,340.0,23,夜班,2026-04-13
+D00889,PANEL-0019,BATCH-20260422,LAM-A01,R1C3,AOI-前贴附#2,2026-04-22 09:24:42.535029,划痕,轻微,88.7,314.24,155.0,340.0,9,白班,2026-04-22
+D00890,PANEL-0066,BATCH-20260407,LAM-A01,R3C1,AOI-前贴附#1,2026-04-07 10:15:33.694146,异物,轻微,112.02,276.24,155.0,340.0,10,白班,2026-04-07
+D00891,PANEL-0167,BATCH-20260410,LAM-A01,R3C2,AOI-前贴附#2,2026-04-10 13:47:33.595509,划痕,轻微,121.9,272.03,155.0,340.0,13,白班,2026-04-10
+D00892,PANEL-0073,BATCH-20260420,LAM-A01,R3C2,AOI-前贴附#1,2026-04-20 08:23:51.986006,气泡,中等,127.34,296.86,155.0,340.0,8,白班,2026-04-20
+D00893,PANEL-0403,BATCH-20260416,LAM-A02,R2C2,AOI-后段全检,2026-04-16 18:34:20.233300,划痕,轻微,41.83,236.01,155.0,340.0,18,夜班,2026-04-16
+D00894,PANEL-0400,BATCH-20260425,LAM-A01,R3C4,AOI-前贴附#1,2026-04-25 06:57:03.414939,气泡,中等,9.51,39.45,155.0,340.0,6,夜班,2026-04-25
+D00895,PANEL-0310,BATCH-20260424,LAM-A02,R3C1,AOI-前贴附#2,2026-04-24 15:47:16.155489,气泡,严重,112.2,136.7,155.0,340.0,15,白班,2026-04-24
+D00896,PANEL-0409,BATCH-20260405,LAM-A01,R2C5,AOI-前贴附#1,2026-04-05 13:21:29.668789,划痕,轻微,20.42,243.64,155.0,340.0,13,白班,2026-04-05
+D00897,PANEL-0112,BATCH-20260420,LAM-A02,R3C5,AOI-后段全检,2026-04-20 17:39:46.916177,划痕,中等,50.66,97.51,155.0,340.0,17,夜班,2026-04-20
+D00898,PANEL-0274,BATCH-20260402,LAM-A01,R4C4,AOI-前贴附#2,2026-04-02 02:06:12.303920,气泡,中等,5.55,231.84,155.0,340.0,2,夜班,2026-04-02
+D00899,PANEL-0407,BATCH-20260427,LAM-A02,R4C5,AOI-前贴附#1,2026-04-27 15:48:40.229730,亮点,中等,103.84,13.08,155.0,340.0,15,白班,2026-04-27
+D00900,PANEL-0373,BATCH-20260403,LAM-A02,R4C3,AOI-后段全检,2026-04-03 12:42:51.299519,划痕,轻微,29.23,106.03,155.0,340.0,12,白班,2026-04-03
+D00901,PANEL-0085,BATCH-20260417,LAM-A01,R3C3,AOI-前贴附#1,2026-04-17 10:30:49.901698,气泡,轻微,100.02,186.21,155.0,340.0,10,白班,2026-04-17
+D00902,PANEL-0139,BATCH-20260428,LAM-A01,R1C4,AOI-前贴附#2,2026-04-28 15:45:11.818563,划痕,轻微,148.8,213.59,155.0,340.0,15,白班,2026-04-28
+D00903,PANEL-0039,BATCH-20260427,LAM-A01,R3C4,AOI-前贴附#2,2026-04-27 00:53:28.302183,漏光,严重,15.54,195.42,155.0,340.0,0,夜班,2026-04-27
+D00904,PANEL-0105,BATCH-20260409,LAM-A01,R2C3,AOI-前贴附#1,2026-04-09 09:46:42.628931,暗点,严重,16.18,235.26,155.0,340.0,9,白班,2026-04-09
+D00905,PANEL-0324,BATCH-20260428,LAM-A01,R4C4,AOI-后段全检,2026-04-28 16:14:51.187412,划痕,轻微,54.36,7.01,155.0,340.0,16,白班,2026-04-28
+D00906,PANEL-0281,BATCH-20260411,LAM-A01,R1C5,AOI-前贴附#1,2026-04-11 14:21:41.558704,气泡,中等,130.63,38.31,155.0,340.0,14,白班,2026-04-11
+D00907,PANEL-0447,BATCH-20260408,LAM-A01,R4C3,AOI-前贴附#1,2026-04-08 11:30:02.209478,暗点,中等,36.25,291.75,155.0,340.0,11,白班,2026-04-08
+D00908,PANEL-0480,BATCH-20260403,LAM-A01,R1C1,AOI-后段全检,2026-04-03 08:08:06.259344,划痕,轻微,57.25,229.98,155.0,340.0,8,白班,2026-04-03
+D00909,PANEL-0414,BATCH-20260414,LAM-A01,R2C3,AOI-前贴附#2,2026-04-14 11:20:59.787394,暗点,严重,14.93,42.27,155.0,340.0,11,白班,2026-04-14
+D00910,PANEL-0429,BATCH-20260403,LAM-A02,R4C2,AOI-前贴附#1,2026-04-03 19:39:10.105963,划痕,严重,115.66,282.88,155.0,340.0,19,夜班,2026-04-03
+D00911,PANEL-0123,BATCH-20260408,LAM-A01,R4C2,AOI-前贴附#1,2026-04-08 06:49:15.523117,划痕,轻微,64.2,84.94,155.0,340.0,6,夜班,2026-04-08
+D00912,PANEL-0218,BATCH-20260427,LAM-A01,R1C2,AOI-前贴附#2,2026-04-27 15:53:42.328645,划痕,严重,115.09,162.83,155.0,340.0,15,白班,2026-04-27
+D00913,PANEL-0377,BATCH-20260425,LAM-A01,R2C1,AOI-前贴附#1,2026-04-25 00:41:50.613010,亮点,轻微,136.02,52.91,155.0,340.0,0,夜班,2026-04-25
+D00914,PANEL-0061,BATCH-20260418,LAM-A02,R3C4,AOI-后段全检,2026-04-18 14:05:32.084689,划痕,轻微,38.75,239.34,155.0,340.0,14,白班,2026-04-18
+D00915,PANEL-0100,BATCH-20260419,LAM-A02,R3C2,AOI-前贴附#2,2026-04-19 18:29:08.382661,气泡,中等,122.07,225.06,155.0,340.0,18,夜班,2026-04-19
+D00916,PANEL-0307,BATCH-20260410,LAM-A01,R1C4,AOI-前贴附#1,2026-04-10 09:27:32.827888,气泡,轻微,13.57,74.67,155.0,340.0,9,白班,2026-04-10
+D00917,PANEL-0354,BATCH-20260426,LAM-A02,R3C3,AOI-前贴附#1,2026-04-26 16:39:11.326453,暗点,中等,135.33,289.92,155.0,340.0,16,白班,2026-04-26
+D00918,PANEL-0393,BATCH-20260429,LAM-A02,R1C2,AOI-前贴附#2,2026-04-29 15:18:22.699917,色差,轻微,99.36,137.43,155.0,340.0,15,白班,2026-04-29
+D00919,PANEL-0204,BATCH-20260407,LAM-A01,R3C5,AOI-前贴附#1,2026-04-07 09:53:28.588154,色差,轻微,131.76,101.53,155.0,340.0,9,白班,2026-04-07
+D00920,PANEL-0258,BATCH-20260425,LAM-A01,R4C2,AOI-前贴附#2,2026-04-25 12:57:03.292535,暗点,轻微,5.03,55.27,155.0,340.0,12,白班,2026-04-25
+D00921,PANEL-0486,BATCH-20260421,LAM-A01,R2C2,AOI-后段全检,2026-04-21 07:03:51.845229,暗点,中等,29.52,92.84,155.0,340.0,7,夜班,2026-04-21
+D00922,PANEL-0005,BATCH-20260413,LAM-A01,R3C4,AOI-前贴附#2,2026-04-13 11:14:25.464426,划痕,严重,61.52,12.27,155.0,340.0,11,白班,2026-04-13
+D00923,PANEL-0446,BATCH-20260415,LAM-A01,R3C2,AOI-前贴附#2,2026-04-15 09:51:27.562420,漏光,严重,60.03,197.47,155.0,340.0,9,白班,2026-04-15
+D00924,PANEL-0197,BATCH-20260424,LAM-B01,R5C1,AOI-前贴附#1,2026-04-24 17:29:19.046711,划痕,轻微,37.88,282.94,155.0,340.0,17,夜班,2026-04-24
+D00925,PANEL-0180,BATCH-20260428,LAM-B01,R4C2,AOI-前贴附#2,2026-04-28 20:12:07.768446,亮点,轻微,60.33,186.16,155.0,340.0,20,夜班,2026-04-28
+D00926,PANEL-0342,BATCH-20260413,LAM-A02,R4C4,AOI-前贴附#2,2026-04-13 15:07:30.442220,气泡,中等,23.68,77.36,155.0,340.0,15,白班,2026-04-13
+D00927,PANEL-0133,BATCH-20260428,LAM-A02,R2C1,AOI-前贴附#2,2026-04-28 12:54:42.786217,划痕,严重,64.85,16.11,155.0,340.0,12,白班,2026-04-28
+D00928,PANEL-0443,BATCH-20260405,LAM-A01,R4C3,AOI-前贴附#1,2026-04-05 12:31:54.968237,划痕,严重,121.34,75.83,155.0,340.0,12,白班,2026-04-05
+D00929,PANEL-0324,BATCH-20260410,LAM-A02,R1C5,AOI-后段全检,2026-04-10 13:54:40.738894,气泡,严重,74.47,142.32,155.0,340.0,13,白班,2026-04-10
+D00930,PANEL-0253,BATCH-20260410,LAM-A01,R2C1,AOI-前贴附#1,2026-04-10 08:51:39.980867,暗点,轻微,7.61,255.67,155.0,340.0,8,白班,2026-04-10
+D00931,PANEL-0265,BATCH-20260410,LAM-A02,R2C3,AOI-前贴附#2,2026-04-10 12:01:57.086887,气泡,轻微,66.11,66.99,155.0,340.0,12,白班,2026-04-10
+D00932,PANEL-0093,BATCH-20260426,LAM-A01,R3C5,AOI-前贴附#2,2026-04-26 14:54:15.171970,色差,中等,8.94,242.53,155.0,340.0,14,白班,2026-04-26
+D00933,PANEL-0150,BATCH-20260419,LAM-A02,R1C1,AOI-前贴附#2,2026-04-19 21:46:36.725579,划痕,轻微,145.11,291.09,155.0,340.0,21,夜班,2026-04-19
+D00934,PANEL-0411,BATCH-20260405,LAM-A01,R4C3,AOI-前贴附#1,2026-04-05 05:39:35.520973,划痕,严重,23.48,154.8,155.0,340.0,5,夜班,2026-04-05
+D00935,PANEL-0138,BATCH-20260418,LAM-A02,R3C2,AOI-前贴附#2,2026-04-18 12:30:03.893028,气泡,轻微,107.61,276.07,155.0,340.0,12,白班,2026-04-18
+D00936,PANEL-0208,BATCH-20260430,LAM-A01,R3C1,AOI-前贴附#1,2026-04-30 16:47:44.519502,亮点,严重,146.05,188.04,155.0,340.0,16,白班,2026-04-30
+D00937,PANEL-0490,BATCH-20260428,LAM-A01,R2C3,AOI-前贴附#2,2026-04-28 08:51:28.382408,气泡,严重,124.78,215.24,155.0,340.0,8,白班,2026-04-28
+D00938,PANEL-0125,BATCH-20260408,LAM-A01,R2C2,AOI-前贴附#1,2026-04-08 10:32:12.644559,划痕,轻微,106.4,178.67,155.0,340.0,10,白班,2026-04-08
+D00939,PANEL-0234,BATCH-20260406,LAM-A01,R1C2,AOI-前贴附#1,2026-04-06 08:51:39.279093,亮点,中等,126.72,157.85,155.0,340.0,8,白班,2026-04-06
+D00940,PANEL-0061,BATCH-20260404,LAM-A01,R3C1,AOI-前贴附#1,2026-04-04 08:51:53.753816,暗点,轻微,147.36,82.44,155.0,340.0,8,白班,2026-04-04
+D00941,PANEL-0307,BATCH-20260413,LAM-A02,R2C5,AOI-后段全检,2026-04-13 12:57:50.326190,暗点,轻微,95.09,105.05,155.0,340.0,12,白班,2026-04-13
+D00942,PANEL-0266,BATCH-20260426,LAM-A01,R4C5,AOI-前贴附#2,2026-04-26 12:35:15.443533,暗点,中等,86.08,100.69,155.0,340.0,12,白班,2026-04-26
+D00943,PANEL-0134,BATCH-20260413,LAM-A01,R2C5,AOI-前贴附#2,2026-04-13 10:46:55.724654,亮点,轻微,96.09,190.89,155.0,340.0,10,白班,2026-04-13
+D00944,PANEL-0318,BATCH-20260425,LAM-A01,R4C3,AOI-前贴附#2,2026-04-25 10:52:38.466622,亮点,中等,82.24,44.58,155.0,340.0,10,白班,2026-04-25
+D00945,PANEL-0113,BATCH-20260427,LAM-B01,R5C2,AOI-后段全检,2026-04-27 17:42:00.272275,划痕,中等,97.09,307.54,155.0,340.0,17,夜班,2026-04-27
+D00946,PANEL-0389,BATCH-20260421,LAM-A01,R2C3,AOI-前贴附#1,2026-04-21 11:21:46.105353,划痕,轻微,70.23,242.82,155.0,340.0,11,白班,2026-04-21
+D00947,PANEL-0378,BATCH-20260402,LAM-A02,R3C3,AOI-前贴附#2,2026-04-02 16:36:45.536713,亮点,轻微,36.67,137.48,155.0,340.0,16,白班,2026-04-02
+D00948,PANEL-0454,BATCH-20260428,LAM-A02,R2C3,AOI-前贴附#2,2026-04-28 19:01:24.402335,亮点,轻微,22.44,57.35,155.0,340.0,19,夜班,2026-04-28
+D00949,PANEL-0191,BATCH-20260423,LAM-A01,R1C4,AOI-前贴附#1,2026-04-23 08:25:29.719538,暗点,中等,14.91,296.06,155.0,340.0,8,白班,2026-04-23
+D00950,PANEL-0379,BATCH-20260410,LAM-A01,R1C4,AOI-前贴附#1,2026-04-10 12:35:34.049847,亮点,严重,43.18,276.85,155.0,340.0,12,白班,2026-04-10
+D00951,PANEL-0440,BATCH-20260426,LAM-A01,R1C5,AOI-前贴附#1,2026-04-26 08:44:14.955310,气泡,轻微,11.69,243.17,155.0,340.0,8,白班,2026-04-26
+D00952,PANEL-0187,BATCH-20260412,LAM-A01,R1C1,AOI-前贴附#1,2026-04-12 10:30:06.456473,漏光,中等,87.24,94.61,155.0,340.0,10,白班,2026-04-12
+D00953,PANEL-0319,BATCH-20260418,LAM-A01,R1C2,AOI-前贴附#1,2026-04-18 15:51:28.129687,划痕,中等,46.16,137.81,155.0,340.0,15,白班,2026-04-18
+D00954,PANEL-0367,BATCH-20260404,LAM-A01,R2C3,AOI-前贴附#1,2026-04-04 10:37:36.992845,划痕,轻微,124.56,38.91,155.0,340.0,10,白班,2026-04-04
+D00955,PANEL-0089,BATCH-20260417,LAM-A01,R3C5,AOI-前贴附#2,2026-04-17 16:06:25.185487,划痕,中等,15.76,67.38,155.0,340.0,16,白班,2026-04-17
+D00956,PANEL-0187,BATCH-20260416,LAM-A01,R1C5,AOI-前贴附#1,2026-04-16 11:11:21.766824,暗点,中等,37.82,263.4,155.0,340.0,11,白班,2026-04-16
+D00957,PANEL-0307,BATCH-20260409,LAM-A02,R2C2,AOI-前贴附#1,2026-04-09 15:13:34.432960,亮点,严重,110.89,240.96,155.0,340.0,15,白班,2026-04-09
+D00958,PANEL-0434,BATCH-20260425,LAM-A01,R2C3,AOI-后段全检,2026-04-25 14:08:15.013336,划痕,严重,91.83,200.85,155.0,340.0,14,白班,2026-04-25
+D00959,PANEL-0132,BATCH-20260423,LAM-A02,R2C2,AOI-前贴附#2,2026-04-23 13:01:00.654113,气泡,轻微,14.35,300.59,155.0,340.0,13,白班,2026-04-23
+D00960,PANEL-0360,BATCH-20260422,LAM-B01,R2C3,AOI-前贴附#1,2026-04-22 22:51:51.496671,划痕,轻微,132.2,197.48,155.0,340.0,22,夜班,2026-04-22
+D00961,PANEL-0123,BATCH-20260422,LAM-A02,R3C4,AOI-前贴附#2,2026-04-22 15:43:53.390064,暗点,严重,132.2,159.1,155.0,340.0,15,白班,2026-04-22
+D00962,PANEL-0048,BATCH-20260408,LAM-A01,R4C3,AOI-前贴附#1,2026-04-08 04:08:37.084322,暗点,轻微,52.91,117.32,155.0,340.0,4,夜班,2026-04-08
+D00963,PANEL-0288,BATCH-20260410,LAM-A01,R2C1,AOI-前贴附#1,2026-04-10 09:51:12.930768,气泡,中等,54.36,315.35,155.0,340.0,9,白班,2026-04-10
+D00964,PANEL-0376,BATCH-20260408,LAM-A01,R1C4,AOI-前贴附#1,2026-04-08 11:27:34.748806,划痕,中等,148.41,32.3,155.0,340.0,11,白班,2026-04-08
+D00965,PANEL-0179,BATCH-20260403,LAM-A01,R2C5,AOI-后段全检,2026-04-03 11:41:11.557583,漏光,中等,95.8,312.19,155.0,340.0,11,白班,2026-04-03
+D00966,PANEL-0180,BATCH-20260423,LAM-A01,R4C3,AOI-前贴附#2,2026-04-23 06:46:20.045590,气泡,严重,82.04,277.82,155.0,340.0,6,夜班,2026-04-23
+D00967,PANEL-0099,BATCH-20260408,LAM-A01,R3C2,AOI-前贴附#2,2026-04-08 06:01:32.268696,划痕,严重,126.53,47.88,155.0,340.0,6,夜班,2026-04-08
+D00968,PANEL-0330,BATCH-20260428,LAM-A01,R4C1,AOI-后段全检,2026-04-28 09:49:52.842829,划痕,中等,46.37,191.44,155.0,340.0,9,白班,2026-04-28
+D00969,PANEL-0034,BATCH-20260404,LAM-A01,R2C2,AOI-后段全检,2026-04-04 12:29:04.206855,亮点,轻微,67.23,290.96,155.0,340.0,12,白班,2026-04-04
+D00970,PANEL-0420,BATCH-20260408,LAM-A01,R2C1,AOI-前贴附#2,2026-04-08 04:42:24.263920,色差,中等,43.83,193.7,155.0,340.0,4,夜班,2026-04-08
+D00971,PANEL-0070,BATCH-20260409,LAM-A01,R1C5,AOI-前贴附#2,2026-04-09 10:21:02.609435,色差,中等,119.43,304.38,155.0,340.0,10,白班,2026-04-09
+D00972,PANEL-0171,BATCH-20260419,LAM-A01,R3C2,AOI-前贴附#1,2026-04-19 12:19:54.897977,暗点,中等,88.14,316.18,155.0,340.0,12,白班,2026-04-19
+D00973,PANEL-0366,BATCH-20260423,LAM-A01,R3C5,AOI-前贴附#1,2026-04-23 03:16:36.216376,漏光,中等,100.53,144.39,155.0,340.0,3,夜班,2026-04-23
+D00974,PANEL-0272,BATCH-20260425,LAM-A01,R2C5,AOI-前贴附#2,2026-04-25 09:04:15.770202,划痕,轻微,41.58,129.51,155.0,340.0,9,白班,2026-04-25
+D00975,PANEL-0059,BATCH-20260427,LAM-A01,R4C5,AOI-前贴附#2,2026-04-27 05:14:09.980286,划痕,中等,36.93,313.99,155.0,340.0,5,夜班,2026-04-27
+D00976,PANEL-0181,BATCH-20260421,LAM-A01,R4C1,AOI-后段全检,2026-04-21 13:17:55.759421,漏光,严重,75.81,227.8,155.0,340.0,13,白班,2026-04-21
+D00977,PANEL-0019,BATCH-20260402,LAM-A01,R3C1,AOI-前贴附#2,2026-04-02 10:41:23.961263,色差,中等,111.95,43.29,155.0,340.0,10,白班,2026-04-02
+D00978,PANEL-0226,BATCH-20260425,LAM-A02,R1C3,AOI-前贴附#2,2026-04-25 13:10:25.963986,亮点,中等,81.16,18.96,155.0,340.0,13,白班,2026-04-25
+D00979,PANEL-0473,BATCH-20260409,LAM-A01,R2C2,AOI-前贴附#2,2026-04-09 13:50:50.199294,气泡,严重,9.73,191.33,155.0,340.0,13,白班,2026-04-09
+D00980,PANEL-0095,BATCH-20260424,LAM-A01,R2C2,AOI-前贴附#1,2026-04-24 10:00:36.367996,裂纹,严重,130.94,311.96,155.0,340.0,10,白班,2026-04-24
+D00981,PANEL-0369,BATCH-20260427,LAM-A01,R3C4,AOI-前贴附#2,2026-04-27 11:38:37.639905,色差,严重,14.38,283.6,155.0,340.0,11,白班,2026-04-27
+D00982,PANEL-0297,BATCH-20260413,LAM-A01,R1C2,AOI-前贴附#2,2026-04-13 02:14:19.989250,色差,轻微,143.59,228.03,155.0,340.0,2,夜班,2026-04-13
+D00983,PANEL-0081,BATCH-20260409,LAM-A02,R4C4,AOI-前贴附#2,2026-04-09 15:49:04.649332,气泡,轻微,8.65,50.91,155.0,340.0,15,白班,2026-04-09
+D00984,PANEL-0175,BATCH-20260410,LAM-B01,R3C1,AOI-前贴附#2,2026-04-10 22:43:26.366059,划痕,轻微,105.7,88.9,155.0,340.0,22,夜班,2026-04-10
+D00985,PANEL-0222,BATCH-20260404,LAM-A02,R4C4,AOI-前贴附#1,2026-04-04 16:25:40.459564,色差,中等,16.92,293.92,155.0,340.0,16,白班,2026-04-04
+D00986,PANEL-0103,BATCH-20260403,LAM-A01,R4C3,AOI-前贴附#2,2026-04-03 08:36:11.720278,划痕,中等,137.05,65.33,155.0,340.0,8,白班,2026-04-03
+D00987,PANEL-0054,BATCH-20260430,LAM-A01,R4C1,AOI-前贴附#2,2026-04-30 14:15:27.182631,漏光,严重,72.34,96.89,155.0,340.0,14,白班,2026-04-30
+D00988,PANEL-0183,BATCH-20260429,LAM-A01,R3C3,AOI-前贴附#2,2026-04-29 09:35:20.321812,亮点,轻微,24.94,47.77,155.0,340.0,9,白班,2026-04-29
+D00989,PANEL-0351,BATCH-20260405,LAM-A01,R2C5,AOI-前贴附#2,2026-04-05 09:00:38.895501,气泡,轻微,54.42,228.12,155.0,340.0,9,白班,2026-04-05
+D00990,PANEL-0403,BATCH-20260417,LAM-A01,R4C5,AOI-前贴附#1,2026-04-17 12:27:47.921571,亮点,轻微,28.9,316.51,155.0,340.0,12,白班,2026-04-17
+D00991,PANEL-0318,BATCH-20260403,LAM-A01,R3C4,AOI-前贴附#1,2026-04-03 11:45:30.408060,划痕,中等,29.73,93.76,155.0,340.0,11,白班,2026-04-03
+D00992,PANEL-0355,BATCH-20260414,LAM-A01,R3C2,AOI-前贴附#1,2026-04-14 06:33:44.748627,划痕,轻微,142.48,161.88,155.0,340.0,6,夜班,2026-04-14
+D00993,PANEL-0349,BATCH-20260425,LAM-A01,R4C4,AOI-前贴附#2,2026-04-25 03:58:07.957719,异物,轻微,69.56,214.33,155.0,340.0,3,夜班,2026-04-25
+D00994,PANEL-0443,BATCH-20260417,LAM-A01,R2C2,AOI-前贴附#2,2026-04-17 04:13:30.903014,异物,中等,119.38,334.82,155.0,340.0,4,夜班,2026-04-17
+D00995,PANEL-0321,BATCH-20260411,LAM-A01,R3C5,AOI-后段全检,2026-04-11 08:14:26.043519,亮点,中等,97.74,39.59,155.0,340.0,8,白班,2026-04-11
+D00996,PANEL-0068,BATCH-20260422,LAM-A01,R4C1,AOI-前贴附#1,2026-04-22 05:54:02.058637,异物,轻微,103.08,169.53,155.0,340.0,5,夜班,2026-04-22
+D00997,PANEL-0028,BATCH-20260410,LAM-A01,R2C3,AOI-前贴附#1,2026-04-10 14:45:26.163094,色差,严重,24.1,132.09,155.0,340.0,14,白班,2026-04-10
+D00998,PANEL-0274,BATCH-20260421,LAM-A01,R2C5,AOI-前贴附#2,2026-04-21 05:12:15.892912,暗点,轻微,38.96,290.72,155.0,340.0,5,夜班,2026-04-21
+D00999,PANEL-0282,BATCH-20260428,LAM-A01,R1C4,AOI-前贴附#2,2026-04-28 08:23:30.368444,划痕,中等,119.08,162.07,155.0,340.0,8,白班,2026-04-28
+D01000,PANEL-0360,BATCH-20260422,LAM-A01,R4C4,AOI-前贴附#2,2026-04-22 12:17:46.842668,漏光,中等,145.76,41.62,155.0,340.0,12,白班,2026-04-22
+D01001,PANEL-0403,BATCH-20260409,LAM-A01,R3C5,AOI-后段全检,2026-04-09 16:47:39.875206,暗点,轻微,43.09,214.36,155.0,340.0,16,白班,2026-04-09
+D01002,PANEL-0311,BATCH-20260410,LAM-A02,R1C1,AOI-后段全检,2026-04-10 14:51:20.653596,漏光,轻微,44.38,259.36,155.0,340.0,14,白班,2026-04-10
+D01003,PANEL-0119,BATCH-20260402,LAM-A02,R2C5,AOI-前贴附#1,2026-04-02 14:15:34.707931,色差,中等,73.57,5.95,155.0,340.0,14,白班,2026-04-02
+D01004,PANEL-0380,BATCH-20260426,LAM-A01,R4C4,AOI-后段全检,2026-04-26 09:43:14.720404,色差,中等,147.66,288.46,155.0,340.0,9,白班,2026-04-26
+D01005,PANEL-0441,BATCH-20260415,LAM-A01,R1C3,AOI-前贴附#1,2026-04-15 09:22:50.668857,气泡,严重,44.0,66.39,155.0,340.0,9,白班,2026-04-15
+D01006,PANEL-0134,BATCH-20260423,LAM-A01,R2C4,AOI-前贴附#2,2026-04-23 12:22:47.905014,划痕,轻微,64.01,187.18,155.0,340.0,12,白班,2026-04-23
+D01007,PANEL-0129,BATCH-20260415,LAM-A02,R3C1,AOI-前贴附#2,2026-04-15 13:51:31.328216,亮点,轻微,134.26,142.21,155.0,340.0,13,白班,2026-04-15
+D01008,PANEL-0008,BATCH-20260407,LAM-A02,R1C2,AOI-前贴附#2,2026-04-07 14:17:53.643485,亮点,轻微,5.42,242.49,155.0,340.0,14,白班,2026-04-07
+D01009,PANEL-0481,BATCH-20260404,LAM-B01,R2C2,AOI-前贴附#1,2026-04-04 17:48:55.190484,划痕,轻微,10.77,127.48,155.0,340.0,17,夜班,2026-04-04
+D01010,PANEL-0051,BATCH-20260416,LAM-A01,R2C3,AOI-前贴附#1,2026-04-16 15:58:21.042277,气泡,轻微,92.59,292.02,155.0,340.0,15,白班,2026-04-16
+D01011,PANEL-0491,BATCH-20260430,LAM-A01,R3C2,AOI-前贴附#2,2026-04-30 06:24:07.251241,气泡,轻微,136.57,246.06,155.0,340.0,6,夜班,2026-04-30
+D01012,PANEL-0341,BATCH-20260416,LAM-A01,R1C2,AOI-前贴附#1,2026-04-16 04:37:31.937000,漏光,严重,39.63,218.75,155.0,340.0,4,夜班,2026-04-16
+D01013,PANEL-0472,BATCH-20260429,LAM-A01,R2C4,AOI-前贴附#1,2026-04-29 10:22:54.793548,划痕,轻微,73.1,267.76,155.0,340.0,10,白班,2026-04-29
+D01014,PANEL-0281,BATCH-20260423,LAM-A01,R1C2,AOI-前贴附#2,2026-04-23 14:12:43.691252,暗点,轻微,70.32,253.83,155.0,340.0,14,白班,2026-04-23
+D01015,PANEL-0175,BATCH-20260414,LAM-A01,R1C1,AOI-前贴附#2,2026-04-14 11:22:50.427307,划痕,轻微,73.58,16.86,155.0,340.0,11,白班,2026-04-14
+D01016,PANEL-0183,BATCH-20260418,LAM-B01,R1C2,AOI-前贴附#2,2026-04-18 19:17:33.902616,划痕,严重,95.27,135.26,155.0,340.0,19,夜班,2026-04-18
+D01017,PANEL-0192,BATCH-20260407,LAM-A02,R2C3,AOI-前贴附#1,2026-04-07 16:00:50.686746,划痕,中等,73.11,312.17,155.0,340.0,16,白班,2026-04-07
+D01018,PANEL-0249,BATCH-20260420,LAM-A01,R1C1,AOI-后段全检,2026-04-20 15:32:43.968253,气泡,中等,69.88,46.49,155.0,340.0,15,白班,2026-04-20
+D01019,PANEL-0235,BATCH-20260413,LAM-A01,R3C5,AOI-前贴附#1,2026-04-13 11:07:56.926510,划痕,严重,73.77,248.24,155.0,340.0,11,白班,2026-04-13
+D01020,PANEL-0083,BATCH-20260420,LAM-A02,R3C2,AOI-后段全检,2026-04-20 12:16:26.949279,气泡,严重,90.68,326.62,155.0,340.0,12,白班,2026-04-20
+D01021,PANEL-0093,BATCH-20260424,LAM-A01,R2C3,AOI-前贴附#2,2026-04-24 10:12:31.170405,亮点,严重,82.87,22.23,155.0,340.0,10,白班,2026-04-24
+D01022,PANEL-0373,BATCH-20260429,LAM-A01,R3C3,AOI-前贴附#2,2026-04-29 09:10:46.600395,漏光,严重,128.85,230.12,155.0,340.0,9,白班,2026-04-29
+D01023,PANEL-0394,BATCH-20260407,LAM-A01,R1C1,AOI-后段全检,2026-04-07 12:36:27.078289,色差,轻微,12.18,159.49,155.0,340.0,12,白班,2026-04-07
+D01024,PANEL-0312,BATCH-20260409,LAM-A01,R3C1,AOI-前贴附#1,2026-04-09 00:43:49.275812,裂纹,严重,125.83,196.13,155.0,340.0,0,夜班,2026-04-09
+D01025,PANEL-0268,BATCH-20260423,LAM-A01,R4C5,AOI-前贴附#1,2026-04-23 00:10:25.203891,漏光,中等,127.37,33.16,155.0,340.0,0,夜班,2026-04-23
+D01026,PANEL-0417,BATCH-20260426,LAM-A01,R1C1,AOI-前贴附#2,2026-04-26 11:52:18.767169,裂纹,中等,46.31,19.19,155.0,340.0,11,白班,2026-04-26
+D01027,PANEL-0120,BATCH-20260404,LAM-B01,R2C4,AOI-前贴附#1,2026-04-04 18:00:09.872005,漏光,轻微,72.11,225.07,155.0,340.0,18,夜班,2026-04-04
+D01028,PANEL-0071,BATCH-20260416,LAM-A01,R1C5,AOI-前贴附#2,2026-04-16 04:36:41.527456,气泡,轻微,68.59,276.69,155.0,340.0,4,夜班,2026-04-16
+D01029,PANEL-0017,BATCH-20260416,LAM-A01,R4C2,AOI-前贴附#1,2026-04-16 07:45:51.612534,划痕,中等,36.68,263.07,155.0,340.0,7,夜班,2026-04-16
+D01030,PANEL-0253,BATCH-20260415,LAM-A01,R2C3,AOI-后段全检,2026-04-15 10:14:29.131767,亮点,中等,62.54,184.46,155.0,340.0,10,白班,2026-04-15
+D01031,PANEL-0445,BATCH-20260415,LAM-A01,R2C5,AOI-前贴附#2,2026-04-15 10:32:11.464359,划痕,轻微,11.44,37.96,155.0,340.0,10,白班,2026-04-15
+D01032,PANEL-0122,BATCH-20260423,LAM-B01,R3C1,AOI-前贴附#1,2026-04-23 23:43:21.880084,暗点,轻微,45.28,232.05,155.0,340.0,23,夜班,2026-04-23
+D01033,PANEL-0380,BATCH-20260420,LAM-A02,R1C3,AOI-后段全检,2026-04-20 13:07:49.195943,暗点,中等,123.42,84.82,155.0,340.0,13,白班,2026-04-20
+D01034,PANEL-0010,BATCH-20260423,LAM-A01,R4C3,AOI-前贴附#1,2026-04-23 07:58:05.187623,漏光,中等,46.26,305.65,155.0,340.0,7,夜班,2026-04-23
+D01035,PANEL-0287,BATCH-20260421,LAM-A02,R3C5,AOI-前贴附#1,2026-04-21 21:09:55.701785,裂纹,严重,123.64,281.63,155.0,340.0,21,夜班,2026-04-21
+D01036,PANEL-0316,BATCH-20260425,LAM-A01,R4C5,AOI-前贴附#1,2026-04-25 12:47:22.035870,亮点,轻微,82.08,239.1,155.0,340.0,12,白班,2026-04-25
+D01037,PANEL-0326,BATCH-20260417,LAM-B01,R1C3,AOI-前贴附#2,2026-04-17 21:47:58.427467,暗点,中等,132.58,318.12,155.0,340.0,21,夜班,2026-04-17
+D01038,PANEL-0273,BATCH-20260428,LAM-A02,R3C4,AOI-前贴附#2,2026-04-28 15:49:34.536217,异物,严重,88.34,15.37,155.0,340.0,15,白班,2026-04-28
+D01039,PANEL-0306,BATCH-20260419,LAM-A02,R1C2,AOI-前贴附#2,2026-04-19 14:22:15.511167,划痕,中等,9.3,247.95,155.0,340.0,14,白班,2026-04-19
+D01040,PANEL-0293,BATCH-20260425,LAM-A02,R3C1,AOI-前贴附#1,2026-04-25 15:57:47.949011,色差,中等,102.94,113.98,155.0,340.0,15,白班,2026-04-25
+D01041,PANEL-0210,BATCH-20260421,LAM-A02,R2C3,AOI-后段全检,2026-04-21 15:40:40.211550,划痕,中等,11.5,304.0,155.0,340.0,15,白班,2026-04-21
+D01042,PANEL-0446,BATCH-20260417,LAM-A01,R3C1,AOI-前贴附#2,2026-04-17 14:46:15.397071,气泡,严重,70.34,93.0,155.0,340.0,14,白班,2026-04-17
+D01043,PANEL-0218,BATCH-20260408,LAM-A01,R1C3,AOI-前贴附#1,2026-04-08 11:13:17.192475,划痕,严重,139.77,244.2,155.0,340.0,11,白班,2026-04-08
+D01044,PANEL-0241,BATCH-20260413,LAM-A02,R3C4,AOI-前贴附#2,2026-04-13 21:36:22.477621,漏光,中等,28.95,294.62,155.0,340.0,21,夜班,2026-04-13
+D01045,PANEL-0374,BATCH-20260420,LAM-B01,R2C4,AOI-前贴附#2,2026-04-20 17:05:40.203552,暗点,轻微,61.53,18.75,155.0,340.0,17,夜班,2026-04-20
+D01046,PANEL-0464,BATCH-20260418,LAM-A02,R1C5,AOI-前贴附#1,2026-04-18 15:15:01.227508,划痕,中等,110.83,136.22,155.0,340.0,15,白班,2026-04-18
+D01047,PANEL-0200,BATCH-20260416,LAM-A02,R2C3,AOI-前贴附#1,2026-04-16 20:27:59.122942,划痕,严重,132.93,256.56,155.0,340.0,20,夜班,2026-04-16
+D01048,PANEL-0216,BATCH-20260422,LAM-A01,R1C2,AOI-前贴附#1,2026-04-22 08:34:02.129673,亮点,中等,102.29,155.12,155.0,340.0,8,白班,2026-04-22
+D01049,PANEL-0205,BATCH-20260407,LAM-A02,R3C5,AOI-后段全检,2026-04-07 13:00:35.729778,异物,中等,42.44,93.19,155.0,340.0,13,白班,2026-04-07
+D01050,PANEL-0413,BATCH-20260412,LAM-A01,R3C2,AOI-前贴附#2,2026-04-12 11:46:58.644452,气泡,轻微,102.82,77.54,155.0,340.0,11,白班,2026-04-12
+D01051,PANEL-0416,BATCH-20260416,LAM-A01,R4C2,AOI-前贴附#1,2026-04-16 14:14:37.627310,亮点,中等,48.03,48.4,155.0,340.0,14,白班,2026-04-16
+D01052,PANEL-0216,BATCH-20260413,LAM-A01,R3C5,AOI-前贴附#1,2026-04-13 12:28:48.135327,亮点,轻微,109.17,287.85,155.0,340.0,12,白班,2026-04-13
+D01053,PANEL-0080,BATCH-20260407,LAM-A01,R3C4,AOI-前贴附#2,2026-04-07 08:47:13.556665,暗点,轻微,143.33,194.87,155.0,340.0,8,白班,2026-04-07
+D01054,PANEL-0267,BATCH-20260418,LAM-A01,R4C5,AOI-前贴附#2,2026-04-18 07:39:23.007039,气泡,中等,109.6,30.21,155.0,340.0,7,夜班,2026-04-18
+D01055,PANEL-0480,BATCH-20260422,LAM-A01,R4C1,AOI-前贴附#2,2026-04-22 09:17:12.827664,漏光,轻微,130.12,131.25,155.0,340.0,9,白班,2026-04-22
+D01056,PANEL-0390,BATCH-20260407,LAM-A01,R2C4,AOI-后段全检,2026-04-07 09:59:07.038247,亮点,中等,5.31,126.35,155.0,340.0,9,白班,2026-04-07
+D01057,PANEL-0379,BATCH-20260417,LAM-A01,R1C1,AOI-前贴附#2,2026-04-17 09:07:58.666043,气泡,中等,109.05,64.97,155.0,340.0,9,白班,2026-04-17
+D01058,PANEL-0035,BATCH-20260408,LAM-A01,R4C2,AOI-前贴附#2,2026-04-08 03:58:19.594318,气泡,轻微,125.29,148.72,155.0,340.0,3,夜班,2026-04-08
+D01059,PANEL-0289,BATCH-20260413,LAM-A01,R3C3,AOI-前贴附#1,2026-04-13 15:34:44.898216,裂纹,严重,10.88,114.59,155.0,340.0,15,白班,2026-04-13
+D01060,PANEL-0018,BATCH-20260411,LAM-A01,R1C5,AOI-后段全检,2026-04-11 10:43:47.953496,裂纹,严重,131.38,117.8,155.0,340.0,10,白班,2026-04-11
+D01061,PANEL-0165,BATCH-20260404,LAM-A02,R2C1,AOI-前贴附#1,2026-04-04 14:55:59.818763,色差,轻微,42.22,248.88,155.0,340.0,14,白班,2026-04-04
+D01062,PANEL-0013,BATCH-20260418,LAM-A02,R4C4,AOI-前贴附#1,2026-04-18 15:16:55.851568,气泡,严重,101.47,78.68,155.0,340.0,15,白班,2026-04-18
+D01063,PANEL-0202,BATCH-20260408,LAM-A01,R3C3,AOI-前贴附#2,2026-04-08 10:04:31.291362,划痕,中等,121.05,216.81,155.0,340.0,10,白班,2026-04-08
+D01064,PANEL-0229,BATCH-20260414,LAM-A01,R1C1,AOI-前贴附#1,2026-04-14 10:11:24.389078,色差,中等,101.09,193.31,155.0,340.0,10,白班,2026-04-14
+D01065,PANEL-0346,BATCH-20260409,LAM-A02,R3C5,AOI-前贴附#1,2026-04-09 15:54:59.352056,亮点,轻微,18.38,192.47,155.0,340.0,15,白班,2026-04-09
+D01066,PANEL-0366,BATCH-20260403,LAM-B01,R2C4,AOI-前贴附#2,2026-04-03 17:18:54.882612,划痕,中等,91.47,223.79,155.0,340.0,17,夜班,2026-04-03
+D01067,PANEL-0465,BATCH-20260422,LAM-A02,R2C4,AOI-前贴附#1,2026-04-22 13:26:03.042649,亮点,中等,84.69,185.97,155.0,340.0,13,白班,2026-04-22
+D01068,PANEL-0448,BATCH-20260407,LAM-A01,R4C2,AOI-前贴附#1,2026-04-07 06:29:41.143197,色差,中等,135.55,295.15,155.0,340.0,6,夜班,2026-04-07
+D01069,PANEL-0001,BATCH-20260404,LAM-A01,R1C3,AOI-前贴附#2,2026-04-04 12:52:18.353568,划痕,中等,63.61,227.94,155.0,340.0,12,白班,2026-04-04
+D01070,PANEL-0319,BATCH-20260418,LAM-A01,R3C2,AOI-前贴附#2,2026-04-18 12:51:16.196417,亮点,中等,51.56,185.5,155.0,340.0,12,白班,2026-04-18
+D01071,PANEL-0217,BATCH-20260418,LAM-A01,R2C5,AOI-前贴附#1,2026-04-18 09:54:26.808370,亮点,严重,113.73,278.82,155.0,340.0,9,白班,2026-04-18
+D01072,PANEL-0034,BATCH-20260402,LAM-A01,R4C2,AOI-后段全检,2026-04-02 13:05:14.046532,划痕,中等,64.84,205.03,155.0,340.0,13,白班,2026-04-02
+D01073,PANEL-0359,BATCH-20260407,LAM-A02,R3C1,AOI-前贴附#1,2026-04-07 17:20:17.028327,划痕,中等,98.68,101.08,155.0,340.0,17,夜班,2026-04-07
+D01074,PANEL-0266,BATCH-20260403,LAM-A02,R1C4,AOI-前贴附#2,2026-04-03 14:53:46.037242,色差,严重,98.74,73.34,155.0,340.0,14,白班,2026-04-03
+D01075,PANEL-0128,BATCH-20260409,LAM-A01,R2C2,AOI-前贴附#1,2026-04-09 01:19:11.204023,色差,中等,133.77,55.27,155.0,340.0,1,夜班,2026-04-09
+D01076,PANEL-0212,BATCH-20260425,LAM-A01,R3C4,AOI-前贴附#2,2026-04-25 16:27:34.817858,划痕,中等,91.81,301.82,155.0,340.0,16,白班,2026-04-25
+D01077,PANEL-0263,BATCH-20260417,LAM-A01,R2C3,AOI-前贴附#1,2026-04-17 15:55:09.988050,色差,中等,77.81,239.34,155.0,340.0,15,白班,2026-04-17
+D01078,PANEL-0312,BATCH-20260410,LAM-A01,R1C1,AOI-前贴附#1,2026-04-10 11:39:57.549598,色差,轻微,25.14,314.33,155.0,340.0,11,白班,2026-04-10
+D01079,PANEL-0080,BATCH-20260422,LAM-B01,R1C4,AOI-前贴附#1,2026-04-22 17:22:43.324438,亮点,中等,21.78,204.09,155.0,340.0,17,夜班,2026-04-22
+D01080,PANEL-0165,BATCH-20260425,LAM-A02,R3C2,AOI-前贴附#2,2026-04-25 21:43:10.825542,气泡,轻微,27.38,161.22,155.0,340.0,21,夜班,2026-04-25
+D01081,PANEL-0413,BATCH-20260424,LAM-A02,R1C3,AOI-前贴附#2,2026-04-24 16:13:45.404716,异物,中等,29.92,24.71,155.0,340.0,16,白班,2026-04-24
+D01082,PANEL-0252,BATCH-20260419,LAM-A01,R4C5,AOI-前贴附#1,2026-04-19 13:40:52.611909,亮点,中等,97.49,226.64,155.0,340.0,13,白班,2026-04-19
+D01083,PANEL-0012,BATCH-20260402,LAM-A01,R2C1,AOI-后段全检,2026-04-02 13:04:34.558808,划痕,中等,112.44,197.13,155.0,340.0,13,白班,2026-04-02
+D01084,PANEL-0401,BATCH-20260423,LAM-A01,R3C1,AOI-前贴附#1,2026-04-23 08:30:58.905154,裂纹,严重,81.85,331.77,155.0,340.0,8,白班,2026-04-23
+D01085,PANEL-0304,BATCH-20260403,LAM-A01,R1C4,AOI-前贴附#2,2026-04-03 13:30:20.549738,暗点,轻微,125.21,83.92,155.0,340.0,13,白班,2026-04-03
+D01086,PANEL-0212,BATCH-20260415,LAM-A01,R4C5,AOI-前贴附#1,2026-04-15 00:39:23.025089,划痕,轻微,148.73,180.14,155.0,340.0,0,夜班,2026-04-15
+D01087,PANEL-0282,BATCH-20260415,LAM-A02,R2C2,AOI-前贴附#2,2026-04-15 12:02:54.006807,暗点,中等,123.9,219.82,155.0,340.0,12,白班,2026-04-15
+D01088,PANEL-0112,BATCH-20260420,LAM-A01,R3C1,AOI-前贴附#2,2026-04-20 09:30:06.880628,暗点,中等,105.76,217.72,155.0,340.0,9,白班,2026-04-20
+D01089,PANEL-0211,BATCH-20260418,LAM-A01,R1C1,AOI-前贴附#2,2026-04-18 08:31:01.375541,漏光,中等,82.21,190.23,155.0,340.0,8,白班,2026-04-18
+D01090,PANEL-0378,BATCH-20260412,LAM-A02,R2C2,AOI-前贴附#1,2026-04-12 13:22:52.229745,暗点,轻微,70.08,261.39,155.0,340.0,13,白班,2026-04-12
+D01091,PANEL-0239,BATCH-20260404,LAM-A01,R3C2,AOI-前贴附#1,2026-04-04 11:08:12.892299,划痕,中等,17.24,72.64,155.0,340.0,11,白班,2026-04-04
+D01092,PANEL-0268,BATCH-20260417,LAM-A01,R2C2,AOI-前贴附#2,2026-04-17 13:43:08.414691,气泡,轻微,62.91,244.46,155.0,340.0,13,白班,2026-04-17
+D01093,PANEL-0405,BATCH-20260425,LAM-B01,R4C4,AOI-前贴附#1,2026-04-25 17:01:31.043377,暗点,轻微,136.97,209.51,155.0,340.0,17,夜班,2026-04-25
+D01094,PANEL-0298,BATCH-20260417,LAM-A01,R2C3,AOI-前贴附#1,2026-04-17 03:13:45.215098,划痕,中等,122.16,300.7,155.0,340.0,3,夜班,2026-04-17
+D01095,PANEL-0317,BATCH-20260421,LAM-A01,R2C4,AOI-前贴附#1,2026-04-21 09:54:57.744878,暗点,中等,36.33,284.57,155.0,340.0,9,白班,2026-04-21
+D01096,PANEL-0058,BATCH-20260421,LAM-A01,R2C4,AOI-前贴附#1,2026-04-21 11:54:17.286333,色差,严重,72.66,109.0,155.0,340.0,11,白班,2026-04-21
+D01097,PANEL-0438,BATCH-20260402,LAM-A01,R1C2,AOI-前贴附#1,2026-04-02 11:17:57.412998,划痕,轻微,123.42,96.16,155.0,340.0,11,白班,2026-04-02
+D01098,PANEL-0034,BATCH-20260411,LAM-A01,R3C3,AOI-后段全检,2026-04-11 09:28:38.007756,暗点,严重,14.77,328.95,155.0,340.0,9,白班,2026-04-11
+D01099,PANEL-0263,BATCH-20260423,LAM-A01,R3C3,AOI-前贴附#2,2026-04-23 02:37:23.287944,亮点,轻微,61.17,179.0,155.0,340.0,2,夜班,2026-04-23
+D01100,PANEL-0365,BATCH-20260429,LAM-A01,R1C4,AOI-前贴附#2,2026-04-29 14:55:03.911293,划痕,中等,128.52,304.12,155.0,340.0,14,白班,2026-04-29
+D01101,PANEL-0035,BATCH-20260426,LAM-A01,R3C2,AOI-前贴附#1,2026-04-26 13:43:48.703413,亮点,严重,63.57,59.08,155.0,340.0,13,白班,2026-04-26
+D01102,PANEL-0271,BATCH-20260413,LAM-A01,R1C2,AOI-前贴附#2,2026-04-13 16:09:00.383955,亮点,严重,16.25,217.13,155.0,340.0,16,白班,2026-04-13
+D01103,PANEL-0449,BATCH-20260410,LAM-A01,R3C3,AOI-前贴附#2,2026-04-10 11:03:51.331566,色差,轻微,83.67,272.25,155.0,340.0,11,白班,2026-04-10
+D01104,PANEL-0474,BATCH-20260428,LAM-A01,R4C3,AOI-前贴附#2,2026-04-28 12:40:34.573885,划痕,中等,129.95,317.64,155.0,340.0,12,白班,2026-04-28
+D01105,PANEL-0227,BATCH-20260406,LAM-A02,R3C5,AOI-前贴附#1,2026-04-06 14:19:06.946921,气泡,中等,90.59,116.32,155.0,340.0,14,白班,2026-04-06
+D01106,PANEL-0025,BATCH-20260404,LAM-A01,R2C3,AOI-后段全检,2026-04-04 12:34:25.501145,划痕,中等,37.81,244.24,155.0,340.0,12,白班,2026-04-04
+D01107,PANEL-0234,BATCH-20260426,LAM-A01,R3C5,AOI-前贴附#2,2026-04-26 04:12:41.971098,裂纹,严重,60.71,182.81,155.0,340.0,4,夜班,2026-04-26
+D01108,PANEL-0059,BATCH-20260410,LAM-A01,R4C5,AOI-后段全检,2026-04-10 13:40:59.811626,暗点,中等,70.27,25.01,155.0,340.0,13,白班,2026-04-10
+D01109,PANEL-0251,BATCH-20260418,LAM-A02,R3C2,AOI-前贴附#1,2026-04-18 13:24:53.484469,气泡,中等,88.99,232.7,155.0,340.0,13,白班,2026-04-18
+D01110,PANEL-0335,BATCH-20260407,LAM-A01,R1C5,AOI-前贴附#1,2026-04-07 10:33:05.290853,划痕,轻微,115.11,232.73,155.0,340.0,10,白班,2026-04-07
+D01111,PANEL-0086,BATCH-20260426,LAM-A01,R2C4,AOI-前贴附#1,2026-04-26 10:47:42.970226,亮点,轻微,19.34,312.1,155.0,340.0,10,白班,2026-04-26
+D01112,PANEL-0251,BATCH-20260403,LAM-A01,R2C3,AOI-前贴附#2,2026-04-03 14:46:57.471464,划痕,严重,134.0,169.11,155.0,340.0,14,白班,2026-04-03
+D01113,PANEL-0390,BATCH-20260409,LAM-A01,R4C1,AOI-前贴附#1,2026-04-09 10:04:37.983302,裂纹,严重,6.78,80.98,155.0,340.0,10,白班,2026-04-09
+D01114,PANEL-0180,BATCH-20260425,LAM-B01,R4C1,AOI-后段全检,2026-04-25 17:59:38.536459,亮点,中等,58.66,19.71,155.0,340.0,17,夜班,2026-04-25
+D01115,PANEL-0207,BATCH-20260424,LAM-A01,R3C3,AOI-后段全检,2026-04-24 14:37:41.426184,暗点,轻微,8.98,142.16,155.0,340.0,14,白班,2026-04-24
+D01116,PANEL-0344,BATCH-20260404,LAM-A01,R1C5,AOI-前贴附#2,2026-04-04 10:54:20.487746,气泡,严重,61.98,104.63,155.0,340.0,10,白班,2026-04-04
+D01117,PANEL-0149,BATCH-20260416,LAM-A02,R3C1,AOI-前贴附#2,2026-04-16 14:47:55.078656,亮点,严重,81.24,256.16,155.0,340.0,14,白班,2026-04-16
+D01118,PANEL-0071,BATCH-20260423,LAM-A01,R1C5,AOI-前贴附#2,2026-04-23 09:35:43.376291,气泡,中等,79.19,121.91,155.0,340.0,9,白班,2026-04-23
+D01119,PANEL-0121,BATCH-20260426,LAM-A01,R3C3,AOI-前贴附#2,2026-04-26 00:15:49.934371,气泡,中等,29.02,318.19,155.0,340.0,0,夜班,2026-04-26
+D01120,PANEL-0253,BATCH-20260428,LAM-B01,R3C3,AOI-前贴附#1,2026-04-28 17:26:47.731645,气泡,轻微,98.63,322.56,155.0,340.0,17,夜班,2026-04-28
+D01121,PANEL-0093,BATCH-20260410,LAM-A01,R4C4,AOI-前贴附#2,2026-04-10 08:50:15.590397,亮点,中等,11.49,209.9,155.0,340.0,8,白班,2026-04-10
+D01122,PANEL-0256,BATCH-20260409,LAM-A01,R1C3,AOI-后段全检,2026-04-09 03:40:39.177522,亮点,中等,115.48,311.46,155.0,340.0,3,夜班,2026-04-09
+D01123,PANEL-0254,BATCH-20260407,LAM-A01,R2C2,AOI-前贴附#1,2026-04-07 13:20:32.526621,划痕,轻微,142.26,256.08,155.0,340.0,13,白班,2026-04-07
+D01124,PANEL-0352,BATCH-20260425,LAM-A01,R2C1,AOI-后段全检,2026-04-25 13:43:20.033053,色差,严重,54.27,185.46,155.0,340.0,13,白班,2026-04-25
+D01125,PANEL-0288,BATCH-20260404,LAM-A01,R1C3,AOI-前贴附#1,2026-04-04 07:46:36.942487,暗点,中等,80.0,64.5,155.0,340.0,7,夜班,2026-04-04
+D01126,PANEL-0309,BATCH-20260425,LAM-A01,R3C3,AOI-前贴附#1,2026-04-25 09:06:31.578735,亮点,轻微,59.94,156.34,155.0,340.0,9,白班,2026-04-25
+D01127,PANEL-0059,BATCH-20260406,LAM-A01,R2C2,AOI-前贴附#1,2026-04-06 11:36:34.612859,裂纹,严重,5.97,190.09,155.0,340.0,11,白班,2026-04-06
+D01128,PANEL-0069,BATCH-20260422,LAM-A01,R1C5,AOI-前贴附#1,2026-04-22 04:51:28.090133,划痕,严重,60.95,290.11,155.0,340.0,4,夜班,2026-04-22
+D01129,PANEL-0446,BATCH-20260427,LAM-A01,R4C3,AOI-后段全检,2026-04-27 09:09:09.004061,漏光,严重,119.8,163.84,155.0,340.0,9,白班,2026-04-27
+D01130,PANEL-0388,BATCH-20260404,LAM-B01,R2C4,AOI-后段全检,2026-04-04 21:57:42.311151,异物,中等,91.42,301.23,155.0,340.0,21,夜班,2026-04-04
+D01131,PANEL-0086,BATCH-20260406,LAM-A01,R4C5,AOI-前贴附#2,2026-04-06 12:30:16.023451,漏光,严重,19.68,227.54,155.0,340.0,12,白班,2026-04-06
+D01132,PANEL-0274,BATCH-20260402,LAM-A01,R1C1,AOI-后段全检,2026-04-02 12:12:16.343282,色差,轻微,127.84,50.21,155.0,340.0,12,白班,2026-04-02
+D01133,PANEL-0227,BATCH-20260409,LAM-A02,R4C2,AOI-前贴附#1,2026-04-09 13:58:57.048575,亮点,轻微,82.01,333.34,155.0,340.0,13,白班,2026-04-09
+D01134,PANEL-0081,BATCH-20260405,LAM-A01,R2C5,AOI-前贴附#1,2026-04-05 08:33:00.690649,划痕,严重,127.05,178.99,155.0,340.0,8,白班,2026-04-05
+D01135,PANEL-0498,BATCH-20260422,LAM-B01,R4C4,AOI-前贴附#2,2026-04-22 19:25:57.642671,气泡,中等,89.13,134.31,155.0,340.0,19,夜班,2026-04-22
+D01136,PANEL-0114,BATCH-20260408,LAM-B01,R4C4,AOI-后段全检,2026-04-08 22:17:42.414395,亮点,中等,86.15,222.51,155.0,340.0,22,夜班,2026-04-08
+D01137,PANEL-0184,BATCH-20260412,LAM-A02,R2C5,AOI-前贴附#1,2026-04-12 16:58:18.924946,划痕,轻微,20.26,40.93,155.0,340.0,16,白班,2026-04-12
+D01138,PANEL-0280,BATCH-20260416,LAM-A01,R4C2,AOI-后段全检,2026-04-16 06:44:00.743729,色差,轻微,29.27,215.06,155.0,340.0,6,夜班,2026-04-16
+D01139,PANEL-0322,BATCH-20260423,LAM-A01,R4C3,AOI-前贴附#2,2026-04-23 10:58:01.944178,亮点,轻微,145.94,169.42,155.0,340.0,10,白班,2026-04-23
+D01140,PANEL-0397,BATCH-20260425,LAM-A01,R4C5,AOI-后段全检,2026-04-25 08:39:00.740032,漏光,中等,38.13,139.2,155.0,340.0,8,白班,2026-04-25
+D01141,PANEL-0318,BATCH-20260427,LAM-A02,R4C2,AOI-前贴附#1,2026-04-27 16:31:49.973499,色差,轻微,146.73,319.5,155.0,340.0,16,白班,2026-04-27
+D01142,PANEL-0054,BATCH-20260412,LAM-A02,R4C4,AOI-前贴附#2,2026-04-12 15:06:32.144921,色差,严重,82.13,177.44,155.0,340.0,15,白班,2026-04-12
+D01143,PANEL-0399,BATCH-20260426,LAM-A01,R2C3,AOI-前贴附#2,2026-04-26 00:10:56.072563,气泡,严重,24.69,77.31,155.0,340.0,0,夜班,2026-04-26
+D01144,PANEL-0197,BATCH-20260410,LAM-A02,R2C1,AOI-前贴附#2,2026-04-10 15:43:33.513300,漏光,中等,19.4,156.46,155.0,340.0,15,白班,2026-04-10
+D01145,PANEL-0387,BATCH-20260426,LAM-A01,R2C4,AOI-前贴附#1,2026-04-26 11:21:58.942695,色差,轻微,35.29,308.4,155.0,340.0,11,白班,2026-04-26
+D01146,PANEL-0293,BATCH-20260402,LAM-A02,R3C2,AOI-后段全检,2026-04-02 12:58:52.437421,暗点,轻微,139.22,63.11,155.0,340.0,12,白班,2026-04-02
+D01147,PANEL-0293,BATCH-20260402,LAM-B01,R3C4,AOI-后段全检,2026-04-02 19:09:37.209433,划痕,中等,65.05,75.61,155.0,340.0,19,夜班,2026-04-02
+D01148,PANEL-0485,BATCH-20260403,LAM-A01,R4C2,AOI-前贴附#1,2026-04-03 14:44:02.807556,漏光,轻微,62.34,9.3,155.0,340.0,14,白班,2026-04-03
+D01149,PANEL-0387,BATCH-20260411,LAM-A01,R3C5,AOI-前贴附#1,2026-04-11 11:19:01.624811,色差,轻微,50.41,9.68,155.0,340.0,11,白班,2026-04-11
+D01150,PANEL-0447,BATCH-20260414,LAM-A01,R2C2,AOI-前贴附#2,2026-04-14 16:00:37.214336,亮点,轻微,26.32,278.7,155.0,340.0,16,白班,2026-04-14
+D01151,PANEL-0291,BATCH-20260423,LAM-A01,R2C5,AOI-前贴附#2,2026-04-23 11:06:30.551175,划痕,严重,75.74,246.6,155.0,340.0,11,白班,2026-04-23
+D01152,PANEL-0180,BATCH-20260414,LAM-B01,R3C4,AOI-前贴附#2,2026-04-14 19:25:37.220253,暗点,中等,23.86,122.16,155.0,340.0,19,夜班,2026-04-14
+D01153,PANEL-0471,BATCH-20260404,LAM-A02,R2C2,AOI-前贴附#1,2026-04-04 16:52:47.618842,划痕,中等,126.14,235.44,155.0,340.0,16,白班,2026-04-04
+D01154,PANEL-0380,BATCH-20260408,LAM-B01,R4C3,AOI-前贴附#2,2026-04-08 20:47:24.619063,裂纹,中等,58.71,135.42,155.0,340.0,20,夜班,2026-04-08
+D01155,PANEL-0412,BATCH-20260412,LAM-A01,R2C1,AOI-前贴附#2,2026-04-12 11:37:11.205650,异物,轻微,59.35,319.46,155.0,340.0,11,白班,2026-04-12
+D01156,PANEL-0222,BATCH-20260430,LAM-A02,R3C2,AOI-前贴附#1,2026-04-30 15:48:14.271238,划痕,轻微,73.73,324.13,155.0,340.0,15,白班,2026-04-30
+D01157,PANEL-0274,BATCH-20260413,LAM-A01,R4C5,AOI-前贴附#2,2026-04-13 12:16:45.601047,气泡,轻微,69.4,134.62,155.0,340.0,12,白班,2026-04-13
+D01158,PANEL-0378,BATCH-20260422,LAM-A01,R1C2,AOI-前贴附#1,2026-04-22 13:06:19.941558,划痕,严重,149.25,286.89,155.0,340.0,13,白班,2026-04-22
+D01159,PANEL-0244,BATCH-20260417,LAM-A01,R2C1,AOI-前贴附#1,2026-04-17 11:38:33.582892,气泡,严重,84.08,260.12,155.0,340.0,11,白班,2026-04-17
+D01160,PANEL-0420,BATCH-20260429,LAM-A01,R1C5,AOI-前贴附#2,2026-04-29 09:05:59.882776,亮点,轻微,17.79,107.3,155.0,340.0,9,白班,2026-04-29
+D01161,PANEL-0417,BATCH-20260412,LAM-B01,R4C4,AOI-后段全检,2026-04-12 22:25:44.873221,气泡,中等,93.0,81.57,155.0,340.0,22,夜班,2026-04-12
+D01162,PANEL-0448,BATCH-20260426,LAM-A02,R4C5,AOI-前贴附#1,2026-04-26 14:19:47.021146,亮点,中等,26.98,156.22,155.0,340.0,14,白班,2026-04-26
+D01163,PANEL-0154,BATCH-20260411,LAM-A02,R3C1,AOI-前贴附#1,2026-04-11 15:56:26.398192,划痕,轻微,9.49,262.85,155.0,340.0,15,白班,2026-04-11
+D01164,PANEL-0304,BATCH-20260419,LAM-A02,R3C2,AOI-前贴附#1,2026-04-19 12:59:29.273136,亮点,轻微,145.76,321.86,155.0,340.0,12,白班,2026-04-19
+D01165,PANEL-0424,BATCH-20260427,LAM-A01,R2C1,AOI-前贴附#1,2026-04-27 10:26:38.495392,划痕,中等,117.16,256.98,155.0,340.0,10,白班,2026-04-27
+D01166,PANEL-0273,BATCH-20260408,LAM-A02,R4C5,AOI-前贴附#2,2026-04-08 17:44:26.150955,暗点,轻微,147.12,287.22,155.0,340.0,17,夜班,2026-04-08
+D01167,PANEL-0424,BATCH-20260426,LAM-A01,R2C4,AOI-前贴附#2,2026-04-26 13:35:16.887578,划痕,轻微,74.29,204.01,155.0,340.0,13,白班,2026-04-26
+D01168,PANEL-0135,BATCH-20260409,LAM-A02,R4C1,AOI-前贴附#1,2026-04-09 16:07:50.534962,暗点,中等,82.18,280.68,155.0,340.0,16,白班,2026-04-09
+D01169,PANEL-0313,BATCH-20260421,LAM-A02,R3C4,AOI-后段全检,2026-04-21 13:06:12.799442,漏光,严重,29.41,263.86,155.0,340.0,13,白班,2026-04-21
+D01170,PANEL-0008,BATCH-20260409,LAM-A01,R2C3,AOI-前贴附#1,2026-04-09 10:44:16.975619,色差,中等,40.8,129.41,155.0,340.0,10,白班,2026-04-09
+D01171,PANEL-0128,BATCH-20260406,LAM-A01,R4C5,AOI-后段全检,2026-04-06 08:11:22.252510,漏光,严重,126.59,187.16,155.0,340.0,8,白班,2026-04-06
+D01172,PANEL-0373,BATCH-20260404,LAM-A01,R4C4,AOI-后段全检,2026-04-04 09:43:59.913208,裂纹,严重,56.65,270.57,155.0,340.0,9,白班,2026-04-04
+D01173,PANEL-0056,BATCH-20260406,LAM-A01,R3C4,AOI-前贴附#2,2026-04-06 09:42:50.727135,划痕,轻微,124.89,20.2,155.0,340.0,9,白班,2026-04-06
+D01174,PANEL-0126,BATCH-20260417,LAM-A01,R2C2,AOI-前贴附#1,2026-04-17 11:30:21.155444,划痕,严重,107.81,271.67,155.0,340.0,11,白班,2026-04-17
+D01175,PANEL-0159,BATCH-20260406,LAM-A01,R1C5,AOI-前贴附#2,2026-04-06 11:23:34.027546,暗点,严重,30.69,63.7,155.0,340.0,11,白班,2026-04-06
+D01176,PANEL-0059,BATCH-20260407,LAM-A01,R4C3,AOI-前贴附#2,2026-04-07 09:54:26.012108,漏光,轻微,78.58,174.85,155.0,340.0,9,白班,2026-04-07
+D01177,PANEL-0058,BATCH-20260423,LAM-A02,R3C1,AOI-后段全检,2026-04-23 12:15:13.383646,异物,轻微,103.22,271.73,155.0,340.0,12,白班,2026-04-23
+D01178,PANEL-0140,BATCH-20260428,LAM-A01,R2C3,AOI-前贴附#2,2026-04-28 01:36:47.994336,划痕,严重,39.08,88.76,155.0,340.0,1,夜班,2026-04-28
+D01179,PANEL-0176,BATCH-20260417,LAM-A01,R1C1,AOI-前贴附#2,2026-04-17 01:14:29.552929,亮点,轻微,125.45,86.12,155.0,340.0,1,夜班,2026-04-17
+D01180,PANEL-0415,BATCH-20260421,LAM-A01,R3C2,AOI-后段全检,2026-04-21 11:32:56.487337,划痕,中等,84.0,137.91,155.0,340.0,11,白班,2026-04-21
+D01181,PANEL-0108,BATCH-20260426,LAM-A01,R1C2,AOI-后段全检,2026-04-26 10:28:26.201208,气泡,严重,28.96,300.23,155.0,340.0,10,白班,2026-04-26
+D01182,PANEL-0211,BATCH-20260411,LAM-A02,R2C2,AOI-前贴附#2,2026-04-11 12:52:05.057207,暗点,严重,89.53,5.15,155.0,340.0,12,白班,2026-04-11
+D01183,PANEL-0447,BATCH-20260402,LAM-A01,R4C2,AOI-后段全检,2026-04-02 08:55:56.434282,划痕,轻微,149.96,302.46,155.0,340.0,8,白班,2026-04-02
+D01184,PANEL-0074,BATCH-20260423,LAM-A01,R3C4,AOI-前贴附#2,2026-04-23 08:17:42.662742,亮点,严重,26.83,55.76,155.0,340.0,8,白班,2026-04-23
+D01185,PANEL-0167,BATCH-20260424,LAM-A02,R2C2,AOI-前贴附#2,2026-04-24 13:40:44.975395,气泡,中等,123.43,331.73,155.0,340.0,13,白班,2026-04-24
+D01186,PANEL-0460,BATCH-20260406,LAM-B01,R1C3,AOI-前贴附#2,2026-04-06 23:54:16.022912,色差,轻微,35.06,320.1,155.0,340.0,23,夜班,2026-04-06
+D01187,PANEL-0404,BATCH-20260409,LAM-A01,R2C1,AOI-前贴附#2,2026-04-09 08:15:27.800156,划痕,轻微,118.45,168.24,155.0,340.0,8,白班,2026-04-09
+D01188,PANEL-0357,BATCH-20260410,LAM-A02,R1C2,AOI-前贴附#1,2026-04-10 15:52:49.104389,漏光,中等,111.51,174.2,155.0,340.0,15,白班,2026-04-10
+D01189,PANEL-0304,BATCH-20260426,LAM-A01,R3C2,AOI-前贴附#2,2026-04-26 14:16:01.755977,暗点,轻微,48.57,163.91,155.0,340.0,14,白班,2026-04-26
+D01190,PANEL-0233,BATCH-20260413,LAM-A02,R3C2,AOI-前贴附#2,2026-04-13 14:30:33.920839,色差,中等,52.24,214.7,155.0,340.0,14,白班,2026-04-13
+D01191,PANEL-0327,BATCH-20260405,LAM-A01,R4C2,AOI-前贴附#1,2026-04-05 10:31:13.784823,色差,轻微,119.92,34.94,155.0,340.0,10,白班,2026-04-05
+D01192,PANEL-0372,BATCH-20260421,LAM-A02,R2C5,AOI-前贴附#1,2026-04-21 20:37:22.211739,划痕,中等,71.91,15.76,155.0,340.0,20,夜班,2026-04-21
+D01193,PANEL-0182,BATCH-20260430,LAM-A01,R4C5,AOI-前贴附#2,2026-04-30 16:49:18.355279,划痕,中等,110.97,24.04,155.0,340.0,16,白班,2026-04-30

+ 18 - 0
findings.md

@@ -0,0 +1,18 @@
+# 发现与调研记录
+
+## 2026-05-14: 初始调研
+
+### 什么是"不良集中性"
+不良集中性分析是指在工业制造过程中,对机器视觉检测出的缺陷数据进行统计分析,找出缺陷的集中分布规律,主要包括以下几个维度:
+
+1. **空间集中性**: 缺陷在产品上的位置分布,找出高频缺陷区域
+2. **时间集中性**: 缺陷在时间轴上的分布,发现特定时段的高发趋势
+3. **类型集中性**: 不同缺陷类型的占比和关联性
+4. **批次集中性**: 缺陷是否集中在特定生产批次
+
+### 常见分析方法
+- **帕累托分析 (Pareto)**: 80/20法则,找出主要缺陷类型
+- **热力图 (Heatmap)**: 空间位置缺陷密度可视化
+- **趋势图 (Trend)**: 时间维度上的缺陷变化趋势
+- **柏拉图**: 缺陷类型排序分析
+- **控制图 (Control Chart)**: 过程稳定性分析

+ 291 - 0
generate_data.py

@@ -0,0 +1,291 @@
+"""
+生成LCD/OLED屏幕检测模拟缺陷数据
+模拟真实场景:边缘/角落缺陷更集中,某些时段缺陷更多,特定设备座号缺陷集中
+"""
+
+import numpy as np
+import pandas as pd
+from datetime import datetime, timedelta
+import json
+import os
+
+np.random.seed(42)
+
+# --- 配置 ---
+NUM_PANELS = 500  # 检测面板总数
+OUTPUT_FILE = "defect_data.csv"
+
+# 面板尺寸 (mm)
+PANEL_WIDTH = 155.0
+PANEL_HEIGHT = 340.0
+
+# 前贴附制程设备配置
+# 模拟3台前贴附设备,每台有4x5=20个座号
+LAMINATION_EQUIPMENT = {
+    "LAM-A01": {"rows": 4, "cols": 5, "total_seats": 20},
+    "LAM-A02": {"rows": 4, "cols": 5, "total_seats": 20},
+    "LAM-B01": {"rows": 5, "cols": 4, "total_seats": 20},
+}
+
+# 座号格式: 行号-列号,如 R1C1, R1C2, ...
+def get_seat_names(n_rows, n_cols):
+    seats = []
+    for r in range(1, n_rows + 1):
+        for c in range(1, n_cols + 1):
+            seats.append(f"R{r}C{c}")
+    return seats
+
+# 模拟座号缺陷倾向(某些座号因设备问题缺陷更多)
+# LAM-A01 的 R2C3 座号吸嘴老化 → 气泡缺陷集中
+# LAM-A01 的 R4C1 座号加热不均 → 漏光缺陷集中
+# LAM-A02 的 R1C5 座号压力不均 → 色差缺陷集中
+# LAM-B01 的 R3C2 座号异物污染 → 异物缺陷集中
+SEAT_DEFECT_BIAS = {
+    "LAM-A01_R2C3": {"defect_type": "气泡", "weight_boost": 3.0},
+    "LAM-A01_R4C1": {"defect_type": "漏光", "weight_boost": 2.5},
+    "LAM-A02_R1C5": {"defect_type": "色差", "weight_boost": 2.5},
+    "LAM-B01_R3C2": {"defect_type": "异物", "weight_boost": 3.0},
+}
+
+# 缺陷类型及其权重(模拟帕累托分布:少数类型占多数)
+DEFECT_TYPES = {
+    "划痕": 0.30,
+    "亮点": 0.20,
+    "暗点": 0.15,
+    "气泡": 0.12,
+    "色差": 0.08,
+    "漏光": 0.07,
+    "裂纹": 0.04,
+    "异物": 0.04,
+}
+
+# 生产时间范围:模拟30天的数据
+START_DATE = datetime(2026, 4, 1, 8, 0, 0)
+END_DATE = datetime(2026, 4, 30, 20, 0, 0)
+
+# 前贴附制程检测工位 (AOI)
+INSPECTION_STATIONS = ["AOI-前贴附#1", "AOI-前贴附#2", "AOI-后段全检"]
+
+
+def generate_panel_positions():
+    """生成面板位置分布,模拟空间集中性"""
+    positions = []
+
+    # 热点1:左边缘区域(贴合工艺问题)
+    n1 = np.random.randint(200, 350)
+    x1 = np.random.normal(8, 5, n1)
+    y1 = np.random.uniform(20, PANEL_HEIGHT - 20, n1)
+
+    # 热点2:右下角(受力集中区)
+    n2 = np.random.randint(150, 280)
+    x2 = np.random.normal(PANEL_WIDTH - 15, 8, n2)
+    y2 = np.random.normal(PANEL_HEIGHT - 20, 15, n2)
+
+    # 热点3:中心偏上(FPC绑定区域)
+    n3 = np.random.randint(100, 200)
+    x3 = np.random.normal(PANEL_WIDTH / 2, 20, n3)
+    y3 = np.random.normal(PANEL_HEIGHT * 0.75, 12, n3)
+
+    # 热点4:上边缘
+    n4 = np.random.randint(80, 150)
+    x4 = np.random.uniform(30, PANEL_WIDTH - 30, n4)
+    y4 = np.random.normal(10, 4, n4)
+
+    # 均匀分布的随机缺陷(背景噪声)
+    n5 = np.random.randint(200, 400)
+    x5 = np.random.uniform(5, PANEL_WIDTH - 5, n5)
+    y5 = np.random.uniform(5, PANEL_HEIGHT - 5, n5)
+
+    all_x = np.concatenate([x1, x2, x3, x4, x5])
+    all_y = np.concatenate([y1, y2, y3, y4, y5])
+
+    mask = (all_x >= 0) & (all_x <= PANEL_WIDTH) & (all_y >= 0) & (all_y <= PANEL_HEIGHT)
+    positions = list(zip(np.clip(all_x[mask], 0, PANEL_WIDTH),
+                         np.clip(all_y[mask], 0, PANEL_HEIGHT)))
+
+    return positions
+
+
+def generate_time_distribution(n_defects):
+    """生成时间分布,模拟特定时段缺陷集中"""
+    timestamps = []
+    total_seconds = (END_DATE - START_DATE).total_seconds()
+
+    for _ in range(n_defects):
+        random_seconds = np.random.uniform(0, total_seconds)
+        ts = START_DATE + timedelta(seconds=random_seconds)
+
+        # 夜班(17:00-8:00)缺陷权重更高
+        hour = ts.hour
+        if hour >= 17 or hour < 8:
+            if np.random.random() > 0.6:
+                timestamps.append(ts)
+            else:
+                day_seconds = np.random.uniform(0, 9 * 3600)
+                day_ts = ts.replace(hour=8) + timedelta(seconds=day_seconds)
+                timestamps.append(day_ts)
+        else:
+            timestamps.append(ts)
+
+    return timestamps
+
+
+def assign_equipment_and_seat(n_defects, timestamps):
+    """为每个缺陷分配设备和座号"""
+    equipment_list = list(LAMINATION_EQUIPMENT.keys())
+    equipment_ids = []
+    seat_ids = []
+
+    for ts in timestamps:
+        # 根据时间段分配设备(模拟不同班次使用不同设备)
+        hour = ts.hour
+        if hour < 12:
+            eq_idx = 0  # 白班主要用 LAM-A01
+        elif hour < 17:
+            eq_idx = np.random.choice([0, 1])  # 下午两台都用
+        else:
+            eq_idx = np.random.choice([1, 2])  # 夜班用 LAM-A02 和 LAM-B01
+
+        eq_id = equipment_list[eq_idx]
+        eq_info = LAMINATION_EQUIPMENT[eq_id]
+        seat_names = get_seat_names(eq_info["rows"], eq_info["cols"])
+        seat = np.random.choice(seat_names)
+
+        equipment_ids.append(eq_id)
+        seat_ids.append(seat)
+
+    return equipment_ids, seat_ids
+
+
+def generate_defect_type_with_seat_bias(n_defects, equipment_ids, seat_ids):
+    """生成缺陷类型,考虑座号偏差"""
+    types = list(DEFECT_TYPES.keys())
+    weights = np.array(list(DEFECT_TYPES.values()))
+    defect_type_list = []
+
+    for i in range(n_defects):
+        eq_id = equipment_ids[i]
+        seat_id = seat_ids[i]
+        key = f"{eq_id}_{seat_id}"
+
+        if key in SEAT_DEFECT_BIAS:
+            bias = SEAT_DEFECT_BIAS[key]
+            # 创建新的权重分布,增加特定缺陷类型的概率
+            biased_weights = weights.copy()
+            type_idx = types.index(bias["defect_type"])
+            biased_weights[type_idx] *= bias["weight_boost"]
+            biased_weights /= biased_weights.sum()
+            defect_type = np.random.choice(types, p=biased_weights)
+        else:
+            defect_type = np.random.choice(types, p=weights)
+
+        defect_type_list.append(defect_type)
+
+    return defect_type_list
+
+
+def generate_severity(defect_type):
+    """根据缺陷类型生成严重程度"""
+    severity_map = {
+        "裂纹": np.random.choice(["严重", "中等"], p=[0.7, 0.3]),
+        "漏光": np.random.choice(["严重", "中等", "轻微"], p=[0.4, 0.4, 0.2]),
+        "划痕": np.random.choice(["严重", "中等", "轻微"], p=[0.2, 0.4, 0.4]),
+    }
+    return severity_map.get(defect_type,
+                            np.random.choice(["轻微", "中等", "严重"], p=[0.5, 0.35, 0.15]))
+
+
+def generate_data():
+    """生成完整的缺陷数据集"""
+    print("生成模拟缺陷数据...")
+
+    # 生成空间位置
+    positions = generate_panel_positions()
+    n_defects = len(positions)
+    print(f"  生成 {n_defects} 个缺陷记录")
+
+    # 生成时间
+    timestamps = generate_time_distribution(n_defects)
+
+    # 分配设备和座号
+    equipment_ids, seat_ids = assign_equipment_and_seat(n_defects, timestamps)
+
+    # 生成缺陷类型(考虑座号偏差)
+    defect_type_list = generate_defect_type_with_seat_bias(n_defects, equipment_ids, seat_ids)
+
+    # 生成面板ID (模拟500块面板)
+    panel_ids = [f"PANEL-{np.random.randint(1, NUM_PANELS+1):04d}" for _ in range(n_defects)]
+
+    # 生成批次号
+    batch_ids = [f"BATCH-{ts.strftime('%Y%m%d')}" for ts in timestamps]
+
+    # 生成严重程度
+    severities = [generate_severity(dt) for dt in defect_type_list]
+
+    # 生成检测工位
+    inspection_stations = [np.random.choice(INSPECTION_STATIONS, p=[0.4, 0.4, 0.2]) for _ in range(n_defects)]
+
+    # 创建 DataFrame
+    df = pd.DataFrame({
+        "defect_id": [f"D{i+1:05d}" for i in range(n_defects)],
+        "panel_id": panel_ids,
+        "batch_id": batch_ids,
+        "equipment_id": equipment_ids,
+        "seat_id": seat_ids,
+        "inspection_station": inspection_stations,
+        "timestamp": timestamps,
+        "defect_type": defect_type_list,
+        "severity": severities,
+        "x_mm": [round(p[0], 2) for p in positions],
+        "y_mm": [round(p[1], 2) for p in positions],
+        "panel_width_mm": PANEL_WIDTH,
+        "panel_height_mm": PANEL_HEIGHT,
+        "hour": [ts.hour for ts in timestamps],
+        "shift": ["夜班" if (ts.hour >= 17 or ts.hour < 8) else "白班" for ts in timestamps],
+        "day": [ts.strftime("%Y-%m-%d") for ts in timestamps],
+    })
+
+    # 保存
+    df.to_csv(OUTPUT_FILE, index=False, encoding="utf-8-sig")
+    print(f"数据已保存到 {OUTPUT_FILE}")
+
+    # 保存统计摘要
+    types = list(DEFECT_TYPES.keys())
+    summary = {
+        "total_defects": n_defects,
+        "total_panels": NUM_PANELS,
+        "defect_types": {t: int((df["defect_type"] == t).sum()) for t in types},
+        "severity_distribution": {s: int((df["severity"] == s).sum()) for s in ["轻微", "中等", "严重"]},
+        "shift_distribution": {s: int((df["shift"] == s).sum()) for s in ["白班", "夜班"]},
+        "equipment_distribution": {e: int((df["equipment_id"] == e).sum()) for e in LAMINATION_EQUIPMENT.keys()},
+        "date_range": {
+            "start": START_DATE.strftime("%Y-%m-%d"),
+            "end": END_DATE.strftime("%Y-%m-%d"),
+        },
+        "lamination_config": {
+            "equipment": list(LAMINATION_EQUIPMENT.keys()),
+            "seat_bias": {k: v["defect_type"] for k, v in SEAT_DEFECT_BIAS.items()},
+        },
+    }
+    with open("data_summary.json", "w", encoding="utf-8") as f:
+        json.dump(summary, f, ensure_ascii=False, indent=2)
+    print(f"统计摘要已保存到 data_summary.json")
+
+    return df
+
+
+if __name__ == "__main__":
+    df = generate_data()
+    print(f"\n数据概览:")
+    print(f"  总记录数: {len(df)}")
+    print(f"  缺陷类型数: {df['defect_type'].nunique()}")
+    print(f"  面板数量: {df['panel_id'].nunique()}")
+    print(f"  批次数量: {df['batch_id'].nunique()}")
+    print(f"  设备数量: {df['equipment_id'].nunique()}")
+    print(f"  座号数量: {df['seat_id'].nunique()}")
+    print(f"\n缺陷类型分布:")
+    print(df["defect_type"].value_counts().to_string())
+    print(f"\n设备分布:")
+    print(df["equipment_id"].value_counts().to_string())
+    print(f"\n班次分布:")
+    print(df["shift"].value_counts().to_string())

+ 118 - 0
progress.md

@@ -0,0 +1,118 @@
+# 进度日志
+
+## Session 5 - 2026-05-15
+
+### 开始时间: 凌晨
+### 当前阶段: Phase 12 全部完成
+### 状态: complete
+
+**完成的动作**:
+1. Phase 12: 系统架构升级
+   - 侧边栏视图模式选择器 (操作员/工程师/管理者)
+   - 操作员视图: 5 Tab (空间/类型/时间/设备座号/模式识别)
+   - 工程师视图: 11 Tab 全开
+   - 管理者视图: 5 Tab (SPC/模式识别/健康共性/类型/时间)
+   - 综合报告导出: MD 格式 (KPI摘要+类型分布+设备座号+趋势+异常检测+建议)
+   - 三档导出: 综合报告(MD) / 筛选数据(CSV) / 精简报告(TXT)
+   - 动态 Tab 容器系统 (tab_map + get_tab 函数)
+
+**总计**: 11 个 Tab + 3 种角色视图 + 3 档导出
+
+## Session 4 - 2026-05-15
+
+### 开始时间: 凌晨
+### 当前阶段: Phase 11 全部完成
+### 状态: complete
+
+**完成的动作**:
+1. Phase 11: 多层叠加分析 (新增 Tab 11)
+   - 自定义区域划分 (边缘区/中心区/角落区/FPC区/上半区/下半区)
+   - 区域缺陷统计 + 叠加可视化图 (虚线区域边界 + 着色散点)
+   - 跨批次同座号面板对比 (3列网格并排对比)
+   - 同座号跨批次趋势判断 (斜率上升/下降/平稳)
+   - 缺陷坐标传播追踪 (同一坐标桶按时间演变 + 类型演变矩阵)
+
+**总计**: 11 个 Tab, 覆盖描述/诊断/预测/叠加四层分析
+
+## Session 2 - 2026-05-15
+
+### 开始时间: 凌晨
+### 当前阶段: Phase 6/7/8 全部完成
+### 状态: complete
+
+**完成的动作**:
+1. Phase 6: SPC 控制图与趋势预警 (新增 Tab 8)
+   - X-bar 控制图 (CL/UCL/LCL/UWL/LWL 五线)
+   - Western Electric 规则检测 (Rule 1: 3σ越限, Rule 2: 7点连升/连降, Rule 3: 7点在CL同侧)
+   - 线性回归趋势判断 (改善中/恶化中/稳定 + 斜率)
+   - 4 个 KPI 指标 + 告警清单 + 过程能力结论
+2. Phase 7: 重复缺陷坐标检测 (嵌入 Tab 1 底部)
+   - (x,y) 坐标分桶算法,可调整分桶大小 (5-50mm)
+   - 跨面板重复阈值检测 (2-10 块面板可调)
+   - 面板图上用红色气泡标注重复桶,大小=涉及面板数,中间显示数量
+   - 输出清单:涉及面板数、缺陷总数、中心坐标、主要类型/严重度
+3. Phase 8: CSV 数据上传
+   - 侧边栏数据源切换 (内置模拟数据 / 上传CSV文件)
+   - 16 字段自动校验 (缺字段报错)
+   - 数据格式模板下载
+   - 上传后自动替代数据源,所有 Tab 即时生效
+
+**总计**: 10 个 Tab, 数据源支持双模式, 覆盖描述/诊断/预测三层分析
+
+## Session 3 - 2026-05-15
+
+### 开始时间: 凌晨
+### 当前阶段: Phase 9/10 全部完成
+### 状态: complete
+
+**完成的动作**:
+1. Phase 9: 缺陷空间模式自动识别 (新增 Tab 9)
+   - 每块面板 5 种模式评分:边缘型、角落型、中心型、线条型、随机型
+   - 边缘型 → 缺陷到四边距离 < 12% 占比
+   - 角落型 → 四角 15% 区域内缺陷占比
+   - 中心型 → 距中心 18% 半径内缺陷占比
+   - 线条型 → PCA 第一主成分占比
+   - 随机型 → 5x5 网格变异系数的倒数
+   - 模式占比统计柱状图 + 模式-根因映射表
+   - 面板模式评分明细表
+2. Phase 10: 设备健康与共性分析 (新增 Tab 10)
+   - 设备健康评分 0-100 (缺陷率40% + 座号集中度30% + 严重度30%)
+   - 水平条形图可视化排名 (绿/橙/红)
+   - 异常批次自动检测 (缺陷率 > mean + 1σ)
+   - 共性分析: 设备共用性/时段共性/座号共性 (异常 vs 正常相对偏差)
+   - 异常批次缺陷类型偏差表
+
+**总计**: 10 个 Tab, 数据源支持双模式, 覆盖描述/诊断/预测三层分析
+
+## Session 1 - 2026-05-14
+
+### 开始时间: 下午
+### 当前阶段: 全部完成
+### 状态: complete
+
+**完成的动作**:
+1. 创建规划文件 (task_plan.md / findings.md / progress.md)
+2. 完成数据生成脚本 generate_data.py
+   - 1193 条缺陷记录,447 块面板,30 批次
+   - 8 种缺陷类型 + 3 级严重度
+   - 3 台前贴附设备,24 个座号,含座号缺陷偏差模拟
+3. 完成 Streamlit 应用 app.py (7 个 Tab)
+   - 顶部 KPI 看板(9 个指标)
+   - 侧边栏多维筛选(7 个维度)
+   - Tab1: 空间集中性(热力图+散点+9宫格+面板标注图)
+   - Tab2: 类型集中性(帕累托图+严重度分布)
+   - Tab3: 时间集中性(日趋势+小时分布+星期分布+班次对比)
+   - Tab4: 批次集中性(缺陷数/率+异常检测)
+   - Tab5: 设备座号集中性(设备对比+座号网格热力图+1σ/2σ异常检测+交叉分析)
+   - Tab6: 关联分析(类型×严重度+类型×班次+TOP10面板)
+   - Tab7: DBSCAN 智能聚类(空间聚类+PCA降维+簇特征表)
+4. 数据导出(CSV + TXT 报告)
+5. 修复: 空面板无缺陷时标注图报错(加空值检查)
+6. 修复: 侧边栏座号默认全选(不再只选前 5 个)
+7. 修复: 面板标注图尺寸从 (6,8) 缩为 (3.5,5)
+8. 更新 task_plan.md 状态为 complete
+
+**待确认**:
+- 老板的具体需求细节
+- 现有机器视觉系统的数据格式
+- 期望的输出形式

+ 84 - 0
task_plan.md

@@ -0,0 +1,84 @@
+# 缺陷集中性分析 - 任务计划
+
+## Goal Statement
+基于机器视觉分析检测出的缺陷数据,实现不良集中性分析功能,帮助发现缺陷在空间、时间、类型等维度的分布规律,为质量改进提供数据支撑。
+
+## Metadata
+- **Created**: 2026-05-14
+- **Status**: complete
+- **Owner**: LeoD
+- **Last Updated**: 2026-05-15
+
+## Phases
+
+### Phase 1: 需求确认与方案设计
+- **Status**: complete
+
+### Phase 2: 模拟数据生成
+- **Status**: complete
+
+### Phase 3: 集中性分析算法
+- **Status**: complete
+
+### Phase 4: 静态图表输出
+- **Status**: complete (集成在 Streamlit 中)
+
+### Phase 5: Streamlit 交互页面
+- **Status**: complete
+
+### Phase 6: SPC 控制图与趋势预警
+- **Status**: complete
+- **Key Deliverables**:
+  - [x] 日缺陷率 X-bar 控制图 (UCL/LCL/UWL/LWL/CL 五线)
+  - [x] Western Electric 规则告警 (Rule 1: 3σ越限, Rule 2: 7点连升/连降, Rule 3: 7点在CL同侧)
+  - [x] 趋势结论输出 (改善中/恶化中/稳定 + 斜率)
+  - [x] 4 个 SPC KPI + 告警清单 + 过程能力结论
+
+### Phase 7: 重复缺陷坐标检测
+- **Status**: complete
+- **Key Deliverables**:
+  - [x] (x,y) 坐标分桶,找出跨面板重复出现的缺陷点 (分桶大小/阈值可调)
+  - [x] 在面板图上标注重复点 (红色气泡, 大小=重复次数, 中间显示数量)
+  - [x] 输出疑似硬损伤清单 (涉及面板/缺陷总数/中心坐标/主要类型/严重度)
+
+### Phase 8: CSV 数据上传
+- **Status**: complete
+- **Key Deliverables**:
+  - [x] 侧边栏上传CSV入口 (数据源切换: 内置/上传)
+  - [x] 数据格式模板下载
+  - [x] 自动检测 16 字段完整性 (缺字段报错)
+
+### Phase 9: 缺陷空间模式自动识别
+- **Status**: complete
+- **Key Deliverables**:
+  - [x] 每块面板的模式评分:边缘型、角落型、中心型、随机型、线条型
+  - [x] 模式占比统计 + 模式-根因映射表
+  - [x] 新增 Tab: "缺陷模式识别"
+
+### Phase 10: 共性分析 + 设备健康评分
+- **Status**: complete
+- **Key Deliverables**:
+  - [x] 选中异常批次后自动分析共性 (设备/时段/座号)
+  - [x] 设备健康分 0-100 (基于缺陷率趋势/座号集中度/严重度)
+  - [x] 可视化排名
+
+### Phase 11: 多层叠加分析
+- **Status**: complete
+- **Key Deliverables**:
+  - [x] 自定义区域划分 (边缘区/中心区/FPC区/角落区) + 分区缺陷统计
+  - [x] 跨批次同座号面板对比 (同一座号在不同批次的面板标注图对比)
+  - [x] 缺陷传播追踪 (同一坐标随时间恶化趋势)
+
+### Phase 12: 系统架构升级
+- **Status**: complete
+- **Key Deliverables**:
+  - [x] 角色视图切换 (操作员: 5Tab / 工程师: 11Tab全开 / 管理者: 5Tab核心)
+  - [x] 一键导出综合报告 (MD格式: KPI+类型+设备+趋势+异常+建议)
+  - [x] 三档导出: 综合报告(MD) / 筛选数据(CSV) / 精简报告(TXT)
+
+## Errors Encountered
+| Error | Resolution |
+|-------|-----------|
+| Streamlit 缓存旧数据导致 KeyError | 使用 taskkill 清理进程 + cache_data(ttl=300) |
+| 多个 Streamlit 进程互相干扰 | taskkill //F //IM python.exe 清理后单进程启动 |
+| 面板标注图尺寸过大 | figsize 从 (6,8) 调整为 (3.5,5) |