package com.shlanbao.tzsc.data.webservice.server.impl;
|
|
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.Executors;
|
|
import javax.jws.WebService;
|
|
import org.dom4j.Document;
|
import org.dom4j.DocumentHelper;
|
|
import com.shlanbao.tzsc.base.interceptor.PMSXmlDataInterceptor;
|
import com.shlanbao.tzsc.utils.tools.DateUtil;
|
|
/**
|
* [功能说明]:MES webService interface
|
* @author wanchanghuang
|
* @createTime 2019年4月29日16:46:58
|
*/
|
@WebService
|
public class IPMSWebServiceImpl implements IPMSWebService {
|
// 线程池
|
private static ExecutorService cachedThreadPool = Executors.newCachedThreadPool();
|
|
/**
|
* [说明]:将字符串转换成Document
|
* @author wanchanghuang
|
* @date 2019年4月29日16:42:14
|
*/
|
public Document stringXmlToDoc(String xml) {
|
try {
|
// 1. 清除左右字符串空格
|
xml = xml.trim();
|
// 2 字符串判空
|
if ("".equals(xml)) {
|
System.err.println("ERR:XML数据为空!!!!");
|
return null;
|
}
|
// 3 将字符串转换成document
|
return DocumentHelper.parseText(xml);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return null;
|
}
|
|
/**
|
* [说明]:系统握手信号接口 -同步
|
*
|
* @author wanchanghuang
|
* @date 2019年4月29日16:42:14
|
*/
|
@Override
|
public String MESSendHandshakeSignal(String strXml) {
|
return PMSXmlDataInterceptor.getInstance().MESSendHandshakeSignal(strXml);
|
}
|
|
/**
|
* [功能说明]:工单BOM接口 -同步
|
*
|
* @author wanchanghuang
|
* @createTime 2019年4月29日16:46:58
|
*/
|
@Override
|
public String MESSendWorkOrderBom(String strXml) {
|
try {
|
return PMSXmlDataInterceptor.getInstance().MESSendWorkOrderBom(stringXmlToDoc(strXml),strXml);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return "<?xml version=\"1.0\" encoding=\"UTF-8\"?><dataset><data><Result>2</Result><ReceiveTime>"+DateUtil.getNowDateTime("yyyy-MM-dd HH:mm:ss")+"</ReceiveTime><Reason>ERR:BOM接口异常,XML不是标准的XML格式!!!</Reason></data></dataset>";
|
}
|
/**
|
* [功能说明]:成品主数据接口-异步
|
* @author wanchanghuang
|
* @createTime 2019年5月7日08:14:25
|
* */
|
@Override
|
public void MESSendFinProductData(String strXml) {
|
PMSXmlDataInterceptor.getInstance().MESSendFinProductData(stringXmlToDoc(strXml),strXml);
|
|
}
|
/**
|
* [功能说明]:烟丝 / 滤棒半成品接口-异步
|
* @author wanchanghuang
|
* @createTime 2019年5月7日08:14:25
|
* */
|
@Override
|
public void MESSendSemiFinProductData(String strXml) {
|
PMSXmlDataInterceptor.getInstance().MESSendSemiFinProductData(stringXmlToDoc(strXml),strXml);
|
}
|
/**
|
* [功能说明]:卷包 / 成型 物料主数据 -异步
|
* @author wanchanghuang
|
* @createTime 2019年5月7日08:14:25
|
* */
|
@Override
|
public void MESSendPartData(String strXml) {
|
PMSXmlDataInterceptor.getInstance().MESSendPartData(stringXmlToDoc(strXml),strXml);
|
}
|
/**
|
* [功能说明]:卷包/成型工单下发 -同步
|
* @author wanchanghuang
|
* @createTime 2019年5月7日08:14:25
|
* */
|
@Override
|
public String MESSendWorkOrder(String strXml) {
|
try {
|
return PMSXmlDataInterceptor.getInstance().MESSendWorkOrder(stringXmlToDoc(strXml),strXml);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return "<?xml version=\"1.0\" encoding=\"UTF-8\"?><dataset><data><Result>2</Result><ReceiveTime>"+DateUtil.getNowDateTime("yyyy-MM-dd HH:mm:ss")+"</ReceiveTime><Reason>ERR:工单接口异常,XML不是标准的XML格式!!!</Reason></data></dataset>";
|
}
|
|
/**
|
* [功能说明]:工单撤销接口-同步
|
* @author wanchanghuang
|
* @createTime 2019年5月7日08:14:25
|
* */
|
@Override
|
public String MESSendOrderCancelRequest(String strXml) {
|
try {
|
return PMSXmlDataInterceptor.getInstance().MESSendOrderCancelRequest(stringXmlToDoc(strXml),strXml);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return "<?xml version=\"1.0\" encoding=\"UTF-8\"?><dataset><data><Result>ERR:工单撤销请求接口异常,XML不是标准的XML格式!!!</Result></data></dataset>";
|
}
|
/**
|
* [功能说明]:物料锁定-同步
|
* @author wanchanghuang
|
* @createTime 2019年5月7日08:14:25
|
* */
|
@Override
|
public String MESSendMaterialLock(String strXml) {
|
try {
|
return PMSXmlDataInterceptor.getInstance().MESSendMaterialLock(stringXmlToDoc(strXml),strXml);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return "<?xml version=\"1.0\" encoding=\"UTF-8\"?><dataset><data><Result>ERR:解析异常,请查看XML数据样式是否正确!!!</Result><Message>/Message></data></dataset>";
|
}
|
|
/**
|
* [功能说明]:卷接机台物料告警接口 -异步
|
* @author wanchanghuang
|
* @createTime 2019年5月15日13:00:07
|
* */
|
@Override
|
public void MESSendEquipmentAlarm(String strXml) {
|
try {
|
PMSXmlDataInterceptor.getInstance().MESSendEquipmentAlarm(stringXmlToDoc(strXml),strXml);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
|
|
|
/**
|
* @Title: MESSendRCapacityUnitToDAS
|
* @Description: 额定产能单位标识代码下发接口
|
* @author baoshiwei
|
* @date 2019年5月6日
|
* @param xml
|
* @return
|
*/
|
@Override
|
public String MESSendRCapacityUnitToDAS(String xml) {
|
mesDataReceive("MESSendRCapacityUnitToDAS", xml);
|
return null;
|
}
|
|
/**
|
* @Title: MESSendRSpeedUnitToDAS
|
* @Description: 额定车速单位标识代码下发接口
|
* @author baoshiwei
|
* @date 2019年5月6日
|
* @param xml
|
* @return
|
*/
|
|
@Override
|
public String MESSendRSpeedUnitToDAS(String xml) {
|
mesDataReceive("MESSendRSpeedUnitToDAS", xml);
|
return null;
|
}
|
|
/**
|
* @title: MESSendEquipmentToDAS
|
* @Description: 设备主数据下发接口
|
* @author baoshiwei
|
* @date 2019年5月6日
|
* @param strXml
|
* @return
|
*/
|
@Override
|
public String MESSendEquipmentToDAS(String strXml) {
|
mesDataReceive("MESSendEquipmentToDAS", strXml);
|
return null;
|
}
|
|
|
/**
|
* @Title: MESSendEquipmentWorkOrderToDAS
|
* @Description: 设备保养工单下发接口
|
* @author baoshiwei
|
* @date 2019年5月7日
|
* @param strXml
|
* @return
|
*/
|
@Override
|
public String MESSendEquipmentWorkOrderToDAS(String strXml) {
|
mesDataReceive("MESSendEquipmentWorkOrderToDAS", strXml);
|
return null;
|
}
|
|
/**
|
* @Title: DASSSendEquipmentRepairOrder
|
* @Description: 维修工单下发接口
|
* @author baoshiwei
|
* @date 2019年5月8日
|
* @param strXml
|
* @return
|
*/
|
@Override
|
public String DASSSendEquipmentRepairOrder(String strXml) {
|
mesDataReceive("EquipmentRepairOrder",strXml);
|
return null;
|
}
|
|
/**
|
* @Title: MESSendUnitToDAS
|
* @Description: 计量单位下发接口
|
* @author baoshiwei
|
* @date 2019年5月14日
|
* @param xml
|
* @return
|
*/
|
@Override
|
public String MESSendUnitToDAS(String xml) {
|
mesDataReceive("MESSendUnitToDAS",xml);
|
return null;
|
}
|
|
/**
|
* @Title: MESSendFaultDefinition
|
* @Description: 卷包成型缺陷定义下发接口
|
* @author baoshiwei
|
* @date 2019年5月14日
|
* @param xml
|
* @return
|
*/
|
@Override
|
public String MESSendFaultDefinition(String xml) {
|
mesDataReceive("MESSendFaultDefinition",xml);
|
return null;
|
}
|
|
/**
|
* @Title: MESSendOrderCancelConfirmToDAS
|
* @Description: 工单撤销请求确认接口
|
* @author baoshiwei
|
* @date 2019年5月14日
|
* @param strXml
|
* @return
|
*/
|
@Override
|
public String MESSendOrderCancelConfirmToDAS(String strXml) {
|
mesDataReceive("MESSendOrderCancelConfirmToDAS",strXml);
|
return null;
|
}
|
|
/**
|
* @Title: MESSendParameterSetToDAS
|
* @Description: 工艺标准下发接口 -- 同步
|
* @author baoshiwei
|
* @date 2019年5月14日
|
* @param strXml
|
* @return
|
*/
|
@Override
|
public String MESSendParameterSetToDAS(String strXml) {
|
try {
|
|
return PMSXmlDataInterceptor.getInstance().alalyMESSendParameterSetToDAS("MESSendParameterSetToDAS",strXml,stringXmlToDoc(strXml));
|
} catch (Exception e) {
|
return "<?xml version=\"1.0\" encoding=\"UTF-8\"?><dataset><data><Result>2</Result><Reason>xml解析失败</Reason><ReceiveTime>"+DateUtil.datetoStr(new java.util.Date(), "yyyy-MM-dd HH:mm:ss")+"</ReceiveTime></data></dataset>";
|
}
|
}
|
|
/**
|
* @Title: MESSendShiftsToDAS
|
* @Description: 排班计划下发接口
|
* @author baoshiwei
|
* @date 2019年5月14日
|
* @param strXml
|
* @return
|
*/
|
@Override
|
public String MESSendShiftsToDAS(String strXml) {
|
mesDataReceive("MESSendShiftsToDAS",strXml);
|
return null;
|
}
|
|
/**
|
* @Title: MESSendTestResultToDAS
|
* @Description: 卷包批次检验结果判定
|
* @author baoshiwei
|
* @date 2019年5月14日
|
* @param strXml
|
* @return
|
*/
|
@Override
|
public String MESSendTestResultToDAS(String strXml) {
|
mesDataReceive("MESSendTestResultToDAS",strXml);
|
return null;
|
}
|
|
/**
|
* @Title: MESSendWorkorderIOToDAS
|
* @Description: 工单出入库记录下发接口
|
* @author baoshiwei
|
* @date 2019年5月16日
|
* @param strXml
|
* @return
|
*/
|
@Override
|
public String MESSendWorkorderIOToDAS(String strXml) {
|
mesDataReceive("MESSendWorkorderIOToDAS",strXml);
|
return null;
|
}
|
|
/**
|
* @Title: MESSendProdInventoryToDAS
|
* @Description: 成品入库记录下发接口
|
* @author baoshiwei
|
* @date 2019年5月16日
|
* @param strXml
|
* @return
|
*/
|
@Override
|
public String MESSendProdInventoryToDAS(String strXml) {
|
mesDataReceive("MESSendProdInventoryToDAS",strXml);
|
return null;
|
}
|
|
@Override
|
public String MESSendSparePartsToDAS(String xml) {
|
mesDataReceive("MESSendSparePartsToDAS",xml);
|
return null;
|
}
|
|
|
/**
|
* @Title: mesDataReceive
|
* @Description: webservcie调用的方法,且传递 type,str参数
|
* @author baoshiwei
|
* @date 2019年5月6日
|
* @param type
|
* @param str
|
*/
|
private String mesDataReceive(String type, String str) {
|
str = str.trim();// 去除字符串两边空格
|
Document doc = null;
|
// XML空判断
|
if ("".equals(str)) {
|
return "ERROR:数据异常..." + type + str;
|
}
|
// 将xml字符串转换成document
|
try {
|
doc = DocumentHelper.parseText(str);
|
} catch (Exception e) {
|
PMSXmlDataInterceptor.getInstance().addLog(false, "MES下发转换错误", 2, str,"XML字符串转换Document对象异常!请检查XML数据格式是否规范");
|
System.out.println("ERROR:XML字符串转换Document对象异常..." + str);
|
e.printStackTrace();
|
}
|
// 线程处理
|
final Document fdoc = doc;
|
final String ftype = type;
|
final String fstr = str;
|
cachedThreadPool.execute(new Runnable() {
|
public void run() {
|
|
if ("MESSendEquipmentToDAS".equals(ftype)) {
|
// 设备主数据
|
PMSXmlDataInterceptor.getInstance().alalyMESSendEquipmentToDAS(ftype, fstr, fdoc);
|
} else if("MESSendRCapacityUnitToDAS".equals(ftype)) {
|
// 额定产能
|
PMSXmlDataInterceptor.getInstance().alalyMESSendRCapacityUnitToDAS(ftype, fstr, fdoc);
|
} else if("MESSendRSpeedUnitToDAS".equals(ftype)) {
|
// 额定车速
|
PMSXmlDataInterceptor.getInstance().alalyMESSendRSpeedUnitToDAS(ftype, fstr, fdoc);
|
}else if("MESSendEquipmentWorkOrderToDAS".equals(ftype)){
|
// 设备保养工单
|
PMSXmlDataInterceptor.getInstance().addMesSendEquipmentWorkOrder(ftype,fstr, fdoc);
|
}else if("EquipmentRepairOrder".equals(ftype)){
|
// 维修呼叫工单
|
PMSXmlDataInterceptor.getInstance().addMesSendEquipmentRepairOrder(ftype,fstr, fdoc);
|
}else if("MESSendUnitToDAS".equals(ftype)){
|
// 单位基础数据下发
|
PMSXmlDataInterceptor.getInstance().addMesSendUnit(ftype,fstr, fdoc);
|
}else if("MESSendFaultDefinition".equals(ftype)){
|
// 卷包成型外观缺陷基础数据
|
PMSXmlDataInterceptor.getInstance().alalyMESSendFaultDefinition(ftype,fstr,fdoc);
|
}else if("MESSendOrderCancelConfirmToDAS".equals(ftype)){
|
// MES工单撤销结果 是否确认撤销
|
PMSXmlDataInterceptor.getInstance().alalyMESSendOrderCancelConfirmToDAS(ftype,fstr,fdoc);
|
}else if("MESSendShiftsToDAS".equals(ftype)){
|
// 排班计划
|
PMSXmlDataInterceptor.getInstance().alalyMESSendShiftsToDAS(ftype,fstr,fdoc);
|
}else if("MESSendTestResultToDAS".equals(ftype)){
|
// 卷包批次检验结果判定
|
PMSXmlDataInterceptor.getInstance().alalyMESSendTestResultToDAS(ftype,fstr,fdoc);
|
}else if("MESSendWorkorderIOToDAS".equals(ftype)){
|
// 工单出入库
|
PMSXmlDataInterceptor.getInstance().alalyMESSendWorkorderIOToDAS(ftype,fstr,fdoc);
|
}else if("MESSendProdInventoryToDAS".equals(ftype)){
|
// 成品入库记录
|
PMSXmlDataInterceptor.getInstance().alalyMESSendProdInventoryToDAS(ftype,fstr,fdoc);
|
|
} else if("MESSendSparePartsToDAS".equals(ftype)){
|
// 备件出库记录
|
PMSXmlDataInterceptor.getInstance().alalyMESSendSparePartsToDAS(ftype,fstr,fdoc);
|
}
|
}
|
});
|
return "";
|
|
}
|
|
|
|
|
|
|
|
|
}
|