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-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealIntakeAmountDay.java | 57 +++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 41 insertions(+), 16 deletions(-) diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealIntakeAmountDay.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealIntakeAmountDay.java index 9057b7c..4fd16a1 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealIntakeAmountDay.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealIntakeAmountDay.java @@ -221,7 +221,7 @@ lastPo.dt = DateTime.dateFrom_yyyy_MM_dd1(dV1.dt); lastPo.dtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1.dt); lastPo.rtuDtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt); - //lastPo.amount = lastPo.amount ; //鏃ョ疮璁″彇姘撮噺涓嶅彉 + //lastPo.amount = lastPo.amount ; //鏃ョ疮璁″彇姘撮噺淇濇寔涓嶅彉锛� lastPo.totalAmountLast = cdData.totalAmount ; return lastPo ; } @@ -242,17 +242,29 @@ //lastPo.dt = DateTime.dateFrom_yyyy_MM_dd1(dV1.dt);//鏃ユ湡娌″彉 lastPo.dtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1.dt); lastPo.rtuDtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt); - Double added = cdData.totalAmount - lastPo.totalAmountLast ; - if(added > 0){ - if(lastPo.amount == null){ - lastPo.amount = added ; - }else{ - lastPo.amount += added ; - } + if(cdData.totalAmount == 0.0F){ + //鍙戠幇闃�鎺у櫒涓�涓猙ug锛岀粡甯镐笂鎶ョ疮璁℃祦閲忎负0锛屾帹娴嬫槸闃�鎺у櫒鏈兘浠庢按琛ㄩ噰闆嗗埌鏁版嵁鏃朵細涓婃姤0鍊� + //杩欑鎯呭喌鏁版嵁涓嶅仛澶勭悊 + //濡傛灉姘磋〃鍒濆畨瑁咃紝鏈繘琛岃繃浠诲姟鍙栨按锛岄偅涔堢疮璁℃祦閲忎細鏄�0锛岃繖绉嶆儏鍐靛綋bug澶勭悊涔熸棤闃� + //涓婇潰鏃舵爣浣滀簡鏇存柊锛屼篃姝e父锛岀浉褰撲簬鏈涓婃姤鐨勭疮璁℃祦閲忎笌涓婃涓婃姤鐨勭疮璁℃祦閲忔暟鍊肩浉绛� + //lastPo.totalAmountLast = lastPo.totalAmountLast ; + //lastPo.amount = lastPo.amount; //鏈棩鐨勬棩绱姘撮噺淇濇寔涓嶅彉 }else{ - //po.amount = po.amount ; //鏃ョ疮璁″彇姘撮噺涓嶅彉 + Double added = cdData.totalAmount - lastPo.totalAmountLast ; + if(added > 0){ + if(lastPo.amount == null){ + lastPo.amount = added ; + }else{ + lastPo.amount += added ; + } + }else{ + //鍙兘鏄洿鎹㈡按琛ㄤ簡锛屾柊琛ㄥ簳鍊煎鍘熻〃搴曞�煎皬銆� + //鏈缃噺鍊间笉鍙橈紝涓嬫鍐嶄笂鎶ユ椂锛屽氨鑳芥甯歌绠椾簡銆� + //lastPo.amount = lastPo.amount ; //鏃ョ疮璁″彇姘撮噺涓嶅彉 + } + lastPo.totalAmountLast = cdData.totalAmount ; } - lastPo.totalAmountLast = cdData.totalAmount ; + return lastPo ; } @@ -272,14 +284,27 @@ lastPo.dt = DateTime.dateFrom_yyyy_MM_dd1(dV1.dt);//鏃ユ湡鍙樹簡 lastPo.dtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1.dt); lastPo.rtuDtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt); - Double added = cdData.totalAmount - lastPo.totalAmountLast ; - if(added > 0){ - //鏂扮殑涓�澶╃殑澶勭悊鏂瑰紡涓庡悓涓�澶╃殑澶勭悊鏂瑰紡涓嶄竴鏍� - lastPo.amount = added; + if(cdData.totalAmount == 0.0F){ + //鍙戠幇闃�鎺у櫒涓�涓猙ug锛岀粡甯镐笂鎶ョ疮璁℃祦閲忎负0锛屾帹娴嬫槸闃�鎺у櫒鏈兘浠庢按琛ㄩ噰闆嗗埌鏁版嵁鏃朵細涓婃姤0鍊� + //杩欑鎯呭喌鏁版嵁涓嶅仛澶勭悊 + //濡傛灉姘磋〃鍒濆畨瑁咃紝鏈繘琛岃繃浠诲姟鍙栨按锛岄偅涔堢疮璁℃祦閲忎細鏄�0锛岃繖绉嶆儏鍐靛綋bug澶勭悊涔熸棤闃� + //涓婇潰鏃舵爣浣滀簡鏇存柊锛屼篃姝e父锛岀浉褰撲簬鏈涓婃姤鐨勭疮璁℃祦閲忎笌涓婃涓婃姤鐨勭疮璁℃祦閲忔暟鍊肩浉绛� + //lastPo.totalAmountLast = lastPo.totalAmountLast ; + lastPo.amount = 0.0D; //鏂扮殑涓�澶╃殑鏃ョ疮璁℃按閲忕疆0 }else{ - lastPo.amount = 0.0D; //鏃ョ疮璁℃按閲忓綊0 + Double added = cdData.totalAmount - lastPo.totalAmountLast ; + if(added > 0){ + //鏂扮殑涓�澶╃殑澶勭悊鏂瑰紡涓庡悓涓�澶╃殑澶勭悊鏂瑰紡涓嶄竴鏍� + lastPo.amount = added; + }else{ + //鍙兘鏄洿鎹㈡按琛ㄤ簡锛屾柊琛ㄥ簳鍊兼瘮鍘熻〃搴曞�煎皬銆� + //鏈缃�0锛屼笅娆″啀涓婃姤鏃讹紝灏辫兘姝e父璁$畻浜嗐�� + lastPo.amount = 0.0D; //鏃ョ疮璁℃按閲忓綊0 + } + lastPo.totalAmountLast = cdData.totalAmount ; } - lastPo.totalAmountLast = cdData.totalAmount ; + + return lastPo ; } -- Gitblit v1.8.0