zhubaomin
2024-11-12 39be193dece5ad6314aa22a41a2c8675e8057be3
Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV
19个文件已修改
3个文件已添加
388 ■■■■■ 已修改文件
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeInfo.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeRtu.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeState.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeTaskVo.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/UgRtuControllerMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeVirtualCardMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/ToRtuMwCom.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/application-global(sp沙盘系统).yml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/application-global(test测试系统).yml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/application-global(ym元谋系统).yml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/UgRtuControllerMapper.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealVirCardState.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V2/TkDealVirCardStateV2.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/webRequest/WebRequestDeal.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeCtrl.java 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeStateReceiverCtrl.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeSv.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeInfo.java
@@ -17,4 +17,13 @@
    public UpgradeState ugOverallState;
    //升级任务RTU状态列表
    public List<UpgradeRtu> ugRtuStateList;
    public String toString(){
        StringBuilder sb = new StringBuilder() ;
        sb.append("RTU远程升级状态:") ;
        sb.append("  \n任务id:" + ugTaskId) ;
        sb.append("  \n" + ugOverallState.toString()) ;
        //sb.append("  \n升级的控制器总数:" + ugRtuStateList.size()) ;
        return sb.toString() ;
    }
}
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeRtu.java
@@ -39,6 +39,40 @@
    public int reTryTimes ;//升级不成功,重试次数
    public boolean isOver ;
    public String toString(){
        StringBuilder sb = new StringBuilder();
        sb.append("RTU(" + rtuAddr + ")升级状态:") ;
        sb.append("  \n当  å‰  çж  æ€ï¼š" + getStateName(state)) ;
        sb.append("  \n需下发数据包总数:" + totalPackage) ;
        sb.append("  \n当前下发升级包数:" + currentPackage) ;
        sb.append("  \n当前下发存储地址:" + currentRamAddr) ;
        sb.append("  \n当前下发数据时间:" + lastDownDt) ;
        sb.append("  \n升级失败重试次数:" + reTryTimes) ;
        sb.append("  \n升级过程是否结束:" + (isOver?"是":"否")) ;
        return sb.toString() ;
    }
    public String getStateName(int state){
        switch (state) {
            case STATE_OFFLINE:
                return "离线";
            case STATE_UNSTART:
                return "未开始";
            case STATE_RUNNING:
                return "升级中";
            case STATE_SUCCESS:
                return "升级成功";
            case STATE_FAILONE:
                return "升级失败(1包死)";
            case STATE_FAIL:
                return "升级失败(非1包死)";
            case STATE_FAILOFFLINE:
                return "升级失败(离线)";
            default:
                return "未知";
        }
    }
    /**
     * è§¦å‘升级
     * @param code
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeState.java
@@ -29,5 +29,19 @@
        this.failTotal = 0;
    }
    public String toString(){
        StringBuilder sb = new StringBuilder() ;
        sb.append("升级状态") ;
        sb.append("    \n设置RTU总数:" + rtuTotal) ;
        sb.append("    \n离线RTU总数:" + offLineTotal) ;
        sb.append("    \n未开始总数:" + unStartTotal) ;
        sb.append("    \n正升级总数:" + runningTotal) ;
        sb.append("    \n已结束总数:" + overTotal) ;
        sb.append("    \n成功总数:" + successTotal) ;
        sb.append("    \n失败总数:" + failTotal) ;
        sb.append("    \n1包死总数:" + failOneTotal) ;
        return sb.toString() ;
    }
}
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/softUpgrade/state/UpgradeTaskVo.java
@@ -33,4 +33,5 @@
                "   å‡çº§æŽ§åˆ¶å™¨æ•°é‡=" + rtuAddrList.size() + "\n" +
                "   å‡çº§çŠ¶æ€é€šçŸ¥URL=" + callbackWebUrl + "\n" ;
    }
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/UgRtuControllerMapper.java
@@ -72,6 +72,14 @@
    List<UgRtuController> selectAllConByTask(Long taskId) ;
    /**
     * å¾—到升级任务的所有对象控制器
     *
     * @param taskId å‡çº§ä»»åŠ¡id
     * @return object by primary key
     */
    List<String> selectAllRtuAddrByTask(Long taskId) ;
    /**
     * æ ¹æ®ä»»åŠ¡id和控制器id查询数量
     *
     * @param taskId å‡çº§ä»»åŠ¡id
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeVirtualCardMapper.java
@@ -8,6 +8,7 @@
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -93,7 +94,7 @@
     * @param intakeId
     * @return
     */
    void updateVcCardNoUseStateByIntakeId(@Param("intakeId")Long intakeId) ;
    void updateVcCardNoUseStateByIntakeId(@Param("intakeId")Long intakeId, @Param("now")Date now) ;
    /**
     * èŽ·å–è™šæ‹Ÿå¡å……å€¼è®°å½•
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/rtuMw/ToRtuMwCom.java
@@ -3,6 +3,7 @@
import com.dy.common.multiDataSource.DataSourceContext;
import com.dy.common.mw.protocol.Command;
import com.dy.common.mw.protocol.CommandType;
import com.dy.common.softUpgrade.state.UpgradeTaskVo;
import com.dy.common.webUtil.BaseResponse;
import org.springframework.core.env.Environment;
import org.springframework.http.HttpEntity;
@@ -25,6 +26,7 @@
     */
    private static final String pro_mw = "mw";
    private static final String key_mw = "comSendUrl";
    private static final String keyUg_mw = "ugTaskSendUrl";
    /**
@@ -34,6 +36,15 @@
     */
    protected String getToMwUrl(Environment env) {
        return env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + key_mw);
    }
    /**
     * å¾—到向通信中间件发送数据的URL
     * @param env
     * @return
     */
    protected String getToMwUgUrl(Environment env) {
        return env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + keyUg_mw);
    }
    /**
@@ -82,4 +93,28 @@
        }
        return response.getBody();
    }
    /**
     * å‘通信中间件发送rtu远程升级任务
     * @param restTemplate
     * @param comSendUrl
     * @param vo
     * @return
     */
    protected BaseResponse sendUpgradeTask2Mw(RestTemplate restTemplate, String comSendUrl, UpgradeTaskVo vo) {
        String url = UriComponentsBuilder.fromUriString(comSendUrl)
                .build()
                .toUriString();
        HttpHeaders headers = new HttpHeaders();
        HttpEntity<UpgradeTaskVo> httpEntity = new HttpEntity<>(vo, headers);
        ResponseEntity<BaseResponse> response = null;
        try {
            // é€šè¿‡Post方式调用接口
            response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, BaseResponse.class);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return response.getBody();
    }
}
pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml
@@ -5,9 +5,9 @@
            #name: ym
            type: com.alibaba.druid.pool.DruidDataSource
            driverClassName: com.mysql.cj.jdbc.Driver
