liurunyu
2024-06-27 6dba613b20244677543795eb91d18ce54d612c27
靳总协议上行数据处理修改完善
21个文件已修改
453 ■■■■ 已修改文件
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CodeV1_0_1.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataV1_0_1.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_83_Up.java 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_84_Up.java 57 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCd84Vo.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmCommandHistory.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmLossHistory.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmLossLast.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveLast.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWorkReportHistory.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWorkReportLast.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealControllerNoTramp.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealControllerTramp.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealLoss.java 54 ●●●● 补丁 | 查看 | 原始文档 | 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 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealWorkReport.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealControllerNoTrampV202404.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealControllerTrampV202404.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/CodeV1_0_1.java
@@ -14,7 +14,7 @@
    public static final String cd_39 = "39" ;//设置电池电压报警值
    public static final String cd_3A = "3A" ;//设置阀门堵转电流
    public static final String cd_3B = "3B" ;//设置阀门超时时间
    public static final String cd_3C = "3C" ;//设置自报周期(未实现)
    public static final String cd_3C = "3C" ;//设置自报周期
    public static final String cd_3D = "3D" ;//设置阶梯水价
    public static final String cd_3E = "3E" ;//设置黑名单(未实现)
    public static final String cd_50 = "50" ;//查询遥测站终端地址
@@ -33,7 +33,6 @@
    public static final String cd_81 = "81" ;//随机自报报
    public static final String cd_83 = "83" ;//遥测站开关阀自报
    public static final String cd_84 = "84" ;//开阀工作报
    public static final String cd_85 = "85" ;//APP开阀工作报
    public static final String cd_91 = "91" ;//清空历史记录
    public static final String cd_92 = "92" ;//遥控启动阀门
    public static final String cd_93 = "93" ;//遥控关闭阀门
