liurunyu
2024-11-29 5b558e2637d4f8325e70fa7b19335dfc72e257fb
实现强制结束当前升级任务功能
6个文件已修改
39 ■■■■ 已修改文件
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/Web2RtuMw.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeManager.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeTask.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeUnit.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeCtrl.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/Web2RtuMw.java
@@ -34,7 +34,7 @@
    protected static final String ContextRtuLogText = "/rtuMw/com/rtuLogText";
    protected static final String ContextUgTaskSend = "/rtuMw/com/upgradeRtu";
    protected static final String ContextUgForceStop = "/rtuMw/com/ugForceStop";
    protected static final String ContextUgForceOver = "/rtuMw/com/ugForceOver";
    /**
     * 得到向通信中间件发送数据的URL
     * @param env
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeManager.java
@@ -92,11 +92,10 @@
        if(this.task != null){
            this.task.countRunningRtuCount();
            if(this.task.curUgRunningRtuTotal > 0){
                return "当前存在升级中的设备,不能停止升级任务" ;
                return "当前存在升级中的设备,不能结束升级任务" ;
            }else{
                this.stop();
                this.task.forceOver();
                this.task = null ;
                return null ;
            }
        }else{
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeTask.java
@@ -176,7 +176,6 @@
            }
        }
    }
    /**
     * 强制结束升级任务
     */
@@ -190,6 +189,7 @@
        }
    }
    /**
     * 当前升级状态
     * @return
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeUnit.java
@@ -56,7 +56,7 @@
    @Override
    public void stop(UnitCallbackInterface callback) throws Exception {
        overUpgradeTask() ;
        forceOverUpgradeTask() ;
    }
@@ -73,11 +73,11 @@
    }
    /**
     * 停止当前升级任务
     * 结束当前升级任务
     * @throws Exception
     * @return null:停止任务成功,否则返回失败原因
     * @return null:结束任务成功,否则返回失败原因
     */
    public String overUpgradeTask() throws Exception {
    public String forceOverUpgradeTask() throws Exception {
        if(manager != null ){
            return manager.forceOverUpgradeTask() ;
        }else{
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java
@@ -162,14 +162,14 @@
    }
    /**
     * 接收web系统发来停止升级任务
     * 接收web系统发来强制结束升级任务
     * @return
     */
    @PostMapping(path = "ugForceStop", consumes = MediaType.APPLICATION_JSON_VALUE)
    public BaseResponse<String> ugForceStop() {
    @PostMapping(path = "ugForceOver", consumes = MediaType.APPLICATION_JSON_VALUE)
    public BaseResponse<String> ugForceOver() {
        log.info("收到停止RTU升级任务命令") ;
        try{
            String mes = UpgradeUnit.getInstance().overUpgradeTask();
            String mes = UpgradeUnit.getInstance().forceOverUpgradeTask();
            if(mes == null){
                mes = "停止升级任务成功" ;
            }
@@ -179,7 +179,6 @@
            return BaseResponseUtils.buildError("停止RTU升级任务时发生异常" + (e.getMessage() == null?"":(":" + e.getMessage())));
        }
    }
    /**
     * 接收web系统发来的命令
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeCtrl.java
@@ -125,10 +125,10 @@
        }
    }
    /**
     * 下发强制停止当前rtu远程升级任务
     * 下发强制结束当前rtu远程升级任务
     * @return 操作结果
     */
    @Operation(summary = "下发强制停止当前rtu远程升级任务", description = "下发强制停止当前rtu远程升级任务")
    @Operation(summary = "下发强制结束当前rtu远程升级任务", description = "下发强制结束当前rtu远程升级任务")
    @ApiResponses(value = {
            @ApiResponse(
                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
@@ -137,10 +137,10 @@
                            schema = @Schema(implementation = String.class))}
            )
    })
    @GetMapping(path = "/forceStop")
    @GetMapping(path = "/forceOver")
    @SsoAop()
    public BaseResponse<String> forceStop() {
        String rqUrl = this.get2MwRequestUrl(this.env, ContextUgForceStop) ;
    public BaseResponse<String> forceOver() {
        String rqUrl = this.get2MwRequestUrl(this.env, ContextUgForceOver) ;
        BaseResponse res = sendRequest2Mw(restTemplate, rqUrl, null) ;
        if(res != null){
            if(res.isSuccess()){
@@ -150,8 +150,8 @@
                if(msg == null){
                    msg = res.getMsg() ;
                }
                log.error("通信中间件执行下发强制停止当前rtu远程升级任务失败:" + msg) ;
                return BaseResponseUtils.buildErrorMsg("通信中间件执行强制停止当前rtu远程升级任务失败:" + msg) ;
                log.error("通信中间件执行下发强制结束当前rtu远程升级任务失败:" + msg) ;
                return BaseResponseUtils.buildErrorMsg("通信中间件执行强制结束当前rtu远程升级任务失败:" + msg) ;
            }
        }else{
            log.error("通信中间件返回结果为null") ;
@@ -159,6 +159,7 @@
        }
    }
    private void valueFromPo(UpgradeTaskVo vo, UgRtuTask tpo, UgRtuProgram ppo){
        vo.id = "" + tpo.id ;
        vo.softFileName = ppo.hexFileName ;