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(); 
 | 
        } 
 | 
    } 
 | 
} 
 |