From 14c0b443122960a039dbd2584299b6d577562d7c Mon Sep 17 00:00:00 2001 From: fedora42 Date: Thu, 19 Mar 2026 17:29:48 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=BE=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=BF=D0=BE=D0=B4=D1=81=D1=87=D0=B5=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/parser/index.ts | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/parser/index.ts b/src/parser/index.ts index 885f22b..57c60a1 100644 --- a/src/parser/index.ts +++ b/src/parser/index.ts @@ -12,6 +12,9 @@ FYI import { readFile } from 'fs/promises'; const result = { + isInPlan: null, // Считать в плане + index: null, // Индекс + disciplineName: '', //Наиманование formOfInterimAssessment: { //Формы пром. атт. exam: 0, //экзамен credit: 0, //зачет @@ -19,7 +22,6 @@ const result = { }, ectsCredits: 0, // з.е. - Факт - totalAcademicHours: { // Итого акад. часов byPlan: 0, // По плану contRab: 0, // Конт. раб. summ - 101+102+103+104+110+111+112+116+143 @@ -48,13 +50,19 @@ async function getJSON() { async function getDisciplineCode(data, discipline) { const filteredData = data['diffgr:diffgram']['dsMMISDB']['ПланыСтроки'].filter(item => item['@']['Дисциплина'] === discipline); - return filteredData[0]['@']['Код'] + result.isInPlan = filteredData[0]['@']['СчитатьВПлане']; + result.index = filteredData[0]['@']['ДисциплинаКод']; + result.disciplineName = filteredData[0]['@']['Дисциплина']; + result.ectsCredits = filteredData[0]['@']['ЗЕТфакт']; + result.totalAcademicHours.byPlan = filteredData[0]['@']['ЧасовПоПлану']; + return filteredData[0]['@']['Код']; } async function getHours(disciplineCode, data) { const filteredData = data['diffgr:diffgram']['dsMMISDB']['ПланыНовыеЧасы'].filter(item => item['@']['КодОбъекта'] === disciplineCode); - // console.log(filteredData) + + console.log(filteredData) return filteredData } @@ -62,7 +70,15 @@ async function countHours(hoursArray) { hoursArray.forEach(item => { switch (item['@']["КодВидаРаботы"]) { - + case "1": + result.formOfInterimAssessment.exam = Number(item['@']["Количество"]) + break; + case "2": + result.formOfInterimAssessment.credit = Number(item['@']["Количество"]) + break; + case "3": + result.formOfInterimAssessment.gradedCredit = Number(item['@']["Количество"]) + break; case "101": result.totalAcademicHours.lec = result.totalAcademicHours.lec + Number(item['@']["Количество"]) break; @@ -109,7 +125,7 @@ async function main() { const disciplineCode = await getDisciplineCode(json, 'Правоведение'); const hoursArray = await getHours(disciplineCode, json); countHours(hoursArray) - result.totalAcademicHours.contRab = result.totalAcademicHours.lec + result.totalAcademicHours.lab + result.totalAcademicHours.pr + result.totalAcademicHours.sem + result.totalAcademicHours.sr + result.totalAcademicHours.kontrol + result.totalAcademicHours.gz +result.totalAcademicHours.tz + result.totalAcademicHours.ksu + result.totalAcademicHours.kl + result.totalAcademicHours.zach; + result.totalAcademicHours.contRab = result.totalAcademicHours.lec + result.totalAcademicHours.lab + result.totalAcademicHours.pr + result.totalAcademicHours.sem + result.totalAcademicHours.gz + result.totalAcademicHours.tz + result.totalAcademicHours.ksu + result.totalAcademicHours.kl + result.totalAcademicHours.zach; console.log(result) } main(); \ No newline at end of file