zhubaomin
2025-09-03 c26a9d5eda9cb575df18fbf9a5a5c94869e99f88
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/valve/ValveCtrl.java
@@ -60,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;
@@ -75,19 +74,12 @@
    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;
    }
    /**
     * 平台远程开阀(强制开阀)
     * @param valve
     * @param bindingResult
     * @return
     */
    @PostMapping(path = "open", consumes = MediaType.APPLICATION_JSON_VALUE)
    @Transactional(rollbackFor = Exception.class)
    @SsoAop()
@@ -100,7 +92,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();
@@ -162,11 +154,6 @@
            param.elePrice = 0.0;
            param.orderNo = orderNo;
            /**
             * 构造命令、发送命令并处理请求结果及执行结果
             * 1 准备参数
             * 2 调用公共方法
             */
            Param myParam = new Param();
            myParam.setComId(comId);
            myParam.setComType((byte)1);
@@ -184,11 +171,6 @@
            // 获取功能码
            commandCode = CodeV1.cd_92;
            /**
             * 构造命令、发送命令并处理请求结果及执行结果
             * 1 准备参数
             * 2 调用公共方法
             */
            Param myParam = new Param();
            myParam.setComId(comId);
            myParam.setComType((byte)1);
@@ -207,12 +189,6 @@
        }
    }
    /**
     * 平台远程关阀(强制关阀)
     * @param dtoBase
     * @param bindingResult
     * @return
     */
    @PostMapping(path = "close_intake", consumes = MediaType.APPLICATION_JSON_VALUE)
    @Transactional(rollbackFor = Exception.class)
    @SsoAop()
@@ -227,6 +203,9 @@
        VoUnclosedParam voUnclosedParam = null;
        try {
            voUnclosedParam = commandSv.getUncloseParam(intakeId);
            if(voUnclosedParam == null) {
                return BaseResponseUtils.buildErrorMsg("不存在符合条件的未关阀取水口");
            }
        }catch (Exception e) {
            return BaseResponseUtils.buildErrorMsg("获取未关阀信息错误");
        }
@@ -238,7 +217,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);
@@ -311,12 +290,6 @@
        }
    }
    /**
     * 远程开阀(代农户)
     * @param valve
     * @param bindingResult
     * @return
     */
    @PostMapping(path = "open_client", consumes = MediaType.APPLICATION_JSON_VALUE)
    @Transactional(rollbackFor = Exception.class)
    @SsoAop()
@@ -328,13 +301,8 @@
        Long intakeId = valve.getIntakeId();
        Long vcId = valve.getVcId();
        Long operator = valve.getOperator();
        Long comId = idLongGenerator.generate();
        Long comId = new IDLongGenerator().generate();
        /**
         * 如果农户选择了虚拟卡,则使用该虚拟卡
         * 如果农户未选择虚拟卡,则根据取水口ID获取与之绑定的虚拟卡
         * 如果取水口没有与之绑定的虚拟卡,则提示农户选择一张虚拟卡
         */
        if (vcId == null) {
            vcId = commandSv.getVcIdByIntakeId(intakeId);
            if (vcId == null) {
@@ -395,11 +363,6 @@
            param.elePrice = 0.0;
            param.orderNo = orderNo;
            /**
             * 构造命令、发送命令并处理请求结果及执行结果
             * 1 准备参数
             * 2 调用公共方法
             */
            Param myParam = new Param();
            myParam.setComId(comId);
            myParam.setComType((byte)1);
@@ -425,11 +388,6 @@
            param.waterPrice = waterPrice;
            param.orderNo = orderNo;
            /**
             * 构造命令、发送命令并处理请求结果及执行结果
             * 1 准备参数
             * 2 调用公共方法
             */
            Param myParam = new Param();
            myParam.setComId(comId);
            myParam.setComType((byte)1);
@@ -448,12 +406,6 @@
        }
    }
    /**
     * 远程关阀(代农户)
     * @param dtoBase
     * @param bindingResult
     * @return
     */
    @PostMapping(path = "close_client", consumes = MediaType.APPLICATION_JSON_VALUE)
    @Transactional(rollbackFor = Exception.class)
    @SsoAop()
@@ -479,7 +431,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);
@@ -506,11 +458,6 @@
            param.icCardNo = vcNum;
            param.orderNo = orderNo;
            /**
             * 构造命令、发送命令并处理请求结果及执行结果
             * 1 准备参数
             * 2 调用公共方法
             */
            Param myParam = new Param();
            myParam.setComId(comId);
            myParam.setComType((byte)2);
@@ -533,11 +480,6 @@
            param.icCardNo = vcNum;
            param.orderNo = orderNo;
            /**
             * 构造命令、发送命令并处理请求结果及执行结果
             * 1 准备参数
             * 2 调用公共方法
             */
            Param myParam = new Param();
            myParam.setComId(comId);
            myParam.setComType((byte)2);
@@ -556,12 +498,6 @@
        }
    }
    /**
     * 定时关阀式开阀
     * @param automaticClose
     * @param bindingResult
     * @return
     */
    @PostMapping(path = "timed_close", consumes = MediaType.APPLICATION_JSON_VALUE)
    @Transactional(rollbackFor = Exception.class)
    @SsoAop()
