CalcUpdate

main
DenisN 2025-06-17 09:37:24 -04:00
parent e46ecc0e68
commit 9b18bf46a6
4 changed files with 28 additions and 8 deletions

View File

@ -3,9 +3,10 @@ import { AppController } from './app.controller';
import { AppService } from './app.service';
import { ZvksmetricsModule } from './zvksmetrics/zvksmetrics.module';
import { GruberModule } from './gruber/gruber.module';
import { DatabaseModule } from './database/database.module';
@Module({
imports: [ZvksmetricsModule, GruberModule],
imports: [ZvksmetricsModule, GruberModule, DatabaseModule],
controllers: [AppController],
providers: [AppService],
})

View File

@ -0,0 +1,4 @@
import { Module } from '@nestjs/common';
@Module({})
export class DatabaseModule {}

File diff suppressed because one or more lines are too long

View File

@ -3,7 +3,7 @@ import axios, { Axios, AxiosResponse } from 'axios';
import { readFile, writeFile } from 'node:fs/promises';
import { response } from 'express';
import { json } from 'node:stream/consumers';
import math, { create, all, evaluate, number, random, complex, string } from 'mathjs'
import math, { create, all, evaluate, number, random, complex, string, SQRT1_2 } from 'mathjs'
@Injectable()
@ -127,7 +127,7 @@ export class ZvksmetricsService {
for (let i = 0; i < length; i++) {
let metr = {"source": ""};
let val = await this.setComplexMetricValue(complexCalc[i].values, complexCalc[i].formula, inputData.metrics, prevousData.metrics, devices[d], metr);
if(val){
if(val !=null || val != undefined){
let complexMetric = new MetricK2();
complexMetric.id = complexCalc[i].id;
complexMetric.name = complexCalc[i].name;
@ -148,28 +148,43 @@ export class ZvksmetricsService {
return complexData;
}
async setComplexMetricValue(value: string, formula: string, currMetrics: MetricK2[], prevMetrics: MetricK2[], device: number, obj: any): Promise<number> {
async setComplexMetricValue(value: string, formula: string, currMetrics: MetricK2[], prevMetrics: MetricK2[], device: number, obj: any): Promise<any> {
const val = JSON.parse(JSON.stringify(value));
let arr = val.arr;
// let dev = currMetrics.find(element => element.id == "measure_1217")?.id;
// console.log(dev);
let arr_len: number = arr.length;
obj.source = currMetrics.find(element => element.name == arr[0] && element.device == device)?.source;
// console.log(obj.source);
for (let i = 0; i < arr_len; i++) {
let temp = arr[i];
arr[i] = currMetrics.find(element => element.name == arr[i] && element.device == device)?.value;
// if(!arr[i]){
// console.log(arr[i], temp, device);
// arr[i]=0;
// }
}
let prevarr = val.prevarr;
if (prevarr) {
let prevarr_len: number = prevarr.length;
for (let i = 0; i < prevarr_len; i++) {
prevarr[i] = prevMetrics.find(element => element.name == prevarr[i] && element.device == device)?.value;
let temp1 = prevarr[i];
prevarr[i] = prevMetrics.find(element => element.name == prevarr[i] && element.device == device)?.value;
// console.log(prevarr[i], temp1, device);
}
}
// console.log(obj.soure);
let result: number = evaluate(formula, val);
try{
let result: number = evaluate(formula, val);
// console.log(result);
return result;
// console.log(result);
return result;
} catch {
return null;
}
}
async setMetricsStatus(metric: MetricK2, scope: MetricsRanges[]): Promise<number> {