From b397edee2be2dfcc3f28eeac50298b4de26b1afa Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期五, 13 十二月 2024 16:53:45 +0800 Subject: [PATCH] 取水口日取水量表中,出现一些大数,明显不正确,发析系统日志,发现一些阀控器会上报一些累计流量为0的数据,且无规律,推测是其不能从水表读取到累计流量时会上报0值。如果间歇上报0值,间歇上报一些非0值,非0值减去0值,就会出现大数,一天中出现几次那么会大数进行累加,数值将更大。为此变更算法,规避这种情况,但也会丢失一些流量值。 --- pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/PrefixedDataAvailablePool.java | 11 +++++------ 1 files changed, 5 insertions(+), 6 deletions(-) diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/PrefixedDataAvailablePool.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/PrefixedDataAvailablePool.java index bb9761b..ba5b121 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/PrefixedDataAvailablePool.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/PrefixedDataAvailablePool.java @@ -24,22 +24,21 @@ List<PrefixedDataAvailable> list = pool.get(className) ; if(list == null){ list = new ArrayList<>() ; - }else{ + pool.put(className, list) ; + }else if(list.size() > 0){ obj = list.get(0) ; + list.remove(0) ; } - if(obj != null){ - list.remove(0) ; - return obj ; - }else{ + if(obj == null){ try { obj = (PrefixedDataAvailable)clazz.getDeclaredConstructor().newInstance() ; //obj = (PrefixedDataAvailable)clazz.newInstance(); } catch (Exception e) { throw new Exception( "鐢�" + className + "鐢熸垚瀹炰緥澶辫触锛�"); } - return obj ; } + return obj ; } /** -- Gitblit v1.8.0