zhubaomin
2024-11-13 1ba46471b7831f057991ad92573463488504b20e
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/ValveCtrl.java
@@ -3,9 +3,12 @@
import com.alibaba.fastjson2.JSONObject;
import com.dy.common.aop.SsoAop;
import com.dy.common.multiDataSource.DataSourceContext;
import com.dy.common.mw.protocol.p206V1_0_0.CodeV1_0_1;
import com.dy.common.mw.protocol.p206V1_0_0.downVos.*;
import com.dy.common.mw.protocol.p206V1.CodeV1;
import com.dy.common.mw.protocol.p206V1.ProtocolConstantV206V1;
import com.dy.common.mw.protocol.p206V1.downVos.*;
import com.dy.common.mw.protocol.p206V2.ProtocolConstantV206V2;
import com.dy.common.mw.protocol.p206V202404.CodeV202404;
import com.dy.common.mw.protocol.p206V202404.ProtocolConstantV206V202404;
import com.dy.common.mw.protocol.p206V202404.downVos.ComCd15Vo;
import com.dy.common.mw.protocol.p206V202404.downVos.ComCd92_A2Vo;
import com.dy.common.mw.protocol.p206V202404.downVos.ComCd93_A3Vo;
@@ -57,7 +60,6 @@
public class ValveCtrl extends ComSupport {
    private final CommandSv commandSv;
    private final SeVirtualCardMapper seVirtualCardMapper;
    private final IDLongGenerator idLongGenerator;
    @Value("${mw.rtuCallbackUrl_rm}")
    private String rtuCallbackUrl_rm;
@@ -72,10 +74,9 @@
    private String key_mw = "comSendUrl";
    @Autowired
    public ValveCtrl(CommandSv commandSv, SeVirtualCardMapper seVirtualCardMapper, IDLongGenerator idLongGenerator, Environment env) {
    public ValveCtrl(CommandSv commandSv, SeVirtualCardMapper seVirtualCardMapper, Environment env) {
        this.commandSv = commandSv;
        this.seVirtualCardMapper = seVirtualCardMapper;
        this.idLongGenerator = idLongGenerator;
        this.env = env;
    }
@@ -97,7 +98,7 @@
        Long intakeId = valve.getIntakeId();
        Long vcId = valve.getVcId();
        Long operator = valve.getOperator();
        Long comId = idLongGenerator.generate();
        Long comId = new IDLongGenerator().generate();
        // 获取水价
        Double waterPrice = commandSv.getPrice();
@@ -126,7 +127,7 @@
        }
        String commandCode = null;
        if(protocol.equals("p206V202404")) {
        if(protocol.equals(ProtocolConstantV206V202404.protocolName)) {
            // 新协议参数中需要虚拟卡
            if(vcId == null) {
                vcId = commandSv.getVcIdByIntakeId(intakeId);
@@ -177,9 +178,9 @@
            myParam.setRtuResultSendWebUrl(rtuCallbackUrl_rm);
            myParam.setOperator(operator);
            return dealWithCommandResult(myParam);
        } else if(protocol.equals("p206V1_0_1")) {
        } else if(protocol.equals(ProtocolConstantV206V1.protocolName) || protocol.equals(ProtocolConstantV206V2.protocolName)) {
            // 获取功能码
            commandCode = CodeV1_0_1.cd_92;
            commandCode = CodeV1.cd_92;
            /**
             * 构造命令、发送命令并处理请求结果及执行结果
@@ -190,7 +191,7 @@
            myParam.setComId(comId);
            myParam.setComType((byte)1);
            myParam.setCommandCode(commandCode);
            myParam.setCommandName(CodeV1_0_1.getCodeName(commandCode));
            myParam.setCommandName(CodeV1.getCodeName(commandCode));
            myParam.setIntakeId(intakeId);
            myParam.setRtuAddr(rtuAddr);
            myParam.setProtocol(protocol);
@@ -235,7 +236,7 @@
        String vcNum = voUnclosedParam.getVcNum();
        Long vcId = Optional.ofNullable(seVirtualCardMapper.getVcIdByNum(vcNum)).orElse(0L);
        String orderNo = voUnclosedParam.getOrderNo();
        Long comId = idLongGenerator.generate();
        Long comId = new IDLongGenerator().generate();
        // 阀控器地址换取水口ID和通讯协议
        JSONObject job_rtu = getRtu(null, rtuAddr);
@@ -252,7 +253,7 @@
        comSendUrl = env.getProperty(pro_mw + "." + orgTag + "." + key_mw);
        String commandCode = null;
        if(protocol.equals("p206V202404")) {
        if(protocol.equals(ProtocolConstantV206V202404.protocolName)) {
            // 获取功能码
            commandCode = CodeV202404.cd_93;
@@ -281,9 +282,9 @@
            myParam.setRtuResultSendWebUrl(rtuCallbackUrl_rm);
            myParam.setOperator(operator);
            return dealWithCommandResult(myParam);
        } else if(protocol.equals("p206V1_0_1")) {
        } else if(protocol.equals(ProtocolConstantV206V1.protocolName) || protocol.equals(ProtocolConstantV206V2.protocolName)) {
            // 获取功能码
            commandCode = CodeV1_0_1.cd_93;
            commandCode = CodeV1.cd_93;
            /**
             * 构造命令、发送命令并处理请求结果及执行结果
@@ -294,7 +295,7 @@
            myParam.setComId(comId);
            myParam.setComType((byte)2);
            myParam.setCommandCode(commandCode);
            myParam.setCommandName(CodeV1_0_1.getCodeName(commandCode));
            myParam.setCommandName(CodeV1.getCodeName(commandCode));
            myParam.setIntakeId(intakeId);
            myParam.setRtuAddr(rtuAddr);
            myParam.setProtocol(protocol);
@@ -325,7 +326,7 @@
        Long intakeId = valve.getIntakeId();
        Long vcId = valve.getVcId();
        Long operator = valve.getOperator();
        Long comId = idLongGenerator.generate();
        Long comId = new IDLongGenerator().generate();
        /**
         * 如果农户选择了虚拟卡,则使用该虚拟卡
@@ -377,7 +378,7 @@
        }
        String commandCode = null;
        if (protocol.equals("p206V202404")) {
        if (protocol.equals(ProtocolConstantV206V202404.protocolName)) {
            // 获取功能码
            commandCode = CodeV202404.cd_A2;
@@ -411,9 +412,9 @@
            myParam.setOperator(operator);
            return dealWithCommandResult(myParam);
        } else if (protocol.equals("p206V1_0_1")) {
        } else if (protocol.equals(ProtocolConstantV206V1.protocolName) || protocol.equals(ProtocolConstantV206V2.protocolName)) {
            // 获取功能码
            commandCode = CodeV1_0_1.cd_97;
            commandCode = CodeV1.cd_97;
            // 创建视图
            Com97Vo param = new Com97Vo();
@@ -431,7 +432,7 @@
            myParam.setComId(comId);
            myParam.setComType((byte)1);
            myParam.setCommandCode(commandCode);
            myParam.setCommandName(CodeV1_0_1.getCodeName(commandCode));
            myParam.setCommandName(CodeV1.getCodeName(commandCode));
            myParam.setIntakeId(intakeId);
            myParam.setRtuAddr(rtuAddr);
            myParam.setProtocol(protocol);
@@ -476,7 +477,7 @@
        String vcNum = voUnclosedParam.getVcNum();
        Long vcId = Optional.ofNullable(seVirtualCardMapper.getVcIdByNum(vcNum)).orElse(0L);
        String orderNo = voUnclosedParam.getOrderNo();
        Long comId = idLongGenerator.generate();
        Long comId = new IDLongGenerator().generate();
        // 阀控器地址换取水口ID和通讯协议
        JSONObject job_rtu = getRtu(null, rtuAddr);
@@ -492,7 +493,7 @@
        comSendUrl = env.getProperty(pro_mw + "." + orgTag + "." + key_mw);
        String commandCode = null;
        if (protocol.equals("p206V202404")) {
        if (protocol.equals(ProtocolConstantV206V202404.protocolName)) {
            // 获取功能码
            commandCode = CodeV202404.cd_A3;
@@ -521,9 +522,9 @@
            myParam.setRtuResultSendWebUrl(rtuCallbackUrl_rm);
            myParam.setOperator(operator);
            return dealWithCommandResult(myParam);
        } else if (protocol.equals("p206V1_0_1")) {
        } else if (protocol.equals(ProtocolConstantV206V1.protocolName) || protocol.equals(ProtocolConstantV206V2.protocolName)) {
            // 获取功能码
            commandCode = CodeV1_0_1.cd_98;
            commandCode = CodeV1.cd_98;
            // 创建视图
            Com98Vo param = new Com98Vo();
@@ -539,7 +540,7 @@
            myParam.setComId(comId);
            myParam.setComType((byte)2);
            myParam.setCommandCode(commandCode);
            myParam.setCommandName(CodeV1_0_1.getCodeName(commandCode));
            myParam.setCommandName(CodeV1.getCodeName(commandCode));
            myParam.setIntakeId(intakeId);
            myParam.setRtuAddr(rtuAddr);
            myParam.setProtocol(protocol);
@@ -571,7 +572,7 @@
        Long vcId = automaticClose.getVcId();
        Integer minutes = automaticClose.getMinutes();
        Long operator = automaticClose.getOperator();
        Long comId = idLongGenerator.generate();
        Long comId = new IDLongGenerator().generate();
        /**
         * 如果农户选择了虚拟卡,则使用该虚拟卡
@@ -620,11 +621,11 @@
        }
        String commandCode = null;
        if(protocol.equals("p206V202404")) {
        if(protocol.equals(ProtocolConstantV206V202404.protocolName)) {
            return BaseResponseUtils.buildSuccess();
        } else if(protocol.equals("p206V1_0_1")) {
        } else if(protocol.equals(ProtocolConstantV206V1.protocolName) || protocol.equals(ProtocolConstantV206V2.protocolName)) {
            // 获取功能码
            commandCode = CodeV1_0_1.cd_99;
            commandCode = CodeV1.cd_99;
            // 创建视图
            Com99Vo param = new Com99Vo();
@@ -643,7 +644,7 @@
            myParam.setComId(comId);
            myParam.setComType((byte)2);
            myParam.setCommandCode(commandCode);
            myParam.setCommandName(CodeV1_0_1.getCodeName(commandCode));
            myParam.setCommandName(CodeV1.getCodeName(commandCode));
            myParam.setIntakeId(intakeId);
            myParam.setRtuAddr(rtuAddr);
            myParam.setProtocol(protocol);
@@ -675,7 +676,7 @@
        Long vcId = automaticClose.getVcId();
        Integer waterAmount = automaticClose.getWaterAmount();
        Long operator = automaticClose.getOperator();
        Long comId = idLongGenerator.generate();
        Long comId = new IDLongGenerator().generate();
        /**
         * 如果农户选择了虚拟卡,则使用该虚拟卡
@@ -724,11 +725,11 @@
        }
        String commandCode = null;
        if(protocol.equals("p206V202404")) {
        if(protocol.equals(ProtocolConstantV206V202404.protocolName)) {
            return BaseResponseUtils.buildSuccess();
        } else if(protocol.equals("p206V1_0_1")) {
        } else if(protocol.equals(ProtocolConstantV206V1.protocolName) || protocol.equals(ProtocolConstantV206V2.protocolName)) {
            // 获取功能码
            commandCode = CodeV1_0_1.cd_A0;
            commandCode = CodeV1.cd_A0;
            // 创建视图
            ComA0Vo param = new ComA0Vo();
@@ -747,7 +748,7 @@
            myParam.setComId(comId);
            myParam.setComType((byte)2);
            myParam.setCommandCode(commandCode);
            myParam.setCommandName(CodeV1_0_1.getCodeName(commandCode));
            myParam.setCommandName(CodeV1.getCodeName(commandCode));
            myParam.setIntakeId(intakeId);
            myParam.setRtuAddr(rtuAddr);
            myParam.setProtocol(protocol);
@@ -780,7 +781,7 @@
        Date plannedOpenTime = automaticClose.getPlannedOpenTime();
        Integer minutes = automaticClose.getMinutes();
        Long operator = automaticClose.getOperator();
        Long comId = idLongGenerator.generate();
        Long comId = new IDLongGenerator().generate();
        Integer year = Integer.parseInt(String.format("%tY", plannedOpenTime));
        Integer month = Integer.parseInt(String.format("%tm", plannedOpenTime));
@@ -835,11 +836,11 @@
        }
        String commandCode = null;
        if(protocol.equals("p206V202404")) {
        if(protocol.equals(ProtocolConstantV206V202404.protocolName)) {
            return BaseResponseUtils.buildSuccess();
        } else if(protocol.equals("p206V1_0_1")) {
        } else if(protocol.equals(ProtocolConstantV206V1.protocolName) || protocol.equals(ProtocolConstantV206V2.protocolName)) {
            // 获取功能码
            commandCode = CodeV1_0_1.cd_A1;
            commandCode = CodeV1.cd_A1;
            // 创建视图
            ComA1Vo param = new ComA1Vo();
@@ -863,7 +864,7 @@
            myParam.setComId(comId);
            myParam.setComType((byte)2);
            myParam.setCommandCode(commandCode);
            myParam.setCommandName(CodeV1_0_1.getCodeName(commandCode));
            myParam.setCommandName(CodeV1.getCodeName(commandCode));
            myParam.setIntakeId(intakeId);
            myParam.setRtuAddr(rtuAddr);
            myParam.setProtocol(protocol);
@@ -896,7 +897,7 @@
        Date plannedOpenTime = automaticClose.getPlannedOpenTime();
        Integer waterAmount = automaticClose.getWaterAmount();
        Long operator = automaticClose.getOperator();
        Long comId = idLongGenerator.generate();
        Long comId = new IDLongGenerator().generate();
        Integer year = Integer.parseInt(String.format("%tY", plannedOpenTime));
        Integer month = Integer.parseInt(String.format("%tm", plannedOpenTime));
@@ -951,11 +952,11 @@
        }
        String commandCode = null;
        if(protocol.equals("p206V202404")) {
        if(protocol.equals(ProtocolConstantV206V202404.protocolName)) {
            return BaseResponseUtils.buildSuccess();
        } else if(protocol.equals("p206V1_0_1")) {
        } else if(protocol.equals(ProtocolConstantV206V1.protocolName) || protocol.equals(ProtocolConstantV206V2.protocolName)) {
            // 获取功能码
            commandCode = CodeV1_0_1.cd_A2;
            commandCode = CodeV1.cd_A2;
            // 创建视图
            ComA2Vo param = new ComA2Vo();
@@ -979,7 +980,7 @@
            myParam.setComId(comId);
            myParam.setComType((byte)2);
            myParam.setCommandCode(commandCode);
            myParam.setCommandName(CodeV1_0_1.getCodeName(commandCode));
            myParam.setCommandName(CodeV1.getCodeName(commandCode));
            myParam.setIntakeId(intakeId);
            myParam.setRtuAddr(rtuAddr);
            myParam.setProtocol(protocol);
@@ -1048,7 +1049,7 @@
        Double chargeWater = po.getChargeWater();
        Long operator = po.getOperator();
        String flowNo = RandomStringUtils.randomNumeric(12); // 生成12位随机数
        Long comId = idLongGenerator.generate();
        Long comId = new IDLongGenerator().generate();
        // 取水口ID换阀控器地址及通讯协议
        JSONObject job_rtu = getRtu(intakeId, null);
@@ -1067,7 +1068,7 @@
        String icCardNo = seClientCard.getCardnum();
        String commandCode = null;
        if(protocol.equals("p206V202404")) {
        if(protocol.equals(ProtocolConstantV206V202404.protocolName)) {
            // 获取功能码
            commandCode = CodeV202404.cd_15;
@@ -1097,7 +1098,7 @@
            myParam.setRtuResultSendWebUrl(rtuCallbackUrl_rm);
            myParam.setOperator(operator);
            return dealWithCommandResult(myParam);
        } else if(protocol.equals("p206V1_0_1")) {
        } else if(protocol.equals(ProtocolConstantV206V1.protocolName) || protocol.equals(ProtocolConstantV206V2.protocolName)) {
            return BaseResponseUtils.buildErrorMsg(RemoteResultCode.THE_DEVICE_DOES_NOT_HAVE_THIS_FUNCTION.getMessage());
        } else {
            return BaseResponseUtils.buildFail("系统暂不支持该协议");
@@ -1121,7 +1122,7 @@
        Long intakeId = card.getIntakeId();
        String cardAddr = card.getCardAddr();
        Long operator = card.getOperator();
        Long comId = idLongGenerator.generate();
        Long comId = new IDLongGenerator().generate();
        // 取水口ID换阀控器地址及通讯协议
        JSONObject job_rtu = getRtu(intakeId, null);
@@ -1132,7 +1133,7 @@
        String protocol = job_rtu.getString("protocol");
        String commandCode = null;
        if(protocol.equals("p206V202404")) {
        if(protocol.equals(ProtocolConstantV206V202404.protocolName)) {
            // 获取功能码
            commandCode = CodeV202404.cd_9C;
@@ -1158,7 +1159,7 @@
            myParam.setRtuResultSendWebUrl(rtuCallbackUrl_rm);
            myParam.setOperator(operator);
            return dealWithCommandResult(myParam);
        } else if(protocol.equals("p206V1_0_1")) {
        } else if(protocol.equals(ProtocolConstantV206V1.protocolName) || protocol.equals(ProtocolConstantV206V2.protocolName)) {
            return BaseResponseUtils.buildErrorMsg(RemoteResultCode.THE_DEVICE_DOES_NOT_HAVE_THIS_FUNCTION.getMessage());
        } else {
            return BaseResponseUtils.buildErrorMsg("系统暂不支持该协议");
@@ -1193,7 +1194,7 @@
    //    String protocol = job_rtu.getString("protocol");
    //
    //    String commandCode = null;
    //    if(protocol.equals("p206V202404")) {
    //    if(protocol.equals(ProtocolConstantV206V202404.protocolName)) {
    //        if(valid) {
    //            // 获取功能码
    //            commandCode = CodeV202404.cd_30;
@@ -1247,7 +1248,7 @@
    //            myParam.setOperator(operator);
    //            return dealWithCommandResult(myParam);
    //        }
    //    } else if(protocol.equals("p206V1_0_1")) {
    //    } else if(protocol.equals(ProtocolConstantV206V1.protocolName) || protocol.equals(ProtocolConstantV206V2.protocolName)) {
    //        return BaseResponseUtils.buildErrorMsg(RemoteResultCode.THE_DEVICE_DOES_NOT_HAVE_THIS_FUNCTION.getMessage());
    //    } else {
    //        return BaseResponseUtils.buildErrorMsg("系统暂不支持该协议");