#            url: jdbc:mysql://192.168.40.166:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
            url: jdbc:mysql://192.168.40.166:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
#            url: jdbc:mysql://8.130.130.233:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
            url: jdbc:mysql://127.0.0.1:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
#            url: jdbc:mysql://127.0.0.1:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
            username: root
            password: dysql,;.abc!@#
            druid:
pipIrr-platform/pipIrr-global/src/main/resources/application-global(spɳÅÌϵͳ).yml
@@ -313,18 +313,23 @@
    #命令发送地址(中缀是机构tag,其也是数据源后缀名称)
    ym:
        comSendUrl: "http://127.0.0.1:8070/rtuMw/com/send"
        ugTaskSendUrl: "http://127.0.0.1:8070/rtuMw/com/upgradeRtu"
        rtuLogFileUrl: "http://127.0.0.1:8070/rtuMw/com/rtuLogFile"
        rtuLogTextUrl: "http://127.0.0.1:8070/rtuMw/com/rtuLogText"
    sp:
        comSendUrl: "http://127.0.0.1:8073/rtuMw/com/send"
        ugTaskSendUrl: "http://127.0.0.1:8073/rtuMw/com/upgradeRtu"
        rtuLogFileUrl: "http://127.0.0.1:8073/rtuMw/com/rtuLogFile"
        rtuLogTextUrl: "http://127.0.0.1:8073/rtuMw/com/rtuLogText"
    test:
        comSendUrl: "http://127.0.0.1:8072/rtuMw/com/send"
        ugTaskSendUrl: "http://127.0.0.1:8072/rtuMw/com/upgradeRtu"
        rtuLogFileUrl: "http://127.0.0.1:8072/rtuMw/com/rtuLogFile"
        rtuLogTextUrl: "http://127.0.0.1:8072/rtuMw/com/rtuLogText"
    #监测控制模块回调地址
    rtuCallbackUrl_rm: "http://127.0.0.1:8081/remote/comRes/receive"
    #rtu远程升级模块回调地址
    ugCallbackUrl_rm: "http://127.0.0.1:8081/remote/rtuUpgradeStateReceiver/receive
    #微信小程序回调地址
    rtuCallbackUrl_wx: "http://127.0.0.1:8087/wx/comRes/receive"
