wuzeyu
2024-07-05 8fa3135b2765893e56dd8f913e27d47e6f63d429
Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV
42个文件已修改
519 ■■■■■ 已修改文件
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Command.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_38_Down.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_38_Up.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3A_Down.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3A_Up.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_68_Up.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_69_Up.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_6A_Up.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_6B_Up.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_91_Down.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmAlarmStateLastMapper.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmLossLastMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportLastMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveLastMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmTimingReportLastMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWorkReportLastMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmIntakeAmountHistory.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveHistory.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveLast.java 62 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateLastMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmLossLastMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportLastMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmTimingReportLastMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportLastMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java 90 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealLoss.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOnHourReport.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealWorkReport.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkPreGenObjs.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealCloseValveReportV202404.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealOpenValveReportV202404.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealTimingReportV202404.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealWorkingReportV202404.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkPreGenObjsV202404.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/comResult/CommandResultDeal.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/CommandP206V1_0_0Ctrl.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Command.java
@@ -13,6 +13,12 @@
    }
    /**
     * 当命令结果返回的网址是此值时,忽略执行,例如中间件主动下发的命令,就不用返回命令结果
     */
    public static final String ignoreRtuResultSendWebUrl = "http://0.0.0.0" ;
    /**
     * 默认命令ID
     * 如果命令不在数据库中存储,或其他可以用defaultId
     */
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_38_Down.java
@@ -95,7 +95,14 @@
            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;
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_38_Up.java
@@ -2,6 +2,8 @@
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;
@@ -56,11 +58,11 @@
     * @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;
    }
}
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3A_Down.java
@@ -96,8 +96,8 @@
            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);
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3A_Up.java
@@ -60,8 +60,8 @@
        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 ;
    }
}
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_68_Up.java
@@ -3,6 +3,7 @@
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;
@@ -60,7 +61,7 @@
        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 ;
    }
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_69_Up.java
@@ -3,6 +3,7 @@
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;
@@ -60,6 +61,7 @@
        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 ;
    }
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_6A_Up.java
@@ -3,6 +3,7 @@
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;
@@ -60,8 +61,11 @@
        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 ;
        }
    }
}
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_6B_Up.java
@@ -3,6 +3,7 @@
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;
@@ -60,8 +61,10 @@
        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 ;
        }
    }
}
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_91_Down.java
@@ -72,16 +72,12 @@
        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);//长度放字节数组中
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmAlarmStateLastMapper.java
@@ -63,8 +63,8 @@
    /**
     * 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);
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmLossLastMapper.java
@@ -44,10 +44,10 @@
    /**
     * 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)
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportLastMapper.java
@@ -58,8 +58,8 @@
    /**
     * 根据阀控器地址获取整点上报最新数据
     * @param rtuAddr
     * @param intakeId
     * @return
     */
    List<RmOnHourReportLast> getRmOnHourReportLast(String rtuAddr);
    List<RmOnHourReportLast> getRmOnHourReportLast(Long intakeId);
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveLastMapper.java
@@ -63,8 +63,8 @@
    /**
     * select by rtuAddr
     *
     * @param rtuAddr rtuAddr
     * @param intakeId intakeId
     * @return object by rtuAddr
     */
    List<RmOpenCloseValveLast> selectByRtuAddr(String rtuAddr);
    List<RmOpenCloseValveLast> selectByIntakeId(Long intakeId);
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmTimingReportLastMapper.java
@@ -29,8 +29,8 @@
    /**
     * 根据阀控器地址获取定点上报最新数据
     * @param rtuAddr
     * @param intakeId
     * @return
     */
    List<RmTimingReportLast> getRmTimingReportLast(String rtuAddr);
    List<RmTimingReportLast> getRmTimingReportLast(Long intakeId);
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmWorkReportLastMapper.java
@@ -63,8 +63,8 @@
    /**
     * select by primary key
     *
     * @param rtuAddr 控制器地址
     * @param intakeId 控制器所绑取水口对象id
     * @return object by rtuAddr
     */
    List<RmWorkReportLast> selectByRtuAddr(String rtuAddr);
    List<RmWorkReportLast> selectByIntakeId(Long intakeId);
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmIntakeAmountHistory.java
@@ -52,7 +52,7 @@
    * 累计漏损水量
    */
    @Schema(description = "累计漏损水量", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
   public Double loss;
    public Double loss;
    /**
    * 最后计水量的控制器ID(外键)
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveHistory.java
@@ -1,6 +1,7 @@
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;
@@ -16,8 +17,6 @@
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.Date;
/**
 * @Author: liurunyu
@@ -213,7 +212,7 @@
    /**
     * 本次使用电量
     */
    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);
@@ -241,7 +240,26 @@
        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 {
@@ -270,7 +288,7 @@
        this.clOrderNo = null;//江海协议特有
        this.clEleTotalAmount = null;//江海协议特有
        this.clWaterRemainUser = null;//江海协议特有
        this.thisEle = null;//江海协议特有
        this.clThisEle = null;//江海协议特有
    }
    public void valueFrom85(DataV202404 dataV202404, DataCd85Vo cdData) throws Exception {
@@ -287,7 +305,7 @@
        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 {
@@ -310,6 +328,41 @@
            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;//江海协议特有
        }
    }
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveLast.java
@@ -6,12 +6,14 @@
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.*;
@@ -227,17 +229,21 @@
        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;//江海协议特有
