package com.dy.pipIrrMwTestWeb.p206V202404test; 
 | 
  
 | 
import com.dy.common.mw.protocol.Command; 
 | 
import com.dy.common.mw.protocol.CommandType; 
 | 
import com.dy.common.mw.protocol.p206V202404.ProtocolConstantV206V202404; 
 | 
import com.dy.common.mw.protocol.p206V202404.downVos.ComCdXyVo; 
 | 
import com.dy.common.webUtil.BaseResponse; 
 | 
import com.dy.common.webUtil.BaseResponseUtils; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.http.HttpEntity; 
 | 
import org.springframework.http.HttpHeaders; 
 | 
import org.springframework.http.HttpMethod; 
 | 
import org.springframework.http.ResponseEntity; 
 | 
import org.springframework.web.client.RestTemplate; 
 | 
import org.springframework.web.util.UriComponentsBuilder; 
 | 
  
 | 
/** 
 | 
 * @Author: liurunyu 
 | 
 * @Date: 2024/5/14 17:32 
 | 
 * @Description 
 | 
 */ 
 | 
public class ComSupportP206V202404 { 
 | 
    //protected static final String mwIp = "romq9311819.vicp.fun" ; //http://romq9311819.vicp.fun:16583 
 | 
    //protected static final String mwPort = "16583" ; 
 | 
    protected static final String mwIp = "127.0.0.1" ; 
 | 
    protected static final String mwPort = "65533" ; 
 | 
  
 | 
    protected static String mwUrlTest = "http://" + mwIp + ":" + mwPort + "/rtuMw/com/test" ; 
 | 
    protected static String mwUrlSendCom = "http://" + mwIp + ":" + mwPort + "/rtuMw/com/send" ; 
 | 
  
 | 
    protected static String rtuAddr = "37142501020100229" ; 
 | 
    protected static String rtuResultSendWebUrl = "http://127.0.0.1:65535/test/comRes/receive" ; 
 | 
  
 | 
    protected static String controllerType = "02" ;//控制器类型 57水泵,02阀门 
 | 
    protected static Integer projectNo = 10 ;//项目编码 
 | 
  
 | 
    protected static String icCardAddr = "04BEA5BB" ;//IC卡地址 
 | 
    protected static String icCardNo = "37142501020500001" ;//IC卡编号(用户卡序列号) 
 | 
  
 | 
  
 | 
    @Autowired 
 | 
    private RestTemplate restTemplate; 
 | 
  
 | 
  
 | 
    protected ComCdXyVo comCdXyVo(){ 
 | 
        ComCdXyVo comVo = new ComCdXyVo() ; 
 | 
        comVo.controllerType = controllerType ; 
 | 
        comVo.projectNo = projectNo  ; 
 | 
        return comVo ; 
 | 
    } 
 | 
  
 | 
    protected Command command(String code, Object param, String comId){ 
 | 
        Command com = new Command() ; 
 | 
        com.id = comId==null?Command.defaultId:(comId.trim().equals("")?Command.defaultId:comId) ;//实际应用中,替换成数据库记录id 
 | 
        com.protocol = ProtocolConstantV206V202404.protocolName ; 
 | 
        com.code = code ; 
 | 
        com.rtuAddr = rtuAddr ; 
 | 
        com.type = CommandType.outerCommand ; 
 | 
        com.rtuResultSendWebUrl = rtuResultSendWebUrl ; 
 | 
  
 | 
        com.param = param ; 
 | 
  
 | 
        return com ; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 连接通信中间件测试 
 | 
     * @return 
 | 
     */ 
 | 
    protected BaseResponse sendTest(){ 
 | 
        String url = UriComponentsBuilder.fromUriString(mwUrlTest) 
 | 
                .build() 
 | 
                .toUriString(); 
 | 
        HttpHeaders headers = new HttpHeaders(); 
 | 
        HttpEntity<?> httpEntity = new HttpEntity<>(headers); 
 | 
        ResponseEntity<BaseResponse> response = null; 
 | 
        try { 
 | 
            // 通过Get方式调用接口 
 | 
            response = restTemplate.exchange(url, HttpMethod.GET, httpEntity, BaseResponse.class); 
 | 
        } catch (Exception e) { 
 | 
            e.printStackTrace(); 
 | 
            return BaseResponseUtils.buildError("后端系统出错,中间件调用异常"); 
 | 
        } 
 | 
        if(response == null){ 
 | 
            return BaseResponseUtils.buildError("后端系统出错,中间件调用异常"); 
 | 
        }else{ 
 | 
            return response.getBody(); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 发送命令 
 | 
     * @return 
 | 
     */ 
 | 
    protected BaseResponse sendCom2Mw(Command com){ 
 | 
        String url = UriComponentsBuilder.fromUriString(mwUrlSendCom) 
 | 
                .build() 
 | 
                .toUriString(); 
 | 
        HttpHeaders headers = new HttpHeaders(); 
 | 
        HttpEntity<Command> httpEntity = new HttpEntity<>(com, headers); 
 | 
        ResponseEntity<BaseResponse> response = null; 
 | 
        try { 
 | 
            // 通过Post方式调用接口 
 | 
            response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, BaseResponse.class); 
 | 
        } catch (Exception e) { 
 | 
            e.printStackTrace(); 
 | 
            return BaseResponseUtils.buildError("后端系统出错,中间件调用异常"); 
 | 
        } 
 | 
        if(response == null){ 
 | 
            return BaseResponseUtils.buildError("后端系统出错,中间件调用异常"); 
 | 
        }else{ 
 | 
            return response.getBody(); 
 | 
        } 
 | 
    } 
 | 
  
 | 
} 
 |