Administrator
2024-06-27 ede8e6c13bd8d12108ecb9ad0f40480ebf44919c
Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV
28个文件已修改
1个文件已添加
699 ■■■■■ 已修改文件
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/daoSe/SePaymentMethodMapper.java 10 ●●●●● 补丁 | 查看 | 原始文档 | 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-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SePaymentMethod.java 89 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/init-config.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SePaymentMethodMapper.xml 24 ●●●●● 补丁 | 查看 | 原始文档 | 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-parent.iml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/PipIrrBaseApplication.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/util/InitListener.java 94 ●●●●● 补丁 | 查看 | 原始文档 | 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/daoSe/SePaymentMethodMapper.java
@@ -2,18 +2,15 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dy.pipIrrGlobal.pojoSe.SePaymentMethod;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
 * @author ZhuBaoMin
 * @date 2023/12/5 16:03
 * @LastEditTime 2023/12/5 16:03
 * @author :WuZeYu
 * @Date :2024/6/27  15:00
 * @LastEditTime :2024/6/27  15:00
 * @Description
 */
@Mapper
public interface SePaymentMethodMapper extends BaseMapper<SePaymentMethod> {
    int deleteByPrimaryKey(Long id);
@@ -29,6 +26,7 @@
    /**
     * 获取全部未删除付款方式
     *
     * @return 未删除付款方式
     */
    List<SePaymentMethod> getPaymentMethods();
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-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SePaymentMethod.java
@@ -1,63 +1,62 @@
package com.dy.pipIrrGlobal.pojoSe;
/**
 * @author ZhuBaoMin
 * @date 2023/12/5 16:03
 * @LastEditTime 2023/12/5 16:03
 * @author :WuZeYu
 * @Date :2024/6/27  15:00
 * @LastEditTime :2024/6/27  15:00
 * @Description
 */
import com.alibaba.fastjson2.annotation.JSONField;
import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
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 io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import lombok.*;
import org.hibernate.validator.constraints.Length;
/**
 * 付款方式表
 */
@TableName(value="se_payment_method", autoResultMap = true)
@Data
@Builder
@ToString
@NoArgsConstructor
@AllArgsConstructor
@Schema(name = "付款方式实体")
public class SePaymentMethod implements BaseEntity {
public class SePaymentMethod {
    public static final long serialVersionUID = 202401151518006L;
    /**
    * 主键
    */
    @JSONField(serializeUsing= ObjectWriterImplToString.class)
    @TableId(type = IdType.INPUT)
    @Schema(description = "实体id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     * 主键
     */
    private Long id;
    /**
    * 付款方式
    */
    @Schema(description = "付款方式名称", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "付款方式名称不能为空") //不能为空也不能为null
    @Length(message = "付款方式名称名称不大于{max}字,不小于{min}字", min = 1, max = 10)
     * 名称
     */
    private String name;
    /**
    * 备注信息
    */
    @Schema(description = "备注", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    @Length(message = "备注长度小于{max}字", min = 1, max = 200)
     * 备注信息
     */
    private String remarks;
    /**
    * 逻辑删除标识;0-未删除,1-删除
    */
    @Schema(description = "付款方式删除标志,表单不用填写", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     * 逻辑删除标识;0-未删除,1-删除
     */
    private Byte deleted;
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getRemarks() {
        return remarks;
    }
    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }
    public Byte getDeleted() {
        return deleted;
    }
    public void setDeleted(Byte deleted) {
        this.deleted = deleted;
    }
}
pipIrr-platform/pipIrr-global/src/main/resources/init-config.xml
@@ -11,6 +11,19 @@
                </province>
            </districts>
            <user name="超级管理员" phone="admin" password="admin" supperAdmin="1" />
            <payments>
                <item1 name="现金"/>
                <item2 name="微信支付"/>
                <item3 name="支付宝支付"/>
                <item4 name="银行转账"/>
            </payments>
            <settings>
                    <item1 item_name="lng" item_value="101.87345" remarks="经度"/>
                    <item2 item_name="lat" item_value="25.70424" remarks="纬度"/>
                    <item3 item_name="projectNo" item_value="10" remarks="项目编号"/>
                    <item4 item_name="controllerType" item_value="57" remarks="控制器类型"/>
                    <item5 item_name="protocolName" item_value="p206V202404" remarks="协议名称"/>
            </settings>
        </org1>
    </orgs>
</config>
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
@@ -224,6 +224,7 @@
      ge.deleted = 0
      AND divi.deleted = 0
      and blo.deleted = 0
      and cont.deleted = 0
      <if test="intakeName != null and intakeName != ''">
        AND ge.name LIKE CONCAT('%', #{intakeName}, '%')
      </if>
@@ -283,6 +284,7 @@
      ge.deleted = 0
      AND divi.deleted = 0
      and blo.deleted = 0
      and cont.deleted = 0
      <if test="intakeName != null and intakeName != ''">
        AND ge.name LIKE CONCAT('%', #{intakeName}, '%')
      </if>
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SePaymentMethodMapper.xml
@@ -20,28 +20,25 @@
    from se_payment_method
    where id = #{id,jdbcType=BIGINT}
  </select>
  <!--获取全部未删除付款方式-->
  <select id="getPaymentMethods" resultType="com.dy.pipIrrGlobal.pojoSe.SePaymentMethod">
    SELECT * FROM se_payment_method WHERE deleted = 0
  </select>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
    <!--@mbg.generated-->
    delete from se_payment_method
    where id = #{id,jdbcType=BIGINT}
  </delete>
  <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.dy.pipIrrGlobal.pojoSe.SePaymentMethod" useGeneratedKeys="true">
  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoSe.SePaymentMethod" >
    <!--@mbg.generated-->
    insert into se_payment_method (`name`, remarks, deleted
    insert into se_payment_method (id, `name`, remarks, deleted
      )
    values (#{name,jdbcType=VARCHAR}, #{remarks,jdbcType=VARCHAR}, #{deleted,jdbcType=TINYINT}
    values (#{id,jdbcType=BIGINT},#{name,jdbcType=VARCHAR}, #{remarks,jdbcType=VARCHAR}, #{deleted,jdbcType=TINYINT}
      )
  </insert>
  <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.dy.pipIrrGlobal.pojoSe.SePaymentMethod" useGeneratedKeys="true">
    <!--@mbg.generated-->
    insert into se_payment_method
    <trim prefix="(" suffix=")" suffixOverrides=",">
      <if test="id != null">
        id,
      </if>
      <if test="name != null">
        `name`,
      </if>
@@ -53,6 +50,9 @@
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides=",">
      <if test="id != null">
        #{id,jdbcType=BIGINT},
      </if>
      <if test="name != null">
        #{name,jdbcType=VARCHAR},
      </if>
@@ -88,4 +88,10 @@
      deleted = #{deleted,jdbcType=TINYINT}
    where id = #{id,jdbcType=BIGINT}
  </update>
  <!--获取全部未删除付款方式-->
  <select id="getPaymentMethods" resultType="com.dy.pipIrrGlobal.pojoSe.SePaymentMethod">
    SELECT * FROM se_payment_method WHERE deleted = 0
  </select>
</mapper>
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">
pipIrr-platform/pipIrr-parent.iml
New file
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_16">
    <output url="file://$MODULE_DIR$/target/classes" />
    <output-test url="file://$MODULE_DIR$/target/test-classes" />
    <content url="file://$MODULE_DIR$">
      <excludeFolder url="file://$MODULE_DIR$/target" />
    </content>
    <orderEntry type="inheritedJdk" />
    <orderEntry type="sourceFolder" forTests="false" />
  </component>
</module>
pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/PipIrrBaseApplication.java
@@ -18,7 +18,7 @@
                })
        }
)
@MapperScan(basePackages={"com.dy.pipIrrGlobal.daoBa"})
@MapperScan(basePackages={"com.dy.pipIrrGlobal.daoBa","com.dy.pipIrrGlobal.daoSe"})
public class PipIrrBaseApplication {
    public static void main(String[] args) {
pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/util/InitListener.java
@@ -7,9 +7,13 @@
import com.dy.common.util.MD5;
import com.dy.common.webListener.ConfigListener;
import com.dy.pipIrrGlobal.daoBa.BaDistrictMapper;
import com.dy.pipIrrGlobal.daoBa.BaSettingsMapper;
import com.dy.pipIrrGlobal.daoBa.BaUserMapper;
import com.dy.pipIrrGlobal.daoSe.SePaymentMethodMapper;
import com.dy.pipIrrGlobal.pojoBa.BaDistrict;
import com.dy.pipIrrGlobal.pojoBa.BaSettings;
import com.dy.pipIrrGlobal.pojoBa.BaUser;
import com.dy.pipIrrGlobal.pojoSe.SePaymentMethod;
import com.dy.pipIrrGlobal.util.DistrictLevel;
import org.jdom2.Document;
import org.springframework.beans.factory.annotation.Autowired;
@@ -31,6 +35,8 @@
    private BaDistrictMapper distriDao ;
    private BaUserMapper userDao ;
    private SePaymentMethodMapper paymentMethodDao ;
    private BaSettingsMapper settingsDao ;
    @Autowired
    public void setDistriDao(BaDistrictMapper distriDao){
@@ -40,6 +46,16 @@
    @Autowired
    public void setUserDao(BaUserMapper userDao){
        this.userDao = userDao ;
    }
    @Autowired
    public void setPaymentDao(SePaymentMethodMapper paymentMethodDao){
        this.paymentMethodDao = paymentMethodDao ;
    }
    @Autowired
    public void setSettingsDao(BaSettingsMapper settingsDao){
        this.settingsDao = settingsDao ;
    }
@@ -111,6 +127,32 @@
                            this.saveUser(orgTag, name, phone, password, supperAdmin);
                        }
                    }
                    if(!this.existPayments()){
                        if(configXml.existElement(doc, "config.orgs.org" + num + ".payments")){
                            for(int i = 1 ; i < 10000; i++){
                                if(configXml.existElement(doc, "config.orgs.org" + num + ".payments.item" + i)){
                                    String name = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".payments.item" + i,"name", null, false, null) ;
                                    this.savePayment(orgTag, name);
                                }else{
                                    break ;
                                }
                            }
                        }
                    }
                    if(!this.existSettings()){
                        if(configXml.existElement(doc, "config.orgs.org" + num + ".settings")){
                            for(int i = 1 ; i < 10000; i++){
                                if(configXml.existElement(doc, "config.orgs.org" + num + ".settings.item" + i)){
                                    String item_name = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".settings.item" + i,"item_name", null, false, null) ;
                                    String item_value = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".settings.item" + i,"item_value", null, false, null) ;
                                    String remarks = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".settings.item" + i,"remarks", null, false, null) ;
                                    this.saveSettings(orgTag, item_name, item_value, remarks);
                                }else{
                                    break ;
                                }
                            }
                        }
                    }
                }else{
                    break ;
                }
