代码更新
This commit is contained in:
@@ -20,6 +20,15 @@
|
||||
</properties>
|
||||
<dependencies>
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>org.json</groupId>
|
||||
<artifactId>json</artifactId>
|
||||
<version>20131018</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
|
||||
<!-- 日志链路追踪 https://tlog.yomahub.com/pages/f62a84/#%E5%90%8C%E6%AD%A5%E6%97%A5%E5%BF%97-->
|
||||
<dependency>
|
||||
<groupId>com.yomahub</groupId>
|
||||
@@ -140,19 +149,6 @@
|
||||
<version>2.8.0</version>
|
||||
</dependency>
|
||||
|
||||
<!-- 代码生成模块 -->
|
||||
<dependency>
|
||||
<groupId>org.nl</groupId>
|
||||
<artifactId>nladmin-generator</artifactId>
|
||||
<version>2.6</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.nl</groupId>
|
||||
<artifactId>nladmin-common</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- https://www.jianshu.com/p/e40d111c7bfc?utm_source=oschina-app 热部署 https://zhuanlan.zhihu.com/p/63381268-->
|
||||
|
||||
|
||||
28
mes/hd/nladmin-system/src/main/java/org/nl/Test.java
Normal file
28
mes/hd/nladmin-system/src/main/java/org/nl/Test.java
Normal file
File diff suppressed because one or more lines are too long
@@ -0,0 +1,191 @@
|
||||
package org.nl.wms;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.OutputStream;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 后端调用第三方webservice接口
|
||||
* @author zds 2018-12-27 16:33:50
|
||||
*
|
||||
*/
|
||||
public class WebServiceUtil {
|
||||
/**
|
||||
*
|
||||
* @param url 第三方系统提供webservice的接口url
|
||||
* @param method 第三方系统提供webservice对应的方法名
|
||||
* @param form 第三方系统提供webservice对应的方法请求参数
|
||||
* @return 第三方系统返回的JSONObject调用结果
|
||||
* @throws Exception 工具类一般不处理具体异常,抛出由调用方处理,否则容易形成黑箱
|
||||
*/
|
||||
public static String process(String url, String method, HashMap<String,String> form) throws Exception{
|
||||
//构建返回值
|
||||
JSONObject result = new JSONObject();
|
||||
//第一步:创建服务地址
|
||||
URL netUrl = new URL(url);
|
||||
|
||||
//第二步:打开一个通向服务地址的连接
|
||||
HttpURLConnection connection = (HttpURLConnection) netUrl.openConnection();
|
||||
|
||||
//第三步:设置参数
|
||||
connection.setRequestMethod("POST");
|
||||
//设置超时时间
|
||||
connection.setConnectTimeout(50000);
|
||||
|
||||
|
||||
//3.2设置数据格式:content-type
|
||||
connection.setRequestProperty("content-type", "text/xml;charset=utf-8");
|
||||
|
||||
//3.3设置输入输出,因为默认新创建的connection没有读写权限,
|
||||
connection.setDoInput(true);
|
||||
|
||||
connection.setDoOutput(true);
|
||||
|
||||
|
||||
//第四步:组织SOAP数据,发送请求
|
||||
String soapXML = getXML(form,method);
|
||||
|
||||
//将信息以流的方式发送出去
|
||||
OutputStream os = connection.getOutputStream();
|
||||
|
||||
os.write(soapXML.getBytes());
|
||||
|
||||
//第五步:接收服务端响应,打印
|
||||
|
||||
int responseCode = connection.getResponseCode();
|
||||
String ret="默认值";
|
||||
|
||||
if(200 == responseCode){//表示服务端响应成功
|
||||
|
||||
//获取当前连接请求返回的数据流
|
||||
InputStream is = connection.getInputStream();
|
||||
|
||||
InputStreamReader isr = new InputStreamReader(is,"utf-8");
|
||||
|
||||
BufferedReader br = new BufferedReader(isr);
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
String temp = null;
|
||||
|
||||
while(null != (temp = br.readLine())){
|
||||
sb.append(temp);
|
||||
}
|
||||
|
||||
//打印结果
|
||||
|
||||
ret=sb.toString();
|
||||
if(ret.startsWith("<?"))
|
||||
ret = ret.replaceAll("\\<\\?.+\\?\\>", "<?xml version='1.0' encoding='UTF-8'?>");
|
||||
else
|
||||
ret = (new StringBuilder("<?xml version='1.0' encoding='UTF-8'?>")).append(ret).toString();
|
||||
|
||||
/* String now = xml2jsonString(ret);
|
||||
System.out.println("打印返回结果转成jsonString-------------");
|
||||
result =JSONObject.parseObject(now);*/
|
||||
is.close();
|
||||
isr.close();
|
||||
br.close();
|
||||
//关闭连接
|
||||
connection.disconnect();
|
||||
}
|
||||
os.close();
|
||||
return ret;
|
||||
// return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得要发送的webservice的xml形式的参数
|
||||
* @param form 查询条件
|
||||
* @return
|
||||
*/
|
||||
private static String getXML(Map<String,String> form, String method){
|
||||
StringBuffer sb = new StringBuffer();
|
||||
sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?> ");
|
||||
sb.append("<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:urn=\"urn:sap-com:document:sap:soap:functions:mc-style\">");
|
||||
sb.append("<soapenv:Header/>");
|
||||
sb.append("<soapenv:Body>");
|
||||
sb.append("<urn:"+method+">");
|
||||
if(method.contains("ZSd0002SendMatMd"))
|
||||
sb.append("<In>");
|
||||
// 设置请求参数
|
||||
for(Iterator<String> it = form.keySet().iterator();it.hasNext();){
|
||||
String key = it.next();
|
||||
String value = form.get(key);
|
||||
sb.append(" <"+key+">"+value+"</"+key+">");
|
||||
}
|
||||
if(method.contains("ZSd0002SendMatMd"))
|
||||
sb.append("</In>");
|
||||
sb.append("</urn:"+method+">");
|
||||
sb.append("</soapenv:Body>");
|
||||
sb.append("</soapenv:Envelope>");
|
||||
System.out.println("getXML发送数据-----------------"+sb.toString());
|
||||
return sb.toString();
|
||||
|
||||
}
|
||||
/*
|
||||
public static String xml2jsonString(String xml) throws Exception {
|
||||
JSONObject xmlJSONObj = XML.toJSONObject(xml);
|
||||
return xmlJSONObj.toString();
|
||||
}*/
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
|
||||
/*String url = "http://192.168.0.82:8000/sap/bc/srt/rfc/sap/z_sd0002_send_mat_md/800/z_sd0002_send_mat_md/binding";
|
||||
String method = "ZSd0002SendMatMd";
|
||||
HashMap<String,String> form = new HashMap<String,String>();
|
||||
form.put("MatnrFr", "24018347S");
|
||||
form.put("MatnrTo", "24018347S");
|
||||
//非必填字段
|
||||
JSONObject ret = WebServiceUtil.process(url,method,form);
|
||||
System.out.println("getXML返回数据-----------------"+ret.toString());
|
||||
JSONObject Envelope = ret.optJSONObject("soap-env:Envelope");
|
||||
JSONObject Body = Envelope.optJSONObject("soap-env:Body");
|
||||
JSONObject ZfmGetSoResponse = Body.optJSONObject("n0:ZSd0002SendMatMdResponse");
|
||||
JSONObject TZtsalesorder = ZfmGetSoResponse.optJSONObject("TZtsalesorder");
|
||||
JSONArray item = TZtsalesorder.optJSONArray("item");
|
||||
System.out.println("例子:查询结果字段OResultmsg-----------------"+ZfmGetSoResponse.optString("OResultmsg"));
|
||||
System.out.println("例子:查询结果数组size-----------------"+item.size());*/
|
||||
/* String url = "http://192.168.0.82:8000/sap/bc/srt/rfc/sap/zfg_ecc_to_zhwl/800/zfg_ecc_to_zhwl/binding";
|
||||
String method="ZfmGetSo";
|
||||
HashMap<String,String> form = new HashMap<String,String>();
|
||||
form.put("IErdatFrm", "2019-05-01");
|
||||
form.put("IErdatTo", "2019-05-08");
|
||||
//非必填字段
|
||||
form.put("IVbeln", "");
|
||||
JSONObject ret = WebServiceUtil.process(url,method,form);
|
||||
System.out.println("getXML发送数据-----------------"+ret.toString());
|
||||
JSONObject Envelope = ret.optJSONObject("soap-env:Envelope");
|
||||
JSONObject Body = Envelope.optJSONObject("soap-env:Body");
|
||||
JSONObject ZfmGetSoResponse = Body.optJSONObject("n0:ZfmGetSoResponse");
|
||||
JSONObject TZtsalesorder = ZfmGetSoResponse.optJSONObject("TZtsalesorder");
|
||||
JSONArray item = TZtsalesorder.optJSONArray("item");
|
||||
System.out.println("例子:查询结果字段OResultmsg-----------------"+ZfmGetSoResponse.optString("OResultmsg"));
|
||||
System.out.println("例子:查询结果数组size-----------------"+item.size());*/
|
||||
/* String url = "http://192.168.0.82:8000/sap/bc/srt/rfc/sap/zfg_ecc_to_zhwl/800/zfg_ecc_to_zhwl/binding";
|
||||
String method = "ZfmGetDnZjwl";
|
||||
HashMap<String,String> form = new HashMap<String,String>();
|
||||
form.put("IErdatFrm", "2019-05-01");
|
||||
form.put("IErdatTo", "2019-05-08");
|
||||
//非必填字段
|
||||
form.put("IVbeln", "");
|
||||
//非必填字段
|
||||
JSONObject ret = WebServiceUtil.process(url,method,form);
|
||||
System.out.println("getXML发送数据-----------------"+ret.toString());
|
||||
JSONObject Envelope = ret.optJSONObject("soap-env:Envelope");
|
||||
JSONObject Body = Envelope.optJSONObject("soap-env:Body");
|
||||
JSONObject ZfmGetDnZjwlResponse = Body.optJSONObject("n0:ZfmGetDnZjwlResponse");
|
||||
JSONObject TZtdn = ZfmGetDnZjwlResponse.optJSONObject("TZtdn");
|
||||
JSONArray item = TZtdn.optJSONArray("item");
|
||||
System.out.println("例子:查询结果字段OResultmsg-----------------"+ZfmGetDnZjwlResponse.optString("OResultmsg"));
|
||||
System.out.println("例子:查询结果数组size-----------------"+item.size());*/
|
||||
}
|
||||
}
|
||||
Binary file not shown.
@@ -1,5 +1,5 @@
|
||||
server:
|
||||
port: 8011
|
||||
port: 8099
|
||||
#配置数据源
|
||||
spring:
|
||||
datasource:
|
||||
@@ -55,7 +55,6 @@ spring:
|
||||
multi-statement-alagvslow: true
|
||||
redis:
|
||||
#数据库索引
|
||||
|
||||
database: ${REDIS_DB:6}
|
||||
host: ${REDIS_HOST:127.0.0.1}
|
||||
#host: ${REDIS_HOST:localhost}
|
||||
|
||||
@@ -158,6 +158,7 @@ https://juejin.cn/post/6844903775631572999
|
||||
<!--生产环境:打印控制台和输出到文件-->
|
||||
<springProfile name="prod">
|
||||
<root level="warn">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="asyncFileAppender"/>
|
||||
</root>
|
||||
</springProfile>
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
package org.nl;
|
||||
|
||||
/**
|
||||
* 模拟从1001--1002的AGV搬运指令。比如从入库口---库内等
|
||||
* 0、生成指令之前需要判断光电状态,最大指令数等条件
|
||||
* 1、定时器查询任务,判断任务状态比如status=0这种。
|
||||
* 2、根据起点找路由next,A-->B
|
||||
* 3、更新任务状态,下发给PLC、AGV
|
||||
* 4、指令完成,
|
||||
* 4.1 PLC型号类型:比如A task和B的task点位任务号相同,相当于指令结束
|
||||
* 4.2 AGV类型:定时器查接口数据
|
||||
*/
|
||||
public class InstructCreate {
|
||||
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
package org.nl;
|
||||
|
||||
/**
|
||||
* 模拟从1001-1002的AGV搬运任务生成,如从入库口到库内
|
||||
* 任务触发,比如mode变为2
|
||||
* 1、申请任务,需要判断路由是否存在。
|
||||
* 1.1、电器按钮:mode=2,3,4代表任务类型:申请空盘,申请入库等
|
||||
* 1.2、光电信号:move:0,1 有货,无货等
|
||||
* 2、相关接口
|
||||
* 2.1 申请WMS,WMS直接返回任务
|
||||
* 2.2 申请WMS,直接返回false或true,然后WMS通过定时器下发给ACS
|
||||
*/
|
||||
public class TaskCreate {
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user