v3: данные из Excel (2060 записей) загружены в JSON, сервер упрощён
This commit is contained in:
parent
e78d2e2b8c
commit
d039016938
@ -2,9 +2,6 @@
|
|||||||
"name": "pdz-report",
|
"name": "pdz-report",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "commonjs",
|
"type": "commonjs",
|
||||||
"dependencies": {
|
|
||||||
"xlsx": "*"
|
|
||||||
},
|
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "node server.js"
|
"start": "node server.js"
|
||||||
}
|
}
|
||||||
|
|||||||
35
server.js
35
server.js
@ -1,46 +1,17 @@
|
|||||||
const http = require("http");
|
const http = require("http");
|
||||||
const fs = require("fs");
|
const fs = require("fs");
|
||||||
const path = require("path");
|
const path = require("path");
|
||||||
const XLSX = require("xlsx");
|
|
||||||
|
|
||||||
const PORT = process.env.PORT || 3000;
|
const PORT = process.env.PORT || 3000;
|
||||||
const DATA_FILE = path.join(__dirname, "123-1.xlsx");
|
const DATA_FILE = path.join(__dirname, "data.json");
|
||||||
|
|
||||||
let cachedData = null;
|
let cachedData = null;
|
||||||
|
|
||||||
function loadData() {
|
function loadData() {
|
||||||
if (cachedData) return cachedData;
|
if (cachedData) return cachedData;
|
||||||
try {
|
try {
|
||||||
const wb = XLSX.readFile(DATA_FILE);
|
const content = fs.readFileSync(DATA_FILE, "utf8");
|
||||||
const ws = wb.Sheets["Проблемная B2G июнь"];
|
cachedData = JSON.parse(content);
|
||||||
const rows = XLSX.utils.sheet_to_json(ws);
|
|
||||||
cachedData = rows.map(r => ({
|
|
||||||
"Регион": r["Регион"] || "",
|
|
||||||
"Сервер": r["Сервер"] || "",
|
|
||||||
"Район": r["Район CRM"] || "",
|
|
||||||
"Город": r["Город"] || "",
|
|
||||||
"Адрес": r["Адрес CRM"] || "",
|
|
||||||
"Сегмент": r["Сегмент"] || "",
|
|
||||||
"Категория": r["Категория"] || "",
|
|
||||||
"Лицевой счет": r["Лицевой счет"] || "",
|
|
||||||
"Абонент": r["Абонент"] || "",
|
|
||||||
"БИН": r["БИН/ИИН"] || "",
|
|
||||||
"Контракт": r["номер контракта crm"] || "",
|
|
||||||
"Начало": r["начало действия crm"] || "",
|
|
||||||
"Конец": r["Макс дата образования ДЗ"] || "",
|
|
||||||
"ДЗ итого": r["Дебиторская задолженность(Итого)"] || 0,
|
|
||||||
"ПДЗ": r["ПДЗ"] || 0,
|
|
||||||
"ИТОГО ПДЗ": r["ИТОГО ПДЗ на 01.06.2026"] || r["ИТОГО ПДЗ"] || 0,
|
|
||||||
"ЛС CRM": r["ЛС CRM 2.0"] || "",
|
|
||||||
"Менеджер": r["персональный менеджер"] || "",
|
|
||||||
"Период": r["период внесения"] || "",
|
|
||||||
"Статус С/Д": r["С/Д июнь"] || r["С/Д май"] || "",
|
|
||||||
"Статус": r["Статусы июнь"] || r["Статусы май"] || "",
|
|
||||||
"Отработка": r["Текущий статус июнь"] || r["Текущий статус май"] || "",
|
|
||||||
"Причина": r["Причина июнь"] || r["Причина май"] || "",
|
|
||||||
"Ход работы": r["Ход работы июнь"] || "",
|
|
||||||
"Сотрудник": r["Сотрудник"] || ""
|
|
||||||
})).filter(r => r["Абонент"] && r["Лицевой счет"]);
|
|
||||||
return cachedData;
|
return cachedData;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error("Ошибка загрузки данных:", e.message);
|
console.error("Ошибка загрузки данных:", e.message);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user