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 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 httpEntity = new HttpEntity<>(com, headers); ResponseEntity 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(); } } }