@@ -333,6 +338,7 @@
    urls:
        - /sso/sso
        - /remote/comRes/receive
        - /remote/rtuUpgradeStateReceiver/receive
        - /wx/comRes/receive
        - /app/captcha/get
        - /file/file #web分布式文件系统
pipIrr-platform/pipIrr-global/src/main/resources/application-global(test²âÊÔϵͳ).yml
@@ -313,18 +313,23 @@
    #命令发送地址(中缀是机构tag,其也是数据源后缀名称)
    ym:
        comSendUrl: "http://127.0.0.1:8070/rtuMw/com/send"
        ugTaskSendUrl: "http://127.0.0.1:8070/rtuMw/com/upgradeRtu"
        rtuLogFileUrl: "http://127.0.0.1:8070/rtuMw/com/rtuLogFile"
        rtuLogTextUrl: "http://127.0.0.1:8070/rtuMw/com/rtuLogText"
    sp:
        comSendUrl: "http://127.0.0.1:8073/rtuMw/com/send"
        ugTaskSendUrl: "http://127.0.0.1:8073/rtuMw/com/upgradeRtu"
        rtuLogFileUrl: "http://127.0.0.1:8073/rtuMw/com/rtuLogFile"
        rtuLogTextUrl: "http://127.0.0.1:8073/rtuMw/com/rtuLogText"
    test:
        comSendUrl: "http://127.0.0.1:8072/rtuMw/com/send"
        ugTaskSendUrl: "http://127.0.0.1:8072/rtuMw/com/upgradeRtu"
        rtuLogFileUrl: "http://127.0.0.1:8072/rtuMw/com/rtuLogFile"
        rtuLogTextUrl: "http://127.0.0.1:8072/rtuMw/com/rtuLogText"
    #监测控制模块回调地址
    rtuCallbackUrl_rm: "http://127.0.0.1:8081/remote/comRes/receive"
    #rtu远程升级模块回调地址
    ugCallbackUrl_rm: "http://127.0.0.1:8081/remote/rtuUpgradeStateReceiver/receive
    #微信小程序回调地址
    rtuCallbackUrl_wx: "http://127.0.0.1:8087/wx/comRes/receive"
@@ -333,6 +338,7 @@
    urls:
        - /sso/sso
        - /remote/comRes/receive
        - /remote/rtuUpgradeStateReceiver/receive
        - /wx/comRes/receive
        - /app/captcha/get
        - /file/file #web分布式文件系统
