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