{
  "surface": "report",
  "manifest": {
    "version": 1,
    "surface": "report",
    "title": "智慧团餐项目软件与硬件总体画像",
    "description": "基于 2025-2026 可审计项目清单形成的软件模块覆盖、硬件类别数量和数据质量总体画像。",
    "generatedAt": "2026-08-04T12:00:00+08:00",
    "cards": [
      {
        "id": "card_projects",
        "description": "合并同一客户项目的安装费拆行后。",
        "dataset": "headline",
        "sourceId": "src_profile",
        "metrics": [
          {
            "label": "客户项目场景",
            "field": "project_contexts",
            "format": "number"
          }
        ]
      },
      {
        "id": "card_modules",
        "description": "从显式软件和可追溯设备能力证据归类。",
        "dataset": "headline",
        "sourceId": "src_profile",
        "metrics": [
          {
            "label": "软件能力模块",
            "field": "software_modules",
            "format": "number"
          }
        ]
      },
      {
        "id": "card_hardware",
        "description": "排除软件、服务、餐具、线缆长度和 LED 面积后的观察值；尚未消除缺数量与重复版本影响。",
        "dataset": "headline",
        "sourceId": "src_profile",
        "metrics": [
          {
            "label": "可计数硬件观察值",
            "field": "observed_hardware",
            "format": "number"
          }
        ]
      },
      {
        "id": "card_gaps",
        "description": "既有 15 项目证据库尚未补齐。",
        "dataset": "headline",
        "sourceId": "src_profile",
        "metrics": [
          {
            "label": "待补项目槽位",
            "field": "unfilled_slots",
            "format": "number"
          }
        ]
      }
    ],
    "charts": [
      {
        "id": "software_coverage",
        "title": "软件模块项目覆盖",
        "subtitle": "交易结算覆盖 7/10 个项目场景；营养健康与系统集成各覆盖 4/10。",
        "type": "bar",
        "dataset": "software",
        "sourceId": "src_software",
        "options": {
          "orientation": "horizontal",
          "grouping": "single"
        },
        "encodings": {
          "x": {
            "field": "module_name",
            "type": "nominal",
            "label": "软件模块"
          },
          "y": {
            "field": "project_coverage_count",
            "type": "quantitative",
            "label": "覆盖项目场景数"
          },
          "tooltip": [
            {
              "field": "project_coverage_pct",
              "type": "quantitative",
              "label": "覆盖率",
              "format": "number"
            },
            {
              "field": "evidence_item_count",
              "type": "quantitative",
              "label": "证据物料数"
            }
          ]
        },
        "valueFormat": "number",
        "layout": "full"
      },
      {
        "id": "hardware_group_quantity",
        "title": "硬件大类观察数量",
        "subtitle": "前厅交易与身份、计算网络存储、营养展示三类合计 415 台/件，占观察值约 64%。",
        "type": "bar",
        "dataset": "hardware_groups",
        "sourceId": "src_hardware",
        "options": {
          "orientation": "horizontal",
          "grouping": "single"
        },
        "encodings": {
          "x": {
            "field": "hardware_group",
            "type": "nominal",
            "label": "硬件大类"
          },
          "y": {
            "field": "observed_quantity",
            "type": "quantitative",
            "label": "观察数量"
          },
          "tooltip": [
            {
              "field": "project_coverage_count",
              "type": "quantitative",
              "label": "覆盖项目场景"
            },
            {
              "field": "missing_quantity_lines",
              "type": "quantitative",
              "label": "缺数量明细"
            }
          ]
        },
        "valueFormat": "number",
        "layout": "full"
      }
    ],
    "tables": [
      {
        "id": "hardware_categories",
        "title": "硬件细分类数量",
        "subtitle": "观察数量不等于最终签收数量；单位缺失和重复版本仍需回读。",
        "dataset": "hardware_categories",
        "sourceId": "src_hardware",
        "defaultSort": {
          "field": "observed_quantity",
          "direction": "desc"
        },
        "density": "dense",
        "layout": "full",
        "columns": [
          {
            "field": "hardware_group",
            "label": "硬件大类",
            "type": "text"
          },
          {
            "field": "hardware_category",
            "label": "硬件细类",
            "type": "text"
          },
          {
            "field": "observed_quantity",
            "label": "观察数量",
            "format": "number"
          },
          {
            "field": "project_coverage_count",
            "label": "覆盖项目场景",
            "format": "number"
          },
          {
            "field": "missing_quantity_lines",
            "label": "缺数量明细",
            "format": "number"
          },
          {
            "field": "units",
            "label": "源表单位",
            "type": "text"
          }
        ]
      },
      {
        "id": "bulk_quantities",
        "title": "批量材料与餐具（按单位分开）",
        "subtitle": "餐具个数、线缆米数、网线箱数与 LED 平方米不能相加。",
        "dataset": "bulk",
        "sourceId": "src_bulk",
        "defaultSort": {
          "field": "observed_quantity",
          "direction": "desc"
        },
        "density": "dense",
        "layout": "full",
        "columns": [
          {
            "field": "bulk_category",
            "label": "类别",
            "type": "text"
          },
          {
            "field": "unit",
            "label": "单位",
            "type": "text"
          },
          {
            "field": "observed_quantity",
            "label": "观察数量",
            "format": "number"
          },
          {
            "field": "project_coverage_count",
            "label": "覆盖项目场景",
            "format": "number"
          },
          {
            "field": "missing_quantity_lines",
            "label": "缺数量明细",
            "format": "number"
          }
        ]
      },
      {
        "id": "quality_findings",
        "title": "数据质量与结论边界",
        "subtitle": "先解决高优先级问题，再把结果升级为历史全量项目画像。",
        "dataset": "quality",
        "sourceId": "src_quality",
        "defaultSort": {
          "field": "finding_id",
          "direction": "asc"
        },
        "density": "dense",
        "layout": "full",
        "columns": [
          {
            "field": "finding_id",
            "label": "编号",
            "type": "text"
          },
          {
            "field": "severity",
            "label": "严重级别",
            "type": "text"
          },
          {
            "field": "finding",
            "label": "问题",
            "type": "text"
          },
          {
            "field": "impact",
            "label": "影响",
            "type": "text"
          },
          {
            "field": "recommendation",
            "label": "建议",
            "type": "text"
          }
        ]
      }
    ],
    "sources": [
      {
        "id": "src_profile",
        "label": "项目分析概况",
        "path": "work/2026-08-04-smart-canteen-project-portfolio-analysis/analysis_queries.sql"
      },
      {
        "id": "src_software",
        "label": "软件模块覆盖 SQL",
        "path": "work/2026-08-04-smart-canteen-project-portfolio-analysis/analysis_queries.sql"
      },
      {
        "id": "src_hardware",
        "label": "硬件分类与数量 SQL",
        "path": "work/2026-08-04-smart-canteen-project-portfolio-analysis/analysis_queries.sql"
      },
      {
        "id": "src_bulk",
        "label": "批量材料分量纲 SQL",
        "path": "work/2026-08-04-smart-canteen-project-portfolio-analysis/analysis_queries.sql"
      },
      {
        "id": "src_quality",
        "label": "数据质量审计",
        "path": "work/2026-08-04-smart-canteen-project-portfolio-analysis/analysis_queries.sql"
      }
    ],
    "blocks": [
      {
        "id": "title",
        "type": "markdown",
        "body": "# 智慧团餐项目软件与硬件总体画像"
      },
      {
        "id": "executive_summary",
        "type": "markdown",
        "body": "## Executive Summary\n\n当前可审计结构化数据覆盖 **10 个客户项目场景**（11 条商务记录），形成 **5 类软件能力模块**，可计数硬件观察值为 **648 台/件**。交易结算是最稳定的软件底座；硬件集中在前厅交易身份、计算网络存储、营养展示和视频 AI。这个结果是 2025-2026 样本画像，不是公司自开展智慧团餐以来的历史全量；缺数量与重复版本会让最终净数量上调或下调。"
      },
      {
        "id": "metrics",
        "type": "metric-strip",
        "cardIds": [
          "card_projects",
          "card_modules",
          "card_hardware",
          "card_gaps"
        ],
        "layout": "full"
      },
      {
        "id": "software_section",
        "type": "markdown",
        "body": "## 软件功能模块\n\n能力骨架已从单点收银扩展为 **交易结算 + 食安进销存 + 营养健康 + 移动入口 + 系统集成**。覆盖率描述样本内项目证据，不代表模块活跃度、使用深度或收入贡献。"
      },
      {
        "id": "software_chart",
        "type": "chart",
        "chartId": "software_coverage",
        "layout": "full"
      },
      {
        "id": "hardware_section",
        "type": "markdown",
        "body": "## 硬件类别与数量\n\n可计数硬件观察值为 **648 台/件**。其中称重/收银/消费终端 160、电子价签/显示终端 114、摄像/视频采集 98、机柜配线电源附件 68、保温餐炉 64。7 条硬件/材料明细缺数量可能造成低估，江西 206 重复版本风险可能造成高估，因此 648 不是最终签收净数量。"
      },
      {
        "id": "hardware_chart",
        "type": "chart",
        "chartId": "hardware_group_quantity",
        "layout": "full"
      },
      {
        "id": "hardware_table",
        "type": "table",
        "tableId": "hardware_categories",
        "layout": "full"
      },
      {
        "id": "bulk_section",
        "type": "markdown",
        "body": "## 批量材料必须分量纲查看\n\n另有托盘与餐具 1,600 个/原表计数、线缆与光纤 1,200 米、网线 23 箱、LED 屏体 28.27 平方米。GOB 镀膜、配件包、结构装饰分别复用 28.27 平方米计价基数，不能重复解释成物理屏体面积。"
      },
      {
        "id": "bulk_table",
        "type": "table",
        "tableId": "bulk_quantities",
        "layout": "full"
      },
      {
        "id": "recommendation",
        "type": "markdown",
        "body": "## 建议\n\n先补齐统一项目台账和最终交付 BOM：项目 ID、商务/交付/验收状态、合同版本、软件标准 SKU、硬件物料编码、品牌型号、单位、数量、是否捆绑、部署位置和签收状态。补齐 15 项目库的 4 个空槽，再回填 2022-2024 已交付项目，之后才适合计算历史全量、标准复用率和软硬件毛利结构。"
      },
      {
        "id": "quality_table",
        "type": "table",
        "tableId": "quality_findings",
        "layout": "full"
      },
      {
        "id": "further_questions",
        "type": "markdown",
        "body": "## Further Questions\n\n1. 哪些微盘项目已经签约并完成验收，哪些只是售前或方案材料？\n2. 江西 206 项目的 399,820 元清单为何在明细中正好出现两倍金额？\n3. 软件模块是否有标准 SKU、版本、启用状态与实际活跃度记录？\n4. 能否补齐软件、硬件、实施的收入、成本、毛利、交付工时和续费？"
      },
      {
        "id": "caveats",
        "type": "markdown",
        "body": "## Caveats and Assumptions\n\n- 分析窗口为 2025-01-22 至 2026-02-02，不是历史全量。\n- 11 条商务记录合并为 10 个项目场景；同客户安装费拆行不重复算项目。\n- 648 排除软件、服务、餐具、长度和面积，且有缺数量明细。\n- 本任务不是实验分析：没有随机分组、样本量、主指标和显著性，因此不调用 `/analyze-test` 输出 ship / extend / stop。"
      }
    ]
  },
  "snapshot": {
    "version": 1,
    "generatedAt": "2026-08-04T12:00:00+08:00",
    "status": "ready",
    "datasets": {
      "headline": [
        {
          "project_contexts": 10,
          "software_modules": 5,
          "observed_hardware": 648,
          "unfilled_slots": 4
        }
      ],
      "software": [
        {
          "module_id": "MOD-01",
          "module_name": "智慧餐饮运营与交易结算",
          "project_coverage_count": 7,
          "project_coverage_pct": 70,
          "evidence_item_count": 30,
          "explicit_evidence_rows": 11,
          "hardware_implied_rows": 21
        },
        {
          "module_id": "MOD-02",
          "module_name": "食品安全监管、采购与进销存",
          "project_coverage_count": 6,
          "project_coverage_pct": 60,
          "evidence_item_count": 32,
          "explicit_evidence_rows": 7,
          "hardware_implied_rows": 27
        },
        {
          "module_id": "MOD-04",
          "module_name": "移动端、小程序与商城用户服务",
          "project_coverage_count": 6,
          "project_coverage_pct": 60,
          "evidence_item_count": 6,
          "explicit_evidence_rows": 7,
          "hardware_implied_rows": 0
        },
        {
          "module_id": "MOD-03",
          "module_name": "营养健康分析与菜品展示",
          "project_coverage_count": 4,
          "project_coverage_pct": 40,
          "evidence_item_count": 6,
          "explicit_evidence_rows": 4,
          "hardware_implied_rows": 5
        },
        {
          "module_id": "MOD-05",
          "module_name": "系统集成、数据同步与消费策略",
          "project_coverage_count": 4,
          "project_coverage_pct": 40,
          "evidence_item_count": 6,
          "explicit_evidence_rows": 7,
          "hardware_implied_rows": 0
        }
      ],
      "hardware_groups": [
        {
          "hardware_group": "前厅交易与身份设备",
          "project_coverage_count": 7,
          "category_count": 2,
          "source_line_count": 21,
          "observed_quantity": 166,
          "missing_quantity_lines": 0
        },
        {
          "hardware_group": "计算、网络与存储",
          "project_coverage_count": 7,
          "category_count": 4,
          "source_line_count": 45,
          "observed_quantity": 133,
          "missing_quantity_lines": 2
        },
        {
          "hardware_group": "营养与信息展示",
          "project_coverage_count": 6,
          "category_count": 2,
          "source_line_count": 9,
          "observed_quantity": 116,
          "missing_quantity_lines": 0
        },
        {
          "hardware_group": "视频与AI分析",
          "project_coverage_count": 5,
          "category_count": 2,
          "source_line_count": 15,
          "observed_quantity": 108,
          "missing_quantity_lines": 0
        },
        {
          "hardware_group": "餐线与配套设备",
          "project_coverage_count": 5,
          "category_count": 3,
          "source_line_count": 11,
          "observed_quantity": 85,
          "missing_quantity_lines": 2
        },
        {
          "hardware_group": "后厨食安与物联网",
          "project_coverage_count": 5,
          "category_count": 5,
          "source_line_count": 19,
          "observed_quantity": 40,
          "missing_quantity_lines": 0
        }
      ],
      "hardware_categories": [
        {
          "hardware_group": "前厅交易与身份设备",
          "hardware_category": "称重、收银与消费终端",
          "project_coverage_count": 7,
          "source_line_count": 16,
          "observed_quantity": 160,
          "missing_quantity_lines": 0,
          "units": "台,原表未填"
        },
        {
          "hardware_group": "营养与信息展示",
          "hardware_category": "电子价签与显示终端",
          "project_coverage_count": 5,
          "source_line_count": 7,
          "observed_quantity": 114,
          "missing_quantity_lines": 0,
          "units": "台,原表未填"
        },
        {
          "hardware_group": "视频与AI分析",
          "hardware_category": "摄像与视频采集设备",
          "project_coverage_count": 4,
          "source_line_count": 10,
          "observed_quantity": 98,
          "missing_quantity_lines": 0,
          "units": "台,原表未填"
        },
        {
          "hardware_group": "计算、网络与存储",
          "hardware_category": "机柜、配线与电源附件",
          "project_coverage_count": 3,
          "source_line_count": 14,
          "observed_quantity": 68,
          "missing_quantity_lines": 2,
          "units": "台,条,个,原表未填,套"
        },
        {
          "hardware_group": "餐线与配套设备",
          "hardware_category": "保温餐炉",
          "project_coverage_count": 3,
          "source_line_count": 4,
          "observed_quantity": 64,
          "missing_quantity_lines": 0,
          "units": "个,台,原表未填"
        },
        {
          "hardware_group": "计算、网络与存储",
          "hardware_category": "交换机与路由设备",
          "project_coverage_count": 4,
          "source_line_count": 14,
          "observed_quantity": 27,
          "missing_quantity_lines": 0,
          "units": "台,原表未填"
        },
        {
          "hardware_group": "计算、网络与存储",
          "hardware_category": "硬盘与录像存储设备",
          "project_coverage_count": 4,
          "source_line_count": 8,
          "observed_quantity": 25,
          "missing_quantity_lines": 0,
          "units": "台,原表未填,块"
        },
        {
          "hardware_group": "餐线与配套设备",
          "hardware_category": "打印设备",
          "project_coverage_count": 1,
          "source_line_count": 1,
          "observed_quantity": 16,
          "missing_quantity_lines": 0,
          "units": "台"
        },
        {
          "hardware_group": "计算、网络与存储",
          "hardware_category": "服务器与控制主机",
          "project_coverage_count": 5,
          "source_line_count": 9,
          "observed_quantity": 13,
          "missing_quantity_lines": 0,
          "units": "台,套"
        },
        {
          "hardware_group": "后厨食安与物联网",
          "hardware_category": "温湿度与中心温度设备",
          "project_coverage_count": 1,
          "source_line_count": 3,
          "observed_quantity": 12,
          "missing_quantity_lines": 0,
          "units": "个,台"
        },
        {
          "hardware_group": "后厨食安与物联网",
          "hardware_category": "验收、收货与食品检测设备",
          "project_coverage_count": 5,
          "source_line_count": 6,
          "observed_quantity": 10,
          "missing_quantity_lines": 0,
          "units": "台,原表未填"
        },
        {
          "hardware_group": "视频与AI分析",
          "hardware_category": "AI边缘计算与分析设备",
          "project_coverage_count": 5,
          "source_line_count": 5,
          "observed_quantity": 10,
          "missing_quantity_lines": 0,
          "units": "套,原表未填,台"
        },
        {
          "hardware_group": "后厨食安与物联网",
          "hardware_category": "晨检设备",
          "project_coverage_count": 4,
          "source_line_count": 4,
          "observed_quantity": 7,
          "missing_quantity_lines": 0,
          "units": "台,原表未填"
        },
        {
          "hardware_group": "后厨食安与物联网",
          "hardware_category": "留样设备",
          "project_coverage_count": 4,
          "source_line_count": 4,
          "observed_quantity": 7,
          "missing_quantity_lines": 0,
          "units": "台,原表未填"
        },
        {
          "hardware_group": "前厅交易与身份设备",
          "hardware_category": "读卡、发卡与考勤设备",
          "project_coverage_count": 4,
          "source_line_count": 5,
          "observed_quantity": 6,
          "missing_quantity_lines": 0,
          "units": "个,台,原表未填"
        },
        {
          "hardware_group": "餐线与配套设备",
          "hardware_category": "其他可计数配套设备",
          "project_coverage_count": 3,
          "source_line_count": 6,
          "observed_quantity": 5,
          "missing_quantity_lines": 2,
          "units": "把,原表未填,套"
        },
        {
          "hardware_group": "后厨食安与物联网",
          "hardware_category": "库管手持设备",
          "project_coverage_count": 2,
          "source_line_count": 2,
          "observed_quantity": 4,
          "missing_quantity_lines": 0,
          "units": "台"
        },
        {
          "hardware_group": "营养与信息展示",
          "hardware_category": "营养与健康终端",
          "project_coverage_count": 2,
          "source_line_count": 2,
          "observed_quantity": 2,
          "missing_quantity_lines": 0,
          "units": "台,原表未填"
        }
      ],
      "bulk": [
        {
          "bulk_category": "GOB镀膜面积",
          "unit": "平米",
          "project_coverage_count": 1,
          "source_line_count": 2,
          "observed_quantity": 28.27,
          "missing_quantity_lines": 0
        },
        {
          "bulk_category": "LED屏体面积",
          "unit": "平米",
          "project_coverage_count": 1,
          "source_line_count": 2,
          "observed_quantity": 28.27,
          "missing_quantity_lines": 0
        },
        {
          "bulk_category": "LED结构装饰计价面积",
          "unit": "平米",
          "project_coverage_count": 1,
          "source_line_count": 2,
          "observed_quantity": 28.27,
          "missing_quantity_lines": 0
        },
        {
          "bulk_category": "LED配件计价面积",
          "unit": "平米",
          "project_coverage_count": 1,
          "source_line_count": 2,
          "observed_quantity": 28.27,
          "missing_quantity_lines": 0
        },
        {
          "bulk_category": "托盘与餐具",
          "unit": "",
          "project_coverage_count": 1,
          "source_line_count": 1,
          "observed_quantity": 800,
          "missing_quantity_lines": 0
        },
        {
          "bulk_category": "托盘与餐具",
          "unit": "个",
          "project_coverage_count": 2,
          "source_line_count": 2,
          "observed_quantity": 800,
          "missing_quantity_lines": 0
        },
        {
          "bulk_category": "线缆与光纤",
          "unit": "",
          "project_coverage_count": 1,
          "source_line_count": 2,
          "observed_quantity": 1,
          "missing_quantity_lines": 1
        },
        {
          "bulk_category": "线缆与光纤",
          "unit": "/",
          "project_coverage_count": 1,
          "source_line_count": 1,
          "observed_quantity": 2,
          "missing_quantity_lines": 0
        },
        {
          "bulk_category": "线缆与光纤",
          "unit": "个",
          "project_coverage_count": 1,
          "source_line_count": 1,
          "observed_quantity": 32,
          "missing_quantity_lines": 0
        },
        {
          "bulk_category": "线缆与光纤",
          "unit": "卷",
          "project_coverage_count": 1,
          "source_line_count": 1,
          "observed_quantity": 1,
          "missing_quantity_lines": 0
        },
        {
          "bulk_category": "线缆与光纤",
          "unit": "对",
          "project_coverage_count": 1,
          "source_line_count": 1,
          "observed_quantity": 15,
          "missing_quantity_lines": 0
        },
        {
          "bulk_category": "线缆与光纤",
          "unit": "根",
          "project_coverage_count": 1,
          "source_line_count": 1,
          "observed_quantity": 32,
          "missing_quantity_lines": 0
        },
        {
          "bulk_category": "线缆与光纤",
          "unit": "箱",
          "project_coverage_count": 2,
          "source_line_count": 2,
          "observed_quantity": 23,
          "missing_quantity_lines": 0
        },
        {
          "bulk_category": "线缆与光纤",
          "unit": "米",
          "project_coverage_count": 1,
          "source_line_count": 3,
          "observed_quantity": 1200,
          "missing_quantity_lines": 0
        },
        {
          "bulk_category": "耗材与辅材",
          "unit": "",
          "project_coverage_count": 1,
          "source_line_count": 3,
          "observed_quantity": 1,
          "missing_quantity_lines": 2
        },
        {
          "bulk_category": "耗材与辅材",
          "unit": "批",
          "project_coverage_count": 1,
          "source_line_count": 1,
          "observed_quantity": 1,
          "missing_quantity_lines": 0
        },
        {
          "bulk_category": "耗材与辅材",
          "unit": "盒",
          "project_coverage_count": 1,
          "source_line_count": 1,
          "observed_quantity": 1,
          "missing_quantity_lines": 0
        },
        {
          "bulk_category": "耗材与辅材",
          "unit": "项",
          "project_coverage_count": 1,
          "source_line_count": 1,
          "observed_quantity": 1,
          "missing_quantity_lines": 0
        }
      ],
      "quality": [
        {
          "finding_id": "DQ-01",
          "severity": "high",
          "finding": "当前数据不是智慧团餐历史全量项目库",
          "evidence": "源表仅覆盖 2025-01-22 至 2026-02-02 的 11 条商业记录；15 项目证据库仍有 4 个待补槽位",
          "impact": "不能把模块覆盖率和硬件数量解释为公司自开展业务以来的全量统计",
          "recommendation": "补齐 2022-2026 已交付项目并按售前/签约/交付/验收状态去重"
        },
        {
          "finding_id": "DQ-02",
          "severity": "high",
          "finding": "江西206项目明细金额疑似重复",
          "evidence": "合同/收入金额 399820 元；明细合计 799640 元，差额正好 399820 元",
          "impact": "同一批清单可能包含重复版本，硬件数量也存在重复计算风险",
          "recommendation": "回读最终签收清单或合同附件并标记有效版本后重算"
        },
        {
          "finding_id": "DQ-03",
          "severity": "medium",
          "finding": "另有两条金额不勾稽",
          "evidence": "安装实施费差额 -6381 元；首都机场差额 -14250 元",
          "impact": "金额分析和软硬件收入结构暂不适合直接用于经营决策",
          "recommendation": "由销售/财务确认折扣、赠送、税费或漏项原因"
        },
        {
          "finding_id": "DQ-04",
          "severity": "medium",
          "finding": "硬件单位字段不完整",
          "evidence": "硬件/批量材料中有 34 条明细未填单位，主要来自江西206原表",
          "impact": "数量可作为观察值但不宜直接视为资产台账",
          "recommendation": "统一补项目ID、物料编码、单位、最终数量、部署位置和验收状态"
        },
        {
          "finding_id": "DQ-05",
          "severity": "medium",
          "finding": "部分捆绑硬件未进入既有归一化表",
          "evidence": "服务器3套、智能视频管理平台服务器3套、读卡器1台没有独立价格，原归一化CSV未保留；本次从源表恢复3行",
          "impact": "既有硬件汇总会低估设备数量",
          "recommendation": "归一化规则应保留无独立价格的BOM子项并标记bundled"
        },
        {
          "finding_id": "DQ-06",
          "severity": "medium",
          "finding": "7条硬件/批量材料明细缺数量",
          "evidence": "包括项目8部分辅材、机柜及转接器等",
          "impact": "缺数量会造成低估；与江西206重复版本风险共同作用后，648观察值可能上调或下调",
          "recommendation": "以最终设备签收/验收单补数量并消除重复版本"
        },
        {
          "finding_id": "DQ-07",
          "severity": "low",
          "finding": "一位客户被拆成项目与安装费两条商业记录",
          "evidence": "北京华谊汇加科技发展有限公司对应项目主合同与安装实施费两条记录",
          "impact": "按收入行统计会高估项目数",
          "recommendation": "项目画像按10个客户项目场景统计，财务勾稽仍保留11条商业记录"
        }
      ]
    }
  },
  "sources": [
    {
      "id": "src_profile",
      "label": "项目分析概况",
      "path": "work/2026-08-04-smart-canteen-project-portfolio-analysis/analysis_queries.sql",
      "query": {
        "engine": "sqlite",
        "language": "sql",
        "sql": "SELECT 10 AS project_contexts, 5 AS software_modules,\n               648 AS observed_hardware, 4 AS unfilled_slots",
        "description": "汇总当前可审计项目场景、软件模块、可计数硬件观察值和待补项目槽位。",
        "tables_used": [
          "line_items",
          "software_module_evidence",
          "project_product_evidence_db"
        ],
        "metric_definitions": [
          "项目场景数：将同一客户项目的安装费拆行并回主项目后去重。",
          "可计数硬件：仅汇总台、套、个、块等耐用品；排除软件、服务、餐具、线缆长度和 LED 面积。"
        ],
        "executed_at": "2026-08-04T12:00:00+08:00"
      }
    },
    {
      "id": "src_software",
      "label": "软件模块覆盖 SQL",
      "path": "work/2026-08-04-smart-canteen-project-portfolio-analysis/analysis_queries.sql",
      "query": {
        "engine": "sqlite",
        "language": "sql",
        "sql": "SELECT module_id, module_name,\n               COUNT(DISTINCT project_context_id) AS project_coverage_count,\n               ROUND(100.0 * COUNT(DISTINCT project_context_id) / 10, 1) AS project_coverage_pct\n        FROM software_module_evidence\n        GROUP BY module_id, module_name\n        ORDER BY project_coverage_count DESC, module_id",
        "description": "按项目场景去重，统计五类软件模块的证据覆盖。",
        "tables_used": [
          "software_module_evidence"
        ],
        "metric_definitions": [
          "覆盖率 = 含该模块证据的项目场景数 / 10；硬件隐含证据和显式软件证据均保留标记。"
        ],
        "executed_at": "2026-08-04T12:00:00+08:00"
      }
    },
    {
      "id": "src_hardware",
      "label": "硬件分类与数量 SQL",
      "path": "work/2026-08-04-smart-canteen-project-portfolio-analysis/analysis_queries.sql",
      "query": {
        "engine": "sqlite",
        "language": "sql",
        "sql": "SELECT hardware_group, hardware_category,\n               COUNT(DISTINCT project_context_id) AS project_coverage_count,\n               COUNT(*) AS source_line_count,\n               ROUND(SUM(quantity), 2) AS observed_quantity,\n               SUM(CASE WHEN quantity IS NULL THEN 1 ELSE 0 END) AS missing_quantity_lines\n        FROM line_items\n        WHERE record_type = 'hardware'\n        GROUP BY hardware_group, hardware_category\n        ORDER BY observed_quantity DESC",
        "description": "汇总耐用品硬件类别、观察数量和缺数量明细。",
        "tables_used": [
          "line_items"
        ],
        "metric_definitions": [
          "观察数量为源表已填写数量之和；缺数量可能低估，重复版本可能高估，因此 648 不是最终净数量。"
        ],
        "executed_at": "2026-08-04T12:00:00+08:00"
      }
    },
    {
      "id": "src_bulk",
      "label": "批量材料分量纲 SQL",
      "path": "work/2026-08-04-smart-canteen-project-portfolio-analysis/analysis_queries.sql",
      "query": {
        "engine": "sqlite",
        "language": "sql",
        "sql": "SELECT hardware_category AS bulk_category, unit,\n               COUNT(DISTINCT project_context_id) AS project_coverage_count,\n               ROUND(SUM(quantity), 2) AS observed_quantity,\n               SUM(CASE WHEN quantity IS NULL THEN 1 ELSE 0 END) AS missing_quantity_lines\n        FROM line_items\n        WHERE record_type = 'bulk'\n        GROUP BY hardware_category, unit\n        ORDER BY hardware_category, unit",
        "description": "按类别和单位分开汇总餐具、线缆、LED 面积与耗材。",
        "tables_used": [
          "line_items"
        ],
        "metric_definitions": [
          "不同单位不可相加；LED 屏体、镀膜、配件和结构的相同平方米数是计价基数，不是四倍物理面积。"
        ],
        "executed_at": "2026-08-04T12:00:00+08:00"
      }
    },
    {
      "id": "src_quality",
      "label": "数据质量审计",
      "path": "work/2026-08-04-smart-canteen-project-portfolio-analysis/analysis_queries.sql",
      "query": {
        "engine": "sqlite",
        "language": "sql",
        "sql": "SELECT finding_id, severity, finding, impact, recommendation FROM data_quality_findings ORDER BY finding_id",
        "description": "列出覆盖范围、金额勾稽、单位和数量缺口。",
        "tables_used": [
          "data_quality_findings"
        ],
        "metric_definitions": [
          "严重级别由对总体结论的影响确定；high 表示可改变全量性或数量结论。"
        ],
        "executed_at": "2026-08-04T12:00:00+08:00"
      }
    }
  ],
  "package_info": {
    "originUrl": "artifact://smart-canteen-project-portfolio-analysis",
    "controls": {
      "edit": true,
      "refresh": true
    }
  }
}
