// MDM SORP — Capability matrix, Nomenclature, Documents, Sanctions, Search, Form-link, Schema. const { useState, useEffect, useMemo, useRef, useCallback, createContext, useContext } = React; /* ===================== CAPABILITY MATRIX ===================== */ function CapabilityScreen({ navigate }) { const { lang, t } = useI18n(); const cats = ["Подш. качения", "Подш. конические", "Гидравлика 8481", "ЧПУ Siemens 840D", "Редукторы", "Литьё чугунное", "Метизы A4", "Прокатные валки"]; const suppliers = [ { p: "p_2001", name: "SKF Middle East FZE", c: "ae", rel: "Производитель", russia: "neutral", loi: true, vals: [0.96, 0.92, 0, 0, 0, 0, 0, 0] }, { p: "p_2002", name: "Schaeffler Middle East FZE", c: "ae", rel: "Производитель", russia: "neutral", loi: true, vals: [0.94, 0.88, 0, 0, 0.4, 0, 0, 0] }, { p: "p_2004", name: "Wuxi WLR Bearings", c: "cn", rel: "Производитель", russia: "friendly", loi: false, vals: [0.91, 0.85, 0, 0, 0, 0.3, 0, 0] }, { p: "p_2005", name: "Erkunt Sanayi A.Ş.", c: "tr", rel: "Производитель", russia: "neutral", loi: false, vals: [0, 0, 0, 0, 0.72, 0.88, 0, 0] }, { p: "p_2006", name: "Siemens (Shanghai)", c: "cn", rel: "Дистрибутор", russia: "review", loi: false, vals: [0, 0, 0.7, 0.74, 0, 0, 0, 0] }, { p: null, name: "Bosch Rexroth ME", c: "ae", rel: "Дистрибутор", russia: "neutral", loi: true, vals: [0, 0, 0.94, 0.5, 0.6, 0, 0, 0] }, { p: null, name: "ZWZ Wafangdian Bearing", c: "cn", rel: "Производитель", russia: "friendly", loi: false, vals: [0.85, 0.78, 0, 0, 0, 0, 0, 0] }, { p: null, name: "Vesuvius UAE Trading", c: "ae", rel: "Дистрибутор", russia: "neutral", loi: true, vals: [0, 0, 0, 0, 0, 0, 0, 0.92] }, { p: null, name: "Severstal Forge LLC", c: "ae", rel: "Производитель", russia: "—", loi: true, vals: [0, 0, 0, 0, 0.5, 0.6, 0.96, 0.7] }, ]; return (

{lang === "ru" ? "Матрица возможностей" : "Capability matrix"}