@@ -43,7 +42,7 @@
    public static final String cd_99 = "99" ;//定时关阀开阀
    public static final String cd_A0 = "A0" ;//定量关阀开阀
    public static final String cd_B0 = "B0" ;//查询实时数据(未实现)
    public static final String cd_C0 = "C0" ;//遥测站自报实时数据
    public static final String cd_C0 = "C0" ;//遥测站整点上报实时数据
    public static String getCodeName(String code) {
        String name = (code.equals(cd_02) ? "链路检测" :
@@ -77,7 +76,6 @@
            (code.equals(cd_81) ? "随机自报" :
            (code.equals(cd_83) ? "开关阀自报" :
            (code.equals(cd_84) ? "开阀工作报" :
            (code.equals(cd_85) ? "APP开阀工作报" :
            (code.equals(cd_91) ? "清空历史记录" :
            (code.equals(cd_92) ? "遥控启动阀门" :
            (code.equals(cd_93) ? "遥控关闭阀门" :
@@ -88,7 +86,7 @@
            (code.equals(cd_A0) ? "定量关阀开阀" :
            (code.equals(cd_B0) ? "查询实时数据" :
            (code.equals(cd_C0) ? "自报实时数据" :
            "")))))))))))))))))))))))))))))))))))))))))) ;
            ""))))))))))))))))))))))))))))))))))))))))) ;
        return name ;
    }
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DataV1_0_1.java
@@ -16,6 +16,7 @@
    public String toString(){
        StringBuffer sb = new StringBuffer() ;
        sb.append("   控制器地址 : " + (rtuAddr==null?"":rtuAddr) + "\n") ;
        sb.append("   接收数据时间 : " + (dt==null?"":dt) + "\n") ;
        sb.append("   终端数据:\n") ;
        if(subData != null){
            sb.append(subData.toString()) ;
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_83_Up.java
@@ -100,47 +100,26 @@
        cdData.type = opType ;
        short index = ProtocolConstantV206V1_0_0.dataIndex + 1 ;
        //累计流量:5字节BCD码,取值范围0~9999999999,单位为m3。
        //累计流量:5字节BCD码,取值范围0~99999999.99,单位为m3。
        cdData.totalAmount = 0.0D ;
        int tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ;
        index++ ;
        cdData.totalAmount += tpInt;
        tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ;
        index++ ;
        cdData.totalAmount += tpInt * 100.0 ;
        tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ;
        index++ ;
        cdData.totalAmount += tpInt * 10000.0 ;
        tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ;
        index++ ;
        cdData.totalAmount += tpInt * 1000000.0 ;
        tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ;
        index++ ;
        cdData.totalAmount += tpInt * 100000000.0 ;
        int tpInt = ByteUtil.BCD2Int_LE(bs, index, index + 4) ;
        cdData.totalAmount += tpInt/100.0 ;
        index += 5 ;
        //用水户号数据格式:5字节BCD码低位在前高位在后。
        cdData.icCardNo = ByteUtil.BCD2String_LE(bs, index, index + 4) ;
        index += 5 ;
        index += 5 ;
        //IC卡号格式:4字节HEX码低位在前高位在后。
        cdData.icCardAddr = ByteUtil.bytesToHex(bs, index, index + 3) ;
        index += 4 ;
        index += 4 ;
        //用水户余额:用户余额4字节BCD码,取值范围0.00~999999.99,单位为元。
        cdData.remainMoney = 0.0D ;
        tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ;
        index++ ;
        tpInt = ByteUtil.BCD2Int_LE(bs, index, index + 3) ;
        cdData.remainMoney += tpInt/100.0 ;
        tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ;
        index++ ;
        cdData.remainMoney += tpInt;
        tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ;
        index++ ;
        cdData.remainMoney += tpInt * 100.0 ;
        tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ;
        index++ ;
        cdData.remainMoney += tpInt * 10000.0 ;
        index += 4 ;
        //用水户用水开始时间:6字节BCD码,顺序是年月日时分秒,其中公元年=2000+年。
        cdData.openDt = GlParse.parseTp(bs, index) ;
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_84_Up.java
@@ -88,70 +88,37 @@
        dV1.subData = cdData ;
        short index = ProtocolConstantV206V1_0_0.dataIndex ;
        cdData.opType = bs[index] ;
        //cdData.opType = bs[index] ;
        index++ ;
        cdData.cardType = bs[index] ;
        //index++ ;
        //cdData.cardType = bs[index] ;
        index++ ;
        cdData.cardAddr = ByteUtil.bytes2Hex(bs, false,  index, 4) ;
        //index++ ;
        //cdData.cardAddr = ByteUtil.bytes2Hex(bs, false,  index, 4) ;
        index += 4 ;
        //index += 4 ;
        //用水户号数据格式:5字节BCD码低位在前高位在后。
        cdData.cardNo = ByteUtil.BCD2String_LE(bs, index, index + 4) ;
        index += 5 ;
        //用水户余额:用户余额4字节BCD码,取值范围0.00~999999.99,单位为元。
        cdData.remainMoney = 0.0D ;
        int tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ;
        index++ ;
        int tpInt = ByteUtil.BCD2Int_LE(bs, index, index + 3) ;
        cdData.remainMoney += tpInt/100.0 ;
        tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ;
        index++ ;
        cdData.remainMoney += tpInt;
        tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ;
        index++ ;
        cdData.remainMoney += tpInt * 100.0 ;
        tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ;
        index++ ;
        cdData.remainMoney += tpInt * 10000.0 ;
        index += 4 ;
        //累计流量:5字节BCD码,取值范围0~9999999999,单位为m3。
        cdData.totalAmount = 0.0D ;
        tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ;
        index++ ;
        tpInt = ByteUtil.BCD2Int_LE(bs, index, index + 4) ;
        cdData.totalAmount += tpInt;
        tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ;
        index++ ;
        cdData.totalAmount += tpInt * 100.0 ;
        tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ;
        index++ ;
        cdData.totalAmount += tpInt * 10000.0 ;
        tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ;
        index++ ;
        cdData.totalAmount += tpInt * 1000000.0 ;
        tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ;
        index++ ;
        cdData.totalAmount += tpInt * 100000000.0 ;
        index += 5 ;
        //瞬时流量:5字节BCD码,取值范围0~9999999.999,单位为m3/h。
        cdData.instantAmount = 0.0D ;
        tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ;
        index++ ;
        tpInt = ByteUtil.BCD2Int_LE(bs, index, index + 4) ;
        cdData.instantAmount += tpInt/1000.0 ;
        tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ;
        index++ ;
        cdData.instantAmount += tpInt/10.0 ;
        tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ;
        index++ ;
        cdData.instantAmount += tpInt * 10.0 ;
        tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ;
        index++ ;
        cdData.instantAmount += tpInt * 1000.0 ;
        tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ;
        index++ ;
        cdData.instantAmount += tpInt * 100000.0 ;
        index += 5 ;
        cdData.alarmVo = GlParse.parseAlarm(bs, index) ;
        index += 2 ;
        cdData.stateVo = GlParse.parseState(bs, index) ;
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCd84Vo.java
@@ -9,12 +9,12 @@
@Data
public class DataCd84Vo {
    public Byte opType;//开关阀类型(1:刷卡开阀;2:刷卡关阀;3:中心站开阀;4:中心站关阀;5:欠费关阀;6:流量计故障关阀;7:紧急关闭;8:用户远程开阀;9:用户远程关阀;10:开关阀卡关阀;11:开关阀卡刷卡卡开阀;)
    public Byte cardType ;//卡类型(1:用户卡;2:管理员卡;3:调试卡;4:开关阀卡;5:清空卡)
    public String cardAddr ;//IC卡地址(8位字符)
    //public Byte opType;//开关阀类型(1:刷卡开阀;2:刷卡关阀;3:中心站开阀;4:中心站关阀;5:欠费关阀;6:流量计故障关阀;7:紧急关闭;8:用户远程开阀;9:用户远程关阀;10:开关阀卡关阀;11:开关阀卡刷卡卡开阀;)
    //public Byte cardType ;//卡类型(1:用户卡;2:管理员卡;3:调试卡;4:开关阀卡;5:清空卡)
    //public String cardAddr ;//IC卡地址(8位字符)
    public String cardNo ;//IC卡编号
    public Double remainMoney ;//剩余金额:用户余额4字节BCD码,取值范围0.00~999999.99,单位为元
    public Double totalAmount; //累计流量(本次开阀以来的累计流量):5字节BCD码,取值范围0~9999999999,单位为m3。
    public Double totalAmount; //累计流量(水表上的累计流量):5字节BCD码,取值范围0~9999999999,单位为m3。
    public Double instantAmount; //瞬时流量:5字节BCD码,取值范围0~9999999.999,单位为m3/h。
    public String rtuDt ;//控制器时钟
@@ -24,15 +24,15 @@
    public String toString(){
        StringBuilder sb = new StringBuilder() ;
        sb.append("   终端开阀工作报:\n");
        sb.append("      开阀类型:");
        sb.append(opType==null?"未知": CommonV1_0_1.openCloseValveType(opType));
        sb.append("\n");
        sb.append("      IC卡类型:");
        sb.append(cardType==null?"未知":CommonV1_0_1.icCardType(cardType)) ;
        sb.append("\n");
        sb.append("      IC卡地址:");
        sb.append(cardAddr);
        sb.append("\n");
//        sb.append("      开阀类型:");
//        sb.append(opType==null?"未知": CommonV1_0_1.openCloseValveType(opType));
//        sb.append("\n");
//        sb.append("      IC卡类型:");
//        sb.append(cardType==null?"未知":CommonV1_0_1.icCardType(cardType)) ;
//        sb.append("\n");
//        sb.append("      IC卡地址:");
//        sb.append(cardAddr);
//        sb.append("\n");
        sb.append("      IC卡编号:");
        sb.append(cardNo);
        sb.append("\n");
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmCommandHistory.java
@@ -15,6 +15,7 @@
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.dy.common.po.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
@@ -31,7 +32,7 @@
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class RmCommandHistory {
public class RmCommandHistory implements BaseEntity {
    public static final long serialVersionUID = 202401151517005L;
    /**
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmLossHistory.java
@@ -5,7 +5,10 @@
import com.baomidou.mybatisplus.annotation.IdType;
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.DataCdC0Vo;
import com.dy.common.po.BaseEntity;
import com.dy.common.util.DateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
@@ -85,4 +88,10 @@
    public Double lossAmount;
    public void valueFrom(DataV1_0_1 dV1_0_1, DataCdC0Vo cdData) throws Exception{
        this.dt = DateTime.dateFrom_yyyy_MM_dd1(dV1_0_1.dt);
        this.dtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt);
        this.dtRtu = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt);
        this.lossAmount = cdData.lossAmount ;// 损失流量(从0时到当前的漏损累计流量,24时一个周期,0时归0)单位为m3。
    }
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmLossLast.java
@@ -5,7 +5,10 @@
import com.baomidou.mybatisplus.annotation.IdType;
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.DataCdC0Vo;
import com.dy.common.po.BaseEntity;
import com.dy.common.util.DateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
@@ -91,5 +94,11 @@
    @Schema(description = "日漏损量(m3)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    public Double lossAmount;
    public void valueFrom(DataV1_0_1 dV1_0_1, DataCdC0Vo cdData) throws Exception{
        this.dt = DateTime.dateFrom_yyyy_MM_dd1(dV1_0_1.dt);
        this.dtLast = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt);
        this.dtRtu = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt);
        this.lossAmount = cdData.lossAmount ;// 损失流量(从0时到当前的漏损累计流量,24时一个周期,0时归0)单位为m3。
    }
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmOpenCloseValveLast.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.dy.common.po.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
@@ -24,7 +25,7 @@
@NoArgsConstructor
@AllArgsConstructor
@Schema(name = "控制器开关阀上报最新数据")
public class RmOpenCloseValveLast {
public class RmOpenCloseValveLast  implements BaseEntity {
    public static final long serialVersionUID = 202402231602001L;
    /**
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWorkReportHistory.java
@@ -5,6 +5,8 @@
import com.baomidou.mybatisplus.annotation.IdType;
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.DataCd84Vo;
import com.dy.common.mw.protocol.p206V202404.DataV202404;
import com.dy.common.mw.protocol.p206V202404.upVos.DataCd80_5BVo;
import com.dy.common.po.BaseEntity;
@@ -252,4 +254,35 @@
        this.waterMeterTransVolt = cdData.waterMeterTransVolt ;
        this.waterMeterWorkVolt = cdData.waterMeterWorkVolt ;
    }
    public void valueFrom(DataV1_0_1 dV1_0_1, DataCd84Vo cdData) throws Exception{
        this.dt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt);
        this.rtuDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt);
        //this.orderNo = cdData.orderNo ;
        //this.icCardAddr = cdData.icCardAddr ;
        this.icCardNo = cdData.cardNo ;
        //this.waterLevel = cdData.waterLevel ;
        //this.waterPress = cdData.waterPress ;
        this.waterInstant = cdData.instantAmount ;
        this.waterTotal = cdData.totalAmount ;
        //this.eleTotal = cdData.eleTotal ;
        this.moneyRemain = cdData.remainMoney ;
        //this.waterRemain = cdData.waterRemain ;
        //this.thisEle = cdData.thisEle ;
        //this.thisWater = cdData.thisWater ;
        //this.thisMoney = cdData.thisMoney ;
        //this.thisDuration = cdData.thisDuration ;
        //this.waterPrice = cdData.waterPrice ;
        //this.elePrice = cdData.elePrice ;
        //this.aVolt = cdData.aVolt ;
        //this.bVolt = cdData.bVolt ;
        //this.cVolt = cdData.cVolt ;
        //this.aCurrent = cdData.aCurrent ;
        //this.bCurrent = cdData.bCurrent ;
        //this.cCurrent = cdData.cCurrent ;
        //this.batteryVolt = cdData.batteryVolt ;
        //this.waterMeterTransVolt = cdData.waterMeterTransVolt ;
        //this.waterMeterWorkVolt = cdData.waterMeterWorkVolt ;
    }
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoRm/RmWorkReportLast.java
@@ -5,6 +5,8 @@
import com.baomidou.mybatisplus.annotation.IdType;
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.DataCd84Vo;
import com.dy.common.mw.protocol.p206V202404.DataV202404;
import com.dy.common.mw.protocol.p206V202404.upVos.DataCd80_5BVo;
import com.dy.common.po.BaseEntity;
@@ -251,4 +253,35 @@
         this.waterMeterTransVolt = cdData.waterMeterTransVolt ;
         this.waterMeterWorkVolt = cdData.waterMeterWorkVolt ;
    }
    public void valueFrom(DataV1_0_1 dV1_0_1, DataCd84Vo cdData) throws Exception{
        this.dt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt);
        this.rtuDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(cdData.rtuDt);
        //this.orderNo = cdData.orderNo ;
        //this.icCardAddr = cdData.icCardAddr ;
        this.icCardNo = cdData.cardNo ;
        //this.waterLevel = cdData.waterLevel ;
        //this.waterPress = cdData.waterPress ;
        this.waterInstant = cdData.instantAmount ;
        this.waterTotal = cdData.totalAmount ;
        //this.eleTotal = cdData.eleTotal ;
        this.moneyRemain = cdData.remainMoney ;
        //this.waterRemain = cdData.waterRemain ;
        //this.thisEle = cdData.thisEle ;
        //this.thisWater = cdData.thisWater ;
        //this.thisMoney = cdData.thisMoney ;
        //this.thisDuration = cdData.thisDuration ;
        //this.waterPrice = cdData.waterPrice ;
        //this.elePrice = cdData.elePrice ;
        //this.aVolt = cdData.aVolt ;
        //this.bVolt = cdData.bVolt ;
        //this.cVolt = cdData.cVolt ;
        //this.aCurrent = cdData.aCurrent ;
        //this.bCurrent = cdData.bCurrent ;
        //this.cCurrent = cdData.cCurrent ;
        //this.batteryVolt = cdData.batteryVolt ;
        //this.waterMeterTransVolt = cdData.waterMeterTransVolt ;
        //this.waterMeterWorkVolt = cdData.waterMeterWorkVolt ;
    }
}
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;
@@ -27,7 +28,6 @@
    //类ID,一定与Tree.xml配置文件中配置一致
    public static final String taskId = "TkDealCloseValveReport" ;
    /**
     * 执行节点任务: 处理控制器关阀上报
     * @param data 需要处理的数据
@@ -35,21 +35,20 @@
    @Override
    public void execute(Object data) {
        Data d = (Data) data;
        Object subD = d.getSubData();
        if (subD != null) {
            DataV1_0_1 dV1_0_1 = (DataV1_0_1) subD;
//            if (dV1_0_1 != null && dV1_0_1.dataCd83CloseVo != null) {
//                Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ;
//                DbSv sv = (DbSv)objs[0] ;
//                PrController controller = (PrController)objs[1] ;
//                try{
//                    this.doDeal(sv, controller, d.getRtuAddr(), dV1_0_1, dV1_0_1.dataCd83CloseVo) ;
//                }catch (Exception e){
//                    log.error("保存控制器关阀上报时发生异常", e);
//                }
//            }
        DataV1_0_1 dV1_0_1 = (DataV1_0_1) d.getSubData();
        Object cdObj = dV1_0_1.subData;
        if (cdObj != null && cdObj instanceof DataCd83CloseVo) {
            Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ;
            DbSv sv = (DbSv)objs[0] ;
            PrController controller = (PrController)objs[1] ;
            try{
                this.doDeal(sv, controller, d.getRtuAddr(), dV1_0_1, (DataCd83CloseVo)cdObj) ;
            }catch (Exception e){
                log.error("保存控制器开阀上报时发生异常", e);
            }
        }
    }
    /**
     * 保存数据
     * @param sv 服务
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealControllerNoTramp.java
@@ -1,6 +1,8 @@
package com.dy.rtuMw.server.rtuData.p206V1_0_0;
import com.dy.pipIrrGlobal.pojoPr.PrControllerTramp;
import com.dy.rtuMw.server.rtuData.TaskSurpport;
import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -24,7 +26,10 @@
     */
    @Override
    public void execute(Object data) {
        //此任务无具体业务逻辑,只是在任务xml配置文件中,框住其子任务节点
        this.toNextTasks(data);
        Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ;
        PrControllerTramp tramp = (PrControllerTramp)objs[2] ;
        if(tramp == null){
            this.toNextTasks(data);
        }
    }
}
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealControllerTramp.java
@@ -6,6 +6,8 @@
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.util.Date;
/**
 * @Author liurunyu
 * @Date 2024/1/15 16:29
@@ -33,7 +35,12 @@
        PrControllerTramp tramp = (PrControllerTramp)objs[2] ;
        if(tramp != null){
            DbSv sv = (DbSv)objs[0] ;
            sv.savePrConctrollerTramp(tramp);
            if(tramp.id == null){
                sv.savePrConctrollerTramp(tramp);
            }else{
                tramp.findDt = new Date() ;
                sv.updatePrConctrollerTramp(tramp) ;
            }
        }
    }
}
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealLoss.java
@@ -33,18 +33,16 @@
    @Override
    public void execute(Object data) {
        Data d = (Data) data;
        Object subD = d.getSubData();
        if (subD != null) {
            DataV1_0_1 dV1_0_1 = (DataV1_0_1) subD;
            if (dV1_0_1 != null && dV1_0_1.subData != null && dV1_0_1.subData instanceof DataCdC0Vo) {
                Object[] objs = this.getTaskResults(TkPreGenObjs.taskId);
                DbSv sv = (DbSv) objs[0];
                PrController controller = (PrController) objs[1];
                try {
                    this.doDeal(sv, controller, d.getRtuAddr(), dV1_0_1, (DataCdC0Vo)dV1_0_1.subData);
                } catch (Exception e) {
                    log.error("保存遥测站自报实时数据中的漏损数据时发生异常", e);
                }
        DataV1_0_1 dV1_0_1 = (DataV1_0_1) d.getSubData();//前面任务已经判断不为null
        Object cdObj = dV1_0_1.subData;
        if (cdObj != null && cdObj instanceof DataCdC0Vo){
            Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ;
            DbSv sv = (DbSv)objs[0] ;
            PrController controller = (PrController)objs[1] ;
            try{
                this.doDeal(sv, controller, d.getRtuAddr(), dV1_0_1, (DataCdC0Vo)cdObj);
            }catch (Exception e){
                log.error("保存遥测站自报实时数据中的漏损数据时发生异常", e);
            }
        }
    }
@@ -93,7 +91,7 @@
                    this.newAndSaveHistoryDataDeal(sv, controller, rtuAddr, dV1_0_1, dataCdC0Vo, poLast);
                    sv.saveRmLossLast(poLast);
                }else{
                    //这种情况不存在(收到数据的日期早于本地记录中的日期,此种情况不会存在)
                    //这种情况不存在(RTU时钟早于本地记录中的RTU时钟(RTU穿越回过去了,可能时钟重置了),此种情况不处理)
                }
            }
        }
@@ -104,17 +102,16 @@
     * @param controller
     * @param rtuAddr
     * @param dV1_0_1
     * @param dataCdC0Vo
     * @param cdData
     * @return
     * @throws Exception
     */
    private RmLossLast newRmLossLast(PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCdC0Vo dataCdC0Vo)throws Exception {
        RmLossLast po = new RmLossLast(null, null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
                rtuAddr,
                DateTime.dateFrom_yyyy_MM_dd1(dV1_0_1.dt),
                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCdC0Vo.rtuDt),
                dataCdC0Vo.lossAmount) ;
    private RmLossLast newRmLossLast(PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCdC0Vo cdData)throws Exception {
        RmLossLast po = new RmLossLast() ;
        po.controllerId = controller==null?null:controller.getId();
        po.intakeId = controller==null?null:controller.getIntakeId();
        po.rtuAddr = rtuAddr;
        po.valueFrom(dV1_0_1, cdData) ;
        return po ;
    }
@@ -123,17 +120,16 @@
     * @param controller
     * @param rtuAddr
     * @param dV1_0_1
     * @param dataCdC0Vo
     * @param cdData
     * @return
     * @throws Exception
     */
    private RmLossHistory newRmLossHistory(PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCdC0Vo dataCdC0Vo)throws Exception {
        RmLossHistory po = new RmLossHistory(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
                rtuAddr,
                DateTime.dateFrom_yyyy_MM_dd1(dV1_0_1.dt),
                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCdC0Vo.rtuDt),
                dataCdC0Vo.lossAmount) ;
    private RmLossHistory newRmLossHistory(PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCdC0Vo cdData)throws Exception {
        RmLossHistory po = new RmLossHistory() ;
        po.controllerId = controller==null?null:controller.getId();
        po.intakeId = controller==null?null:controller.getIntakeId();
        po.rtuAddr = rtuAddr;
        po.valueFrom(dV1_0_1, cdData);
        return po ;
    }
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOnHourReport.java
@@ -82,8 +82,6 @@
            po.valueFrom(dV1_0_1, cdData);
            sv.updateRmOnHourReportLast(po);
        }
    }
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.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.DataCd83OpenVo;
import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd84Vo;
import com.dy.common.util.DateTime;
import com.dy.pipIrrGlobal.pojoPr.PrController;
import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveHistory;
@@ -33,21 +34,16 @@
    @Override
    public void execute(Object data) {
        Data d = (Data) data;
        Object subD = d.getSubData();
        if (subD != null) {
            DataV1_0_1 dV1_0_1 = (DataV1_0_1) subD;
            if (dV1_0_1 != null && dV1_0_1.subData != null) {
                if(dV1_0_1.subData instanceof DataCd83OpenVo){
                    DataCd83OpenVo vo83 = (DataCd83OpenVo)dV1_0_1.subData ;
                    Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ;
                    DbSv sv = (DbSv)objs[0] ;
                    PrController controller = (PrController)objs[1] ;
                    try{
                        this.doDeal(sv, controller, d.getRtuAddr(), dV1_0_1, vo83) ;
                    }catch (Exception e){
                        log.error("保存控制器开阀上报时发生异常", e);
                    }
                }
        DataV1_0_1 dV1_0_1 = (DataV1_0_1) d.getSubData();
        Object cdObj = dV1_0_1.subData;
        if (cdObj != null && cdObj instanceof DataCd83OpenVo) {
            Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ;
            DbSv sv = (DbSv)objs[0] ;
            PrController controller = (PrController)objs[1] ;
            try{
                this.doDeal(sv, controller, d.getRtuAddr(), dV1_0_1, (DataCd83OpenVo)cdObj) ;
            }catch (Exception e){
                log.error("保存控制器开阀上报时发生异常", e);
            }
        }
    }
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealWorkReport.java
@@ -5,7 +5,6 @@
import com.dy.common.mw.protocol.Data;
import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd84Vo;
import com.dy.common.mw.protocol.p206V1_0_0.DataV1_0_1;
import com.dy.common.util.DateTime;
import com.dy.pipIrrGlobal.pojoPr.PrController;
import com.dy.pipIrrGlobal.pojoRm.RmWorkReportHistory;
import com.dy.pipIrrGlobal.pojoRm.RmWorkReportLast;
@@ -32,19 +31,17 @@
    @Override
    public void execute(Object data) {
        Data d = (Data) data;
        Object subD = d.getSubData();
        if (subD != null) {
            DataV1_0_1 dV1_0_1 = (DataV1_0_1) subD;
//            if (dV1_0_1 != null && dV1_0_1.dataCd84Vo != null) {
//                Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ;
//                DbSv sv = (DbSv)objs[0] ;
//                PrController controller = (PrController)objs[1] ;
//                try{
//                    this.doDeal(sv, controller, d.getRtuAddr(), dV1_0_1, dV1_0_1.dataCd84Vo) ;
//                }catch (Exception e){
//                    log.error("保存控制器阀开工作报时发生异常", e);
//                }
//            }
        DataV1_0_1 dV1_0_1 = (DataV1_0_1) d.getSubData();//前面任务已经判断不为null
        Object cdObj = dV1_0_1.subData;
        if (cdObj != null && cdObj instanceof DataCd84Vo) {
            Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ;
            DbSv sv = (DbSv)objs[0] ;
            PrController controller = (PrController)objs[1] ;
            try{
                this.doDeal(sv, controller, d.getRtuAddr(), dV1_0_1, (DataCd84Vo)cdObj) ;
            }catch (Exception e){
                log.error("保存控制器阀开工作报时发生异常", e);
            }
        }
    }
    /**
@@ -65,32 +62,23 @@
     * @param controller
     * @param rtuAddr
     * @param dV1_0_1
     * @param dataCd84Vo
     * @param cdData
     */
    private void saveOrUpdateLast(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd84Vo dataCd84Vo) throws Exception {
//        RmWorkReportLast po = sv.getRmWorkReportLast(rtuAddr) ;
//        if(po == null){
//            po = new RmWorkReportLast(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
//                    rtuAddr,
//                    DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
//                    DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd84Vo.rtuDt),
//                    dataCd84Vo.cardNo,
//                    dataCd84Vo.totalAmount,
//                    dataCd84Vo.instantAmount,
//                    dataCd84Vo.remainMoney) ;
//            sv.saveRmWorkReportLast(po) ;
//        }else{
//            po.controllerId = controller==null?null:controller.getId();
//            po.intakeId = controller==null?null:controller.getIntakeId();
//
//            po.dt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt);
//            po.rtuDt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd84Vo.rtuDt);
//            po.icCardNo = dataCd84Vo.cardNo;
//            po.totalAmount = dataCd84Vo.totalAmount;
//            po.instantAmount = dataCd84Vo.instantAmount;
//            po.remainMoney = dataCd84Vo.remainMoney;
//            sv.updateRmWorkReportLast(po);
//        }
    private void saveOrUpdateLast(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd84Vo cdData) throws Exception {
        RmWorkReportLast po = sv.getRmWorkReportLast(rtuAddr) ;
        if(po == null){
            po = new RmWorkReportLast() ;
            po.controllerId = controller==null?null:controller.getId();
            po.intakeId = controller==null?null:controller.getIntakeId();
            po.rtuAddr = rtuAddr;
            po.valueFrom(dV1_0_1, cdData);
            sv.saveRmWorkReportLast(po) ;
        }else{
            po.controllerId = controller==null?null:controller.getId();
            po.intakeId = controller==null?null:controller.getIntakeId();
            po.valueFrom(dV1_0_1, cdData);
            sv.updateRmWorkReportLast(po);
        }
    }
    /**
     * 保存阀开工作报历史数据
@@ -98,18 +86,15 @@
     * @param controller
     * @param rtuAddr
     * @param dV1_0_1
     * @param dataCd84Vo
     * @param cdData
     */
    private void saveHistory(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd84Vo dataCd84Vo) throws Exception {
//        RmWorkReportHistory po = new RmWorkReportHistory(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
//                rtuAddr,
//                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
//                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dataCd84Vo.rtuDt),
//                dataCd84Vo.cardNo,
//                dataCd84Vo.totalAmount,
//                dataCd84Vo.instantAmount,
//                dataCd84Vo.remainMoney) ;
//        sv.saveRmWorkReportHistory(po) ;
    private void saveHistory(DbSv sv, PrController controller, String rtuAddr, DataV1_0_1 dV1_0_1, DataCd84Vo cdData) throws Exception {
        RmWorkReportHistory po = new RmWorkReportHistory();
        po.controllerId = controller==null?null:controller.getId();
        po.intakeId = controller==null?null:controller.getIntakeId();
        po.rtuAddr = rtuAddr;
        po.valueFrom(dV1_0_1, cdData);
        sv.saveRmWorkReportHistory(po) ;
    }
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealControllerNoTrampV202404.java
@@ -1,8 +1,12 @@
package com.dy.rtuMw.server.rtuData.p206V202404;
import com.dy.pipIrrGlobal.pojoPr.PrControllerTramp;
import com.dy.rtuMw.server.rtuData.TaskSurpport;
import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.util.Date;
/**
 * @Author liurunyu
@@ -22,7 +26,10 @@
     */
    @Override
    public void execute(Object data) {
        //此任务无具体业务逻辑,只是在任务xml配置文件中,框住其子任务节点
        this.toNextTasks(data);
        Object[] objs = this.getTaskResults(TkPreGenObjsV202404.taskId) ;
        PrControllerTramp tramp = (PrControllerTramp)objs[2] ;
        if(tramp == null){
            this.toNextTasks(data);
        }
    }
}
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealControllerTrampV202404.java
@@ -35,7 +35,6 @@
                tramp.findDt = new Date() ;
                sv.updatePrConctrollerTramp(tramp) ;
            }
        }
    }
}
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml
@@ -16,11 +16,11 @@
                        <!-- 识别非命令应答上行数据 -->
                        <task id="TkFindReport" name="识别非命令应答上行数据" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkFindReport">
                            <task id="TkDealAlarmStatus" name="控制器报警与状态数据" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealAlarmStatus" />
                            <task id="TkDealOnHourReport" name="控制器自报数据(整点报)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealOnHourReport" />
                            <task id="TkDealWorkReport" name="控制器阀开工作上报" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealWorkReport" />
                            <task id="TkDealOpenValveReport" name="控制器开阀上报" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealOpenValveReport" />
                            <task id="TkDealCloseValveReport" name="控制器关阀上报" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealCloseValveReport" />
                            <task id="TkDealLoss" name="控制器漏损统计(待新协议出来后修改实现)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealLoss" />
                            <task id="TkDealOnHourReport" name="控制器自报数据(整点报)(功能码C0)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealOnHourReport" />
                            <task id="TkDealWorkReport" name="控制器阀开工作上报(功能码84)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealWorkReport" />
                            <task id="TkDealOpenValveReport" name="控制器开阀上报(功能码83)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealOpenValveReport" />
                            <task id="TkDealCloseValveReport" name="控制器关阀上报(功能码83)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealCloseValveReport" />
                            <task id="TkDealLoss" name="控制器漏损统计(功能码C0)(待新协议出来后修改实现)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealLoss" />
                        </task>
                        <!-- 识别命令响应数据 -->
                        <task id="TkFindComResponse" name="识别响应命令数据" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkFindComResponse">