Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV
| | |
| | | } |
| | | |
| | | /** |
| | | * 当命令结果返回的网址是此值时,忽略执行,例如中间件主动下发的命令,就不用返回命令结果 |
| | | */ |
| | | public static final String ignoreRtuResultSendWebUrl = "http://0.0.0.0" ; |
| | | |
| | | |
| | | /** |
| | | * 默认命令ID |
| | | * 如果命令不在数据库中存储,或其他可以用defaultId |
| | | */ |
| | |
| | | byte[] bs = new byte[10]; |
| | | Double remainMoneyAlarmDb = cvo.remainMoneyAlarm * 100.0; |
| | | Integer remainMoneyAlarmInt = remainMoneyAlarmDb.intValue(); |
| | | ByteUtilUnsigned.short2Bytes_LE(bs, remainMoneyAlarmInt.shortValue(), index); |
| | | byte[] bb = ByteUtil.int2BCD_LE(remainMoneyAlarmInt) ; |
| | | if(bb.length == 1){ |
| | | bs[0] = bb[0] ; |
| | | }else if(bb.length == 2){ |
| | | bs[0] = bb[0] ; |
| | | bs[1] = bb[1] ; |
| | | } |
| | | //ByteUtilUnsigned.short2Bytes_LE(bs, remainMoneyAlarmInt.shortValue(), index); |
| | | index += 2; |
| | | GlCreate.createPw(bs, index); |
| | | index += 2; |
| | |
| | | |
| | | import com.dy.common.mw.protocol.*; |
| | | import com.dy.common.mw.protocol.p206V1_0_0.*; |
| | | import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd38And68Vo; |
| | | import com.dy.common.util.ByteUtil; |
| | | import com.dy.common.util.ByteUtilUnsigned; |
| | | import org.apache.logging.log4j.LogManager; |
| | | import org.apache.logging.log4j.Logger; |
| | |
| | | * @throws Exception 异常 |
| | | */ |
| | | protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception { |
| | | // DataV1_0_1 dV1 = (DataV1_0_1)data.getSubData() ; |
| | | // DataCd38Vo cdData = new DataCd38Vo() ; |
| | | // dV1.subData = cdData ; |
| | | // int remainMoneyAlarmInt = ByteUtilUnsigned.bytes2Short_LE(bs, ProtocolConstantV206V1_0_0.dataIndex) ; |
| | | // cdData.remainMoneyAlarm = remainMoneyAlarmInt/100.0D; |
| | | DataV1_0_1 dV1 = (DataV1_0_1)data.getSubData() ; |
| | | DataCd38And68Vo cdData = new DataCd38And68Vo() ; |
| | | dV1.subData = cdData ; |
| | | int remainMoneyAlarmInt = ByteUtil.BCD2Int_LE(bs, ProtocolConstantV206V1_0_0.dataIndex, ProtocolConstantV206V1_0_0.dataIndex + 1) ; |
| | | cdData.remainMoneyAlarm = remainMoneyAlarmInt/100.0D; |
| | | } |
| | | |
| | | } |
| | |
| | | byte[] bs = new byte[11]; |
| | | Double currentDb = cvo.current * 100; |
| | | Integer currentInt = currentDb.intValue(); |
| | | ByteUtilUnsigned.int2Bytes_LE(bs, currentInt.shortValue(), index); |
| | | index += 3;//上面是三byte的数值 |
| | | ByteUtilUnsigned.short2Bytes_LE(bs, currentInt.shortValue(), index); |
| | | index += 2;//上面是两字节数值 |
| | | GlCreate.createPw(bs, index); |
| | | index += 2; |
| | | GlCreate.createTp(bs, index); |
| | |
| | | DataV1_0_1 dV1 = (DataV1_0_1)data.getSubData() ; |
| | | DataCd3AAnd6AVo cdData = new DataCd3AAnd6AVo() ; |
| | | dV1.subData = cdData ; |
| | | Long batteryVoltAlarm = ByteUtilUnsigned.bytes2Int_LE(bs, ProtocolConstantV206V1_0_0.dataIndex, true) ; |
| | | cdData.current = batteryVoltAlarm/1000.0D; |
| | | int alarm = ByteUtilUnsigned.bytes2Short_LE(bs, ProtocolConstantV206V1_0_0.dataIndex) ; |
| | | cdData.current = alarm/100.0D ; |
| | | } |
| | | |
| | | } |
| | |
| | | import com.dy.common.mw.protocol.*; |
| | | import com.dy.common.mw.protocol.p206V1_0_0.*; |
| | | import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd38And68Vo; |
| | | import com.dy.common.util.ByteUtil; |
| | | import com.dy.common.util.ByteUtilUnsigned; |
| | | import org.apache.logging.log4j.LogManager; |
| | | import org.apache.logging.log4j.Logger; |
| | |
| | | DataV1_0_1 dV1 = (DataV1_0_1)data.getSubData() ; |
| | | DataCd38And68Vo cdData = new DataCd38And68Vo() ; |
| | | dV1.subData = cdData ; |
| | | int alarm = ByteUtilUnsigned.bytes2Short_LE(bs, ProtocolConstantV206V1_0_0.dataIndex) ; |
| | | int alarm = ByteUtil.BCD2Int_LE(bs, ProtocolConstantV206V1_0_0.dataIndex, ProtocolConstantV206V1_0_0.dataIndex + 1) ; |
| | | cdData.remainMoneyAlarm = alarm/100.0D ; |
| | | } |
| | | |
| | |
| | | import com.dy.common.mw.protocol.*; |
| | | import com.dy.common.mw.protocol.p206V1_0_0.*; |
| | | import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd39And69Vo; |
| | | import com.dy.common.util.ByteUtil; |
| | | import com.dy.common.util.ByteUtilUnsigned; |
| | | import org.apache.logging.log4j.LogManager; |
| | | import org.apache.logging.log4j.Logger; |
| | |
| | | DataV1_0_1 dV1 = (DataV1_0_1)data.getSubData() ; |
| | | DataCd39And69Vo cdData = new DataCd39And69Vo() ; |
| | | dV1.subData = cdData ; |
| | | //int alarm = ByteUtil.BCD2Int_LE(bs, ProtocolConstantV206V1_0_0.dataIndex, ProtocolConstantV206V1_0_0.dataIndex + 1) ; |
| | | int alarm = ByteUtilUnsigned.bytes2Short_LE(bs, ProtocolConstantV206V1_0_0.dataIndex) ; |
| | | cdData.batteryVoltAlarm = alarm/100.0D ; |
| | | } |
| | |
| | | import com.dy.common.mw.protocol.*; |
| | | import com.dy.common.mw.protocol.p206V1_0_0.*; |
| | | import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd3AAnd6AVo; |
| | | import com.dy.common.util.ByteUtil; |
| | | import com.dy.common.util.ByteUtilUnsigned; |
| | | import org.apache.logging.log4j.LogManager; |
| | | import org.apache.logging.log4j.Logger; |
| | |
| | | DataV1_0_1 dV1 = (DataV1_0_1)data.getSubData() ; |
| | | DataCd3AAnd6AVo cdData = new DataCd3AAnd6AVo() ; |
| | | dV1.subData = cdData ; |
| | | Long alarm = ByteUtilUnsigned.bytes2Int_LE(bs, ProtocolConstantV206V1_0_0.dataIndex, true) ; |
| | | cdData.current = alarm/1000.0D ; |
| | | if(!ByteUtil.bytesIsAll0xFF(bs, ProtocolConstantV206V1_0_0.dataIndex, 2)){ |
| | | int alarm = ByteUtilUnsigned.bytes2Short_LE(bs, ProtocolConstantV206V1_0_0.dataIndex) ; |
| | | cdData.current = alarm/100.0D ; |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | |
| | | import com.dy.common.mw.protocol.*; |
| | | import com.dy.common.mw.protocol.p206V1_0_0.*; |
| | | import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd3BAnd6BVo; |
| | | import com.dy.common.util.ByteUtil; |
| | | import com.dy.common.util.ByteUtilUnsigned; |
| | | import org.apache.logging.log4j.LogManager; |
| | | import org.apache.logging.log4j.Logger; |
| | |
| | | DataV1_0_1 dV1 = (DataV1_0_1)data.getSubData() ; |
| | | DataCd3BAnd6BVo cdData = new DataCd3BAnd6BVo() ; |
| | | dV1.subData = cdData ; |
| | | int alarm = ByteUtilUnsigned.bytes2Short_LE(bs, ProtocolConstantV206V1_0_0.dataIndex) ; |
| | | cdData.second = alarm ; |
| | | if(ByteUtil.bytesIsAll0xFF(bs, ProtocolConstantV206V1_0_0.dataIndex, 2)){ |
| | | int alarm = ByteUtilUnsigned.bytes2Short_LE(bs, ProtocolConstantV206V1_0_0.dataIndex) ; |
| | | cdData.second = alarm ; |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | |
| | | ByteUtil.hex2Bytes(para.commandCode, bsHead, index) ; |
| | | |
| | | if(para.param == null){ |
| | | throw new Exception("未提供命令参数数据,不能构造功能码为" + para.commandCode + "的下行命令") ; |
| | | }else{ |
| | | index = 0 ; |
| | | byte[] bs = new byte[8] ; |
| | | GlCreate.createPw(bs, index); |
| | | index += 2 ; |
| | | GlCreate.createTp(bs, index); |
| | | bytes = ByteUtil.bytesMerge(bsHead, bs) ; |
| | | } |
| | | index = 0 ; |
| | | byte[] bs = new byte[8] ; |
| | | GlCreate.createPw(bs, index); |
| | | index += 2 ; |
| | | GlCreate.createTp(bs, index); |
| | | bytes = ByteUtil.bytesMerge(bsHead, bs) ; |
| | | |
| | | GlCreate.createLen(bytes);//长度放字节数组中 |
| | | |
| | |
| | | /** |
| | | * select by rtuAddr |
| | | * |
| | | * @param rtuAddr rtuAddr |
| | | * @return object by rtuAddr |
| | | * @param intakeId |
| | | * @return object by intakeId |
| | | */ |
| | | List<RmAlarmStateLast> selectByRtuAddr(String rtuAddr); |
| | | List<RmAlarmStateLast> selectByIntakeId(Long intakeId); |
| | | } |
| | |
| | | |
| | | /** |
| | | * select by rtuAddr |
| | | * @param rtuAddr 控制器地址 |
| | | * @param intakeId 控制器所绑取水口ID |
| | | * @return object by rtuAddr |
| | | */ |
| | | List<RmLossLast> selectByRtuAddr(String rtuAddr) ; |
| | | List<RmLossLast> selectByIntakeId(Long intakeId) ; |
| | | /** |
| | | * select by dt |
| | | * @param date 日期(yyyy-mm-dd) |
| | |
| | | |
| | | /** |
| | | * 根据阀控器地址获取整点上报最新数据 |
| | | * @param rtuAddr |
| | | * @param intakeId |
| | | * @return |
| | | */ |
| | | List<RmOnHourReportLast> getRmOnHourReportLast(String rtuAddr); |
| | | List<RmOnHourReportLast> getRmOnHourReportLast(Long intakeId); |
| | | } |
| | |
| | | /** |
| | | * select by rtuAddr |
| | | * |
| | | * @param rtuAddr rtuAddr |
| | | * @param intakeId intakeId |
| | | * @return object by rtuAddr |
| | | */ |
| | | List<RmOpenCloseValveLast> selectByRtuAddr(String rtuAddr); |
| | | List<RmOpenCloseValveLast> selectByIntakeId(Long intakeId); |
| | | } |
| | |
| | | |
| | | /** |
| | | * 根据阀控器地址获取定点上报最新数据 |
| | | * @param rtuAddr |
| | | * @param intakeId |
| | | * @return |
| | | */ |
| | | List<RmTimingReportLast> getRmTimingReportLast(String rtuAddr); |
| | | List<RmTimingReportLast> getRmTimingReportLast(Long intakeId); |
| | | } |
| | |
| | | /** |
| | | * select by primary key |
| | | * |
| | | * @param rtuAddr 控制器地址 |
| | | * @param intakeId 控制器所绑取水口对象id |
| | | * @return object by rtuAddr |
| | | */ |
| | | List<RmWorkReportLast> selectByRtuAddr(String rtuAddr); |
| | | List<RmWorkReportLast> selectByIntakeId(Long intakeId); |
| | | } |
| | |
| | | * 累计漏损水量 |
| | | */ |
| | | @Schema(description = "累计漏损水量", requiredMode = Schema.RequiredMode.NOT_REQUIRED) |
| | | public Double loss; |
| | | public Double loss; |
| | | |
| | | /** |
| | | * 最后计水量的控制器ID(外键) |
| | |
| | | package com.dy.pipIrrGlobal.pojoRm; |
| | | |
| | | import com.dy.common.mw.protocol.p206V1_0_0.DataV1_0_1; |
| | | import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd83CloseVo; |
| | | import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd83OpenVo; |
| | | import com.dy.common.mw.protocol.p206V202404.DataV202404; |
| | | import com.dy.common.mw.protocol.p206V202404.upVos.DataCd84Vo; |
| | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import lombok.*; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * @Author: liurunyu |
| | |
| | | /** |
| | | * 本次使用电量 |
| | | */ |
| | | public Double thisEle; |
| | | public Double clThisEle; |
| | | |
| | | public void valueFrom(DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo) throws Exception { |
| | | this.opDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt); |
| | |
| | | this.clOrderNo = null;//江海协议特有 |
| | | this.clEleTotalAmount = null;//江海协议特有 |
| | | this.clWaterRemainUser = null;//江海协议特有 |
| | | this.thisEle = null;//江海协议特有 |
| | | this.clThisEle = null;//江海协议特有 |
| | | } |
| | | |
| | | public void valueFrom(DataV1_0_1 dV1_0_1, DataCd83CloseVo dataCd83CloseVo) throws Exception { |
| | | this.clDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt); |
| | | this.clType = dataCd83CloseVo.type; |
| | | this.clTotalAmount = dataCd83CloseVo.totalAmount; |
| | | this.clIcCardNo = dataCd83CloseVo.icCardNo; |
| | | this.clIcCardAddr = dataCd83CloseVo.icCardAddr; |
| | | this.clRemainMoney = dataCd83CloseVo.remainMoney; |
| | | this.clThisAmount = dataCd83CloseVo.thisAmount; |
| | | this.clThisMoney = dataCd83CloseVo.thisMoney; |
| | | this.clThisTime = dataCd83CloseVo.thisTime; |
| | | this.clOpenDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt); |
| | | this.closeDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt); |
| | | |
| | | this.clOrderNo = null;//江海协议特有 |
| | | this.clEleTotalAmount = null;//江海协议特有 |
| | | this.clWaterRemainUser = null;//江海协议特有 |
| | | this.clThisEle = null;//江海协议特有 |
| | | } |
| | | |
| | | public void valueFrom84(DataV202404 dataV202404, DataCd84Vo cdData) throws Exception { |
| | |
| | | this.clOrderNo = null;//江海协议特有 |
| | | this.clEleTotalAmount = null;//江海协议特有 |
| | | this.clWaterRemainUser = null;//江海协议特有 |
| | | this.thisEle = null;//江海协议特有 |
| | | this.clThisEle = null;//江海协议特有 |
| | | } |
| | | |
| | | public void valueFrom85(DataV202404 dataV202404, DataCd85Vo cdData) throws Exception { |
| | |
| | | this.clOrderNo = cdData.orderNo; |
| | | this.clEleTotalAmount = cdData.eleTotalAmount; |
| | | this.clWaterRemainUser = cdData.waterRemain; |
| | | this.thisEle = cdData.thisEle; |
| | | this.clThisEle = cdData.thisEle; |
| | | } |
| | | |
| | | public void updateFrom(DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo, boolean clearCloseValve) throws Exception { |
| | |
| | | this.clThisTime = null; |
| | | this.clOpenDt = null; |
| | | this.closeDt = null; |
| | | |
| | | this.clOrderNo = null;//江海协议特有 |
| | | this.clEleTotalAmount = null;//江海协议特有 |
| | | this.clWaterRemainUser = null;//江海协议特有 |
| | | this.clThisEle = null;//江海协议特有 |
| | | } |
| | | } |
| | | |
| | | |
| | | public void updateFrom(DataV1_0_1 dV1_0_1, DataCd83CloseVo dataCd83CloseVo, boolean clearOpenValve) throws Exception { |
| | | this.clDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt); |
| | | this.clType = dataCd83CloseVo.type; |
| | | this.clTotalAmount = dataCd83CloseVo.totalAmount; |
| | | this.clIcCardNo = dataCd83CloseVo.icCardNo; |
| | | this.clIcCardAddr = dataCd83CloseVo.icCardAddr; |
| | | this.clRemainMoney = dataCd83CloseVo.remainMoney; |
| | | this.clThisAmount = dataCd83CloseVo.thisAmount; |
| | | this.clThisMoney = dataCd83CloseVo.thisMoney; |
| | | this.clThisTime = dataCd83CloseVo.thisTime; |
| | | this.clOpenDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt); |
| | | this.closeDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt) ; |
| | | |
| | | if(clearOpenValve){ |
| | | this.opDt = null ; |
| | | this.opType = null ; |
| | | this.opTotalAmount = null ; |
| | | this.opIcCardNo = null ; |
| | | this.opIcCardAddr = null ; |
| | | this.opRemainMoney = null ; |
| | | this.openDt = null ; |
| | | |
| | | this.clOrderNo = null;//江海协议特有 |
| | | this.clEleTotalAmount = null;//江海协议特有 |
| | | this.clWaterRemainUser = null;//江海协议特有 |
| | | this.clThisEle = null;//江海协议特有 |
| | | } |
| | | } |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.dy.common.mw.protocol.p206V1_0_0.DataV1_0_1; |
| | | import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd83CloseVo; |
| | | import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd83OpenVo; |
| | | import com.dy.common.mw.protocol.p206V202404.DataV202404; |
| | | import com.dy.common.mw.protocol.p206V202404.upVos.DataCd84Vo; |
| | | import com.dy.common.mw.protocol.p206V202404.upVos.DataCd85Vo; |
| | | import com.dy.common.po.BaseEntity; |
| | | import com.dy.common.util.DateTime; |
| | | import com.dy.pipIrrGlobal.pojoPr.PrController; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import lombok.*; |
| | |
| | | this.opEleTotalAmount = null; //江海协议特有 |
| | | this.opWaterRemainUser = null; //江海协议特有 |
| | | this.openDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83OpenVo.openDt); |
| | | this.clDt = null; |
| | | this.clType = null; |
| | | this.clTotalAmount = null; |
| | | this.clIcCardNo = null; |
| | | this.clIcCardAddr = null; |
| | | this.clRemainMoney = null; |
| | | this.clThisAmount = null; |
| | | this.clThisMoney = null; |
| | | this.clThisTime = null; |
| | | this.clOpenDt = null; |
| | | this.closeDt = null; |
| | | |
| | | } |
| | | |
| | | public void valueFrom(DataV1_0_1 dV1_0_1, DataCd83CloseVo dataCd83CloseVo) throws Exception { |
| | | this.clDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt); |
| | | this.clType = dataCd83CloseVo.type; |
| | | this.clTotalAmount = dataCd83CloseVo.totalAmount; |
| | | this.clIcCardNo = dataCd83CloseVo.icCardNo; |
| | | this.clIcCardAddr = dataCd83CloseVo.icCardAddr; |
| | | this.clRemainMoney = dataCd83CloseVo.remainMoney; |
| | | this.clThisAmount = dataCd83CloseVo.thisAmount; |
| | | this.clThisMoney = dataCd83CloseVo.thisMoney; |
| | | this.clThisTime = dataCd83CloseVo.thisTime; |
| | | this.clOpenDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt); |
| | | this.closeDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt); |
| | | |
| | | this.clOrderNo = null;//江海协议特有 |
| | | this.clEleTotalAmount = null;//江海协议特有 |
| | |
| | | this.clThisTime = null; |
| | | this.clOpenDt = null; |
| | | this.closeDt = null; |
| | | |
| | | this.clOrderNo = null;//江海协议特有 |
| | | this.clEleTotalAmount = null;//江海协议特有 |
| | | this.clWaterRemainUser = null;//江海协议特有 |
| | | this.thisEle = null;//江海协议特有 |
| | | } |
| | | } |
| | | |
| | | public void updateFrom(DataV1_0_1 dV1_0_1, DataCd83CloseVo dataCd83CloseVo, boolean clearOpenValve) throws Exception { |
| | | this.clDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt); |
| | | this.clType = dataCd83CloseVo.type; |
| | | this.clTotalAmount = dataCd83CloseVo.totalAmount; |
| | | this.clIcCardNo = dataCd83CloseVo.icCardNo; |
| | | this.clIcCardAddr = dataCd83CloseVo.icCardAddr; |
| | | this.clRemainMoney = dataCd83CloseVo.remainMoney; |
| | | this.clThisAmount = dataCd83CloseVo.thisAmount; |
| | | this.clThisMoney = dataCd83CloseVo.thisMoney; |
| | | this.clThisTime = dataCd83CloseVo.thisTime; |
| | | this.clOpenDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt); |
| | | this.closeDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt) ; |
| | | |
| | | if(clearOpenValve){ |
| | | this.opDt = null ; |
| | | this.opType = null ; |
| | | this.opTotalAmount = null ; |
| | | this.opIcCardNo = null ; |
| | | this.opIcCardAddr = null ; |
| | | this.opRemainMoney = null ; |
| | | this.openDt = null ; |
| | | |
| | | this.clOrderNo = null;//江海协议特有 |
| | | this.clEleTotalAmount = null;//江海协议特有 |
| | | this.clWaterRemainUser = null;//江海协议特有 |
| | | this.thisEle = null;//江海协议特有 |
| | | } |
| | | } |
| | | } |
| | |
| | | from rm_alarm_state_last |
| | | where id = #{id,jdbcType=BIGINT} |
| | | </select> |
| | | <select id="selectByRtuAddr" parameterType="java.lang.String" resultMap="BaseResultMap"> |
| | | <select id="selectByIntakeId" parameterType="java.lang.Long" resultMap="BaseResultMap"> |
| | | <!--@mbg.generated--> |
| | | select |
| | | <include refid="Base_Column_List" /> |
| | | from rm_alarm_state_last |
| | | where rtu_addr = #{rtuAddr,jdbcType=VARCHAR} |
| | | where intake_id = #{intakeId,jdbcType=BIGINT} |
| | | </select> |
| | | <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> |
| | | <!--@mbg.generated--> |
| | |
| | | from rm_loss_last |
| | | where id = #{id,jdbcType=BIGINT} |
| | | </select> |
| | | <select id="selectByRtuAddr" parameterType="java.lang.String" resultMap="BaseResultMap"> |
| | | <select id="selectByIntakeId" parameterType="java.lang.Long" resultMap="BaseResultMap"> |
| | | <!--@mbg.generated--> |
| | | select |
| | | <include refid="Base_Column_List" /> |
| | | from rm_loss_last |
| | | where rtu_addr = #{rtuAddr,jdbcType=VARCHAR} |
| | | where intake_id = #{intakeId,jdbcType=BIGINT} |
| | | </select> |
| | | <select id="selectByDate" parameterType="java.util.Date" resultMap="BaseResultMap"> |
| | | <!--@mbg.generated--> |
| | |
| | | select |
| | | <include refid="Base_Column_List" /> |
| | | from rm_on_hour_report_last |
| | | where rtu_addr = #{rtuAddr} |
| | | where intake_id = #{intakeId} |
| | | </select> |
| | | </mapper> |
| | |
| | | from rm_open_close_valve_last |
| | | where id = #{id,jdbcType=BIGINT} |
| | | </select> |
| | | <select id="selectByRtuAddr" parameterType="java.lang.String" resultMap="BaseResultMap"> |
| | | <select id="selectByIntakeId" parameterType="java.lang.Long" resultMap="BaseResultMap"> |
| | | <!--@mbg.generated--> |
| | | select |
| | | <include refid="Base_Column_List" /> |
| | | from rm_open_close_valve_last |
| | | where rtu_addr = #{rtuAddr,jdbcType=VARCHAR} |
| | | where intake_id = #{intakeId,jdbcType=BIGINT} |
| | | </select> |
| | | <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> |
| | | <!--@mbg.generated--> |
| | |
| | | select |
| | | <include refid="Base_Column_List" /> |
| | | from rm_timing_report_last |
| | | where rtu_addr = #{rtuAddr} |
| | | where intake_id = #{intakeId} |
| | | </select> |
| | | </mapper> |
| | |
| | | water_meter_work_volt = #{waterMeterWorkVolt,jdbcType=FLOAT} |
| | | where id = #{id,jdbcType=BIGINT} |
| | | </update> |
| | | <select id="selectByRtuAddr" parameterType="java.lang.String" resultMap="BaseResultMap"> |
| | | <select id="selectByIntakeId" parameterType="java.lang.Long" resultMap="BaseResultMap"> |
| | | <!--@mbg.generated--> |
| | | select |
| | | <include refid="Base_Column_List" /> |
| | | from rm_work_report_last |
| | | where rtu_addr = #{rtuAddr,jdbcType=VARCHAR} |
| | | where intake_id = #{intakeId,jdbcType=BIGINT} |
| | | </select> |
| | | </mapper> |
| | |
| | | //////////////////////////////////////////////// |
| | | /** |
| | | * 得到控制器报警与状态最新记录 |
| | | * @param rtuAddr |
| | | * @param intakeId |
| | | * @return |
| | | */ |
| | | public RmAlarmStateLast getRmAlarmStateLast(String rtuAddr){ |
| | | List<RmAlarmStateLast> list = rmAlarmStateLastMapperDao.selectByRtuAddr(rtuAddr) ; |
| | | public RmAlarmStateLast getRmAlarmStateLast(Long intakeId){ |
| | | List<RmAlarmStateLast> list = rmAlarmStateLastMapperDao.selectByIntakeId(intakeId) ; |
| | | if(list != null && list.size() > 0){ |
| | | return list.get(0) ; |
| | | } |
| | |
| | | |
| | | /** |
| | | * 根据阀控器地址获取定点上报最新数据 |
| | | * @param rtuAddr |
| | | * @param intakeId |
| | | * @return |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public RmTimingReportLast getRmTimingReportLast(String rtuAddr) { |
| | | List<RmTimingReportLast> list = this.rmTimingReportLastDao.getRmTimingReportLast(rtuAddr) ; |
| | | public RmTimingReportLast getRmTimingReportLast(Long intakeId) { |
| | | List<RmTimingReportLast> list = this.rmTimingReportLastDao.getRmTimingReportLast(intakeId) ; |
| | | if(list != null && list.size() > 0){ |
| | | return list.get(0) ; |
| | | } |
| | |
| | | |
| | | /** |
| | | * 根据阀控器地址获取整点上报最新数据 |
| | | * @param rtuAddr |
| | | * @param intakeId |
| | | * @return |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public RmOnHourReportLast getRmOnHourReportLast(String rtuAddr) { |
| | | List<RmOnHourReportLast> list = this.rmOnHourReportLastDao.getRmOnHourReportLast(rtuAddr) ; |
| | | public RmOnHourReportLast getRmOnHourReportLast(Long intakeId) { |
| | | List<RmOnHourReportLast> list = this.rmOnHourReportLastDao.getRmOnHourReportLast(intakeId) ; |
| | | if(list != null && list.size() > 0){ |
| | | return list.get(0) ; |
| | | } |
| | |
| | | //////////////////////////////////////////////// |
| | | /** |
| | | * 得到控制器开关阀上报数据最新记录 |
| | | * @param rtuAddr |
| | | * @param intakeId |
| | | * @return |
| | | */ |
| | | public RmOpenCloseValveLast getRmOpenCloseValveLast(String rtuAddr){ |
| | | List<RmOpenCloseValveLast> list = rmOpenCloseValveLastMapperDao.selectByRtuAddr(rtuAddr) ; |
| | | public RmOpenCloseValveLast getRmOpenCloseValveLast(Long intakeId){ |
| | | List<RmOpenCloseValveLast> list = rmOpenCloseValveLastMapperDao.selectByIntakeId(intakeId) ; |
| | | if(list != null && list.size() > 0){ |
| | | return list.get(0) ; |
| | | } |
| | |
| | | //////////////////////////////////////////////// |
| | | /** |
| | | * 得到控制器上报数据最新记录 |
| | | * @param rtuAddr |
| | | * @param intakeId |
| | | * @return |
| | | */ |
| | | public RmWorkReportLast getRmWorkReportLast(String rtuAddr){ |
| | | List<RmWorkReportLast> list = rmWorkReportLastMapperDao.selectByRtuAddr(rtuAddr) ; |
| | | public RmWorkReportLast getRmWorkReportLast(Long intakeId){ |
| | | List<RmWorkReportLast> list = rmWorkReportLastMapperDao.selectByIntakeId(intakeId) ; |
| | | if(list != null && list.size() > 0){ |
| | | return list.get(0) ; |
| | | } |
| | |
| | | //////////////////////////////////////////////// |
| | | /** |
| | | * 得到控制器漏损水量统计最新记录 |
| | | * @param rtuAddr |
| | | * @param intakeId |
| | | * @return |
| | | */ |
| | | public RmLossLast getRmLossLast(String rtuAddr){ |
| | | List<RmLossLast> list = rmLossLastMapperDao.selectByRtuAddr(rtuAddr) ; |
| | | public RmLossLast getRmLossLast(Long intakeId){ |
| | | List<RmLossLast> list = rmLossLastMapperDao.selectByIntakeId(intakeId) ; |
| | | if(list != null && list.size() > 0){ |
| | | return list.get(0) ; |
| | | } |
| | |
| | | * @param stateVo 状态对象 |
| | | */ |
| | | private void saveOrUpdateLast(DbSv sv, PrController controller, String rtuAddr, String rtuDt, DataV1_0_1 dV1_0_1, DataAlarmVo alarmVo, DataStateVo stateVo) throws Exception { |
| | | RmAlarmStateLast po = sv.getRmAlarmStateLast(rtuAddr) ; |
| | | RmAlarmStateLast po = sv.getRmAlarmStateLast(controller.getIntakeId()) ; |
| | | if(po == null){ |
| | | po = new RmAlarmStateLast(); |
| | | po.controllerId = controller==null?null:controller.getId() ; |
| | |
| | | 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.DataCd83CloseVo; |
| | | import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd83OpenVo; |
| | | import com.dy.common.util.DateTime; |
| | | import com.dy.pipIrrGlobal.pojoPr.PrController; |
| | | import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveHistory; |
| | |
| | | * @param dataCd83CloseVo 关阀上报数据对象 |
| | | */ |
| | | private void doDeal(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83CloseVo dataCd83CloseVo) throws Exception { |
| | | RmOpenCloseValveLast poLast = sv.getRmOpenCloseValveLast(rtuAddr) ; |
| | | RmOpenCloseValveLast poLast = sv.getRmOpenCloseValveLast(controller.getIntakeId()) ; |
| | | if(poLast == null){ |
| | | //数据库中不存在该控制器的开关阀数据 |
| | | //首先生成最新数据及历史数据,并先保存 |
| | |
| | | * @throws Exception |
| | | */ |
| | | private RmOpenCloseValveLast newRmOpenCloseValveLast(PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83CloseVo dataCd83CloseVo)throws Exception { |
| | | //RmOpenCloseValveLast po = new RmOpenCloseValveLast(null, null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(), |
| | | // rtuAddr, |
| | | // null, null, null, null, null, null,null, |
| | | // DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt), |
| | | // dataCd83CloseVo.type, |
| | | // dataCd83CloseVo.totalAmount, |
| | | // dataCd83CloseVo.icCardNo, |
| | | // dataCd83CloseVo.icCardAddr, |
| | | // dataCd83CloseVo.remainMoney, |
| | | // dataCd83CloseVo.thisAmount, |
| | | // dataCd83CloseVo.thisMoney, |
| | | // dataCd83CloseVo.thisTime, |
| | | // DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt), |
| | | // DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt)) ; |
| | | //return po ; |
| | | return null; |
| | | RmOpenCloseValveLast po = new RmOpenCloseValveLast() ; |
| | | po.controllerId = controller==null?null:controller.getId() ; |
| | | po.intakeId = controller==null?null:controller.getIntakeId() ; |
| | | po.rtuAddr = rtuAddr ; |
| | | po.valueFrom(dV1_0_1, dataCd83CloseVo); |
| | | return po ; |
| | | } |
| | | |
| | | |
| | |
| | | * @throws Exception |
| | | */ |
| | | private RmOpenCloseValveHistory newRmOpenCloseValveHistory(PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83CloseVo dataCd83CloseVo)throws Exception { |
| | | //RmOpenCloseValveHistory po = new RmOpenCloseValveHistory(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(), |
| | | // rtuAddr, |
| | | // null, null, null, null, null, null,null, |
| | | // DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt), |
| | | // dataCd83CloseVo.type, |
| | | // dataCd83CloseVo.totalAmount, |
| | | // dataCd83CloseVo.icCardNo, |
| | | // dataCd83CloseVo.icCardAddr, |
| | | // dataCd83CloseVo.remainMoney, |
| | | // dataCd83CloseVo.thisAmount, |
| | | // dataCd83CloseVo.thisMoney, |
| | | // dataCd83CloseVo.thisTime, |
| | | // DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt), |
| | | // DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt)) ; |
| | | //return po ; |
| | | return null; |
| | | RmOpenCloseValveHistory po = new RmOpenCloseValveHistory() ; |
| | | po.controllerId = controller==null?null:controller.getId() ; |
| | | po.intakeId = controller==null?null:controller.getIntakeId() ; |
| | | po.rtuAddr = rtuAddr ; |
| | | po.valueFrom(dV1_0_1, dataCd83CloseVo); |
| | | return po ; |
| | | } |
| | | |
| | | |
| | |
| | | poLast.controllerId = controller==null?null:controller.getId(); |
| | | poLast.intakeId = controller==null?null:controller.getIntakeId(); |
| | | |
| | | poLast.clDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt); |
| | | poLast.clType = dataCd83CloseVo.type; |
| | | poLast.clTotalAmount = dataCd83CloseVo.totalAmount; |
| | | poLast.clIcCardNo = dataCd83CloseVo.icCardNo; |
| | | poLast.clIcCardAddr = dataCd83CloseVo.icCardAddr; |
| | | poLast.clRemainMoney = dataCd83CloseVo.remainMoney; |
| | | poLast.clThisAmount = dataCd83CloseVo.thisAmount; |
| | | poLast.clThisMoney = dataCd83CloseVo.thisMoney; |
| | | poLast.clThisTime = dataCd83CloseVo.thisTime; |
| | | poLast.clOpenDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.openDt); |
| | | poLast.closeDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd83CloseVo.closeDt) ; |
| | | poLast.updateFrom(dV1_0_1, dataCd83CloseVo, clearOpenValve); |
| | | |
| | | if(poHistory != null){ |
| | | poHistory.controllerId = controller==null?null:controller.getId(); |
| | | poHistory.intakeId = controller==null?null:controller.getIntakeId(); |
| | | |
| | | poHistory.clDt = poLast.clDt; |
| | | poHistory.clType = dataCd83CloseVo.type; |
| | | poHistory.clTotalAmount = dataCd83CloseVo.totalAmount; |
| | | poHistory.clIcCardNo = dataCd83CloseVo.icCardNo; |
| | | poHistory.clIcCardAddr = dataCd83CloseVo.icCardAddr; |
| | | poHistory.clRemainMoney = dataCd83CloseVo.remainMoney; |
| | | poHistory.clThisAmount = dataCd83CloseVo.thisAmount; |
| | | poHistory.clThisMoney = dataCd83CloseVo.thisMoney; |
| | | poHistory.clThisTime = dataCd83CloseVo.thisTime; |
| | | poHistory.clOpenDt = poLast.clOpenDt; |
| | | poHistory.closeDt = poLast.closeDt ; |
| | | poHistory.updateFrom(dV1_0_1, dataCd83CloseVo, clearOpenValve); |
| | | } |
| | | |
| | | if(clearOpenValve){ |
| | | poLast.opDt = null ; |
| | | poLast.opType = null ; |
| | | poLast.opTotalAmount = null ; |
| | | poLast.opIcCardNo = null ; |
| | | poLast.opIcCardAddr = null ; |
| | | poLast.opRemainMoney = null ; |
| | | poLast.openDt = null ; |
| | | |
| | | if(poHistory != null) { |
| | | poHistory.opDt = null ; |
| | | poHistory.opType = null ; |
| | | poHistory.opTotalAmount = null ; |
| | | poHistory.opIcCardNo = null ; |
| | | poHistory.opIcCardAddr = null ; |
| | | poHistory.opRemainMoney = null ; |
| | | poHistory.openDt = null ; |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | * @param dataCdC0Vo 开阀上报数据对象 |
| | | */ |
| | | private void doDeal(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCdC0Vo dataCdC0Vo) throws Exception { |
| | | RmLossLast poLast = sv.getRmLossLast(rtuAddr); |
| | | RmLossLast poLast = sv.getRmLossLast(controller.getIntakeId()); |
| | | if (poLast == null) { |
| | | //数据库中不存在该控制器的漏损数据 |
| | | //首先生成最新数据及历史数据,并先保存 |
| | |
| | | * @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(); |
| | |
| | | * @param dataCd83OpenVo 开阀上报数据对象 |
| | | */ |
| | | private void doDeal(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd83OpenVo dataCd83OpenVo) throws Exception { |
| | | RmOpenCloseValveLast poLast = sv.getRmOpenCloseValveLast(rtuAddr) ; |
| | | RmOpenCloseValveLast poLast = sv.getRmOpenCloseValveLast(controller.getIntakeId()) ; |
| | | if(poLast == null){ |
| | | //数据库中不存在该控制器的开关阀数据 |
| | | //首先生成开关阀的最新数据及历史数据,并先保存 |
| | |
| | | * @param cdData |
| | | */ |
| | | private void saveOrUpdateLast(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd84Vo cdData) throws Exception { |
| | | RmWorkReportLast po = sv.getRmWorkReportLast(rtuAddr) ; |
| | | RmWorkReportLast po = sv.getRmWorkReportLast(controller.getIntakeId()) ; |
| | | if(po == null){ |
| | | po = new RmWorkReportLast() ; |
| | | po.controllerId = controller==null?null:controller.getId(); |
| | |
| | | package com.dy.rtuMw.server.rtuData.p206V1_0_0; |
| | | |
| | | import com.dy.common.mw.protocol.Command; |
| | | import com.dy.common.mw.protocol.CommandType; |
| | | import com.dy.common.mw.protocol.p206V1_0_0.CodeV1_0_1; |
| | | import com.dy.rtuMw.server.rtuData.TaskSurpport; |
| | | import com.dy.rtuMw.server.rtuData.dbSv.DbSv; |
| | | import com.dy.common.mw.protocol.Data; |
| | | import com.dy.common.springUtil.SpringContextUtil; |
| | | import com.dy.pipIrrGlobal.pojoPr.PrController; |
| | | import com.dy.pipIrrGlobal.pojoPr.PrControllerTramp; |
| | | import com.dy.rtuMw.web.com.CommandCtrl; |
| | | import org.apache.logging.log4j.LogManager; |
| | | import org.apache.logging.log4j.Logger; |
| | | |
| | |
| | | //流浪者控制器 |
| | | controllerTramp = sv.getPrControllerTrampByRtuAddr(rtuAddr); |
| | | if(controllerTramp == null){ |
| | | //第一次发现 |
| | | controllerTramp = new PrControllerTramp(null, rtuAddr, d.getProtocol(), new Date()) ; |
| | | //第一次发现,下发清空RTU历史命令,以使其重新开始记录新地点的数据 |
| | | this.sendClearCommand(rtuAddr, d.protocol); |
| | | } |
| | | } |
| | | //不论是否为流浪控制器(RTU实体),都要进行下步工作,记录其上报的一些数据,当绑定控制器后,数据自动有了归属 |
| | |
| | | log.error("严重错误,未能得到DbSv对象"); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 发送清空RTU的命令 |
| | | * @param rtuAddr |
| | | * @param protocol |
| | | */ |
| | | private void sendClearCommand(String rtuAddr, String protocol){ |
| | | Command com = new Command() ; |
| | | com.id = Command.defaultId ; |
| | | com.rtuAddr = rtuAddr ; |
| | | com.protocol = protocol ; |
| | | com.type = CommandType.outerCommand; |
| | | com.code = CodeV1_0_1.cd_91 ;//当前是P206V1_0_0协议的任务 |
| | | com.rtuResultSendWebUrl = Command.ignoreRtuResultSendWebUrl ; |
| | | com.param = null ; |
| | | com.attachment = null ; |
| | | CommandCtrl comCtrl = SpringContextUtil.getBean(CommandCtrl.class) ; |
| | | if(comCtrl != null){ |
| | | comCtrl.sendOutComFromLocal(com) ; |
| | | } |
| | | } |
| | | } |
| | |
| | | String rtuDt, |
| | | AlarmVo alarmVo, |
| | | String receiveDt) throws Exception { |
| | | RmAlarmStateLast po = sv.getRmAlarmStateLast(rtuAddr) ; |
| | | RmAlarmStateLast po = sv.getRmAlarmStateLast(controller.getIntakeId()) ; |
| | | if(po == null){ |
| | | po = new RmAlarmStateLast(null, |
| | | controller==null?null:controller.getId(), |
| | |
| | | * @Description |
| | | */ |
| | | public class TkDealCloseValveReportV202404 extends TaskSurpport { |
| | | private static final Logger log = LogManager.getLogger(TkDealTimingReportV202404.class.getName()); |
| | | private static final Logger log = LogManager.getLogger(TkDealCloseValveReportV202404.class.getName()); |
| | | |
| | | //类ID,一定与Tree.xml配置文件中配置一致 |
| | | public static final String taskId = "TkDealCloseValveReportV202404"; |
| | |
| | | * @param cdData 功能数据 |
| | | */ |
| | | private void saveOrUpdateLast(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd85Vo cdData)throws Exception { |
| | | RmOpenCloseValveLast po = sv.getRmOpenCloseValveLast(rtuAddr); |
| | | RmOpenCloseValveLast po = sv.getRmOpenCloseValveLast(controller.getIntakeId()); |
| | | if(po == null){ |
| | | po = new RmOpenCloseValveLast(); |
| | | po.controllerId = controller==null?null:controller.getId(); |
| | |
| | | * @param cdData 功能数据 |
| | | */ |
| | | private void saveOrUpdateLast(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd84Vo cdData)throws Exception { |
| | | RmOpenCloseValveLast po = sv.getRmOpenCloseValveLast(rtuAddr); |
| | | RmOpenCloseValveLast po = sv.getRmOpenCloseValveLast(controller.getIntakeId()); |
| | | if(po == null){ |
| | | po = new RmOpenCloseValveLast(); |
| | | po.controllerId = controller==null?null:controller.getId(); |
| | |
| | | * @param cdData 功能数据 |
| | | */ |
| | | private void saveOrUpdateLast(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd83Vo cdData)throws Exception { |
| | | RmTimingReportLast po = sv.getRmTimingReportLast(rtuAddr) ; |
| | | RmTimingReportLast po = sv.getRmTimingReportLast(controller.getIntakeId()) ; |
| | | if(po == null){ |
| | | po = new RmTimingReportLast(); |
| | | po.controllerId = controller==null?null:controller.getId(); |
| | |
| | | * @param cdData 功能数据 |
| | | */ |
| | | private void saveOrUpdateLast(DbSv sv, PrController controller, String rtuAddr, DataV202404 dataV202404, DataCd80_5BVo cdData)throws Exception { |
| | | RmWorkReportLast po = sv.getRmWorkReportLast(rtuAddr) ; |
| | | RmWorkReportLast po = sv.getRmWorkReportLast(controller.getIntakeId()) ; |
| | | if(po == null){ |
| | | po = new RmWorkReportLast(); |
| | | po.controllerId = controller==null?null:controller.getId(); |
| | |
| | | package com.dy.rtuMw.server.rtuData.p206V202404; |
| | | |
| | | import com.dy.common.mw.protocol.Command; |
| | | import com.dy.common.mw.protocol.CommandType; |
| | | import com.dy.common.mw.protocol.Data; |
| | | import com.dy.common.mw.protocol.p206V1_0_0.CodeV1_0_1; |
| | | import com.dy.common.mw.protocol.p206V202404.CodeV202404; |
| | | import com.dy.common.springUtil.SpringContextUtil; |
| | | import com.dy.pipIrrGlobal.pojoPr.PrController; |
| | | import com.dy.pipIrrGlobal.pojoPr.PrControllerTramp; |
| | | import com.dy.rtuMw.server.rtuData.TaskSurpport; |
| | | import com.dy.rtuMw.server.rtuData.dbSv.DbSv; |
| | | import com.dy.rtuMw.web.com.CommandCtrl; |
| | | import org.apache.logging.log4j.LogManager; |
| | | import org.apache.logging.log4j.Logger; |
| | | |
| | |
| | | //流浪者控制器 |
| | | controllerTramp = sv.getPrControllerTrampByRtuAddr(rtuAddr); |
| | | if(controllerTramp == null){ |
| | | //第一次发现 |
| | | controllerTramp = new PrControllerTramp(null, rtuAddr, d.getProtocol(), new Date()) ; |
| | | //第一次发现,下发清空RTU历史命令,以使其重新开始记录新地点的数据 |
| | | this.sendClearCommand(rtuAddr, d.protocol); |
| | | } |
| | | } |
| | | //不论是否为流浪控制器(RTU实体),都要进行下步工作,记录其上报的一些数据,当绑定控制器后,数据自动有了归属 |
| | |
| | | log.error("严重错误,未能得到DbSv对象"); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 发送清空RTU的命令 |
| | | * @param rtuAddr |
| | | * @param protocol |
| | | */ |
| | | private void sendClearCommand(String rtuAddr, String protocol){ |
| | | Command com = new Command() ; |
| | | com.id = Command.defaultId ; |
| | | com.rtuAddr = rtuAddr ; |
| | | com.protocol = protocol ; |
| | | com.type = CommandType.outerCommand; |
| | | com.code = CodeV202404.cd_99 ;//当前是p206V202404协议的任务 |
| | | com.rtuResultSendWebUrl = Command.ignoreRtuResultSendWebUrl ; |
| | | com.param = null ; |
| | | com.attachment = null ; |
| | | CommandCtrl comCtrl = SpringContextUtil.getBean(CommandCtrl.class) ; |
| | | if(comCtrl != null){ |
| | | comCtrl.sendOutComFromLocal(com) ; |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | /** |
| | | * 本地调用,例如重任务树中某个任务下发的命令(如清空命令) |
| | | * @param com |
| | | * @return |
| | | */ |
| | | public BaseResponse<Command> sendOutComFromLocal(Command com) { |
| | | try{ |
| | | return this.dealOuterCommand(com) ; |
| | | }catch(Exception e){ |
| | | return BaseResponseUtils.buildError(ReturnCommand.errored("处理发向RTU的外部命令出错" + (e.getMessage() == null?"":("," + e.getMessage())), com.getId(), com.getCode()) ); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 处理发向RTU的外部命令 |
| | | * @return 结果 |
| | | */ |
| | |
| | | package com.dy.rtuMw.web.comResult; |
| | | |
| | | import com.dy.common.mw.protocol.Command; |
| | | import com.dy.common.mw.protocol.Data; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | } |
| | | |
| | | public void deal(Data data) { |
| | | if (data.rtuResultSendWebUrl != null && !data.rtuResultSendWebUrl.trim().equals("")) { |
| | | if (data.rtuResultSendWebUrl != null |
| | | && !data.rtuResultSendWebUrl.trim().equals("") |
| | | && !data.rtuResultSendWebUrl.trim().equals(Command.ignoreRtuResultSendWebUrl)) { |
| | | String url = UriComponentsBuilder.fromUriString(data.rtuResultSendWebUrl) |
| | | .build() |
| | | .toUriString(); |
| | |
| | | rt = this.cd21() ; |
| | | }else if(com.equals("37")){ |
| | | rt = this.cd37() ; |
| | | }else if(com.equals("67")){ |
| | | rt = this.cd67() ; |
| | | }else if(com.equals("38")){ |
| | | rt = this.cd38() ; |
| | | }else if(com.equals("68")){ |
| | | rt = this.cd68() ; |
| | | }else if(com.equals("39")){ |
| | | rt = this.cd39() ; |
| | | }else if(com.equals("69")){ |
| | | rt = this.cd69() ; |
| | | }else if(com.equals("3A")){ |
| | | rt = this.cd3A() ; |
| | | }else if(com.equals("6A")){ |
| | | rt = this.cd6A() ; |
| | | }else if(com.equals("3B")){ |
| | | rt = this.cd3B() ; |
| | | }else if(com.equals("6B")){ |
| | | rt = this.cd6B() ; |
| | | }else if(com.equals("3C")){ |
| | | rt = this.cd3C() ; |
| | | }else if(com.equals("65")){ |
| | | rt = this.cd65() ; |
| | | }else if(com.equals("91")){ |
| | | rt = this.cd91() ; |
| | | }else if(com.equals("92")){ |
| | | rt = this.cd92() ; |
| | | }else if(com.equals("93")){ |
| | |
| | | } |
| | | return rt ; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 测试连通性 |
| | |
| | | |
| | | private BaseResponse cd37(){ |
| | | Com37Vo comVo = new Com37Vo() ; |
| | | comVo.seconds = 20 ; |
| | | comVo.seconds = 20 ;//单位秒 |
| | | return this.sendCom2Mw(this.command(CodeV1_0_1.cd_37, comVo, null)) ; |
| | | } |
| | | private BaseResponse cd67(){ |
| | | Com37Vo comVo = new Com37Vo() ; |
| | | return this.sendCom2Mw(this.command(CodeV1_0_1.cd_67, comVo, null)) ; |
| | | } |
| | | |
| | | private BaseResponse cd38(){ |
| | |
| | | return this.sendCom2Mw(this.command(CodeV1_0_1.cd_38, comVo, null)) ; |
| | | } |
| | | |
| | | private BaseResponse cd68(){ |
| | | return this.sendCom2Mw(this.command(CodeV1_0_1.cd_68, null, null)) ; |
| | | } |
| | | |
| | | private BaseResponse cd39(){ |
| | | Com39Vo comVo = new Com39Vo() ; |
| | | comVo.batteryVoltAlarm = 1.0 ;//电池电压报警值(大于0.1) |
| | | comVo.batteryVoltAlarm = 7.0 ;//电池电压报警值(大于0.1) |
| | | return this.sendCom2Mw(this.command(CodeV1_0_1.cd_39, comVo, null)) ; |
| | | } |
| | | |
| | | private BaseResponse cd69(){ |
| | | return this.sendCom2Mw(this.command(CodeV1_0_1.cd_69, null, null)) ; |
| | | } |
| | | |
| | | private BaseResponse cd3A(){ |
| | |
| | | return this.sendCom2Mw(this.command(CodeV1_0_1.cd_3A, comVo, null)) ; |
| | | } |
| | | |
| | | private BaseResponse cd6A(){ |
| | | return this.sendCom2Mw(this.command(CodeV1_0_1.cd_6A, null, null)) ; |
| | | } |
| | | |
| | | private BaseResponse cd3B(){ |
| | | Com3BVo comVo = new Com3BVo() ; |
| | | comVo.second = 30 ;//阀门超时时间(秒)(大于1) |
| | | return this.sendCom2Mw(this.command(CodeV1_0_1.cd_3B, comVo, null)) ; |
| | | } |
| | | |
| | | private BaseResponse cd6B(){ |
| | | return this.sendCom2Mw(this.command(CodeV1_0_1.cd_6B, null, null)) ; |
| | | } |
| | | |
| | | private BaseResponse cd3C(){ |
| | | Com3CVo comVo = new Com3CVo() ; |
| | | comVo.minute = 10 ;//自报周期(分钟)(大于0) |
| | | comVo.minute = 60 ; |
| | | return this.sendCom2Mw(this.command(CodeV1_0_1.cd_3C, comVo, null)) ; |
| | | } |
| | | |
| | | private BaseResponse cd65(){ |
| | | return this.sendCom2Mw(this.command(CodeV1_0_1.cd_65, null, null)) ; |
| | | } |
| | | |
| | | private BaseResponse<String> cd91() { |
| | | return this.sendCom2Mw(this.command(CodeV1_0_1.cd_91, null, null)) ; |
| | | } |
| | | |
| | | private BaseResponse cd92(){ |
| | | return this.sendCom2Mw(this.command(CodeV1_0_1.cd_92, null, null)) ; |
| | | } |