pipIrr-platform/pipIrr-global/src/main/resources/application-global(ymԪıϵͳ).yml
@@ -313,18 +313,23 @@
    #命令发送地址(中缀是机构tag,其也是数据源后缀名称)
    ym:
        comSendUrl: "http://127.0.0.1:8070/rtuMw/com/send"
        ugTaskSendUrl: "http://127.0.0.1:8070/rtuMw/com/upgradeRtu"
        rtuLogFileUrl: "http://127.0.0.1:8070/rtuMw/com/rtuLogFile"
        rtuLogTextUrl: "http://127.0.0.1:8070/rtuMw/com/rtuLogText"
    sp:
        comSendUrl: "http://127.0.0.1:8073/rtuMw/com/send"
        ugTaskSendUrl: "http://127.0.0.1:8073/rtuMw/com/upgradeRtu"
        rtuLogFileUrl: "http://127.0.0.1:8073/rtuMw/com/rtuLogFile"
        rtuLogTextUrl: "http://127.0.0.1:8073/rtuMw/com/rtuLogText"
    test:
        comSendUrl: "http://127.0.0.1:8072/rtuMw/com/send"
        ugTaskSendUrl: "http://127.0.0.1:8072/rtuMw/com/upgradeRtu"
        rtuLogFileUrl: "http://127.0.0.1:8072/rtuMw/com/rtuLogFile"
        rtuLogTextUrl: "http://127.0.0.1:8072/rtuMw/com/rtuLogText"
    #监测控制模块回调地址
    rtuCallbackUrl_rm: "http://127.0.0.1:8081/remote/comRes/receive"
    #rtu远程升级模块回调地址
    ugCallbackUrl_rm: "http://127.0.0.1:8081/remote/rtuUpgradeStateReceiver/receive
    #微信小程序回调地址
    rtuCallbackUrl_wx: "http://127.0.0.1:8087/wx/comRes/receive"
@@ -333,6 +338,7 @@
    urls:
        - /sso/sso
        - /remote/comRes/receive
        - /remote/rtuUpgradeStateReceiver/receive
        - /wx/comRes/receive
        - /app/captcha/get
        - /file/file #web分布式文件系统
pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
@@ -77,7 +77,7 @@
pipIrr:
    global:
        dev: false  #是否开发阶段,true或false
        dev: true  #是否开发阶段,true或false
        dsName: ym  #开发阶段,设置临时的数据库名称
    nginx:
        webPort: 54321
@@ -313,18 +313,23 @@
    #命令发送地址(中缀是机构tag,其也是数据源后缀名称)
    ym:
        comSendUrl: "http://127.0.0.1:8070/rtuMw/com/send"
        ugTaskSendUrl: "http://127.0.0.1:8070/rtuMw/com/upgradeRtu"
        rtuLogFileUrl: "http://127.0.0.1:8070/rtuMw/com/rtuLogFile"
        rtuLogTextUrl: "http://127.0.0.1:8070/rtuMw/com/rtuLogText"
    sp:
        comSendUrl: "http://127.0.0.1:8073/rtuMw/com/send"
        ugTaskSendUrl: "http://127.0.0.1:8073/rtuMw/com/upgradeRtu"
        rtuLogFileUrl: "http://127.0.0.1:8073/rtuMw/com/rtuLogFile"
        rtuLogTextUrl: "http://127.0.0.1:8073/rtuMw/com/rtuLogText"
    test:
        comSendUrl: "http://127.0.0.1:8072/rtuMw/com/send"
        ugTaskSendUrl: "http://127.0.0.1:8072/rtuMw/com/upgradeRtu"
        rtuLogFileUrl: "http://127.0.0.1:8072/rtuMw/com/rtuLogFile"
        rtuLogTextUrl: "http://127.0.0.1:8072/rtuMw/com/rtuLogText"
    #监测控制模块回调地址
    rtuCallbackUrl_rm: "http://127.0.0.1:8081/remote/comRes/receive"
    #rtu远程升级模块回调地址
    ugCallbackUrl_rm: "http://127.0.0.1:8081/remote/rtuUpgradeStateReceiver/receive
    #微信小程序回调地址
    rtuCallbackUrl_wx: "http://127.0.0.1:8087/wx/comRes/receive"
@@ -333,6 +338,7 @@
    urls:
        - /sso/sso
        - /remote/comRes/receive
        - /remote/rtuUpgradeStateReceiver/receive
        - /wx/comRes/receive
        - /app/captcha/get
        - /file/file #web分布式文件系统
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml
@@ -168,11 +168,11 @@
      create_time = #{createTime,jdbcType=TIMESTAMP}
    where id = #{id,jdbcType=BIGINT}
  </update>
  <update id="updateVcCardNoUseStateByIntakeId" parameterType="java.lang.Long">
  <update id="updateVcCardNoUseStateByIntakeId">
    update se_virtual_card
    set in_use = 0,
      intake_id = null
    where intake_id = #{intakeId,jdbcType=BIGINT}
    where intake_id = #{intakeId,jdbcType=BIGINT} and open_time &lt; #{now,jdbcType=TIMESTAMP}
  </update>
  <update id="updateMoney" >
    update se_virtual_card
