|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.dy.common.mw.protocol.Data; | 
|---|
|  |  |  | import com.dy.common.mw.protocol.p206V1_0_0.DataV1_0_1; | 
|---|
|  |  |  | import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataAlarmVo; | 
|---|
|  |  |  | import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCdC0Vo; | 
|---|
|  |  |  | import com.dy.common.mw.protocol.p206V202404.DataV202404; | 
|---|
|  |  |  | import com.dy.common.mw.protocol.p206V202404.upVos.DataCd83Vo; | 
|---|
|  |  |  | 
|---|
|  |  |  | import com.dy.pipIrrGlobal.pojoRm.RmOnHourReportLast; | 
|---|
|  |  |  | import com.dy.pipIrrGlobal.pojoRm.RmTimingReportHistory; | 
|---|
|  |  |  | import com.dy.pipIrrGlobal.pojoRm.RmTimingReportLast; | 
|---|
|  |  |  | import com.dy.rtuMw.server.ServerProperties; | 
|---|
|  |  |  | import com.dy.rtuMw.server.forMs.SendMsCache; | 
|---|
|  |  |  | import com.dy.rtuMw.server.rtuData.TaskSurpport; | 
|---|
|  |  |  | import com.dy.rtuMw.server.rtuData.dbSv.DbSv; | 
|---|
|  |  |  | import org.apache.logging.log4j.LogManager; | 
|---|
|  |  |  | 
|---|
|  |  |  | * @param cdData 自报数据对象 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private void saveOrUpdateLast(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCdC0Vo cdData) throws Exception { | 
|---|
|  |  |  | RmOnHourReportLast po = sv.getRmOnHourReportLast(rtuAddr) ; | 
|---|
|  |  |  | RmOnHourReportLast po = sv.getRmOnHourReportLast(controller.getIntakeId()) ; | 
|---|
|  |  |  | if(po == null){ | 
|---|
|  |  |  | po = new RmOnHourReportLast(); | 
|---|
|  |  |  | po.controllerId = controller==null?null:controller.getId(); | 
|---|
|  |  |  | 
|---|
|  |  |  | po.rtuAddr = rtuAddr; | 
|---|
|  |  |  | po.valueFrom(dV1_0_1, cdData); | 
|---|
|  |  |  | sv.saveRmOnHourReportLast(po) ; | 
|---|
|  |  |  | if(po.lossAmount >= ServerProperties.intakeAlarmLossMinValue){ | 
|---|
|  |  |  | this.sendMessage(controller, po.lossAmount); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | po.controllerId = controller==null?null:controller.getId(); | 
|---|
|  |  |  | po.intakeId = controller==null?null:controller.getIntakeId(); | 
|---|
|  |  |  | po.valueFrom(dV1_0_1, cdData); | 
|---|
|  |  |  | sv.updateRmOnHourReportLast(po); | 
|---|
|  |  |  | if(po.lossAmount >= ServerProperties.intakeAlarmLossMinValue){ | 
|---|
|  |  |  | this.sendMessage(controller, po.lossAmount); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | po.valueFrom(dV1_0_1, cdData); | 
|---|
|  |  |  | sv.saveRmOnHourReportHistory(po); ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 向钉钉发送消息 | 
|---|
|  |  |  | * @param controller | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private void sendMessage(PrController controller, Double lossAmount){ | 
|---|
|  |  |  | String ms = "取水口“" + controller.getIntakeName() + "”漏水报警,今日漏损量" + lossAmount + "立方米"; | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | SendMsCache.cacheMs(ms); | 
|---|
|  |  |  | }catch (Exception e){ | 
|---|
|  |  |  | log.error("缓存钉钉消息异常:", e); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|