@@ -128,11 +170,29 @@
    }
    /**
     * 数据库中是否存在行政区划数据
     * 数据库中是否存在用户数据
     * @return 存在否
     */
    private boolean existUsers(){
        Long total = this.userDao.selectCount(null) ;
        return (total != null && total > 0) ;
    }
    /**
     * 数据库中是否存在支付方式数据
     * @return 存在否
     */
    private boolean existPayments(){
        Long total = this.paymentMethodDao.selectCount(null) ;
        return (total != null && total > 0) ;
    }
    /**
     * 数据库中是否存在系统配置数据
     * @return 存在否
     */
    private boolean existSettings(){
        Long total = this.settingsDao.selectCount(null) ;
        return (total != null && total > 0) ;
    }
@@ -185,5 +245,37 @@
            this.userDao.putin(po) ;
        }
    }
    /**
     * 保存支付方式
     * @param orgTag 机构标签
     * @param name 名称
     */
    private void savePayment(String orgTag, String name) throws Exception{
        if(name != null && !name.trim().equals("")){
            SePaymentMethod po = new SePaymentMethod() ;
            po.setName(name);
            po.setDeleted(Deleted.NO.code);
            this.paymentMethodDao.insert(po) ;
        }
    }
    /**
     * 保存系统配置
     * @param item_name 配置项
     * @param item_value 配置项值
     * @param remarks 备注信息
     * @throws Exception
     */
    private void saveSettings(String orgTag,String item_name, String item_value,String remarks) throws Exception{
        if((item_name != null && !item_name.trim().equals("")) &&
                (item_value != null && !item_value.trim().equals("")) &&
                (remarks != null && !remarks.trim().equals(""))){
            BaSettings po = new BaSettings() ;
            po.setItemName(item_name);
            po.setItemValue(item_value);
            po.setRemarks(remarks);
            this.settingsDao.insert(po) ;
        }
    }
}