Поправил подсчет

This commit is contained in:
fedora42 2026-03-19 17:29:48 +03:00
parent 7ea9c8333d
commit 14c0b44312

View File

@ -12,6 +12,9 @@ FYI
import { readFile } from 'fs/promises'; import { readFile } from 'fs/promises';
const result = { const result = {
isInPlan: null, // Считать в плане
index: null, // Индекс
disciplineName: '', //Наиманование
formOfInterimAssessment: { //Формы пром. атт. formOfInterimAssessment: { //Формы пром. атт.
exam: 0, //экзамен exam: 0, //экзамен
credit: 0, //зачет credit: 0, //зачет
@ -19,7 +22,6 @@ const result = {
}, },
ectsCredits: 0, // з.е. - Факт ectsCredits: 0, // з.е. - Факт
totalAcademicHours: { // Итого акад. часов totalAcademicHours: { // Итого акад. часов
byPlan: 0, // По плану byPlan: 0, // По плану
contRab: 0, // Конт. раб. summ - 101+102+103+104+110+111+112+116+143 contRab: 0, // Конт. раб. summ - 101+102+103+104+110+111+112+116+143
@ -48,13 +50,19 @@ async function getJSON() {
async function getDisciplineCode(data, discipline) { async function getDisciplineCode(data, discipline) {
const filteredData = data['diffgr:diffgram']['dsMMISDB']['ПланыСтроки'].filter(item => item['@']['Дисциплина'] === 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) { async function getHours(disciplineCode, data) {
const filteredData = data['diffgr:diffgram']['dsMMISDB']['ПланыНовыеЧасы'].filter(item => item['@']['КодОбъекта'] === disciplineCode); const filteredData = data['diffgr:diffgram']['dsMMISDB']['ПланыНовыеЧасы'].filter(item => item['@']['КодОбъекта'] === disciplineCode);
// console.log(filteredData)
console.log(filteredData)
return filteredData return filteredData
} }
@ -62,7 +70,15 @@ async function countHours(hoursArray) {
hoursArray.forEach(item => { hoursArray.forEach(item => {
switch (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": case "101":
result.totalAcademicHours.lec = result.totalAcademicHours.lec + Number(item['@']["Количество"]) result.totalAcademicHours.lec = result.totalAcademicHours.lec + Number(item['@']["Количество"])
break; break;
@ -109,7 +125,7 @@ async function main() {
const disciplineCode = await getDisciplineCode(json, 'Правоведение'); const disciplineCode = await getDisciplineCode(json, 'Правоведение');
const hoursArray = await getHours(disciplineCode, json); const hoursArray = await getHours(disciplineCode, json);
countHours(hoursArray) 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) console.log(result)
} }
main(); main();