@@ -574,13 +510,8 @@
        Long vcId = automaticClose.getVcId();
        Integer minutes = automaticClose.getMinutes();
        Long operator = automaticClose.getOperator();
        Long comId = idLongGenerator.generate();
        Long comId = new IDLongGenerator().generate();
        /**
         * 如果农户选择了虚拟卡,则使用该虚拟卡
         * 如果农户未选择虚拟卡,则根据取水口ID获取与之绑定的虚拟卡
         * 如果取水口没有与之绑定的虚拟卡,则提示农户选择一张虚拟卡
         */
        if(vcId == null) {
            vcId = commandSv.getVcIdByIntakeId(intakeId);
            if(vcId == null) {
@@ -637,11 +568,6 @@
            param.setMinutes(minutes);
            param.setOrderNo(orderNo);
            /**
             * 构造命令、发送命令并处理请求结果及执行结果
             * 1 准备参数
             * 2 调用公共方法
             */
            Param myParam = new Param();
            myParam.setComId(comId);
            myParam.setComType((byte)2);
@@ -660,12 +586,6 @@
        }
    }
    /**
     * 定量关阀式开阀
     * @param automaticClose
     * @param bindingResult
     * @return
     */
    @PostMapping(path = "quantify_close", consumes = MediaType.APPLICATION_JSON_VALUE)
    @Transactional(rollbackFor = Exception.class)
    @SsoAop()
@@ -678,13 +598,8 @@
        Long vcId = automaticClose.getVcId();
        Integer waterAmount = automaticClose.getWaterAmount();
        Long operator = automaticClose.getOperator();
        Long comId = idLongGenerator.generate();
        Long comId = new IDLongGenerator().generate();
        /**
         * 如果农户选择了虚拟卡,则使用该虚拟卡
         * 如果农户未选择虚拟卡,则根据取水口ID获取与之绑定的虚拟卡
         * 如果取水口没有与之绑定的虚拟卡,则提示农户选择一张虚拟卡
         */
        if(vcId == null) {
            vcId = commandSv.getVcIdByIntakeId(intakeId);
            if(vcId == null) {
@@ -741,11 +656,6 @@
            param.setWaterAmount(waterAmount);
            param.setOrderNo(orderNo);
            /**
             * 构造命令、发送命令并处理请求结果及执行结果
             * 1 准备参数
             * 2 调用公共方法
             */
            Param myParam = new Param();
            myParam.setComId(comId);
            myParam.setComType((byte)2);
@@ -764,12 +674,6 @@
        }
    }
    /**
     * 定时关阀式计划开阀
     * @param automaticClose
     * @param bindingResult
     * @return
     */
    @PostMapping(path = "planed_open_timed_close", consumes = MediaType.APPLICATION_JSON_VALUE)
    @Transactional(rollbackFor = Exception.class)
    @SsoAop()
@@ -783,7 +687,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));
@@ -791,11 +695,6 @@
        Integer hour = Integer.parseInt(String.format("%tH", plannedOpenTime));
        Integer minute = Integer.parseInt(String.format("%tM", plannedOpenTime));
        /**
         * 如果农户选择了虚拟卡,则使用该虚拟卡
         * 如果农户未选择虚拟卡,则根据取水口ID获取与之绑定的虚拟卡
         * 如果取水口没有与之绑定的虚拟卡,则提示农户选择一张虚拟卡
         */
        if(vcId == null) {
            vcId = commandSv.getVcIdByIntakeId(intakeId);
            if(vcId == null) {
@@ -857,11 +756,6 @@
            param.setMinute(minute);
            param.setOrderNo(orderNo);
            /**
             * 构造命令、发送命令并处理请求结果及执行结果
             * 1 准备参数
             * 2 调用公共方法
             */
            Param myParam = new Param();
            myParam.setComId(comId);
            myParam.setComType((byte)2);
@@ -899,7 +793,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));
@@ -907,11 +801,6 @@
        Integer hour = Integer.parseInt(String.format("%tH", plannedOpenTime));
        Integer minute = Integer.parseInt(String.format("%tM", plannedOpenTime));
        /**
         * 如果农户选择了虚拟卡,则使用该虚拟卡
         * 如果农户未选择虚拟卡,则根据取水口ID获取与之绑定的虚拟卡
         * 如果取水口没有与之绑定的虚拟卡,则提示农户选择一张虚拟卡
         */
        if(vcId == null) {
            vcId = commandSv.getVcIdByIntakeId(intakeId);
            if(vcId == null) {
@@ -973,11 +862,6 @@
            param.setMinute(minute);
            param.setOrderNo(orderNo);
            /**
             * 构造命令、发送命令并处理请求结果及执行结果
             * 1 准备参数
             * 2 调用公共方法
             */
            Param myParam = new Param();
            myParam.setComId(comId);
            myParam.setComType((byte)2);
@@ -996,11 +880,6 @@
        }
    }
    /**
     * 根据操作员ID获取未关阀记录
     * @param operator
     * @return
     */
    @GetMapping(path = "/get")
    @SsoAop()
    public BaseResponse<List<VoUnclosedValve>> getUnclosedValves(@RequestParam Long operator){
@@ -1051,7 +930,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);
@@ -1084,11 +963,6 @@
            param.chargeWater = chargeWater;
            param.flowNo = flowNo;
            /**
             * 构造命令、发送命令并处理请求结果及执行结果
             * 1 准备参数
             * 2 调用公共方法
             */
            Param myParam = new Param();
            myParam.setComId(comId);
            myParam.setCommandCode(commandCode);
@@ -1124,7 +998,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);
@@ -1145,11 +1019,6 @@
            param.projectNo = projectNo;
            param.icCardAddr = cardAddr;
            /**
             * 构造命令、发送命令并处理请求结果及执行结果
             * 1 准备参数
             * 2 调用公共方法
             */
            Param myParam = new Param();
            myParam.setComId(comId);
            myParam.setCommandCode(commandCode);