liurunyu
2025-04-23 e5c29d6ac2b210a9385723598d79a42ae5a9679e
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu3rd/src/main/java/com/dy/rtuMw3rd/Server.java
New file
@@ -0,0 +1,135 @@
package com.dy.rtuMw3rd;
import com.dy.common.mw.UnitInterface;
import com.dy.common.util.ConfigXml4Springboot;
import com.dy.rtuMw3rd.http4Xjnk.HttpUnit;
import com.dy.rtuMw3rd.http4Xjnk.HttpUnitConfigVo;
import com.dy.rtuMw3rd.tcp4Bjnl.TcpClUnit;
import com.dy.rtuMw3rd.tcp4Bjnl.TcpClUnitConfigVo;
import org.jdom2.Document;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ResourceLoader;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
/**
 * @Author: liurunyu
 * @Date: 2025/03/18 15:49
 * @Description
 */
@Component
public class Server {
    @Autowired
    protected ResourceLoader resourceLoader ;
    private ConfigXml4Springboot conf = null ;
    private Document doc = null ;
    private boolean showStartInfo = false ;
    private List<UnitInterface> units = new ArrayList<UnitInterface>() ;
    /**
     * 启动服务
     */
    public void startServer() {
        long start = System.currentTimeMillis();
        try {
            this.conf = new ConfigXml4Springboot() ;
            this.doc = this.conf.createDom(resourceLoader, "config.xml") ;
            ////////////////
            //服务 配置
            this.showStartInfo = this.conf.getSetAttrBoolean(this.doc, "config.server", "showStartInfo", null, null) ;
            this.startUnits() ;
            String svName ;
            try{
                svName = this.conf.getSetAttrTxt(this.doc, "config.server", "name", null, false, null) ;
            }catch(Exception e){
                svName = "" ;
            }
            String company ;
            try{
                company = this.conf.getSetAttrTxt(this.doc, "config.server", "company", null, true, null) ;
            }catch(Exception e){
                company = "" ;
            }
            System.out.println("0O0OOOOOOOOO00         OOOOOOOO       OOOOOOOO") ;
            System.out.println("@@@@@@@@@@@@@@@@@#O    $@@@@@@@@&    @@@@@@@@#") ;
            System.out.println("@@@@@@@@@@@@@@@@@@@@#    @@@@@@@@# $@@@@@@@@&") ;
            System.out.println("@@@@@@@@@@@@@@@@@@@@@@#   #@@@@@@@@@@@@@@@@O") ;
            System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@   &@@@@@@@@@@@@@@") ;
            System.out.println("@@@@@@@$      $@@@@@@@@@&   O@@@@@@@@@@@#") ;
            System.out.println("@@@@@@@$        @@@@@@@@@     @@@@@@@@@&      " + svName ) ;
            System.out.println("@@@@@@@$       O@@@@@@@@@     &@@@@@@@@") ;
            if(ServerProperties.BjnlServerIp != null){
                System.out.println("@@@@@@@$       O@@@@@@@@@     &@@@@@@@@       北京农林服务 " + (ServerProperties.BjnlServerIp + " " + ServerProperties.BjnlServerPort) ) ;
            }else{
                System.out.println("@@@@@@@$       O@@@@@@@@@     &@@@@@@@@") ;
            }
            if(ServerProperties.XjnkServerHttpsBaseUrl != null){
                System.out.println("@@@@@@@$       O@@@@@@@@@     &@@@@@@@@       新疆农垦--服务 " + (ServerProperties.XjnkServerHttpsBaseUrl) ) ;
            }else{
                System.out.println("@@@@@@@$       O@@@@@@@@@     &@@@@@@@@") ;
            }
            System.out.println("@@@@@@@$      #@@@@@@@@@$     &@@@@@@@@") ;
            System.out.println("@@@@@@@@@@@@@@@@@@@@@@@#      &@@@@@@@@       Running in standalone mode" ) ;
            System.out.println("@@@@@@@@@@@@@@@@@@@@@@&       &@@@@@@@@       Startup in " + (System.currentTimeMillis() - start) + " MS" ) ;
            System.out.println("@@@@@@@@@@@@@@@@@@@@#         &@@@@@@@@       " + company) ;
            System.out.println("@@@@@@@@@@@@@@@@@#O           &@@@@@@@@") ;
        }catch(Exception e){
            e.printStackTrace();
        }
    }
    private void startUnits() {
        try {
            // ///////////////
            // http 模块
            HttpUnitConfigVo httpVo = new HttpUnitConfigVo();
            httpVo.httpsBaseUr = this.conf.getSetAttrTxt(this.doc, "config.xjnk", "httpsBaseUrl", null, false, null) ;
            httpVo.appid = this.conf.getSetAttrTxt(this.doc, "config.xjnk", "appid", null, false, null) ;
            httpVo.secret = this.conf.getSetAttrTxt(this.doc, "config.xjnk", "secret", null, false, null) ;
            httpVo.flushDataFromSvInterval = conf.getSetAttrPlusInt(this.doc, "config.xjnk", "flushDataFromSvInterval", null, 1, 7200000, null)  ;
            ServerProperties.XjnkServerHttpsBaseUrl =  httpVo.httpsBaseUr ;
            AdapterImp_HttpUnit httpAdapt = new AdapterImp_HttpUnit();
            httpAdapt.setConfig(httpVo);
            HttpUnit httpUnit = HttpUnit.getInstance();
            httpUnit.setAdapter(httpAdapt);
            httpUnit.start(obj -> {
            });
            units.add(httpUnit) ;
            // ///////////////
            // TCP 模块
            TcpClUnitConfigVo tcpVo = new TcpClUnitConfigVo();
            tcpVo.BjnlServerIp = this.conf.getSetAttrTxt(this.doc, "config.bjnl", "ip", null, false, null) ;
            tcpVo.BjnlServerPort = conf.getSetAttrPlusInt(this.doc, "config.bjnl", "port", null, 1, 65536, null)  ;
            tcpVo.BjnlConnectTimeout = conf.getSetAttrPlusInt(this.doc, "config.bjnl", "connectTimeout", null, 1, 65536, null)  ;
            tcpVo.BjnlApikey = this.conf.getSetAttrTxt(this.doc, "config.bjnl", "apikey", null, false, null) ;
            tcpVo.BjnlSecretkey = this.conf.getSetAttrTxt(this.doc, "config.bjnl", "secretkey", null, false, null) ;
            tcpVo.heartBeatInterval = conf.getSetAttrPlusInt(this.doc, "config.bjnl", "heartBeatInterval", null, 1, 3600000, null)  ;
            ServerProperties.BjnlServerIp = tcpVo.BjnlServerIp ;
            ServerProperties.BjnlServerPort = tcpVo.BjnlServerPort ;
            AdapterImp_TcpClUnit tcpAdapt = new AdapterImp_TcpClUnit();
            tcpAdapt.setConfig(tcpVo);
            TcpClUnit tcpUnit = TcpClUnit.getInstance();
            tcpUnit.setAdapter(tcpAdapt);
            tcpUnit.start(obj -> {
            });
            units.add(tcpUnit) ;
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}