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 { AppService } from './app.service';
import { ZvksmetricsModule } from './zvksmetrics/zvksmetrics.module'; import { ZvksmetricsModule } from './zvksmetrics/zvksmetrics.module';
import { GruberModule } from './gruber/gruber.module'; import { GruberModule } from './gruber/gruber.module';
import { DatabaseModule } from './database/database.module';
@Module({ @Module({
imports: [ZvksmetricsModule, GruberModule], imports: [ZvksmetricsModule, GruberModule, DatabaseModule],
controllers: [AppController], controllers: [AppController],
providers: [AppService], 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 { readFile, writeFile } from 'node:fs/promises';
import { response } from 'express'; import { response } from 'express';
import { json } from 'node:stream/consumers'; 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() @Injectable()
@ -127,7 +127,7 @@ export class ZvksmetricsService {
for (let i = 0; i < length; i++) { for (let i = 0; i < length; i++) {
let metr = {"source": ""}; let metr = {"source": ""};
let val = await this.setComplexMetricValue(complexCalc[i].values, complexCalc[i].formula, inputData.metrics, prevousData.metrics, devices[d], metr); 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(); let complexMetric = new MetricK2();
complexMetric.id = complexCalc[i].id; complexMetric.id = complexCalc[i].id;
complexMetric.name = complexCalc[i].name; complexMetric.name = complexCalc[i].name;
@ -148,28 +148,43 @@ export class ZvksmetricsService {
return complexData; 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)); const val = JSON.parse(JSON.stringify(value));
let arr = val.arr; let arr = val.arr;
// let dev = currMetrics.find(element => element.id == "measure_1217")?.id;
// console.log(dev);
let arr_len: number = arr.length; let arr_len: number = arr.length;
obj.source = currMetrics.find(element => element.name == arr[0] && element.device == device)?.source; obj.source = currMetrics.find(element => element.name == arr[0] && element.device == device)?.source;
// console.log(obj.source); // console.log(obj.source);
for (let i = 0; i < arr_len; i++) { 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; 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; let prevarr = val.prevarr;
if (prevarr) { if (prevarr) {
let prevarr_len: number = prevarr.length; let prevarr_len: number = prevarr.length;
for (let i = 0; i < prevarr_len; i++) { 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); // 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); // console.log(result);
return result; } catch {
return null;
}
} }
async setMetricsStatus(metric: MetricK2, scope: MetricsRanges[]): Promise<number> { async setMetricsStatus(metric: MetricK2, scope: MetricsRanges[]): Promise<number> {