pipIrr-platform/pipIrr-global/src/main/resources/mapper/UgRtuControllerMapper.xml
@@ -94,6 +94,14 @@
    where task_id = #{taskId,jdbcType=BIGINT}
  </select>
  <select id="selectAllRtuAddrByTask" parameterType="java.lang.Long" resultType="java.lang.String">
    <!--@mbg.generated-->
    select
    rtu_addr
    from ug_rtu_controller
    where task_id = #{taskId,jdbcType=BIGINT}
  </select>
  <select id="selectCountByTaskAndCon" resultType="java.lang.Long">
    <!--@mbg.generated-->
    select
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java
@@ -214,7 +214,7 @@
     * @param intakeId
     */
    @Transactional(rollbackFor = Exception.class)
    public void updateVirCardNoUseState(Long intakeId){
    public void updateVirCardNoUseState(Long intakeId, Date now){
        this.seVirtualCardDao.updateVcCardNoUseStateByIntakeId(intakeId); ;
    }
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealVirCardState.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/8/9 9:49
@@ -32,7 +34,8 @@
                objs = this.getTaskResults(TkPreGenObjs.taskId);
                DbSv sv = (DbSv) objs[0];
                //虚拟卡在取水口上的占用状态改为非占用状态
                sv.updateVirCardNoUseState(intakeId);
                Date now = new Date() ;
                sv.updateVirCardNoUseState(intakeId, now);
            }
        }
    }
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V2/TkDealVirCardStateV2.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/8/9 9:49
@@ -32,7 +34,8 @@
                objs = this.getTaskResults(TkPreGenObjsV2.taskId);
                DbSv sv = (DbSv) objs[0];
                //虚拟卡在取水口上的占用状态改为非占用状态
                sv.updateVirCardNoUseState(intakeId);
                Date now = new Date() ;
                sv.updateVirCardNoUseState(intakeId, now);
            }
        }
    }
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java
@@ -12,6 +12,8 @@
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.util.Date;
/**
 * @Author liurunyu
 * @Date 2024/5/8 14:18
@@ -211,7 +213,8 @@
                //阀门关闭状态
                if(controller != null && controller.getIntakeId() != null){
                    //虚拟卡在取水中的占用状态改为非应用状态
                    sv.updateVirCardNoUseState(controller.getIntakeId());
                    Date now = new Date() ;
                    sv.updateVirCardNoUseState(controller.getIntakeId(), now);
                }
            }
        }
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/webRequest/WebRequestDeal.java
@@ -1,7 +1,7 @@
package com.dy.rtuMw.web.webRequest;
import com.dy.common.mw.protocol.Command;
import com.dy.rtuMw.web.comResult.WebResponseVo;
import com.dy.common.webUtil.BaseResponse;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
@@ -16,7 +16,7 @@
/**
 * @Author: liurunyu
 * @Date: 2024/11/11 16:29
 * @Description
 * @Description é€šä¿¡ä¸­é—´ä»¶å¯¹å¤–发出的web请求
 */
@Component()
public class WebRequestDeal {
@@ -30,6 +30,11 @@
        this.restTemplate = restTemplate ;
    }
    /**
     * å¤„理中间件主动发起的web请求
     * @param webUrl
     * @param obj
     */
    public void deal(String webUrl, Object obj) {
        if (webUrl != null
                && !webUrl.trim().equals("")
@@ -41,10 +46,10 @@
            HttpHeaders headers = new HttpHeaders();
            headers.setContentType(MediaType.parseMediaType("application/json;charset=UTF-8"));
            HttpEntity<?> httpEntity = new HttpEntity<>(obj, headers);
            ResponseEntity<WebResponseVo> response = null;
            ResponseEntity<BaseResponse> response = null;
            try {
                // é€šè¿‡Post方式调用接口
                response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, WebResponseVo.class);
                response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, BaseResponse.class);
            } catch (Exception e) {
                log.error("web访问请求发生异常", e);
            }
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeCtrl.java
New file
@@ -0,0 +1,119 @@
package com.dy.pipIrrRemote.rtuUpgrage;
import com.dy.common.aop.SsoAop;
import com.dy.common.multiDataSource.DataSourceContext;
import com.dy.common.softUpgrade.state.UpgradeTaskVo;
import com.dy.common.webUtil.BaseResponse;
import com.dy.common.webUtil.BaseResponseUtils;
import com.dy.common.webUtil.ResultCodeMsg;
import com.dy.pipIrrGlobal.pojoRm.UgRtuProgram;
import com.dy.pipIrrGlobal.pojoRm.UgRtuTask;
import com.dy.pipIrrGlobal.rtuMw.ToRtuMwCom;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import java.util.List;
/**
 * @Author: liurunyu
 * @Date: 2024/11/12 8:33
 * @Description
 */
