diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IWriteOPCEquipmentService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IWriteOPCEquipmentService.java index 09656fb..b3cc547 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IWriteOPCEquipmentService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IWriteOPCEquipmentService.java @@ -22,4 +22,7 @@ public interface IWriteOPCEquipmentService { @ApiOperation(value = "查询工单") ResultBean doOPCEquipment(List> listData,String xmlString); + @ApiOperation(value = "writeVariableHttp") + String writeVariableHttp(String equipmentId,String channel,String clientHandle,String v, String wsUrl)throws Exception; + } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/equiplog/WriteOPCEquipmentServiceImpl.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/equiplog/WriteOPCEquipmentServiceImpl.java index 952d2af..c735cef 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/equiplog/WriteOPCEquipmentServiceImpl.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/equiplog/WriteOPCEquipmentServiceImpl.java @@ -3,6 +3,7 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.equiplog; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IWriteOPCEquipmentService; import cn.estsh.i3plus.mes.pcn.util.datatable.DataColumnCollection; import cn.estsh.i3plus.pojo.base.enumutil.WmsEnumUtil; +import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariable; import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.hutool.json.XML; @@ -16,6 +17,10 @@ import org.springframework.http.*; import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.HttpURLConnection; +import java.net.URL; import java.util.List; import java.util.Map; @@ -54,6 +59,58 @@ public class WriteOPCEquipmentServiceImpl implements IWriteOPCEquipmentService { throw new ImppBusiException(String.format("Error Code %s", response.getStatusCode().toString())); } } + @Override + public String writeVariableHttp(String equipmentId,String channel,String clientHandle,String v, String wsUrl)throws Exception{ + //服务的地址 http://172.28.16.50:8111 + wsUrl="http://172.28.16.50:8111"; + URL url = new URL(wsUrl); + HttpURLConnection conn = (HttpURLConnection) url.openConnection(); + + conn.setDoInput(true); + conn.setDoOutput(true); + conn.setRequestMethod("POST"); + conn.setRequestProperty("Content-Type", "text/xml;charset=UTF-8"); + + //请求体---使用soapui获取 + StringBuffer sb = new StringBuffer(); + sb.append(""); + sb.append(""); + sb.append("http://172.28.16.50:8111/WriteOPCEquipmentService\n"); + sb.append(""); + sb.append(""); + + sb.append(""); + sb.append(""+equipmentId+""); + sb.append(""+channel+""); + sb.append(""+clientHandle+ ""); + sb.append(""+v+""); + sb.append(""); + + sb.append(""); + sb.append(""); + String soap = sb.toString(); + + conn.connect(); + + OutputStream os = conn.getOutputStream(); + os.write(soap.getBytes("UTF-8")); + + InputStream is = conn.getInputStream(); + + byte[] b = new byte[1024]; + int len = 0; + String s = ""; + while ((len = is.read(b)) != -1) { + String ss = new String(b, 0, len, "UTF-8"); + s += ss; + } + + is.close(); + os.close(); + conn.disconnect(); + + return s; + } private String convertListToXml(DataColumnCollection newTable, List> listData, String rootNodeName, String nodeName, String rootClassName, String nodeClassName) { if (listData == null || listData.size() == 0) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSendInitializationCmdStepSeryice.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSendInitializationCmdStepSeryice.java index 0ec94de..9cf9b6b 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSendInitializationCmdStepSeryice.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSendInitializationCmdStepSeryice.java @@ -96,7 +96,20 @@ public class MesSendInitializationCmdStepSeryice extends BaseStepService { MesEquipLogDispatchContext equipLogDispatchContext = equipmentLogExtService.doHandleEquipmentLogList(cellEquipContext, equipmentVariableList, equipmentVariableCfgList); this.sendMessage(reqBean, resultBean, JSONObject.toJSONString(equipLogDispatchContext), MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT); - //todo + //发送 todo + MesEquipmentVariableCfg mesEquipmentVariableCfg = equipmentVariableCfgList.get(0); + StringBuilder jsonSb = new StringBuilder(); + for (MesEquipmentVariable mesEquipmentVariable : equipmentVariableList) { + jsonSb.append("{\n"); + jsonSb.append("\"tem:ReadVariable\":{\n"); + jsonSb.append("\"tem:equipmentId\":\""+mesEquipmentVariable.getEquipId()+"\",\n"); + jsonSb.append("\"tem:channel\":\""+mesEquipmentVariable.getChannel()+"\",\n"); + jsonSb.append("\"tem:clientHandle\":\""+mesEquipmentVariable.getClientHandle()+"\",\n"); + jsonSb.append("\"tem:v\":\""+mesEquipmentVariableCfg.getValue()+"\"\n"); + jsonSb.append("}\n"); + String json = jsonSb.append("}\n").toString(); + //发送 + } return stepResult; diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSendProcessCmdStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSendProcessCmdStepService.java index de3409a..ef62142 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSendProcessCmdStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesSendProcessCmdStepService.java @@ -102,7 +102,19 @@ public class MesSendProcessCmdStepService extends BaseStepService { MesEquipLogDispatchContext equipLogDispatchContext = equipmentLogExtService.doHandleEquipmentLogList(cellEquipContext, equipmentVariableList, equipmentVariableCfgList); this.sendMessage(reqBean, resultBean, JSONObject.toJSONString(equipLogDispatchContext), MesPcnEnumUtil.STATION_BUSI_TYPE.RUNNING_INFO, MesPcnEnumUtil.STATION_DATA_TYPE.TEXT); //发送 todo - + MesEquipmentVariableCfg mesEquipmentVariableCfg = equipmentVariableCfgList.get(0); + StringBuilder jsonSb = new StringBuilder(); + for (MesEquipmentVariable mesEquipmentVariable : equipmentVariableList) { + jsonSb.append("{\n"); + jsonSb.append("\"tem:ReadVariable\":{\n"); + jsonSb.append("\"tem:equipmentId\":\""+mesEquipmentVariable.getEquipId()+"\",\n"); + jsonSb.append("\"tem:channel\":\""+mesEquipmentVariable.getChannel()+"\",\n"); + jsonSb.append("\"tem:clientHandle\":\""+mesEquipmentVariable.getClientHandle()+"\",\n"); + jsonSb.append("\"tem:v\":\""+mesEquipmentVariableCfg.getValue()+"\"\n"); + jsonSb.append("}\n"); + String json = jsonSb.append("}\n").toString(); + //发送 + } if (!stepResult.isCompleted()) threadSleep(stepParamMap, MesPcnExtConstWords.READ_FAILURE_SLEEP, MesPcnExtConstWords.READ_FAILURE_SLEEP_DEFAULT_TIME);