From 3f1c29148654858b93bbd5e36665810e920159de Mon Sep 17 00:00:00 2001 From: freedakgmail Date: Tue, 11 Aug 2026 07:26:11 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=97=A8=E5=BA=97?= =?UTF-8?q?=E8=AF=84=E4=BC=B0=E6=95=B0=E6=8D=AE=E4=B8=8D=E4=B8=80=E8=87=B4?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 恢复被误删的5家门店旧账单数据(58377行) - 合并哈马尔罕大钟寺店费用到大钟寺店(0022) - 修改v_store_operating_expense_monthly视图按sales_store_code聚合费用 - 修复利润机会池食材成本差异为负时opportunity不为负 - 修复前端totalOpportunity只累加正数机会 - 刷新bill_fact/mv_store_risk_rating_monthly等物化视图 - 新增PromotionPage和promotion路由 --- client/src/App.tsx | 2 + client/src/components/Layout.tsx | 3 +- client/src/pages/BossPage.tsx | 14 +- client/src/pages/EnterprisePage.tsx | 58 +- client/src/pages/InventoryTurnoverPage.tsx | 127 +++- client/src/pages/LoginPage.tsx | 4 +- client/src/pages/PromotionPage.tsx | 199 ++++++ client/src/pages/RiskPage.tsx | 74 ++- client/src/pages/StoreGradePage.tsx | 131 +++- docs/玄谋智脑_连锁企业e1.0.pptx | Bin 0 -> 101480 bytes server/src/index.ts | 2 + server/src/routes/analytics-enhanced.ts | 121 ++++ server/src/routes/data.ts | 100 +-- server/src/routes/enterprise.ts | 121 ++++ server/src/routes/promotion.ts | 275 ++++++++ server/src/routes/situational-awareness.ts | 144 ++--- server/src/routes/store-expense.ts | 9 +- server/src/routes/store-grade.ts | 118 ++++ 企业智脑建设蓝图.md | 12 +- 玄谋智脑_系统销售和服务合同.md | 585 ++++++++++++++++++ 玄谋智脑_老板版震撼宣传片剧本.md | 429 +++++++++++++ 玄谋智脑_连锁企业老板决策版.pptx | Bin 0 -> 84733 bytes ...智脑_连锁企业老板决策版.pptx.inspect.ndjson | 456 ++++++++++++++ ...智脑_连锁企业老板决策版_中英双语优化版.pptx | Bin 0 -> 87633 bytes ...业老板决策版_中英双语优化版.pptx.inspect.ndjson | 456 ++++++++++++++ ...智脑_连锁企业老板决策版_中英双语完整版.pptx | Bin 0 -> 96510 bytes ...业老板决策版_中英双语完整版.pptx.inspect.ndjson | 456 ++++++++++++++ 玄谋智脑_连锁企业老板决策版_英文主版.pptx | Bin 0 -> 97525 bytes ...锁企业老板决策版_英文主版.pptx.inspect.ndjson | 456 ++++++++++++++ 玄谋智脑建设蓝图_老板决策版.md | 318 ++++++++++ 30 files changed, 4521 insertions(+), 149 deletions(-) create mode 100644 client/src/pages/PromotionPage.tsx create mode 100644 docs/玄谋智脑_连锁企业e1.0.pptx create mode 100644 server/src/routes/promotion.ts create mode 100644 玄谋智脑_系统销售和服务合同.md create mode 100644 玄谋智脑_老板版震撼宣传片剧本.md create mode 100644 玄谋智脑_连锁企业老板决策版.pptx create mode 100644 玄谋智脑_连锁企业老板决策版.pptx.inspect.ndjson create mode 100644 玄谋智脑_连锁企业老板决策版_中英双语优化版.pptx create mode 100644 玄谋智脑_连锁企业老板决策版_中英双语优化版.pptx.inspect.ndjson create mode 100644 玄谋智脑_连锁企业老板决策版_中英双语完整版.pptx create mode 100644 玄谋智脑_连锁企业老板决策版_中英双语完整版.pptx.inspect.ndjson create mode 100644 玄谋智脑_连锁企业老板决策版_英文主版.pptx create mode 100644 玄谋智脑_连锁企业老板决策版_英文主版.pptx.inspect.ndjson create mode 100644 玄谋智脑建设蓝图_老板决策版.md diff --git a/client/src/App.tsx b/client/src/App.tsx index 9c5c06e..cbb3dfd 100644 --- a/client/src/App.tsx +++ b/client/src/App.tsx @@ -46,6 +46,7 @@ import { ProductLifecyclePage } from './pages/ProductLifecyclePage' import { DataImportPage } from './pages/DataImportPage' import { EnterprisePage } from './pages/EnterprisePage' import { IntelligencePage } from './pages/IntelligencePage' +import { PromotionPage } from './pages/PromotionPage' import { RoleRoute } from './components/RoleRoute' const queryClient = new QueryClient({ @@ -133,6 +134,7 @@ export default function App() { } /> } /> } /> + } /> } /> diff --git a/client/src/components/Layout.tsx b/client/src/components/Layout.tsx index b765f32..520c857 100644 --- a/client/src/components/Layout.tsx +++ b/client/src/components/Layout.tsx @@ -1,6 +1,6 @@ import { ReactNode, useState } from 'react' import { Link, useLocation } from 'react-router-dom' -import { LayoutDashboard, Store, ClipboardList, TrendingUp, Settings, LogOut, Menu, X, Package, DollarSign, ShoppingBag, Users, AlertTriangle, Clock, Database, MapPin, PieChart, Wallet, CalendarClock, Activity, Crown, BarChart3, Receipt, Utensils, Landmark, ChefHat, Truck, Network, TrendingUp as TrendingUpIcon, Building2, Target, Bell, Timer, TrafficCone, Boxes, Download, Briefcase, Cpu } from 'lucide-react' +import { LayoutDashboard, Store, ClipboardList, TrendingUp, Settings, LogOut, Menu, X, Package, DollarSign, ShoppingBag, Users, AlertTriangle, Clock, Database, MapPin, PieChart, Wallet, CalendarClock, Activity, Crown, BarChart3, Receipt, Utensils, Landmark, ChefHat, Truck, Network, TrendingUp as TrendingUpIcon, Building2, Target, Bell, Timer, TrafficCone, Boxes, Download, Briefcase, Cpu, Tag } from 'lucide-react' import { cn } from '@/lib/utils' import { StatusBanner } from '@/components/StatusBanner' @@ -69,6 +69,7 @@ const menuGroups: MenuGroup[] = [ items: [ { path: '/sku', label: '商品SKU', icon: Package, roles: ['hq', 'dept'] }, { path: '/menu-engineering', label: '菜单工程', icon: Package, roles: ['hq', 'dept'] }, + { path: '/promotion', label: '促销增量', icon: Tag, roles: ['hq', 'dept'] }, { path: '/time', label: '时间分析', icon: Clock, roles: ['hq', 'dept'] }, { path: '/smart-scheduling', label: '智能排班', icon: CalendarClock, roles: ['hq', 'dept', 'regional', 'store'] }, { path: '/employee-performance', label: '员工绩效', icon: CalendarClock, roles: ['hq', 'dept'] }, diff --git a/client/src/pages/BossPage.tsx b/client/src/pages/BossPage.tsx index d0c4586..c3994fc 100644 --- a/client/src/pages/BossPage.tsx +++ b/client/src/pages/BossPage.tsx @@ -73,42 +73,52 @@ export function BossPage() { const { data: overview, isLoading: odLoading } = useQuery({ queryKey: ['overview', month], queryFn: () => api.get('/overview', { params: { month } }), + staleTime: 5 * 60 * 1000, }) const { data: daily, isLoading: dailyLoading } = useQuery({ queryKey: ['overview/daily', month], queryFn: () => api.get('/overview/daily', { params: { month } }), + staleTime: 5 * 60 * 1000, }) const { data: expenseData, isLoading: exLoading } = useQuery({ queryKey: ['store-expense/overview', month], queryFn: () => api.get('/store-expense/overview', { params: { month } }), + staleTime: 5 * 60 * 1000, }) const { data: waterfallData, isLoading: wfLoading } = useQuery({ queryKey: ['overview/profit-waterfall', month], queryFn: () => api.get('/overview/profit-waterfall', { params: { month } }), + staleTime: 5 * 60 * 1000, }) const { data: riskData, isLoading: riskLoading } = useQuery({ queryKey: ['stores/risk', month], queryFn: () => api.get('/stores/risk', { params: { month } }), + staleTime: 5 * 60 * 1000, }) const { data: priorityData, isLoading: priorityLoading } = useQuery({ queryKey: ['stores/priority', month], queryFn: () => api.get('/stores/priority', { params: { month } }), + staleTime: 5 * 60 * 1000, }) const { data: costOverview, isLoading: costLoading } = useQuery({ queryKey: ['cost-analysis/store-overview', month], queryFn: () => api.get('/cost-analysis/store-overview', { params: { month } }), + staleTime: 5 * 60 * 1000, }) const { data: expenseStructure, isLoading: structLoading } = useQuery({ queryKey: ['store-expense/expense-structure', month], queryFn: () => api.get('/store-expense/expense-structure', { params: { month } }), + staleTime: 5 * 60 * 1000, }) const { data: profitRankingData } = useQuery({ queryKey: ['overview/store-profit-ranking', month], queryFn: () => api.get('/overview/store-profit-ranking', { params: { month } }), + staleTime: 5 * 60 * 1000, }) const { data: profitOppData } = useQuery({ queryKey: ['overview/profit-opportunity', month], queryFn: () => api.get('/overview/profit-opportunity', { params: { month } }), + staleTime: 5 * 60 * 1000, }) const pageLoading = odLoading || dailyLoading || exLoading || wfLoading || riskLoading || priorityLoading @@ -123,7 +133,7 @@ export function BossPage() { const structRows = (expenseStructure as any)?.data || [] const profitRanking = (profitRankingData as any)?.data || [] const profitOpp = (profitOppData as any)?.data?.items || [] - const totalOpportunity = profitOpp.reduce((s: number, o: any) => s + Number(o.opportunity || 0), 0) + const totalOpportunity = profitOpp.reduce((s: number, o: any) => s + Math.max(Number(o.opportunity || 0), 0), 0) // 风险分布 const riskSummary = riskRows.reduce((acc: any, r: any) => { @@ -235,7 +245,7 @@ export function BossPage() { {/* ① 核心经营指标 */}
- + 0 ? '↑' : '↓'} ${Math.abs(trendReceived)}%`} /> diff --git a/client/src/pages/EnterprisePage.tsx b/client/src/pages/EnterprisePage.tsx index 0363824..31b67e6 100644 --- a/client/src/pages/EnterprisePage.tsx +++ b/client/src/pages/EnterprisePage.tsx @@ -87,6 +87,12 @@ export function EnterprisePage() { enabled: tab === 'audit', }) + const { data: benchmarkData, isLoading: benchmarkLoading } = useQuery({ + queryKey: ['enterprise/supplier-benchmark'], + queryFn: () => api.get('/enterprise/supplier-benchmark'), + enabled: tab === 'benchmark', + }) + const approveMutation = useMutation({ mutationFn: ({ id, result, comment }: { id: number; result: string; comment?: string }) => api.post(`/enterprise/approvals/${id}/approve`, { result, comment }), @@ -98,7 +104,7 @@ export function EnterprisePage() { onSuccess: () => queryClient.invalidateQueries({ queryKey: ['enterprise/notifications'] }), }) - if ((tab === 'supplier' && supplierLoading) || (tab === 'approval' && approvalLoading) || (tab === 'notification' && notifLoading) || (tab === 'hr' && talentLoading) || (tab === 'lms' && courseLoading) || (tab === 'marketing' && campaignLoading) || (tab === 'finance' && budgetLoading) || (tab === 'loop' && loopLoading) || (tab === 'audit' && auditLoading)) { + if ((tab === 'supplier' && supplierLoading) || (tab === 'approval' && approvalLoading) || (tab === 'notification' && notifLoading) || (tab === 'hr' && talentLoading) || (tab === 'lms' && courseLoading) || (tab === 'marketing' && campaignLoading) || (tab === 'finance' && budgetLoading) || (tab === 'loop' && loopLoading) || (tab === 'audit' && auditLoading) || (tab === 'benchmark' && benchmarkLoading)) { return } @@ -114,6 +120,9 @@ export function EnterprisePage() { const budgets = (budgetData as any)?.data || [] const loops = (loopData as any)?.data || [] const auditLogs = (auditData as any)?.data || [] + const benchmark = (benchmarkData as any)?.data || {} + const benchmarkSummary = benchmark.summary || {} + const benchmarks = benchmark.benchmarks || [] const gradeDist = suppliers.reduce((acc: Record, r: any) => { acc[r.grade] = (acc[r.grade] || 0) + 1 @@ -138,6 +147,7 @@ export function EnterprisePage() { )} + {tab === 'benchmark' && ( + <> +
+ + + + +
+ + + formatNumber(r.supplier_count) }, + { key: 'min_price', label: '最低价', align: 'right', render: (r) => {formatCurrency(r.min_price)} }, + { key: 'max_price', label: '最高价', align: 'right', render: (r) => {formatCurrency(r.max_price)} }, + { key: 'avg_price', label: '均价', align: 'right', render: (r) => formatCurrency(r.avg_price) }, + { key: 'price_variance_pct', label: '价差%', align: 'right', render: (r) => { + const v = Number(r.price_variance_pct || 0) + return 20 ? 'text-red-600 font-bold' : v > 10 ? 'text-yellow-600' : 'text-green-600'}>{v.toFixed(1)}% + }}, + { key: 'best_supplier_name', label: '最优供应商' }, + { key: 'best_price', label: '最优价', align: 'right', render: (r) => {formatCurrency(r.best_price)} }, + { key: 'potential_savings_per_unit', label: '单件节约', align: 'right', render: (r) => formatCurrency(r.potential_savings_per_unit) }, + { key: 'benchmark_status', label: '状态', align: 'center', render: (r) => { + const colors: Record = { '价格差异大': 'bg-red-500 text-white', '有优化空间': 'bg-yellow-500 text-white', '价格稳定': 'bg-green-500 text-white' } + return {r.benchmark_status} + }}, + ]} + /> + + + )} + {tab === 'approval' && ( <>
diff --git a/client/src/pages/InventoryTurnoverPage.tsx b/client/src/pages/InventoryTurnoverPage.tsx index e47567a..b8b3476 100644 --- a/client/src/pages/InventoryTurnoverPage.tsx +++ b/client/src/pages/InventoryTurnoverPage.tsx @@ -5,20 +5,31 @@ import { FilterableTable } from '@/components/FilterableTable' import { LoadingSpinner } from '@/components/LoadingSpinner' import { CollapsibleSection } from '@/components/CollapsibleSection' import { MetricCard } from '@/components/MetricCard' -import { formatCurrency, formatNumber } from '@/lib/utils' +import { Tabs } from '@/components/Tabs' +import { formatCurrency, formatNumber, formatPercent } from '@/lib/utils' import { MonthPicker } from '@/components/MonthPicker' -import { BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer } from 'recharts' +import { BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer, PieChart, Pie, Cell } from 'recharts' + +const URGENCY_COLORS: Record = { '紧急': '#ef4444', '预警': '#eab308', '关注': '#3b82f6', '正常': '#22c55e' } export function InventoryTurnoverPage() { const [month, setMonth] = useState('2026-04') + const [tab, setTab] = useState('turnover') const { data, isLoading } = useQuery({ queryKey: ['analytics-enhanced/inventory/turnover', month], queryFn: () => api.get('/analytics-enhanced/inventory/turnover', { params: { month } }), + enabled: tab === 'turnover', }) - if (isLoading) { - return + const { data: expiryData, isLoading: expiryLoading } = useQuery({ + queryKey: ['analytics-enhanced/inventory/near-expiry', month], + queryFn: () => api.get('/analytics-enhanced/inventory/near-expiry', { params: { month } }), + enabled: tab === 'expiry', + }) + + if ((tab === 'turnover' && isLoading) || (tab === 'expiry' && expiryLoading)) { + return } const turnover = (data as any)?.data?.turnover || [] @@ -43,16 +54,120 @@ export function InventoryTurnoverPage() { 损耗金额: Number(r.waste_value || 0), })) + const expiry = (expiryData as any)?.data || {} + const nearExpiry = expiry.near_expiry || [] + const storeRisk = expiry.store_risk || [] + const expirySummary = expiry.summary || {} + + const urgencyPieData = [ + { name: '紧急', value: expirySummary.urgent || 0 }, + { name: '预警', value: expirySummary.warning || 0 }, + { name: '关注', value: expirySummary.watch || 0 }, + ].filter(d => d.value > 0) + return (

库存周转与损耗

-

周转天数 · 损耗TOP · 门店对比 · {month}

+

周转天数 · 损耗TOP · 临期预警 · {month}

+ + + {tab === 'expiry' && ( + <> +
+ + + + +
+ + {urgencyPieData.length > 0 && ( + + + + {`${name}: ${value}`}}> + {urgencyPieData.map((e, i) => )} + + [formatNumber(v), '商品数']} /> + + + + + )} + + + { + const v = Number(r.urgent_items || 0) + return 0 ? 'text-red-600 font-bold' : ''}>{formatNumber(v)} + }}, + { key: 'warning_items', label: '预警(≤7天)', align: 'right', render: (r) => { + const v = Number(r.warning_items || 0) + return 0 ? 'text-yellow-600 font-medium' : ''}>{formatNumber(v)} + }}, + { key: 'at_risk_value', label: '风险金额', align: 'right', render: (r) => {formatCurrency(r.at_risk_value)} }, + { key: 'total_waste', label: '当月损耗', align: 'right', render: (r) => formatCurrency(r.total_waste) }, + ]} + /> + + + + formatNumber(r.stock_qty) }, + { key: 'stock_value', label: '库存金额', align: 'right', render: (r) => formatCurrency(r.stock_value) }, + { key: 'estimated_days_to_consume', label: '预计天数', align: 'right', render: (r) => { + const v = Number(r.estimated_days_to_consume || 0) + return v ? {v.toFixed(1)}天 : '-' + }}, + { key: 'urgency_level', label: '紧急度', align: 'center', render: (r) => { + const colors: Record = { '紧急': 'bg-red-500 text-white', '预警': 'bg-yellow-500 text-white', '关注': 'bg-blue-500 text-white', '正常': 'bg-green-500 text-white' } + return {r.urgency_level} + }}, + { key: 'suggested_action', label: '建议措施' }, + ]} + /> + + + )} + + {tab === 'turnover' && ( + <> {/* 概览指标 */}
@@ -154,6 +269,8 @@ export function InventoryTurnoverPage() { ]} /> + + )}
) } diff --git a/client/src/pages/LoginPage.tsx b/client/src/pages/LoginPage.tsx index bd0dcf6..b3feb82 100644 --- a/client/src/pages/LoginPage.tsx +++ b/client/src/pages/LoginPage.tsx @@ -8,8 +8,8 @@ interface LoginPageProps { export function LoginPage({ onLogin }: LoginPageProps) { const navigate = useNavigate() - const [username, setUsername] = useState('') - const [password, setPassword] = useState('') + const [username, setUsername] = useState('平台管理员') + const [password, setPassword] = useState('123') const [error, setError] = useState('') const handleLogin = async () => { diff --git a/client/src/pages/PromotionPage.tsx b/client/src/pages/PromotionPage.tsx new file mode 100644 index 0000000..56ab465 --- /dev/null +++ b/client/src/pages/PromotionPage.tsx @@ -0,0 +1,199 @@ +import { useQuery } from '@tanstack/react-query' +import { useState } from 'react' +import api from '@/lib/api' +import { FilterableTable } from '@/components/FilterableTable' +import { LoadingSpinner } from '@/components/LoadingSpinner' +import { CollapsibleSection } from '@/components/CollapsibleSection' +import { MetricCard } from '@/components/MetricCard' +import { formatCurrency, formatNumber, formatPercent } from '@/lib/utils' +import { MonthPicker } from '@/components/MonthPicker' +import { BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer, LineChart, Line } from 'recharts' + +export function PromotionPage() { + const [month, setMonth] = useState('2026-04') + + const { data: overviewData, isLoading: overviewLoading } = useQuery({ + queryKey: ['promotion/overview', month], + queryFn: () => api.get('/promotion/overview', { params: { month } }), + }) + + const { data: planData, isLoading: planLoading } = useQuery({ + queryKey: ['promotion/by-plan', month], + queryFn: () => api.get('/promotion/by-plan', { params: { month } }), + }) + + const { data: storeData, isLoading: storeLoading } = useQuery({ + queryKey: ['promotion/by-store', month], + queryFn: () => api.get('/promotion/by-store', { params: { month } }), + }) + + const { data: trendData, isLoading: trendLoading } = useQuery({ + queryKey: ['promotion/daily-trend', month], + queryFn: () => api.get('/promotion/daily-trend', { params: { month } }), + }) + + const pageLoading = overviewLoading || planLoading || storeLoading || trendLoading + + if (pageLoading) { + return + } + + const overview = (overviewData as any)?.data || {} + const plans = (planData as any)?.data || [] + const stores = (storeData as any)?.data || [] + const trends = (trendData as any)?.data || [] + + const trendChartData = trends.map((t: any) => ({ + date: t.date.substring(8, 10), + 促销客单: Math.round(Number(t.promo_avg_bill) * 100) / 100, + 非促销客单: Math.round(Number(t.baseline_avg_bill) * 100) / 100, + 增量: Math.round(Number(t.uplift) * 100) / 100, + })) + + const planChartData = plans.slice(0, 10).map((p: any) => ({ + name: p.marketing_plan?.length > 8 ? p.marketing_plan.substring(0, 8) + '...' : p.marketing_plan, + 增量收入: Math.round(Number(p.incremental_revenue || 0)), + 促销成本: Math.round(Number(p.promotion_cost || 0)), + 净增量利润: Math.round(Number(p.net_incremental_profit || 0)), + })) + + return ( +
+
+
+

促销增量利润分析

+

促销vs非促销对比 · 增量收入 · ROI · {month}

+
+ +
+ + {/* 概览指标 */} + +
+ + + 0 ? 'good' : 'bad'} /> + 1 ? 'good' : 'warn'} /> +
+
+ 0 ? 'good' : 'bad'} /> + + 0 ? 'good' : 'bad'} /> + +
+
+ + {/* 图表 */} +
+ + + + + + v >= 100 ? `${v}` : v} /> + formatCurrency(v)} /> + + + + + + + + + + + + + + v >= 10000 ? `${(v / 10000).toFixed(0)}万` : v} /> + formatCurrency(v)} /> + + + + + + + +
+ + {/* 按方案明细 */} + + formatNumber(r.bill_count) }, + { key: 'store_count', label: '覆盖门店', align: 'right', render: (r) => formatNumber(r.store_count) }, + { key: 'avg_bill_value', label: '客单价', align: 'right', render: (r) => formatCurrency(r.avg_bill_value) }, + { key: 'bill_uplift_pct', label: '客单提升', align: 'right', render: (r) => { + const v = Number(r.bill_uplift_pct || 0) + return 0 ? 'text-green-600' : 'text-red-600'}>{v > 0 ? '+' : ''}{v.toFixed(1)}% + }}, + { key: 'total_revenue', label: '促销收入', align: 'right', render: (r) => formatCurrency(r.total_revenue) }, + { key: 'total_discount', label: '优惠总额', align: 'right', render: (r) => {formatCurrency(r.total_discount)} }, + { key: 'incremental_revenue', label: '增量收入', align: 'right', render: (r) => formatCurrency(r.incremental_revenue) }, + { key: 'net_incremental_profit', label: '净增量利润', align: 'right', render: (r) => { + const v = Number(r.net_incremental_profit || 0) + return = 0 ? 'text-green-600 font-medium' : 'text-red-600 font-medium'}>{formatCurrency(v)} + }}, + { key: 'promo_roi', label: 'ROI', align: 'right', render: (r) => { + const v = Number(r.promo_roi || 0) + return 1 ? 'text-green-600 font-bold' : v > 0 ? 'text-yellow-600' : 'text-red-600'}>{v.toFixed(2)}x + }}, + { key: 'member_share_pct', label: '会员占比', align: 'right', render: (r) => `${Number(r.member_share_pct || 0).toFixed(1)}%` }, + ]} + /> + + + {/* 按门店明细 */} + + formatNumber(r.promo_bills) }, + { key: 'promo_avg_bill', label: '促销客单', align: 'right', render: (r) => formatCurrency(r.promo_avg_bill) }, + { key: 'baseline_avg_bill', label: '基准客单', align: 'right', render: (r) => formatCurrency(r.baseline_avg_bill) }, + { key: 'uplift_pct', label: '客单提升', align: 'right', render: (r) => { + const v = Number(r.uplift_pct || 0) + return v ? 0 ? 'text-green-600' : 'text-red-600'}>{v > 0 ? '+' : ''}{v.toFixed(1)}% : '-' + }}, + { key: 'incremental_revenue', label: '增量收入', align: 'right', render: (r) => formatCurrency(r.incremental_revenue) }, + { key: 'promotion_cost', label: '促销成本', align: 'right', render: (r) => {formatCurrency(r.promotion_cost)} }, + { key: 'net_incremental_profit', label: '净增量利润', align: 'right', render: (r) => { + const v = Number(r.net_incremental_profit || 0) + return = 0 ? 'text-green-600 font-medium' : 'text-red-600 font-medium'}>{formatCurrency(v)} + }}, + { key: 'promo_roi', label: 'ROI', align: 'right', render: (r) => { + const v = Number(r.promo_roi || 0) + return v ? 1 ? 'text-green-600 font-bold' : v > 0 ? 'text-yellow-600' : 'text-red-600'}>{v.toFixed(2)}x : '-' + }}, + ]} + /> + +
+ ) +} diff --git a/client/src/pages/RiskPage.tsx b/client/src/pages/RiskPage.tsx index 2b6488e..6fa1d1a 100644 --- a/client/src/pages/RiskPage.tsx +++ b/client/src/pages/RiskPage.tsx @@ -21,13 +21,17 @@ function SectionLoading({ text }: { text: string }) { } export function RiskPage() { - const [riskTab, setRiskTab] = useState<'anomaly' | 'zero' | 'cashier'>('anomaly') + const [riskTab, setRiskTab] = useState<'anomaly' | 'full_discount' | 'empty_bill' | 'cashier'>('anomaly') const [month, setMonth] = useState('2026-04') const [anomalyPage, setAnomalyPage] = useState(1) const [anomalyStore, setAnomalyStore] = useState('') const [anomalyReason, setAnomalyReason] = useState('') const [anomalyCashier, setAnomalyCashier] = useState('') const [debouncedCashier, setDebouncedCashier] = useState('') + const [anomalySort, setAnomalySort] = useState('consumption') + const [anomalyOrder, setAnomalyOrder] = useState<'asc' | 'desc'>('desc') + const [zeroPage, setZeroPage] = useState(1) + const [zeroType, setZeroType] = useState<'全额优惠' | '无消费无优惠'>('全额优惠') useEffect(() => { const t = setTimeout(() => setDebouncedCashier(anomalyCashier), 400) @@ -35,15 +39,14 @@ export function RiskPage() { }, [anomalyCashier]) const { data: anomalyData, isLoading: anomalyLoading, isFetching: anomalyFetching } = useQuery({ - queryKey: ['risk/anomaly', month, anomalyPage, anomalyStore, anomalyReason, debouncedCashier], - queryFn: () => api.get('/risk/anomaly', { params: { month, page: anomalyPage, page_size: ANOMALY_PAGE_SIZE, ...(anomalyStore ? { store: anomalyStore } : {}), ...(anomalyReason ? { reason: anomalyReason } : {}), ...(debouncedCashier ? { cashier: debouncedCashier } : {}) } }), + queryKey: ['risk/anomaly', month, anomalyPage, anomalyStore, anomalyReason, debouncedCashier, anomalySort, anomalyOrder], + queryFn: () => api.get('/risk/anomaly', { params: { month, page: anomalyPage, page_size: ANOMALY_PAGE_SIZE, sort: anomalySort, order: anomalyOrder, ...(anomalyStore ? { store: anomalyStore } : {}), ...(anomalyReason ? { reason: anomalyReason } : {}), ...(debouncedCashier ? { cashier: debouncedCashier } : {}) } }), placeholderData: keepPreviousData, }) const { data: zeroData, isLoading: zeroLoading, isFetching: zeroFetching } = useQuery({ - queryKey: ['risk/zero-received', month], - queryFn: () => api.get('/risk/zero-received', { params: { month } }), - staleTime: 5 * 60 * 1000, + queryKey: ['risk/zero-received', month, zeroType, zeroPage], + queryFn: () => api.get('/risk/zero-received', { params: { month, type: zeroType, page: zeroPage, page_size: ANOMALY_PAGE_SIZE } }), placeholderData: keepPreviousData, }) @@ -57,13 +60,14 @@ export function RiskPage() { const anomalyRows = (anomalyData as any)?.data || [] const anomalyMeta = (anomalyData as any)?.meta || { total: 0 } const zeroRows = (zeroData as any)?.data || [] + const zeroMeta = (zeroData as any)?.meta || { total: 0, full_discount: 0, empty_bill: 0 } const cashierRows = (cashierData as any)?.data || [] const storeNames: string[] = Array.from(new Set(cashierRows.map((r: any) => r.store_name as string).filter(Boolean))).sort() const initialLoading = !anomalyData && !zeroData && !cashierData const totalAnomaly = anomalyMeta.total || anomalyRows.length - const totalZero = zeroRows.length + const totalZero = zeroMeta.total || zeroRows.length const highRiskCashiers = cashierRows.filter((r: any) => Number(r.anomaly_rate_pct || 0) >= 10).length const avgAnomalyRate = cashierRows.length > 0 ? cashierRows.reduce((s: number, r: any) => s + Number(r.anomaly_rate_pct || 0), 0) / cashierRows.length @@ -87,9 +91,10 @@ export function RiskPage() { {/* 概览指标 */} -
+
- + +
@@ -118,8 +123,11 @@ export function RiskPage() { - + + {tab === 'grade' && ( + + )}
+ + + {tab === 'closure' && ( + <> +
+ + + + +
+
+ + +
+ + {closurePieData.length > 0 && ( + + + + {`${name}: ${value}`}}> + {closurePieData.map((e, i) => )} + + [formatNumber(v), '门店数']} /> + + + + + )} + + + { + const colors: Record = { A: 'text-green-600', B: 'text-blue-600', C: 'text-yellow-600', D: 'text-red-600' } + return {r.grade} + }}, + { key: 'monthly_revenue', label: '月收入', align: 'right', render: (r) => formatCurrency(r.monthly_revenue) }, + { key: 'monthly_profit', label: '月利润', align: 'right', render: (r) => { + const v = Number(r.monthly_profit || 0) + return {formatCurrency(v)} + }}, + { key: 'monthly_rent', label: '月租', align: 'right', render: (r) => formatCurrency(r.monthly_rent) }, + { key: 'monthly_wage', label: '月人工', align: 'right', render: (r) => formatCurrency(r.monthly_wage) }, + { key: 'total_closure_cost', label: '关停成本', align: 'right', render: (r) => {formatCurrency(r.total_closure_cost)} }, + { key: 'projected_12m_loss', label: '12月亏损', align: 'right', render: (r) => { + const v = Number(r.projected_12m_loss || 0) + return v ? {formatCurrency(v)} : '-' + }}, + { key: 'monthly_savings_if_closed', label: '月节省', align: 'right', render: (r) => { + const v = Number(r.monthly_savings_if_closed || 0) + return v ? {formatCurrency(v)} : '-' + }}, + { key: 'payback_months', label: '回本(月)', align: 'right', render: (r) => r.payback_months ? `${Number(r.payback_months).toFixed(1)}月` : '-' }, + { key: 'recommendation', label: '建议', align: 'center', render: (r) => { + const colors: Record = { '建议关停': 'bg-red-500 text-white', '整改观察3个月': 'bg-yellow-500 text-white', '重点整改': 'bg-blue-500 text-white', '持续经营': 'bg-green-500 text-white' } + return {r.recommendation} + }}, + { key: 'reason', label: '原因' }, + ]} + /> + + + )} + + {tab === 'grade' && ( + <> +
= 75 ? 'good' : avgScore >= 60 ? 'warn' : 'bad'} /> @@ -152,6 +263,8 @@ export function StoreGradePage() { {selectedStore && setSelectedStore(null)} />} + + )}
) } diff --git a/docs/玄谋智脑_连锁企业e1.0.pptx b/docs/玄谋智脑_连锁企业e1.0.pptx new file mode 100644 index 0000000000000000000000000000000000000000..3f9fdafbc0335019fa6acf8c9bcdd34851b99bea GIT binary patch literal 101480 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 B$Jqb? literal 0 HcmV?d00001 diff --git a/server/src/index.ts b/server/src/index.ts index 13a0865..46a3783 100644 --- a/server/src/index.ts +++ b/server/src/index.ts @@ -21,6 +21,7 @@ import storeGradeRoutes from './routes/store-grade.js' import productRoutes from './routes/product.js' import enterpriseRoutes from './routes/enterprise.js' import intelligenceRoutes from './routes/intelligence.js' +import promotionRoutes from './routes/promotion.js' import { startScheduler } from './scheduler/index.js' import { registerAllTaskHandlers } from './scheduler/task-handlers.js' @@ -77,6 +78,7 @@ app.use('/api/store-grade', storeGradeRoutes) app.use('/api/product', productRoutes) app.use('/api/enterprise', enterpriseRoutes) app.use('/api/intelligence', intelligenceRoutes) +app.use('/api/promotion', promotionRoutes) app.use(notFoundHandler) app.use(errorHandler) diff --git a/server/src/routes/analytics-enhanced.ts b/server/src/routes/analytics-enhanced.ts index b6e86cd..a1f2b33 100644 --- a/server/src/routes/analytics-enhanced.ts +++ b/server/src/routes/analytics-enhanced.ts @@ -599,6 +599,127 @@ router.get('/inventory/turnover', async (req: AuthRequest, res) => { } }) +// ============================================================ +// 9.5 临期商品预警与优化 +// ============================================================ +router.get('/inventory/near-expiry', async (req: AuthRequest, res) => { + try { + const month = parseMonth(req) + const storeCode = (req.query.store_code as string) || '' + + let storeFilter = '' + const params: any[] = [month] + if (storeCode) { + params.push(storeCode) + storeFilter = `AND fis.store_code = $${params.length}` + } + + // 临期商品明细(按门店+物料) + const nearExpiryResult = await query(` + SELECT + fis.store_code, + ds.store_name, + dm.material_name, + dm.material_code, + dm.category, + round(fis.ending_quantity::numeric, 2) as stock_qty, + round(fis.ending_amount::numeric, 2) as stock_value, + round(fis.consumption_amount::numeric, 2) as monthly_consumption, + round(fis.waste_amount::numeric, 2) as waste_value, + CASE + WHEN fis.consumption_amount > 0 AND fis.ending_amount > 0 + THEN round((fis.ending_amount / fis.consumption_amount * 30)::numeric, 1) + ELSE NULL + END as estimated_days_to_consume, + CASE + WHEN fis.consumption_amount > 0 AND fis.ending_amount > 0 + AND (fis.ending_amount / fis.consumption_amount * 30) <= 3 THEN '紧急' + WHEN fis.consumption_amount > 0 AND fis.ending_amount > 0 + AND (fis.ending_amount / fis.consumption_amount * 30) <= 7 THEN '预警' + WHEN fis.consumption_amount > 0 AND fis.ending_amount > 0 + AND (fis.ending_amount / fis.consumption_amount * 30) <= 14 THEN '关注' + ELSE '正常' + END as urgency_level, + CASE + WHEN fis.consumption_amount > 0 AND fis.ending_amount > 0 + AND (fis.ending_amount / fis.consumption_amount * 30) <= 3 THEN '立即促销出清或报损' + WHEN fis.consumption_amount > 0 AND fis.ending_amount > 0 + AND (fis.ending_amount / fis.consumption_amount * 30) <= 7 THEN '加入临期套餐或打折' + WHEN fis.consumption_amount > 0 AND fis.ending_amount > 0 + AND (fis.ending_amount / fis.consumption_amount * 30) <= 14 THEN '减少采购量,优先消耗' + ELSE '正常周转' + END as suggested_action + FROM analytics.fact_inventory_snapshot fis + LEFT JOIN analytics.dim_store ds ON fis.store_code = ds.store_code + LEFT JOIN analytics.dim_material dm ON fis.material_code = dm.material_code + WHERE fis.snapshot_date >= $1 AND fis.snapshot_date < $1::date + interval '1 month' + AND fis.ending_amount > 0 + ${storeFilter} + ORDER BY + CASE + WHEN fis.consumption_amount > 0 AND fis.ending_amount > 0 + AND (fis.ending_amount / fis.consumption_amount * 30) <= 3 THEN 1 + WHEN fis.consumption_amount > 0 AND fis.ending_amount > 0 + AND (fis.ending_amount / fis.consumption_amount * 30) <= 7 THEN 2 + WHEN fis.consumption_amount > 0 AND fis.ending_amount > 0 + AND (fis.ending_amount / fis.consumption_amount * 30) <= 14 THEN 3 + ELSE 4 + END, + fis.ending_amount DESC + LIMIT 200 + `, params) + + // 临期汇总 + const summary = { + total_items: nearExpiryResult.rows.length, + urgent: nearExpiryResult.rows.filter((r: any) => r.urgency_level === '紧急').length, + warning: nearExpiryResult.rows.filter((r: any) => r.urgency_level === '预警').length, + watch: nearExpiryResult.rows.filter((r: any) => r.urgency_level === '关注').length, + urgent_value: nearExpiryResult.rows + .filter((r: any) => r.urgency_level === '紧急') + .reduce((s: number, r: any) => s + Number(r.stock_value || 0), 0), + warning_value: nearExpiryResult.rows + .filter((r: any) => r.urgency_level === '预警') + .reduce((s: number, r: any) => s + Number(r.stock_value || 0), 0), + potential_loss: nearExpiryResult.rows + .filter((r: any) => r.urgency_level === '紧急' || r.urgency_level === '预警') + .reduce((s: number, r: any) => s + Number(r.stock_value || 0) * 0.5, 0), + } + + // 按门店汇总临期风险 + const storeRisk = await query(` + SELECT + fis.store_code, + ds.store_name, + count(*) FILTER (WHERE fis.consumption_amount > 0 AND fis.ending_amount > 0 + AND (fis.ending_amount / fis.consumption_amount * 30) <= 3) as urgent_items, + count(*) FILTER (WHERE fis.consumption_amount > 0 AND fis.ending_amount > 0 + AND (fis.ending_amount / fis.consumption_amount * 30) <= 7 + AND (fis.ending_amount / fis.consumption_amount * 30) > 3) as warning_items, + round(sum(fis.ending_amount) FILTER (WHERE fis.consumption_amount > 0 AND fis.ending_amount > 0 + AND (fis.ending_amount / fis.consumption_amount * 30) <= 7)::numeric, 2) as at_risk_value, + round(sum(fis.waste_amount)::numeric, 2) as total_waste + FROM analytics.fact_inventory_snapshot fis + LEFT JOIN analytics.dim_store ds ON fis.store_code = ds.store_code + WHERE fis.snapshot_date >= $1 AND fis.snapshot_date < $1::date + interval '1 month' + AND fis.ending_amount > 0 + ${storeFilter} + GROUP BY fis.store_code, ds.store_name + HAVING count(*) FILTER (WHERE fis.consumption_amount > 0 AND fis.ending_amount > 0 + AND (fis.ending_amount / fis.consumption_amount * 30) <= 7) > 0 + ORDER BY at_risk_value DESC + `, params) + + sendSuccess(res, { + summary, + near_expiry: nearExpiryResult.rows, + store_risk: storeRisk.rows, + }) + } catch (err: any) { + sendError(res, err.message) + } +}) + // ============================================================ // 10. 营销ROI基础版 // ============================================================ diff --git a/server/src/routes/data.ts b/server/src/routes/data.ts index 12abdb1..cb779cf 100644 --- a/server/src/routes/data.ts +++ b/server/src/routes/data.ts @@ -409,6 +409,10 @@ router.get('/risk/anomaly', async (req: AuthRequest, res) => { const storeName = req.query.store as string const reason = req.query.reason as string const cashier = req.query.cashier as string + const sort = (req.query.sort as string) || 'closed_at' + const order = (req.query.order as string) === 'asc' ? 'ASC' : 'DESC' + const allowedSort = ['consumption', 'discount_total', 'received_total', 'closed_at'] + const sortCol = allowedSort.includes(sort) ? sort : 'closed_at' const conditions: string[] = [`month = to_char($1::date, 'YYYY-MM')`] const params: any[] = [month] @@ -435,7 +439,7 @@ router.get('/risk/anomaly', async (req: AuthRequest, res) => { SELECT store_name, bill_no, meal_period, consumption, discount_total, received_total, cashier, closed_at, anomaly_reason FROM mv_risk_anomaly WHERE ${whereClause} - ORDER BY closed_at DESC + ORDER BY ${sortCol} ${order} LIMIT $${paramIdx} OFFSET $${paramIdx + 1} `, [...params, pageSize, offset]) sendSuccess(res, result.rows, { total: parseInt(countResult.rows[0].total), page, page_size: pageSize, sum_consumption: countResult.rows[0].sum_consumption, sum_discount: countResult.rows[0].sum_discount, sum_received: countResult.rows[0].sum_received }) @@ -446,22 +450,43 @@ router.get('/risk/anomaly', async (req: AuthRequest, res) => { router.get('/risk/zero-received', async (req: AuthRequest, res) => { try { + const { page, pageSize, offset } = parsePagination(req) const month = parseMonth(req) const storeName = req.query.store as string - let sql = ` + const type = req.query.type as string + const conditions: string[] = [`month = to_char($1::date, 'YYYY-MM')`] + const params: any[] = [month] + let paramIdx = 2 + if (storeName) { + conditions.push(`store_name = $${paramIdx}`) + params.push(storeName) + paramIdx++ + } + if (type) { + conditions.push(`zero_received_type = $${paramIdx}`) + params.push(type) + paramIdx++ + } + const whereClause = conditions.join(' AND ') + + const baseConditions = [`month = to_char($1::date, 'YYYY-MM')`] + const baseParams: any[] = [month] + if (storeName) { + baseConditions.push(`store_name = $2`) + baseParams.push(storeName) + } + const baseWhere = baseConditions.join(' AND ') + const countResult = await query(`SELECT count(*) FILTER (WHERE zero_received_type = '全额优惠') AS full_discount, count(*) FILTER (WHERE zero_received_type = '无消费无优惠') AS empty_bill FROM mv_risk_zero WHERE ${baseWhere}`, baseParams) + const totalResult = await query(`SELECT count(*) AS total FROM mv_risk_zero WHERE ${whereClause}`, params) + const result = await query(` SELECT store_name, bill_no, meal_period, consumption, discount_total, 0 AS received_total, cashier, closed_at, zero_received_type FROM mv_risk_zero - WHERE month = to_char($1::date, 'YYYY-MM') - ` - const params: any[] = [month] - if (storeName) { - sql += ` AND store_name = $2` - params.push(storeName) - } - sql += ` ORDER BY consumption DESC LIMIT 200` - const result = await query(sql, params) - sendSuccess(res, result.rows) + WHERE ${whereClause} + ORDER BY consumption DESC + LIMIT $${paramIdx} OFFSET $${paramIdx + 1} + `, [...params, pageSize, offset]) + sendSuccess(res, result.rows, { total: parseInt(totalResult.rows[0].total), full_discount: parseInt(countResult.rows[0].full_discount), empty_bill: parseInt(countResult.rows[0].empty_bill), page, page_size: pageSize }) } catch (err: any) { sendError(res, err.message) } @@ -1007,8 +1032,9 @@ router.get('/overview/profit-waterfall', async (req: AuthRequest, res) => { try { const month = parseMonth(req) const result = await query(` - WITH bill_discount AS ( + WITH bill_consumption AS ( SELECT store_code, + round(sum(consumption)::numeric, 2) AS consumption, round(sum(discount_total)::numeric, 2) AS discount FROM analytics.bill_fact WHERE closed_at >= $1::date AND closed_at < ($1::date + interval '1 month') @@ -1017,23 +1043,23 @@ router.get('/overview/profit-waterfall', async (req: AuthRequest, res) => { full_scope AS ( SELECT r.received, - e.consumption, - COALESCE(bd.discount, e.consumption - e.received) AS discount, - e.actual_food_cost, - e.wage_expense, - e.rent_expense, - e.utility_expense, - e.dorm_expense, - e.delivery_commission_expense, - e.card_fee_expense, - e.repair_clean_expense, - e.operating_expense, + COALESCE(e.consumption, bc.consumption) AS consumption, + COALESCE(bc.discount, e.consumption - e.received, 0) AS discount, + COALESCE(e.actual_food_cost, 0) AS actual_food_cost, + COALESCE(e.wage_expense, 0) AS wage_expense, + COALESCE(e.rent_expense, 0) AS rent_expense, + COALESCE(e.utility_expense, 0) AS utility_expense, + COALESCE(e.dorm_expense, 0) AS dorm_expense, + COALESCE(e.delivery_commission_expense, 0) AS delivery_commission_expense, + COALESCE(e.card_fee_expense, 0) AS card_fee_expense, + COALESCE(e.repair_clean_expense, 0) AS repair_clean_expense, + COALESCE(e.operating_expense, 0) AS operating_expense, CASE WHEN e.operating_expense IS NOT NULL THEN true ELSE false END AS has_expense FROM analytics.mv_store_risk_rating_monthly r LEFT JOIN analytics.mv_store_operating_expense_monthly e ON r.store_code = e.sales_store_code AND e.report_month = $1::date - LEFT JOIN bill_discount bd ON bd.store_code = r.store_code - WHERE r.month_start = $1 AND r.received IS NOT NULL AND e.operating_expense IS NOT NULL + LEFT JOIN bill_consumption bc ON bc.store_code = r.store_code + WHERE r.month_start = $1 AND r.received IS NOT NULL ) SELECT round(sum(consumption)::numeric, 2) AS consumption, @@ -1048,7 +1074,8 @@ router.get('/overview/profit-waterfall', async (req: AuthRequest, res) => { round(sum(card_fee_expense + repair_clean_expense)::numeric, 2) AS other_expense, round(sum(operating_expense)::numeric, 2) AS total_expense, round(sum(received) - sum(actual_food_cost) - sum(operating_expense), 2) AS store_contribution, - count(*) AS covered_stores + count(*) AS covered_stores, + count(*) FILTER (WHERE has_expense) AS stores_with_expense FROM full_scope `, [month]) sendSuccess(res, result.rows[0]) @@ -1204,7 +1231,7 @@ router.get('/overview/profit-opportunity', async (req: AuthRequest, res) => { 'category', '食材成本差异回收', 'baseline', (SELECT round((actual_cost - theoretical_cost)::numeric, 2) FROM cost_diff), 'target_pct', 30, - 'opportunity', round((SELECT (actual_cost - theoretical_cost) FROM cost_diff) * 0.30, 2), + 'opportunity', GREATEST(round((SELECT (actual_cost - theoretical_cost) FROM cost_diff) * 0.30, 2), 0), 'confidence', '中高', 'owner', '商品/供应链/门店', 'evidence', '采购价差、用量差、盘点差、报损差', @@ -1551,22 +1578,25 @@ router.get('/bank/report', async (req: AuthRequest, res) => { query(`SELECT bill_count, received, avg_bill_value, discount_rate_pct, theoretical_margin_pct, member_bills, member_share_pct FROM analytics.mv_overview_monthly WHERE month = $1::date`, [month]), query(`SELECT business_date, bill_count, received, avg_bill_value, discount_rate_pct FROM analytics.mv_overview_daily WHERE month = $1::date ORDER BY business_date`, [month]), query(` - WITH bill_discount AS ( + WITH bill_consumption AS ( SELECT store_code, + round(sum(consumption)::numeric, 2) AS consumption, round(sum(discount_total)::numeric, 2) AS discount FROM analytics.bill_fact WHERE closed_at >= $1::date AND closed_at < ($1::date + interval '1 month') GROUP BY store_code ), full_scope AS ( - SELECT r.received, e.consumption, COALESCE(bd.discount, e.consumption - e.received) AS discount, - e.actual_food_cost AS food_cost, e.wage_expense AS wage, e.rent_expense AS rent, - e.utility_expense AS utility, e.dorm_expense AS dorm, e.delivery_commission_expense AS commission, - e.card_fee_expense AS card_fee, e.repair_clean_expense AS repair, e.operating_expense AS operating_expense + SELECT r.received, + COALESCE(e.consumption, bc.consumption) AS consumption, + COALESCE(bc.discount, e.consumption - e.received, 0) AS discount, + COALESCE(e.actual_food_cost, 0) AS food_cost, COALESCE(e.wage_expense, 0) AS wage, COALESCE(e.rent_expense, 0) AS rent, + COALESCE(e.utility_expense, 0) AS utility, COALESCE(e.dorm_expense, 0) AS dorm, COALESCE(e.delivery_commission_expense, 0) AS commission, + COALESCE(e.card_fee_expense, 0) AS card_fee, COALESCE(e.repair_clean_expense, 0) AS repair, COALESCE(e.operating_expense, 0) AS operating_expense FROM analytics.mv_store_risk_rating_monthly r LEFT JOIN analytics.mv_store_operating_expense_monthly e ON r.store_code = e.sales_store_code AND e.report_month = $1::date - LEFT JOIN bill_discount bd ON bd.store_code = r.store_code - WHERE r.received IS NOT NULL AND e.operating_expense IS NOT NULL + LEFT JOIN bill_consumption bc ON bc.store_code = r.store_code + WHERE r.received IS NOT NULL ) SELECT round(sum(consumption)::numeric,2) AS consumption, round(sum(discount)::numeric,2) AS discount, round(sum(received)::numeric,2) AS received, round(sum(food_cost)::numeric,2) AS food_cost, round(sum(wage)::numeric,2) AS wage, diff --git a/server/src/routes/enterprise.ts b/server/src/routes/enterprise.ts index f8381f2..43b593e 100644 --- a/server/src/routes/enterprise.ts +++ b/server/src/routes/enterprise.ts @@ -443,4 +443,125 @@ router.get('/anonymous-ranking', async (req: AuthRequest, res) => { } catch (err: any) { sendError(res, err.message) } }) +// ============================================================ +// 供应商价格对标 (T-206) +// ============================================================ + +// 同SKU跨供应商价格对比 +router.get('/supplier-benchmark', async (req: AuthRequest, res) => { + try { + const result = await query(` + WITH sku_prices AS ( + SELECT + poi.sku_code, + poi.sku_name, + po.supplier_code, + sm.supplier_name, + sm.grade AS supplier_grade, + poi.unit_price, + po.order_date, + po.po_number + FROM analytics.v3_purchase_order_item poi + JOIN analytics.v3_purchase_order po ON poi.po_id = po.id + LEFT JOIN analytics.v3_supplier_master sm ON po.supplier_code = sm.supplier_code + WHERE po.status IN ('delivered', 'settled') + ), + sku_stats AS ( + SELECT + sku_code, + sku_name, + count(DISTINCT supplier_code) AS supplier_count, + round(min(unit_price)::numeric, 2) AS min_price, + round(max(unit_price)::numeric, 2) AS max_price, + round(avg(unit_price)::numeric, 2) AS avg_price, + round((max(unit_price) - min(unit_price))::numeric, 2) AS price_spread, + round(CASE + WHEN avg(unit_price) > 0 + THEN (max(unit_price) - min(unit_price)) / avg(unit_price) * 100 + ELSE 0 + END::numeric, 1) AS price_variance_pct + FROM sku_prices + GROUP BY sku_code, sku_name + HAVING count(DISTINCT supplier_code) >= 2 + ), + best_price AS ( + SELECT DISTINCT ON (sku_code) + sku_code, supplier_code AS best_supplier_code, supplier_name AS best_supplier_name, unit_price AS best_price + FROM sku_prices + ORDER BY sku_code, unit_price ASC + ), + worst_price AS ( + SELECT DISTINCT ON (sku_code) + sku_code, supplier_code AS worst_supplier_code, supplier_name AS worst_supplier_name, unit_price AS worst_price + FROM sku_prices + ORDER BY sku_code, unit_price DESC + ) + SELECT + ss.sku_code, + ss.sku_name, + ss.supplier_count, + ss.min_price, + ss.max_price, + ss.avg_price, + ss.price_spread, + ss.price_variance_pct, + bp.best_supplier_name, + bp.best_price, + wp.worst_supplier_name, + wp.worst_price, + round((ss.max_price - ss.min_price)::numeric, 2) AS potential_savings_per_unit, + round(CASE + WHEN ss.avg_price > 0 + THEN (ss.max_price - ss.min_price) / ss.avg_price * 100 + ELSE 0 + END::numeric, 1) AS savings_pct, + CASE + WHEN ss.price_variance_pct > 20 THEN '价格差异大' + WHEN ss.price_variance_pct > 10 THEN '有优化空间' + ELSE '价格稳定' + END AS benchmark_status + FROM sku_stats ss + LEFT JOIN best_price bp ON ss.sku_code = bp.sku_code + LEFT JOIN worst_price wp ON ss.sku_code = wp.sku_code + ORDER BY ss.price_variance_pct DESC NULLS LAST + `) + + const summary = { + total_skus: result.rows.length, + high_variance: result.rows.filter((r: any) => r.benchmark_status === '价格差异大').length, + optimizable: result.rows.filter((r: any) => r.benchmark_status === '有优化空间').length, + stable: result.rows.filter((r: any) => r.benchmark_status === '价格稳定').length, + total_potential_savings: result.rows.reduce((s: number, r: any) => s + Number(r.potential_savings_per_unit || 0), 0), + } + + sendSuccess(res, { summary, benchmarks: result.rows }) + } catch (err: any) { sendError(res, err.message) } +}) + +// 单SKU供应商价格历史趋势 +router.get('/supplier-benchmark/:skuCode', async (req: AuthRequest, res) => { + try { + const { skuCode } = req.params + const result = await query(` + SELECT + poi.sku_code, + poi.sku_name, + po.supplier_code, + sm.supplier_name, + sm.grade AS supplier_grade, + poi.unit_price, + po.order_date, + po.po_number + FROM analytics.v3_purchase_order_item poi + JOIN analytics.v3_purchase_order po ON poi.po_id = po.id + LEFT JOIN analytics.v3_supplier_master sm ON po.supplier_code = sm.supplier_code + WHERE poi.sku_code = $1 AND po.status IN ('delivered', 'settled') + ORDER BY po.order_date DESC + LIMIT 50 + `, [skuCode]) + + sendSuccess(res, result.rows) + } catch (err: any) { sendError(res, err.message) } +}) + export default router diff --git a/server/src/routes/promotion.ts b/server/src/routes/promotion.ts new file mode 100644 index 0000000..bf89fb4 --- /dev/null +++ b/server/src/routes/promotion.ts @@ -0,0 +1,275 @@ +import { Router } from 'express' +import { query } from '../config/database.js' +import { sendSuccess, sendError, parseMonth, parsePagination } from '../middleware/error.js' +import type { AuthRequest } from '../middleware/auth.js' + +const router = Router() + +// ============================================================ +// 1. 促销增量利润总览 +// ============================================================ +router.get('/overview', async (req: AuthRequest, res) => { + try { + const month = parseMonth(req) + + const result = await query(` + WITH plan_stats AS ( + SELECT + count(*) as bill_count, + round(sum(received_total)::numeric, 2) as total_revenue, + round(sum(discount_total)::numeric, 2) as total_discount, + round(sum(theoretical_profit)::numeric, 2) as total_profit, + round(avg(received_total)::numeric, 2) as avg_bill_value, + round(avg(theoretical_margin) * 100, 2) as avg_margin_pct, + count(DISTINCT member_id) FILTER (WHERE member_id IS NOT NULL AND member_id != '') as member_bills + FROM analytics.bill_fact + WHERE opened_at >= $1 AND opened_at < $1::date + interval '1 month' + AND marketing_plan IS NOT NULL AND marketing_plan != '' + ), + no_plan_stats AS ( + SELECT + count(*) as bill_count, + round(sum(received_total)::numeric, 2) as total_revenue, + round(sum(discount_total)::numeric, 2) as total_discount, + round(sum(theoretical_profit)::numeric, 2) as total_profit, + round(avg(received_total)::numeric, 2) as avg_bill_value, + round(avg(theoretical_margin) * 100, 2) as avg_margin_pct + FROM analytics.bill_fact + WHERE opened_at >= $1 AND opened_at < $1::date + interval '1 month' + AND (marketing_plan IS NULL OR marketing_plan = '') + ) + SELECT + ps.bill_count as promo_bills, + ps.total_revenue as promo_revenue, + ps.total_discount as promo_discount, + ps.total_profit as promo_profit, + ps.avg_bill_value as promo_avg_bill, + ps.avg_margin_pct as promo_margin_pct, + ps.member_bills as promo_member_bills, + nps.bill_count as baseline_bills, + nps.total_revenue as baseline_revenue, + nps.total_discount as baseline_discount, + nps.total_profit as baseline_profit, + nps.avg_bill_value as baseline_avg_bill, + nps.avg_margin_pct as baseline_margin_pct, + round(((ps.avg_bill_value - nps.avg_bill_value) / NULLIF(nps.avg_bill_value, 0) * 100)::numeric, 1) as bill_uplift_pct, + round((ps.avg_bill_value - nps.avg_bill_value)::numeric, 2) as bill_uplift_amount, + round(((ps.bill_count::numeric / NULLIF(ps.bill_count + nps.bill_count, 0)) * 100)::numeric, 1) as promo_share_pct, + round((ps.total_profit - ps.total_discount)::numeric, 2) as promo_net_profit, + round((nps.total_profit - nps.total_discount)::numeric, 2) as baseline_net_profit, + round(((ps.total_profit - ps.total_discount) - (nps.total_profit - nps.total_discount))::numeric, 2) as incremental_net_profit, + round(((ps.avg_bill_value - nps.avg_bill_value) * ps.bill_count)::numeric, 2) as incremental_revenue, + round(ps.total_discount::numeric, 2) as promotion_cost, + round(((ps.avg_bill_value - nps.avg_bill_value) * ps.bill_count - ps.total_discount)::numeric, 2) as net_incremental_profit, + round(CASE + WHEN ps.total_discount > 0 + THEN ((ps.avg_bill_value - nps.avg_bill_value) * ps.bill_count - ps.total_discount) / ps.total_discount + ELSE NULL + END::numeric, 2) as promo_roi + FROM plan_stats ps + CROSS JOIN no_plan_stats nps + `, [month]) + + sendSuccess(res, result.rows[0]) + } catch (err: any) { + sendError(res, err.message) + } +}) + +// ============================================================ +// 2. 按促销方案对比 +// ============================================================ +router.get('/by-plan', async (req: AuthRequest, res) => { + try { + const month = parseMonth(req) + + const result = await query(` + WITH plan_stats AS ( + SELECT + marketing_plan, + count(*) as bill_count, + round(sum(received_total)::numeric, 2) as total_revenue, + round(sum(discount_total)::numeric, 2) as total_discount, + round(sum(theoretical_profit)::numeric, 2) as total_profit, + round(avg(received_total)::numeric, 2) as avg_bill_value, + round(avg(theoretical_margin) * 100, 2) as avg_margin_pct, + round(avg(discount_total)::numeric, 2) as avg_discount, + count(DISTINCT member_id) FILTER (WHERE member_id IS NOT NULL AND member_id != '') as member_bills, + count(DISTINCT store_code) as store_count + FROM analytics.bill_fact + WHERE opened_at >= $1 AND opened_at < $1::date + interval '1 month' + AND marketing_plan IS NOT NULL AND marketing_plan != '' + GROUP BY marketing_plan + ), + no_plan_stats AS ( + SELECT + round(avg(received_total)::numeric, 2) as avg_bill_value, + round(avg(theoretical_margin) * 100, 2) as avg_margin_pct + FROM analytics.bill_fact + WHERE opened_at >= $1 AND opened_at < $1::date + interval '1 month' + AND (marketing_plan IS NULL OR marketing_plan = '') + ) + SELECT + ps.marketing_plan, + ps.bill_count, + ps.total_revenue, + ps.total_discount, + ps.total_profit, + ps.avg_bill_value, + ps.avg_margin_pct, + ps.avg_discount, + ps.member_bills, + ps.store_count, + round((ps.member_bills::numeric / NULLIF(ps.bill_count, 0) * 100)::numeric, 1) as member_share_pct, + round(((ps.avg_bill_value - nps.avg_bill_value) / NULLIF(nps.avg_bill_value, 0) * 100)::numeric, 1) as bill_uplift_pct, + round((ps.avg_bill_value - nps.avg_bill_value)::numeric, 2) as bill_uplift_amount, + round(((ps.avg_bill_value - nps.avg_bill_value) * ps.bill_count)::numeric, 2) as incremental_revenue, + round(ps.total_discount::numeric, 2) as promotion_cost, + round(((ps.avg_bill_value - nps.avg_bill_value) * ps.bill_count - ps.total_discount)::numeric, 2) as net_incremental_profit, + round(CASE + WHEN ps.total_discount > 0 + THEN ((ps.avg_bill_value - nps.avg_bill_value) * ps.bill_count - ps.total_discount) / ps.total_discount + ELSE NULL + END::numeric, 2) as promo_roi, + round((ps.total_profit - ps.total_discount)::numeric, 2) as net_profit + FROM plan_stats ps + CROSS JOIN no_plan_stats nps + ORDER BY ps.total_revenue DESC + `, [month]) + + sendSuccess(res, result.rows) + } catch (err: any) { + sendError(res, err.message) + } +}) + +// ============================================================ +// 3. 按门店促销效果 +// ============================================================ +router.get('/by-store', async (req: AuthRequest, res) => { + try { + const month = parseMonth(req) + const { page, pageSize, offset } = parsePagination(req) + + const countResult = await query(` + SELECT count(DISTINCT store_code) as total + FROM analytics.bill_fact + WHERE opened_at >= $1 AND opened_at < $1::date + interval '1 month' + AND marketing_plan IS NOT NULL AND marketing_plan != '' + `, [month]) + const total = countResult.rows[0].count + + const result = await query(` + WITH store_plan AS ( + SELECT + store_code, + count(*) as promo_bills, + round(sum(received_total)::numeric, 2) as promo_revenue, + round(sum(discount_total)::numeric, 2) as promo_discount, + round(sum(theoretical_profit)::numeric, 2) as promo_profit, + round(avg(received_total)::numeric, 2) as promo_avg_bill, + count(DISTINCT marketing_plan) as plan_count + FROM analytics.bill_fact + WHERE opened_at >= $1 AND opened_at < $1::date + interval '1 month' + AND marketing_plan IS NOT NULL AND marketing_plan != '' + GROUP BY store_code + ), + store_baseline AS ( + SELECT + store_code, + round(avg(received_total)::numeric, 2) as baseline_avg_bill, + count(*) as baseline_bills + FROM analytics.bill_fact + WHERE opened_at >= $1 AND opened_at < $1::date + interval '1 month' + AND (marketing_plan IS NULL OR marketing_plan = '') + GROUP BY store_code + ) + SELECT + COALESCE(ds.store_name, sp.store_code) as store_name, + sp.store_code, + sp.promo_bills, + sp.promo_revenue, + sp.promo_discount, + sp.promo_profit, + sp.promo_avg_bill, + sp.plan_count, + COALESCE(sb.baseline_avg_bill, 0) as baseline_avg_bill, + sb.baseline_bills, + round((sp.promo_avg_bill - COALESCE(sb.baseline_avg_bill, sp.promo_avg_bill))::numeric, 2) as bill_uplift, + round(CASE + WHEN sb.baseline_avg_bill > 0 + THEN (sp.promo_avg_bill - sb.baseline_avg_bill) / sb.baseline_avg_bill * 100 + ELSE NULL + END::numeric, 1) as uplift_pct, + round(((sp.promo_avg_bill - COALESCE(sb.baseline_avg_bill, sp.promo_avg_bill)) * sp.promo_bills)::numeric, 2) as incremental_revenue, + round((sp.promo_discount)::numeric, 2) as promotion_cost, + round(((sp.promo_avg_bill - COALESCE(sb.baseline_avg_bill, sp.promo_avg_bill)) * sp.promo_bills - sp.promo_discount)::numeric, 2) as net_incremental_profit, + round(CASE + WHEN sp.promo_discount > 0 + THEN ((sp.promo_avg_bill - COALESCE(sb.baseline_avg_bill, sp.promo_avg_bill)) * sp.promo_bills - sp.promo_discount) / sp.promo_discount + ELSE NULL + END::numeric, 2) as promo_roi + FROM store_plan sp + LEFT JOIN store_baseline sb ON sp.store_code = sb.store_code + LEFT JOIN analytics.dim_store ds ON sp.store_code = ds.store_code + ORDER BY net_incremental_profit DESC NULLS LAST + LIMIT $2 OFFSET $3 + `, [month, pageSize, offset]) + + sendSuccess(res, result.rows, { page, pageSize, total }) + } catch (err: any) { + sendError(res, err.message) + } +}) + +// ============================================================ +// 4. 促销日趋势 +// ============================================================ +router.get('/daily-trend', async (req: AuthRequest, res) => { + try { + const month = parseMonth(req) + + const result = await query(` + SELECT + opened_at::date as business_date, + CASE WHEN marketing_plan IS NOT NULL AND marketing_plan != '' THEN '促销' ELSE '非促销' END as day_type, + count(*) as bill_count, + round(sum(received_total)::numeric, 2) as revenue, + round(avg(received_total)::numeric, 2) as avg_bill_value, + round(sum(discount_total)::numeric, 2) as discount + FROM analytics.bill_fact + WHERE opened_at >= $1 AND opened_at < $1::date + interval '1 month' + GROUP BY opened_at::date, CASE WHEN marketing_plan IS NOT NULL AND marketing_plan != '' THEN '促销' ELSE '非促销' END + ORDER BY business_date, day_type + `, [month]) + + const grouped: Record = {} + for (const row of result.rows) { + const date = String(row.business_date).substring(0, 10) + if (!grouped[date]) grouped[date] = { date, promo: null, baseline: null } + if (row.day_type === '促销') { + grouped[date].promo = row + } else { + grouped[date].baseline = row + } + } + + const trend = Object.values(grouped).map((d: any) => ({ + date: d.date, + promo_bills: d.promo?.bill_count || 0, + promo_revenue: d.promo?.revenue || 0, + promo_avg_bill: d.promo?.avg_bill_value || 0, + promo_discount: d.promo?.discount || 0, + baseline_bills: d.baseline?.bill_count || 0, + baseline_revenue: d.baseline?.revenue || 0, + baseline_avg_bill: d.baseline?.avg_bill_value || 0, + uplift: d.promo && d.baseline ? Math.round((d.promo.avg_bill_value - d.baseline.avg_bill_value) * 100) / 100 : 0, + })) + + sendSuccess(res, trend) + } catch (err: any) { + sendError(res, err.message) + } +}) + +export default router diff --git a/server/src/routes/situational-awareness.ts b/server/src/routes/situational-awareness.ts index 9ceba25..a53281d 100644 --- a/server/src/routes/situational-awareness.ts +++ b/server/src/routes/situational-awareness.ts @@ -115,29 +115,78 @@ router.get('/alerts', async (req: AuthRequest, res) => { const month = parseMonth(req) const alerts: any[] = [] - // 1. 营收异动预警:日营收连续低于月均70% - const revenueAlerts = await query(` - WITH daily_stats AS ( - SELECT closed_at::date AS business_date, - count(*) AS bill_count, - sum(received_total) AS received - FROM analytics.bill_fact - WHERE closed_at >= (SELECT max(closed_at)::date - interval '30 days' FROM analytics.bill_fact) - AND closed_at IS NOT NULL - GROUP BY closed_at::date - ORDER BY business_date - ), - monthly_avg AS ( - SELECT avg(received) AS avg_received - FROM daily_stats - ) - SELECT d.business_date::text, d.received, m.avg_received, - round(d.received / nullif(m.avg_received, 0) * 100, 1) AS ratio - FROM daily_stats d, monthly_avg m - WHERE d.received < m.avg_received * 0.7 - ORDER BY d.business_date DESC - LIMIT 10 - `, [], { skipScope: true }) + // 1-5. 并行查询所有预警类型 + const [revenueAlerts, costAlerts, hrAlerts, platformAlerts, taskAlerts] = await Promise.all([ + // 1. 营收异动预警:日营收连续低于月均70% + query(` + WITH daily_stats AS ( + SELECT business_date, bill_count, received + FROM analytics.mv_daily_revenue + WHERE business_date >= (SELECT max(business_date) - interval '30 days' FROM analytics.mv_daily_revenue) + ORDER BY business_date + ), + monthly_avg AS ( + SELECT avg(received) AS avg_received + FROM daily_stats + ) + SELECT d.business_date::text, d.received, m.avg_received, + round(d.received / nullif(m.avg_received, 0) * 100, 1) AS ratio + FROM daily_stats d, monthly_avg m + WHERE d.received < m.avg_received * 0.7 + ORDER BY d.business_date DESC + LIMIT 10 + `, [], { skipScope: true }), + // 2. 成本异动预警:成本差异>30%的菜品 + query(` + SELECT dish_name, dish_code, category_level1, + round(cost_variance_amount::numeric, 2) AS variance, + round((cost_variance_amount / nullif(theoretical_cost, 0) * 100)::numeric, 2) AS variance_pct, + round(sales_amount::numeric, 2) AS sales_amount + FROM public.dish_cost_analysis_summary + WHERE cost_variance_amount > 0 + AND theoretical_cost > 0 + AND (cost_variance_amount / theoretical_cost) > 0.3 + ORDER BY variance_pct DESC + LIMIT 10 + `, [], { skipScope: true }), + // 3. 人力异动预警:考勤异常员工 + query(` + SELECT s.org_level5 AS store_name, count(*) AS alert_count, + count(*) FILTER (WHERE s.absent_days > 0) AS absent_count, + count(*) FILTER (WHERE s.late_deduction > 0 OR s.no_punch_deduction > 0) AS punch_issue_count + FROM salary_detail_records s + WHERE s.org_level2 = '西部马华品牌门店' AND s.org_level5 IS NOT NULL AND s.org_level5 != '' + AND (s.absent_days > 0 OR s.late_deduction > 0 OR s.no_punch_deduction > 0) + GROUP BY s.org_level5 + HAVING count(*) > 3 + ORDER BY alert_count DESC + LIMIT 10 + `), + // 4. 平台依赖预警:外卖佣金占比>40% + query(` + SELECT p.store_code, p.store_name, + round(p.meituan_cost_rate_pct::numeric, 1) AS meituan_rate, + round(p.taobao_cost_rate_pct::numeric, 1) AS taobao_rate, + round(p.jd_cost_rate_pct::numeric, 1) AS jd_rate, + round((COALESCE(p.meituan_received, 0) + COALESCE(p.taobao_received, 0) + COALESCE(p.jd_received, 0)) / nullif(sc.received, 0) * 100, 1) AS platform_share + FROM analytics.mv_store_platform_economics_monthly p + JOIN analytics.v_store_scorecard sc ON p.store_code = sc.store_code + WHERE p.month_start = $1 AND (COALESCE(p.meituan_received, 0) + COALESCE(p.taobao_received, 0) + COALESCE(p.jd_received, 0)) / nullif(sc.received, 0) > 0.4 + ORDER BY platform_share DESC + LIMIT 10 + `, [month]), + // 5. 任务逾期预警 + query(` + SELECT store_code, store_name, priority, problem_indicator, deadline::text AS deadline, + current_date - deadline::date AS overdue_days + FROM analytics.store_task + WHERE status NOT IN ('已验收', '已回滚') + AND deadline < current_date + ORDER BY overdue_days DESC + LIMIT 10 + `), + ]) + revenueAlerts.rows.forEach((r: any) => { alerts.push({ type: 'revenue', @@ -149,19 +198,6 @@ router.get('/alerts', async (req: AuthRequest, res) => { }) }) - // 2. 成本异动预警:成本差异>30%的菜品 - const costAlerts = await query(` - SELECT dish_name, dish_code, category_level1, - round(cost_variance_amount::numeric, 2) AS variance, - round((cost_variance_amount / nullif(theoretical_cost, 0) * 100)::numeric, 2) AS variance_pct, - round(sales_amount::numeric, 2) AS sales_amount - FROM public.dish_cost_analysis_summary - WHERE cost_variance_amount > 0 - AND theoretical_cost > 0 - AND (cost_variance_amount / theoretical_cost) > 0.3 - ORDER BY variance_pct DESC - LIMIT 10 - `, [], { skipScope: true }) costAlerts.rows.forEach((r: any) => { alerts.push({ type: 'cost', @@ -173,19 +209,6 @@ router.get('/alerts', async (req: AuthRequest, res) => { }) }) - // 3. 人力异动预警:考勤异常员工 - const hrAlerts = await query(` - SELECT s.org_level5 AS store_name, count(*) AS alert_count, - count(*) FILTER (WHERE s.absent_days > 0) AS absent_count, - count(*) FILTER (WHERE s.late_deduction > 0 OR s.no_punch_deduction > 0) AS punch_issue_count - FROM salary_detail_records s - WHERE s.org_level2 = '西部马华品牌门店' AND s.org_level5 IS NOT NULL AND s.org_level5 != '' - AND (s.absent_days > 0 OR s.late_deduction > 0 OR s.no_punch_deduction > 0) - GROUP BY s.org_level5 - HAVING count(*) > 3 - ORDER BY alert_count DESC - LIMIT 10 - `) hrAlerts.rows.forEach((r: any) => { alerts.push({ type: 'hr', @@ -197,19 +220,6 @@ router.get('/alerts', async (req: AuthRequest, res) => { }) }) - // 4. 平台依赖预警:外卖佣金占比>40% - const platformAlerts = await query(` - SELECT p.store_code, p.store_name, - round(p.meituan_cost_rate_pct::numeric, 1) AS meituan_rate, - round(p.taobao_cost_rate_pct::numeric, 1) AS taobao_rate, - round(p.jd_cost_rate_pct::numeric, 1) AS jd_rate, - round((COALESCE(p.meituan_received, 0) + COALESCE(p.taobao_received, 0) + COALESCE(p.jd_received, 0)) / nullif(sc.received, 0) * 100, 1) AS platform_share - FROM analytics.mv_store_platform_economics_monthly p - JOIN analytics.v_store_scorecard sc ON p.store_code = sc.store_code - WHERE p.month_start = $1 AND (COALESCE(p.meituan_received, 0) + COALESCE(p.taobao_received, 0) + COALESCE(p.jd_received, 0)) / nullif(sc.received, 0) > 0.4 - ORDER BY platform_share DESC - LIMIT 10 - `, [month]) platformAlerts.rows.forEach((r: any) => { alerts.push({ type: 'platform', @@ -221,16 +231,6 @@ router.get('/alerts', async (req: AuthRequest, res) => { }) }) - // 5. 任务逾期预警 - const taskAlerts = await query(` - SELECT store_code, store_name, priority, problem_indicator, deadline::text AS deadline, - current_date - deadline::date AS overdue_days - FROM analytics.store_task - WHERE status NOT IN ('已验收', '已回滚') - AND deadline < current_date - ORDER BY overdue_days DESC - LIMIT 10 - `) taskAlerts.rows.forEach((r: any) => { alerts.push({ type: 'task', diff --git a/server/src/routes/store-expense.ts b/server/src/routes/store-expense.ts index 04e75fc..924bc44 100644 --- a/server/src/routes/store-expense.ts +++ b/server/src/routes/store-expense.ts @@ -12,8 +12,9 @@ router.get('/overview', async (req: AuthRequest, res) => { try { const month = parseMonth(req) const result = await query(` - WITH bill_discount AS ( + WITH bill_consumption AS ( SELECT store_code, + round(sum(consumption)::numeric, 2) AS consumption, round(sum(discount_total)::numeric, 2) AS discount FROM analytics.bill_fact WHERE closed_at >= $1::date AND closed_at < ($1::date + interval '1 month') @@ -24,8 +25,8 @@ router.get('/overview', async (req: AuthRequest, res) => { r.store_code, r.store_name, r.received, - e.consumption, - COALESCE(bd.discount, e.consumption - e.received) AS discount, + COALESCE(e.consumption, bc.consumption) AS consumption, + COALESCE(bc.discount, e.consumption - e.received, 0) AS discount, r.bill_count, r.theoretical_margin_pct, e.operating_expense, @@ -44,7 +45,7 @@ router.get('/overview', async (req: AuthRequest, res) => { FROM analytics.mv_store_risk_rating_monthly r LEFT JOIN analytics.mv_store_operating_expense_monthly e ON r.store_code = e.sales_store_code AND e.report_month = $1::date - LEFT JOIN bill_discount bd ON bd.store_code = r.store_code + LEFT JOIN bill_consumption bc ON bc.store_code = r.store_code WHERE r.month_start = $1 AND r.received IS NOT NULL ) SELECT diff --git a/server/src/routes/store-grade.ts b/server/src/routes/store-grade.ts index 2a8cbd5..d41c7ea 100644 --- a/server/src/routes/store-grade.ts +++ b/server/src/routes/store-grade.ts @@ -142,4 +142,122 @@ router.get('/traffic-light', async (req: AuthRequest, res) => { } }) +// ============================================================ +// 门店关停测算 +// ============================================================ +router.get('/closure-analysis', async (req: AuthRequest, res) => { + try { + const month = (req.query.month as string) || new Date().toISOString().slice(0, 8) + '01' + + const result = await query(` + WITH store_financials AS ( + SELECT + g.store_code, + g.store_name, + g.region, + g.grade, + g.overall_score, + g.revenue_achievement_pct, + COALESCE(r.received, 0) AS monthly_revenue, + COALESCE(r.bill_count, 0) AS bill_count, + COALESCE(r.theoretical_margin_pct, 0) AS margin_pct, + COALESCE(e.actual_store_contribution, 0) AS monthly_profit, + COALESCE(e.rent_expense, 0) AS monthly_rent, + COALESCE(e.wage_expense, 0) AS monthly_wage, + COALESCE(e.utility_expense, 0) AS monthly_utility, + COALESCE(e.operating_expense, 0) AS monthly_opex, + COALESCE(a.area_sqm, 0) AS area_sqm, + COALESCE(a.lease_expiry_date, NULL) AS lease_expiry_date + FROM analytics.v3_store_grade g + LEFT JOIN analytics.mv_store_risk_rating r + ON r.store_code = g.store_code AND r.month_start = $1::date + LEFT JOIN analytics.mv_store_operating_expense_monthly e + ON e.sales_store_code = g.store_code AND e.report_month = $1::date + LEFT JOIN analytics.mv_store_area_efficiency_monthly a + ON a.store_code = g.store_code AND a.month_start = $1::date + WHERE date_trunc('month', g.grade_month) = date_trunc('month', $1::date) + ) + SELECT + store_code, + store_name, + region, + grade, + overall_score, + revenue_achievement_pct, + round(monthly_revenue::numeric, 2) AS monthly_revenue, + bill_count, + round(margin_pct::numeric, 2) AS margin_pct, + round(monthly_profit::numeric, 2) AS monthly_profit, + round(monthly_rent::numeric, 2) AS monthly_rent, + round(monthly_wage::numeric, 2) AS monthly_wage, + round(monthly_utility::numeric, 2) AS monthly_utility, + round(monthly_opex::numeric, 2) AS monthly_opex, + area_sqm, + lease_expiry_date, + -- 关停成本估算 + round((monthly_wage * 1.5)::numeric, 2) AS severance_cost, + round((monthly_rent * 2)::numeric, 2) AS lease_termination_cost, + round((monthly_revenue * 0.05)::numeric, 2) AS asset_disposal_cost, + round((monthly_wage * 1.5 + monthly_rent * 2 + monthly_revenue * 0.05)::numeric, 2) AS total_closure_cost, + -- 继续经营12个月亏损 + round(CASE + WHEN monthly_profit < 0 THEN monthly_profit * 12 + ELSE 0 + END::numeric, 2) AS projected_12m_loss, + -- 关停后月节省 + round(CASE + WHEN monthly_profit < 0 THEN ABS(monthly_profit) + ELSE 0 + END::numeric, 2) AS monthly_savings_if_closed, + -- 关停回本月数 + CASE + WHEN monthly_profit < 0 AND (monthly_wage * 1.5 + monthly_rent * 2 + monthly_revenue * 0.05) > 0 + THEN round((monthly_wage * 1.5 + monthly_rent * 2 + monthly_revenue * 0.05) / ABS(monthly_profit)::numeric, 1) + ELSE NULL + END AS payback_months, + -- 建议 + CASE + WHEN monthly_profit < 0 AND overall_score < 50 THEN '建议关停' + WHEN monthly_profit < 0 AND overall_score >= 50 AND overall_score < 70 THEN '整改观察3个月' + WHEN monthly_profit >= 0 AND overall_score < 70 THEN '重点整改' + ELSE '持续经营' + END AS recommendation, + CASE + WHEN monthly_profit < 0 AND overall_score < 50 THEN '持续亏损且综合评分D级,关停可止损' + WHEN monthly_profit < 0 AND overall_score >= 50 AND overall_score < 70 THEN '亏损但有一定基础,限期整改后评估' + WHEN monthly_profit >= 0 AND overall_score < 70 THEN '微利但评分偏低,需提升运营效率' + ELSE '经营正常,维持现状' + END AS reason + FROM store_financials + ORDER BY + CASE + WHEN monthly_profit < 0 AND overall_score < 50 THEN 1 + WHEN monthly_profit < 0 AND overall_score >= 50 AND overall_score < 70 THEN 2 + WHEN monthly_profit >= 0 AND overall_score < 70 THEN 3 + ELSE 4 + END, + monthly_profit ASC + `, [month]) + + const summary = { + total_stores: result.rows.length, + recommend_close: result.rows.filter((r: any) => r.recommendation === '建议关停').length, + recommend_rectify: result.rows.filter((r: any) => r.recommendation === '整改观察3个月').length, + total_closure_cost: result.rows + .filter((r: any) => r.recommendation === '建议关停') + .reduce((s: number, r: any) => s + Number(r.total_closure_cost || 0), 0), + total_projected_loss: result.rows + .filter((r: any) => r.recommendation === '建议关停') + .reduce((s: number, r: any) => s + Number(r.projected_12m_loss || 0), 0), + total_monthly_savings: result.rows + .filter((r: any) => r.recommendation === '建议关停') + .reduce((s: number, r: any) => s + Number(r.monthly_savings_if_closed || 0), 0), + } + + sendSuccess(res, { summary, stores: result.rows }) + } catch (err: any) { + sendError(res, err.message) + } +}) + export default router diff --git a/企业智脑建设蓝图.md b/企业智脑建设蓝图.md index 9440657..0bcb9e5 100644 --- a/企业智脑建设蓝图.md +++ b/企业智脑建设蓝图.md @@ -1,6 +1,10 @@ -# 企业智脑:让数据产生决策力 +# 玄谋智脑:让数据产生决策力 -> **一句话定位**:把散落在各系统和Excel里的数据,变成能自动发现问题、驱动执行、预测未来的企业大脑。 +> **品牌名称**:玄谋智脑 +> +> **品牌定位**:面向企业经营与管理决策的行业数字本体与 AI 智脑。 +> +> **一句话定位**:整合散落在现有系统和 Excel 中的数据,将行业知识、企业数据与管理经验沉淀为能自动发现问题、驱动执行、预测未来的决策能力。 > > **编制日期**:2026-08-09 @@ -17,7 +21,7 @@ | **执行断裂** | 战略目标制定后,无法穿透到一线行动 | 有目标、无落地 | | **知识断裂** | 最佳实践留在个人脑中,组织能力无法积累 | 有经验、无沉淀 | -**企业智脑的本质**:用 AI 把这四个断裂接上,让数据从"被动查看"变成"主动驱动"。 +**玄谋智脑的本质**:用 AI 把这四个断裂接上,让数据从"被动查看"变成"主动驱动"。 --- @@ -325,4 +329,4 @@ --- -> **总结**:企业智脑不是一个IT项目,而是一次管理升级。它让数据从"被动查看"变成"主动驱动",让管理从"事后救火"变成"事前预防",让组织能力从"依赖个人"变成"沉淀系统"。**最终目标:让每一个团队、每一个员工,每天都在做正确的事。** +> **总结**:玄谋智脑不是新建一套孤立的 IT 系统,而是基于企业现有数据的管理升级。它让数据从"被动查看"变成"主动驱动",让管理从"事后救火"变成"事前预防",让组织能力从"依赖个人"变成"沉淀系统"。**最终目标:让每一个团队、每一个员工,每天都在做正确的事。** diff --git a/玄谋智脑_系统销售和服务合同.md b/玄谋智脑_系统销售和服务合同.md new file mode 100644 index 0000000..9ec9fad --- /dev/null +++ b/玄谋智脑_系统销售和服务合同.md @@ -0,0 +1,585 @@ +# 玄谋智脑系统销售和服务合同 + +> **合同编号**:[XMZN-YYYY-XXXX] +> **签订地点**:[省/市] +> **签订日期**:[年]年[月]月[日]日 +> **版本**:V1.0(商务及法务评审稿) + +> **重要提示**:本文件为系统销售与服务合同通用范本,不构成针对任何具体交易的法律意见。正式签署前,双方应根据部署方式、数据类型、服务边界、费用、验收口径及适用法律,交由各自法务或外部律师审核。 + +--- + +## 一、合同主体 + +### 甲方(客户) + +- **单位名称**:[甲方全称] +- **统一社会信用代码**:[代码] +- **地址**:[地址] +- **法定代表人/授权代表**:[姓名] +- **项目负责人**:[姓名] +- **联系电话**:[电话] +- **电子邮箱**:[邮箱] + +### 乙方(供应商) + +- **单位名称**:[乙方全称] +- **统一社会信用代码**:[代码] +- **地址**:[地址] +- **法定代表人/授权代表**:[姓名] +- **项目负责人**:[姓名] +- **联系电话**:[电话] +- **电子邮箱**:[邮箱] + +甲乙双方根据《中华人民共和国民法典》《中华人民共和国网络安全法》《中华人民共和国数据安全法》《中华人民共和国个人信息保护法》及其他适用法律法规,本着平等、自愿、公平和诚实信用原则,就“玄谋智脑”系统许可、实施及持续服务事宜达成本合同。 + +--- + +## 二、定义 + +1. **玄谋智脑/本系统**:指乙方提供的面向连锁企业的行业数字本体与 AI 经营辅助决策系统,包括本合同及附件明确的软件功能、配置、接口、模型、报告与服务。 +2. **项目**:指乙方依本合同为甲方提供系统许可、数据接入、配置实施、试运行、培训、验收、维护和相关专业服务的整体工作。 +3. **业务数据**:指甲方或甲方授权的第三方系统提供的 POS、ERP、WMS、财务、会员、外卖、HR、Excel 及其他与经营相关的数据。 +4. **个人信息**:指以电子或其他方式记录的、与已识别或可识别的自然人有关的各种信息,不包括匿名化处理后的信息。 +5. **产品标准功能**:指乙方在签约时已形成、可重复向不同客户提供的通用功能。 +6. **定制成果**:指双方在附件中明确列为“定制开发”,且由乙方为甲方特定需求新建的代码、配置、报表或其他成果。 +7. **AI 建议**:指本系统基于数据、规则、统计方法、模型或大语言模型生成的异常识别、归因、预测、情景测算、经营建议或文本输出。 +8. **工作日**:除中国法定节假日及休息日以外的日期。 + +--- + +## 三、合同目标与合作原则 + +1. 本项目目标是整合甲方现有、合法可用的经营数据,建立统一业务语义、指标体系与经营分析闭环,辅助甲方发现经营问题、推动整改、验证结果并沉淀组织经验。 +2. 本系统原则上不取代甲方现有 POS、ERP、WMS、财务、HR 等生产或交易系统,除双方书面约定外,不直接改写甲方生产系统原始数据。 +3. 项目采取“先验证价值、再扩大范围”的原则。首期原则上以一至两个可量化经营专项为主,具体范围以《项目范围与交付清单》为准。 +4. 双方确认,经营结果受市场环境、季节、管理执行、人员、竞争、价格、供应链、政策及数据质量等多重因素影响。乙方不对营收、利润、毛利率、成本降幅、融资或其他经营成果作无条件保证。 + +--- + +## 四、系统销售、许可与使用范围 + +### 4.1 许可模式 + +双方选择以下第 [ ] 种模式: + +1. **SaaS 订阅**:乙方在云环境中向甲方提供有期限的访问和使用权。 +2. **甲方私有化部署**:系统部署于甲方或甲方指定的合规环境,乙方提供有期限或永久的软件使用许可。 +3. **混合部署**:部分数据、模型或服务在甲方环境内运行,部分能力由乙方云服务提供。 + +### 4.2 许可范围 + +| 项目 | 约定 | +|:---|:---| +| 授权主体 | [甲方及允许使用的关联公司清单] | +| 授权用户数 | [ ] 人/不限用户 | +| 授权门店数 | [ ] 家 | +| 授权区域 | [ ] | +| 许可期限 | 自[ ]年[ ]月[ ]日至[ ]年[ ]月[ ]日 | +| 部署环境 | [生产/测试/容灾]环境,数量[ ] | +| 使用目的 | 限甲方内部经营分析、管理与决策辅助 | + +### 4.3 使用限制 + +未经乙方书面同意,甲方不得: + +1. 向授权范围外的第三方转让、出租、分许可、销售或开放本系统。 +2. 对本系统进行反向工程、反编译、反汇编或尝试获取源代码,法律强制允许的情形除外。 +3. 删除或修改系统中的著作权、商标、技术保护或权利声明。 +4. 使用本系统从事违法活动,或处理甲方无权处理的数据。 + +--- + +## 五、项目范围与交付内容 + +### 5.1 首期建设范围 + +首期默认为八周价值验证项目,实际计划自项目启动条件全部具备之日起计算。 + +| 阶段 | 建议时间 | 主要工作 | 主要交付物 | +|:---|:---|:---|:---| +| 专项确认 | 第1周 | 选定1—2个经营专项,确认基线、口径、责任人 | 项目范围、指标基线、验收口径 | +| 数据接入 | 第1—2周 | 连接约定数据源,完成映射、清洗与质量检查 | 数据清单、映射关系、质量报告 | +| 分析建模 | 第3—4周 | 建立本体、指标、异常规则与分析模型 | 异常清单、影响测算、根因证据 | +| 整改执行 | 第5—6周 | 生成或配置整改任务,跟踪责任人与进度 | 整改清单、任务记录、进度报告 | +| 验证复盘 | 第7—8周 | 对比改善前后,识别外部影响,形成复制建议 | 专项报告、验收结论、最佳实践建议 | + +### 5.2 候选经营专项 + +双方可从以下场景中选择,最终以附件勾选内容为准: + +- [ ] SKU 组合、商品毛利与产品生命周期 +- [ ] 人员排班、工时利用与人效 +- [ ] 促销活动的增量贡献利润 +- [ ] 库存、损耗、临期商品与资金占用 +- [ ] 门店分级、低效门店整改与关停情景测算 +- [ ] 会员复购、流失预警与精准营销 +- [ ] 采购价格、供应商对标与异常识别 +- [ ] 其他:[ ] + +### 5.3 系统及管理交付物 + +在附件约定的范围内,可包括: + +1. 数据源清单、数据质量报告与映射规则。 +2. 业务本体、主数据及指标词典。 +3. 授权范围内的经营看板、分析页面和预警能力。 +4. 异常发现、归因、情景测算与 AI 辅助建议功能。 +5. 整改任务、责任人、期限、进度与验收记录。 +6. 项目配置文档、管理员手册和用户手册。 +7. 项目培训与试运行支持。 + +### 5.4 不在范围内的内容 + +除附件另有明确约定外,下列事项不在本合同价格与交付范围内: + +1. 替换或重建甲方原有生产、收银、财务、库存或人事系统。 +2. 甲方或第三方系统的源码修改及接口开发费。 +3. 云资源、网络专线、短信、邮件、第三方地图、大模型或其他外部服务费用,除非报价单已明确包含。 +4. 数据历史补录、线下盘点、人工采集或原始业务数据修复。 +5. 乙方代替甲方做出价格、人事、采购、关店、投资、融资或其他最终经营决策。 +6. 未在附件中列明的定制功能、报表或大规模数据迁移。 + +--- + +## 六、项目计划、启动条件与变更管理 + +### 6.1 项目启动条件 + +以下条件全部满足之日为项目正式启动日: + +1. 本合同及必要附件已生效。 +2. 甲方已按约定支付首期款。 +3. 双方已指定项目负责人与必要参与人员。 +4. 甲方已提供符合约定的数据、接口、账号、网络、环境和业务口径。 +5. 双方已书面确认首期经营专项、基线和验收方法。 + +### 6.2 延期 + +1. 因甲方未及时提供数据、环境、人员、确认或审批导致延期的,项目计划应相应顺延,乙方不承担违约责任。 +2. 因乙方原因导致关键里程碑延期的,乙方应及时告知甲方、提交纠偏计划并承担本合同约定的违约责任。 + +### 6.3 需求变更 + +1. 任何影响项目范围、数据源、接口、交付物、计划、费用或验收口径的变更,应以书面《变更申请单》确认。 +2. 乙方应对变更的工作量、费用、时间与风险进行评估。双方未书面确认前,乙方有权按原范围继续履行。 + +--- + +## 七、双方职责 + +### 7.1 甲方职责 + +1. 指定具有协调和决策权限的项目负责人,组织业务、IT、数据、财务、人力及门店相关人员参与。 +2. 保证向乙方提供数据、资料、接口和指令的合法性、准确性、完整性及授权充分性。 +3. 按时完成业务口径、规则、方案、账号、权限、交付物和验收结果的确认。 +4. 组织整改动作的实际执行。乙方提供分析、建议和工具支持,不代替甲方行使管理权限。 +5. 按合同约定支付费用,并为项目提供必要的办公、网络、环境与安全条件。 +6. 对自身用户账号、密码、设备及内部权限分配负责。 + +### 7.2 乙方职责 + +1. 按本合同及附件约定,组织具备相应技能的人员完成系统实施与服务。 +2. 建立项目计划、风险台账、问题清单和沟通机制,及时报告重大风险。 +3. 依据约定采取合理的技术与管理措施保护甲方数据。 +4. 不得超出甲方授权和本合同目的访问、处理、使用或对外提供甲方数据。 +5. 在约定范围内提供培训、试运行和保修支持。 +6. 发现可能影响数据安全、系统稳定或项目验收的重大问题时,应及时通知甲方。 + +--- + +## 八、数据保护、个人信息与安全 + +### 8.1 数据权属 + +1. 甲方业务数据及甲方依法享有权利的数据资产,其权利仍归甲方或相应权利人所有。 +2. 乙方仅在履行本合同所必需的范围、目的和期限内处理甲方数据。 +3. 未经甲方事先书面同意,乙方不得将甲方可识别业务数据用于向其他客户展示、对外宣传、训练通用模型或与本合同无关的目的。 + +### 8.2 个人信息 + +1. 甲方应确保个人信息的收集、使用、委托处理、提供与传输具有合法性基础,并按法律要求履行告知、同意、影响评估等义务。 +2. 乙方应按甲方的合法指令处理个人信息,不得擅自变更处理目的、方式或范围。 +3. 双方应另行签署《数据处理与个人信息保护附件》,明确信息种类、目的、期限、安全措施、再委托、跨境、安全事件及删除返还要求。 + +### 8.3 安全措施 + +乙方应根据部署方式和约定责任边界,采取与风险相适应的措施,可包括: + +1. 身份认证、最小权限、角色分权与特权账号管理。 +2. 传输加密、存储加密或等效保护。 +3. 敏感数据脱敏、屏蔽、分级分类与访问审计。 +4. 日志、监控、告警、备份与恢复措施。 +5. 漏洞管理、恶意代码防护、开发与变更管理。 +6. 对可接触甲方数据的人员进行权限限制、保密约束与安全培训。 + +### 8.4 数据安全事件 + +1. 乙方发现与甲方数据有关的未授权访问、泄露、篡改、丢失或其他安全事件后,应在[ ]小时内通知甲方。 +2. 乙方应及时采取止损、调查、修复和防止扩大措施,并配合甲方履行法定报告或通知义务。 +3. 因一方过错造成安全事件的,该方应依本合同及适用法律承担责任。 + +### 8.5 数据保留、返还与删除 + +1. 合同终止或甲方合法要求时,乙方应在[ ]日内按约定返还或删除甲方数据,但法律规定或备份周期必须保留的除外。 +2. 对必须保留的数据,乙方应停止主动处理并持续承担保密与安全义务。 + +--- + +## 九、AI 功能与决策边界 + +1. 双方确认,AI 建议属于经营辅助信息,可能存在误差、遗漏、时滞、不完整或不适用于特定情形的情况。 +2. 乙方应尽合理努力,使重要 AI 结论展示其数据时间、依据指标、分析路径或适用边界。 +3. 甲方应由具备相应专业能力和权限的人员审核 AI 建议。价格调整、人员处置、供应商更换、门店关停、投资、融资等重要决策必须由甲方人工审批。 +4. 除双方对具体场景另行进行风险评估并书面授权外,本系统不得直接执行不可逆或高影响经营动作。 +5. 如 AI 功能调用第三方模型服务,乙方应在附件中说明服务商、数据处理边界、部署地域、数据保留政策和费用承担方式。 +6. 未经甲方书面同意,乙方不得将甲方可识别数据用于训练或改进面向其他客户的通用模型。 + +--- + +## 十、交付、试运行与验收 + +### 10.1 验收原则 + +1. 验收以本合同、附件、经双方确认的需求、原型、变更单和测试用例为依据。 +2. 对系统功能、数据质量、性能、安全、文档、培训和经营专项采用分类验收。 +3. 经营收益的评估必须使用双方预先确认的基线、计算口径、数据周期和排除因素。 +4. 除附件明确将某项经营指标约定为付费或验收条件外,系统功能验收不以特定利润数值必然实现为前提。 + +### 10.2 建议验收维度 + +| 验收维度 | 指标示例 | 目标值/标准 | +|:---|:---|:---| +| 功能 | 约定功能可用、角色权限生效、关键流程可完成 | [ ] | +| 数据 | 完整率、准确率、及时率、口径一致率、可追溯率 | [ ] | +| 性能 | 页面响应、批处理时间、并发用户数 | [ ] | +| 问题发现 | 发现周期、有效异常率、影响金额覆盖率 | [ ] | +| 执行闭环 | 任务接收率、完成率、整改有效率 | [ ] | +| 交付物 | 文档、报告、培训、配置和管理员移交 | [ ] | + +### 10.3 验收流程 + +1. 乙方完成某一阶段或整体交付后,向甲方提交书面验收申请和交付清单。 +2. 甲方应在收到完整验收材料后[ ]个工作日内完成测试,并一次性书面提出不符合项。 +3. 乙方应在合理期限内完成不符合项修复并重新申请验收。 +4. 不影响系统主要目的和核心功能的轻微缺陷,可列入遗留问题清单,不作为拒绝验收的理由;乙方应在双方确认的期限内修复。 +5. 甲方在验收期限内未提出具体书面异议,且已将系统用于生产经营超过[ ]日的,可视为相应交付通过验收。如双方不接受默示验收,应在此处删除本款。 + +--- + +## 十一、培训、运维、保修与服务级别 + +### 11.1 培训 + +| 培训对象 | 次数/时长 | 形式 | 主要内容 | +|:---|:---|:---|:---| +| 系统管理员 | [ ] | [线上/现场] | 账号、权限、配置、日志和日常管理 | +| 总部/区域用户 | [ ] | [线上/现场] | 分析、预警、任务、验收和报告 | +| 店长/一线用户 | [ ] | [线上/现场] | 目标卡、整改任务、进度与反馈 | + +### 11.2 保修期 + +1. 项目最终验收通过之日起[ ]个月为免费保修期。 +2. 保修期内,乙方免费修复交付范围内的软件缺陷。 +3. 因甲方或第三方擅自修改系统、基础环境故障、违规操作、外部接口变更、不可抗力或非乙方原因产生的问题,不属于免费保修范围。 + +### 11.3 服务级别 + +| 故障级别 | 定义 | 响应时间 | 恢复/解决目标 | +|:---|:---|:---|:---| +| P1 紧急 | 系统整体不可用、重大安全事件或核心数据严重错误 | [ ]分钟 | [ ]小时恢复或提供绕行方案 | +| P2 高 | 核心功能受影响,但存在部分替代方式 | [ ]小时 | [ ]个工作日 | +| P3 中 | 一般功能异常,不阻断主要业务 | [ ]小时 | [ ]个工作日 | +| P4 低 | 优化建议、使用咨询或轻微问题 | [ ]个工作日 | 纳入计划处理 | + +> 具体服务时间、服务窗口、可用性指标、计划内维护时间及赔偿机制,以《服务级别协议(SLA)》为准。 + +--- + +## 十二、合同价款、税费与支付 + +### 12.1 费用构成 + +| 费用项目 | 未税金额(元) | 税率 | 含税金额(元) | 说明 | +|:---|---:|---:|---:|:---| +| 软件许可/SaaS订阅费 | [ ] | [ ]% | [ ] | [年/月/永久许可] | +| 实施与数据接入费 | [ ] | [ ]% | [ ] | [ ] | +| 八周经营专项服务费 | [ ] | [ ]% | [ ] | [ ] | +| 定制开发费 | [ ] | [ ]% | [ ] | [ ] | +| 年度运维与智脑服务费 | [ ] | [ ]% | [ ] | [ ] | +| 第三方服务及云资源 | [ ] | [ ]% | [ ] | [ ] | +| **合计** | **[ ]** | — | **[ ]** | 大写:人民币[ ] | + +### 12.2 支付计划 + +| 期次 | 支付条件 | 比例 | 金额(元) | +|:---|:---|---:|---:| +| 首期款 | 合同生效且乙方提供合法请款材料后[ ]个工作日 | [ ]% | [ ] | +| 进度款 | 完成[数据接入/中期里程碑]并经确认后[ ]个工作日 | [ ]% | [ ] | +| 验收款 | 项目最终验收后[ ]个工作日 | [ ]% | [ ] | +| 质保款/尾款 | 保修期满或[ ] | [ ]% | [ ] | + +### 12.3 发票与账户 + +1. 乙方应向甲方开具合法、有效、符合税法要求的[增值税专用/普通]发票。 +2. 甲方付款至乙方以下账户: + - 户名:[ ] + - 开户行:[ ] + - 账号:[ ] +3. 乙方收款账户变更应提前以加盖公章的书面文件通知甲方。 + +### 12.4 可选的经营成果服务费 + +如双方采用“固定服务费+经营结果服务费”模式,必须另行签署附件,至少明确: + +1. 收益指标的定义、基线、计算公式、数据来源和审核权。 +2. 季节、价格、市场、新店、关店、并购、管理动作等排除因素。 +3. 改善结果与乙方服务的归因方法。 +4. 计费比例、上限、下限、结算周期和争议处理。 + +--- + +## 十三、知识产权 + +### 13.1 乙方原有成果 + +1. 乙方在本合同签署前已拥有,或在项目中形成且具有通用性的软件平台、源代码、算法、模型、组件、工具、数据结构、行业本体方法、通用规则、技术文档及其改进,其知识产权归乙方或相应权利人所有。 +2. 乙方按本合同向甲方授予相应使用许可,但未明确转让的知识产权不因交付、部署或付款而转移。 + +### 13.2 甲方材料与企业知识 + +1. 甲方提供的商标、业务数据、管理制度、内部 SOP、原始文档及甲方原有知识产权仍归甲方或原权利人所有。 +2. 基于甲方数据形成、能够识别甲方经营状况的专属报告、异常清单、任务记录和决策记录,甲方在内部经营管理中享有永久使用权;其中的通用软件、模型与方法不因此转移。 + +### 13.3 定制成果 + +定制成果权属选择以下第[ ]种方式,并在附件逐项列明: + +1. 乙方保留知识产权,授予甲方永久、非独占、不可转让的内部使用权。 +2. 甲方在全额支付相应定制开发费后取得约定定制成果的财产性知识产权,但乙方原有平台、通用组件、开源软件和第三方成果除外。 + +### 13.4 第三方与开源软件 + +系统中包含的开源软件或第三方软件按其各自许可条款使用。乙方应向甲方提供需要告知的重要许可限制。 + +--- + +## 十四、保密义务 + +1. **保密信息**包括但不限于:业务数据、个人信息、财务信息、销售信息、门店经营信息、会员信息、薪酬、价格、供应商、商业计划、系统架构、源代码、算法、安全方案、合同价格及一方标明或依性质应视为保密的其他信息。 +2. 接收方仅可为履行本合同的目的使用保密信息,并仅向确有必要知悉且承担不低于本合同保密义务的员工、顾问或批准的分包商披露。 +3. 未经甲方事先书面同意,乙方不得在宣传片、PPT、官网、公众号、投标、展会、案例库或对外演示中使用甲方名称、商标、门店信息、系统截图或可识别数据。 +4. 经甲方书面同意使用案例时,乙方应按甲方批准的范围进行匿名化、汇总化或模拟化处理,并不得超出批准用途。 +5. 下列信息不属于保密信息:接收方能证明已合法知悉、非因违约已公开、从有权第三方合法获得、或未使用对方保密信息而独立开发的信息。 +6. 因法律、监管、司法或证券交易规则必须披露的,接收方应在法律允许的范围内提前通知披露方,并尽力限制披露范围。 +7. 保密义务自保密信息披露之日起持续[ ]年;商业秘密、个人信息及法律要求持续保护的信息,保密义务持续至其不再属于保护对象为止。 + +--- + +## 十五、声明、保证与合规 + +1. 双方声明其为依法成立并有效存续的主体,有权签署和履行本合同。 +2. 乙方保证在其所知且应尽合理注意的范围内,乙方提供的系统和服务不故意侵害第三方知识产权。 +3. 甲方保证其提供的数据、材料、商标、软件、接口和使用指令不侵害第三方合法权益,并已获得必要授权。 +4. 双方应遵守反商业贿赂、反不正当竞争、网络安全、数据保护、税务、劳动与其他适用法律。 +5. 本系统输出不构成法律、审计、税务、金融、医疗或其他需要特定职业资格的专业意见。 + +--- + +## 十六、违约责任 + +### 16.1 逾期付款 + +1. 甲方逾期支付且经乙方书面催告后仍未支付的,每逾期一日,应按逾期金额的[ ]% 支付违约金,累计不超过逾期金额的[ ]%。 +2. 逾期超过[ ]日的,乙方可在事先书面通知并采取必要的数据安全措施后,暂停尚未付费的服务或终止合同。 + +### 16.2 交付延误 + +因乙方原因导致经双方确认的关键里程碑逾期,且乙方在宽限期[ ]日内仍未纠正的,乙方每逾期一日按对应里程碑价款的[ ]% 支付违约金,累计不超过该里程碑价款的[ ]%。 + +### 16.3 数据与保密违约 + +1. 一方违反数据保护或保密义务的,应立即停止违约、采取补救措施,并赔偿对方因此遭受的实际直接损失及合理维权费用。 +2. 如双方约定固定违约金,金额为人民币[ ]元;如固定违约金不足以弥补损失,违约方仍应对不足部分负责。本款应由法务结合交易金额审核。 + +### 16.4 知识产权侵权 + +1. 如第三方主张乙方提供的系统侵害其知识产权,甲方应及时通知乙方,交由乙方在合理范围内负责处理。 +2. 乙方可选择为甲方取得继续使用的权利、进行不影响主要功能的替换或修改,或对无法继续使用的部分退还未履行期间的相应费用。 +3. 因甲方数据、材料、指定技术、擅自修改、未按文档使用或与非乙方提供的产品组合产生的侵权,乙方不承担责任。 + +--- + +## 十七、责任限制 + +1. 任何一方不对对方的间接损失、可得利益损失、商誉损失、预期节约损失或因第三方主张而导致的扩大损失承担责任,除非适用法律不允许排除。 +2. 除本条第3款情形外,任何一方因本合同承担的累计赔偿责任,以导致责任事件发生前12个月甲方已向乙方支付的相关合同费用为上限;合同履行不足12个月的,以已支付合同费用为上限。 +3. 对于故意或重大过失、人身伤害、欺诈、贿赂、侵犯知识产权、违反保密义务、违法处理个人信息或适用法律不允许限制的责任,不适用前述排除或限额,或由双方另行约定更高上限。 +4. 甲方基于 AI 建议做出重要经营决策前,应进行人工审核与必要的专业验证。因甲方未履行合理审核义务、违反系统警示或超出约定场景使用而造成的损失,乙方不承担相应责任。 + +--- + +## 十八、合同期限、续约、暂停与终止 + +### 18.1 合同期限 + +本合同自双方加盖公章或合同专用章之日起生效,有效期至[ ]年[ ]月[ ]日。合同到期前[ ]日,双方可就续约、许可范围与服务费用进行协商。 + +### 18.2 解除 + +1. 一方严重违反本合同,经对方书面催告后[ ]日内未纠正的,守约方有权解除合同并追究责任。 +2. 一方进入破产、清算、被吊销营业执照、停止经营或明显丧失履约能力的,对方可书面解除合同。 +3. 发生重大数据泄露、严重违法处理个人信息、故意侵害知识产权或重大商业贿赂行为的,守约方可立即解除合同。 + +### 18.3 终止后处理 + +1. 甲方应结清截至终止日已发生的费用。 +2. 乙方应按约定提供数据导出、返还或删除支持。如需额外迁移服务,双方另行约定工作量与费用。 +3. 许可到期或终止后,甲方应停止使用已到期的软件服务;甲方依约已取得永久许可的除外。 +4. 保密、数据保护、知识产权、应付款项、责任限制、争议解决及性质上应当持续有效的条款,不因合同终止而失效。 + +--- + +## 十九、不可抗力与第三方因素 + +1. 因地震、洪水、火灾、疫情、战争、政府行为、大范围通信或云服务中断等不能预见、不能避免且不能克服的事件导致无法履约的,受影响方在法律允许范围内免责。 +2. 受影响方应及时通知对方,提供合理证明,并尽力减轻损失。 +3. 第三方接口、系统、模型、云资源或平台规则变更,可能影响项目实施。双方应协商采取替代方案、调整计划或通过变更单处理。 + +--- + +## 二十、通知与送达 + +1. 双方的合同通知应通过专人递交、快递、挂号信或约定电子邮箱发送至本合同首部载明的地址或邮箱。 +2. 联系信息变更的,变更方应在[ ]个工作日内书面通知对方,否则原联系信息仍视为有效送达地址。 +3. 项目过程中的日常工作确认可通过约定项目管理工具、邮件或会议纪要完成;涉及价款、范围、工期、权利义务或合同变更的,应由授权代表书面确认。 + +--- + +## 二十一、适用法律与争议解决 + +1. 本合同的订立、效力、解释、履行与争议解决适用中华人民共和国大陆地区法律。 +2. 因本合同引起或与本合同有关的争议,双方应首先通过友好协商解决。 +3. 协商不成的,双方选择以下第[ ]种方式: + 1. 向[甲方住所地/乙方住所地/合同签订地]有管辖权的人民法院起诉。 + 2. 提交[ ]仲裁委员会,按其届时有效的仲裁规则仲裁。 +4. 争议期间,除争议事项外,双方应继续履行不受影响的其他条款。 + +--- + +## 二十二、其他 + +1. 本合同、附件、补充协议、经双方授权代表确认的变更单和验收文件,共同构成双方完整约定。 +2. 文件效力冲突时,原则上按以下顺序确定:后签署的补充协议/变更单 → 本合同正文 → 项目范围与交付清单 → 其他附件;但相关文件明确约定其优先级的除外。 +3. 本合同某条款被认定为无效或不可执行的,不影响其他条款的效力。双方应以合法、有效且最接近原商业目的的条款替代。 +4. 一方未立即行使某项权利,不构成对该权利的放弃。 +5. 未经对方书面同意,任何一方不得转让本合同主要权利义务;但因合并、分立、重组或资产转让而承继且不降低履约能力的除外,并应及时通知对方。 +6. 本合同一式[ ]份,甲乙双方各执[ ]份,具有同等法律效力。符合适用法律要求的可靠电子签名与纸质签章具有同等效力。 + +--- + +## 二十三、合同附件 + +下列附件应根据实际交易选择并作为本合同不可分割的组成部分: + +1. **附件一:项目范围与交付清单** +2. **附件二:报价单与支付计划** +3. **附件三:项目实施计划与里程碑** +4. **附件四:验收标准与测试用例** +5. **附件五:数据处理与个人信息保护附件** +6. **附件六:数据源、接口与责任边界清单** +7. **附件七:信息安全要求与安全事件处置流程** +8. **附件八:服务级别协议(SLA)** +9. **附件九:第三方软件、开源软件与 AI 模型服务清单** +10. **附件十:需求变更申请单模板** + +--- + +## 二十四、签署页 + +(以下无正文) + +| 甲方(盖章) | 乙方(盖章) | +|:---|:---| +| 单位名称:[ ] | 单位名称:[ ] | +| 法定代表人/授权代表:[ ] | 法定代表人/授权代表:[ ] | +| 签字:[ ] | 签字:[ ] | +| 日期:[ ]年[ ]月[ ]日 | 日期:[ ]年[ ]月[ ]日 | + +--- + +# 附件一:项目范围与交付清单(简表) + +## 1. 基本范围 + +| 类别 | 约定 | +|:---|:---| +| 项目名称 | 玄谋智脑[ ]专项 | +| 项目目标 | [ ] | +| 覆盖组织 | [总部/区域/门店] | +| 覆盖门店 | [ ]家 | +| 数据周期 | [ ] | +| 经营专项 | [ ] | +| 部署方式 | [SaaS/私有化/混合] | + +## 2. 数据源清单 + +| 数据源 | 系统/提供方 | 接入方式 | 频率 | 责任方 | 备注 | +|:---|:---|:---|:---|:---|:---| +| POS | [ ] | [API/文件/数据库视图] | [ ] | [ ] | [ ] | +| 外卖平台 | [ ] | [ ] | [ ] | [ ] | [ ] | +| 库存/WMS | [ ] | [ ] | [ ] | [ ] | [ ] | +| 财务 | [ ] | [ ] | [ ] | [ ] | [ ] | +| HR/考勤 | [ ] | [ ] | [ ] | [ ] | [ ] | +| 其他 | [ ] | [ ] | [ ] | [ ] | [ ] | + +## 3. 交付功能与成果 + +| 编号 | 功能/交付物 | 标准/定制 | 验收依据 | 计划日期 | +|:---|:---|:---|:---|:---| +| 1 | 数据接入与质量报告 | [ ] | [ ] | [ ] | +| 2 | 业务本体与指标词典 | [ ] | [ ] | [ ] | +| 3 | 经营看板与分析 | [ ] | [ ] | [ ] | +| 4 | 异常预警与归因 | [ ] | [ ] | [ ] | +| 5 | AI 经营建议 | [ ] | [ ] | [ ] | +| 6 | 整改任务与验收 | [ ] | [ ] | [ ] | +| 7 | 专项报告与复制建议 | [ ] | [ ] | [ ] | +| 8 | 培训与文档 | [ ] | [ ] | [ ] | + +--- + +# 附件二:费用与付款确认表 + +| 项目 | 约定 | +|:---|:---| +| 合同含税总额 | 人民币[ ]元(大写:[ ]) | +| 软件许可期 | [ ] | +| 首期款 | [ ]% / 人民币[ ]元 | +| 进度款 | [ ]% / 人民币[ ]元 | +| 验收款 | [ ]% / 人民币[ ]元 | +| 尾款 | [ ]% / 人民币[ ]元 | +| 年度运维/续订费 | 人民币[ ]元/年 | +| 差旅费 | [包含/实报实销/不发生] | +| 第三方费用 | [包含/甲方承担/按用量结算] | + +--- + +# 附件三:上线前必填商务与法务清单 + +> 以下项目不宜保留空白后直接签署。 + +- [ ] 甲乙双方工商主体、签署权限和送达信息 +- [ ] SaaS、私有化或混合部署方式 +- [ ] 许可用户、门店、关联公司和使用期限 +- [ ] 数据源、数据类型、数据周期和接入方式 +- [ ] 是否处理个人信息、敏感个人信息或重要数据 +- [ ] 是否调用第三方 AI 模型,数据是否离开甲方环境 +- [ ] 项目范围、排除项、里程碑和变更流程 +- [ ] 验收指标、基线、数据口径和外部排除因素 +- [ ] 费用、税率、付款条件、第三方费用与差旅费 +- [ ] 知识产权与定制成果权属 +- [ ] 数据安全事件通知时限、数据返还和删除期限 +- [ ] SLA、保修期、服务时间和赔偿机制 +- [ ] 违约金、责任上限、争议解决地点与方式 +- [ ] 案例宣传、商标使用和匿名数据使用是否授权 +- [ ] 双方法务、数据保护负责人和信息安全负责人已审核 diff --git a/玄谋智脑_老板版震撼宣传片剧本.md b/玄谋智脑_老板版震撼宣传片剧本.md new file mode 100644 index 0000000..d3c65a9 --- /dev/null +++ b/玄谋智脑_老板版震撼宣传片剧本.md @@ -0,0 +1,429 @@ +# 《看不见的利润》——玄谋智脑老板版宣传片剧本 + +> **品牌**:玄谋智脑 +> **副标题**:连锁企业行业数字本体与 AI 经营智脑 +> **目标观众**:连锁企业老板、董事长、总经理及投资决策者 +> **建议时长**:2 分 30 秒—2 分 45 秒 +> **风格**:冷峻、克制、高级,具有商业电影感和决策压迫感 +> **情绪曲线**:繁荣表象 → 利润危机 → 管理失控 → 看清问题 → 掌控全局 → 长期复利 + +## 一、核心创意 + +影片不从介绍产品功能开始,而是先向老板提出一个有压迫感的问题: + +> **你的企业可能每天都在增长,也可能每天都在漏掉利润。** + +用“营收上升但利润流失”形成第一次冲击,用“门店越多、管理越容易失控”形成第二次冲击,再让“玄谋智脑”以企业经营全局掌控者的形象出现。 + +影片的核心不是证明 AI 多么先进,而是让老板相信: + +> **玄谋智脑能让经营问题更早被发现、让整改真正落地,并把每一次改善复制到更多门店。** + +--- + +## 二、分镜剧本 + +### 0:00—0:12|老板以为企业正在增长 + +#### 画面 + +- 深夜城市航拍。 +- 一家家连锁门店在城市中依次亮起。 +- 地图上的门店节点不断增加。 +- 快速切换新店开业、顾客排队、外卖订单响起、收银数字增长、仓库繁忙运转。 +- 总部屏幕上的营收曲线持续上升。 + +#### 旁白 + +> 门店越来越多。 +> 订单越来越多。 +> 营收,也在增长。 + +#### 屏幕文字 + +> **企业正在增长。** + +画面停顿半秒,音乐突然切断。 + +文字瞬间碎裂,黑底上出现: + +> # 但利润呢? + +#### 声音 + +- 低沉心跳声逐渐增强。 +- 叠加订单提示音、收银声和货币流动声。 +- “但利润呢”出现时所有声音骤停。 + +--- + +### 0:12—0:30|看得见营收,看不见利润漏洞 + +#### 画面 + +- 刚才繁荣的画面迅速变暗。 +- 营收数字继续上升,利润数字却开始下降。 +- 红色资金流从不同经营环节向外流失。 +- 每个流失节点依次标记:低毛利 SKU、无效促销、人员闲置、高损耗库存、异常采购价格、持续亏损门店。 + +#### 旁白 + +> 订单增长了,促销却可能正在消耗利润。 +> 营收靠前的门店,可能没有创造相应的现金。 +> 畅销商品,可能只是制造了繁忙。 +> 每一家门店里,都可能存在老板看不见的利润漏洞。 + +#### 屏幕快闪文字 + +```text +低毛利 +高损耗 +无效工时 +库存占用 +促销替代 +门店亏损 +``` + +最后定格: + +> **不是企业没有数据。** +> **而是数据没有变成决策。** + +--- + +### 0:30—0:45|传统管理方式已经到达极限 + +#### 画面 + +- 总部会议室里,老板面对多块屏幕与大量报表。 +- POS、财务、外卖、库存、人力、Excel 和工作群消息不断涌现。 +- 不同报表上的数字互相矛盾。 +- 画面逐渐加速,数据、消息和预警几乎淹没老板。 + +#### 旁白 + +> POS、财务、库存、会员、外卖、人力…… +> 数据散落在不同系统里。 +> 开会先核对数字,出现问题再追问原因。 +> 当企业从 30 家店走向 300 家店,依靠人盯、表管、群里催,已经无法掌控全局。 + +#### 屏幕大字 + +> # 规模扩大,不应该意味着管理失控。 + +--- + +### 0:45—1:00|玄谋智脑登场 + +#### 画面 + +- 黑暗中出现一道蓝色光线。 +- 散落的数据节点被逐一连接。 +- “门店—商品—订单—会员—员工—供应商—库存—利润”形成立体的企业经营图谱。 +- 图谱从混乱逐渐转为清晰、稳定、可运行的经营系统。 +- 品牌名称缓慢出现。 + +#### 旁白 + +> 玄谋智脑。 +> 面向连锁企业的行业数字本体与 AI 经营智脑。 +> 它不替换企业现有系统,也不制造更多报表。 +> 它将散落的数据、行业知识和管理经验,连接成一套持续进化的经营决策能力。 + +#### 屏幕文字 + +```text +看清现在 +发现问题 +推动整改 +掌控未来 +``` + +#### 声音 + +- 音乐从压迫感转为低频、沉稳、具有力量的科技旋律。 +- 品牌出现时加入低频冲击音。 + +--- + +### 1:00—1:20|从异常到利润改善 + +#### 画面 + +- 企业经营图谱中出现一个红色异常点。 +- 镜头迅速向下穿透:企业 → 区域 → 门店 A-017 → 晚餐时段 → 人员排班。 +- 系统形成完整闭环链路。 + +```text +发现异常 +→ 穿透根因 +→ 测算影响 +→ 生成方案 +→ 推动执行 +→ 验证结果 +``` + +#### 旁白 + +> 玄谋智脑持续扫描企业经营状态。 +> 发现异常后,自动穿透到区域、门店、SKU、班次和订单。 +> 测算问题影响了多少利润,给出可以执行的整改方案。 +> 明确责任人和完成期限,并验证利润是否真正改善。 + +#### 屏幕大字 + +> **发现问题,不是终点。** +> **改善结果,才是。** + +--- + +### 1:20—1:35|案例一:SKU 利润优化 + +#### 画面 + +- 数百个 SKU 在数据空间中排列。 +- 低销量、低毛利、高损耗、原料重复、价格带重叠的商品逐步变红。 +- 低效 SKU 被重新组合,库存占用下降,利润曲线上升。 + +#### 旁白 + +> 某匿名连锁品牌,拥有数百个在售 SKU。 +> 玄谋智脑发现:部分商品只贡献极少销售额,却持续占用库存,增加报损和采购复杂度。 +> 下架低效 SKU,优化定价与配方,重构共享原料体系。 + +#### 屏幕模拟结果 + +```text +释放库存资金:约 80 万元 +年度减少报损:约 35 万元 +综合毛利率:提升约 0.6 个百分点 +``` + +> **角标**:匿名复合案例|模拟测算 + +--- + +### 1:35—1:50|案例二:人员排班 + +#### 画面 + +- 门店客流曲线与员工工时曲线同时出现。 +- 上午员工过剩区域变红;晚高峰人员不足区域变红。 +- AI 重新调整班次后,工时曲线与客流曲线逐渐匹配。 + +#### 旁白 + +> 某门店营收排名靠前,人效却位于区域末端。 +> 玄谋智脑按半小时预测客流和工作量,重新匹配正式工、小时工与备餐任务。 +> 不降低服务质量,减少无效工时。 + +#### 屏幕模拟结果 + +```text +单店每月节约:约 1.8 万元 +复制至 60 家门店 +年度改善空间:约 1,296 万元 +``` + +> **角标**:匿名复合案例|模拟测算 + +--- + +### 1:50—2:04|案例三:促销与关店决策 + +#### 画面 A:促销利润 + +- 订单量显示“+23%”。 +- 随后逐层扣除优惠补贴、平台佣金、低毛利商品、原价订单替代和新增人工。 +- 最后活动贡献利润从正数变为负数。 + +#### 旁白 A + +> 订单增长 23% 的活动,扣除补贴、佣金和订单替代后,贡献利润可能为负。 +> 玄谋智脑不只问活动带来了多少订单,而是问——每投入一元营销费用,最终增加了多少利润。 + +#### 画面 B:门店止损 + +- 一家长期亏损门店出现。 +- 四条决策路径同时展开:继续经营、投入整改、缩小面积、关停并迁移会员。 +- 每条路径后方出现未来 12 个月的利润、现金流与风险测算。 + +#### 旁白 B + +> 对于低效门店,它同时推演整改、缩店、迁址和关停方案。 +> 让一个困难的经验判断,变成有数据依据、有止损线、有退出预案的经营决策。 + +> **角标**:匿名复合案例|模拟测算 + +--- + +### 2:04—2:18|老板、总部、区域、店长共用一个经营闭环 + +#### 画面 + +四层组织结构依次亮起: + +```text +老板 +↓ +总部 +↓ +区域 +↓ +店长 +``` + +每一层出现自己的决策界面: + +- 老板:利润、风险、未来预测。 +- 总部:区域对标、资源配置。 +- 区域:异常门店、整改验收。 +- 店长:今日目标、执行动作。 + +#### 旁白 + +> 老板看结果。 +> 总部找原因。 +> 区域推动整改。 +> 店长执行动作。 +> 所有人使用同一套经营语言,所有动作回到同一个利润闭环。 + +#### 屏幕文字 + +> **一个企业** +> **一套经营认知** +> **一个执行闭环** + +--- + +### 2:18—2:30|从单店改善到企业长期复利 + +#### 画面 + +- 企业经营图谱不断扩大。 +- 30 家、100 家、300 家门店依次点亮。 +- 优秀门店的经营经验化为蓝色光流,快速复制到其他门店。 +- 依次出现:风险提前预警、经营趋势预测、现金流推演、数据资产沉淀、银行融资数据支持、企业最佳实践库。 + +#### 旁白 + +> 当每一次经营判断、整改动作和验证结果都被沉淀,企业获得的不再是一套软件。 +> 而是一项不依赖少数能人、能够支撑持续扩张、持续进化的经营能力。 + +--- + +### 2:30—2:42|结尾行动号召 + +#### 画面 + +- 画面切黑,停顿半秒。 +- 一条蓝色光线横向展开。 +- 主标题逐字出现。 + +> # 看清企业现在 +> # 掌控经营未来 + +随后品牌出现: + +> # 玄谋智脑 + +#### 旁白 + +> 不必从建设一套庞大的系统开始。 +> 先用八周,找到第一批可以验证的利润改善机会。 + +#### 最终屏幕 + +> **玄谋智脑** +> 让问题更早被发现 +> 让整改真正落地 +> 让每一次改善复制到更多门店 + +底部小字: + +> 行业数字本体与 AI 经营智脑 + +#### 声音 + +- 旁白语速放慢。 +- “八周”和“利润改善”重读。 +- 品牌出现时,音乐形成一次强烈、干净的收束。 + +--- + +## 三、开场钩子备选 + +### 首选 + +> **老板最危险的,不是看见亏损,而是看见营收,却没有看见利润正在消失。** + +### 备选一 + +> 你的企业,可能每天都在增长,也可能每天都在漏掉利润。 + +### 备选二 + +> 从 30 家店到 300 家店,最大的风险不是开得不够快,而是已经看不清每一家店。 + +--- + +## 四、配音要求 + +- **声线**:建议男声,40—50 岁质感,低沉、稳定、具有决策权威感。 +- **表达**:克制、有力,避免传统广告腔和过度煽情。 +- **开场**:语速较慢,使用停顿制造压力。 +- **危机段**:语速逐渐加快,叠加数据涌现的窒息感。 +- **品牌登场**:声音下沉,“玄谋智脑”逐字清晰发音。 +- **案例段**:加快节奏,强调“发现—动作—结果”。 +- **结尾**:再次放慢,重读“八周”、“可以验证”和“利润改善”。 + +--- + +## 五、视觉与音乐方向 + +### 视觉色彩 + +- 主背景:深黑、炭灰。 +- 品牌主色:冷蓝色光线。 +- 风险与利润流失:暗红色。 +- 经营改善:由红转蓝、由混乱转清晰。 + +### 画面风格 + +- 高端商业电影质感,避免廉价科技光效。 +- 数据图谱与企业经营场景结合,不制作密集仪表盘界面。 +- 字体简洁、粗壮,关键句使用黑底白字或黑底蓝字。 +- 案例不使用真实客户形象,可使用概念化门店、匿名编号与抽象数据。 + +### 音乐节奏 + +1. **0:00—0:12**:心跳与低频,表面繁荣,暗含不安。 +2. **0:12—0:45**:低音增强,金属与噪音逐渐累积,形成管理压力。 +3. **0:45—1:20**:品牌登场,出现有秩序的低频节拍。 +4. **1:20—2:04**:案例快节奏推进,重点数据出现时加入短促冲击音。 +5. **2:04—2:30**:音乐开始变得开阔,表现组织协同与规模扩张。 +6. **2:30—2:42**:减少音乐层次,将注意力交给旁白和品牌。 + +--- + +## 六、数据安全与宣传合规要求 + +1. 不展示任何真实客户名称、真实门店名称或品牌标识。 +2. 不使用生产系统截图、真实报表、订单明细或数据库结构。 +3. 不展示会员姓名、手机号、身份信息、薪酬或个人工号。 +4. 案例中的企业、门店和人员统一使用匿名编号。 +5. 所有金额与改善数据在画面中标注:**“匿名复合案例|模拟测算”**。 +6. 不使用“保证提升”、“必然增利”、“自动替代决策”等过度承诺。 +7. AI 的角色表达为“发现、归因、测算、建议和跟踪”,重要经营决策仍由管理者审批。 + +--- + +## 七、制作原则 + +- 前 3 秒必须出现利润危机钩子。 +- 前 30 秒完成“繁荣表象—利润危机—管理失控”的情绪推进。 +- 不堆砌技术名词,所有能力都落到利润、现金流、风险和执行结果。 +- 不将影片制作成功能界面录屏,应以企业经营决策故事为主线。 +- 案例不只呈现问题,必须呈现“发现—分析—动作—验证”。 +- 画面文字保持极简,每个镜头只传达一个重点。 +- 结尾不使用泛化的“谢谢观看”,而是推动老板接受“八周利润专项验证”。 diff --git a/玄谋智脑_连锁企业老板决策版.pptx b/玄谋智脑_连锁企业老板决策版.pptx new file mode 100644 index 0000000000000000000000000000000000000000..b045a47f296fcaf27bb00c8c5a85a5b0649e6453 GIT binary patch literal 84733 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%0Dr}Rd)!*NW=&R9Q_*aZb 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 j5d8S^2u+X|@uXpU7?=tK7#RAWy(ad?ica

fiTJ)pXSKW7ZEL$dAF9tzEt)q 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 Xw&YuI%U%Y<8+_D*nCFB5Civ<9Kd5mp literal 0 HcmV?d00001 diff --git a/玄谋智脑_连锁企业老板决策版_中英双语完整版.pptx.inspect.ndjson b/玄谋智脑_连锁企业老板决策版_中英双语完整版.pptx.inspect.ndjson new file mode 100644 index 0000000..0bb275e --- /dev/null +++ b/玄谋智脑_连锁企业老板决策版_中英双语完整版.pptx.inspect.ndjson @@ -0,0 +1,456 @@ +{"kind":"deck","id":"pr/grdqj0","name":"Deck"} +{"kind":"layout","layoutId":"/ppt/slideMasters/slideMaster1.xml","name":"Master","type":"master"} +{"kind":"layout","layoutId":"/ppt/slideLayouts/slideLayout1.xml","name":"Title Slide","type":"title"} +{"kind":"slide","id":"sl/y90nupkv","slide":1,"title":"玄谋智脑 / Xuanmou Intelligence","textShapes":4} +{"kind":"textbox","id":"sh/ts7md4r2","slide":1,"text":"玄谋智脑 / Xuanmou Intelligence","textPreview":"玄谋智脑 / Xuanmou Intelligence","textChars":27,"textLines":1,"bbox":[42,34,360,36]} +{"kind":"textbox","id":"sh/547294r6","slide":1,"text":"看清利润,才谈得上管住门店\nSee the profit clearly. Run every store with confidence.","textPreview":"看清利润,才谈得上管住门店 | See the profit clearly. Run every store with confidence.","textChars":70,"textLines":2,"bbox":[42,180,990,180]} +{"kind":"textbox","id":"sh/k3yl0zql","slide":1,"text":"面向连锁企业的行业数字本体与 AI 经营智脑 A decision intelligence layer for multi-site operators","textPreview":"面向连锁企业的行业数字本体与 AI 经营智脑 A decision intelligence layer for multi-site operators","textChars":78,"textLines":1,"bbox":[42,402,870,48]} +{"kind":"shape","id":"sh/7qp4be9c","slide":1,"bbox":[42,615,1196,0]} +{"kind":"textbox","id":"sh/65g3298r","slide":1,"text":"对外保密版 · 案例与金额均为匿名示意\nConfidential external edition · Cases and figures are anonymized illustrations","textPreview":"对外保密版 · 案例与金额均为匿名示意 | Confidential external edition · Cases and figures are anonymized illustrations","textChars":98,"textLines":2,"bbox":[42,640,620,24]} +{"kind":"notes","id":"nt/y90nupkv","slide":1,"text":"[Sources]\n用户提供文档:《玄谋智脑建设蓝图_老板决策版.md》。案例、指标与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\n中文内容来自用户提供的老板决策版;英文为商务意译。案例与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\nAll visible Chinese content is based on the user-supplied owner decision deck. English is a concise business translation. Cases and figures remain anonymous composite examples or illustrative estimates."} +{"kind":"slide","id":"sl/hwbqtkby","slide":2,"title":"玄谋智脑 · 连锁企业经营决策","textShapes":13} +{"kind":"textbox","id":"sh/cnupgny5","slide":2,"text":"玄谋智脑 · 连锁企业经营决策\nXuanmou Intelligence · Multi-site Operations","textPreview":"玄谋智脑 · 连锁企业经营决策 | Xuanmou Intelligence · Multi-site Operations","textChars":60,"textLines":2,"bbox":[42,28,820,24]} +{"kind":"textbox","id":"sh/9072xkry","slide":2,"text":"老板最终要判断三件事\nThree decisions matter most to the owner.","textPreview":"老板最终要判断三件事 | Three decisions matter most to the owner.","textChars":52,"textLines":2,"bbox":[42,62,1160,70]} +{"kind":"shape","id":"sh/ozy1ofad","slide":2,"bbox":[42,139,1196,0]} +{"kind":"textbox","id":"sh/b29kza94","slide":2,"text":"02","textPreview":"02","textChars":2,"textLines":1,"bbox":[1182,672,56,18]} +{"kind":"textbox","id":"sh/a10jqpsj","slide":2,"text":"01","textPreview":"01","textChars":2,"textLines":1,"bbox":[42,190,80,48]} +{"kind":"shape","id":"sh/x4r21kru","slide":2,"bbox":[42,248,350,0]} +{"kind":"textbox","id":"sh/w3i1sfa9","slide":2,"text":"哪里在亏钱? / Where are we losing money?","textPreview":"哪里在亏钱? / Where are we losing money?","textChars":35,"textLines":1,"bbox":[42,278,350,52]} +{"kind":"textbox","id":"sh/r65knqtk","slide":2,"text":"门店、SKU、促销、库存、人力中,哪些利润漏洞最应该先处理?\nWhich profit leaks across stores, SKUs, promotions, inventory and labor should be fixed first?","textPreview":"门店、SKU、促销、库存、人力中,哪些利润漏洞最应该先处理? | Which profit leaks across stores, SKUs, promotions, inventory and labor should be fixed first?","textChars":125,"textLines":2,"bbox":[42,352,350,140]} +{"kind":"textbox","id":"sh/q5wjelsz","slide":2,"text":"02","textPreview":"02","textChars":2,"textLines":1,"bbox":[443,190,80,48]} +{"kind":"shape","id":"sh/ove9o7yd","slide":2,"bbox":[443,248,350,0]} +{"kind":"textbox","id":"sh/9wnqhczy","slide":2,"text":"哪些动作能增利? / Which actions will improve profit?","textPreview":"哪些动作能增利? / Which actions will improve profit?","textChars":45,"textLines":1,"bbox":[443,278,350,52]} +{"kind":"textbox","id":"sh/mtwrmxg7","slide":2,"text":"不只找问题,还要测算影响、给出方案、跟踪执行并验证结果。\nQuantify the impact, recommend actions, track execution and verify the outcome.","textPreview":"不只找问题,还要测算影响、给出方案、跟踪执行并验证结果。 | Quantify the impact, recommend actions, track execution and verify the outcome.","textChars":108,"textLines":2,"bbox":[443,352,350,140]} +{"kind":"textbox","id":"sh/nu58f2hs","slide":2,"text":"03","textPreview":"03","textChars":2,"textLines":1,"bbox":[844,190,80,48]} +{"kind":"shape","id":"sh/wjy9sry9","slide":2,"bbox":[844,248,350,0]} +{"kind":"textbox","id":"sh/xk7qlczu","slide":2,"text":"扩张后还能管住吗? / Can we stay in control as we scale?","textPreview":"扩张后还能管住吗? / Can we stay in control as we scale?","textChars":47,"textLines":1,"bbox":[844,278,350,52]} +{"kind":"textbox","id":"sh/ahwrqhgj","slide":2,"text":"从 30 家到 300 家门店,有效经验能否被低成本、高质量地复制?\nCan proven practices be replicated from 30 to 300 stores, consistently and at low cost?","textPreview":"从 30 家到 300 家门店,有效经验能否被低成本、高质量地复制? | Can proven practices be replicated from 30 to 300 stores, consistently and at low cost?","textChars":122,"textLines":2,"bbox":[844,352,350,140]} +{"kind":"textbox","id":"sh/bip8jmho","slide":2,"text":"不是看更多报表,而是将数据转化为可验证的经营改善。\nThe goal is not more reports, but measurable operating improvement.","textPreview":"不是看更多报表,而是将数据转化为可验证的经营改善。 | The goal is not more reports, but measurable operating improvement.","textChars":93,"textLines":2,"bbox":[42,590,1100,42]} +{"kind":"notes","id":"nt/hwbqtkby","slide":2,"text":"[Sources]\n用户提供文档:《玄谋智脑建设蓝图_老板决策版.md》。案例、指标与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\n中文内容来自用户提供的老板决策版;英文为商务意译。案例与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\nAll visible Chinese content is based on the user-supplied owner decision deck. English is a concise business translation. Cases and figures remain anonymous composite examples or illustrative estimates."} +{"kind":"slide","id":"sl/ofy9wn61","slide":3,"title":"玄谋智脑 · 连锁企业经营决策","textShapes":15} +{"kind":"textbox","id":"sh/batgjixs","slide":3,"text":"玄谋智脑 · 连锁企业经营决策\nXuanmou Intelligence · Multi-site Operations","textPreview":"玄谋智脑 · 连锁企业经营决策 | Xuanmou Intelligence · Multi-site Operations","textChars":60,"textLines":2,"bbox":[42,28,820,24]} +{"kind":"textbox","id":"sh/cza94vmx","slide":3,"text":"数据很多,利润去向仍然说不清\nPlenty of data, but no clear view of where profit goes.","textPreview":"数据很多,利润去向仍然说不清 | Plenty of data, but no clear view of where profit goes.","textChars":70,"textLines":2,"bbox":[42,62,1160,70]} +{"kind":"shape","id":"sh/d0jax03i","slide":3,"bbox":[42,139,1196,0]} +{"kind":"textbox","id":"sh/298ryl4v","slide":3,"text":"03","textPreview":"03","textChars":2,"textLines":1,"bbox":[1182,672,56,18]} +{"kind":"shape","id":"sh/3ah8rqlg","slide":3,"bbox":[42,188,360,160]} +{"kind":"shape","id":"sh/obq90bml","slide":3,"bbox":[42,188,7,160]} +{"kind":"textbox","id":"sh/pcjqtg36","slide":3,"text":"营收 / Revenue","textPreview":"营收 / Revenue","textChars":12,"textLines":1,"bbox":[66,210,314,40]} +{"kind":"textbox","id":"sh/m5cra54z","slide":3,"text":"营收增长,利润为何没有同步?\nWhy is profit not keeping pace with revenue?","textPreview":"营收增长,利润为何没有同步? | Why is profit not keeping pace with revenue?","textChars":59,"textLines":2,"bbox":[66,262,314,68]} +{"kind":"shape","id":"sh/n6ls3alk","slide":3,"bbox":[443,188,360,160]} +{"kind":"shape","id":"sh/n2l4fq98","slide":3,"bbox":[443,188,7,160]} +{"kind":"textbox","id":"sh/m1c3mlsn","slide":3,"text":"门店 / Stores","textPreview":"门店 / Stores","textChars":11,"textLines":1,"bbox":[467,210,314,40]} +{"kind":"textbox","id":"sh/943mhgre","slide":3,"text":"哪些门店看似赚钱,实际占用资金?\nWhich stores appear profitable but tie up cash?","textPreview":"哪些门店看似赚钱,实际占用资金? | Which stores appear profitable but tie up cash?","textChars":64,"textLines":2,"bbox":[467,262,314,68]} +{"kind":"shape","id":"sh/83ulovat","slide":3,"bbox":[844,188,360,160]} +{"kind":"shape","id":"sh/v6l4jq94","slide":3,"bbox":[844,188,7,160]} +{"kind":"textbox","id":"sh/a5c3ql8z","slide":3,"text":"促销 / Promotions","textPreview":"促销 / Promotions","textChars":15,"textLines":1,"bbox":[868,210,314,40]} +{"kind":"textbox","id":"sh/x8nml0ra","slide":3,"text":"哪些活动增加订单,却消耗利润?\nWhich campaigns add orders but destroy profit?","textPreview":"哪些活动增加订单,却消耗利润? | Which campaigns add orders but destroy profit?","textChars":62,"textLines":2,"bbox":[868,262,314,68]} +{"kind":"shape","id":"sh/w7ulsvqp","slide":3,"bbox":[42,390,360,160]} +{"kind":"shape","id":"sh/ja54na9g","slide":3,"bbox":[42,390,7,160]} +{"kind":"textbox","id":"sh/i9w3u58v","slide":3,"text":"SKU","textPreview":"SKU","textChars":3,"textLines":1,"bbox":[66,412,314,40]} +{"kind":"textbox","id":"sh/e10f2twf","slide":3,"text":"哪些商品销量不低,却毛利不足?\nWhich products sell well but contribute too little margin?","textPreview":"哪些商品销量不低,却毛利不足? | Which products sell well but contribute too little margin?","textChars":74,"textLines":2,"bbox":[66,464,314,68]} +{"kind":"shape","id":"sh/f29gbyx0","slide":3,"bbox":[443,390,360,160]} +{"kind":"shape","id":"sh/03ix43e5","slide":3,"bbox":[443,390,7,160]} +{"kind":"textbox","id":"sh/14ryd8fq","slide":3,"text":"人力 / Labor","textPreview":"人力 / Labor","textChars":10,"textLines":1,"bbox":[467,412,314,40]} +{"kind":"textbox","id":"sh/6d0fytg3","slide":3,"text":"哪些时段人员闲置,高峰又缺人?\nWhen are teams idle, yet understaffed at peak times?","textPreview":"哪些时段人员闲置,高峰又缺人? | When are teams idle, yet understaffed at peak times?","textChars":68,"textLines":2,"bbox":[467,464,314,68]} +{"kind":"shape","id":"sh/re9g7yxo","slide":3,"bbox":[844,390,360,160]} +{"kind":"shape","id":"sh/sfix03y9","slide":3,"bbox":[844,390,7,160]} +{"kind":"textbox","id":"sh/tgry9ofu","slide":3,"text":"止损 / Loss control","textPreview":"止损 / Loss control","textChars":17,"textLines":1,"bbox":[868,412,314,40]} +{"kind":"textbox","id":"sh/a9kfadwn","slide":3,"text":"哪些门店应整改、迁址、缩编或关停?\nWhich stores should be fixed, relocated, resized or closed?","textPreview":"哪些门店应整改、迁址、缩编或关停? | Which stores should be fixed, relocated, resized or closed?","textChars":77,"textLines":2,"bbox":[868,464,314,68]} +{"kind":"notes","id":"nt/ofy9wn61","slide":3,"text":"[Sources]\n用户提供文档:《玄谋智脑建设蓝图_老板决策版.md》。案例、指标与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\n中文内容来自用户提供的老板决策版;英文为商务意译。案例与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\nAll visible Chinese content is based on the user-supplied owner decision deck. English is a concise business translation. Cases and figures remain anonymous composite examples or illustrative estimates."} +{"kind":"slide","id":"sl/jyx0ra1s","slide":4,"title":"玄谋智脑 · 连锁企业经营决策","textShapes":22} +{"kind":"textbox","id":"sh/knex8j21","slide":4,"text":"玄谋智脑 · 连锁企业经营决策\nXuanmou Intelligence · Multi-site Operations","textPreview":"玄谋智脑 · 连锁企业经营决策 | Xuanmou Intelligence · Multi-site Operations","textChars":60,"textLines":2,"bbox":[42,28,820,24]} +{"kind":"textbox","id":"sh/1cj2d8b6","slide":4,"text":"把异常处理成有结果的经营行动\nTurn exceptions into actions with measurable outcomes.","textPreview":"把异常处理成有结果的经营行动 | Turn exceptions into actions with measurable outcomes.","textChars":69,"textLines":2,"bbox":[42,62,1160,70]} +{"kind":"shape","id":"sh/0ba143al","slide":4,"bbox":[42,139,1196,0]} +{"kind":"textbox","id":"sh/rm1k7yt4","slide":4,"text":"04","textPreview":"04","textChars":2,"textLines":1,"bbox":[1182,672,56,18]} +{"kind":"shape","id":"sh/ql8jytsj","slide":4,"bbox":[82,350,1090,0]} +{"kind":"shape","id":"sh/doj29oba","slide":4,"bbox":[54,332,36,36]} +{"kind":"textbox","id":"sh/sna103ap","slide":4,"text":"1","textPreview":"1","textChars":1,"textLines":1,"bbox":[54,337,36,24]} +{"kind":"textbox","id":"sh/3ihk3et8","slide":4,"text":"发现 / Detect","textPreview":"发现 / Detect","textChars":11,"textLines":1,"bbox":[44,235,150,40]} +{"kind":"textbox","id":"sh/ih8ju9sn","slide":4,"text":"利润异常\nProfit exception","textPreview":"利润异常 | Profit exception","textChars":21,"textLines":2,"bbox":[44,400,164,78]} +{"kind":"shape","id":"sh/kbm987y5","slide":4,"bbox":[253,332,36,36]} +{"kind":"textbox","id":"sh/5cva1cfq","slide":4,"text":"2","textPreview":"2","textChars":1,"textLines":1,"bbox":[253,337,36,24]} +{"kind":"textbox","id":"sh/i94r6xgz","slide":4,"text":"穿透 / Drill down","textPreview":"穿透 / Drill down","textChars":15,"textLines":1,"bbox":[243,235,150,40]} +{"kind":"textbox","id":"sh/jadsz2xk","slide":4,"text":"区域·门店·SKU·班次\nRegion · Store · SKU · Shift","textPreview":"区域·门店·SKU·班次 | Region · Store · SKU · Shift","textChars":41,"textLines":2,"bbox":[243,400,164,78]} +{"kind":"shape","id":"sh/w72947yt","slide":4,"bbox":[452,332,36,36]} +{"kind":"textbox","id":"sh/x8vaxsfe","slide":4,"text":"3","textPreview":"3","textChars":1,"textLines":1,"bbox":[452,337,36,24]} +{"kind":"textbox","id":"sh/a5kr2xg3","slide":4,"text":"测算 / Quantify","textPreview":"测算 / Quantify","textChars":13,"textLines":1,"bbox":[442,235,150,40]} +{"kind":"textbox","id":"sh/v6tsv2xo","slide":4,"text":"影响金额与优先级\nFinancial impact and priority","textPreview":"影响金额与优先级 | Financial impact and priority","textChars":38,"textLines":2,"bbox":[442,400,164,78]} +{"kind":"shape","id":"sh/g36tgryd","slide":4,"bbox":[651,332,36,36]} +{"kind":"textbox","id":"sh/h4fa9wfy","slide":4,"text":"4","textPreview":"4","textChars":1,"textLines":1,"bbox":[651,337,36,24]} +{"kind":"textbox","id":"sh/p0batw72","slide":4,"text":"整改 / Act","textPreview":"整改 / Act","textChars":8,"textLines":1,"bbox":[641,235,150,40]} +{"kind":"textbox","id":"sh/oz29krqh","slide":4,"text":"动作·责任人·期限\nAction · Owner · Deadline","textPreview":"动作·责任人·期限 | Action · Owner · Deadline","textChars":35,"textLines":2,"bbox":[641,400,164,78]} +{"kind":"shape","id":"sh/3ytsrmpw","slide":4,"bbox":[850,332,36,36]} +{"kind":"textbox","id":"sh/2xkrih8b","slide":4,"text":"5","textPreview":"5","textChars":1,"textLines":1,"bbox":[850,337,36,24]} +{"kind":"textbox","id":"sh/1wbapc7q","slide":4,"text":"验证 / Verify","textPreview":"验证 / Verify","textChars":11,"textLines":1,"bbox":[840,235,150,40]} +{"kind":"textbox","id":"sh/gv29g7q5","slide":4,"text":"利润是否真正改善\nConfirm real profit improvement","textPreview":"利润是否真正改善 | Confirm real profit improvement","textChars":40,"textLines":2,"bbox":[840,400,164,78]} +{"kind":"shape","id":"sh/fu9sn2p0","slide":4,"bbox":[1049,332,36,36]} +{"kind":"textbox","id":"sh/et0reh8f","slide":4,"text":"6","textPreview":"6","textChars":1,"textLines":1,"bbox":[1049,337,36,24]} +{"kind":"textbox","id":"sh/tsrqlc7u","slide":4,"text":"沉淀 / Codify","textPreview":"沉淀 / Codify","textChars":11,"textLines":1,"bbox":[1039,235,150,40]} +{"kind":"textbox","id":"sh/sri9s7q9","slide":4,"text":"更新企业最佳实践\nUpdate company best practices","textPreview":"更新企业最佳实践 | Update company best practices","textChars":38,"textLines":2,"bbox":[1039,400,164,78]} +{"kind":"shape","id":"sh/ilwf69kv","slide":4,"bbox":[42,552,1196,58]} +{"kind":"textbox","id":"sh/jm5gze1g","slide":4,"text":"关键不是“发现问题”,而是“把问题变成可复制的利润改善”。\nThe value lies in turning issues into repeatable profit improvement.","textPreview":"关键不是“发现问题”,而是“把问题变成可复制的利润改善”。 | The value lies in turning issues into repeatable profit improvement.","textChars":98,"textLines":2,"bbox":[66,568,1148,30]} +{"kind":"notes","id":"nt/jyx0ra1s","slide":4,"text":"[Sources]\n用户提供文档:《玄谋智脑建设蓝图_老板决策版.md》。案例、指标与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\n中文内容来自用户提供的老板决策版;英文为商务意译。案例与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\nAll visible Chinese content is based on the user-supplied owner decision deck. English is a concise business translation. Cases and figures remain anonymous composite examples or illustrative estimates."} +{"kind":"slide","id":"sl/i107q5of","slide":5,"title":"匿名复合案例 · SKU 组合决策 Anonymous composite case · SKU portfolio","textShapes":15} +{"kind":"textbox","id":"sh/fe94nm1w","slide":5,"text":"匿名复合案例 · SKU 组合决策 Anonymous composite case · SKU portfolio","textPreview":"匿名复合案例 · SKU 组合决策 Anonymous composite case · SKU portfolio","textChars":59,"textLines":1,"bbox":[42,28,820,24]} +{"kind":"textbox","id":"sh/dgbulwnm","slide":5,"text":"SKU 过多,往往增加的是复杂度和成本\nMore SKUs often mean more cost, not more choice.","textPreview":"SKU 过多,往往增加的是复杂度和成本 | More SKUs often mean more cost, not more choice.","textChars":68,"textLines":2,"bbox":[42,62,1160,70]} +{"kind":"shape","id":"sh/cf2tcr61","slide":5,"bbox":[42,139,1196,0]} +{"kind":"textbox","id":"sh/z2tcnm5s","slide":5,"text":"05","textPreview":"05","textChars":2,"textLines":1,"bbox":[1182,672,56,18]} +{"kind":"textbox","id":"sh/yhkbe1o7","slide":5,"text":"480","textPreview":"480","textChars":3,"textLines":1,"bbox":[42,182,190,72]} +{"kind":"textbox","id":"sh/l4bupwny","slide":5,"text":"在售 SKU / Active SKUs","textPreview":"在售 SKU / Active SKUs","textChars":20,"textLines":1,"bbox":[42,256,190,30]} +{"kind":"textbox","id":"sh/032tgr6d","slide":5,"text":"后 20% SKU 仅贡献约 3% 销售额,却持续占用库存资金。\nThe bottom 20% of SKUs contribute about 3% of sales while continuously tying up inventory cash.","textPreview":"后 20% SKU 仅贡献约 3% 销售额,却持续占用库存资金。 | The bottom 20% of SKUs contribute about 3% of sales while continuously tying up inventory cash.","textChars":128,"textLines":2,"bbox":[262,190,800,76]} +{"kind":"shape","id":"sh/n6dcr65o","slide":5,"bbox":[42,328,270,170]} +{"kind":"textbox","id":"sh/m5kbi1oj","slide":5,"text":"37 个 / 37 items","textPreview":"37 个 / 37 items","textChars":15,"textLines":1,"bbox":[66,354,222,64]} +{"kind":"textbox","id":"sh/w32dkbuh","slide":5,"text":"低销量·低毛利·高损耗\nLow sales · Low margin · High waste","textPreview":"低销量·低毛利·高损耗 | Low sales · Low margin · High waste","textChars":47,"textLines":2,"bbox":[66,434,222,40]} +{"kind":"shape","id":"sh/x4vedgvm","slide":5,"bbox":[341,328,270,170]} +{"kind":"textbox","id":"sh/ahkvi1cb","slide":5,"text":"9 个 / 9 items","textPreview":"9 个 / 9 items","textChars":13,"textLines":1,"bbox":[365,354,222,64]} +{"kind":"textbox","id":"sh/v2twb6dw","slide":5,"text":"高销量但低贡献利润 / High sales but low profit contribution","textPreview":"高销量但低贡献利润 / High sales but low profit contribution","textChars":50,"textLines":1,"bbox":[365,434,222,40]} +{"kind":"shape","id":"sh/k7mxovud","slide":5,"bbox":[640,328,270,170]} +{"kind":"textbox","id":"sh/58vehgvy","slide":5,"text":"16 个 / 16 items","textPreview":"16 个 / 16 items","textChars":15,"textLines":1,"bbox":[664,354,222,64]} +{"kind":"textbox","id":"sh/i54fmlc7","slide":5,"text":"可共享或替换原料 / Shared or substitutable ingredients","textPreview":"可共享或替换原料 / Shared or substitutable ingredients","textChars":46,"textLines":1,"bbox":[664,434,222,40]} +{"kind":"shape","id":"sh/j6dwfqds","slide":5,"bbox":[939,328,270,170]} +{"kind":"textbox","id":"sh/sb6xsvu9","slide":5,"text":"22 个 / 22 items","textPreview":"22 个 / 22 items","textChars":15,"textLines":1,"bbox":[963,354,222,64]} +{"kind":"textbox","id":"sh/tcfel0vu","slide":5,"text":"价格带重叠 / Overlapping price points","textPreview":"价格带重叠 / Overlapping price points","textChars":32,"textLines":1,"bbox":[963,434,222,40]} +{"kind":"shape","id":"sh/hgrmpwj2","slide":5,"bbox":[42,535,1196,85]} +{"kind":"textbox","id":"sh/gfi5grih","slide":5,"text":"模拟测算:释放库存资金约 80 万元 · 年减少报损约 35 万元 · 综合毛利率提升约 0.6 个百分点\nIllustrative estimate: release RMB 0.8m in inventory cash · reduce annual waste by RMB 0.35m · lift gross margin by about 0.6 pp","textPreview":"模拟测算:释放库存资金约 80 万元 · 年减少报损约 35 万元 · 综合毛利率提升约 0.6 个百分点 | Illustrative estimate: release RMB 0.8m in inventory cash · reduce annual waste b...","textChars":182,"textLines":2,"bbox":[68,558,1140,40]} +{"kind":"notes","id":"nt/i107q5of","slide":5,"text":"[Sources]\n用户提供文档:《玄谋智脑建设蓝图_老板决策版.md》。案例、指标与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\n中文内容来自用户提供的老板决策版;英文为商务意译。案例与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\nAll visible Chinese content is based on the user-supplied owner decision deck. English is a concise business translation. Cases and figures remain anonymous composite examples or illustrative estimates."} +{"kind":"slide","id":"sl/x8f69ofe","slide":6,"title":"匿名复合案例 · 门店 A-017 Anonymous composite case · Store A-017","textShapes":10} +{"kind":"textbox","id":"sh/svmt4v6t","slide":6,"text":"匿名复合案例 · 门店 A-017 Anonymous composite case · Store A-017","textPreview":"匿名复合案例 · 门店 A-017 Anonymous composite case · Store A-017","textChars":57,"textLines":1,"bbox":[42,28,820,24]} +{"kind":"textbox","id":"sh/yhg7epsj","slide":6,"text":"排班的关键,是工时跟着客流走\nLabor hours should follow demand.","textPreview":"排班的关键,是工时跟着客流走 | Labor hours should follow demand.","textChars":48,"textLines":2,"bbox":[42,62,1160,70]} +{"kind":"shape","id":"sh/zi98nu94","slide":6,"bbox":[42,139,1196,0]} +{"kind":"textbox","id":"sh/87ipkzal","slide":6,"text":"06","textPreview":"06","textChars":2,"textLines":1,"bbox":[1182,672,56,18]} +{"kind":"shape","id":"sh/98rqt4r6","slide":6,"bbox":[42,182,362,314]} +{"kind":"shape","id":"sh/ml07i9sv","slide":6,"bbox":[42,182,7,314]} +{"kind":"textbox","id":"sh/7m98ru9g","slide":6,"text":"发现 / Detect","textPreview":"发现 / Detect","textChars":11,"textLines":1,"bbox":[66,204,316,40]} +{"kind":"textbox","id":"sh/oryp8fah","slide":6,"text":"· 工作日上午存在闲置工时\n· 周五晚高峰经常缺人\n· 班次依据历史习惯\n· 加班集中在少数岗位\nIdle labor on weekday mornings · Understaffed on Friday peaks · Habit-based shifts · Overtime concentrated in a few roles","textPreview":"· 工作日上午存在闲置工时 | · 周五晚高峰经常缺人 | · 班次依据历史习惯 | · 加班集中在少数岗位 | Idle labor on weekday mornings · Understaffed on Friday peaks · Habit-based shif...","textChars":170,"textLines":5,"bbox":[66,256,316,222]} +{"kind":"shape","id":"sh/pc76hkr2","slide":6,"bbox":[458,182,362,314]} +{"kind":"shape","id":"sh/h4bupgn6","slide":6,"bbox":[458,182,7,314]} +{"kind":"textbox","id":"sh/w32twb6l","slide":6,"text":"动作 / Actions","textPreview":"动作 / Actions","textChars":12,"textLines":1,"bbox":[482,204,316,40]} +{"kind":"textbox","id":"sh/v2tcn650","slide":6,"text":"· 按半小时预测工作量\n· 调整早晚班起止时间\n· 高峰增加小时工\n· 备餐前移至客流爬升前\nForecast every 30 minutes · Adjust shift times · Add hourly staff at peaks · Move prep ahead of demand","textPreview":"· 按半小时预测工作量 | · 调整早晚班起止时间 | · 高峰增加小时工 | · 备餐前移至客流爬升前 | Forecast every 30 minutes · Adjust shift times · Add hourly staff at peaks · Move ...","textChars":149,"textLines":5,"bbox":[482,256,316,222]} +{"kind":"shape","id":"sh/u1kbu1ov","slide":6,"bbox":[874,182,364,314]} +{"kind":"shape","id":"sh/5svutgni","slide":6,"bbox":[874,182,7,314]} +{"kind":"textbox","id":"sh/47mt0b6x","slide":6,"text":"验证 / Verify","textPreview":"验证 / Verify","textChars":11,"textLines":1,"bbox":[898,204,318,40]} +{"kind":"textbox","id":"sh/j6dcr65c","slide":6,"text":"同时监控:\n\n· 人工成本\n· 出品时效\n· 顾客满意度\n\n避免单纯压缩人力。\nMonitor labor cost, service speed and customer satisfaction together. Do not simply cut headcount.","textPreview":"同时监控: | | · 人工成本 | · 出品时效 | · 顾客满意度 | | 避免单纯压缩人力。 | Monitor labor cost, service speed and customer satisfaction together. Do not simply...","textChars":138,"textLines":8,"bbox":[898,256,318,222]} +{"kind":"shape","id":"sh/i54bylor","slide":6,"bbox":[42,535,1196,85]} +{"kind":"textbox","id":"sh/twfux0ne","slide":6,"text":"模拟测算:单店每月节约 1.8 万元;复制到 60 家门店,年度改善空间约 1,296 万元。\nIllustrative estimate: RMB 18k saved per store per month; about RMB 12.96m annual upside across 60 stores.","textPreview":"模拟测算:单店每月节约 1.8 万元;复制到 60 家门店,年度改善空间约 1,296 万元。 | Illustrative estimate: RMB 18k saved per store per month; about RMB 12.96m annual upsid...","textChars":154,"textLines":2,"bbox":[66,557,1148,42]} +{"kind":"notes","id":"nt/x8f69ofe","slide":6,"text":"[Sources]\n用户提供文档:《玄谋智脑建设蓝图_老板决策版.md》。案例、指标与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\n中文内容来自用户提供的老板决策版;英文为商务意译。案例与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\nAll visible Chinese content is based on the user-supplied owner decision deck. English is a concise business translation. Cases and figures remain anonymous composite examples or illustrative estimates."} +{"kind":"slide","id":"sl/gnmp4jqx","slide":7,"title":"匿名复合案例 · 营销活动 X Anonymous composite case · Campaign X","textShapes":17} +{"kind":"textbox","id":"sh/s3ml0v61","slide":7,"text":"匿名复合案例 · 营销活动 X Anonymous composite case · Campaign X","textPreview":"匿名复合案例 · 营销活动 X Anonymous composite case · Campaign X","textChars":54,"textLines":1,"bbox":[42,28,820,24]} +{"kind":"textbox","id":"sh/cb2tkvap","slide":7,"text":"订单增长,不等于促销赚钱\nMore orders do not always mean a profitable campaign.","textPreview":"订单增长,不等于促销赚钱 | More orders do not always mean a profitable campaign.","textChars":66,"textLines":2,"bbox":[42,62,1160,70]} +{"kind":"shape","id":"sh/dcbud0ra","slide":7,"bbox":[42,139,1196,0]} +{"kind":"textbox","id":"sh/ydkbm5sv","slide":7,"text":"07","textPreview":"07","textChars":2,"textLines":1,"bbox":[1182,672,56,18]} +{"kind":"shape","id":"sh/zedcfa9g","slide":7,"bbox":[42,186,350,170]} +{"kind":"textbox","id":"sh/kzmdova1","slide":7,"text":"+23%","textPreview":"+23%","textChars":4,"textLines":1,"bbox":[66,212,302,64]} +{"kind":"textbox","id":"sh/l0vuh0rm","slide":7,"text":"订单增长 / Order growth","textPreview":"订单增长 / Order growth","textChars":19,"textLines":1,"bbox":[66,292,302,40]} +{"kind":"shape","id":"sh/eh0ba1sr","slide":7,"bbox":[42,378,350,170]} +{"kind":"textbox","id":"sh/fi9c369c","slide":7,"text":"负值 / Negative","textPreview":"负值 / Negative","textChars":13,"textLines":1,"bbox":[66,404,302,64]} +{"kind":"textbox","id":"sh/baxkjqlk","slide":7,"text":"穿透成本后的活动贡献利润\nCampaign contribution after full costs","textPreview":"穿透成本后的活动贡献利润 | Campaign contribution after full costs","textChars":51,"textLines":2,"bbox":[66,484,302,40]} +{"kind":"textbox","id":"sh/a9ojq5kz","slide":7,"text":"活动为什么亏钱 / Why the campaign loses money","textPreview":"活动为什么亏钱 / Why the campaign loses money","textChars":38,"textLines":1,"bbox":[454,186,360,40]} +{"kind":"textbox","id":"sh/xcz2l03q","slide":7,"text":"01","textPreview":"01","textChars":2,"textLines":1,"bbox":[454,258,42,28]} +{"kind":"textbox","id":"sh/cbq1sv25","slide":7,"text":"低毛利商品占比上升 / More low-margin items in the mix","textPreview":"低毛利商品占比上升 / More low-margin items in the mix","textChars":44,"textLines":1,"bbox":[510,254,650,40]} +{"kind":"shape","id":"sh/n6x0fqlo","slide":7,"bbox":[510,300,650,0]} +{"kind":"textbox","id":"sh/25ojml43","slide":7,"text":"02","textPreview":"02","textChars":2,"textLines":1,"bbox":[454,323,42,28]} +{"kind":"textbox","id":"sh/p8fih03e","slide":7,"text":"高价值会员获得无差别优惠\nHigh-value members receive blanket discounts","textPreview":"高价值会员获得无差别优惠 | High-value members receive blanket discounts","textChars":57,"textLines":2,"bbox":[510,319,650,40]} +{"kind":"shape","id":"sh/o761ov2t","slide":7,"bbox":[510,365,650,0]} +{"kind":"textbox","id":"sh/f2d0b6lc","slide":7,"text":"03","textPreview":"03","textChars":2,"textLines":1,"bbox":[454,388,42,28]} +{"kind":"textbox","id":"sh/eh4jil4r","slide":7,"text":"促销订单替代了原价订单\nDiscounted orders replace full-price orders","textPreview":"促销订单替代了原价订单 | Discounted orders replace full-price orders","textChars":55,"textLines":2,"bbox":[510,384,650,40]} +{"kind":"shape","id":"sh/id4ju1oz","slide":7,"bbox":[510,430,650,0]} +{"kind":"textbox","id":"sh/jedkn654","slide":7,"text":"04","textPreview":"04","textChars":2,"textLines":1,"bbox":[454,453,42,28]} +{"kind":"textbox","id":"sh/4fm1wb6p","slide":7,"text":"只评价订单和营收,没有评价增量利润\nOrders and revenue measured; incremental profit ignored","textPreview":"只评价订单和营收,没有评价增量利润 | Orders and revenue measured; incremental profit ignored","textChars":73,"textLines":2,"bbox":[510,449,650,40]} +{"kind":"shape","id":"sh/50v2pgna","slide":7,"bbox":[510,495,650,0]} +{"kind":"shape","id":"sh/q143ylov","slide":7,"bbox":[454,544,746,67]} +{"kind":"textbox","id":"sh/r2dkrq5g","slide":7,"text":"用“每投入 1 元营销费用增加多少贡献利润”评价活动。\nEvaluate each campaign by contribution profit generated per RMB 1 of marketing spend.","textPreview":"用“每投入 1 元营销费用增加多少贡献利润”评价活动。 | Evaluate each campaign by contribution profit generated per RMB 1 of marketing spend.","textChars":113,"textLines":2,"bbox":[478,562,700,34]} +{"kind":"notes","id":"nt/gnmp4jqx","slide":7,"text":"[Sources]\n用户提供文档:《玄谋智脑建设蓝图_老板决策版.md》。案例、指标与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\n中文内容来自用户提供的老板决策版;英文为商务意译。案例与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\nAll visible Chinese content is based on the user-supplied owner decision deck. English is a concise business translation. Cases and figures remain anonymous composite examples or illustrative estimates."} +{"kind":"slide","id":"sl/fu1gfa1s","slide":8,"title":"匿名复合案例 · 门店 D-006 Anonymous composite case · Store D-006","textShapes":19} +{"kind":"textbox","id":"sh/07atgnmp","slide":8,"text":"匿名复合案例 · 门店 D-006 Anonymous composite case · Store D-006","textPreview":"匿名复合案例 · 门店 D-006 Anonymous composite case · Store D-006","textChars":57,"textLines":1,"bbox":[42,28,820,24]} +{"kind":"textbox","id":"sh/18byd4zy","slide":8,"text":"关店前,先把四种选择算清楚\nCompare the options before deciding to close a store.","textPreview":"关店前,先把四种选择算清楚 | Compare the options before deciding to close a store.","textChars":67,"textLines":2,"bbox":[42,62,1160,70]} +{"kind":"shape","id":"sh/g72x4zyd","slide":8,"bbox":[42,139,1196,0]} +{"kind":"textbox","id":"sh/ri9g7uhw","slide":8,"text":"08","textPreview":"08","textChars":2,"textLines":1,"bbox":[1182,672,56,18]} +{"kind":"shape","id":"sh/6h0fypgb","slide":8,"bbox":[42,180,340,55]} +{"kind":"textbox","id":"sh/tkby9kzm","slide":8,"text":"方案 / Option","textPreview":"方案 / Option","textChars":11,"textLines":1,"bbox":[60,197,304,26]} +{"kind":"shape","id":"sh/sjix0zy1","slide":8,"bbox":[382,180,378,55]} +{"kind":"textbox","id":"sh/je9g3ahk","slide":8,"text":"12 个月模拟结果 / 12-month scenario","textPreview":"12 个月模拟结果 / 12-month scenario","textChars":29,"textLines":1,"bbox":[400,197,342,26]} +{"kind":"shape","id":"sh/id0fu50z","slide":8,"bbox":[760,180,478,55]} +{"kind":"textbox","id":"sh/o7ydoret","slide":8,"text":"决策建议 / Recommendation","textPreview":"决策建议 / Recommendation","textChars":21,"textLines":1,"bbox":[778,197,442,26]} +{"kind":"shape","id":"sh/98rehwve","slide":8,"bbox":[42,235,340,72]} +{"kind":"textbox","id":"sh/m5gvmhwn","slide":8,"text":"继续经营 / Continue operating","textPreview":"继续经营 / Continue operating","textChars":25,"textLines":1,"bbox":[60,256,304,35]} +{"kind":"shape","id":"sh/n6pwfmd8","slide":8,"bbox":[382,235,378,72]} +{"kind":"textbox","id":"sh/0jydkreh","slide":8,"text":"预计亏损 92 万 / Estimated loss: RMB 0.92m","textPreview":"预计亏损 92 万 / Estimated loss: RMB 0.92m","textChars":37,"textLines":1,"bbox":[400,256,342,35]} +{"kind":"shape","id":"sh/1k7edwv2","slide":8,"bbox":[760,235,478,72]} +{"kind":"textbox","id":"sh/ehgvihwr","slide":8,"text":"不建议 / Not recommended","textPreview":"不建议 / Not recommended","textChars":21,"textLines":1,"bbox":[778,256,442,35]} +{"kind":"shape","id":"sh/zipwbmdc","slide":8,"bbox":[42,307,340,72]} +{"kind":"textbox","id":"sh/kfixwbe1","slide":8,"text":"投入整改 / Invest in a turnaround","textPreview":"投入整改 / Invest in a turnaround","textChars":29,"textLines":1,"bbox":[60,328,304,35]} +{"kind":"shape","id":"sh/lgbepgvm","slide":8,"bbox":[382,307,378,72]} +{"kind":"textbox","id":"sh/tw7e9gnq","slide":8,"text":"预计亏损降至 35 万\nEstimated loss falls to RMB 0.35m","textPreview":"预计亏损降至 35 万 | Estimated loss falls to RMB 0.35m","textChars":45,"textLines":2,"bbox":[400,328,342,35]} +{"kind":"shape","id":"sh/svydgb65","slide":8,"bbox":[760,307,478,72]} +{"kind":"textbox","id":"sh/7u5w765k","slide":8,"text":"高风险,设止损线 / High risk; set a stop-loss","textPreview":"高风险,设止损线 / High risk; set a stop-loss","textChars":37,"textLines":1,"bbox":[778,328,442,35]} +{"kind":"shape","id":"sh/6twve1oz","slide":8,"bbox":[42,379,340,72]} +{"kind":"textbox","id":"sh/5sne5wne","slide":8,"text":"缩小面积 / Reduce footprint","textPreview":"缩小面积 / Reduce footprint","textChars":23,"textLines":1,"bbox":[60,400,304,35]} +{"kind":"shape","id":"sh/kredcr6t","slide":8,"bbox":[382,379,378,72]} +{"kind":"textbox","id":"sh/jq5w365o","slide":8,"text":"预计接近盈亏平衡 / Near break-even","textPreview":"预计接近盈亏平衡 / Near break-even","textChars":26,"textLines":1,"bbox":[400,400,342,35]} +{"kind":"shape","id":"sh/i5wva1o3","slide":8,"bbox":[760,379,478,72]} +{"kind":"textbox","id":"sh/x4ne1wni","slide":8,"text":"租约可重谈时考虑 / Consider if the lease can be renegotiated","textPreview":"租约可重谈时考虑 / Consider if the lease can be renegotiated","textChars":52,"textLines":1,"bbox":[778,400,442,35]} +{"kind":"shape","id":"sh/w3ed8r6x","slide":8,"bbox":[42,451,340,72]} +{"kind":"textbox","id":"sh/m9sb2x4v","slide":8,"text":"关停并迁移会员 / Close and migrate members","textPreview":"关停并迁移会员 / Close and migrate members","textChars":35,"textLines":1,"bbox":[60,472,304,35]} +{"kind":"shape","id":"sh/na1sb2lg","slide":8,"bbox":[382,451,378,72]} +{"kind":"textbox","id":"sh/8bat47ml","slide":8,"text":"预计减少亏损 76 万\nEstimated loss reduction: RMB 0.76m","textPreview":"预计减少亏损 76 万 | Estimated loss reduction: RMB 0.76m","textChars":47,"textLines":2,"bbox":[400,472,342,35]} +{"kind":"shape","id":"sh/9w3uds36","slide":8,"bbox":[760,451,478,72]} +{"kind":"textbox","id":"sh/y5sbed4j","slide":8,"text":"优先建议 / Preferred option","textPreview":"优先建议 / Preferred option","textChars":23,"textLines":1,"bbox":[778,472,442,35]} +{"kind":"textbox","id":"sh/z61s7il4","slide":8,"text":"AI 不替老板关店;它让经验判断具有数据依据、情景测算和退出预案。\nAI does not close stores. It adds evidence, scenario analysis and an exit plan to management judgment.","textPreview":"AI 不替老板关店;它让经验判断具有数据依据、情景测算和退出预案。 | AI does not close stores. It adds evidence, scenario analysis and an exit plan to management judgment.","textChars":136,"textLines":2,"bbox":[42,565,1160,44]} +{"kind":"notes","id":"nt/fu1gfa1s","slide":8,"text":"[Sources]\n用户提供文档:《玄谋智脑建设蓝图_老板决策版.md》。案例、指标与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\n中文内容来自用户提供的老板决策版;英文为商务意译。案例与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\nAll visible Chinese content is based on the user-supplied owner decision deck. English is a concise business translation. Cases and figures remain anonymous composite examples or illustrative estimates."} +{"kind":"slide","id":"sl/udsvah03","slide":9,"title":"玄谋智脑 · 连锁企业经营决策","textShapes":19} +{"kind":"textbox","id":"sh/va103ep4","slide":9,"text":"玄谋智脑 · 连锁企业经营决策\nXuanmou Intelligence · Multi-site Operations","textPreview":"玄谋智脑 · 连锁企业经营决策 | Xuanmou Intelligence · Multi-site Operations","textChars":60,"textLines":2,"bbox":[42,28,820,24]} +{"kind":"textbox","id":"sh/1cfmhgne","slide":9,"text":"四级管理,各自看清该做的事\nOne operating view, four levels of accountability.","textPreview":"四级管理,各自看清该做的事 | One operating view, four levels of accountability.","textChars":64,"textLines":2,"bbox":[42,62,1160,70]} +{"kind":"shape","id":"sh/0b65obm9","slide":9,"bbox":[42,139,1196,0]} +{"kind":"textbox","id":"sh/nex4jq5k","slide":9,"text":"09","textPreview":"09","textChars":2,"textLines":1,"bbox":[1182,672,56,18]} +{"kind":"shape","id":"sh/mdonql4z","slide":9,"bbox":[42,190,265,316]} +{"kind":"textbox","id":"sh/9gzml0nq","slide":9,"text":"老板 / Owner","textPreview":"老板 / Owner","textChars":10,"textLines":1,"bbox":[64,214,220,46]} +{"kind":"textbox","id":"sh/ofq5svm5","slide":9,"text":"看结果 / Review outcomes","textPreview":"看结果 / Review outcomes","textChars":21,"textLines":1,"bbox":[64,296,220,44]} +{"kind":"textbox","id":"sh/bih4na5w","slide":9,"text":"利润·风险·资源投向\nProfit · Risk · Capital allocation","textPreview":"利润·风险·资源投向 | Profit · Risk · Capital allocation","textChars":45,"textLines":2,"bbox":[64,386,220,72]} +{"kind":"textbox","id":"sh/ah8nu54b","slide":9,"text":"→","textPreview":"→","textChars":1,"textLines":1,"bbox":[310,323,30,36]} +{"kind":"shape","id":"sh/oza1gfyh","slide":9,"bbox":[341,190,265,316]} +{"kind":"textbox","id":"sh/p0ji9kf2","slide":9,"text":"总部 / Head office","textPreview":"总部 / Head office","textChars":16,"textLines":1,"bbox":[363,214,220,46]} +{"kind":"textbox","id":"sh/2xsjepgb","slide":9,"text":"找原因 / Find causes","textPreview":"找原因 / Find causes","textChars":17,"textLines":1,"bbox":[363,296,220,44]} +{"kind":"textbox","id":"sh/3y107axw","slide":9,"text":"跨区域对标·政策评估\nCross-region benchmarks · Policy review","textPreview":"跨区域对标·政策评估 | Cross-region benchmarks · Policy review","textChars":50,"textLines":2,"bbox":[363,386,220,72]} +{"kind":"textbox","id":"sh/cnu1kzyd","slide":9,"text":"→","textPreview":"→","textChars":1,"textLines":1,"bbox":[609,323,30,36]} +{"kind":"shape","id":"sh/do3id4fy","slide":9,"bbox":[640,190,265,316]} +{"kind":"textbox","id":"sh/qlcjipgn","slide":9,"text":"区域 / Region","textPreview":"区域 / Region","textChars":11,"textLines":1,"bbox":[662,214,220,46]} +{"kind":"textbox","id":"sh/bml0buxs","slide":9,"text":"推整改 / Drive action","textPreview":"推整改 / Drive action","textChars":18,"textLines":1,"bbox":[662,296,220,44]} +{"kind":"textbox","id":"sh/0ru1ozyp","slide":9,"text":"门店分级·任务·验收\nStore tiers · Tasks · Acceptance","textPreview":"门店分级·任务·验收 | Store tiers · Tasks · Acceptance","textChars":43,"textLines":2,"bbox":[662,386,220,72]} +{"kind":"textbox","id":"sh/lsn2h4fa","slide":9,"text":"→","textPreview":"→","textChars":1,"textLines":1,"bbox":[908,323,30,36]} +{"kind":"shape","id":"sh/98ji147e","slide":9,"bbox":[939,190,265,316]} +{"kind":"textbox","id":"sh/87a18zqt","slide":9,"text":"店长 / Store manager","textPreview":"店长 / Store manager","textChars":18,"textLines":1,"bbox":[961,214,220,46]} +{"kind":"textbox","id":"sh/76h0zup8","slide":9,"text":"做动作 / Execute","textPreview":"做动作 / Execute","textChars":13,"textLines":1,"bbox":[961,296,220,44]} +{"kind":"textbox","id":"sh/ml8j6p8n","slide":9,"text":"日目标·偏差·行动建议\nDaily targets · Gaps · Actions","textPreview":"日目标·偏差·行动建议 | Daily targets · Gaps · Actions","textChars":42,"textLines":2,"bbox":[961,386,220,72]} +{"kind":"shape","id":"sh/hcji5o7a","slide":9,"bbox":[42,550,1196,60]} +{"kind":"textbox","id":"sh/wba1cjqp","slide":9,"text":"结果回到经营大盘:执行不是终点,改善结果才是。\nResults return to the operating view: completion is not the goal; improvement is.","textPreview":"结果回到经营大盘:执行不是终点,改善结果才是。 | Results return to the operating view: completion is not the goal; improvement is.","textChars":105,"textLines":2,"bbox":[66,567,1148,30]} +{"kind":"notes","id":"nt/udsvah03","slide":9,"text":"[Sources]\n用户提供文档:《玄谋智脑建设蓝图_老板决策版.md》。案例、指标与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\n中文内容来自用户提供的老板决策版;英文为商务意译。案例与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\nAll visible Chinese content is based on the user-supplied owner decision deck. English is a concise business translation. Cases and figures remain anonymous composite examples or illustrative estimates."} +{"kind":"slide","id":"sl/m90b6t0r","slide":10,"title":"玄谋智脑 · 连锁企业经营决策","textShapes":7} +{"kind":"textbox","id":"sh/r6pcv6lw","slide":10,"text":"玄谋智脑 · 连锁企业经营决策\nXuanmou Intelligence · Multi-site Operations","textPreview":"玄谋智脑 · 连锁企业经营决策 | Xuanmou Intelligence · Multi-site Operations","textChars":60,"textLines":2,"bbox":[42,28,820,24]} +{"kind":"textbox","id":"sh/xc3mho32","slide":10,"text":"AI 给依据,经营决策仍由管理者负责\nAI provides evidence. Management owns the decision.","textPreview":"AI 给依据,经营决策仍由管理者负责 | AI provides evidence. Management owns the decision.","textChars":70,"textLines":2,"bbox":[42,62,1160,70]} +{"kind":"shape","id":"sh/cbu58j2h","slide":10,"bbox":[42,139,1196,0]} +{"kind":"textbox","id":"sh/zelojyl8","slide":10,"text":"10","textPreview":"10","textChars":2,"textLines":1,"bbox":[1182,672,56,18]} +{"kind":"shape","id":"sh/ydcnatkn","slide":10,"bbox":[42,182,560,366]} +{"kind":"shape","id":"sh/l036l83y","slide":10,"bbox":[42,182,7,366]} +{"kind":"textbox","id":"sh/kzu5c32t","slide":10,"text":"AI 可以承担 / AI can support","textPreview":"AI 可以承担 / AI can support","textChars":24,"textLines":1,"bbox":[66,204,514,40]} +{"kind":"textbox","id":"sh/725onyl4","slide":10,"text":"· 理解并关联跨系统数据\n· 持续扫描异常\n· 穿透至门店、SKU、班次和订单\n· 调用行业规则与历史案例\n· 推演方案对利润和现金流的影响\n· 跟踪执行并验证结果","textPreview":"· 理解并关联跨系统数据 | · 持续扫描异常 | · 穿透至门店、SKU、班次和订单 | · 调用行业规则与历史案例 | · 推演方案对利润和现金流的影响 | · 跟踪执行并验证结果","textChars":82,"textLines":6,"bbox":[66,256,514,274]} +{"kind":"shape","id":"sh/m1cnetkj","slide":10,"bbox":[678,182,560,366]} +{"kind":"shape","id":"sh/s7yt4b21","slide":10,"bbox":[678,182,7,366]} +{"kind":"textbox","id":"sh/d87uxg3m","slide":10,"text":"必须由管理者决定 / Management must decide","textPreview":"必须由管理者决定 / Management must decide","textChars":33,"textLines":1,"bbox":[702,204,514,40]} +{"kind":"textbox","id":"sh/q5gb21kb","slide":10,"text":"· 价格调整\n· 人员处置\n· 供应商更换\n· 门店迁址与关停\n· 重大资源投入\n\n所有高影响决策都应留下依据、审批与执行记录。\nPrice changes · Personnel actions · Supplier changes · Store relocation or closure · Major investment\nAll high-impact decisions require evidence, approval and execution records.","textPreview":"· 价格调整 | · 人员处置 | · 供应商更换 | · 门店迁址与关停 | · 重大资源投入 | | 所有高影响决策都应留下依据、审批与执行记录。 | Price changes · Personnel actions · Supplier changes · Sto...","textChars":242,"textLines":9,"bbox":[702,256,514,274]} +{"kind":"notes","id":"nt/m90b6t0r","slide":10,"text":"[Sources]\n用户提供文档:《玄谋智脑建设蓝图_老板决策版.md》。案例、指标与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\n中文内容来自用户提供的老板决策版;英文为商务意译。案例与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\nAll visible Chinese content is based on the user-supplied owner decision deck. English is a concise business translation. Cases and figures remain anonymous composite examples or illustrative estimates."} +{"kind":"slide","id":"sl/jetc3ut0","slide":11,"title":"玄谋智脑 · 连锁企业经营决策","textShapes":24} +{"kind":"textbox","id":"sh/g3qtkj6l","slide":11,"text":"玄谋智脑 · 连锁企业经营决策\nXuanmou Intelligence · Multi-site Operations","textPreview":"玄谋智脑 · 连锁企业经营决策 | Xuanmou Intelligence · Multi-site Operations","textChars":60,"textLines":2,"bbox":[42,28,820,24]} +{"kind":"textbox","id":"sh/xcryxg7y","slide":11,"text":"BI 解释过去,玄谋智脑推动下一步\nBI explains the past. Xuanmou drives the next action.","textPreview":"BI 解释过去,玄谋智脑推动下一步 | BI explains the past. Xuanmou drives the next action.","textChars":71,"textLines":2,"bbox":[42,62,1160,70]} +{"kind":"shape","id":"sh/wbih4b6d","slide":11,"bbox":[42,139,1196,0]} +{"kind":"textbox","id":"sh/n69grmpw","slide":11,"text":"11","textPreview":"11","textChars":2,"textLines":1,"bbox":[1182,672,56,18]} +{"kind":"shape","id":"sh/250zy18b","slide":11,"bbox":[42,170,228,50]} +{"kind":"textbox","id":"sh/98rytw72","slide":11,"text":"维度 / Dimension","textPreview":"维度 / Dimension","textChars":14,"textLines":1,"bbox":[58,185,196,25]} +{"kind":"shape","id":"sh/o7ih0r6h","slide":11,"bbox":[270,170,410,50]} +{"kind":"textbox","id":"sh/72t03qp0","slide":11,"text":"普通 BI / Conventional BI","textPreview":"普通 BI / Conventional BI","textChars":23,"textLines":1,"bbox":[286,185,378,25]} +{"kind":"shape","id":"sh/61kzalof","slide":11,"bbox":[680,170,558,50]} +{"kind":"textbox","id":"sh/ofqtgnyt","slide":11,"text":"玄谋智脑 / Xuanmou Intelligence","textPreview":"玄谋智脑 / Xuanmou Intelligence","textChars":27,"textLines":1,"bbox":[696,185,526,25]} +{"kind":"shape","id":"sh/9gza9sze","slide":11,"bbox":[42,220,228,67]} +{"kind":"textbox","id":"sh/mdobedg3","slide":11,"text":"定位 / Role","textPreview":"定位 / Role","textChars":9,"textLines":1,"bbox":[58,238,196,38]} +{"kind":"shape","id":"sh/nehs7iho","slide":11,"bbox":[270,220,410,67]} +{"kind":"textbox","id":"sh/0b6tc3yx","slide":11,"text":"展示报表 / Display reports","textPreview":"展示报表 / Display reports","textChars":22,"textLines":1,"bbox":[286,238,378,38]} +{"kind":"shape","id":"sh/1cfa58zi","slide":11,"bbox":[680,220,558,67]} +{"kind":"textbox","id":"sh/epobatgr","slide":11,"text":"驱动经营决策与改善 / Drive decisions and improvement","textPreview":"驱动经营决策与改善 / Drive decisions and improvement","textChars":43,"textLines":1,"bbox":[696,238,526,38]} +{"kind":"shape","id":"sh/zaxs3yhc","slide":11,"bbox":[42,287,228,67]} +{"kind":"textbox","id":"sh/cn6t83y1","slide":11,"text":"业务语义 / Business context","textPreview":"业务语义 / Business context","textChars":23,"textLines":1,"bbox":[58,305,196,38]} +{"kind":"shape","id":"sh/dofa18z6","slide":11,"bbox":[270,287,410,67]} +{"kind":"textbox","id":"sh/tsnip0ny","slide":11,"text":"字段和指标 / Fields and metrics","textPreview":"字段和指标 / Fields and metrics","textChars":26,"textLines":1,"bbox":[286,305,378,38]} +{"kind":"shape","id":"sh/87ehgv6d","slide":11,"bbox":[680,287,558,67]} +{"kind":"textbox","id":"sh/7650nq5s","slide":11,"text":"门店、商品、人员、会员等行业本体\nIndustry ontology for stores, products, people and members","textPreview":"门店、商品、人员、会员等行业本体 | Industry ontology for stores, products, people and members","textChars":75,"textLines":2,"bbox":[696,305,526,38]} +{"kind":"shape","id":"sh/65wzelo7","slide":11,"bbox":[42,354,228,67]} +{"kind":"textbox","id":"sh/l43ilgn2","slide":11,"text":"问题发现 / Issue detection","textPreview":"问题发现 / Issue detection","textChars":22,"textLines":1,"bbox":[58,372,196,38]} +{"kind":"shape","id":"sh/k3uhcb6h","slide":11,"bbox":[270,354,410,67]} +{"kind":"textbox","id":"sh/j2lgjq5w","slide":11,"text":"人主动看数据 / People search the data","textPreview":"人主动看数据 / People search the data","textChars":31,"textLines":1,"bbox":[286,372,378,38]} +{"kind":"shape","id":"sh/y1czalob","slide":11,"bbox":[680,354,558,67]} +{"kind":"textbox","id":"sh/p07ixkn6","slide":11,"text":"系统持续发现、分级与推送\nSystem detects, prioritizes and alerts continuously","textPreview":"系统持续发现、分级与推送 | System detects, prioritizes and alerts continuously","textChars":64,"textLines":2,"bbox":[696,372,526,38]} +{"kind":"shape","id":"sh/4zyhofml","slide":11,"bbox":[42,421,228,67]} +{"kind":"textbox","id":"sh/m58fih43","slide":11,"text":"问题处理 / Issue resolution","textPreview":"问题处理 / Issue resolution","textChars":23,"textLines":1,"bbox":[58,439,196,38]} +{"kind":"shape","id":"sh/n61wbmlo","slide":11,"bbox":[270,421,410,67]} +{"kind":"textbox","id":"sh/o7axk7m9","slide":11,"text":"报告异常 / Report exceptions","textPreview":"报告异常 / Report exceptions","textChars":24,"textLines":1,"bbox":[286,439,378,38]} +{"kind":"shape","id":"sh/98jedc3u","slide":11,"bbox":[680,421,558,67]} +{"kind":"textbox","id":"sh/eh8fex47","slide":11,"text":"归因、测算、方案和整改任务\nRoot cause, impact, recommendation and action task","textPreview":"归因、测算、方案和整改任务 | Root cause, impact, recommendation and action task","textChars":64,"textLines":2,"bbox":[696,439,526,38]} +{"kind":"shape","id":"sh/z2hw72lc","slide":11,"bbox":[42,488,228,67]} +{"kind":"textbox","id":"sh/03qxg7mx","slide":11,"text":"结果验证 / Outcome validation","textPreview":"结果验证 / Outcome validation","textChars":25,"textLines":1,"bbox":[58,506,196,38]} +{"kind":"shape","id":"sh/14ze9c3i","slide":11,"bbox":[270,488,410,67]} +{"kind":"textbox","id":"sh/ydcfq1kb","slide":11,"text":"通常不跟踪 / Usually not tracked","textPreview":"通常不跟踪 / Usually not tracked","textChars":27,"textLines":1,"bbox":[286,506,378,38]} +{"kind":"shape","id":"sh/jylwj6lw","slide":11,"bbox":[680,488,558,67]} +{"kind":"textbox","id":"sh/3qhsfypc","slide":11,"text":"验证改善并更新最佳实践\nVerify improvement and update best practices","textPreview":"验证改善并更新最佳实践 | Verify improvement and update best practices","textChars":56,"textLines":2,"bbox":[696,506,526,38]} +{"kind":"shape","id":"sh/ip8bmtor","slide":11,"bbox":[42,555,228,67]} +{"kind":"textbox","id":"sh/5sjah872","slide":11,"text":"长期价值 / Long-term value","textPreview":"长期价值 / Long-term value","textChars":22,"textLines":1,"bbox":[58,573,196,38]} +{"kind":"shape","id":"sh/4rato36h","slide":11,"bbox":[270,555,410,67]} +{"kind":"textbox","id":"sh/v2hsbyp0","slide":11,"text":"报表越来越多 / More and more reports","textPreview":"报表越来越多 / More and more reports","textChars":30,"textLines":1,"bbox":[286,573,378,38]} +{"kind":"shape","id":"sh/u18bit8f","slide":11,"bbox":[680,555,558,67]} +{"kind":"textbox","id":"sh/h4zado76","slide":11,"text":"行业模型与企业知识越用越成熟\nIndustry models and company knowledge improve with use","textPreview":"行业模型与企业知识越用越成熟 | Industry models and company knowledge improve with use","textChars":69,"textLines":2,"bbox":[696,573,526,38]} +{"kind":"notes","id":"nt/jetc3ut0","slide":11,"text":"[Sources]\n用户提供文档:《玄谋智脑建设蓝图_老板决策版.md》。案例、指标与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\n中文内容来自用户提供的老板决策版;英文为商务意译。案例与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\nAll visible Chinese content is based on the user-supplied owner decision deck. English is a concise business translation. Cases and figures remain anonymous composite examples or illustrative estimates."} +{"kind":"slide","id":"sl/8f2psfyx","slide":12,"title":"玄谋智脑 · 连锁企业经营决策","textShapes":23} +{"kind":"textbox","id":"sh/alwbitsn","slide":12,"text":"玄谋智脑 · 连锁企业经营决策\nXuanmou Intelligence · Multi-site Operations","textPreview":"玄谋智脑 · 连锁企业经营决策 | Xuanmou Intelligence · Multi-site Operations","textChars":60,"textLines":2,"bbox":[42,28,820,24]} +{"kind":"textbox","id":"sh/1gbm9s3a","slide":12,"text":"五项基础能力,支撑门店规模化管理\nFive capabilities that support scalable operations.","textPreview":"五项基础能力,支撑门店规模化管理 | Five capabilities that support scalable operations.","textChars":68,"textLines":2,"bbox":[42,62,1160,70]} +{"kind":"shape","id":"sh/0f2lgnmp","slide":12,"bbox":[42,139,1196,0]} +{"kind":"textbox","id":"sh/ra943il8","slide":12,"text":"12","textPreview":"12","textChars":2,"textLines":1,"bbox":[1182,672,56,18]} +{"kind":"textbox","id":"sh/q903ad4n","slide":12,"text":"01","textPreview":"01","textChars":2,"textLines":1,"bbox":[42,185,54,28]} +{"kind":"textbox","id":"sh/dcbm583y","slide":12,"text":"数据资产化 / Data foundation","textPreview":"数据资产化 / Data foundation","textChars":23,"textLines":1,"bbox":[118,171,250,54]} +{"kind":"textbox","id":"sh/sb2lcnmd","slide":12,"text":"数据通起来 / Connect the data","textPreview":"数据通起来 / Connect the data","textChars":24,"textLines":1,"bbox":[422,171,250,54]} +{"kind":"textbox","id":"sh/b6d4f2lc","slide":12,"text":"一个数字、一个来源 / One number, one source","textPreview":"一个数字、一个来源 / One number, one source","textChars":34,"textLines":1,"bbox":[720,171,450,54]} +{"kind":"shape","id":"sh/a543mx4r","slide":12,"bbox":[118,238,1050,0]} +{"kind":"textbox","id":"sh/wvupgz6t","slide":12,"text":"02","textPreview":"02","textChars":2,"textLines":1,"bbox":[42,274,54,28]} +{"kind":"textbox","id":"sh/xw3q94ne","slide":12,"text":"运营指标化 / Operational metrics","textPreview":"运营指标化 / Operational metrics","textChars":27,"textLines":1,"bbox":[118,260,250,54]} +{"kind":"textbox","id":"sh/atc7epon","slide":12,"text":"问题浮出来 / Surface the issues","textPreview":"问题浮出来 / Surface the issues","textChars":26,"textLines":1,"bbox":[422,260,250,54]} +{"kind":"textbox","id":"sh/bulo7u58","slide":12,"text":"异常能穿透到根因 / Trace exceptions to root causes","textPreview":"异常能穿透到根因 / Trace exceptions to root causes","textChars":42,"textLines":1,"bbox":[720,260,450,54]} +{"kind":"shape","id":"sh/orapcf6h","slide":12,"bbox":[118,327,1050,0]} +{"kind":"textbox","id":"sh/9sj65kn2","slide":12,"text":"03","textPreview":"03","textChars":2,"textLines":1,"bbox":[42,363,54,28]} +{"kind":"textbox","id":"sh/mps7a5or","slide":12,"text":"战略穿透化 / Strategy execution","textPreview":"战略穿透化 / Strategy execution","textChars":26,"textLines":1,"bbox":[118,349,250,54]} +{"kind":"textbox","id":"sh/nq1o3a5w","slide":12,"text":"目标落下去 / Translate goals into action","textPreview":"目标落下去 / Translate goals into action","textChars":35,"textLines":1,"bbox":[422,349,250,54]} +{"kind":"textbox","id":"sh/0nap8f6l","slide":12,"text":"战略到区域、门店和个人\nFrom strategy to regions, stores and individuals","textPreview":"战略到区域、门店和个人 | From strategy to regions, stores and individuals","textChars":60,"textLines":2,"bbox":[720,349,450,54]} +{"kind":"shape","id":"sh/1oj61kn6","slide":12,"bbox":[118,416,1050,0]} +{"kind":"textbox","id":"sh/hkbm5wzu","slide":12,"text":"04","textPreview":"04","textChars":2,"textLines":1,"bbox":[42,452,54,28]} +{"kind":"textbox","id":"sh/gj25cry9","slide":12,"text":"态势感知化 / Risk sensing","textPreview":"态势感知化 / Risk sensing","textChars":20,"textLines":1,"bbox":[118,438,250,54]} +{"kind":"textbox","id":"sh/fit436ho","slide":12,"text":"风险早知道 / See risks earlier","textPreview":"风险早知道 / See risks earlier","textChars":25,"textLines":1,"bbox":[422,438,250,54]} +{"kind":"textbox","id":"sh/uh0na1g3","slide":12,"text":"从事后救火到事前预防 / Move from firefighting to prevention","textPreview":"从事后救火到事前预防 / Move from firefighting to prevention","textChars":49,"textLines":1,"bbox":[720,438,450,54]} +{"kind":"shape","id":"sh/tgrm1wzy","slide":12,"bbox":[118,505,1050,0]} +{"kind":"textbox","id":"sh/sfi58ryd","slide":12,"text":"05","textPreview":"05","textChars":2,"textLines":1,"bbox":[42,541,54,28]} +{"kind":"textbox","id":"sh/7u94zmhs","slide":12,"text":"知识沉淀化 / Knowledge capture","textPreview":"知识沉淀化 / Knowledge capture","textChars":25,"textLines":1,"bbox":[118,527,250,54]} +{"kind":"textbox","id":"sh/6t0n6hg7","slide":12,"text":"组织越来越聪明 / Make the organization smarter","textPreview":"组织越来越聪明 / Make the organization smarter","textChars":39,"textLines":1,"bbox":[422,527,250,54]} +{"kind":"textbox","id":"sh/dcv6dgz2","slide":12,"text":"优秀能力不再依赖少数人\nBest practices no longer depend on a few people","textPreview":"优秀能力不再依赖少数人 | Best practices no longer depend on a few people","textChars":59,"textLines":2,"bbox":[720,527,450,54]} +{"kind":"shape","id":"sh/cbm5kbyh","slide":12,"bbox":[118,594,1050,0]} +{"kind":"notes","id":"nt/8f2psfyx","slide":12,"text":"[Sources]\n用户提供文档:《玄谋智脑建设蓝图_老板决策版.md》。案例、指标与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\n中文内容来自用户提供的老板决策版;英文为商务意译。案例与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\nAll visible Chinese content is based on the user-supplied owner decision deck. English is a concise business translation. Cases and figures remain anonymous composite examples or illustrative estimates."} +{"kind":"slide","id":"sl/hgzapcr6","slide":13,"title":"玄谋智脑 · 连锁企业经营决策","textShapes":15} +{"kind":"textbox","id":"sh/3yxgbqdg","slide":13,"text":"玄谋智脑 · 连锁企业经营决策\nXuanmou Intelligence · Multi-site Operations","textPreview":"玄谋智脑 · 连锁企业经营决策 | Xuanmou Intelligence · Multi-site Operations","textChars":60,"textLines":2,"bbox":[42,28,820,24]} +{"kind":"textbox","id":"sh/q50nydsj","slide":13,"text":"门店越多,复制优秀做法的价值越大\nThe larger the network, the greater the value of replication.","textPreview":"门店越多,复制优秀做法的价值越大 | The larger the network, the greater the value of replication.","textChars":78,"textLines":2,"bbox":[42,62,1160,70]} +{"kind":"shape","id":"sh/bq9orito","slide":13,"bbox":[42,139,1196,0]} +{"kind":"textbox","id":"sh/o3i5w3ad","slide":13,"text":"13","textPreview":"13","textChars":2,"textLines":1,"bbox":[1182,672,56,18]} +{"kind":"shape","id":"sh/p4r6p8by","slide":13,"bbox":[42,182,360,250]} +{"kind":"shape","id":"sh/21gnuts7","slide":13,"bbox":[42,182,7,250]} +{"kind":"textbox","id":"sh/32ponyts","slide":13,"text":"不依赖能人 / Less dependence on star performers","textPreview":"不依赖能人 / Less dependence on star performers","textChars":42,"textLines":1,"bbox":[66,204,314,40]} +{"kind":"textbox","id":"sh/gzy5s3a1","slide":13,"text":"优秀店长的做法沉淀为规则、案例和 SOP。\nTurn strong store-manager practices into rules, cases and SOPs.","textPreview":"优秀店长的做法沉淀为规则、案例和 SOP。 | Turn strong store-manager practices into rules, cases and SOPs.","textChars":85,"textLines":2,"bbox":[66,256,314,158]} +{"kind":"shape","id":"sh/1076lobm","slide":13,"bbox":[443,182,360,250]} +{"kind":"shape","id":"sh/hcfy9k3u","slide":13,"bbox":[443,182,7,250]} +{"kind":"textbox","id":"sh/gb6x0zm9","slide":13,"text":"扩张不失控 / Scale without losing control","textPreview":"扩张不失控 / Scale without losing control","textChars":36,"textLines":1,"bbox":[467,204,314,40]} +{"kind":"textbox","id":"sh/vaxg7ulo","slide":13,"text":"验证有效的改善方案,可按门店特征分类复制。\nReplicate proven actions by store profile.","textPreview":"验证有效的改善方案,可按门店特征分类复制。 | Replicate proven actions by store profile.","textChars":64,"textLines":2,"bbox":[467,256,314,158]} +{"kind":"shape","id":"sh/u9ofyp43","slide":13,"bbox":[844,182,360,250]} +{"kind":"shape","id":"sh/t8fy5k3i","slide":13,"bbox":[844,182,7,250]} +{"kind":"textbox","id":"sh/876xwfmx","slide":13,"text":"能力持续复利 / Capabilities compound","textPreview":"能力持续复利 / Capabilities compound","textChars":30,"textLines":1,"bbox":[868,204,314,40]} +{"kind":"textbox","id":"sh/7mdg3als","slide":13,"text":"场景、模型、AI 建议与决策反馈相互增强。\nScenarios, models, AI recommendations and decision feedback reinforce one another.","textPreview":"场景、模型、AI 建议与决策反馈相互增强。 | Scenarios, models, AI recommendations and decision feedback reinforce one another.","textChars":104,"textLines":2,"bbox":[868,256,314,158]} +{"kind":"shape","id":"sh/6l4fu547","slide":13,"bbox":[120,520,980,0]} +{"kind":"shape","id":"sh/lkvy103m","slide":13,"bbox":[104,502,38,38]} +{"kind":"textbox","id":"sh/kjmxsfm1","slide":13,"text":"30 家 / 30 stores","textPreview":"30 家 / 30 stores","textChars":16,"textLines":1,"bbox":[94,555,150,28]} +{"kind":"textbox","id":"sh/cnqh8fux","slide":13,"text":"靠人盯 / Managed by people","textPreview":"靠人盯 / Managed by people","textChars":23,"textLines":1,"bbox":[94,589,170,24]} +{"kind":"shape","id":"sh/xozyhkbi","slide":13,"bbox":[584,502,38,38]} +{"kind":"textbox","id":"sh/q18f65cr","slide":13,"text":"100 家 / 100 stores","textPreview":"100 家 / 100 stores","textChars":18,"textLines":1,"bbox":[574,555,150,28]} +{"kind":"textbox","id":"sh/bmhgfatc","slide":13,"text":"靠机制 / Managed by process","textPreview":"靠机制 / Managed by process","textChars":24,"textLines":1,"bbox":[574,589,170,24]} +{"kind":"shape","id":"sh/oz6x4vul","slide":13,"bbox":[1064,502,38,38]} +{"kind":"textbox","id":"sh/p0zyd0b6","slide":13,"text":"300 家 / 300 stores","textPreview":"300 家 / 300 stores","textChars":18,"textLines":1,"bbox":[1054,555,150,28]} +{"kind":"textbox","id":"sh/2xof2lcv","slide":13,"text":"靠模型复制 / Scaled through models","textPreview":"靠模型复制 / Scaled through models","textChars":29,"textLines":1,"bbox":[1054,589,170,24]} +{"kind":"notes","id":"nt/hgzapcr6","slide":13,"text":"[Sources]\n用户提供文档:《玄谋智脑建设蓝图_老板决策版.md》。案例、指标与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\n中文内容来自用户提供的老板决策版;英文为商务意译。案例与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\nAll visible Chinese content is based on the user-supplied owner decision deck. English is a concise business translation. Cases and figures remain anonymous composite examples or illustrative estimates."} +{"kind":"slide","id":"sl/6lsnupw7","slide":14,"title":"玄谋智脑 · 连锁企业经营决策","textShapes":8} +{"kind":"textbox","id":"sh/kre1k3y9","slide":14,"text":"玄谋智脑 · 连锁企业经营决策\nXuanmou Intelligence · Multi-site Operations","textPreview":"玄谋智脑 · 连锁企业经营决策 | Xuanmou Intelligence · Multi-site Operations","textChars":60,"textLines":2,"bbox":[42,28,820,24]} +{"kind":"textbox","id":"sh/xc7eds76","slide":14,"text":"真正的数据资产,是可追溯的经营能力\nA real data asset is a traceable operating capability.","textPreview":"真正的数据资产,是可追溯的经营能力 | A real data asset is a traceable operating capability.","textChars":72,"textLines":2,"bbox":[42,62,1160,70]} +{"kind":"shape","id":"sh/wbydknq1","slide":14,"bbox":[42,139,1196,0]} +{"kind":"textbox","id":"sh/jepwf2pc","slide":14,"text":"14","textPreview":"14","textChars":2,"textLines":1,"bbox":[1182,672,56,18]} +{"kind":"shape","id":"sh/idgvmx8r","slide":14,"bbox":[42,180,560,365]} +{"kind":"shape","id":"sh/5grehs7i","slide":14,"bbox":[42,180,7,365]} +{"kind":"textbox","id":"sh/kfidonqx","slide":14,"text":"企业数据资产 / Enterprise data assets","textPreview":"企业数据资产 / Enterprise data assets","textChars":31,"textLines":1,"bbox":[66,202,514,40]} +{"kind":"textbox","id":"sh/zi5c3y98","slide":14,"text":"· 统一指标口径与责任关系\n· 门店、商品、人员、会员、供应商本体\n· 行业规则与异常模式\n· 决策、执行与验证结果\n· 最佳实践与风险知识\nCommon metric definitions and accountability · Business ontology · Industry rules · Decisions and validated outcomes · Best-practice knowledge","textPreview":"· 统一指标口径与责任关系 | · 门店、商品、人员、会员、供应商本体 | · 行业规则与异常模式 | · 决策、执行与验证结果 | · 最佳实践与风险知识 | Common metric definitions and accountability · Business ...","textChars":213,"textLines":6,"bbox":[66,254,514,273]} +{"kind":"shape","id":"sh/ehwvat8n","slide":14,"bbox":[678,180,560,365]} +{"kind":"shape","id":"sh/c3e1gjyd","slide":14,"bbox":[678,180,7,365]} +{"kind":"textbox","id":"sh/x4ni9ofy","slide":14,"text":"融资与尽调支持 / Financing and due-diligence support","textPreview":"融资与尽调支持 / Financing and due-diligence support","textChars":45,"textLines":1,"bbox":[702,202,514,40]} +{"kind":"textbox","id":"sh/a1wze9g7","slide":14,"text":"· 门店级损益与现金流\n· 收入稳定性分析\n· 风险预警与整改记录\n· 未来经营预测\n· 更完整、可追溯的经营证明\nStore-level P&L and cash flow · Revenue stability · Risk and remediation records · Forecasts · Traceable operating evidence","textPreview":"· 门店级损益与现金流 | · 收入稳定性分析 | · 风险预警与整改记录 | · 未来经营预测 | · 更完整、可追溯的经营证明 | Store-level P&L and cash flow · Revenue stability · Risk and remediat...","textChars":181,"textLines":6,"bbox":[702,254,514,273]} +{"kind":"textbox","id":"sh/b2507exs","slide":14,"text":"边界:提供数据与分析支持,不承诺银行授信或融资结果。\nScope: data and analytical support only; no promise of bank credit or financing outcomes.","textPreview":"边界:提供数据与分析支持,不承诺银行授信或融资结果。 | Scope: data and analytical support only; no promise of bank credit or financing outcomes.","textChars":116,"textLines":2,"bbox":[42,578,1000,34]} +{"kind":"notes","id":"nt/6lsnupw7","slide":14,"text":"[Sources]\n用户提供文档:《玄谋智脑建设蓝图_老板决策版.md》。案例、指标与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\n中文内容来自用户提供的老板决策版;英文为商务意译。案例与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\nAll visible Chinese content is based on the user-supplied owner decision deck. English is a concise business translation. Cases and figures remain anonymous composite examples or illustrative estimates."} +{"kind":"slide","id":"sl/vaxsvy10","slide":15,"title":"玄谋智脑 · 连锁企业经营决策","textShapes":15} +{"kind":"textbox","id":"sh/cbuh8nmh","slide":15,"text":"玄谋智脑 · 连锁企业经营决策\nXuanmou Intelligence · Multi-site Operations","textPreview":"玄谋智脑 · 连锁企业经营决策 | Xuanmou Intelligence · Multi-site Operations","textChars":60,"textLines":2,"bbox":[42,28,820,24]} +{"kind":"textbox","id":"sh/547mhg3m","slide":15,"text":"生产数据必须留在清晰的安全边界内\nProduction data must remain within clear security boundaries.","textPreview":"生产数据必须留在清晰的安全边界内 | Production data must remain within clear security boundaries.","textChars":78,"textLines":2,"bbox":[42,62,1160,70]} +{"kind":"shape","id":"sh/k3y5ov21","slide":15,"bbox":[42,139,1196,0]} +{"kind":"textbox","id":"sh/76p4jqls","slide":15,"text":"15","textPreview":"15","textChars":2,"textLines":1,"bbox":[1182,672,56,18]} +{"kind":"shape","id":"sh/65gnqlk7","slide":15,"bbox":[42,180,360,170]} +{"kind":"shape","id":"sh/t87ml0ji","slide":15,"bbox":[42,180,7,170]} +{"kind":"textbox","id":"sh/s7y5sv2x","slide":15,"text":"部署边界 / Deployment boundary","textPreview":"部署边界 / Deployment boundary","textChars":26,"textLines":1,"bbox":[66,202,314,40]} +{"kind":"textbox","id":"sh/na5476l8","slide":15,"text":"不替代现有交易系统,只读或受控对接。\nDoes not replace transaction systems; read-only or controlled integration.","textPreview":"不替代现有交易系统,只读或受控对接。 | Does not replace transaction systems; read-only or controlled integration.","textChars":93,"textLines":2,"bbox":[66,254,314,78]} +{"kind":"shape","id":"sh/m9c3e1kn","slide":15,"bbox":[443,180,360,170]} +{"kind":"shape","id":"sh/wrm9kvep","slide":15,"bbox":[443,180,7,170]} +{"kind":"textbox","id":"sh/hsvat0fa","slide":15,"text":"最小权限 / Least privilege","textPreview":"最小权限 / Least privilege","textChars":22,"textLines":1,"bbox":[467,202,314,40]} +{"kind":"textbox","id":"sh/upkrilwj","slide":15,"text":"老板、总部、区域、门店按职责查看。\nAccess by role across owner, head office, region and store.","textPreview":"老板、总部、区域、门店按职责查看。 | Access by role across owner, head office, region and store.","textChars":77,"textLines":2,"bbox":[467,254,314,78]} +{"kind":"shape","id":"sh/vqdsrqx4","slide":15,"bbox":[844,180,360,170]} +{"kind":"shape","id":"sh/4vm9ovel","slide":15,"bbox":[844,180,7,170]} +{"kind":"textbox","id":"sh/5wvax0f6","slide":15,"text":"敏感保护 / Sensitive-data protection","textPreview":"敏感保护 / Sensitive-data protection","textChars":32,"textLines":1,"bbox":[868,202,314,40]} +{"kind":"textbox","id":"sh/it4rm5wv","slide":15,"text":"会员、薪酬、财务明细分级、脱敏与审计。\nClassify, mask and audit member, payroll and financial details.","textPreview":"会员、薪酬、财务明细分级、脱敏与审计。 | Classify, mask and audit member, payroll and financial details.","textChars":83,"textLines":2,"bbox":[868,254,314,78]} +{"kind":"shape","id":"sh/judsvqxg","slide":15,"bbox":[42,390,360,170]} +{"kind":"shape","id":"sh/0z29cbyh","slide":15,"bbox":[42,390,7,170]} +{"kind":"textbox","id":"sh/l0bqlgf2","slide":15,"text":"AI 可追溯 / Traceable AI","textPreview":"AI 可追溯 / Traceable AI","textChars":21,"textLines":1,"bbox":[66,412,314,40]} +{"kind":"textbox","id":"sh/1kjyt83e","slide":15,"text":"重要结论显示依据、时间、路径和适用边界。\nKey conclusions show evidence, timing, logic and scope.","textPreview":"重要结论显示依据、时间、路径和适用边界。 | Key conclusions show evidence, timing, logic and scope.","textChars":76,"textLines":2,"bbox":[66,464,314,78]} +{"kind":"shape","id":"sh/gjax03m9","slide":15,"bbox":[443,390,360,170]} +{"kind":"shape","id":"sh/fi1grylo","slide":15,"bbox":[443,390,7,170]} +{"kind":"textbox","id":"sh/ehsfyt43","slide":15,"text":"人工审批 / Human approval","textPreview":"人工审批 / Human approval","textChars":21,"textLines":1,"bbox":[467,412,314,40]} +{"kind":"textbox","id":"sh/p8jyx83q","slide":15,"text":"高影响决策必须经有权限的管理者审批。\nHigh-impact decisions require approval by authorized management.","textPreview":"高影响决策必须经有权限的管理者审批。 | High-impact decisions require approval by authorized management.","textChars":83,"textLines":2,"bbox":[467,464,314,78]} +{"kind":"shape","id":"sh/o7ah4nm5","slide":15,"bbox":[844,390,360,170]} +{"kind":"shape","id":"sh/361gvilk","slide":15,"bbox":[844,390,7,170]} +{"kind":"textbox","id":"sh/25sf2d4z","slide":15,"text":"全程留痕 / Full audit trail","textPreview":"全程留痕 / Full audit trail","textChars":23,"textLines":1,"bbox":[868,412,314,40]} +{"kind":"textbox","id":"sh/dc3y1s3m","slide":15,"text":"访问、建议、修改、审批和执行结果均可审计。\nAccess, recommendations, edits, approvals and outcomes are auditable.","textPreview":"访问、建议、修改、审批和执行结果均可审计。 | Access, recommendations, edits, approvals and outcomes are auditable.","textChars":91,"textLines":2,"bbox":[868,464,314,78]} +{"kind":"notes","id":"nt/vaxsvy10","slide":15,"text":"[Sources]\n用户提供文档:《玄谋智脑建设蓝图_老板决策版.md》。案例、指标与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\n中文内容来自用户提供的老板决策版;英文为商务意译。案例与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\nAll visible Chinese content is based on the user-supplied owner decision deck. English is a concise business translation. Cases and figures remain anonymous composite examples or illustrative estimates."} +{"kind":"slide","id":"sl/gny5sjyp","slide":16,"title":"玄谋智脑 · 连锁企业经营决策","textShapes":19} +{"kind":"textbox","id":"sh/ih0jedob","slide":16,"text":"玄谋智脑 · 连锁企业经营决策\nXuanmou Intelligence · Multi-site Operations","textPreview":"玄谋智脑 · 连锁企业经营决策 | Xuanmou Intelligence · Multi-site Operations","textChars":60,"textLines":2,"bbox":[42,28,820,24]} +{"kind":"textbox","id":"sh/8z2h8bq1","slide":16,"text":"先用 8 周证明价值,再决定扩大范围\nProve the value in eight weeks before scaling.","textPreview":"先用 8 周证明价值,再决定扩大范围 | Prove the value in eight weeks before scaling.","textChars":65,"textLines":2,"bbox":[42,62,1160,70]} +{"kind":"shape","id":"sh/9kby1g7m","slide":16,"bbox":[42,139,1196,0]} +{"kind":"textbox","id":"sh/ytkf2h8j","slide":16,"text":"16","textPreview":"16","textChars":2,"textLines":1,"bbox":[1182,672,56,18]} +{"kind":"shape","id":"sh/zutgvm94","slide":16,"bbox":[66,340,1100,0]} +{"kind":"shape","id":"sh/kv2h4rqp","slide":16,"bbox":[54,322,38,38]} +{"kind":"textbox","id":"sh/lwbyxwra","slide":16,"text":"第 1 周 / Week 1","textPreview":"第 1 周 / Week 1","textChars":14,"textLines":1,"bbox":[49,206,200,28]} +{"kind":"textbox","id":"sh/ip4zel83","slide":16,"text":"选定利润专项 / Select a profit initiative","textPreview":"选定利润专项 / Select a profit initiative","textChars":35,"textLines":1,"bbox":[49,250,205,55]} +{"kind":"textbox","id":"sh/3qdg7qpo","slide":16,"text":"基线·口径·责任人\nBaseline · Definition · Owner","textPreview":"基线·口径·责任人 | Baseline · Definition · Owner","textChars":39,"textLines":2,"bbox":[49,394,205,84]} +{"kind":"shape","id":"sh/fm1gzq5o","slide":16,"bbox":[293,322,38,38]} +{"kind":"textbox","id":"sh/e1sf65o3","slide":16,"text":"第 1—2 周 / Weeks 1–2","textPreview":"第 1—2 周 / Weeks 1–2","textChars":19,"textLines":1,"bbox":[288,206,200,28]} +{"kind":"textbox","id":"sh/1ojy10ne","slide":16,"text":"连接现有数据 / Connect existing data","textPreview":"连接现有数据 / Connect existing data","textChars":30,"textLines":1,"bbox":[288,250,205,55]} +{"kind":"textbox","id":"sh/gnax8v6t","slide":16,"text":"数据清单·质量·统一口径\nData inventory · Quality · Common definitions","textPreview":"数据清单·质量·统一口径 | Data inventory · Quality · Common definitions","textChars":58,"textLines":2,"bbox":[288,394,205,84]} +{"kind":"shape","id":"sh/nqlg3a5k","slide":16,"bbox":[532,322,38,38]} +{"kind":"textbox","id":"sh/2pcfa5oz","slide":16,"text":"第 3—4 周 / Weeks 3–4","textPreview":"第 3—4 周 / Weeks 3–4","textChars":19,"textLines":1,"bbox":[527,206,200,28]} +{"kind":"textbox","id":"sh/ps3y5knq","slide":16,"text":"发现机会与根因 / Find opportunities and causes","textPreview":"发现机会与根因 / Find opportunities and causes","textChars":39,"textLines":1,"bbox":[527,250,205,55]} +{"kind":"textbox","id":"sh/oruhcf65","slide":16,"text":"异常·影响金额·证据\nException · Financial impact · Evidence","textPreview":"异常·影响金额·证据 | Exception · Financial impact · Evidence","textChars":50,"textLines":2,"bbox":[527,394,205,84]} +{"kind":"shape","id":"sh/bulg7u5g","slide":16,"bbox":[771,322,38,38]} +{"kind":"textbox","id":"sh/atczepob","slide":16,"text":"第 5—6 周 / Weeks 5–6","textPreview":"第 5—6 周 / Weeks 5–6","textChars":19,"textLines":1,"bbox":[766,206,200,28]} +{"kind":"textbox","id":"sh/mpgj6t8j","slide":16,"text":"推动整改 / Drive corrective action","textPreview":"推动整改 / Drive corrective action","textChars":30,"textLines":1,"bbox":[766,250,205,55]} +{"kind":"textbox","id":"sh/7qp0zepo","slide":16,"text":"任务·期限·执行记录\nTask · Deadline · Execution record","textPreview":"任务·期限·执行记录 | Task · Deadline · Execution record","textChars":45,"textLines":2,"bbox":[766,394,205,84]} +{"kind":"shape","id":"sh/8by18jq9","slide":16,"bbox":[1010,322,38,38]} +{"kind":"textbox","id":"sh/9c7i1o7u","slide":16,"text":"第 7—8 周 / Weeks 7–8","textPreview":"第 7—8 周 / Weeks 7–8","textChars":19,"textLines":1,"bbox":[1005,206,200,28]} +{"kind":"textbox","id":"sh/ylwj2987","slide":16,"text":"验证并复制 / Verify and replicate","textPreview":"验证并复制 / Verify and replicate","textChars":28,"textLines":1,"bbox":[1005,250,205,55]} +{"kind":"textbox","id":"sh/zm50veps","slide":16,"text":"改善金额·验收·最佳实践\nImprovement value · Acceptance · Best practice","textPreview":"改善金额·验收·最佳实践 | Improvement value · Acceptance · Best practice","textChars":59,"textLines":2,"bbox":[1005,394,205,84]} +{"kind":"shape","id":"sh/kne14jqd","slide":16,"bbox":[42,550,1196,60]} +{"kind":"textbox","id":"sh/lo7ixo7y","slide":16,"text":"优先选择:数据可获得 · 影响可测算 · 动作可执行 · 八周可验证。\nPrioritize cases with available data, measurable impact, executable actions and results verifiable in eight weeks.","textPreview":"优先选择:数据可获得 · 影响可测算 · 动作可执行 · 八周可验证。 | Prioritize cases with available data, measurable impact, executable actions and results verifiable ...","textChars":150,"textLines":2,"bbox":[66,567,1148,30]} +{"kind":"notes","id":"nt/gny5sjyp","slide":16,"text":"[Sources]\n用户提供文档:《玄谋智脑建设蓝图_老板决策版.md》。案例、指标与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\n中文内容来自用户提供的老板决策版;英文为商务意译。案例与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\nAll visible Chinese content is based on the user-supplied owner decision deck. English is a concise business translation. Cases and figures remain anonymous composite examples or illustrative estimates."} +{"kind":"slide","id":"sl/14bup87q","slide":17,"title":"玄谋智脑 · 连锁企业经营决策","textShapes":19} +{"kind":"textbox","id":"sh/ytc7a1gv","slide":17,"text":"玄谋智脑 · 连锁企业经营决策\nXuanmou Intelligence · Multi-site Operations","textPreview":"玄谋智脑 · 连锁企业经营决策 | Xuanmou Intelligence · Multi-site Operations","textChars":60,"textLines":2,"bbox":[42,28,820,24]} +{"kind":"textbox","id":"sh/1c7e50ni","slide":17,"text":"验收看经营改善,不看功能数量\nMeasure business improvement, not feature count.","textPreview":"验收看经营改善,不看功能数量 | Measure business improvement, not feature count.","textChars":63,"textLines":2,"bbox":[42,62,1160,70]} +{"kind":"shape","id":"sh/gbedwfmx","slide":17,"bbox":[42,139,1196,0]} +{"kind":"textbox","id":"sh/rm5czq50","slide":17,"text":"17","textPreview":"17","textChars":2,"textLines":1,"bbox":[1182,672,56,18]} +{"kind":"textbox","id":"sh/6lwvql4v","slide":17,"text":"01","textPreview":"01","textChars":2,"textLines":1,"bbox":[42,188,50,26]} +{"kind":"textbox","id":"sh/t8ne10n6","slide":17,"text":"经营结果 / Business outcomes","textPreview":"经营结果 / Business outcomes","textChars":24,"textLines":1,"bbox":[112,174,230,48]} +{"kind":"textbox","id":"sh/snedsvml","slide":17,"text":"贡献利润·成本·损耗·库存资金\nContribution profit · Cost · Waste · Inventory cash","textPreview":"贡献利润·成本·损耗·库存资金 | Contribution profit · Cost · Waste · Inventory cash","textChars":67,"textLines":2,"bbox":[395,174,760,48]} +{"kind":"shape","id":"sh/jilcvq54","slide":17,"bbox":[112,239,1040,0]} +{"kind":"textbox","id":"sh/ihcvml4j","slide":17,"text":"02","textPreview":"02","textChars":2,"textLines":1,"bbox":[42,274,50,26]} +{"kind":"textbox","id":"sh/4by9or6l","slide":17,"text":"问题发现 / Issue detection","textPreview":"问题发现 / Issue detection","textChars":22,"textLines":1,"bbox":[112,260,230,48]} +{"kind":"textbox","id":"sh/pc7qhwn6","slide":17,"text":"发现周期·有效异常率·影响覆盖\nDetection cycle · Valid-exception rate · Impact coverage","textPreview":"发现周期·有效异常率·影响覆盖 | Detection cycle · Valid-exception rate · Impact coverage","textChars":72,"textLines":2,"bbox":[395,260,760,48]} +{"kind":"shape","id":"sh/29grm1of","slide":17,"bbox":[112,325,1040,0]} +{"kind":"textbox","id":"sh/3ap8fm50","slide":17,"text":"03","textPreview":"03","textChars":2,"textLines":1,"bbox":[42,360,50,26]} +{"kind":"textbox","id":"sh/gnepkr69","slide":17,"text":"执行闭环 / Execution loop","textPreview":"执行闭环 / Execution loop","textChars":21,"textLines":1,"bbox":[112,346,230,48]} +{"kind":"textbox","id":"sh/honqdwnu","slide":17,"text":"接收率·按期完成率·整改有效率\nAcceptance · On-time completion · Remediation effectiveness","textPreview":"接收率·按期完成率·整改有效率 | Acceptance · On-time completion · Remediation effectiveness","textChars":75,"textLines":2,"bbox":[395,346,760,48]} +{"kind":"shape","id":"sh/ulw7ihoj","slide":17,"bbox":[112,411,1040,0]} +{"kind":"textbox","id":"sh/fm58bm54","slide":17,"text":"04","textPreview":"04","textChars":2,"textLines":1,"bbox":[42,446,50,26]} +{"kind":"textbox","id":"sh/0ji9wb6t","slide":17,"text":"组织复制 / Organizational replication","textPreview":"组织复制 / Organizational replication","textChars":33,"textLines":1,"bbox":[112,432,230,48]} +{"kind":"textbox","id":"sh/14rqpgne","slide":17,"text":"复制门店数·成功率·新店导入时间\nStores replicated · Success rate · New-store ramp time","textPreview":"复制门店数·成功率·新店导入时间 | Stores replicated · Success rate · New-store ramp time","textChars":71,"textLines":2,"bbox":[395,432,760,48]} +{"kind":"shape","id":"sh/90nq9gfi","slide":17,"bbox":[112,497,1040,0]} +{"kind":"textbox","id":"sh/8ze9gbyx","slide":17,"text":"05","textPreview":"05","textChars":2,"textLines":1,"bbox":[42,532,50,26]} +{"kind":"textbox","id":"sh/ny5876xc","slide":17,"text":"数据质量 / Data quality","textPreview":"数据质量 / Data quality","textChars":19,"textLines":1,"bbox":[112,518,230,48]} +{"kind":"textbox","id":"sh/mxw7e1gr","slide":17,"text":"口径一致·完整·及时·可追溯\nConsistent · Complete · Timely · Traceable","textPreview":"口径一致·完整·及时·可追溯 | Consistent · Complete · Timely · Traceable","textChars":57,"textLines":2,"bbox":[395,518,760,48]} +{"kind":"shape","id":"sh/lwnq5gf6","slide":17,"bbox":[112,583,1040,0]} +{"kind":"shape","id":"sh/0vepcbyl","slide":17,"bbox":[42,612,1196,42]} +{"kind":"textbox","id":"sh/zul836xg","slide":17,"text":"项目启动时即确认基线、口径和外部影响因素,避免将自然波动误认为系统收益。\nAgree the baseline, definitions and external factors at launch so normal variation is not mistaken for system impact.","textPreview":"项目启动时即确认基线、口径和外部影响因素,避免将自然波动误认为系统收益。 | Agree the baseline, definitions and external factors at launch so normal variation is not mistaken...","textChars":154,"textLines":2,"bbox":[64,622,1152,24]} +{"kind":"notes","id":"nt/14bup87q","slide":17,"text":"[Sources]\n用户提供文档:《玄谋智脑建设蓝图_老板决策版.md》。案例、指标与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\n中文内容来自用户提供的老板决策版;英文为商务意译。案例与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\nAll visible Chinese content is based on the user-supplied owner decision deck. English is a concise business translation. Cases and figures remain anonymous composite examples or illustrative estimates."} +{"kind":"slide","id":"sl/y5wne50z","slide":18,"title":"玄谋智脑 / Xuanmou Intelligence","textShapes":4} +{"kind":"textbox","id":"sh/4felwzu5","slide":18,"text":"玄谋智脑 / Xuanmou Intelligence","textPreview":"玄谋智脑 / Xuanmou Intelligence","textChars":27,"textLines":1,"bbox":[42,35,240,30]} +{"kind":"textbox","id":"sh/wrelszu9","slide":18,"text":"先用 8 周,找到第一批可验证的利润机会\nStart with the first measurable profit opportunities.","textPreview":"先用 8 周,找到第一批可验证的利润机会 | Start with the first measurable profit opportunities.","textChars":74,"textLines":2,"bbox":[42,160,1040,210]} +{"kind":"textbox","id":"sh/hsn2l4bu","slide":18,"text":"再决定如何扩大应用范围 Scale only after the value is proven.","textPreview":"再决定如何扩大应用范围 Scale only after the value is proven.","textChars":50,"textLines":1,"bbox":[42,420,850,52]} +{"kind":"shape","id":"sh/itw3upcf","slide":18,"bbox":[42,610,1196,0]} +{"kind":"textbox","id":"sh/je5knut0","slide":18,"text":"让问题更早被发现 · 让整改真正落地 · 让每一次改善复制到更多门店\nFind issues earlier · Make corrective action stick · Replicate every proven improvement","textPreview":"让问题更早被发现 · 让整改真正落地 · 让每一次改善复制到更多门店 | Find issues earlier · Make corrective action stick · Replicate every proven improvement","textChars":122,"textLines":2,"bbox":[42,636,1100,30]} +{"kind":"notes","id":"nt/y5wne50z","slide":18,"text":"[Sources]\n用户提供文档:《玄谋智脑建设蓝图_老板决策版.md》。案例、指标与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\n中文内容来自用户提供的老板决策版;英文为商务意译。案例与金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。\n\n[Sources]\nAll visible Chinese content is based on the user-supplied owner decision deck. English is a concise business translation. Cases and figures remain anonymous composite examples or illustrative estimates."} \ No newline at end of file diff --git a/玄谋智脑_连锁企业老板决策版_英文主版.pptx b/玄谋智脑_连锁企业老板决策版_英文主版.pptx new file mode 100644 index 0000000000000000000000000000000000000000..54bd3bf2165caf7d049862aed693d2a7525e87bf GIT binary patch literal 97525 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�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 iM **品牌名称**:玄谋智脑 +> **核心定位**:面向连锁企业的行业数字本体与 AI 经营智脑。 +> **一句话价值**:不再新建一套孤立系统,而是整合企业现有数据,找到利润漏洞、推动责任人整改、验证改善结果,并将优秀经验复制到每一家门店。 +> **保密说明**:本文案中的企业、门店、指标和金额均为匿名复合案例或模拟测算,不代表任何单一客户的生产数据。 + +--- + +## 一、老板真正需要回答的三个问题 + +1. **我现在到底在哪里亏钱?** +2. **哪些动作能够真正提升利润?** +3. **企业从 30 家店扩张到 300 家店后,能否依然看得清、管得住?** + +连锁企业通常不缺数据,缺的是将数据转化为经营判断和改善结果的能力。真正的问题不是“有没有报表”,而是: + +- 营收增长,为什么利润没有同步增长? +- 哪些门店看起来赚钱,实际正在占用资金和管理资源? +- 哪些促销增加了订单,却消耗了贡献利润? +- 哪些 SKU 销量不低,却毛利不足、损耗过高? +- 哪些班次人员闲置,哪些高峰时段又人手不足? +- 哪些门店应该整改、缩编、迁址甚至关停? + +--- + +## 二、玄谋智脑不是又一套 BI + +BI 告诉管理者“发生了什么”;玄谋智脑还要继续回答: + +- 为什么发生? +- 影响了多少利润? +- 应该由谁采取什么动作? +- 什么时候完成? +- 执行后是否真的改善? +- 这一次经验能否复制到其他门店? + +### 经营改善闭环 + +```text +发现利润异常 + ↓ +穿透到区域、门店、SKU、班次或订单 + ↓ +测算影响金额与优先级 + ↓ +生成改善方案,明确责任人和期限 + ↓ +跟踪执行过程,验证利润是否改善 + ↓ +将有效做法沉淀为企业最佳实践 +``` + +--- + +## 三、案例一:从 SKU 数量中找到隐藏成本 + +> **匿名复合案例·SKU 组合决策** + +某区域连锁品牌约有 480 个在售 SKU。其中后 20% 的 SKU 仅贡献约 3% 销售额,却持续占用库存资金,并增加采购、盘点、报损和培训复杂度。 + +### 玄谋智脑发现 + +| 问题类型 | 模拟识别结果 | 经营影响 | +|:---|---:|:---| +| 低销量、低毛利、高损耗 SKU | 37 个 | 占用库存并产生报损 | +| 高销量但低贡献利润 SKU | 9 个 | 创造了营收假象 | +| 可共享或替换原料 SKU | 16 个 | 可降低采购与仓储复杂度 | +| 价格带重叠 SKU | 22 个 | 内部分流,增加顾客选择成本 | + +### 建议动作 + +- 下架或区域性停售低效 SKU。 +- 调整高销量低利润商品的定价、份量或配方。 +- 将可替换 SKU 纳入共享原料体系。 +- 保留必要的引流商品,但限制优惠叠加。 + +### 老板看到的结果 + +> 模拟测算:释放库存资金约 80 万元,年度减少报损约 35 万元,综合毛利率提升约 0.6 个百分点。 + +--- + +## 四、案例二:排班不是人数问题,而是供需匹配问题 + +> **匿名复合案例·门店 A-017** + +某门店月营收排名区域前三,但人效排名倒数。按月度总人数看并不显眼,穿透到半小时粒度后才发现: + +- 工作日上午存在大量闲置工时。 +- 周五晚高峰又经常缺人。 +- 班次主要依据历史习惯,没有匹配客流与订单预测。 +- 加班集中在少数岗位,正式工与小时工结构不合理。 + +### 建议动作 + +1. 按半小时预测客流、订单量和工作量。 +2. 调整早晚班起止时间,减少无效重叠。 +3. 高峰增加小时工,低峰减少固定工时。 +4. 将备餐任务提前到客流爬升前。 +5. 同时监控出品时效和顾客满意度,避免单纯压缩人力。 + +### 老板看到的结果 + +> 模拟测算:在不降低服务质量的前提下,单店每月节约人工成本约 1.8 万元;复制到 60 家门店,年度改善空间约 1,296 万元。 + +--- + +## 五、案例三:订单增长了,促销却可能正在消耗利润 + +> **匿名复合案例·营销活动 X** + +某促销活动带来约 23% 的订单增长,但穿透计算优惠、平台佣金、商品毛利、新增人工与原价订单替代后,活动贡献利润为负。 + +### 根因 + +- 低毛利商品在活动订单中占比大幅上升。 +- 高价值会员也领取了无差别优惠。 +- 一部分促销订单只是替代原价订单,并非真实增量。 +- 原有评价只看订单数和营收,没有看增量贡献利润。 + +### 改善方案 + +- 将优惠定向投放给可能流失或需要唤醒的会员。 +- 区分拉新券、复购券和唤醒券。 +- 限制低毛利商品参与优惠叠加。 +- 用“每投入 1 元营销费用增加多少贡献利润”作为核心评价指标。 + +> **经营结论**:促销不应只为订单增长负责,而应为增量利润负责。 + +--- + +## 六、案例四:将门店关停从经验判断变为情景决策 + +> **匿名复合案例·门店 D-006** + +某门店仍有营业收入,因此管理层长期无法决定是否关停。玄谋智脑不只看单月损益,还综合分析: + +- 门店贡献利润、现金流与资金占用。 +- 租金续约、装修与设备折旧。 +- 周边客群、竞争和商圈变化。 +- 同品牌门店的订单蚕食与会员迁移可能性。 +- 关停、整改、迁址和缩店的一次性成本。 + +### 十二个月情景测算 + +| 方案 | 模拟结果 | 决策建议 | +|:---|:---|:---| +| 继续经营 | 预计亏损 92 万元 | 不建议 | +| 投入整改 | 预计亏损降至 35 万元 | 风险较高,设置止损线 | +| 缩小面积 | 预计接近盈亏平衡 | 租约可重谈时考虑 | +| 关停并迁移会员 | 预计减少亏损 76 万元 | 优先建议 | + +> 玄谋智脑不替老板做关店决定,而是让难以下决心的经验判断,变成有数据依据、情景测算和退出预案的经营决策。 + +--- + +## 七、老板、总部、区域、店长共用一个经营闭环 + +| 角色 | 需要回答的问题 | 玄谋智脑提供的能力 | +|:---|:---|:---| +| **老板** | 企业是否真正赚钱?风险在哪里?资源应该投向哪里? | 企业经营全景、利润树、风险排名、情景推演 | +| **总部** | 哪些区域和业务需要调整?政策是否有效? | 跨区域对标、异常归因、资源分配与政策评估 | +| **区域** | 哪些门店异常?应该帮助谁、整改谁? | 门店分级、异常排名、整改任务与验收 | +| **店长** | 今天哪里没达标?先做什么? | 日目标卡、偏差提醒、行动建议与进度反馈 | + +```text +老板看到结果 → 总部找到原因 → 区域推动整改 → 店长执行动作 → 结果回到经营大盘 +``` + +--- + +## 八、AI 不是器人顾问,而是经营分析与执行助手 + +### AI 可以承担 + +- 自动理解并关联跨系统经营数据。 +- 持续扫描人难以长期监控的异常。 +- 将问题穿透到区域、门店、SKU、班次和订单。 +- 调用行业规则、企业制度和历史案例生成建议。 +- 模拟不同方案对营收、利润和现金流的影响。 +- 自动形成任务,跟踪执行并验证结果。 +- 从成功与失败结果中更新最佳实践。 + +### 管理边界 + +> AI 负责发现、归因、测算、建议和跟踪;价格调整、人员处置、供应商更换、门店关停等重要决策,仍由有权限的管理者审批。 + +--- + +## 九、为什么玄谋智脑不是普通 BI + +| 维度 | 普通 BI | 玄谋智脑 | +|:---|:---|:---| +| 核心定位 | 展示报表 | 驱动经营决策与改善 | +| 数据范围 | 单系统或主题报表 | 关联企业现有多系统数据 | +| 业务语义 | 字段和指标 | 门店、商品、人员、会员等行业本体及关系 | +| 问题发现 | 人主动看数据 | 系统持续发现并分级推送 | +| 问题处理 | 报告异常 | 归因、测算、生成方案和整改任务 | +| 结果验证 | 通常不跟踪 | 验证改善效果并更新经验 | +| 长期价值 | 报表越来越多 | 行业模型和企业知识越用越成熟 | + +--- + +## 十、支撑规模扩张的五层能力 + +| 能力层 | 作用 | 老板获得的价值 | +|:---|:---|:---| +| **数据资产化** | 连接 POS、ERP、WMS、HR、财务和 Excel,统一口径 | 一个数字、一个来源,减少无效争论 | +| **运营指标化** | 建立战略、运营、执行三级指标和利润关系 | 问题自动浮现,并能穿透到根因 | +| **战略穿透化** | 将年度目标拆解到区域、门店、个人和每日动作 | 战略不再留在 PPT 里 | +| **态势感知化** | 监控异常、预测趋势、推演方案 | 从事后救火转向事前预防 | +| **知识沉淀化** | 将有效动作沉淀为 SOP、规则和案例 | 优秀能力不再依赖少数能人 | + +--- + +## 十一、长期价值:企业越大,复制价值越高 + +### 1. 从依赖能人到依赖组织能力 + +优秀店长的动作被验证后,可沉淀为规则、案例和 SOP,降低换人带来的经营波动。 + +### 2. 扩张不再必然带来管理失控 + +单店验证有效的 SKU、排班、促销和损耗改善方案,可按门店特征分类复制,不必依靠老板逐店盯导。 + +### 3. 沉淀可复用的数据资产 + +玄谋智脑沉淀的不只是原始数据,还包括: + +- 统一指标口径和责任关系。 +- 门店、商品、人员、会员、供应商等业务本体。 +- 行业规则、异常模式和改善方案。 +- 决策过程、执行记录和验证结果。 +- 企业最佳实践与风险知识。 + +### 4. 提升融资与尽调的数据可信度 + +玄谋智脑可为银行授信、融资尽调和经营证明提供更完整、可追溯的数据依据,包括门店级损益、现金流、收入稳定性、风险预警、整改记录与经营预测。 + +> **边界说明**:玄谋智脑提供数据与分析支持,不承诺银行授信或融资结果。 + +--- + +## 十二、数据安全与 AI 使用边界 + +1. **不改变生产系统主体责任**:现有 POS、ERP、WMS、财务和 HR 系统继续承担业务交易与原始记录职责。 +2. **最小权限**:老板、总部、区域和门店按职责获得不同数据范围。 +3. **敏感数据保护**:身份、联系方式、薪酬、会员和财务明细等采取分级、脱敏和审计。 +4. **AI 输出可追溯**:重要结论应展示依据指标、数据时间、分析路径与适用边界。 +5. **人工审批**:高影响决策必须由管理者审批,不允许 AI 直接执行不可逆动作。 +6. **全程留痕**:数据访问、模型建议、人工修改、审批和执行结果均可审计。 + +--- + +## 十三、八周建设路径:先证明价值,再扩大范围 + +| 阶段 | 时间 | 建设重点 | 可验收成果 | +|:---|:---|:---|:---| +| **选定利润专项** | 第 1 周 | 选择 1—2 个高价值问题,明确基线与责任人 | 专项范围、基线数据、验收口径 | +| **连接现有数据** | 第 1—2 周 | 对接相关系统和 Excel,统一主体与指标口径 | 数据清单、质量报告、口径确认 | +| **发现机会与根因** | 第 3—4 周 | 建立分析模型,输出优先级机会清单 | 异常清单、影响金额、根因证据 | +| **推动整改** | 第 5—6 周 | 生成任务,由总部、区域和店长执行 | 责任人、时限、执行记录与进度 | +| **验证并复制** | 第 7—8 周 | 对比改善前后,审核因果关系,形成复制方案 | 改善金额、验收结论、最佳实践 | + +### 建议首批专项 + +优先选择“数据可获得、影响可测算、动作可执行、八周可验证”的场景: + +- SKU 组合与菜品毛利。 +- 门店排班与人效。 +- 促销活动的增量贡献利润。 +- 库存、损耗与临期商品。 +- 低效门店整改与止损。 + +--- + +## 十四、投入产出不看“上线了多少功能” + +项目验收应围绕经营结果,而不是页面数量、报表数量或 AI 对话次数。 + +| 验收维度 | 建议指标 | +|:---|:---| +| 经营结果 | 增量贡献利润、成本减少、损耗下降、库存资金释放 | +| 问题发现 | 发现周期、有效异常率、影响金额覆盖率 | +| 执行闭环 | 任务接收率、按期完成率、整改有效率 | +| 组织复制 | 有效方案复制门店数、复制成功率、新店导入时间 | +| 数据质量 | 口径一致率、数据完整率、及时率、可追溯率 | + +> 所有收益指标应在项目启动时确认基线、计算口径和外部影响因素,避免将市场、季节或门店自然波动误认为系统收益。 + +--- + +## 十五、从单点改善到企业经营复利 + +```text +更多经营场景 + ↓ +更完整的行业数字本体 + ↓ +更成熟的运营与预测模型 + ↓ +更准确、更符合企业情况的 AI 建议 + ↓ +更高质量的执行与决策反馈 + │ + └──────── 持续复利 ────────┘ +``` + +玄谋智脑的长期价值,不是为企业生产更多数据,而是将现有数据、行业知识和管理经验沉淀为一套持续进化的决策能力。 + +--- + +## 给决策者的最后一句话 + +> # 先用 8 周找到第一批可验证的利润改善机会,再决定如何扩大应用范围。 + +真正值得投入的不是一套功能,而是一项可以让问题更早被发现、让整改真正落地、让每一次改善都能复制到更多门店的经营能力。