@Slf4j
@Tag(name = "rtu远程升级任务", description = "rtu远程升级任务相关操作")
@RestController
@RequestMapping(path = "rtuUpgrade")
public class RtuUpgradeCtrl extends ToRtuMwCom {
    @Autowired
    private RtuUpgradeSv sv ;
    @Autowired
    private Environment env;
    @Autowired
    private RestTemplate restTemplate;
    /**
     * ä¸‹å‘rtu远程升级任务
     * @param id ä»»åŠ¡id
     * @return æ“ä½œç»“æžœ
     */
    @Operation(summary = "下发rtu远程升级任务", description = "下发rtu远程升级任务")
    @ApiResponses(value = {
            @ApiResponse(
                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
                    description = "返回操作成功与否数据(BaseResponse.content:Boolean)",
                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
                            schema = @Schema(implementation = Boolean.class))}
            )
    })
    @GetMapping(path = "/issuedTask")
    @SsoAop()
    public BaseResponse<Boolean> issuedTask(String id){
        if(id == null || !id.trim().equals("")){
            return BaseResponseUtils.buildError("任务id不能为空") ;
        }
        UgRtuTask tpo = this.sv.selectTaskById(id) ;
        if(tpo == null){
            return BaseResponseUtils.buildError("任务不存在") ;
        }
        if(tpo.isExecute == 1){
            return BaseResponseUtils.buildError("任务已下发,不能重复下发任务") ;
        }
        UgRtuProgram ppo = this.sv.selectProgramById(tpo.programId) ;
        if(ppo == null){
            return BaseResponseUtils.buildError("任务对应的程序不存在") ;
        }
        List<String> taskRtuAddrs = this.sv.selectAllRtuAddrByTask(id) ;
        if(taskRtuAddrs == null || taskRtuAddrs.size() == 0){
            return BaseResponseUtils.buildError("任务所涉及的控制器还未设置") ;
        }
        String ugCallbackUrl_rm = env.getProperty("mw." + DataSourceContext.get() + ".ugCallbackUrl_rm" );
        if(ugCallbackUrl_rm == null || ugCallbackUrl_rm.trim().equals("")){
            return BaseResponseUtils.buildError("未配置升级任务回调网址") ;
        }
        UpgradeTaskVo vo = new UpgradeTaskVo() ;
        this.valueFromPo(vo, tpo, ppo) ;
        vo.rtuAddrList = taskRtuAddrs ;
        vo.callbackWebUrl = ugCallbackUrl_rm ;
        String ugSendUrl = this.getToMwUgUrl(this.env) ;
        BaseResponse res = sendUpgradeTask2Mw(restTemplate, ugSendUrl, vo) ;
        if(res != null){
            if(res.isSuccess()){
                return BaseResponseUtils.buildSuccess(true) ;
            }else{
                log.error("通信中间件执行下发升级任务失败" + (res.getMsg() == null? "" : ("," + res.getMsg()))) ;
                return BaseResponseUtils.buildFail("通信中间件执行失败" + (res.getMsg() == null? "" : ("," + res.getMsg()))) ;
            }
        }else{
            log.error("通信中间件返回结果为null") ;
            return BaseResponseUtils.buildFail("通信中间件返回结果为null") ;
        }
    }
    private void valueFromPo(UpgradeTaskVo vo, UgRtuTask tpo, UgRtuProgram ppo){
        vo.id = "" + tpo.id ;
        vo.softFileName = ppo.hexFileName ;
        vo.softStoreAddr = ppo.storeRamAddr ;
        vo.softStartAddr = ppo.startRamAddr ;
        vo.softFileData = ppo.programBytes ;
        vo.softBytesCalculate = ppo.programCalculateBytes ;
        vo.softByteSrc16 = ppo.programCrc16 ;
    }
}
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeStateReceiverCtrl.java
New file
@@ -0,0 +1,39 @@
package com.dy.pipIrrRemote.rtuUpgrage;
import com.dy.common.softUpgrade.state.UpgradeInfo;
import com.dy.common.softUpgrade.state.UpgradeRtu;
import com.dy.common.webUtil.BaseResponse;
import io.swagger.v3.oas.annotations.Hidden;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
/**
 * @Author: liurunyu
 * @Date: 2024/11/12 9:24
 * @Description
 */
