| | |
| | | // 超标临近 |
| | | let exceedingNearCount = 0; |
| | | // 超标次数临界 |
| | | let exceedindCriticalDegree = 0; |
| | | let exceedingCriticalDegree = 0; |
| | | |
| | | // 保存出现的不同异常类型 |
| | | let exception = []; |
| | |
| | | } else if (item.exceptionType == 5) { |
| | | exceedingNearCount++; |
| | | } else if (item.exceptionType == 6) { |
| | | exceedindCriticalDegree++; |
| | | exceedingCriticalDegree++; |
| | | } |
| | | |
| | | // 异常类型聚集度 |
| | |
| | | sum = sum + mutationCount - 1; |
| | | } |
| | | if (exceedingNearCount > 1) { |
| | | sum = sum + exceedindCriticalDegree - 1; |
| | | sum = sum + exceedingNearCount - 1; |
| | | } |
| | | if (exceedindCriticalDegree > 1) { |
| | | sum = sum + exceedindCriticalDegree - 1; |
| | | if (exceedingCriticalDegree > 1) { |
| | | sum = sum + exceedingCriticalDegree - 1; |
| | | } |
| | | |
| | | switch (sum) { |
| | | case 0: |
| | | exceptionTyprRecurRate = sum / 3; |
| | | switch (true) { |
| | | case (sum == 0 || sum == 1) : |
| | | exceptionTyprRecurRate = (sum / 3).toFixed(2); |
| | | break; |
| | | case 1: |
| | | exceptionTyprRecurRate = sum / 3; |
| | | break; |
| | | case 2: |
| | | case sum >= 3: |
| | | case (sum == 2|| sum >=3) : |
| | | exceptionTyprRecurRate = 1; |
| | | break; |
| | | default: |
| | | return 'error'; |
| | | } |
| | | |
| | | exceptionTypeAggregation = exception.length / 8; |
| | | exceptionTypeAggregation = (exception.length / 8).toFixed(2); |
| | | |
| | | let obj = {}; |
| | | obj['exceptionRecurrence'] = exceptionTyprRecurRate; |
| | |
| | | const table = [] |
| | | let i = 0 |
| | | anaData.forEach((res) =>{ |
| | | |
| | | let siteName = res.name |
| | | // 从分析数据中得到设备编号 |
| | | let mnCode = res.mnCode |
| | | // 找到异常数据中mnCode等于value的对象 |