@@ -312,6 +318,40 @@
            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;//江海协议特有
        }
    }
}
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateLastMapper.xml
@@ -43,12 +43,12 @@
    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-->
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmLossLastMapper.xml
@@ -25,12 +25,12 @@
    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-->
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportLastMapper.xml
@@ -200,6 +200,6 @@
        select
        <include refid="Base_Column_List" />
        from rm_on_hour_report_last
        where rtu_addr = #{rtuAddr}
        where intake_id = #{intakeId}
    </select>
</mapper>
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml
@@ -50,12 +50,12 @@
    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-->
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmTimingReportLastMapper.xml
@@ -225,6 +225,6 @@
    select
    <include refid="Base_Column_List" />
    from rm_timing_report_last
    where rtu_addr = #{rtuAddr}
    where intake_id = #{intakeId}
  </select>
</mapper>
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmWorkReportLastMapper.xml
@@ -407,11 +407,11 @@
      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>
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java
@@ -115,11 +115,11 @@
    ////////////////////////////////////////////////
    /**
     * 得到控制器报警与状态最新记录
     * @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) ;
        }
@@ -177,12 +177,12 @@
    /**
     * 根据阀控器地址获取定点上报最新数据
     * @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) ;
        }
@@ -224,12 +224,12 @@
    /**
     * 根据阀控器地址获取整点上报最新数据
     * @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) ;
        }
@@ -261,11 +261,11 @@
    ////////////////////////////////////////////////
    /**
     * 得到控制器开关阀上报数据最新记录
     * @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) ;
        }
@@ -321,11 +321,11 @@
    ////////////////////////////////////////////////
    /**
     * 得到控制器上报数据最新记录
     * @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) ;
        }
@@ -364,11 +364,11 @@
    ////////////////////////////////////////////////
    /**
     * 得到控制器漏损水量统计最新记录
     * @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) ;
        }
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java
@@ -85,7 +85,7 @@
     * @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() ;
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java
@@ -3,6 +3,7 @@
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;
@@ -57,7 +58,7 @@
     * @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){
            //数据库中不存在该控制器的开关阀数据
            //首先生成最新数据及历史数据,并先保存
@@ -140,22 +141,12 @@
     * @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 ;
    }
@@ -169,22 +160,12 @@
     * @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 ;
    }
@@ -202,53 +183,14 @@
        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 ;
            }
        }
    }
}
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealLoss.java
@@ -56,7 +56,7 @@
     * @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) {
            //数据库中不存在该控制器的漏损数据
            //首先生成最新数据及历史数据,并先保存
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOnHourReport.java
@@ -68,7 +68,7 @@
     * @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();
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java
@@ -56,7 +56,7 @@
     * @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){
            //数据库中不存在该控制器的开关阀数据
            //首先生成开关阀的最新数据及历史数据,并先保存
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealWorkReport.java
@@ -65,7 +65,7 @@
     * @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();
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkPreGenObjs.java
@@ -1,11 +1,15 @@
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;
@@ -36,7 +40,10 @@
                //流浪者控制器
                controllerTramp = sv.getPrControllerTrampByRtuAddr(rtuAddr);
                if(controllerTramp == null){
                    //第一次发现
                    controllerTramp = new PrControllerTramp(null, rtuAddr, d.getProtocol(), new Date()) ;
                    //第一次发现,下发清空RTU历史命令,以使其重新开始记录新地点的数据
                    this.sendClearCommand(rtuAddr, d.protocol);
                }
            }
            //不论是否为流浪控制器(RTU实体),都要进行下步工作,记录其上报的一些数据,当绑定控制器后,数据自动有了归属
@@ -46,4 +53,25 @@
            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) ;
        }
    }
}
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java
@@ -82,7 +82,7 @@
                                  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(),
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealCloseValveReportV202404.java
@@ -18,7 +18,7 @@
 * @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";
@@ -69,7 +69,7 @@
     * @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();
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealOpenValveReportV202404.java
@@ -69,7 +69,7 @@
     * @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();
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealTimingReportV202404.java
@@ -66,7 +66,7 @@
     * @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();
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealWorkingReportV202404.java
@@ -68,7 +68,7 @@
     * @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();
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkPreGenObjsV202404.java
@@ -1,11 +1,16 @@
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;
@@ -39,7 +44,10 @@
                //流浪者控制器
                controllerTramp = sv.getPrControllerTrampByRtuAddr(rtuAddr);
                if(controllerTramp == null){
                    //第一次发现
                    controllerTramp = new PrControllerTramp(null, rtuAddr, d.getProtocol(), new Date()) ;
                    //第一次发现,下发清空RTU历史命令,以使其重新开始记录新地点的数据
                    this.sendClearCommand(rtuAddr, d.protocol);
                }
            }
            //不论是否为流浪控制器(RTU实体),都要进行下步工作,记录其上报的一些数据,当绑定控制器后,数据自动有了归属
@@ -49,4 +57,25 @@
            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) ;
        }
    }
}
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java
@@ -87,6 +87,20 @@
    }
    /**
     * 本地调用,例如重任务树中某个任务下发的命令(如清空命令)
     * @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 结果
     */
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/comResult/CommandResultDeal.java
@@ -1,5 +1,6 @@
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;
@@ -29,7 +30,9 @@
    }
    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();
pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/p206V1_0_0/CommandP206V1_0_0Ctrl.java
@@ -33,16 +33,30 @@
                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")){
@@ -57,6 +71,7 @@
        }
        return rt ;
    }
    /**
     * 测试连通性
@@ -75,8 +90,12 @@
    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(){
@@ -85,10 +104,18 @@
        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(){
@@ -97,18 +124,34 @@
        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)) ;
    }