@Slf4j
@Tag(name = "rtu远程升级任务通信中间件执行情况统计回收", description = "rtu远程升级任务通信中间件执行情况统计回收")
@RestController
@RequestMapping(path = "rtuUpgradeStateReceiver")
public class RtuUpgradeStateReceiverCtrl {
    /**
     * rtu远程升级任务通信中间件执行情况统计回收
     * @param vo æ•°æ®
     * @return æ“ä½œç»“æžœ
     */
    @Hidden //不公开接口,其只有通信中间件调用
    @PostMapping(path = "/receive")
    public BaseResponse<Boolean> receive(@RequestBody UpgradeInfo vo){
        log.info("接收到的RTU远程升级状态数据为:{}",vo.toString());
        if(vo.ugRtuStateList != null && vo.ugRtuStateList.size() > 0){
            if(vo.ugRtuStateList.size() < 10){
                for (UpgradeRtu upgradeRtu : vo.ugRtuStateList) {
                    log.info(upgradeRtu.toString());
                }
            }
        }
        return null;
    }
}
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtuUpgrage/RtuUpgradeSv.java
New file
@@ -0,0 +1,54 @@
package com.dy.pipIrrRemote.rtuUpgrage;
import com.dy.pipIrrGlobal.daoRm.UgRtuControllerMapper;
import com.dy.pipIrrGlobal.daoRm.UgRtuProgramMapper;
import com.dy.pipIrrGlobal.daoRm.UgRtuTaskMapper;
import com.dy.pipIrrGlobal.pojoRm.UgRtuProgram;
import com.dy.pipIrrGlobal.pojoRm.UgRtuTask;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * @Author: liurunyu
 * @Date: 2024/11/12 8:33
 * @Description
 */
@Slf4j
@Service
public class RtuUpgradeSv {
    @Autowired
    private UgRtuTaskMapper tdao ;
    @Autowired
    private UgRtuProgramMapper pdao ;
    @Autowired
    private UgRtuControllerMapper cdao ;
    /**
     * é€šä¿¡ä¸»é”®æŸ¥è¯¢ä¸€ä¸ªå‡çº§ä»»åŠ¡
     * @param id ä¸»é”®
     * @return
     */
    public UgRtuTask selectTaskById(String taskId){
        return tdao.selectByPrimaryKey(Long.valueOf(taskId));
    }
    /**
     * é€šä¿¡ä¸»é”®æŸ¥è¯¢ä¸€ä¸ªå‡çº§ç¨‹åº
     * @param id ä¸»é”®
     * @return
     */
    public UgRtuProgram selectProgramById(Long id){
        return pdao.selectByPrimaryKey(id);
    }
    /**
     * æŸ¥è¯¢ä¸€ä¸ªå‡çº§ä»»åŠ¡æ‰€æœ‰æŽ§åˆ¶å™¨åœ°å€
     * @return ä¸€äº›ä¸€äº›æŽ§åˆ¶å™¨åœ°å€
     */
    public List<String> selectAllRtuAddrByTask(String taskId){
        return this.cdao.selectAllRtuAddrByTask(Long.valueOf(taskId)) ;
    }
}