{suppliers.length} поставщиков × {cats.length} категорий
{cats.map((_, i) => )} {cats.map((c, i) => )} {suppliers.map((s, i) => ( s.p && navigate("party", { id: s.p })}> {s.vals.map((v, j) => ( ))} ))}
Поставщик Страна Тип РФ LOI{c}
{s.name} {s.rel} {s.russia === "friendly" ? друж. : s.russia === "review" ? review : {s.russia}} {s.loi ? : } 0 ? `rgba(214,61,74,${(v * 0.55).toFixed(2)})` : "transparent", color: v > 0.5 ? "#fff" : "var(--fg-1)", fontWeight: v > 0 ? 600 : 400 }}> {v > 0 ? Math.round(v * 100) : ·}
Значения — confidence-оценка от ИИ (0–100) с учётом каталога, открытых источников и истории сделок. Клик по ячейке откроет таблицу источников.
); } /* ===================== NOMENCLATURE ===================== */ function NomenclatureScreen({ navigate }) { const { lang, t } = useI18n(); const rows = [ { id: "n_4421", sku: "SKF 6313-2RS1/C3", name: "Подшипник радиальный однорядный 65×140×33 мм", hs: "8482.10", category: "bearings", an: 4, sup: 3 }, { id: "n_4422", sku: "SKF 6315-2Z/C3", name: "Подшипник радиальный однорядный 75×160×37 мм", hs: "8482.10", category: "bearings", an: 4, sup: 3 }, { id: "n_4438", sku: "SKF 32320/Q", name: "Подшипник конический 100×215×77.5 мм", hs: "8482.20", category: "bearings", an: 3, sup: 2 }, { id: "n_4501", sku: "SKF 22220 E", name: "Подшипник самовыравнивающийся 100×180×46 мм", hs: "8482.30", category: "bearings", an: 5, sup: 4 }, { id: "n_4502", sku: "NN3014K/P5", name: "Подшипник двухрядный цилиндрический", hs: "8482.10", category: "bearings", an: 2, sup: 1 }, { id: "n_5102", sku: "BOSCH 4WE6E62/EW230N9K4", name: "Гидрораспределитель Bosch Rexroth 4/3", hs: "8481.20", category: "hydraulics", an: 1, sup: 2 }, { id: "n_5103", sku: "FESTO ADVU-25-50-A-P-A", name: "Цилиндр пневматический ADVU 25×50", hs: "8412.31", category: "pneumatics", an: 1, sup: 1 }, { id: "n_6004", sku: "Siemens 6FC5398-1AP10-0AA1", name: "Карта ЧПУ Siemens 840D", hs: "8537.10", category: "cnc", an: 0, sup: 1 }, ]; const categoryOpts = [ { value: "bearings", label: "Подшипники", color: "blue" }, { value: "hydraulics", label: "Гидравлика", color: "teal" }, { value: "pneumatics", label: "Пневматика", color: "purple" }, { value: "cnc", label: "ЧПУ / электроника", color: "orange" }, ]; const columns = [ { id: "id", label: "ID", type: "text", width: 90, mono: true }, { id: "sku", label: "Артикул", type: "primary", width: 280 }, { id: "name", label: "Название", type: "text", width: 360 }, { id: "hs", label: "HS-код", type: "text", width: 110, mono: true }, { id: "category", label: "Категория", type: "select", width: 200, options: categoryOpts }, { id: "an", label: "Аналогов", type: "number", width: 100 }, { id: "sup", label: "Поставщиков", type: "number", width: 110 }, ]; const views = [ { name: "Все", kind: "grid", count: rows.length }, { name: "Группа по категории", kind: "grid", groupBy: "category", sort: [{ field: "an", dir: "desc" }] }, { name: "Без аналогов", kind: "grid", filter: [{ field: "an", op: "is", value: 0 }] }, { name: "Карты", kind: "gallery" }, ]; return ( ); } /* ===================== DOCUMENTS ===================== */ function DocumentsScreen({ navigate }) { const { lang, t } = useI18n(); const rows = [ { id: "d_001", name: "КП-Schaeffler-SORP-3929-v3.pdf", type: "proposal", deal: [{ id: "SORP-3929", label: "ТМК подшипники" }], size: "486 KB", date: "2026-05-26", scan: false }, { id: "d_002", name: "Spec-bearings-confirmed.xlsx", type: "spec", deal: [{ id: "SORP-3929", label: "ТМК подшипники" }], size: "112 KB", date: "2026-05-22", scan: false }, { id: "d_003", name: "Заявка-Магнитка-Bosch.pdf", type: "inquiry", deal: [{ id: "SORP-3941", label: "Bosch Магнитка" }], size: "1.4 MB", date: "2026-04-25", scan: true }, { id: "d_004", name: "Invoice INV-2026-04321.pdf", type: "invoice", deal: [{ id: "SORP-3929", label: "ТМК подшипники" }], size: "230 KB", date: "2026-05-20", scan: true }, { id: "d_005", name: "Bill_of_Lading_MSC_38421.pdf", type: "customs", deal: [{ id: "SORP-3941", label: "Bosch Магнитка" }], size: "1.8 MB", date: "2026-05-18", scan: true }, { id: "d_006", name: "Pmt-Caspian-USD-104k.pdf", type: "payment", deal: [{ id: "SORP-3941", label: "Bosch Магнитка" }], size: "210 KB", date: "2026-05-16", scan: false }, { id: "d_007", name: "EAC-cert-SKF-bearings.pdf", type: "cert", deal: [{ id: "SORP-3929", label: "ТМК подшипники" }], size: "780 KB", date: "2026-04-30", scan: false }, { id: "d_008", name: "Photo-pre-shipment-MMK.jpg", type: "photo", deal: [{ id: "SORP-3941", label: "Bosch Магнитка" }], size: "3.4 MB", date: "2026-05-24", scan: false }, ]; const typeOpts = [ { value: "inquiry", label: "Заявка", color: "gray" }, { value: "proposal", label: "КП", color: "blue" }, { value: "spec", label: "Спецификация", color: "teal" }, { value: "invoice", label: "Инвойс", color: "purple" }, { value: "customs", label: "Таможня", color: "yellow" }, { value: "payment", label: "Платёж", color: "green" }, { value: "photo", label: "Фото", color: "pink" }, { value: "cert", label: "Сертификат", color: "orange" }, ]; const columns = [ { id: "name", label: "Файл", type: "primary", width: 360 }, { id: "type", label: "Тип (ИИ)", type: "select", width: 160, options: typeOpts }, { id: "deal", label: "Сделка", type: "linked", width: 220 }, { id: "date", label: "Дата", type: "date", width: 140 }, { id: "size", label: "Размер", type: "text", width: 90, mono: true }, { id: "scan", label: "Скан", type: "select", width: 110, options: [{ value: true, label: "Скан + OCR", color: "yellow" }, { value: false, label: "Цифровой", color: "gray" }] }, ]; const views = [ { name: "Все документы", kind: "grid", count: rows.length, sort: [{ field: "date", dir: "desc" }] }, { name: "По типу", kind: "kanban", stackBy: "type" }, { name: "Сканы + OCR", kind: "grid", filter: [{ field: "scan", op: "is", value: true }] }, { name: "Группа по сделке", kind: "grid", groupBy: "deal" }, ]; return ; } /* ===================== SANCTIONS ===================== */ function SanctionsScreen({ navigate }) { const { lang, t } = useI18n(); return ( <>

{t("sanctions")}

3 активных · 12 за всё время
Последний скрининг: 2026-05-27 03:21 · OpenSanctions
{[ { who: "Siemens (Shanghai) Industrial Trading", role: "supplier", list: "EAR99 advisory", det: "Связь с подсанкционной материнской · OFAC press 2026-05-24", deals: 2, val: 91000, severity: "review" }, { who: "SORP-3955 поз. 04 — Подшипник 7224", role: "deal_item", list: "Dual-use HS 8482.10", det: "Возможное применение в военной технике (роликовые подшипники для прокатных станов)", deals: 1, val: 18400, severity: "flag" }, { who: "Конечник = ТМК Волжский (≠ Северсталь-Метиз)", role: "end_user", list: "Внутренняя политика", det: "Конечный получатель отличается от заказчика. Требуется LOA от конечника для подтверждения end-use.", deals: 1, val: 1204000, severity: "review" }, ].map((c, i) => (
{c.who}
{c.list} {c.deals} сделок ${(c.val / 1000).toFixed(0)}k
{c.det}
))}
); } /* ===================== GLOBAL SEARCH (Ask AI overlay) ===================== */ function SearchScreen({ navigate, query }) { const { lang, t } = useI18n(); const [q, setQ] = useState(query || "подшипники в обход санкций"); const [tab, setTab] = useState("ai"); return (
setQ(e.target.value)}/>
{tab === "ai" && } {tab !== "ai" && (
{window.DATA.searchResults.filter(r => tab === "all" || r.type === tab).map(r => (
navigate(r.type === "deal" ? "deal" : "party", { id: r.id })}>
{r.type} {r.title} {r.id}
{r.sub}
))}
)}
); } function AiAnswer({ q, navigate }) { return (
ИИ-ответ Claude · 2.4 секунды · 5 источников

По матрице возможностей и истории сделок 4 поставщика в нашей базе могут поставить промышленные подшипники без риска вторичных санкций для конечника:

  1. SKF Middle East FZE (JAFZA, OAE) — прямой производитель, складская программа[1]. История 14 сделок, средний lead 32 дня.
  2. Wuxi WLR Bearings (Китай) — независимый производитель, дружественная юрисдикция[2]. MOQ 100 шт.
  3. ZWZ Wafangdian (Китай) — каталог под HS 8482.10, в номенклатуре есть аналог 7224C[3].
  4. Erkunt Sanayi (Турция) — комплектующие через производство, см. navigate("party", { id: "p_2005" })} style={{ color: "var(--sorp-red)", cursor: "pointer" }}>карточку поставщика.

Внимание: Siemens (Shanghai) сейчас под review из-за advisory OFAC[4]. На уровне позиций — подшипник 7224 имеет dual-use флаг (HS 8482.10) для прокатных станов[5], требуется LOA от конечника.

Источники
{[ { i: 1, name: "Capability matrix · SKF Middle East FZE", path: "/parties/p_2001" }, { i: 2, name: "Capability matrix · Wuxi WLR", path: "/parties/p_2004" }, { i: 3, name: "Nomenclature · аналоги для 7224", path: "/nomenclature/n_4501" }, { i: 4, name: "OpenSanctions advisory · 2026-05-24", path: "external" }, { i: 5, name: "Comment in Asana task 1207001984822", path: "asana://..." }, ].map(s => (
[{s.i}] {s.name} {s.path}
))}
); } /* ===================== EXTERNAL FORM-LINK ===================== */ function FormLinkScreen() { const [vals, setVals] = useState({ phone: "+7 916 ", inn: "", role: "contact", note: "" }); const [saving, setSaving] = useState(false); const [done, setDone] = useState(false); const filled = (vals.phone.length > 8 ? 1 : 0) + (vals.inn ? 1 : 0); const total = 2; if (done) { return (

Спасибо

Данные отправлены стюарду на проверку. Ссылка стала недействительной.
); } return (

Уточните данные по контрагенту

Сергей К. из SORP попросил дополнить запись. Заполните только то, что знаете — ссылка действует до 2026-05-29.
Запись p_9007 Сделка SORP-3974
В нашей базе у этой записи в имени попал служебный ID. Подскажите настоящее.
setVals(v => ({ ...v, phone: e.target.value }))} style={ffInput}/>
У нас сейчас: +7-916-четыре-нольсем — текст вместо цифр
В записи: ivanov@… — обрезано
{[ { id: "contact", l: "Контакт" }, { id: "buyer", l: "Покупатель" }, { id: "tech", l: "Технический специалист" }, { id: "manager", l: "Руководитель" }, ].map(o => ( ))}