diff --git a/src/com/api/ld/web/GjlyAction.java b/src/com/api/ld/web/GjlyAction.java new file mode 100755 index 0000000..fc57c4b --- /dev/null +++ b/src/com/api/ld/web/GjlyAction.java @@ -0,0 +1,92 @@ +package com.api.ld.web; + +import com.engine.ld.functions.sap.gjly.ZMM_TOOLRECIPIENTS_IMP_PortType; +import com.engine.ld.functions.sap.gjly.ZMM_TOOLRECIPIENTS_IMP_ServiceLocator; +import com.engine.ld.optimize.Gjly; +import com.engine.ld.utils.DealXml; +import com.weaver.general.BaseBean; +import org.apache.commons.lang3.StringUtils; +import weaver.conn.RecordSet; +import weaver.general.Util; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.RequestInfo; + +import java.net.URL; +import java.util.Map; + +/** + * @author ZhangLei + * @date 2021/7/1 + * 工具领用 + */ +public class GjlyAction implements Action { + private static final BaseBean bb = new BaseBean(); + + @Override + public String execute(RequestInfo requestInfo) { + String billtable = requestInfo.getRequestManager().getBillTableName(); + String requestid = requestInfo.getRequestid() ; + + bb.writeLog("step2--------------"); + RecordSet rs = new RecordSet(); + + try { + bb.writeLog("GjlyAction"); + String saphost = bb.getPropValue("CGDD_WORKFLOW","SAPHOST"); + bb.writeLog("ZMM_MATERIALDATA_MAINTAIN_Action-saphost:"+saphost); + String client = "" ; + String sql =" SELECT id,client FROM " + billtable + " WHERE REQUESTID=" + requestid; + rs.execute(sql); + if (rs.next()){ + client = Util.null2String(rs.getString("client")); + } + + bb.writeLog("ZMM_MATERIALDATA_MAINTAIN_Action-client:"+client); + if(StringUtils.isNotEmpty(client)) { + + // http://lemprd.lemtech.cn:8000/sap/bc/srt/rfc/sap/zmm_toolrecipients_imp/300/zmm_toolrecipients_imp/zmm_toolrecipients_imp + + String wsdl = saphost + "/sap/bc/srt/rfc/sap/zmm_toolrecipients_imp/" + client + "/zmm_toolrecipients_imp/zmm_toolrecipients_imp"; + bb.writeLog("ZMM_MATERIALDATA_MAINTAIN_Action-wsdl:" + wsdl); + URL wsdlUrl = new URL(wsdl); + bb.writeLog("START-SAP"); + + ZMM_TOOLRECIPIENTS_IMP_PortType ZMM_TOOLRECIPIENTS_IMP_PortType = new ZMM_TOOLRECIPIENTS_IMP_ServiceLocator().getZMM_TOOLRECIPIENTS_IMP(wsdlUrl); + String dataXml = new Gjly().GjlyXml(requestid,billtable) ; + String SAPBackXml = ZMM_TOOLRECIPIENTS_IMP_PortType.ZMM_TOOLRECIPIENTS_IMP(dataXml); + bb.writeLog("SAP的返回结果是:" + SAPBackXml); + Map sapBackMap = new DealXml().XmlResultMap(SAPBackXml); + bb.writeLog("step6---"+sapBackMap); + String type = sapBackMap.get("TYPE").toString(); + String message = sapBackMap.get("MESSAGE").toString(); + message = message.contains("'")?message.replace("'","''"):message; + bb.writeLog("解析后,type:"+type+";message:"+message); + + sql = "UPDATE "+billtable+" SET TYPE='"+type+"',MESSAGE='"+message+"' WHERE requestId="+requestid; + boolean isTrue = rs.executeUpdate(sql); + + if(isTrue){ + if(!"S".equals(type)){ + requestInfo.getRequestManager().setMessageid("1000"); + requestInfo.getRequestManager().setMessagecontent("SAP接口返回错误"); + return Action.FAILURE_AND_CONTINUE; + } + }else{ + requestInfo.getRequestManager().setMessageid("1000"); + requestInfo.getRequestManager().setMessagecontent("更新接口返回数据异常"); + return Action.FAILURE_AND_CONTINUE; + } + }else{ + requestInfo.getRequestManager().setMessageid("1000"); + requestInfo.getRequestManager().setMessagecontent("client获取值为空"); + return Action.FAILURE_AND_CONTINUE; + } + } catch (Exception e) { + e.printStackTrace(); + requestInfo.getRequestManager().setMessageid("1000"); + requestInfo.getRequestManager().setMessagecontent("接口执行异常"); + return Action.FAILURE_AND_CONTINUE; + } + return Action.SUCCESS; + } +} diff --git a/src/com/api/ld/web/GyszsjAction.java b/src/com/api/ld/web/GyszsjAction.java new file mode 100755 index 0000000..5441f6a --- /dev/null +++ b/src/com/api/ld/web/GyszsjAction.java @@ -0,0 +1,97 @@ +package com.api.ld.web; + +import com.engine.ld.functions.sap.gyszsj.ZMM_VENDORDATA_MAINTAIN_PortType; +import com.engine.ld.functions.sap.gyszsj.ZMM_VENDORDATA_MAINTAIN_ServiceLocator; +import com.engine.ld.optimize.Gyszsj; +import com.engine.ld.utils.DealXml; +import com.weaver.general.BaseBean; +import org.apache.commons.lang3.StringUtils; +import weaver.conn.RecordSet; +import weaver.general.Util; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.RequestInfo; + +import java.net.URL; +import java.util.Map; + +/** + * @author ZhangLei + * @date 2021/7/1 + * 供应商主数据 + * 将数据传给SAP接口并接收其返回的参数 + */ +public class GyszsjAction implements Action { + public static final BaseBean bb = new BaseBean(); + + @Override + public String execute(RequestInfo requestInfo) { + bb.writeLog("step0---------------"); + bb.writeLog("获取的requestID为:"+requestInfo.getRequestid()); + String requestid = requestInfo.getRequestid(); + String billtable = requestInfo.getRequestManager().getBillTableName(); + + Gyszsj gyszsj = new Gyszsj(); + RecordSet rs = new RecordSet(); + + try { + + String saphost = bb.getPropValue("CGDD_WORKFLOW","SAPHOST"); + bb.writeLog("ZMM_MATERIALDATA_MAINTAIN_Action-saphost:"+saphost); + String client = "" ; + String sql =" SELECT id,client FROM " + billtable + " WHERE REQUESTID=" + requestid; + rs.execute(sql); + if (rs.next()){ + client = Util.null2String(rs.getString("client")); + } + + if(StringUtils.isNotBlank(client)){ + bb.writeLog("ZMM_MATERIALDATA_MAINTAIN_Action-client:"+client); + + //http://lemprd.lemtech.cn:8000/sap/bc/srt/rfc/sap/zmm_vendordata_maintain/300/zmm_vendordata_maintain/zmm_vendordata_maintain + String wsdl = saphost + "/sap/bc/srt/rfc/sap/zmm_vendordata_maintain/" + client + "/zmm_vendordata_maintain/zmm_vendordata_maintain"; + bb.writeLog("ZMM_MATERIALDATA_MAINTAIN_Action-wsdl:" + wsdl); + URL wsdlUrl = new URL(wsdl); + bb.writeLog("START-SAP"); + + ZMM_VENDORDATA_MAINTAIN_PortType ZMM_VENDORDATA_MAINTAIN_PortType = new ZMM_VENDORDATA_MAINTAIN_ServiceLocator().getZMM_VENDORDATA_MAINTAIN(wsdlUrl); + String dataXml = gyszsj.createGyszsj(requestid,billtable) ; + String SAPBackXml = ZMM_VENDORDATA_MAINTAIN_PortType.ZMM_VENDORDATA_MAINTAIN(dataXml); + + bb.writeLog("SAP的返回结果是:"+SAPBackXml); + Map sapBackMap = new DealXml().XmlResultMap(SAPBackXml); + bb.writeLog("sapBackMap解析xml的返回结果是"+sapBackMap); + String type = sapBackMap.get("TYPE").toString(); + String message = sapBackMap.get("MESSAGE").toString(); + message = message.contains("'")?message.replace("'","''"):message; + bb.writeLog("解析后,type:"+type+";message:"+message); + + sql = "UPDATE "+billtable+" SET TYPE='"+type+"',MESSAGE='"+message+"' WHERE requestId="+requestid; + boolean isTrue = rs.executeUpdate(sql); + if(isTrue){ + if ("E".equals(type)){ + bb.writeLog("SAP返回结果为E,其中Message为:"+message); + requestInfo.getRequestManager().setMessageid("1000"); + requestInfo.getRequestManager().setMessagecontent("SAP接口返回错误"); + return Action.FAILURE_AND_CONTINUE; + } + }else{ + requestInfo.getRequestManager().setMessageid("1000"); + requestInfo.getRequestManager().setMessagecontent("更新接口返回数据异常"); + return Action.FAILURE_AND_CONTINUE; + } + }else{ + requestInfo.getRequestManager().setMessageid("1000"); + requestInfo.getRequestManager().setMessagecontent("client获取值为空"); + return Action.FAILURE_AND_CONTINUE; + } + } catch (Exception e) { + e.printStackTrace(); + bb.writeLog("方法发生了错误,信息为:"+e); + + requestInfo.getRequestManager().setMessageid("1000"); + requestInfo.getRequestManager().setMessagecontent("接口执行异常"); + return Action.FAILURE_AND_CONTINUE; + } + return Action.SUCCESS ; + } +} diff --git a/src/com/api/ld/web/KhzsjAction.java b/src/com/api/ld/web/KhzsjAction.java new file mode 100755 index 0000000..ea2a6a2 --- /dev/null +++ b/src/com/api/ld/web/KhzsjAction.java @@ -0,0 +1,97 @@ +package com.api.ld.web; + +import com.engine.ld.functions.sap.khzsj.ZSD_CUSTOMERDATA_MAINTAIN_PortType; +import com.engine.ld.functions.sap.khzsj.ZSD_CUSTOMERDATA_MAINTAIN_ServiceLocator; +import com.engine.ld.optimize.Khzsj; +import com.engine.ld.utils.DealXml; +import com.weaver.general.BaseBean; +import org.apache.commons.lang3.StringUtils; +import weaver.conn.RecordSet; +import weaver.general.Util; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.RequestInfo; + +import java.net.URL; +import java.util.Map; + +/** + * @author ZhangLei + * @date 2021/6/30 + * 客户主数据 + * 将数据传给SAP接口并接收其返回的参数 + */ +public class KhzsjAction implements Action { + + private static final BaseBean bb = new BaseBean(); + + @Override + public String execute(RequestInfo requestInfo) { + bb.writeLog("Step0----------"); + String requestid = requestInfo.getRequestid(); + String billtable = requestInfo.getRequestManager().getBillTableName(); + Khzsj khzsj = new Khzsj(); + RecordSet rs = new RecordSet(); + try { + bb.writeLog("KhzsjAction"); + String saphost = bb.getPropValue("CGDD_WORKFLOW","SAPHOST"); + bb.writeLog("ZMM_MATERIALDATA_MAINTAIN_Action-saphost:"+saphost); + String client = "" ; + String sql =" SELECT id,client FROM " + billtable + " WHERE REQUESTID=" + requestid; + rs.execute(sql); + if (rs.next()){ + client = Util.null2String(rs.getString("client")); + } + bb.writeLog("ZMM_MATERIALDATA_MAINTAIN_Action-client:"+client); + if(StringUtils.isNotEmpty(client)){ + + // http://lemprd.lemtech.cn:8000/sap/bc/srt/rfc/sap/zsd_customerdata_maintain/300/zsd_customerdata_maintain/zsd_customerdata_maintain + + String wsdl = saphost+"/sap/bc/srt/rfc/sap/zsd_customerdata_maintain/"+client+"/zsd_customerdata_maintain/zsd_customerdata_maintain" ; + bb.writeLog("ZMM_MATERIALDATA_MAINTAIN_Action-wsdl:"+wsdl); + URL wsdlUrl = new URL(wsdl); + bb.writeLog("START-SAP"); + + ZSD_CUSTOMERDATA_MAINTAIN_PortType ZSD_CUSTOMERDATA_MAINTAIN_PortType = new ZSD_CUSTOMERDATA_MAINTAIN_ServiceLocator().getZSD_CUSTOMERDATA_MAINTAIN(wsdlUrl); + String dataXml = khzsj.create(requestid,billtable) ; + + String SAPBackXml = ZSD_CUSTOMERDATA_MAINTAIN_PortType.ZSD_CUSTOMERDATA_MAINTAIN(dataXml); + bb.writeLog("SAP的返回结果是:"+SAPBackXml); + Map sapBackMap = new DealXml().XmlResultMap(SAPBackXml); + bb.writeLog("sapBackMap解析xml的返回结果是"+sapBackMap); + + String type = sapBackMap.get("TYPE").toString(); + String message = sapBackMap.get("MESSAGE").toString(); + message = message.contains("'")?message.replace("'","''"):message; + bb.writeLog("type:"+type+";message:"+message); + + sql = "UPDATE "+billtable+" SET TYPE='"+type+"',MESSAGE='"+message+"' WHERE requestId="+requestid; + boolean isTrue = rs.executeUpdate(sql); + if(isTrue){ + if (!"S".equals(type)){ + requestInfo.getRequestManager().setMessageid("1000"); + requestInfo.getRequestManager().setMessagecontent("SAP接口返回错误"); + return Action.FAILURE_AND_CONTINUE; + } + }else{ + requestInfo.getRequestManager().setMessageid("1000"); + requestInfo.getRequestManager().setMessagecontent("更新SAP返回结果异常"); + return Action.FAILURE_AND_CONTINUE; + } + }else{ + requestInfo.getRequestManager().setMessageid("1000"); + requestInfo.getRequestManager().setMessagecontent("client获取值为空"); + return Action.FAILURE_AND_CONTINUE; + } + } catch (Exception e) { + e.printStackTrace(); + bb.writeLog("错误信息为:"+e); + + requestInfo.getRequestManager().setMessageid("1000"); + requestInfo.getRequestManager().setMessagecontent("接口执行异常"); + return Action.FAILURE_AND_CONTINUE; + + } + return Action.SUCCESS; + } + +} diff --git a/src/com/engine/ld/functions/sap/gjly/ZMM_TOOLRECIPIENTS_IMPProxy.java b/src/com/engine/ld/functions/sap/gjly/ZMM_TOOLRECIPIENTS_IMPProxy.java new file mode 100644 index 0000000..b2e8c61 --- /dev/null +++ b/src/com/engine/ld/functions/sap/gjly/ZMM_TOOLRECIPIENTS_IMPProxy.java @@ -0,0 +1,55 @@ +package com.engine.ld.functions.sap.gjly; + +public class ZMM_TOOLRECIPIENTS_IMPProxy implements ZMM_TOOLRECIPIENTS_IMP_PortType { + private String _endpoint = null; + private ZMM_TOOLRECIPIENTS_IMP_PortType zMM_TOOLRECIPIENTS_IMP_PortType = null; + + public ZMM_TOOLRECIPIENTS_IMPProxy() { + _initZMM_TOOLRECIPIENTS_IMPProxy(); + } + + public ZMM_TOOLRECIPIENTS_IMPProxy(String endpoint) { + _endpoint = endpoint; + _initZMM_TOOLRECIPIENTS_IMPProxy(); + } + + private void _initZMM_TOOLRECIPIENTS_IMPProxy() { + try { + zMM_TOOLRECIPIENTS_IMP_PortType = (new ZMM_TOOLRECIPIENTS_IMP_ServiceLocator()).getZMM_TOOLRECIPIENTS_IMP(); + if (zMM_TOOLRECIPIENTS_IMP_PortType != null) { + if (_endpoint != null) + ((javax.xml.rpc.Stub)zMM_TOOLRECIPIENTS_IMP_PortType)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint); + else + _endpoint = (String)((javax.xml.rpc.Stub)zMM_TOOLRECIPIENTS_IMP_PortType)._getProperty("javax.xml.rpc.service.endpoint.address"); + } + + } + catch (javax.xml.rpc.ServiceException serviceException) {} + } + + public String getEndpoint() { + return _endpoint; + } + + public void setEndpoint(String endpoint) { + _endpoint = endpoint; + if (zMM_TOOLRECIPIENTS_IMP_PortType != null) + ((javax.xml.rpc.Stub)zMM_TOOLRECIPIENTS_IMP_PortType)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint); + + } + + public ZMM_TOOLRECIPIENTS_IMP_PortType getZMM_TOOLRECIPIENTS_IMP_PortType() { + if (zMM_TOOLRECIPIENTS_IMP_PortType == null) + _initZMM_TOOLRECIPIENTS_IMPProxy(); + return zMM_TOOLRECIPIENTS_IMP_PortType; + } + + @Override + public String ZMM_TOOLRECIPIENTS_IMP(String i_DATA) throws java.rmi.RemoteException{ + if (zMM_TOOLRECIPIENTS_IMP_PortType == null) + _initZMM_TOOLRECIPIENTS_IMPProxy(); + return zMM_TOOLRECIPIENTS_IMP_PortType.ZMM_TOOLRECIPIENTS_IMP(i_DATA); + } + + +} diff --git a/src/com/engine/ld/functions/sap/gjly/ZMM_TOOLRECIPIENTS_IMP_BindingStub.java b/src/com/engine/ld/functions/sap/gjly/ZMM_TOOLRECIPIENTS_IMP_BindingStub.java new file mode 100644 index 0000000..e1fb090 --- /dev/null +++ b/src/com/engine/ld/functions/sap/gjly/ZMM_TOOLRECIPIENTS_IMP_BindingStub.java @@ -0,0 +1,176 @@ +/** + * ZMM_TOOLRECIPIENTS_IMP_BindingStub.java + * + * This file was auto-generated from WSDL + * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter. + */ + +package com.engine.ld.functions.sap.gjly; + +public class ZMM_TOOLRECIPIENTS_IMP_BindingStub extends org.apache.axis.client.Stub implements ZMM_TOOLRECIPIENTS_IMP_PortType { + private java.util.Vector cachedSerClasses = new java.util.Vector(); + private java.util.Vector cachedSerQNames = new java.util.Vector(); + private java.util.Vector cachedSerFactories = new java.util.Vector(); + private java.util.Vector cachedDeserFactories = new java.util.Vector(); + + static org.apache.axis.description.OperationDesc [] _operations; + + static { + _operations = new org.apache.axis.description.OperationDesc[1]; + _initOperationDesc1(); + } + + private static void _initOperationDesc1(){ + org.apache.axis.description.OperationDesc oper; + org.apache.axis.description.ParameterDesc param; + oper = new org.apache.axis.description.OperationDesc(); + oper.setName("ZMM_TOOLRECIPIENTS_IMP"); + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "I_DATA"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("urn:sap-com:document:sap:rfc:functions", "string"), String.class, false, false); + oper.addParameter(param); + oper.setReturnType(new javax.xml.namespace.QName("urn:sap-com:document:sap:rfc:functions", "string")); + oper.setReturnClass(String.class); + oper.setReturnQName(new javax.xml.namespace.QName("", "O_DATA")); + oper.setStyle(org.apache.axis.constants.Style.WRAPPED); + oper.setUse(org.apache.axis.constants.Use.LITERAL); + _operations[0] = oper; + + } + + public ZMM_TOOLRECIPIENTS_IMP_BindingStub() throws org.apache.axis.AxisFault { + this(null); + } + + public ZMM_TOOLRECIPIENTS_IMP_BindingStub(java.net.URL endpointURL, javax.xml.rpc.Service service) throws org.apache.axis.AxisFault { + this(service); + super.cachedEndpoint = endpointURL; + } + + public ZMM_TOOLRECIPIENTS_IMP_BindingStub(javax.xml.rpc.Service service) throws org.apache.axis.AxisFault { + if (service == null) { + super.service = new org.apache.axis.client.Service(); + } else { + super.service = service; + } + ((org.apache.axis.client.Service)super.service).setTypeMappingVersion("1.2"); + Class cls; + javax.xml.namespace.QName qName; + javax.xml.namespace.QName qName2; + Class beansf = org.apache.axis.encoding.ser.BeanSerializerFactory.class; + Class beandf = org.apache.axis.encoding.ser.BeanDeserializerFactory.class; + Class enumsf = org.apache.axis.encoding.ser.EnumSerializerFactory.class; + Class enumdf = org.apache.axis.encoding.ser.EnumDeserializerFactory.class; + Class arraysf = org.apache.axis.encoding.ser.ArraySerializerFactory.class; + Class arraydf = org.apache.axis.encoding.ser.ArrayDeserializerFactory.class; + Class simplesf = org.apache.axis.encoding.ser.SimpleSerializerFactory.class; + Class simpledf = org.apache.axis.encoding.ser.SimpleDeserializerFactory.class; + Class simplelistsf = org.apache.axis.encoding.ser.SimpleListSerializerFactory.class; + Class simplelistdf = org.apache.axis.encoding.ser.SimpleListDeserializerFactory.class; + qName = new javax.xml.namespace.QName("urn:sap-com:document:sap:rfc:functions", "string"); + cachedSerQNames.add(qName); + cls = String.class; + cachedSerClasses.add(cls); + cachedSerFactories.add(org.apache.axis.encoding.ser.BaseSerializerFactory.createFactory(org.apache.axis.encoding.ser.SimpleSerializerFactory.class, cls, qName)); + cachedDeserFactories.add(org.apache.axis.encoding.ser.BaseDeserializerFactory.createFactory(org.apache.axis.encoding.ser.SimpleDeserializerFactory.class, cls, qName)); + + } + + protected org.apache.axis.client.Call createCall() throws java.rmi.RemoteException { + try { + org.apache.axis.client.Call _call = super._createCall(); + if (super.maintainSessionSet) { + _call.setMaintainSession(super.maintainSession); + } + if (super.cachedUsername != null) { + _call.setUsername(super.cachedUsername); + } + if (super.cachedPassword != null) { + _call.setPassword(super.cachedPassword); + } + if (super.cachedEndpoint != null) { + _call.setTargetEndpointAddress(super.cachedEndpoint); + } + if (super.cachedTimeout != null) { + _call.setTimeout(super.cachedTimeout); + } + if (super.cachedPortName != null) { + _call.setPortName(super.cachedPortName); + } + java.util.Enumeration keys = super.cachedProperties.keys(); + while (keys.hasMoreElements()) { + String key = (String) keys.nextElement(); + _call.setProperty(key, super.cachedProperties.get(key)); + } + // All the type mapping information is registered + // when the first call is made. + // The type mapping information is actually registered in + // the TypeMappingRegistry of the service, which + // is the reason why registration is only needed for the first call. + synchronized (this) { + if (firstCall()) { + // must set encoding style before registering serializers + _call.setEncodingStyle(null); + for (int i = 0; i < cachedSerFactories.size(); ++i) { + Class cls = (Class) cachedSerClasses.get(i); + javax.xml.namespace.QName qName = + (javax.xml.namespace.QName) cachedSerQNames.get(i); + Object x = cachedSerFactories.get(i); + if (x instanceof Class) { + Class sf = (Class) + cachedSerFactories.get(i); + Class df = (Class) + cachedDeserFactories.get(i); + _call.registerTypeMapping(cls, qName, sf, df, false); + } + else if (x instanceof javax.xml.rpc.encoding.SerializerFactory) { + org.apache.axis.encoding.SerializerFactory sf = (org.apache.axis.encoding.SerializerFactory) + cachedSerFactories.get(i); + org.apache.axis.encoding.DeserializerFactory df = (org.apache.axis.encoding.DeserializerFactory) + cachedDeserFactories.get(i); + _call.registerTypeMapping(cls, qName, sf, df, false); + } + } + } + } + return _call; + } + catch (Throwable _t) { + throw new org.apache.axis.AxisFault("Failure trying to get the Call object", _t); + } + } + + @Override + public String ZMM_TOOLRECIPIENTS_IMP(String i_DATA) throws java.rmi.RemoteException { + if (super.cachedEndpoint == null) { + throw new org.apache.axis.NoEndPointException(); + } + org.apache.axis.client.Call _call = createCall(); + _call.setOperation(_operations[0]); + _call.setUseSOAPAction(true); + _call.setSOAPActionURI("urn:sap-com:document:sap:rfc:functions:ZMM_TOOLRECIPIENTS_IMP:ZMM_TOOLRECIPIENTS_IMPRequest"); + _call.setEncodingStyle(null); + _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE); + _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE); + _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS); + _call.setOperationName(new javax.xml.namespace.QName("urn:sap-com:document:sap:rfc:functions", "ZMM_TOOLRECIPIENTS_IMP")); + + setRequestHeaders(_call); + setAttachments(_call); + try { Object _resp = _call.invoke(new Object[] {i_DATA}); + + if (_resp instanceof java.rmi.RemoteException) { + throw (java.rmi.RemoteException)_resp; + } + else { + extractAttachments(_call); + try { + return (String) _resp; + } catch (Exception _exception) { + return (String) org.apache.axis.utils.JavaUtils.convert(_resp, String.class); + } + } + } catch (org.apache.axis.AxisFault axisFaultException) { + throw axisFaultException; +} + } + +} diff --git a/src/com/engine/ld/functions/sap/gjly/ZMM_TOOLRECIPIENTS_IMP_PortType.java b/src/com/engine/ld/functions/sap/gjly/ZMM_TOOLRECIPIENTS_IMP_PortType.java new file mode 100644 index 0000000..0426738 --- /dev/null +++ b/src/com/engine/ld/functions/sap/gjly/ZMM_TOOLRECIPIENTS_IMP_PortType.java @@ -0,0 +1,12 @@ +/** + * ZMM_TOOLRECIPIENTS_IMP_PortType.java + * + * This file was auto-generated from WSDL + * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter. + */ + +package com.engine.ld.functions.sap.gjly; + +public interface ZMM_TOOLRECIPIENTS_IMP_PortType extends java.rmi.Remote { + public String ZMM_TOOLRECIPIENTS_IMP(String i_DATA) throws java.rmi.RemoteException; +} diff --git a/src/com/engine/ld/functions/sap/gjly/ZMM_TOOLRECIPIENTS_IMP_Service.java b/src/com/engine/ld/functions/sap/gjly/ZMM_TOOLRECIPIENTS_IMP_Service.java new file mode 100644 index 0000000..70b0023 --- /dev/null +++ b/src/com/engine/ld/functions/sap/gjly/ZMM_TOOLRECIPIENTS_IMP_Service.java @@ -0,0 +1,16 @@ +/** + * ZMM_TOOLRECIPIENTS_IMP_Service.java + * + * This file was auto-generated from WSDL + * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter. + */ + +package com.engine.ld.functions.sap.gjly; + +public interface ZMM_TOOLRECIPIENTS_IMP_Service extends javax.xml.rpc.Service { + public String getZMM_TOOLRECIPIENTS_IMPAddress(); + + public ZMM_TOOLRECIPIENTS_IMP_PortType getZMM_TOOLRECIPIENTS_IMP() throws javax.xml.rpc.ServiceException; + + public ZMM_TOOLRECIPIENTS_IMP_PortType getZMM_TOOLRECIPIENTS_IMP(java.net.URL portAddress) throws javax.xml.rpc.ServiceException; +} diff --git a/src/com/engine/ld/functions/sap/gjly/ZMM_TOOLRECIPIENTS_IMP_ServiceLocator.java b/src/com/engine/ld/functions/sap/gjly/ZMM_TOOLRECIPIENTS_IMP_ServiceLocator.java new file mode 100644 index 0000000..bae7744 --- /dev/null +++ b/src/com/engine/ld/functions/sap/gjly/ZMM_TOOLRECIPIENTS_IMP_ServiceLocator.java @@ -0,0 +1,149 @@ +/** + * ZMM_TOOLRECIPIENTS_IMP_ServiceLocator.java + * + * This file was auto-generated from WSDL + * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter. + */ + +package com.engine.ld.functions.sap.gjly; + +public class ZMM_TOOLRECIPIENTS_IMP_ServiceLocator extends org.apache.axis.client.Service implements ZMM_TOOLRECIPIENTS_IMP_Service { + + public ZMM_TOOLRECIPIENTS_IMP_ServiceLocator() { + } + + + public ZMM_TOOLRECIPIENTS_IMP_ServiceLocator(org.apache.axis.EngineConfiguration config) { + super(config); + } + + public ZMM_TOOLRECIPIENTS_IMP_ServiceLocator(String wsdlLoc, javax.xml.namespace.QName sName) throws javax.xml.rpc.ServiceException { + super(wsdlLoc, sName); + } + + // Use to get a proxy class for ZMM_TOOLRECIPIENTS_IMP + private String ZMM_TOOLRECIPIENTS_IMP_address = "http://lemprd.lemtech.cn:8000/sap/bc/srt/rfc/sap/zmm_toolrecipients_imp/300/zmm_toolrecipients_imp/zmm_toolrecipients_imp"; + + @Override + public String getZMM_TOOLRECIPIENTS_IMPAddress() { + return ZMM_TOOLRECIPIENTS_IMP_address; + } + + // The WSDD service name defaults to the port name. + private String ZMM_TOOLRECIPIENTS_IMPWSDDServiceName = "ZMM_TOOLRECIPIENTS_IMP"; + + public String getZMM_TOOLRECIPIENTS_IMPWSDDServiceName() { + return ZMM_TOOLRECIPIENTS_IMPWSDDServiceName; + } + + public void setZMM_TOOLRECIPIENTS_IMPWSDDServiceName(String name) { + ZMM_TOOLRECIPIENTS_IMPWSDDServiceName = name; + } + + @Override + public ZMM_TOOLRECIPIENTS_IMP_PortType getZMM_TOOLRECIPIENTS_IMP() throws javax.xml.rpc.ServiceException { + java.net.URL endpoint; + try { + endpoint = new java.net.URL(ZMM_TOOLRECIPIENTS_IMP_address); + } + catch (java.net.MalformedURLException e) { + throw new javax.xml.rpc.ServiceException(e); + } + return getZMM_TOOLRECIPIENTS_IMP(endpoint); + } + + @Override + public ZMM_TOOLRECIPIENTS_IMP_PortType getZMM_TOOLRECIPIENTS_IMP(java.net.URL portAddress) throws javax.xml.rpc.ServiceException { + try { + ZMM_TOOLRECIPIENTS_IMP_BindingStub _stub = new ZMM_TOOLRECIPIENTS_IMP_BindingStub(portAddress, this); + _stub.setPortName(getZMM_TOOLRECIPIENTS_IMPWSDDServiceName()); + return _stub; + } + catch (org.apache.axis.AxisFault e) { + return null; + } + } + + public void setZMM_TOOLRECIPIENTS_IMPEndpointAddress(String address) { + ZMM_TOOLRECIPIENTS_IMP_address = address; + } + + /** + * For the given interface, get the stub implementation. + * If this service has no port for the given interface, + * then ServiceException is thrown. + */ + @Override + public java.rmi.Remote getPort(Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException { + try { + if (ZMM_TOOLRECIPIENTS_IMP_PortType.class.isAssignableFrom(serviceEndpointInterface)) { + ZMM_TOOLRECIPIENTS_IMP_BindingStub _stub = new ZMM_TOOLRECIPIENTS_IMP_BindingStub(new java.net.URL(ZMM_TOOLRECIPIENTS_IMP_address), this); + _stub.setPortName(getZMM_TOOLRECIPIENTS_IMPWSDDServiceName()); + return _stub; + } + } + catch (Throwable t) { + throw new javax.xml.rpc.ServiceException(t); + } + throw new javax.xml.rpc.ServiceException("There is no stub implementation for the interface: " + (serviceEndpointInterface == null ? "null" : serviceEndpointInterface.getName())); + } + + /** + * For the given interface, get the stub implementation. + * If this service has no port for the given interface, + * then ServiceException is thrown. + */ + @Override + public java.rmi.Remote getPort(javax.xml.namespace.QName portName, Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException { + if (portName == null) { + return getPort(serviceEndpointInterface); + } + String inputPortName = portName.getLocalPart(); + if ("ZMM_TOOLRECIPIENTS_IMP".equals(inputPortName)) { + return getZMM_TOOLRECIPIENTS_IMP(); + } + else { + java.rmi.Remote _stub = getPort(serviceEndpointInterface); + ((org.apache.axis.client.Stub) _stub).setPortName(portName); + return _stub; + } + } + + @Override + public javax.xml.namespace.QName getServiceName() { + return new javax.xml.namespace.QName("urn:sap-com:document:sap:rfc:functions", "ZMM_TOOLRECIPIENTS_IMP"); + } + + private java.util.HashSet ports = null; + + @Override + public java.util.Iterator getPorts() { + if (ports == null) { + ports = new java.util.HashSet(); + ports.add(new javax.xml.namespace.QName("urn:sap-com:document:sap:rfc:functions", "ZMM_TOOLRECIPIENTS_IMP")); + } + return ports.iterator(); + } + + /** + * Set the endpoint address for the specified port name. + */ + public void setEndpointAddress(String portName, String address) throws javax.xml.rpc.ServiceException { + +if ("ZMM_TOOLRECIPIENTS_IMP".equals(portName)) { + setZMM_TOOLRECIPIENTS_IMPEndpointAddress(address); + } + else +{ // Unknown Port Name + throw new javax.xml.rpc.ServiceException(" Cannot set Endpoint Address for Unknown Port" + portName); + } + } + + /** + * Set the endpoint address for the specified port name. + */ + public void setEndpointAddress(javax.xml.namespace.QName portName, String address) throws javax.xml.rpc.ServiceException { + setEndpointAddress(portName.getLocalPart(), address); + } + +} diff --git a/src/com/engine/ld/functions/sap/gyszsj/ZMM_VENDORDATA_MAINTAINProxy.java b/src/com/engine/ld/functions/sap/gyszsj/ZMM_VENDORDATA_MAINTAINProxy.java new file mode 100644 index 0000000..b6a508a --- /dev/null +++ b/src/com/engine/ld/functions/sap/gyszsj/ZMM_VENDORDATA_MAINTAINProxy.java @@ -0,0 +1,55 @@ +package com.engine.ld.functions.sap.gyszsj; + +public class ZMM_VENDORDATA_MAINTAINProxy implements ZMM_VENDORDATA_MAINTAIN_PortType { + private String _endpoint = null; + private ZMM_VENDORDATA_MAINTAIN_PortType zMM_VENDORDATA_MAINTAIN_PortType = null; + + public ZMM_VENDORDATA_MAINTAINProxy() { + _initZMM_VENDORDATA_MAINTAINProxy(); + } + + public ZMM_VENDORDATA_MAINTAINProxy(String endpoint) { + _endpoint = endpoint; + _initZMM_VENDORDATA_MAINTAINProxy(); + } + + private void _initZMM_VENDORDATA_MAINTAINProxy() { + try { + zMM_VENDORDATA_MAINTAIN_PortType = (new ZMM_VENDORDATA_MAINTAIN_ServiceLocator()).getZMM_VENDORDATA_MAINTAIN(); + if (zMM_VENDORDATA_MAINTAIN_PortType != null) { + if (_endpoint != null) + ((javax.xml.rpc.Stub)zMM_VENDORDATA_MAINTAIN_PortType)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint); + else + _endpoint = (String)((javax.xml.rpc.Stub)zMM_VENDORDATA_MAINTAIN_PortType)._getProperty("javax.xml.rpc.service.endpoint.address"); + } + + } + catch (javax.xml.rpc.ServiceException serviceException) {} + } + + public String getEndpoint() { + return _endpoint; + } + + public void setEndpoint(String endpoint) { + _endpoint = endpoint; + if (zMM_VENDORDATA_MAINTAIN_PortType != null) + ((javax.xml.rpc.Stub)zMM_VENDORDATA_MAINTAIN_PortType)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint); + + } + + public ZMM_VENDORDATA_MAINTAIN_PortType getZMM_VENDORDATA_MAINTAIN_PortType() { + if (zMM_VENDORDATA_MAINTAIN_PortType == null) + _initZMM_VENDORDATA_MAINTAINProxy(); + return zMM_VENDORDATA_MAINTAIN_PortType; + } + + @Override + public java.lang.String ZMM_VENDORDATA_MAINTAIN(java.lang.String i_DATA) throws java.rmi.RemoteException{ + if (zMM_VENDORDATA_MAINTAIN_PortType == null) + _initZMM_VENDORDATA_MAINTAINProxy(); + return zMM_VENDORDATA_MAINTAIN_PortType.ZMM_VENDORDATA_MAINTAIN(i_DATA); + } + + +} diff --git a/src/com/engine/ld/functions/sap/gyszsj/ZMM_VENDORDATA_MAINTAIN_BindingStub.java b/src/com/engine/ld/functions/sap/gyszsj/ZMM_VENDORDATA_MAINTAIN_BindingStub.java new file mode 100644 index 0000000..b274ef2 --- /dev/null +++ b/src/com/engine/ld/functions/sap/gyszsj/ZMM_VENDORDATA_MAINTAIN_BindingStub.java @@ -0,0 +1,175 @@ +/** + * ZMM_VENDORDATA_MAINTAIN_BindingStub.java + * + * This file was auto-generated from WSDL + * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter. + */ + +package com.engine.ld.functions.sap.gyszsj; + +public class ZMM_VENDORDATA_MAINTAIN_BindingStub extends org.apache.axis.client.Stub implements ZMM_VENDORDATA_MAINTAIN_PortType { + private java.util.Vector cachedSerClasses = new java.util.Vector(); + private java.util.Vector cachedSerQNames = new java.util.Vector(); + private java.util.Vector cachedSerFactories = new java.util.Vector(); + private java.util.Vector cachedDeserFactories = new java.util.Vector(); + + static org.apache.axis.description.OperationDesc [] _operations; + + static { + _operations = new org.apache.axis.description.OperationDesc[1]; + _initOperationDesc1(); + } + + private static void _initOperationDesc1(){ + org.apache.axis.description.OperationDesc oper; + org.apache.axis.description.ParameterDesc param; + oper = new org.apache.axis.description.OperationDesc(); + oper.setName("ZMM_VENDORDATA_MAINTAIN"); + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "I_DATA"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("urn:sap-com:document:sap:rfc:functions", "string"), java.lang.String.class, false, false); + oper.addParameter(param); + oper.setReturnType(new javax.xml.namespace.QName("urn:sap-com:document:sap:rfc:functions", "string")); + oper.setReturnClass(java.lang.String.class); + oper.setReturnQName(new javax.xml.namespace.QName("", "O_DATA")); + oper.setStyle(org.apache.axis.constants.Style.WRAPPED); + oper.setUse(org.apache.axis.constants.Use.LITERAL); + _operations[0] = oper; + + } + + public ZMM_VENDORDATA_MAINTAIN_BindingStub() throws org.apache.axis.AxisFault { + this(null); + } + + public ZMM_VENDORDATA_MAINTAIN_BindingStub(java.net.URL endpointURL, javax.xml.rpc.Service service) throws org.apache.axis.AxisFault { + this(service); + super.cachedEndpoint = endpointURL; + } + + public ZMM_VENDORDATA_MAINTAIN_BindingStub(javax.xml.rpc.Service service) throws org.apache.axis.AxisFault { + if (service == null) { + super.service = new org.apache.axis.client.Service(); + } else { + super.service = service; + } + ((org.apache.axis.client.Service)super.service).setTypeMappingVersion("1.2"); + java.lang.Class cls; + javax.xml.namespace.QName qName; + javax.xml.namespace.QName qName2; + java.lang.Class beansf = org.apache.axis.encoding.ser.BeanSerializerFactory.class; + java.lang.Class beandf = org.apache.axis.encoding.ser.BeanDeserializerFactory.class; + java.lang.Class enumsf = org.apache.axis.encoding.ser.EnumSerializerFactory.class; + java.lang.Class enumdf = org.apache.axis.encoding.ser.EnumDeserializerFactory.class; + java.lang.Class arraysf = org.apache.axis.encoding.ser.ArraySerializerFactory.class; + java.lang.Class arraydf = org.apache.axis.encoding.ser.ArrayDeserializerFactory.class; + java.lang.Class simplesf = org.apache.axis.encoding.ser.SimpleSerializerFactory.class; + java.lang.Class simpledf = org.apache.axis.encoding.ser.SimpleDeserializerFactory.class; + java.lang.Class simplelistsf = org.apache.axis.encoding.ser.SimpleListSerializerFactory.class; + java.lang.Class simplelistdf = org.apache.axis.encoding.ser.SimpleListDeserializerFactory.class; + qName = new javax.xml.namespace.QName("urn:sap-com:document:sap:rfc:functions", "string"); + cachedSerQNames.add(qName); + cls = java.lang.String.class; + cachedSerClasses.add(cls); + cachedSerFactories.add(org.apache.axis.encoding.ser.BaseSerializerFactory.createFactory(org.apache.axis.encoding.ser.SimpleSerializerFactory.class, cls, qName)); + cachedDeserFactories.add(org.apache.axis.encoding.ser.BaseDeserializerFactory.createFactory(org.apache.axis.encoding.ser.SimpleDeserializerFactory.class, cls, qName)); + + } + + protected org.apache.axis.client.Call createCall() throws java.rmi.RemoteException { + try { + org.apache.axis.client.Call _call = super._createCall(); + if (super.maintainSessionSet) { + _call.setMaintainSession(super.maintainSession); + } + if (super.cachedUsername != null) { + _call.setUsername(super.cachedUsername); + } + if (super.cachedPassword != null) { + _call.setPassword(super.cachedPassword); + } + if (super.cachedEndpoint != null) { + _call.setTargetEndpointAddress(super.cachedEndpoint); + } + if (super.cachedTimeout != null) { + _call.setTimeout(super.cachedTimeout); + } + if (super.cachedPortName != null) { + _call.setPortName(super.cachedPortName); + } + java.util.Enumeration keys = super.cachedProperties.keys(); + while (keys.hasMoreElements()) { + java.lang.String key = (java.lang.String) keys.nextElement(); + _call.setProperty(key, super.cachedProperties.get(key)); + } + // All the type mapping information is registered + // when the first call is made. + // The type mapping information is actually registered in + // the TypeMappingRegistry of the service, which + // is the reason why registration is only needed for the first call. + synchronized (this) { + if (firstCall()) { + // must set encoding style before registering serializers + _call.setEncodingStyle(null); + for (int i = 0; i < cachedSerFactories.size(); ++i) { + java.lang.Class cls = (java.lang.Class) cachedSerClasses.get(i); + javax.xml.namespace.QName qName = + (javax.xml.namespace.QName) cachedSerQNames.get(i); + java.lang.Object x = cachedSerFactories.get(i); + if (x instanceof Class) { + java.lang.Class sf = (java.lang.Class) + cachedSerFactories.get(i); + java.lang.Class df = (java.lang.Class) + cachedDeserFactories.get(i); + _call.registerTypeMapping(cls, qName, sf, df, false); + } + else if (x instanceof javax.xml.rpc.encoding.SerializerFactory) { + org.apache.axis.encoding.SerializerFactory sf = (org.apache.axis.encoding.SerializerFactory) + cachedSerFactories.get(i); + org.apache.axis.encoding.DeserializerFactory df = (org.apache.axis.encoding.DeserializerFactory) + cachedDeserFactories.get(i); + _call.registerTypeMapping(cls, qName, sf, df, false); + } + } + } + } + return _call; + } + catch (java.lang.Throwable _t) { + throw new org.apache.axis.AxisFault("Failure trying to get the Call object", _t); + } + } + + public java.lang.String ZMM_VENDORDATA_MAINTAIN(java.lang.String i_DATA) throws java.rmi.RemoteException { + if (super.cachedEndpoint == null) { + throw new org.apache.axis.NoEndPointException(); + } + org.apache.axis.client.Call _call = createCall(); + _call.setOperation(_operations[0]); + _call.setUseSOAPAction(true); + _call.setSOAPActionURI("urn:sap-com:document:sap:rfc:functions:ZMM_VENDORDATA_MAINTAIN:ZMM_VENDORDATA_MAINTAINRequest"); + _call.setEncodingStyle(null); + _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE); + _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE); + _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS); + _call.setOperationName(new javax.xml.namespace.QName("urn:sap-com:document:sap:rfc:functions", "ZMM_VENDORDATA_MAINTAIN")); + + setRequestHeaders(_call); + setAttachments(_call); + try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {i_DATA}); + + if (_resp instanceof java.rmi.RemoteException) { + throw (java.rmi.RemoteException)_resp; + } + else { + extractAttachments(_call); + try { + return (java.lang.String) _resp; + } catch (java.lang.Exception _exception) { + return (java.lang.String) org.apache.axis.utils.JavaUtils.convert(_resp, java.lang.String.class); + } + } + } catch (org.apache.axis.AxisFault axisFaultException) { + throw axisFaultException; +} + } + +} diff --git a/src/com/engine/ld/functions/sap/gyszsj/ZMM_VENDORDATA_MAINTAIN_PortType.java b/src/com/engine/ld/functions/sap/gyszsj/ZMM_VENDORDATA_MAINTAIN_PortType.java new file mode 100644 index 0000000..ba33bb2 --- /dev/null +++ b/src/com/engine/ld/functions/sap/gyszsj/ZMM_VENDORDATA_MAINTAIN_PortType.java @@ -0,0 +1,12 @@ +/** + * ZMM_VENDORDATA_MAINTAIN_PortType.java + * + * This file was auto-generated from WSDL + * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter. + */ + +package com.engine.ld.functions.sap.gyszsj; + +public interface ZMM_VENDORDATA_MAINTAIN_PortType extends java.rmi.Remote { + public java.lang.String ZMM_VENDORDATA_MAINTAIN(java.lang.String i_DATA) throws java.rmi.RemoteException; +} diff --git a/src/com/engine/ld/functions/sap/gyszsj/ZMM_VENDORDATA_MAINTAIN_Service.java b/src/com/engine/ld/functions/sap/gyszsj/ZMM_VENDORDATA_MAINTAIN_Service.java new file mode 100644 index 0000000..ce71ee5 --- /dev/null +++ b/src/com/engine/ld/functions/sap/gyszsj/ZMM_VENDORDATA_MAINTAIN_Service.java @@ -0,0 +1,16 @@ +/** + * ZMM_VENDORDATA_MAINTAIN_Service.java + * + * This file was auto-generated from WSDL + * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter. + */ + +package com.engine.ld.functions.sap.gyszsj; + +public interface ZMM_VENDORDATA_MAINTAIN_Service extends javax.xml.rpc.Service { + public java.lang.String getZMM_VENDORDATA_MAINTAINAddress(); + + public ZMM_VENDORDATA_MAINTAIN_PortType getZMM_VENDORDATA_MAINTAIN() throws javax.xml.rpc.ServiceException; + + public ZMM_VENDORDATA_MAINTAIN_PortType getZMM_VENDORDATA_MAINTAIN(java.net.URL portAddress) throws javax.xml.rpc.ServiceException; +} diff --git a/src/com/engine/ld/functions/sap/gyszsj/ZMM_VENDORDATA_MAINTAIN_ServiceLocator.java b/src/com/engine/ld/functions/sap/gyszsj/ZMM_VENDORDATA_MAINTAIN_ServiceLocator.java new file mode 100644 index 0000000..76bc185 --- /dev/null +++ b/src/com/engine/ld/functions/sap/gyszsj/ZMM_VENDORDATA_MAINTAIN_ServiceLocator.java @@ -0,0 +1,149 @@ +/** + * ZMM_VENDORDATA_MAINTAIN_ServiceLocator.java + * + * This file was auto-generated from WSDL + * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter. + */ + +package com.engine.ld.functions.sap.gyszsj; + +public class ZMM_VENDORDATA_MAINTAIN_ServiceLocator extends org.apache.axis.client.Service implements ZMM_VENDORDATA_MAINTAIN_Service { + + public ZMM_VENDORDATA_MAINTAIN_ServiceLocator() { + } + + + public ZMM_VENDORDATA_MAINTAIN_ServiceLocator(org.apache.axis.EngineConfiguration config) { + super(config); + } + + public ZMM_VENDORDATA_MAINTAIN_ServiceLocator(java.lang.String wsdlLoc, javax.xml.namespace.QName sName) throws javax.xml.rpc.ServiceException { + super(wsdlLoc, sName); + } + + // Use to get a proxy class for ZMM_VENDORDATA_MAINTAIN + private java.lang.String ZMM_VENDORDATA_MAINTAIN_address = "http://lemprd.lemtech.cn:8000/sap/bc/srt/rfc/sap/zmm_vendordata_maintain/300/zmm_vendordata_maintain/zmm_vendordata_maintain"; + + @Override + public java.lang.String getZMM_VENDORDATA_MAINTAINAddress() { + return ZMM_VENDORDATA_MAINTAIN_address; + } + + // The WSDD service name defaults to the port name. + private java.lang.String ZMM_VENDORDATA_MAINTAINWSDDServiceName = "ZMM_VENDORDATA_MAINTAIN"; + + public java.lang.String getZMM_VENDORDATA_MAINTAINWSDDServiceName() { + return ZMM_VENDORDATA_MAINTAINWSDDServiceName; + } + + public void setZMM_VENDORDATA_MAINTAINWSDDServiceName(java.lang.String name) { + ZMM_VENDORDATA_MAINTAINWSDDServiceName = name; + } + + @Override + public ZMM_VENDORDATA_MAINTAIN_PortType getZMM_VENDORDATA_MAINTAIN() throws javax.xml.rpc.ServiceException { + java.net.URL endpoint; + try { + endpoint = new java.net.URL(ZMM_VENDORDATA_MAINTAIN_address); + } + catch (java.net.MalformedURLException e) { + throw new javax.xml.rpc.ServiceException(e); + } + return getZMM_VENDORDATA_MAINTAIN(endpoint); + } + + @Override + public ZMM_VENDORDATA_MAINTAIN_PortType getZMM_VENDORDATA_MAINTAIN(java.net.URL portAddress) throws javax.xml.rpc.ServiceException { + try { + ZMM_VENDORDATA_MAINTAIN_BindingStub _stub = new ZMM_VENDORDATA_MAINTAIN_BindingStub(portAddress, this); + _stub.setPortName(getZMM_VENDORDATA_MAINTAINWSDDServiceName()); + return _stub; + } + catch (org.apache.axis.AxisFault e) { + return null; + } + } + + public void setZMM_VENDORDATA_MAINTAINEndpointAddress(java.lang.String address) { + ZMM_VENDORDATA_MAINTAIN_address = address; + } + + /** + * For the given interface, get the stub implementation. + * If this service has no port for the given interface, + * then ServiceException is thrown. + */ + @Override + public java.rmi.Remote getPort(Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException { + try { + if (ZMM_VENDORDATA_MAINTAIN_PortType.class.isAssignableFrom(serviceEndpointInterface)) { + ZMM_VENDORDATA_MAINTAIN_BindingStub _stub = new ZMM_VENDORDATA_MAINTAIN_BindingStub(new java.net.URL(ZMM_VENDORDATA_MAINTAIN_address), this); + _stub.setPortName(getZMM_VENDORDATA_MAINTAINWSDDServiceName()); + return _stub; + } + } + catch (java.lang.Throwable t) { + throw new javax.xml.rpc.ServiceException(t); + } + throw new javax.xml.rpc.ServiceException("There is no stub implementation for the interface: " + (serviceEndpointInterface == null ? "null" : serviceEndpointInterface.getName())); + } + + /** + * For the given interface, get the stub implementation. + * If this service has no port for the given interface, + * then ServiceException is thrown. + */ + @Override + public java.rmi.Remote getPort(javax.xml.namespace.QName portName, Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException { + if (portName == null) { + return getPort(serviceEndpointInterface); + } + java.lang.String inputPortName = portName.getLocalPart(); + if ("ZMM_VENDORDATA_MAINTAIN".equals(inputPortName)) { + return getZMM_VENDORDATA_MAINTAIN(); + } + else { + java.rmi.Remote _stub = getPort(serviceEndpointInterface); + ((org.apache.axis.client.Stub) _stub).setPortName(portName); + return _stub; + } + } + + @Override + public javax.xml.namespace.QName getServiceName() { + return new javax.xml.namespace.QName("urn:sap-com:document:sap:rfc:functions", "ZMM_VENDORDATA_MAINTAIN"); + } + + private java.util.HashSet ports = null; + + @Override + public java.util.Iterator getPorts() { + if (ports == null) { + ports = new java.util.HashSet(); + ports.add(new javax.xml.namespace.QName("urn:sap-com:document:sap:rfc:functions", "ZMM_VENDORDATA_MAINTAIN")); + } + return ports.iterator(); + } + + /** + * Set the endpoint address for the specified port name. + */ + public void setEndpointAddress(java.lang.String portName, java.lang.String address) throws javax.xml.rpc.ServiceException { + +if ("ZMM_VENDORDATA_MAINTAIN".equals(portName)) { + setZMM_VENDORDATA_MAINTAINEndpointAddress(address); + } + else +{ // Unknown Port Name + throw new javax.xml.rpc.ServiceException(" Cannot set Endpoint Address for Unknown Port" + portName); + } + } + + /** + * Set the endpoint address for the specified port name. + */ + public void setEndpointAddress(javax.xml.namespace.QName portName, java.lang.String address) throws javax.xml.rpc.ServiceException { + setEndpointAddress(portName.getLocalPart(), address); + } + +} diff --git a/src/com/engine/ld/functions/sap/khzsj/ZSD_CUSTOMERDATA_MAINTAINProxy.java b/src/com/engine/ld/functions/sap/khzsj/ZSD_CUSTOMERDATA_MAINTAINProxy.java new file mode 100644 index 0000000..73c1e9f --- /dev/null +++ b/src/com/engine/ld/functions/sap/khzsj/ZSD_CUSTOMERDATA_MAINTAINProxy.java @@ -0,0 +1,55 @@ +package com.engine.ld.functions.sap.khzsj; + +public class ZSD_CUSTOMERDATA_MAINTAINProxy implements ZSD_CUSTOMERDATA_MAINTAIN_PortType { + private String _endpoint = null; + private ZSD_CUSTOMERDATA_MAINTAIN_PortType zSD_CUSTOMERDATA_MAINTAIN_PortType = null; + + public ZSD_CUSTOMERDATA_MAINTAINProxy() { + _initZSD_CUSTOMERDATA_MAINTAINProxy(); + } + + public ZSD_CUSTOMERDATA_MAINTAINProxy(String endpoint) { + _endpoint = endpoint; + _initZSD_CUSTOMERDATA_MAINTAINProxy(); + } + + private void _initZSD_CUSTOMERDATA_MAINTAINProxy() { + try { + zSD_CUSTOMERDATA_MAINTAIN_PortType = (new ZSD_CUSTOMERDATA_MAINTAIN_ServiceLocator()).getZSD_CUSTOMERDATA_MAINTAIN(); + if (zSD_CUSTOMERDATA_MAINTAIN_PortType != null) { + if (_endpoint != null) + ((javax.xml.rpc.Stub)zSD_CUSTOMERDATA_MAINTAIN_PortType)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint); + else + _endpoint = (String)((javax.xml.rpc.Stub)zSD_CUSTOMERDATA_MAINTAIN_PortType)._getProperty("javax.xml.rpc.service.endpoint.address"); + } + + } + catch (javax.xml.rpc.ServiceException serviceException) {} + } + + public String getEndpoint() { + return _endpoint; + } + + public void setEndpoint(String endpoint) { + _endpoint = endpoint; + if (zSD_CUSTOMERDATA_MAINTAIN_PortType != null) + ((javax.xml.rpc.Stub)zSD_CUSTOMERDATA_MAINTAIN_PortType)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint); + + } + + public ZSD_CUSTOMERDATA_MAINTAIN_PortType getZSD_CUSTOMERDATA_MAINTAIN_PortType() { + if (zSD_CUSTOMERDATA_MAINTAIN_PortType == null) + _initZSD_CUSTOMERDATA_MAINTAINProxy(); + return zSD_CUSTOMERDATA_MAINTAIN_PortType; + } + + @Override + public String ZSD_CUSTOMERDATA_MAINTAIN(String i_DATA) throws java.rmi.RemoteException{ + if (zSD_CUSTOMERDATA_MAINTAIN_PortType == null) + _initZSD_CUSTOMERDATA_MAINTAINProxy(); + return zSD_CUSTOMERDATA_MAINTAIN_PortType.ZSD_CUSTOMERDATA_MAINTAIN(i_DATA); + } + + +} diff --git a/src/com/engine/ld/functions/sap/khzsj/ZSD_CUSTOMERDATA_MAINTAIN_BindingStub.java b/src/com/engine/ld/functions/sap/khzsj/ZSD_CUSTOMERDATA_MAINTAIN_BindingStub.java new file mode 100644 index 0000000..ca8d02b --- /dev/null +++ b/src/com/engine/ld/functions/sap/khzsj/ZSD_CUSTOMERDATA_MAINTAIN_BindingStub.java @@ -0,0 +1,176 @@ +/** + * ZSD_CUSTOMERDATA_MAINTAIN_BindingStub.java + * + * This file was auto-generated from WSDL + * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter. + */ + +package com.engine.ld.functions.sap.khzsj; + +public class ZSD_CUSTOMERDATA_MAINTAIN_BindingStub extends org.apache.axis.client.Stub implements ZSD_CUSTOMERDATA_MAINTAIN_PortType { + private java.util.Vector cachedSerClasses = new java.util.Vector(); + private java.util.Vector cachedSerQNames = new java.util.Vector(); + private java.util.Vector cachedSerFactories = new java.util.Vector(); + private java.util.Vector cachedDeserFactories = new java.util.Vector(); + + static org.apache.axis.description.OperationDesc [] _operations; + + static { + _operations = new org.apache.axis.description.OperationDesc[1]; + _initOperationDesc1(); + } + + private static void _initOperationDesc1(){ + org.apache.axis.description.OperationDesc oper; + org.apache.axis.description.ParameterDesc param; + oper = new org.apache.axis.description.OperationDesc(); + oper.setName("ZSD_CUSTOMERDATA_MAINTAIN"); + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "I_DATA"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("urn:sap-com:document:sap:rfc:functions", "string"), String.class, false, false); + oper.addParameter(param); + oper.setReturnType(new javax.xml.namespace.QName("urn:sap-com:document:sap:rfc:functions", "string")); + oper.setReturnClass(String.class); + oper.setReturnQName(new javax.xml.namespace.QName("", "O_DATA")); + oper.setStyle(org.apache.axis.constants.Style.WRAPPED); + oper.setUse(org.apache.axis.constants.Use.LITERAL); + _operations[0] = oper; + + } + + public ZSD_CUSTOMERDATA_MAINTAIN_BindingStub() throws org.apache.axis.AxisFault { + this(null); + } + + public ZSD_CUSTOMERDATA_MAINTAIN_BindingStub(java.net.URL endpointURL, javax.xml.rpc.Service service) throws org.apache.axis.AxisFault { + this(service); + super.cachedEndpoint = endpointURL; + } + + public ZSD_CUSTOMERDATA_MAINTAIN_BindingStub(javax.xml.rpc.Service service) throws org.apache.axis.AxisFault { + if (service == null) { + super.service = new org.apache.axis.client.Service(); + } else { + super.service = service; + } + ((org.apache.axis.client.Service)super.service).setTypeMappingVersion("1.2"); + Class cls; + javax.xml.namespace.QName qName; + javax.xml.namespace.QName qName2; + Class beansf = org.apache.axis.encoding.ser.BeanSerializerFactory.class; + Class beandf = org.apache.axis.encoding.ser.BeanDeserializerFactory.class; + Class enumsf = org.apache.axis.encoding.ser.EnumSerializerFactory.class; + Class enumdf = org.apache.axis.encoding.ser.EnumDeserializerFactory.class; + Class arraysf = org.apache.axis.encoding.ser.ArraySerializerFactory.class; + Class arraydf = org.apache.axis.encoding.ser.ArrayDeserializerFactory.class; + Class simplesf = org.apache.axis.encoding.ser.SimpleSerializerFactory.class; + Class simpledf = org.apache.axis.encoding.ser.SimpleDeserializerFactory.class; + Class simplelistsf = org.apache.axis.encoding.ser.SimpleListSerializerFactory.class; + Class simplelistdf = org.apache.axis.encoding.ser.SimpleListDeserializerFactory.class; + qName = new javax.xml.namespace.QName("urn:sap-com:document:sap:rfc:functions", "string"); + cachedSerQNames.add(qName); + cls = String.class; + cachedSerClasses.add(cls); + cachedSerFactories.add(org.apache.axis.encoding.ser.BaseSerializerFactory.createFactory(org.apache.axis.encoding.ser.SimpleSerializerFactory.class, cls, qName)); + cachedDeserFactories.add(org.apache.axis.encoding.ser.BaseDeserializerFactory.createFactory(org.apache.axis.encoding.ser.SimpleDeserializerFactory.class, cls, qName)); + + } + + protected org.apache.axis.client.Call createCall() throws java.rmi.RemoteException { + try { + org.apache.axis.client.Call _call = super._createCall(); + if (super.maintainSessionSet) { + _call.setMaintainSession(super.maintainSession); + } + if (super.cachedUsername != null) { + _call.setUsername(super.cachedUsername); + } + if (super.cachedPassword != null) { + _call.setPassword(super.cachedPassword); + } + if (super.cachedEndpoint != null) { + _call.setTargetEndpointAddress(super.cachedEndpoint); + } + if (super.cachedTimeout != null) { + _call.setTimeout(super.cachedTimeout); + } + if (super.cachedPortName != null) { + _call.setPortName(super.cachedPortName); + } + java.util.Enumeration keys = super.cachedProperties.keys(); + while (keys.hasMoreElements()) { + String key = (String) keys.nextElement(); + _call.setProperty(key, super.cachedProperties.get(key)); + } + // All the type mapping information is registered + // when the first call is made. + // The type mapping information is actually registered in + // the TypeMappingRegistry of the service, which + // is the reason why registration is only needed for the first call. + synchronized (this) { + if (firstCall()) { + // must set encoding style before registering serializers + _call.setEncodingStyle(null); + for (int i = 0; i < cachedSerFactories.size(); ++i) { + Class cls = (Class) cachedSerClasses.get(i); + javax.xml.namespace.QName qName = + (javax.xml.namespace.QName) cachedSerQNames.get(i); + Object x = cachedSerFactories.get(i); + if (x instanceof Class) { + Class sf = (Class) + cachedSerFactories.get(i); + Class df = (Class) + cachedDeserFactories.get(i); + _call.registerTypeMapping(cls, qName, sf, df, false); + } + else if (x instanceof javax.xml.rpc.encoding.SerializerFactory) { + org.apache.axis.encoding.SerializerFactory sf = (org.apache.axis.encoding.SerializerFactory) + cachedSerFactories.get(i); + org.apache.axis.encoding.DeserializerFactory df = (org.apache.axis.encoding.DeserializerFactory) + cachedDeserFactories.get(i); + _call.registerTypeMapping(cls, qName, sf, df, false); + } + } + } + } + return _call; + } + catch (Throwable _t) { + throw new org.apache.axis.AxisFault("Failure trying to get the Call object", _t); + } + } + + @Override + public String ZSD_CUSTOMERDATA_MAINTAIN(String i_DATA) throws java.rmi.RemoteException { + if (super.cachedEndpoint == null) { + throw new org.apache.axis.NoEndPointException(); + } + org.apache.axis.client.Call _call = createCall(); + _call.setOperation(_operations[0]); + _call.setUseSOAPAction(true); + _call.setSOAPActionURI("urn:sap-com:document:sap:rfc:functions:ZSD_CUSTOMERDATA_MAINTAIN:ZSD_CUSTOMERDATA_MAINTAINRequest"); + _call.setEncodingStyle(null); + _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE); + _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE); + _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS); + _call.setOperationName(new javax.xml.namespace.QName("urn:sap-com:document:sap:rfc:functions", "ZSD_CUSTOMERDATA_MAINTAIN")); + + setRequestHeaders(_call); + setAttachments(_call); + try { Object _resp = _call.invoke(new Object[] {i_DATA}); + + if (_resp instanceof java.rmi.RemoteException) { + throw (java.rmi.RemoteException)_resp; + } + else { + extractAttachments(_call); + try { + return (String) _resp; + } catch (Exception _exception) { + return (String) org.apache.axis.utils.JavaUtils.convert(_resp, String.class); + } + } + } catch (org.apache.axis.AxisFault axisFaultException) { + throw axisFaultException; +} + } + +} diff --git a/src/com/engine/ld/functions/sap/khzsj/ZSD_CUSTOMERDATA_MAINTAIN_PortType.java b/src/com/engine/ld/functions/sap/khzsj/ZSD_CUSTOMERDATA_MAINTAIN_PortType.java new file mode 100644 index 0000000..f02ab94 --- /dev/null +++ b/src/com/engine/ld/functions/sap/khzsj/ZSD_CUSTOMERDATA_MAINTAIN_PortType.java @@ -0,0 +1,12 @@ +/** + * ZSD_CUSTOMERDATA_MAINTAIN_PortType.java + * + * This file was auto-generated from WSDL + * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter. + */ + +package com.engine.ld.functions.sap.khzsj; + +public interface ZSD_CUSTOMERDATA_MAINTAIN_PortType extends java.rmi.Remote { + public String ZSD_CUSTOMERDATA_MAINTAIN(String i_DATA) throws java.rmi.RemoteException; +} diff --git a/src/com/engine/ld/functions/sap/khzsj/ZSD_CUSTOMERDATA_MAINTAIN_Service.java b/src/com/engine/ld/functions/sap/khzsj/ZSD_CUSTOMERDATA_MAINTAIN_Service.java new file mode 100644 index 0000000..dba5fdf --- /dev/null +++ b/src/com/engine/ld/functions/sap/khzsj/ZSD_CUSTOMERDATA_MAINTAIN_Service.java @@ -0,0 +1,16 @@ +/** + * ZSD_CUSTOMERDATA_MAINTAIN_Service.java + * + * This file was auto-generated from WSDL + * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter. + */ + +package com.engine.ld.functions.sap.khzsj; + +public interface ZSD_CUSTOMERDATA_MAINTAIN_Service extends javax.xml.rpc.Service { + public String getZSD_CUSTOMERDATA_MAINTAINAddress(); + + public ZSD_CUSTOMERDATA_MAINTAIN_PortType getZSD_CUSTOMERDATA_MAINTAIN() throws javax.xml.rpc.ServiceException; + + public ZSD_CUSTOMERDATA_MAINTAIN_PortType getZSD_CUSTOMERDATA_MAINTAIN(java.net.URL portAddress) throws javax.xml.rpc.ServiceException; +} diff --git a/src/com/engine/ld/functions/sap/khzsj/ZSD_CUSTOMERDATA_MAINTAIN_ServiceLocator.java b/src/com/engine/ld/functions/sap/khzsj/ZSD_CUSTOMERDATA_MAINTAIN_ServiceLocator.java new file mode 100644 index 0000000..9e736e4 --- /dev/null +++ b/src/com/engine/ld/functions/sap/khzsj/ZSD_CUSTOMERDATA_MAINTAIN_ServiceLocator.java @@ -0,0 +1,149 @@ +/** + * ZSD_CUSTOMERDATA_MAINTAIN_ServiceLocator.java + * + * This file was auto-generated from WSDL + * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter. + */ + +package com.engine.ld.functions.sap.khzsj; + +public class ZSD_CUSTOMERDATA_MAINTAIN_ServiceLocator extends org.apache.axis.client.Service implements ZSD_CUSTOMERDATA_MAINTAIN_Service { + + public ZSD_CUSTOMERDATA_MAINTAIN_ServiceLocator() { + } + + + public ZSD_CUSTOMERDATA_MAINTAIN_ServiceLocator(org.apache.axis.EngineConfiguration config) { + super(config); + } + + public ZSD_CUSTOMERDATA_MAINTAIN_ServiceLocator(String wsdlLoc, javax.xml.namespace.QName sName) throws javax.xml.rpc.ServiceException { + super(wsdlLoc, sName); + } + + // Use to get a proxy class for ZSD_CUSTOMERDATA_MAINTAIN + private String ZSD_CUSTOMERDATA_MAINTAIN_address = "http://lemprd.lemtech.cn:8000/sap/bc/srt/rfc/sap/zsd_customerdata_maintain/300/zsd_customerdata_maintain/zsd_customerdata_maintain"; + + @Override + public String getZSD_CUSTOMERDATA_MAINTAINAddress() { + return ZSD_CUSTOMERDATA_MAINTAIN_address; + } + + // The WSDD service name defaults to the port name. + private String ZSD_CUSTOMERDATA_MAINTAINWSDDServiceName = "ZSD_CUSTOMERDATA_MAINTAIN"; + + public String getZSD_CUSTOMERDATA_MAINTAINWSDDServiceName() { + return ZSD_CUSTOMERDATA_MAINTAINWSDDServiceName; + } + + public void setZSD_CUSTOMERDATA_MAINTAINWSDDServiceName(String name) { + ZSD_CUSTOMERDATA_MAINTAINWSDDServiceName = name; + } + + @Override + public ZSD_CUSTOMERDATA_MAINTAIN_PortType getZSD_CUSTOMERDATA_MAINTAIN() throws javax.xml.rpc.ServiceException { + java.net.URL endpoint; + try { + endpoint = new java.net.URL(ZSD_CUSTOMERDATA_MAINTAIN_address); + } + catch (java.net.MalformedURLException e) { + throw new javax.xml.rpc.ServiceException(e); + } + return getZSD_CUSTOMERDATA_MAINTAIN(endpoint); + } + + @Override + public ZSD_CUSTOMERDATA_MAINTAIN_PortType getZSD_CUSTOMERDATA_MAINTAIN(java.net.URL portAddress) throws javax.xml.rpc.ServiceException { + try { + ZSD_CUSTOMERDATA_MAINTAIN_BindingStub _stub = new ZSD_CUSTOMERDATA_MAINTAIN_BindingStub(portAddress, this); + _stub.setPortName(getZSD_CUSTOMERDATA_MAINTAINWSDDServiceName()); + return _stub; + } + catch (org.apache.axis.AxisFault e) { + return null; + } + } + + public void setZSD_CUSTOMERDATA_MAINTAINEndpointAddress(String address) { + ZSD_CUSTOMERDATA_MAINTAIN_address = address; + } + + /** + * For the given interface, get the stub implementation. + * If this service has no port for the given interface, + * then ServiceException is thrown. + */ + @Override + public java.rmi.Remote getPort(Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException { + try { + if (ZSD_CUSTOMERDATA_MAINTAIN_PortType.class.isAssignableFrom(serviceEndpointInterface)) { + ZSD_CUSTOMERDATA_MAINTAIN_BindingStub _stub = new ZSD_CUSTOMERDATA_MAINTAIN_BindingStub(new java.net.URL(ZSD_CUSTOMERDATA_MAINTAIN_address), this); + _stub.setPortName(getZSD_CUSTOMERDATA_MAINTAINWSDDServiceName()); + return _stub; + } + } + catch (Throwable t) { + throw new javax.xml.rpc.ServiceException(t); + } + throw new javax.xml.rpc.ServiceException("There is no stub implementation for the interface: " + (serviceEndpointInterface == null ? "null" : serviceEndpointInterface.getName())); + } + + /** + * For the given interface, get the stub implementation. + * If this service has no port for the given interface, + * then ServiceException is thrown. + */ + @Override + public java.rmi.Remote getPort(javax.xml.namespace.QName portName, Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException { + if (portName == null) { + return getPort(serviceEndpointInterface); + } + String inputPortName = portName.getLocalPart(); + if ("ZSD_CUSTOMERDATA_MAINTAIN".equals(inputPortName)) { + return getZSD_CUSTOMERDATA_MAINTAIN(); + } + else { + java.rmi.Remote _stub = getPort(serviceEndpointInterface); + ((org.apache.axis.client.Stub) _stub).setPortName(portName); + return _stub; + } + } + + @Override + public javax.xml.namespace.QName getServiceName() { + return new javax.xml.namespace.QName("urn:sap-com:document:sap:rfc:functions", "ZSD_CUSTOMERDATA_MAINTAIN"); + } + + private java.util.HashSet ports = null; + + @Override + public java.util.Iterator getPorts() { + if (ports == null) { + ports = new java.util.HashSet(); + ports.add(new javax.xml.namespace.QName("urn:sap-com:document:sap:rfc:functions", "ZSD_CUSTOMERDATA_MAINTAIN")); + } + return ports.iterator(); + } + + /** + * Set the endpoint address for the specified port name. + */ + public void setEndpointAddress(String portName, String address) throws javax.xml.rpc.ServiceException { + +if ("ZSD_CUSTOMERDATA_MAINTAIN".equals(portName)) { + setZSD_CUSTOMERDATA_MAINTAINEndpointAddress(address); + } + else +{ // Unknown Port Name + throw new javax.xml.rpc.ServiceException(" Cannot set Endpoint Address for Unknown Port" + portName); + } + } + + /** + * Set the endpoint address for the specified port name. + */ + public void setEndpointAddress(javax.xml.namespace.QName portName, String address) throws javax.xml.rpc.ServiceException { + setEndpointAddress(portName.getLocalPart(), address); + } + +} diff --git a/src/com/engine/ld/functions/sap/wlzsjnew/ZMM_MATERIALDATA_MAINTAINProxy.java b/src/com/engine/ld/functions/sap/wlzsjnew/ZMM_MATERIALDATA_MAINTAINProxy.java new file mode 100644 index 0000000..f64ce6b --- /dev/null +++ b/src/com/engine/ld/functions/sap/wlzsjnew/ZMM_MATERIALDATA_MAINTAINProxy.java @@ -0,0 +1,55 @@ +package com.engine.ld.functions.sap.wlzsjnew; + +public class ZMM_MATERIALDATA_MAINTAINProxy implements ZMM_MATERIALDATA_MAINTAIN_PortType { + private String _endpoint = null; + private ZMM_MATERIALDATA_MAINTAIN_PortType zMM_MATERIALDATA_MAINTAIN_PortType = null; + + public ZMM_MATERIALDATA_MAINTAINProxy() { + _initZMM_MATERIALDATA_MAINTAINProxy(); + } + + public ZMM_MATERIALDATA_MAINTAINProxy(String endpoint) { + _endpoint = endpoint; + _initZMM_MATERIALDATA_MAINTAINProxy(); + } + + private void _initZMM_MATERIALDATA_MAINTAINProxy() { + try { + zMM_MATERIALDATA_MAINTAIN_PortType = (new ZMM_MATERIALDATA_MAINTAIN_ServiceLocator()).getZMM_MATERIALDATA_MAINTAIN(); + if (zMM_MATERIALDATA_MAINTAIN_PortType != null) { + if (_endpoint != null) + ((javax.xml.rpc.Stub)zMM_MATERIALDATA_MAINTAIN_PortType)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint); + else + _endpoint = (String)((javax.xml.rpc.Stub)zMM_MATERIALDATA_MAINTAIN_PortType)._getProperty("javax.xml.rpc.service.endpoint.address"); + } + + } + catch (javax.xml.rpc.ServiceException serviceException) {} + } + + public String getEndpoint() { + return _endpoint; + } + + public void setEndpoint(String endpoint) { + _endpoint = endpoint; + if (zMM_MATERIALDATA_MAINTAIN_PortType != null) + ((javax.xml.rpc.Stub)zMM_MATERIALDATA_MAINTAIN_PortType)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint); + + } + + public ZMM_MATERIALDATA_MAINTAIN_PortType getZMM_MATERIALDATA_MAINTAIN_PortType() { + if (zMM_MATERIALDATA_MAINTAIN_PortType == null) + _initZMM_MATERIALDATA_MAINTAINProxy(); + return zMM_MATERIALDATA_MAINTAIN_PortType; + } + + @Override + public java.lang.String ZMM_MATERIALDATA_MAINTAIN(java.lang.String i_DATA) throws java.rmi.RemoteException{ + if (zMM_MATERIALDATA_MAINTAIN_PortType == null) + _initZMM_MATERIALDATA_MAINTAINProxy(); + return zMM_MATERIALDATA_MAINTAIN_PortType.ZMM_MATERIALDATA_MAINTAIN(i_DATA); + } + + +} diff --git a/src/com/engine/ld/functions/sap/wlzsjnew/ZMM_MATERIALDATA_MAINTAIN_BindingStub.java b/src/com/engine/ld/functions/sap/wlzsjnew/ZMM_MATERIALDATA_MAINTAIN_BindingStub.java new file mode 100644 index 0000000..0e3a302 --- /dev/null +++ b/src/com/engine/ld/functions/sap/wlzsjnew/ZMM_MATERIALDATA_MAINTAIN_BindingStub.java @@ -0,0 +1,176 @@ +/** + * ZMM_MATERIALDATA_MAINTAIN_BindingStub.java + * + * This file was auto-generated from WSDL + * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter. + */ + +package com.engine.ld.functions.sap.wlzsjnew; + +public class ZMM_MATERIALDATA_MAINTAIN_BindingStub extends org.apache.axis.client.Stub implements ZMM_MATERIALDATA_MAINTAIN_PortType { + private java.util.Vector cachedSerClasses = new java.util.Vector(); + private java.util.Vector cachedSerQNames = new java.util.Vector(); + private java.util.Vector cachedSerFactories = new java.util.Vector(); + private java.util.Vector cachedDeserFactories = new java.util.Vector(); + + static org.apache.axis.description.OperationDesc [] _operations; + + static { + _operations = new org.apache.axis.description.OperationDesc[1]; + _initOperationDesc1(); + } + + private static void _initOperationDesc1(){ + org.apache.axis.description.OperationDesc oper; + org.apache.axis.description.ParameterDesc param; + oper = new org.apache.axis.description.OperationDesc(); + oper.setName("ZMM_MATERIALDATA_MAINTAIN"); + param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "I_DATA"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("urn:sap-com:document:sap:rfc:functions", "string"), java.lang.String.class, false, false); + oper.addParameter(param); + oper.setReturnType(new javax.xml.namespace.QName("urn:sap-com:document:sap:rfc:functions", "string")); + oper.setReturnClass(java.lang.String.class); + oper.setReturnQName(new javax.xml.namespace.QName("", "O_DATA")); + oper.setStyle(org.apache.axis.constants.Style.WRAPPED); + oper.setUse(org.apache.axis.constants.Use.LITERAL); + _operations[0] = oper; + + } + + public ZMM_MATERIALDATA_MAINTAIN_BindingStub() throws org.apache.axis.AxisFault { + this(null); + } + + public ZMM_MATERIALDATA_MAINTAIN_BindingStub(java.net.URL endpointURL, javax.xml.rpc.Service service) throws org.apache.axis.AxisFault { + this(service); + super.cachedEndpoint = endpointURL; + } + + public ZMM_MATERIALDATA_MAINTAIN_BindingStub(javax.xml.rpc.Service service) throws org.apache.axis.AxisFault { + if (service == null) { + super.service = new org.apache.axis.client.Service(); + } else { + super.service = service; + } + ((org.apache.axis.client.Service)super.service).setTypeMappingVersion("1.2"); + java.lang.Class cls; + javax.xml.namespace.QName qName; + javax.xml.namespace.QName qName2; + java.lang.Class beansf = org.apache.axis.encoding.ser.BeanSerializerFactory.class; + java.lang.Class beandf = org.apache.axis.encoding.ser.BeanDeserializerFactory.class; + java.lang.Class enumsf = org.apache.axis.encoding.ser.EnumSerializerFactory.class; + java.lang.Class enumdf = org.apache.axis.encoding.ser.EnumDeserializerFactory.class; + java.lang.Class arraysf = org.apache.axis.encoding.ser.ArraySerializerFactory.class; + java.lang.Class arraydf = org.apache.axis.encoding.ser.ArrayDeserializerFactory.class; + java.lang.Class simplesf = org.apache.axis.encoding.ser.SimpleSerializerFactory.class; + java.lang.Class simpledf = org.apache.axis.encoding.ser.SimpleDeserializerFactory.class; + java.lang.Class simplelistsf = org.apache.axis.encoding.ser.SimpleListSerializerFactory.class; + java.lang.Class simplelistdf = org.apache.axis.encoding.ser.SimpleListDeserializerFactory.class; + qName = new javax.xml.namespace.QName("urn:sap-com:document:sap:rfc:functions", "string"); + cachedSerQNames.add(qName); + cls = java.lang.String.class; + cachedSerClasses.add(cls); + cachedSerFactories.add(org.apache.axis.encoding.ser.BaseSerializerFactory.createFactory(org.apache.axis.encoding.ser.SimpleSerializerFactory.class, cls, qName)); + cachedDeserFactories.add(org.apache.axis.encoding.ser.BaseDeserializerFactory.createFactory(org.apache.axis.encoding.ser.SimpleDeserializerFactory.class, cls, qName)); + + } + + protected org.apache.axis.client.Call createCall() throws java.rmi.RemoteException { + try { + org.apache.axis.client.Call _call = super._createCall(); + if (super.maintainSessionSet) { + _call.setMaintainSession(super.maintainSession); + } + if (super.cachedUsername != null) { + _call.setUsername(super.cachedUsername); + } + if (super.cachedPassword != null) { + _call.setPassword(super.cachedPassword); + } + if (super.cachedEndpoint != null) { + _call.setTargetEndpointAddress(super.cachedEndpoint); + } + if (super.cachedTimeout != null) { + _call.setTimeout(super.cachedTimeout); + } + if (super.cachedPortName != null) { + _call.setPortName(super.cachedPortName); + } + java.util.Enumeration keys = super.cachedProperties.keys(); + while (keys.hasMoreElements()) { + java.lang.String key = (java.lang.String) keys.nextElement(); + _call.setProperty(key, super.cachedProperties.get(key)); + } + // All the type mapping information is registered + // when the first call is made. + // The type mapping information is actually registered in + // the TypeMappingRegistry of the service, which + // is the reason why registration is only needed for the first call. + synchronized (this) { + if (firstCall()) { + // must set encoding style before registering serializers + _call.setEncodingStyle(null); + for (int i = 0; i < cachedSerFactories.size(); ++i) { + java.lang.Class cls = (java.lang.Class) cachedSerClasses.get(i); + javax.xml.namespace.QName qName = + (javax.xml.namespace.QName) cachedSerQNames.get(i); + java.lang.Object x = cachedSerFactories.get(i); + if (x instanceof Class) { + java.lang.Class sf = (java.lang.Class) + cachedSerFactories.get(i); + java.lang.Class df = (java.lang.Class) + cachedDeserFactories.get(i); + _call.registerTypeMapping(cls, qName, sf, df, false); + } + else if (x instanceof javax.xml.rpc.encoding.SerializerFactory) { + org.apache.axis.encoding.SerializerFactory sf = (org.apache.axis.encoding.SerializerFactory) + cachedSerFactories.get(i); + org.apache.axis.encoding.DeserializerFactory df = (org.apache.axis.encoding.DeserializerFactory) + cachedDeserFactories.get(i); + _call.registerTypeMapping(cls, qName, sf, df, false); + } + } + } + } + return _call; + } + catch (java.lang.Throwable _t) { + throw new org.apache.axis.AxisFault("Failure trying to get the Call object", _t); + } + } + + @Override + public java.lang.String ZMM_MATERIALDATA_MAINTAIN(java.lang.String i_DATA) throws java.rmi.RemoteException { + if (super.cachedEndpoint == null) { + throw new org.apache.axis.NoEndPointException(); + } + org.apache.axis.client.Call _call = createCall(); + _call.setOperation(_operations[0]); + _call.setUseSOAPAction(true); + _call.setSOAPActionURI("urn:sap-com:document:sap:rfc:functions:ZMM_MATERIALDATA_MAINTAIN:ZMM_MATERIALDATA_MAINTAINRequest"); + _call.setEncodingStyle(null); + _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE); + _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE); + _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS); + _call.setOperationName(new javax.xml.namespace.QName("urn:sap-com:document:sap:rfc:functions", "ZMM_MATERIALDATA_MAINTAIN")); + + setRequestHeaders(_call); + setAttachments(_call); + try { java.lang.Object _resp = _call.invoke(new java.lang.Object[] {i_DATA}); + + if (_resp instanceof java.rmi.RemoteException) { + throw (java.rmi.RemoteException)_resp; + } + else { + extractAttachments(_call); + try { + return (java.lang.String) _resp; + } catch (java.lang.Exception _exception) { + return (java.lang.String) org.apache.axis.utils.JavaUtils.convert(_resp, java.lang.String.class); + } + } + } catch (org.apache.axis.AxisFault axisFaultException) { + throw axisFaultException; +} + } + +} diff --git a/src/com/engine/ld/functions/sap/wlzsjnew/ZMM_MATERIALDATA_MAINTAIN_PortType.java b/src/com/engine/ld/functions/sap/wlzsjnew/ZMM_MATERIALDATA_MAINTAIN_PortType.java new file mode 100644 index 0000000..2495dbd --- /dev/null +++ b/src/com/engine/ld/functions/sap/wlzsjnew/ZMM_MATERIALDATA_MAINTAIN_PortType.java @@ -0,0 +1,12 @@ +/** + * ZMM_MATERIALDATA_MAINTAIN_PortType.java + * + * This file was auto-generated from WSDL + * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter. + */ + +package com.engine.ld.functions.sap.wlzsjnew; + +public interface ZMM_MATERIALDATA_MAINTAIN_PortType extends java.rmi.Remote { + public java.lang.String ZMM_MATERIALDATA_MAINTAIN(java.lang.String i_DATA) throws java.rmi.RemoteException; +} diff --git a/src/com/engine/ld/functions/sap/wlzsjnew/ZMM_MATERIALDATA_MAINTAIN_Service.java b/src/com/engine/ld/functions/sap/wlzsjnew/ZMM_MATERIALDATA_MAINTAIN_Service.java new file mode 100644 index 0000000..3f3a8c6 --- /dev/null +++ b/src/com/engine/ld/functions/sap/wlzsjnew/ZMM_MATERIALDATA_MAINTAIN_Service.java @@ -0,0 +1,16 @@ +/** + * ZMM_MATERIALDATA_MAINTAIN_Service.java + * + * This file was auto-generated from WSDL + * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter. + */ + +package com.engine.ld.functions.sap.wlzsjnew; + +public interface ZMM_MATERIALDATA_MAINTAIN_Service extends javax.xml.rpc.Service { + public java.lang.String getZMM_MATERIALDATA_MAINTAINAddress(); + + public ZMM_MATERIALDATA_MAINTAIN_PortType getZMM_MATERIALDATA_MAINTAIN() throws javax.xml.rpc.ServiceException; + + public ZMM_MATERIALDATA_MAINTAIN_PortType getZMM_MATERIALDATA_MAINTAIN(java.net.URL portAddress) throws javax.xml.rpc.ServiceException; +} diff --git a/src/com/engine/ld/functions/sap/wlzsjnew/ZMM_MATERIALDATA_MAINTAIN_ServiceLocator.java b/src/com/engine/ld/functions/sap/wlzsjnew/ZMM_MATERIALDATA_MAINTAIN_ServiceLocator.java new file mode 100644 index 0000000..6fd246f --- /dev/null +++ b/src/com/engine/ld/functions/sap/wlzsjnew/ZMM_MATERIALDATA_MAINTAIN_ServiceLocator.java @@ -0,0 +1,149 @@ +/** + * ZMM_MATERIALDATA_MAINTAIN_ServiceLocator.java + * + * This file was auto-generated from WSDL + * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter. + */ + +package com.engine.ld.functions.sap.wlzsjnew; + +public class ZMM_MATERIALDATA_MAINTAIN_ServiceLocator extends org.apache.axis.client.Service implements ZMM_MATERIALDATA_MAINTAIN_Service { + + public ZMM_MATERIALDATA_MAINTAIN_ServiceLocator() { + } + + + public ZMM_MATERIALDATA_MAINTAIN_ServiceLocator(org.apache.axis.EngineConfiguration config) { + super(config); + } + + public ZMM_MATERIALDATA_MAINTAIN_ServiceLocator(java.lang.String wsdlLoc, javax.xml.namespace.QName sName) throws javax.xml.rpc.ServiceException { + super(wsdlLoc, sName); + } + + // Use to get a proxy class for ZMM_MATERIALDATA_MAINTAIN + private java.lang.String ZMM_MATERIALDATA_MAINTAIN_address = "http://lemprd.lemtech.cn:8000/sap/bc/srt/rfc/sap/zmm_materialdata_maintain/300/zmm_materialdata_maintain/zmm_materialdata_maintain"; + + @Override + public java.lang.String getZMM_MATERIALDATA_MAINTAINAddress() { + return ZMM_MATERIALDATA_MAINTAIN_address; + } + + // The WSDD service name defaults to the port name. + private java.lang.String ZMM_MATERIALDATA_MAINTAINWSDDServiceName = "ZMM_MATERIALDATA_MAINTAIN"; + + public java.lang.String getZMM_MATERIALDATA_MAINTAINWSDDServiceName() { + return ZMM_MATERIALDATA_MAINTAINWSDDServiceName; + } + + public void setZMM_MATERIALDATA_MAINTAINWSDDServiceName(java.lang.String name) { + ZMM_MATERIALDATA_MAINTAINWSDDServiceName = name; + } + + @Override + public ZMM_MATERIALDATA_MAINTAIN_PortType getZMM_MATERIALDATA_MAINTAIN() throws javax.xml.rpc.ServiceException { + java.net.URL endpoint; + try { + endpoint = new java.net.URL(ZMM_MATERIALDATA_MAINTAIN_address); + } + catch (java.net.MalformedURLException e) { + throw new javax.xml.rpc.ServiceException(e); + } + return getZMM_MATERIALDATA_MAINTAIN(endpoint); + } + + @Override + public ZMM_MATERIALDATA_MAINTAIN_PortType getZMM_MATERIALDATA_MAINTAIN(java.net.URL portAddress) throws javax.xml.rpc.ServiceException { + try { + ZMM_MATERIALDATA_MAINTAIN_BindingStub _stub = new ZMM_MATERIALDATA_MAINTAIN_BindingStub(portAddress, this); + _stub.setPortName(getZMM_MATERIALDATA_MAINTAINWSDDServiceName()); + return _stub; + } + catch (org.apache.axis.AxisFault e) { + return null; + } + } + + public void setZMM_MATERIALDATA_MAINTAINEndpointAddress(java.lang.String address) { + ZMM_MATERIALDATA_MAINTAIN_address = address; + } + + /** + * For the given interface, get the stub implementation. + * If this service has no port for the given interface, + * then ServiceException is thrown. + */ + @Override + public java.rmi.Remote getPort(Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException { + try { + if (ZMM_MATERIALDATA_MAINTAIN_PortType.class.isAssignableFrom(serviceEndpointInterface)) { + ZMM_MATERIALDATA_MAINTAIN_BindingStub _stub = new ZMM_MATERIALDATA_MAINTAIN_BindingStub(new java.net.URL(ZMM_MATERIALDATA_MAINTAIN_address), this); + _stub.setPortName(getZMM_MATERIALDATA_MAINTAINWSDDServiceName()); + return _stub; + } + } + catch (java.lang.Throwable t) { + throw new javax.xml.rpc.ServiceException(t); + } + throw new javax.xml.rpc.ServiceException("There is no stub implementation for the interface: " + (serviceEndpointInterface == null ? "null" : serviceEndpointInterface.getName())); + } + + /** + * For the given interface, get the stub implementation. + * If this service has no port for the given interface, + * then ServiceException is thrown. + */ + @Override + public java.rmi.Remote getPort(javax.xml.namespace.QName portName, Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException { + if (portName == null) { + return getPort(serviceEndpointInterface); + } + java.lang.String inputPortName = portName.getLocalPart(); + if ("ZMM_MATERIALDATA_MAINTAIN".equals(inputPortName)) { + return getZMM_MATERIALDATA_MAINTAIN(); + } + else { + java.rmi.Remote _stub = getPort(serviceEndpointInterface); + ((org.apache.axis.client.Stub) _stub).setPortName(portName); + return _stub; + } + } + + @Override + public javax.xml.namespace.QName getServiceName() { + return new javax.xml.namespace.QName("urn:sap-com:document:sap:rfc:functions", "ZMM_MATERIALDATA_MAINTAIN"); + } + + private java.util.HashSet ports = null; + + @Override + public java.util.Iterator getPorts() { + if (ports == null) { + ports = new java.util.HashSet(); + ports.add(new javax.xml.namespace.QName("urn:sap-com:document:sap:rfc:functions", "ZMM_MATERIALDATA_MAINTAIN")); + } + return ports.iterator(); + } + + /** + * Set the endpoint address for the specified port name. + */ + public void setEndpointAddress(java.lang.String portName, java.lang.String address) throws javax.xml.rpc.ServiceException { + +if ("ZMM_MATERIALDATA_MAINTAIN".equals(portName)) { + setZMM_MATERIALDATA_MAINTAINEndpointAddress(address); + } + else +{ // Unknown Port Name + throw new javax.xml.rpc.ServiceException(" Cannot set Endpoint Address for Unknown Port" + portName); + } + } + + /** + * Set the endpoint address for the specified port name. + */ + public void setEndpointAddress(javax.xml.namespace.QName portName, java.lang.String address) throws javax.xml.rpc.ServiceException { + setEndpointAddress(portName.getLocalPart(), address); + } + +} diff --git a/src/com/engine/ld/optimize/Gjly.java b/src/com/engine/ld/optimize/Gjly.java new file mode 100755 index 0000000..2eff765 --- /dev/null +++ b/src/com/engine/ld/optimize/Gjly.java @@ -0,0 +1,127 @@ +package com.engine.ld.optimize; + +import weaver.general.BaseBean; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import weaver.conn.RecordSet; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; +import java.io.ByteArrayOutputStream; + +/** + * @author ZhangLei + * @date 2021/6/24 + * 工具领用 + */ +public class Gjly { + private static final BaseBean bb = new BaseBean(); + + public String GjlyXml(String requestid,String billtable){ + bb.writeLog("进入工具领用XML组装"); + + String mainSql = "select BLDAT,BUDAT,BKTXT,ACTION,BWART,REFDOC from "+billtable+" where requestid = "+requestid; + String dtSql = "select MATNR,ERFMG,WERKS,ERFME,LGORT,CHARG,KOSTL,AUFNR,SGTXT" + + " from "+billtable+" a left join "+billtable+"_dt1 b " + + "on a.id = b.mainid where requestid = "+requestid; + bb.writeLog("删除的SQL是:"+dtSql); +// 从数据库中获取数据并组装成XML + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + DocumentBuilder builder = null; + try { + builder = factory.newDocumentBuilder(); + } catch (ParserConfigurationException e) { + e.printStackTrace(); + } + Document document = builder.newDocument(); + Element root = document.createElement("ROOT"); + document.appendChild(root); +// 组装HEAD节点 + Element head = document.createElement("HEAD"); + RecordSet mainRs = new RecordSet(); + mainRs.executeQuery(mainSql); + if (mainRs.next()){ + appendChild(document,head,"BLDAT",mainRs.getString("BLDAT")); + appendChild(document,head,"BUDAT",mainRs.getString("BUDAT")); + appendChild(document,head,"BKTXT",mainRs.getString("BKTXT")); + appendChild(document,head,"ACTION",mainRs.getString("ACTION")); + appendChild(document,head,"BWART",mainRs.getString("BWART")); + appendChild(document,head,"REFDOC",mainRs.getString("REFDOC")); + } + root.appendChild(head); +// 组装ITEM节点 + Element item = document.createElement("ITEM"); + RecordSet dtRs = new RecordSet(); + dtRs.executeQuery(dtSql); + while (dtRs.next()){ +// bb.writeLog("dtRs.next()的结果是true"); +// bb.writeLog("where情况下获取MATNR节点的值:"+dtRs.getString("MATNR")); + appendChild(document,item,"MATNR",dtRs.getString("MATNR")); + appendChild(document,item,"ERFMG",dtRs.getString("ERFMG")); + appendChild(document,item,"WERKS",dtRs.getString("WERKS")); + appendChild(document,item,"ERFME",dtRs.getString("ERFME")); + appendChild(document,item,"LGORT",dtRs.getString("LGORT")); + appendChild(document,item,"CHARG",dtRs.getString("CHARG")); + appendChild(document,item,"KOSTL",dtRs.getString("KOSTL")); + appendChild(document,item,"AUFNR",dtRs.getString("AUFNR")); + appendChild(document,item,"SGTXT",dtRs.getString("SGTXT")); + } + root.appendChild(item); + bb.writeLog("传给SAP的参数是:"+createXmlToString(document)); + + return createXmlToString(document); + } + + /** + * document对象中添加子项 + * + * @param document ducument对象 + * @param parent 父元素 + * @param key 元素标签 + * @param value 元素content值 + */ + private static void appendChild(Document document, Element parent, String key, String value) { + Element child = document.createElement(key); + if (child != null) { + child.setTextContent(value); + } + parent.appendChild(child); + } + + /** + * 生成xml字符串 + * + * @param document Document树对象 + * @return 整个xml字符串 + */ + private static String createXmlToString(Document document) { + String xmlString = null; + try { + // 创建TransformerFactory工厂对象 + TransformerFactory transFactory = TransformerFactory.newInstance(); + // 通过工厂对象, 创建Transformer对象 + Transformer transformer = transFactory.newTransformer(); + transformer.setOutputProperty(OutputKeys.ENCODING, "GBK"); + //使Xml自动换行, 并自动缩进 + transformer.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC, ""); + transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); //中间的参数网址固定写法(这里还没搞懂) + transformer.setOutputProperty(OutputKeys.INDENT, "yes"); //是否设置缩进(indent: yes|no) + // 创建DOMSource对象并将Document加载到其中 + DOMSource domSource = new DOMSource(document); + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + // 使用Transformer的transform()方法将DOM树转换成XML + transformer.transform(domSource, new StreamResult(bos)); + xmlString = bos.toString(); + } catch (TransformerException e) { + e.printStackTrace(); + } + return xmlString; + } +} diff --git a/src/com/engine/ld/optimize/Gyszsj.java b/src/com/engine/ld/optimize/Gyszsj.java new file mode 100644 index 0000000..c1b7f58 --- /dev/null +++ b/src/com/engine/ld/optimize/Gyszsj.java @@ -0,0 +1,288 @@ +package com.engine.ld.optimize; + +import com.engine.core.exception.ECException; +import com.weaver.general.BaseBean; +import com.weaver.general.Util; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; +import weaver.conn.RecordSet; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.StringReader; +import java.util.HashMap; +import java.util.Map; + +/** + * @author ZhangLei + * @date 2021/6/25 + */ +public class Gyszsj { + private static final BaseBean bb = new BaseBean(); +// 新建 + public String createGyszsj(String requestid,String tableName) throws ParserConfigurationException { + bb.writeLog("供应商主数据新建流程"); + + String[] groupParams = {"KTOKK","LIFNR","TITLE","NAME1","NAME2","NAME3","NAME4","SORT1", + "SORT2","STRAS","HOUSE_NUM1","POST_CODE1","CITY1","COUNTRY","REGION","TIME_ZONE", + "LANGU","TELF1","TELF2","FAX_NUMBER","SMTP_ADDR","BANKS","BANKL","BANKA","BANKN","IBAN", + "ZFLAG","LOEVM","KUNNR"}; + + String[] companyParams = {"LIFNRGSDMC","BUKRS","AKONT","ZUAWA","ZTERM","TOGRU","REPRF","ZWELS","TOGRR", + "LOEVMGSDM","ZFLAGGSDM"}; +// 注意LOEVMGSDM,ZFLAGGSDM字段在转xml时字段需要分别存为LOEVM,ZFLAG + + String[] saleParams = {"LIFNRCGZZC","EKORG","WAERS","ZTERM","INCO1","INCO2","VERKF","XTELF1","WEBRE", + "BOLRE","EKGRP","LOEVMCGZZ","ZFLAGCGZZ"}; +// 注意XTELF1、LOEVMCGZZ、ZFLAGCGZZ转xml时分别存为TELF1、LOEVM、ZFLAG + +// 查询GROUP子节点所需要的数据 + Map selectGroup = select(groupParams, tableName, requestid); +// 查询Company子节点所需要的数据 + Map selectCompany = select(companyParams, tableName, requestid); +// 查询sale自己的点所需要的数据 + Map selectSale = select(saleParams, tableName, requestid); + +// 组装XMl并返回 + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + DocumentBuilder builder = factory.newDocumentBuilder(); + Document document = builder.newDocument(); + Element root = document.createElement("ROOT"); + document.appendChild(root); +// 创建GROUP节点以及子节点,并赋值 + Element group = document.createElement("GROUP"); + for (String groupParam : groupParams) { + if ("LANGU".equals(groupParam)){ + appendChild(document,group,"LANGU", Util.null2String(selectGroup.get(groupParam).toString()).equals("ZH") ?"1":"2"); + }else { + appendChild(document,group,groupParam,Util.null2String(selectGroup.get(groupParam).toString())); + } + + } + root.appendChild(group); +// 创建COMPANY节点以及子节点并赋值 + Element company = document.createElement("COMPANY"); + for (String companyParam : companyParams) { + if ("LOEVMGSDM".equals(companyParam)){ + appendChild(document,company,"LOEVM",Util.null2String(selectCompany.get(companyParam).toString())); + }else if ("ZFLAGGSDM".equals(companyParam)){ + appendChild(document,company,"ZFLAG",Util.null2String(selectCompany.get(companyParam).toString())); + }else if ("REPRF".equals(companyParam)){ + appendChild(document,company,"REPRF","X"); + }else if ("LIFNRGSDMC".equals(companyParam)){ + appendChild(document,company,"LIFNR",Util.null2String(selectCompany.get(companyParam).toString())); + }else { + appendChild(document,company,companyParam,Util.null2String(selectCompany.get(companyParam).toString())); + } + } + root.appendChild(company); + +// 创建SALE节点以及子节点并赋值 + Element sale = document.createElement("SALE"); + for (String saleParam : saleParams) { +// XTELF1、LOEVMCGZZ、ZFLAGCGZZ转xml时分别存为TELF1、LOEVM、ZFLAG + if ("XTELF1".equals(saleParam)){ + appendChild(document,sale,"TELF1",Util.null2String(selectSale.get(saleParam).toString())); + }else if ("LOEVMCGZZ".equals(saleParam)){ + appendChild(document,sale,"LOEVM",Util.null2String(selectSale.get(saleParam).toString())); + }else if ("ZFLAGCGZZ".equals(saleParam)){ + if ("3".equals(selectSale.get(saleParam).toString())){ + appendChild(document,sale,"ZFLAG","2"); + }else { + appendChild(document,sale,"ZFLAG",Util.null2String(selectSale.get(saleParam).toString())); + } + }else if ("WEBRE".equals(saleParam)){ + appendChild(document,sale,"WEBRE","X"); + }else if ("LIFNRCGZZC".equals(saleParam)){ + appendChild(document,sale,"LIFNR",Util.null2String(selectSale.get(saleParam).toString())); + } + else { + appendChild(document,sale,saleParam,Util.null2String(selectSale.get(saleParam).toString())); + } + } + // WEBRE节点添加,默认X + + root.appendChild(sale); + + bb.writeLog("result: " + createXmlToString(document)); + + + return createXmlToString(document); + } +// 修改 + public void updateGyszsj(String requestid,String xmlResult,String billtable){ + bb.writeLog("请求返回的xmlResult:" + xmlResult); + String updateSql = "update "+billtable+" set TYPE = ?, MESSAGE = ? where requestid = ?"; + if(xmlResult == null || "".equals(xmlResult) || requestid == null || "".equals(requestid)) { + throw new ECException("参数不全"); + } + + xmlResult = trimXmlStr(xmlResult); + Document document; + try { + document = strToDocument(xmlResult); + } catch(Exception e) { + bb.writeLog("XML解析失败: " + e.getMessage()); + bb.writeLog("xmlResult: " + xmlResult); + throw new ECException("XML解析失败: " + e.getMessage()); + } + + Element root = document.getDocumentElement(); + NodeList typeNodeList = root.getElementsByTagName("TYPE"); + NodeList messageNodeList = root.getElementsByTagName("MESSAGE"); + + if(typeNodeList.getLength() > 0 && messageNodeList.getLength() > 0) { + String type = Util.null2String(typeNodeList.item(0).getTextContent()); + String message = Util.null2String(messageNodeList.item(0).getTextContent()); + bb.writeLog("type: " + type); + bb.writeLog("message : " + message); + RecordSet rs = new RecordSet(); + rs.executeUpdate(updateSql, type, message, requestid); + } else { + bb.writeLog("未获取到正常返回数据"); + bb.writeLog("xmlResult: " + xmlResult); + throw new ECException("未获取到正常返回数据"); + } + } + + + /* + * 入参: + * 1、String[]:记录要查哪些字段 + * 2、查询的表名 + * 3、where条件(requestId) + * 出参:Map:记录根据入参查询的结果 + * 以应对需要分组返回xml时的情况 + * */ + private static Map select(String[] params, String tableName, String selectWhere){ + Map resultMap = new HashMap<>(); +// 组装xml + StringBuilder sql = new StringBuilder("SELECT "); + for (int i = 0; i < params.length; i++) { + if (i == params.length-1){ + sql.append(params[i]).append(" from "); + }else if (!"REPRF".equals(params[i]) && !"WEBRE".equals(params[i])){ + sql.append(params[i]).append(','); + } + } + sql.append(tableName).append(" WHERE REQUESTID = ").append(selectWhere); + +// 查询 + RecordSet rs = new RecordSet(); + rs.executeQuery(sql.toString()); + if (rs.next()){ + for (String param : params) { + resultMap.put(param, Util.null2String(rs.getString(param))); + } + } + return resultMap; + } + + + /** + * xml固定头部 + */ + private static String xmlHeadStr() { + return "\n" + + "\t\n" + + " <_--5CTYPE_--3DSTRING>\n"; + } + + /** + * xml固定尾部 + */ + private static String xmlTailStr() { + return " \n" + + "\t\n" + + ""; + } + + /** + * 生成xml字符串 + * @param document Document树对象 + * @return 整个xml字符串 + */ + private static String createXmlToString(Document document){ + String xmlString = null; + try { + // 创建TransformerFactory工厂对象 + TransformerFactory transFactory = TransformerFactory.newInstance(); + // 通过工厂对象, 创建Transformer对象 + Transformer transformer = transFactory.newTransformer(); + transformer.setOutputProperty(OutputKeys.ENCODING, "GBK"); + //使Xml自动换行, 并自动缩进 + transformer.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC, ""); + transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); //中间的参数网址固定写法(这里还没搞懂) + transformer.setOutputProperty(OutputKeys.INDENT, "yes"); //是否设置缩进(indent: yes|no) + // 创建DOMSource对象并将Document加载到其中 + DOMSource domSource = new DOMSource(document); + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + // 使用Transformer的transform()方法将DOM树转换成XML + transformer.transform(domSource, new StreamResult(bos)); + xmlString = bos.toString(); + } catch (TransformerException e) { + e.printStackTrace(); + } + return xmlString; + } + + /** + * document对象中添加子项 + * @param document ducument对象 + * @param parent 父元素 + * @param key 元素标签 + * @param value 元素content值 + */ + private static void appendChild(Document document, Element parent, String key, String value) { + Element child = document.createElement(key); + if(child != null) { + child.setTextContent(value); + } + parent.appendChild(child); + } + + /** + * 去除<_--5CTYPE_--3DSTRING>之前部分,去除之后部分 + * @param xmlString xml字符串 + * @return 去除头尾部分的xml字符串 + */ + private static String trimXmlStr(String xmlString) { + if(!xmlString.contains("<_--5CTYPE_--3DSTRING>")) { + return xmlString; + } + int start = xmlString.indexOf("<_--5CTYPE_--3DSTRING>") + "<_--5CTYPE_--3DSTRING>".length(); + int end = xmlString.indexOf(""); + return xmlString.substring(start, end).trim(); + } + + /** + * 将字符串转为xmldom对象 + * @param xmlString xml字符串 + * @return dom对象 + * @throws ParserConfigurationException 创建document对象异常 + * @throws IOException IO异常 + * @throws SAXException 解析异常 + */ + private static Document strToDocument(String xmlString) throws ParserConfigurationException, IOException, SAXException { + + DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); + dbf.setNamespaceAware(true); + DocumentBuilder documentBuilder = dbf.newDocumentBuilder(); + return documentBuilder.parse( + new InputSource(new StringReader(xmlString))); + } + + +} diff --git a/src/com/engine/ld/optimize/Khzsj.java b/src/com/engine/ld/optimize/Khzsj.java new file mode 100755 index 0000000..53e5e28 --- /dev/null +++ b/src/com/engine/ld/optimize/Khzsj.java @@ -0,0 +1,316 @@ +package com.engine.ld.optimize; + +import com.engine.core.exception.ECException; +import com.weaver.general.BaseBean; +import com.weaver.general.Util; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; +import weaver.conn.RecordSet; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.StringReader; +import java.io.UnsupportedEncodingException; +import java.util.HashMap; +import java.util.Map; + +/** + * @author ZhangLei + * @date 2021/6/24 + * 客户主数据 + */ +public class Khzsj { + private static final BaseBean bb = new BaseBean(); + + //新建 + public String create(String requestid,String tableName) throws ParserConfigurationException, UnsupportedEncodingException { +// String workflowId = properties.getProperty("KhzsjworkflowId"); + Map requestdMap = new HashMap<>(); + String requestName = "客户主数据创建流程"; + bb.writeLog("客户主数据创建流程"); +// params数组存储数据库中的表字段名 + String[] groupParams = {"KTOKD","KUNNR","TITLE","NAME1","NAME2","NAME3","NAME4","SORT1", + "SORT2","STRAS","HOUSE_NUM1","POST_CODE1","CITY1","COUNTRY","REGION","TIME_ZONE", + "LANGU","TELF1","TELF2","FAX_NUMBER","SMTP_ADDR","LIFNR","BRSCH","BRAN1","STCEG", + "BANKS","BANKN","BANKL","IBAN","KUKLA","ZFLAG","LOEVMJT","BANKA"}; +// 注意 +// LOEVM LOEVMJT + + + String[] companyParams = {"KUNNRGSDM","BUKRS","AKONT","ZUAWA","ZTERM","TOGRU","ZWELS", + "LOEVMGSDM","ZFLAGGSDM"}; +// 注意 +// KUNNR KUNNRGSDM +// LOEVM LOEVMGSDM +// ZFLAG ZFLAGGSDM + + String[] saleParams = {"KUNNRXSZZ","VKORG","VTWEG","SPART","BZIRK","VKBUR","VKGRP","KDGRP", + "KONDA","KALKS","PLTYP","VERSG","LPRIO","VSBED","VWERK","KZAZU","ANTLF","WAERS", + "ZTERMXSZZ","INCO1","INCO2","KTGRD","ALAND","TATYP","TAXKD","ZKTONR_BP","ZKTONR_PY", + "ZKTONR_SH","LOEVMXSZZ","ZFLAGXSZZ"}; +// 注意 +// KUNNRXSZZ KUNNR +// ZTERMXSZZ ZTERM +// LOEVMXSZZ LOEVM +// ZFLAGXSZZ ZFLAG + + +// 查询 + // 查询GROUP子节点所需要的数据 + Map selectGroup = select(groupParams, tableName, requestid); +// 查询Company子节点所需要的数据 + Map selectCompany = select(companyParams, tableName, requestid); +// 查询sale自己的点所需要的数据 + Map selectSale = select(saleParams, tableName, requestid); + + // 组装XML并返回 + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + DocumentBuilder builder = factory.newDocumentBuilder(); + Document document = builder.newDocument(); + Element root = document.createElement("ROOT"); + document.appendChild(root); + + // 创建GROUP节点以及子节点,并赋值 + Element group = document.createElement("GROUP"); + for (String groupParam : groupParams) { + if ("LOEVMJT".equals(groupParam)){ + appendChild(document,group,"LOEVM", Util.null2String(selectGroup.get(groupParam).toString())); + }else if ("LANGU".equals(groupParam)){ + appendChild(document,group,"LANGU","ZH".equals(selectGroup.get(groupParam).toString())?"1":"2"); + }else if ("BRAN1".equals(groupParam)){ + appendChild(document,group,"BRAN1",""); + }else { + appendChild(document,group,groupParam, Util.null2String(selectGroup.get(groupParam).toString())); + } + } + + root.appendChild(group); + +// 创建COMPANY节点以及子节点并赋值 + Element company = document.createElement("COMPANY"); + for (String companyParam : companyParams) { + if ("KUNNRGSDM".equals(companyParam)){ + appendChild(document,company,"KUNNR", Util.null2String(selectCompany.get(companyParam).toString())); +// appendChild(document,company,"KUNNR",""); + }else if ("LOEVMGSDM".equals(companyParam)){ + appendChild(document,company,"LOEVM", Util.null2String(selectCompany.get(companyParam).toString())); + }else if ("ZFLAGGSDM".equals(companyParam)){ + appendChild(document,company,"ZFLAG", Util.null2String(selectCompany.get(companyParam).toString())); + }else { + appendChild(document,company,companyParam, Util.null2String(selectCompany.get(companyParam).toString())); + } + } + root.appendChild(company); + + // 创建SALE节点以及子节点并赋值 + Element sale = document.createElement("SALE"); + for (String saleParam : saleParams) { + if ("KUNNRXSZZ".equals(saleParam)){ + appendChild(document,sale,"KUNNR", Util.null2String(selectSale.get(saleParam).toString())); +// appendChild(document,sale,"KUNNR",""); + }else if ("ZTERMXSZZ".equals(saleParam)){ + appendChild(document,sale,"ZTERM", Util.null2String(selectSale.get(saleParam).toString())); + }else if ("LOEVMXSZZ".equals(saleParam)){ + appendChild(document,sale,"LOEVM", Util.null2String(selectSale.get(saleParam).toString())); + }else if ("ZFLAGXSZZ".equals(saleParam)){ + appendChild(document,sale,"ZFLAG", Util.null2String(selectSale.get(saleParam).toString())); + }else { + appendChild(document,sale,saleParam, Util.null2String(selectSale.get(saleParam).toString())); + } + } + root.appendChild(sale); + + + + + bb.writeLog("客户主数据创建流程requestid:"+requestid); + bb.writeLog("result: " + createXmlToString(document)); + + + + return createXmlToString(document); + } + + //修改 + public void updateWorkflow(String requestid, String xmlResult,String tableName){ + bb.writeLog("请求返回的xmlResult:" + xmlResult); + String updateSql = "update "+tableName+" set TYPE = ?, MESSAGE = ? where requestid = ?"; + if(xmlResult == null || "".equals(xmlResult) || requestid == null || "".equals(requestid)) { + throw new ECException("参数不全"); + } + + xmlResult = trimXmlStr(xmlResult); + Document document; + try { + document = strToDocument(xmlResult); + } catch(Exception e) { + bb.writeLog("XML解析失败: " + e.getMessage()); + bb.writeLog("xmlResult: " + xmlResult); + throw new ECException("XML解析失败: " + e.getMessage()); + } + + Element root = document.getDocumentElement(); + NodeList typeNodeList = root.getElementsByTagName("TYPE"); + NodeList messageNodeList = root.getElementsByTagName("MESSAGE"); + + if(typeNodeList.getLength() > 0 && messageNodeList.getLength() > 0) { + String type = Util.null2String(typeNodeList.item(0).getTextContent()); + String message = Util.null2String(messageNodeList.item(0).getTextContent()); + bb.writeLog("type: " + type); + bb.writeLog("message : " + message); + RecordSet rs = new RecordSet(); + rs.executeUpdate(updateSql, type, message, requestid); + } else { + bb.writeLog("未获取到正常返回数据"); + bb.writeLog("xmlResult: " + xmlResult); + throw new ECException("未获取到正常返回数据"); + } + } + + + /* + * 入参: + * 1、String[]:记录要查哪些字段 + * 2、查询的表名 + * 3、where条件(requestId) + * 出参:Map:记录根据入参查询的结果 + * 以应对需要分组返回xml时的情况 + * */ + private static Map select(String[] params, String tableName, String selectWhere){ + Map resultMap = new HashMap<>(); +// 组装xml + StringBuilder sql = new StringBuilder("SELECT "); + for (int i = 0; i < params.length; i++) { + if (i == params.length-1){ + sql.append(params[i]).append(" from "); + }else if ("BRAN1".equals(params[i])){ + sql.append(""); + }else { + sql.append(params[i]).append(','); + } + } + sql.append(tableName).append(" WHERE REQUESTID = ").append(selectWhere); + +// 查询 + RecordSet rs = new RecordSet(); + rs.executeQuery(sql.toString()); + if (rs.next()){ + for (String param : params) { + resultMap.put(param, Util.null2String(rs.getString(param))); + } + } + return resultMap; + } + + + + + + /** + * xml固定头部 + */ + private static String xmlHeadStr() { + return "\n" + + "\t\n" + + " <_--5CTYPE_--3DSTRING>\n"; + } + + /** + * xml固定尾部 + */ + private static String xmlTailStr() { + return " \n" + + "\t\n" + + ""; + } + + /** + * 生成xml字符串 + * @param document Document树对象 + * @return 整个xml字符串 + */ + private static String createXmlToString(Document document){ + String xmlString = null; + try { + // 创建TransformerFactory工厂对象 + TransformerFactory transFactory = TransformerFactory.newInstance(); + // 通过工厂对象, 创建Transformer对象 + Transformer transformer = transFactory.newTransformer(); + transformer.setOutputProperty(OutputKeys.ENCODING, "GBK"); + //使Xml自动换行, 并自动缩进 + transformer.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC, ""); + transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); //中间的参数网址固定写法(这里还没搞懂) + transformer.setOutputProperty(OutputKeys.INDENT, "yes"); //是否设置缩进(indent: yes|no) + // 创建DOMSource对象并将Document加载到其中 + DOMSource domSource = new DOMSource(document); + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + // 使用Transformer的transform()方法将DOM树转换成XML + transformer.transform(domSource, new StreamResult(bos)); + xmlString = bos.toString(); + } catch (TransformerException e) { + e.printStackTrace(); + } + return xmlString; + } + + /** + * document对象中添加子项 + * @param document ducument对象 + * @param parent 父元素 + * @param key 元素标签 + * @param value 元素content值 + */ + private static void appendChild(Document document, Element parent, String key, String value) { + Element child = document.createElement(key); + if(child != null) { + child.setTextContent(value); + } + parent.appendChild(child); + } + + /** + * 去除<_--5CTYPE_--3DSTRING>之前部分,去除之后部分 + * @param xmlString xml字符串 + * @return 去除头尾部分的xml字符串 + */ + private static String trimXmlStr(String xmlString) { + if(!xmlString.contains("<_--5CTYPE_--3DSTRING>")) { + return xmlString; + } + int start = xmlString.indexOf("<_--5CTYPE_--3DSTRING>") + "<_--5CTYPE_--3DSTRING>".length(); + int end = xmlString.indexOf(""); + return xmlString.substring(start, end).trim(); + } + + /** + * 将字符串转为xmldom对象 + * @param xmlString xml字符串 + * @return dom对象 + * @throws ParserConfigurationException 创建document对象异常 + * @throws IOException IO异常 + * @throws SAXException 解析异常 + */ + private static Document strToDocument(String xmlString) throws ParserConfigurationException, IOException, SAXException { + + DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); + dbf.setNamespaceAware(true); + DocumentBuilder documentBuilder = dbf.newDocumentBuilder(); + return documentBuilder.parse( + new InputSource(new StringReader(xmlString))); + } + + + +} diff --git a/src/com/engine/ld/utils/DealXml.java b/src/com/engine/ld/utils/DealXml.java new file mode 100755 index 0000000..dff429b --- /dev/null +++ b/src/com/engine/ld/utils/DealXml.java @@ -0,0 +1,64 @@ +package com.engine.ld.utils; + +import org.dom4j.Document; +import org.dom4j.DocumentException; +import org.dom4j.Element; +import org.dom4j.io.SAXReader; + +import java.io.ByteArrayInputStream; +import java.nio.charset.StandardCharsets; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author ZhangLei + * @date 2021/7/1 + * 针对SAP接口返回的xml数据进行解析 + */ +public class DealXml { + public Map XmlResultMap(String xml){ + Map xmlResult = new HashMap<>(); + String realXml = trimXmlStr(xml); + + SAXReader reader = new SAXReader(); + Document document = null; + + try { + document = reader.read(new ByteArrayInputStream(realXml.getBytes(StandardCharsets.UTF_8))); + } catch (DocumentException e) { + e.printStackTrace(); + } + + Element root = document.getRootElement(); +// System.out.println("根节点:"+root.getName()); + + List returnEle = root.elements("RETURN"); +// System.out.println("Return下子节点的个数:"+returnEle.size()); + for (Element element : returnEle) { + + String type = element.elementTextTrim("TYPE"); + xmlResult.put("TYPE",type); + + String message = element.elementTextTrim("MESSAGE"); + xmlResult.put("MESSAGE",message); + + } + return xmlResult; + } + + + /** + * 去除<_--5CTYPE_--3DSTRING>之前部分,去除之后部分 + * @param xmlString xml字符串 + * @return 去除头尾部分的xml字符串 + */ + private static String trimXmlStr(String xmlString) { + if(!xmlString.contains("<_--5CTYPE_--3DSTRING>")) { + return xmlString; + } + int start = xmlString.indexOf("<_--5CTYPE_--3DSTRING>") + "<_--5CTYPE_--3DSTRING>".length(); + int end = xmlString.indexOf(""); + return xmlString.substring(start, end).trim(); + } +} diff --git a/src/com/engine/ld/utils/Message.java b/src/com/engine/ld/utils/Message.java new file mode 100755 index 0000000..57be5f8 --- /dev/null +++ b/src/com/engine/ld/utils/Message.java @@ -0,0 +1,61 @@ +package com.engine.ld.utils; + +/** + * @author ZhangLei + * @date 2021/7/29 + * @ClassName: Message + * @Description: TODO OA返回给SAP的消息 + */ +public class Message { + private String flag ; + private String message ; + private String id ; + private String requestid ; + + public String getFlag() { + return flag; + } + public void setFlag(String flag) { + this.flag = flag; + } + public String getMessage() { + return message; + } + public void setMessage(String message) { + this.message = message; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Message() { + super(); + + } + public Message(String id,String flag, String message,String requestid) { + super(); + this.flag = flag; + this.message = message; + this.id = id; + this.requestid = requestid ; + } + + @Override + public String toString() { + return "Message [id="+id+ "flag=" + flag + ", message=" + message + "]"; + } + + public String getRequestid() { + return requestid; + } + + public void setRequestid(String requestid) { + this.requestid = requestid; + } + +} diff --git a/src/com/engine/ld/utils/ReadXmlInsert.java b/src/com/engine/ld/utils/ReadXmlInsert.java new file mode 100755 index 0000000..39dd916 --- /dev/null +++ b/src/com/engine/ld/utils/ReadXmlInsert.java @@ -0,0 +1,248 @@ +package com.engine.ld.utils; + +import com.weaver.general.BaseBean; +import org.dom4j.Element; +import weaver.conn.RecordSet; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author ZhangLei + * @date 2021/7/28 + * 包括主表、明细表对应的xml解析、主表插入、明细表插入 + */ +public class ReadXmlInsert { + private final static BaseBean bb = new BaseBean(); + + /* + * 获取正确的xml + * */ + public static String getRealXml(String xml) { + if (!xml.contains("<_--5CTYPE_--3DSTRING>")) { + return xml; + } + int start = xml.indexOf("<_--5CTYPE_--3DSTRING>") + "<_--5CTYPE_--3DSTRING>".length(); + int end = xml.indexOf(""); + return xml.substring(start, end).trim(); + } + + /** + * 解析主表xml方法 + * + * @param root:xml根节点 + * @param mainName:主表在xml中对应的节点名 出参:含解析xml结果的List集合 + */ + public static Map dealMain(Element root, String mainName, String[] mainparams) { +// 按照元素的标签名获得对应的节点集合 +// 主表解析结果Map headResult + Map headResult = new HashMap<>(); + + List head1 = root.elements(mainName); + for (Element elementHead : head1) { + for (String mainParam : mainparams) { + headResult.put(mainParam.toLowerCase(), elementHead.elementTextTrim(mainParam)); + } + } + return headResult; + } + + /** + * 解析明细表的方法 + * + * @param root:xml根节点 + * @param dtName:明细表在xml中对应的节点名 + */ + public static List> dealDt(Element root, String dtName, String[] dtparams) { + // 明细表解析结果List> itemResult + List collect = new ArrayList<>(); + List item = root.elements(dtName); + Integer listNum = 0; + for (Element elementItem : item) { + for (String dtParam : dtparams) { + List miniList = elementItem.elements(dtParam); + listNum = miniList.size();//一共需要分listNum个组(说明行项目中传递了listNum组数据) + for (Element element : miniList) { +// 获取节点名和对应节点值 + collect.add(element.getName() + "=" + element.getData()); + } + } + } + System.out.println("collect:" + collect); + + + List> itemResult = doItem(collect, listNum); +// System.out.println("itemResult:" + itemResult); + return itemResult; + } + + /** + * @param collect:解析item节点后结果 + * @param listNum:所需分组数 + */ + public static List> doItem(List collect, int listNum) { + List> itemResult = new ArrayList<>(); + Map map0 = new HashMap<>(); + Map map1 = new HashMap<>(); + Map map2 = new HashMap<>(); + Map map3 = new HashMap<>(); + Map map4 = new HashMap<>(); + Map map5 = new HashMap<>(); + Map map6 = new HashMap<>(); + Map map7 = new HashMap<>(); + Map map8 = new HashMap<>(); + Map map9 = new HashMap<>(); + + + for (int i = 0; i < collect.size(); i++) { + String keyValue = collect.get(i); + String key = keyValue.substring(0, keyValue.indexOf("=")).toLowerCase(); + String value = keyValue.substring(key.length() + 1); + if (i % listNum == 0) { + map0.put(key, value); + } else if (i % listNum == 1) { + map1.put(key, value); + } else if (i % listNum == 2) { + map2.put(key, value); + } else if (i % listNum == 3) { + map3.put(key, value); + } else if (i % listNum == 4) { + map4.put(key, value); + } else if (i % listNum == 5) { + map5.put(key, value); + } else if (i % listNum == 6) { + map6.put(key, value); + } else if (i % listNum == 7) { + map7.put(key, value); + } else if (i % listNum == 8) { + map8.put(key, value); + } else if (i % listNum == 9) { + map9.put(key, value); + } + } + + if (!map0.isEmpty()) { + itemResult.add(map0); + } + if (!map1.isEmpty()) { + itemResult.add(map1); + } + if (!map2.isEmpty()) { + itemResult.add(map2); + } + if (!map3.isEmpty()) { + itemResult.add(map3); + } + if (!map4.isEmpty()) { + itemResult.add(map4); + } + if (!map5.isEmpty()) { + itemResult.add(map5); + } + if (!map6.isEmpty()) { + itemResult.add(map6); + } + if (!map7.isEmpty()) { + itemResult.add(map7); + } + if (!map8.isEmpty()) { + itemResult.add(map8); + } + if (!map9.isEmpty()) { + itemResult.add(map9); + } + return itemResult; + } + + /** + * 向主表中添加数据 + * @param mainResult:主表的键值对集合 + * @param tableName:需要操作的表对象名 + * @param mainparams:主表的字段名数组 + * @return insertID 插入记录的id值 + * */ + public static String insertMain(Map mainResult,String tableName,String[] mainparams){ + String insertId = ""; + String sql = "insert into "+ tableName + " ("; + for (int i = 0; i < mainparams.length; i++) { + if (i!=mainparams.length-1){ + sql += mainparams[i].toLowerCase()+","; + }else { + sql += mainparams[i].toLowerCase()+")"; + } + } + sql += " values ("; + for (int i = 0; i < mainparams.length; i++) { + if (i!=mainparams.length-1){ + sql += mainResult.get(mainparams[i].toLowerCase())+","; + }else { + sql += mainResult.get(mainparams[i].toLowerCase())+")"; + } + } +// 向主表中插入数据 + RecordSet mainRS = new RecordSet(); +// 如果成功,获取刚刚插入记录的id + if (mainRS.executeQuery(sql)){ + bb.writeLog("数据插入成功,开始获取记录的id值"); + String getIdSql = "select id from "+tableName+" where "; + for (int i = 0; i < mainparams.length; i++) { + if (i!=mainparams.length-1){ + getIdSql += mainparams[i].toLowerCase()+"="+mainResult.get(mainparams[i].toLowerCase())+" and "; + }else { + getIdSql += mainparams[i].toLowerCase()+"="+mainResult.get(mainparams[i].toLowerCase()); + } + } + RecordSet getIdRS = new RecordSet(); + if (getIdRS.executeQuery(getIdSql)){ + insertId = getIdRS.getString("id"); + } + }else { + bb.writeLog("数据插入失败"); + } + return insertId; + } + + /** + *向明细表中添加数据 + * @param dtResult 明细表的键值对数组 + * @param tableName 明细表名 + * @param dtparams 明细表字段名 + * @param id 对应的主表id + * */ + public static int insertDt(List> dtResult,String tableName,String[] dtparams,String id){ + int insertResult = 0; + int insertNum = dtResult.size(); + for (int i = 0; i < insertNum; i++) { + Map needInsertMap = dtResult.get(i); + String insertDtSql = ""; + insertDtSql += "insert into "+tableName+" (mainid,"; + for (int ii = 0; ii < dtparams.length; ii++) { + if (ii!=dtparams.length-1){ + insertDtSql += dtparams[ii].toLowerCase()+","; + }else { + insertDtSql += dtparams[ii].toLowerCase()+")"; + } + } + insertDtSql += " values ("+id+","; + for (int iii = 0; iii < dtparams.length; iii++) { + if (iii!=dtparams.length-1){ + insertDtSql += needInsertMap.get(dtparams[iii].toLowerCase())+","; + }else { + insertDtSql += needInsertMap.get(dtparams[iii].toLowerCase())+")"; + } + } + + RecordSet dtRs = new RecordSet(); + if (dtRs.executeQuery(insertDtSql)){ + bb.writeLog("明细表记录"+i+"插入成功"); + insertResult += 1; + }else { + bb.writeLog("明细表记录"+i+"插入失败,插入语句是:"+insertDtSql); + insertResult = insertResult-1000; + } + } + return insertResult; + } +} diff --git a/src/com/engine/ld/utils/ResourceUtil.java b/src/com/engine/ld/utils/ResourceUtil.java new file mode 100755 index 0000000..3cce7a4 --- /dev/null +++ b/src/com/engine/ld/utils/ResourceUtil.java @@ -0,0 +1,20 @@ +package com.engine.ld.utils; + +import java.util.ResourceBundle; + +/** + * @author ZhangLei + * @date 2021/7/22 + */ +public class ResourceUtil { + private static final ResourceBundle resourceBundle; + + static{ + resourceBundle = ResourceBundle.getBundle("workFlowsNum"); + } + + public static String getKey(String key){ + return resourceBundle.getString(key); + } +} + diff --git a/src/com/engine/ld/utils/WorkflowBackUtil.java b/src/com/engine/ld/utils/WorkflowBackUtil.java new file mode 100755 index 0000000..ddc6958 --- /dev/null +++ b/src/com/engine/ld/utils/WorkflowBackUtil.java @@ -0,0 +1,436 @@ +package com.engine.ld.utils; + +import com.alibaba.fastjson.JSONObject; +import com.engine.kq.biz.KQFlowActiontBiz; +import com.engine.workflow.biz.SuperviseManagerBiz; +import com.engine.workflow.biz.requestForm.LocationFieldBiz; +import com.engine.workflow.biz.requestForm.RequestAutoApproveBiz; +import com.engine.workflow.biz.requestList.RequestAttentionBiz; +import com.engine.workflow.biz.workflowOvertime.OvertimeBiz; +import com.engine.workflow.entity.requestForm.AutoApproveEntity; +import com.google.common.base.Strings; +import com.weaver.base.msgcenter.util.PoppupRemindInfoUtil; +import com.weaver.general.BaseBean; +import weaver.conn.RecordSet; +import weaver.conn.RecordSetTrans; +import weaver.fna.general.FnaCommon; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.hrm.attendance.manager.HrmAttVacationManager; +import weaver.workflow.msg.MsgPushUtil; +import weaver.workflow.msg.entity.MsgOperateType; +import weaver.workflow.request.*; +import weaver.workflow.request.entity.OperateLogBean; +import weaver.workflow.request.entity.RequestOperateEntityTableNameEnum; +import weaver.workflow.request.entity.RequestOperateTypeEnum; +import weaver.workflow.request.entity.RequestOperationTableInfo; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +/** + * @author ZhangLei + * @date 2021/7/5 + * + * 工作流退回 + */ +public class WorkflowBackUtil { + public int rejectRequest(User var1, int var2, boolean var3, int var4, int var5) { +// PoppupRemindInfoUtil var6 = new PoppupRemindInfoUtil(); +// RecordSet var7 = new RecordSet(); +// RecordSetTrans var8 = new RecordSetTrans(); +// var8.setAutoCommit(false); +// RequestOperationLogManager var9 = new RequestOperationLogManager(var2); +// OperateLogBean var10 = var9.getLastOperateLog(); +// RequestOperationMsgManager var12 = new RequestOperationMsgManager(); +// List var13 = var12.getOperateMsg(String.valueOf(var10.getId()), MsgOperateType.DRAW_BACK); +// boolean var14 = false; +// int var15 = 0; +// var7.executeProc("workflow_Requestbase_SByID", var2 + ""); +// if (var7.next()) { +// if (var7.getInt("currentnodetype") == 3) { +// var14 = true; +// } +// +// var15 = var7.getInt("currentnodeid"); +// } +// +// Map var16 = var9.getTableInfos(); +// RequestOperationTableInfo var17 = (RequestOperationTableInfo)var16.get(RequestOperateEntityTableNameEnum.CURRENTOPERATOR.getTableName()); +// RequestOperationTableInfo var18 = (RequestOperationTableInfo)var16.get(RequestOperateEntityTableNameEnum.REQUESTLOG.getTableName()); +// RequestOperationTableInfo var19 = (RequestOperationTableInfo)var16.get(RequestOperateEntityTableNameEnum.AGENTPERSONS.getTableName()); +// RequestOperationTableInfo var20 = (RequestOperationTableInfo)var16.get(RequestOperateEntityTableNameEnum.REQUESTBASE.getTableName()); +// RequestOperationTableInfo var21 = (RequestOperationTableInfo)var16.get(RequestOperateEntityTableNameEnum.REQUESTFLOWINFO.getTableName()); +// RequestOperationTableInfo var22 = (RequestOperationTableInfo)var16.get(RequestOperateEntityTableNameEnum.REQFREENODE.getTableName()); +// RequestOperationTableInfo var23 = (RequestOperationTableInfo)var16.get(RequestOperateEntityTableNameEnum.REQFREENODEGROUP.getTableName()); +// RequestOperationTableInfo var24 = (RequestOperationTableInfo)var16.get(RequestOperateEntityTableNameEnum.REQSIMPLEADDSIGNLOG.getTableName()); +// var7.executeProc("workflow_Requestbase_SByID", var2 + ""); +// int var25 = 0; +// int var26 = 0; +// int var27 = 0; +// int var28 = 1; +// int var29 = 0; +// String var30 = ""; +// if (var7.next()) { +// var25 = var7.getInt("workflowid"); +// var27 = var7.getInt("currentnodeid"); +// var26 = var7.getInt("currentnodetype"); +// } +// +// var7.executeSql("select * from workflow_base where id=" + var25); +// if (var7.next()) { +// var28 = var7.getInt("isbill"); +// var29 = var7.getInt("formid"); +// } +// +// if (var28 == 1) { +// var7.executeSql("select tablename from workflow_bill where id = " + var29); +// if (var8.next()) { +// var30 = var7.getString("tablename"); +// } +// } +// +// String var31 = ""; +// +// String var32; +// try { +// var32 = "0"; +// String var33 = "0"; +// String var34 = var10.getNewRecordEntityIds(var17); +// String var35 = "select userid, usertype, nodeid, groupid, groupdetailid, wfreminduser, wfusertypes from workflow_currentoperator where requestid=" + var2 + " and " + Util.getSubINClause(var34, "id", "in"); +// var7.executeSql(var35); +// +// while(var7.next()) { +// var6.updatePoppupRemindInfo(var7.getInt("usreid"), var7.getInt("usertype"), String.valueOf(var7.getInt("usertype") + 1), var2); +// ArrayList var36 = Util.TokenizerString(Util.null2String(var7.getString("wfreminduser")), ","); +// ArrayList var37 = Util.TokenizerString(Util.null2String(var7.getString("wfusertypes")), ","); +// +// for(int var38 = 0; var38 < var36.size(); ++var38) { +// var6.updatePoppupRemindInfo(Util.getIntValue((String)var36.get(var38)), 10, (String)var37.get(var38), var2); +// } +// +// var32 = var32 + "," + Util.null2String(var7.getString("userid")); +// if (("," + var33 + ",").indexOf("," + Util.null2String(var7.getString("nodeid") + ",")) == -1) { +// var33 = var33 + "," + Util.null2String(var7.getString("nodeid")); +// } +// } +// +// var8.executeSql("select distinct userid from workflow_currentoperator where requestid=" + var2 + " and " + Util.getSubINClause(var34, "id", "in")); +// +// while(var8.next()) { +// var31 = var31 + "," + var8.getString("userid"); +// } +// +// var8.executeUpdate(" delete from Workflow_SharedScope where requestid = ? and (" + Util.getSubINClause(var34, "currentid", "in") + " or (" + Util.getSubINClause(var32, "operator", "in") + " and currentnodeid in (" + var33 + ")))", new Object[]{var2}); +// var8.executeSql("delete from workflow_currentoperator where requestid=" + var2 + " and " + Util.getSubINClause(var34, "id", "in")); +// String var52 = var10.getAutoSubmitId(var17); +// if (!Strings.isNullOrEmpty(var52)) { +// var8.executeSql("delete from workflow_currentoperator where requestid=" + var2 + " and " + Util.getSubINClause(var52, "id", "in")); +// } +// +// var34 = var10.getNewRecordEntityIds(var18); +// String var53 = "0"; +// var8.executeQuery("select logid from workflow_requestlog where (logtype='0' or logtype='2' or logtype='3' or logtype='9' or logtype='b') and requestid= ? and logid in (" + var34 + ")", new Object[]{var2}); +// +// while(var8.next()) { +// var53 = var53 + "," + var8.getString(1); +// } +// +// var8.executeSql("update workflow_requestlog set logtype='1' where requestid=" + var2 + " and logid in (" + var53 + ")"); +// var8.executeSql("delete from workflow_requestlog where requestid=" + var2 + " and logid in (" + var34 + ") and logid not in (" + var53 + ")"); +// var34 = var10.getNewRecordEntityIds(var19); +// var8.executeSql("delete from workflow_agentpersons where requestid=" + var2 + " and groupdetailid in (" + var34 + ")"); +// var34 = var10.getNewRecordEntityIds(var21); +// var8.executeSql("delete from workflow_requestflowinfo where requestid=" + var2 + " and id in (" + var34 + ")"); +// var34 = var10.getNewRecordEntityIds(var22); +// var8.executeSql("delete from workflow_freenode where requestid=" + var2 + " and id in (" + var34 + ")"); +// var34 = var10.getNewRecordEntityIds(var23); +// var8.executeSql("delete from workflow_freenode_group where requestid=" + var2 + " and id in (" + var34 + ")"); +// List var54 = var9.getUpdateSqlByModifyLog(var10, var17); +// var54.addAll(var9.getUpdateSqlByModifyLog(var10, var18)); +// var54.addAll(var9.getUpdateSqlByModifyLog(var10, var19)); +// var54.addAll(var9.getUpdateSqlByModifyLog(var10, var20)); +// var54.addAll(var9.getUpdateSqlByModifyLog(var10, var23)); +// var54.addAll(var9.getUpdateSqlByModifyLog(var10, var24)); +// Iterator var39 = var54.iterator(); +// +// while(var39.hasNext()) { +// String var40 = (String)var39.next(); +// var8.executeSql(var40.toString()); +// } +// +// var8.executeSql("delete from workflow_nownode where requestid=" + var2); +// var8.executeSql("select a.nodetype, b.nodeattribute, a.nodeid from workflow_flownode_view a inner join workflow_nodebase_view b on a.nodeid=b.id where nodeid in (select nodeid from workflow_currentoperator where requestid=" + var2 + " and isremark=0 group by nodeid)"); +// AutoApproveEntity var55 = new AutoApproveEntity(); +// var55.setRst(var8); +// var55.setRequestid(var2); +// var55.setSrc("forceDrawBack"); +// +// while(var8.next()) { +// int var56 = var8.getInt("nodeid"); +// var55.setNodeid(var56); +// RequestAutoApproveBiz.delApproveLog(var55, var1); +// WFAutoApproveUtils.removeAprroveSessionInfo(var2, var56, var1.getUID()); +// String var41 = "insert into workflow_nownode(requestid,nownodeid,nownodetype,nownodeattribute) values(" + var2 + "," + var8.getInt("nodeid") + "," + var8.getInt("nodetype") + "," + var8.getInt("nodeattribute") + ")"; +// var8.executeSql("delete from workflow_nownode where nownodeid =" + var8.getInt("nodeid") + " and requestid=" + var2); +// var8.executeSql(var41); +// } +// +// (new LocationFieldBiz()).forceDrawBackLocationField(var2, var29, var28, var10, var8); +// var9.setOperateInvalid(var1, var10.getId()); +// var8.commit(); +// if (this.canExecuteAddInOperate(var10)) { +// try { +// RequestCheckAddinRules var57 = new RequestCheckAddinRules(); +// var57.resetParameter(); +// var57.setTrack(false); +// var57.setStart(false); +// var57.setNodeid(-2); +// var57.setRequestid(var2); +// var57.setWorkflowid(var25); +// var57.setObjid(-2); +// var57.setObjtype(1); +// var57.setIsbill(var28); +// var57.setFormid(var29); +// var57.setIspreadd("0"); +// var57.setUser(var1); +// var57.setSpecialOperate(true); +// var57.getDrawBackParams().put("nodeId", var27); +// var57.getDrawBackParams().put("nodeType", var26); +// var57.checkAddinRules(); +// } catch (Exception var46) { +// +// } +// } +// +// (new AutoForecastBiz()).resetForecast(var2); +// this.updateIslasttimes(var2); +// (new RequestAttentionBiz()).cancelAttention(var2, "rb", (RecordSetTrans)null, var31); +// var12.setAttentionMsg(var13, var2 + "", var1.getUID() + ""); +// (new MsgPushUtil()).pushMsg(var13); +// } catch (Exception var47) { +// var8.rollback(); +// var47.printStackTrace(); +// return -1; +// } +// +// try { +// RequestAddShareInfo var48 = new RequestAddShareInfo(); +// var48.setRequestid(var2); +// var48.SetWorkFlowID(var25); +// var48.SetNowNodeID(var15); +// var48.SetNextNodeID(var27); +// var48.setIsbill(var28); +// User var51 = new User(); +// var51.setUid(-1); +// var51.setLogintype("1"); +// var48.setUser(var51); +// var48.SetIsWorkFlow(1); +// var48.setBillTableName(var30); +// var48.setHaspassnode(true); +// var48.addShareInfo(); +// } catch (Exception var45) { +// } +// +// var7.executeSql(" update workflow_requestbase set dataaggregated = '' where requestid = " + var2); +// var7.executeProc("workflow_Requestbase_SByID", var2 + ""); +// if (var7.next()) { +// var26 = var7.getInt("currentnodetype"); +// var27 = var7.getInt("currentnodeid"); +// } +// +// try { +// this.CapitalUnfreeze(String.valueOf(var2), var26, var27); +// } catch (Exception var44) { +// } +// +// if (var26 == 0) { +// HrmAttVacationManager manager = new HrmAttVacationManager(); +// manager.handle(var2, var25, 0); +// +// try { +// FnaCommon var49 = new FnaCommon(); +// var49.doWfForceOver(var2, 0, true); +// } catch (Exception var43) { +// (new BaseBean()).writeLog(var43); +// } +// +// try { +// (new KQFlowActiontBiz()).handleDrawBack(var2, var25); +// } catch (Exception var42) { +// (new BaseBean()).writeLog(var42); +// } +// } +// +// if (var14) { +// SuperviseManagerBiz var50 = new SuperviseManagerBiz(); +// var50.findOperatorByRequestid(var1, var2); +// } +// +// var32 = (new BaseBean()).getPropValue("WorkflowOvertimeIsNew", "isNew"); +// if ("1".equals(var32)) { +// OvertimeBiz.getInstance().addOvertimeTaskThread(var2, var25, 0); +// } + + return 1; + } + + + private boolean canExecuteAddInOperate(OperateLogBean var1) { + if (var1.getOperateType().equals(RequestOperateTypeEnum.FORWARDREPLY.getId())) { + return false; + } else { + JSONObject var2 = var1.getDetailInfo().getJSONObject(RequestOperateEntityTableNameEnum.CURRENTOPERATOR.getTableName()); + if (var2 != null) { + String var3 = var2.getString("newIds"); + if (Strings.isNullOrEmpty(var3)) { + return false; + } + } + + if (!var1.getOperateType().equals(RequestOperateTypeEnum.REJECT.getId())) { + RecordSet var5 = new RecordSet(); + var5.executeQuery("select groupdetailid from workflow_currentoperator where requestid = ? order by id desc", new Object[]{var1.getRequestId()}); + int var4 = -1; + if (var5.next()) { + var4 = Util.getIntValue(var5.getString("groupdetailid"), -1); + } + + if (var4 > 0) { + var5.executeQuery("select receivedpersons from workflow_agentpersons where requestid = ? and groupdetailid = ?", new Object[]{var1.getRequestId(), var4}); + if (var5.next() && !Strings.isNullOrEmpty(var5.getString("receivedpersons"))) { + return false; + } + } + } + + return true; + } + } + + + public void updateIslasttimes(int var1) { + try { + RecordSet var2 = new RecordSet(); + String var3 = "select userid, islasttimes, id, isremark from workflow_currentoperator where usertype=0 and requestid=" + var1 + " order by userid, case when isremark = 4 then 1.5 when isremark = 8 then 1.4 when isremark = 9 then 1.4 when isremark = 5 then 1.3 when isremark = 6 then 0 WHEN (isremark = 0 and takisremark = -2) THEN 2 else isremark end desc, islasttimes asc, id asc"; + ArrayList var4 = new ArrayList(); + ArrayList var5 = new ArrayList(); + ArrayList var6 = new ArrayList(); + ArrayList var7 = new ArrayList(); + ArrayList var8 = new ArrayList(); + var2.execute(var3); + + int var9; + int var10; + int var11; + while(var2.next()) { + var9 = Util.getIntValue(var2.getString("userid"), 0); + var10 = Util.getIntValue(var2.getString("islasttimes"), 0); + var11 = Util.getIntValue(var2.getString("id"), 0); + if (!var8.contains(var9)) { + var8.add(var9); + } + + var4.add("" + var9); + var5.add("" + var10); + var6.add("" + var11); + var7.add(Util.null2String(var2.getString("isremark"))); + } + + int var12; + for(var9 = 0; var9 < var4.size(); ++var9) { + var10 = Util.getIntValue((String)var4.get(var9), 0); + var11 = Util.getIntValue((String)var5.get(var9), 0); + var12 = Util.getIntValue((String)var6.get(var9), 0); + int var13 = Util.getIntValue((String)var7.get(var9)); + if (var9 + 1 < var4.size() && var10 == Util.getIntValue((String)var4.get(var9 + 1), 0)) { + if (var11 == 1) { + var3 = "update workflow_currentoperator set islasttimes=0 where id=" + var12; + var2.execute(var3); + } + } else if (var11 == 0) { + var3 = "update workflow_currentoperator set islasttimes=1 where id=" + var12; + var2.execute(var3); + } + } + + Iterator var15 = var8.iterator(); + + label59: + while(var15.hasNext()) { + var10 = (Integer)var15.next(); + var11 = 0; + var2.executeQuery("select id,isremark,takisremark from workflow_currentoperator where islasttimes=0 and userid=? order by id", new Object[]{var10}); + + while(true) { + String var16; + do { + do { + if (!var2.next()) { + if (var11 > 0) { + var2.executeUpdate("update workflow_currentoperator set islasttimes=0 where requestid=? and userid=? and islasttimes=1", new Object[]{var1, var10}); + var2.executeUpdate("update workflow_currentoperator set islasttimes=1 where id=?", new Object[]{var11}); + } + continue label59; + } + + var12 = var2.getInt("id"); + var16 = var2.getString("takisremark"); + } while(var12 != 0); + } while(!"".equals(var16) && !"0".equals(var16)); + + var11 = var2.getInt("id"); + } + } + } catch (Exception var14) { + } + + } + + + public void CapitalUnfreeze(String var1, int var2, int var3) { + RecordSet var4 = new RecordSet(); + RecordSet var5 = new RecordSet(); + var4.executeSql(" select r.requestid,r.workflowid,r.currentnodetype from workflow_requestbase r,workflow_base b where requestid = " + var1 + " and r.workflowid=b.id and b.formid=19 and b.isbill=1"); + + label47: + while(var4.next()) { + String var6 = " select b.* from workflow_form w,bill_CptFetchDetail b where w.requestid =" + var1 + " and w.billid=b.cptfetchid"; + var5.executeSql(var6); + RecordSet var7 = new RecordSet(); + + while(true) { + while(true) { + if (!var5.next()) { + continue label47; + } + + String var8 = var5.getString("capitalid"); + float var9 = 0.0F; + float var10 = 0.0F; + float var11 = 0.0F; + var7.executeSql("select number_n as old_number_n from bill_CptFetchDetail where cptfetchid = (select id from bill_CptFetchMain where requestid=" + var1 + ") and capitalid=" + var8); + if (var7.next()) { + var9 = var7.getFloat("old_number_n"); + } + + var7.executeSql("select frozennum as old_frozennum from CptCapital where id=" + var8); + if (var7.next()) { + var10 = var7.getFloat("old_frozennum"); + } + + if (var3 == 0 && (var2 == 1 || var2 == 2)) { + var11 = var10 - var9; + var7.executeSql("update CptCapital set frozennum=" + var11 + " where id=" + var8); + } else if (var2 == 0 && (var3 == 1 || var3 == 2)) { + var11 = var10 + var9; + var7.executeSql("update CptCapital set frozennum=" + var11 + " where id=" + var8); + } + } + } + } + + } +} diff --git a/src/com/engine/ld/utils/WorkflowCreateHandler.java b/src/com/engine/ld/utils/WorkflowCreateHandler.java new file mode 100755 index 0000000..bb11b93 --- /dev/null +++ b/src/com/engine/ld/utils/WorkflowCreateHandler.java @@ -0,0 +1,232 @@ +package com.engine.ld.utils; + +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.TimeUtil; +import weaver.general.Util; +import weaver.hrm.resource.ResourceComInfo; +import weaver.soa.workflow.request.MainTableInfo; +import weaver.soa.workflow.request.Property; +import weaver.soa.workflow.request.RequestInfo; +import weaver.soa.workflow.request.RequestService; +import weaver.workflow.request.RequestComInfo; +import weaver.workflow.workflow.WorkflowComInfo; + +import java.util.Map; +import java.util.Map.Entry; + +/** + * + * @ClassName: WorkflowCreateHandler + * @Description: TODO + * {异构系统创建ecology工作流的辅助类, + * 支持ecology7.x-ecology8.1所有版本的ecology的创建工作流 + * } + * @author shil + * @date 2020-03-25 下午5:03:03 + * + */ +public class WorkflowCreateHandler extends BaseBean { + + public WorkflowCreateHandler() { + super(); + } + + /*** + * + * @param workflowid + * @return + */ + public String findWorkflowForm(String workflowid) + { + String tablename = ""; + String cDandT = TimeUtil.getCurrentDateString()+" "+ TimeUtil.getCurrentTimeString(); + RecordSet ws = new RecordSet(); + ws.execute("select t2.tablename from workflow_base t1,workflow_bill t2 where t2.id=t1.formid and t1.id ='"+workflowid+"'"); + if(ws.next()){ + tablename = Util.null2String(ws.getString("tablename")); + }else{ + tablename = "-1"; + writeLog("shauter 当前时间:"+cDandT+"-workflowid="+workflowid+"-没有设置表单"); + } + return tablename; + + } + + /** + * + * @Title: bulidWorkflowTitle + * @Description: TODO(构建流程标题) + * @param @param workflowid + * @param @param creatorid + * @param @return 设定文件 + * @return String 返回类型 + * @throws + */ + public String bulidWorkflowTitle(String workflowid,String creatorid) + { + StringBuffer workflowtitle=new StringBuffer(""); + ResourceComInfo ResourceComInfo = null; + try { + ResourceComInfo = new ResourceComInfo(); + } catch (Exception e) { + e.printStackTrace(); + } + String latsname = ResourceComInfo.getLastname(creatorid); + workflowtitle.append(findWorkflowName(""+workflowid)+"--"+latsname); + return workflowtitle.toString(); + } + + /** + * + * @Title: findWorkflowName + * @Description: TODO(获取流程名称) + * @param @param workflowid + * @param @return 设定文件 + * @return String 返回类型 + * @throws + */ + public String findWorkflowName(String workflowid){ + String workflowname=""; + WorkflowComInfo WorkflowComInfo = null; + try { + WorkflowComInfo = new WorkflowComInfo(); + workflowname = WorkflowComInfo.getWorkflowname(""+workflowid); + } catch (Exception e) { + e.printStackTrace(); + workflowname ="-1"; + } + return workflowname; + } + + /** + * + * @Title: findDataIDByReqID + * @Description: TODO(获取表单数据id) + * @param @param workflowid + * @param @param requestid + * @param @return 设定文件 + * @return String 返回类型 + * @throws + */ + public String findDataIDByReqID(String workflowid,String requestid){ + String dataid=""; + RecordSet rs = new RecordSet(); + rs.execute("select id from "+findWorkflowForm(workflowid)+" where requestid='"+requestid+"' "); + rs.next(); + dataid = Util.null2String(rs.getString(1)); + return dataid; + } + /** + * + * @Title: expoundRequest + * @Description: TODO(这里用一句话描述这个方法的作用) + * @param @param requestid + * @param @return 设定文件 + * @return String 返回类型 + * @throws + */ + + public String expoundRequest(String requestid) + { + writeLog("--------------requestid:"+requestid); + String dec = ""; + int ireqid = Util.getIntValue(requestid, 0); + if(ireqid>0){ + + }else if(ireqid==-1){ + dec = "创建流程失败"; + }else if(ireqid==-2){ + dec = "用户没有流程创建权限"; + }else if(ireqid==-3){ + dec = "创建流程基本信息失败"; + }else if(ireqid==-4){ + dec = "保存表单主表信息失败"; + }else if(ireqid==-5){ + dec = "更新紧急程度失败"; + }else if(ireqid==-6){ + dec = "流程操作者失败"; + }else if(ireqid==-7){ + dec = "流转至下一节点失败"; + }else if(ireqid==-8){ + dec = "节点附加操作失败"; + } + return dec; + } + + /** + * + * @Title: WorkflowCreateByMainTableMap + * @param @param creatorId 创建人Id + * @param @param workflowId 流程Id + * @param @param requestName 请求标题 + * @param @param IsNextFlow 是否提交到下一节点 + * @param @param requestMap Map格式的主表数据=<字段名称,字段值> + * @param @return 设定文件 + * @return String 返回类型 + * @throws + */ + public String WorkflowCreateByRequestMap(String creatorId ,String workflowId ,String requestName ,String IsNextFlow,Map requestMainMap) + { + writeLog("-----创建流程传递的参数个数--------"); + writeLog("creatorId:"+creatorId); + writeLog("workflowId:"+workflowId); + writeLog("requestName:"+requestName); + writeLog("IsNextFlow:"+IsNextFlow); + + String requestid = ""; + RequestInfo requestInfo = new RequestInfo(); + requestInfo.setCreatorid(creatorId);//创建人Id + requestInfo.setWorkflowid(workflowId);//工作流Id + requestInfo.setDescription(requestName);//请求标题 + if("0".equals(IsNextFlow)) + { + requestInfo.setIsNextFlow(IsNextFlow); + } + + //主表字段 + MainTableInfo mainTableInfo = new MainTableInfo(); + Property[] propertyArray = new Property[requestMainMap.size()]; + int p = 0; + for (Entry entry : requestMainMap.entrySet()) + { + propertyArray[p] = new Property(); + propertyArray[p].setName(Util.null2String(entry.getKey())); + propertyArray[p].setValue(Util.null2String(entry.getValue())); + writeLog("\r\n---p="+p+"---Key="+entry.getKey()+"---Value="+entry.getValue()); + p++; + } + writeLog("-----创建流程传递的参数个数p="+p); + mainTableInfo.setProperty(propertyArray); + requestInfo.setMainTableInfo(mainTableInfo); + + RequestService service = new RequestService(); + try { + //流程 + try { + requestid = service.createRequest(requestInfo);//创建请求id + } catch (Exception e) { + writeLog("======="+e.getMessage()); + } + //String userId = requestInfo.getLastoperator();//请求最后的操作者 + //记录日志 + StringBuffer sbf = new StringBuffer("\r\n-----xwd创建工作流记录日志开始"); + WorkflowComInfo wfcif =new WorkflowComInfo(); + RequestComInfo rcif = new RequestComInfo(); + ResourceComInfo rscif = new ResourceComInfo(); + sbf.append("\r\n-----姓名:"+rscif.getLastname(rcif.getRequestCreater(requestid))); + sbf.append("\r\n-----时间:"+rcif.getRequestCreateTime(requestid)); + sbf.append("\r\n-----创建流程:"+wfcif.getWorkflowname(workflowId)); + sbf.append("\r\n-----请求:"+rcif.getRequestname(requestid)); + sbf.append("\r\n-----请求:"+requestid); + sbf.append("\r\n-----创建工作流记录日志结束"); + writeLog(sbf.toString()); + System.out.println(""+sbf.toString()); + } catch (Exception e) { + writeLog("错误:" + e); + System.out.println("错误:" + e); + } + return requestid; + } + +} diff --git a/src/com/engine/liande/cmd/InvSearchInfoCmd.java b/src/com/engine/liande/cmd/InvSearchInfoCmd.java new file mode 100644 index 0000000..42631e4 --- /dev/null +++ b/src/com/engine/liande/cmd/InvSearchInfoCmd.java @@ -0,0 +1,292 @@ +package com.engine.liande.cmd; + +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; +import com.engine.core.interceptor.CommandContext; +import org.apache.commons.lang3.StringUtils; +import org.apache.http.HttpEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.util.EntityUtils; +import org.dom4j.Document; +import org.dom4j.DocumentHelper; +import org.dom4j.Element; +import weaver.general.BaseBean; +import weaver.general.Util; + +import java.io.IOException; +import java.nio.charset.Charset; +import java.util.*; + +public class InvSearchInfoCmd extends AbstractCommonCommand> { + @Override + public BizLogContext getLogContext() { + return null; + } + + public InvSearchInfoCmd(Map params) { + this.params = params; + } + @Override + public Map execute(CommandContext commandContext) { + + Map datamap = new HashMap(); + Map apidatas = new HashMap(); + BaseBean bb = new BaseBean(); + String MATNR = ""; + String WERKS = ""; + String LGORT = ""; + String CHARG = ""; + String ZPCBX = ""; + String MAKTX = ""; + + //WERKS+","+CHARG+","+LGORT+","+ZPCBX+","+MATNR + + String ID = Util.null2String(params.get("ID")); + String client = Util.null2String(params.get("client")); + bb.writeLog("ID:"+ID); + bb.writeLog("InvSearchInfoCmd-client:"+client); + + if(StringUtils.isNotBlank(client)){ + if(!"".equals(ID)){ + if(ID.contains("#&#")){ + String[] datas = ID.split("#&#"); + String data = datas[0]; + MAKTX = datas[1]; + String[] param = data.split(","); + WERKS = param[0]; + CHARG = param[1]; + LGORT = param[2]; + ZPCBX = param[3]; + MATNR = param[4]; + }else{ + String[] param = ID.split(","); + WERKS = param[0]; + CHARG = param[1]; + LGORT = param[2]; + ZPCBX = param[3]; + MATNR = param[4]; + } + } + bb.writeLog("WERKS:"+WERKS); + bb.writeLog("CHARG:"+CHARG); + bb.writeLog("LGORT:"+LGORT); + bb.writeLog("ZPCBX:"+ZPCBX); + bb.writeLog("MATNR:"+MATNR); + bb.writeLog("MAKTX:"+MAKTX); + + if(!"".equals(MATNR)) + { + String dataxml = ""+MATNR+""; + dataxml += ""; + if(!"".equals(WERKS)){ + dataxml += ""+WERKS+""; + }else{ + dataxml += ""; + } + dataxml += ""; + if(!"".equals(LGORT)){ + dataxml += ""+LGORT+""; + }else{ + dataxml += ""; + } + dataxml += ""; + if(!"".equals(CHARG)){ + dataxml += ""+CHARG+""; + }else{ + dataxml += ""; + } + dataxml += ""; + dataxml += ""; + dataxml += ""; + dataxml += ""; + dataxml += ""; + if(!"".equals(ZPCBX)){ + dataxml += ""+ZPCBX+""; + }else{ + dataxml += ""; + } + + dataxml += ""; + + if(!"".equals(MAKTX)){ + dataxml += ""+MAKTX+""; + }else{ + dataxml += ""; + } + + if(!"".equals(MAKTX)){ + dataxml += ""+MAKTX+""; + }else{ + dataxml += ""; + } + + //String wsdl = "http://lemqas.lemtech.cn:8000/sap/bc/srt/rfc/sap/zmm_inventoryinfo_query/240/zmm_inventoryinfo_query/zmm_inventoryinfo_query" ; + + String saphost = bb.getPropValue("CGDD_WORKFLOW","SAPHOST"); + String wsdl = saphost+"/sap/bc/srt/rfc/sap/zmm_inventoryinfo_query/"+client+"/zmm_inventoryinfo_query/zmm_inventoryinfo_query" ; + + String soapAction = "urn:sap-com:document:sap:rfc:functions:ZMM_INVENTORYINFO_QUERY:ZMM_INVENTORYINFO_QUERYRequest"; + + String I_DATA = " \n" + + " "+dataxml+"]]>" ; + String xml= " \n" + + " \n" + + " \n" + + " \n" + + " "+I_DATA+"\n" + + " \n" + + " \n" + + " "; + + System.out.println("xml:"+xml); + + try { + datamap = doPostSoap(wsdl,xml,soapAction); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + apidatas.put("data",datamap); + return apidatas; + } + + /*** + * + * @param url + * @param soapXml + * @param soapAction + * @return + * @throws Exception + */ + public Map doPostSoap(String url, String soapXml, String soapAction) throws Exception + { + + Map map = new HashMap(); + BaseBean log = new BaseBean(); + + log.writeLog("url:"+url); + log.writeLog("soapXml:"+soapXml); + log.writeLog("soapAction:"+soapAction); + + HttpClientBuilder httpClientBuilder = HttpClientBuilder.create(); + CloseableHttpClient closeableHttpClient = httpClientBuilder.build(); + HttpPost httpPost = new HttpPost(url); + //设置请求和传输超时时间 + String result = ""; + CloseableHttpResponse response = null; + List> logList = new ArrayList>(); + try { + httpPost.setHeader("Content-Type", "text/xml;charset=UTF-8"); + httpPost.setHeader("SOAPAction", soapAction); + //httpPost.addHeader(new BasicHeader("Authorization", "Basic " + new String(Base64.encode(userpass.getBytes())))); + StringEntity data = new StringEntity(soapXml, Charset.forName("UTF-8")); + log.writeLog("data:"+data.toString()); + httpPost.setEntity(data); + response = closeableHttpClient.execute(httpPost); + HttpEntity httpEntity = response.getEntity(); + if (httpEntity != null) + { + result = EntityUtils.toString(httpEntity, "UTF-8"); + log.writeLog("result:"+result); + if(!"".equals(result)) + { + Document doc = DocumentHelper.parseText(result); + Element topEle = doc.getRootElement(); + Element bodyEle = topEle.element("Body"); + Element rootEle = bodyEle.element("ZMM_INVENTORYINFO_QUERYResponse"); + Element O_DATA = rootEle.element("O_DATA"); + + String returnData = O_DATA.getText(); + //String returnData = new String(O_DATA.getText().getBytes("GBK"),"UTF-8"); + + log.writeLog("returnData:"+returnData); + + + if(!"".equals(returnData)) + { + Document dataDoc = DocumentHelper.parseText(returnData); + Element topDataEle = dataDoc.getRootElement(); + log.writeLog("topDataEle:"+topDataEle.asXML()); + + List nodes = topDataEle.elements("ITEM"); + for (Iterator it = nodes.iterator(); it.hasNext();) { + Element elm = (Element) it.next(); + log.writeLog("elm:"+elm.asXML()); + + Element MATNREle = elm.element("MATNR"); + String MATNR = MATNREle.getText(); + + Element MAKTXEle = elm.element("MAKTX"); + String MAKTX = MAKTXEle.getText(); + + Element WERKSEle = elm.element("WERKS"); + String WERKS = WERKSEle.getText(); + + Element NAME1Ele = elm.element("NAME1"); + String NAME1 = NAME1Ele.getText(); + + Element MEINSEle = elm.element("MEINS"); + String MEINS = MEINSEle.getText(); + + Element SALK3Ele = elm.element("SALK3"); + String SALK3 = SALK3Ele.getText(); + + Element LABSTEle = elm.element("LABST"); + String LABST = LABSTEle.getText(); + + Element WAERSEle = elm.element("WAERS"); + String WAERS = WAERSEle.getText(); + + Element MTARTEle = elm.element("MTART"); + String MTART = MTARTEle.getText(); + + Element MATKLEle = elm.element("MATKL"); + String MATKL = MATKLEle.getText(); + + Element CHARGEle = elm.element("CHARG"); + String CHARG = CHARGEle.getText(); + + Element LGORTEle = elm.element("LGORT"); + String LGORT = LGORTEle.getText(); + + Element LGOBEEle = elm.element("LGOBE"); + String LGOBE = LGOBEEle.getText(); + + map = new HashMap(); + map.put("MATNR",MATNR); + map.put("CHARG",CHARG); + map.put("WERKS",WERKS); + map.put("LGORT",LGORT); + map.put("MAKTX",MAKTX); + map.put("LGOBE",LGOBE); + map.put("NAME1",NAME1); + map.put("MEINS",MEINS); + map.put("SALK3",SALK3); + map.put("LABST",LABST); + map.put("WAERS",WAERS); + map.put("MTART",MTART); + map.put("MATKL",MATKL); + } + } + } + } + } catch (Exception e) { + log.writeLog("e:"+e); + } finally { + if (response != null) { + try { + EntityUtils.consume(response.getEntity()); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + return map; + } +} diff --git a/src/com/engine/liande/cmd/InvSearchListCmd.java b/src/com/engine/liande/cmd/InvSearchListCmd.java new file mode 100644 index 0000000..fb3a843 --- /dev/null +++ b/src/com/engine/liande/cmd/InvSearchListCmd.java @@ -0,0 +1,367 @@ +package com.engine.liande.cmd; + +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; +import com.engine.core.interceptor.CommandContext; +import org.apache.commons.lang3.StringUtils; +import org.apache.http.HttpEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.util.EntityUtils; +import org.dom4j.Document; +import org.dom4j.DocumentHelper; +import org.dom4j.Element; +import weaver.general.BaseBean; +import weaver.general.Util; + +import java.io.IOException; +import java.nio.charset.Charset; +import java.util.*; + +public class InvSearchListCmd extends AbstractCommonCommand> { + @Override + public BizLogContext getLogContext() { + return null; + } + + public InvSearchListCmd(Map params) { + this.params = params; + } + @Override + public Map execute(CommandContext commandContext) { + + List> list = new ArrayList>(); + Map apidatas = new HashMap(); + BaseBean bb = new BaseBean(); + String client = Util.null2String(params.get("client")); + bb.writeLog("InvSearchListCmd-client:"+client); + + if(StringUtils.isNotEmpty(client)){ + + String MATNR = Util.null2String(params.get("MATNR")); + String ZMATNR = Util.null2String(params.get("ZMATNR")); + String WERKS = Util.null2String(params.get("WERKS")); + String ZWERKS = Util.null2String(params.get("ZWERKS")); + String LGORT = Util.null2String(params.get("LGORT")); + String ZLGORT = Util.null2String(params.get("ZLGORT")); + String CHARG = Util.null2String(params.get("CHARG")); + String ZCHARG = Util.null2String(params.get("ZCHARG")); + String MTART = Util.null2String(params.get("MTART")); + String ZMTART = Util.null2String(params.get("ZMTART")); + String MATKL = Util.null2String(params.get("MATKL")); + String ZMATKL = Util.null2String(params.get("ZMATKL")); + String ZPCBX = Util.null2String(params.get("ZPCBX")); + String ZFLKC = Util.null2String(params.get("ZFLKC")); + String ID = Util.null2String(params.get("ID")); + + String MAKTX = Util.null2String(params.get("MAKTX")); + String ZMAKTX = Util.null2String(params.get("ZMAKTX")); + + + if(!"".equals(MATNR) || !"".equals(ID)){ + if(!"".equals(ID)) + { + if(ID.contains("#&#")){ + String[] datas = ID.split("#&#"); + String data = datas[0]; + MAKTX = datas[1]; + String[] param = data.split(","); + WERKS = param[0]; + CHARG = param[1]; + LGORT = param[2]; + ZPCBX = param[3]; + MATNR = param[4]; + }else{ + String[] param = ID.split(","); + WERKS = param[0]; + CHARG = param[1]; + LGORT = param[2]; + ZPCBX = param[3]; + MATNR = param[4]; + } + } + + bb.writeLog("WERKS:"+WERKS); + bb.writeLog("CHARG:"+CHARG); + bb.writeLog("LGORT:"+LGORT); + bb.writeLog("ZPCBX:"+ZPCBX); + bb.writeLog("MATNR:"+MATNR); + bb.writeLog("MAKTX:"+MAKTX); + + + MATNR = "*"+MATNR+"*"; + String dataxml = ""+MATNR+""; + + if(!"".equals(ZMATNR)){ + dataxml += ""+ZMATNR+""; + }else{ + dataxml += ""; + } + if(!"".equals(WERKS)){ + dataxml += ""+WERKS+""; + }else{ + dataxml += ""; + } + if(!"".equals(ZWERKS)){ + dataxml += ""+ZWERKS+""; + }else{ + dataxml += ""; + } + if(!"".equals(LGORT)){ + dataxml += ""+LGORT+""; + }else{ + dataxml += ""; + } + if(!"".equals(ZLGORT)){ + dataxml += ""+ZLGORT+""; + }else{ + dataxml += ""; + } + + if(!"".equals(CHARG)){ + if("X".equalsIgnoreCase(CHARG)){ + dataxml += ""; + }else{ + dataxml += ""+CHARG+""; + } + ZPCBX = "X"; + }else{ + dataxml += ""; + } + if(!"".equals(ZCHARG)){ + dataxml += ""+ZCHARG+""; + }else{ + dataxml += ""; + } + if(!"".equals(MTART)){ + dataxml += ""+MTART+""; + }else{ + dataxml += ""; + } + if(!"".equals(ZMTART)){ + dataxml += ""+ZMTART+""; + }else{ + dataxml += ""; + } + if(!"".equals(MATKL)){ + dataxml += ""+MATKL+""; + }else{ + dataxml += ""; + } + if(!"".equals(ZMATKL)){ + dataxml += ""+ZMATKL+""; + }else{ + dataxml += ""; + } + if(!"".equals(ZPCBX)){ + dataxml += ""+ZPCBX+""; + }else{ + dataxml += ""; + } + + if(!"".equals(ZFLKC)){ + if("X".equalsIgnoreCase(ZFLKC)){ + dataxml += "X"; + }else{ + dataxml += ""+ZFLKC+""; + } + }else{ + dataxml += ""; + } + + MAKTX = "*"+MAKTX+"*"; + dataxml += ""+MAKTX+""; +// if(!"".equals(MAKTX)){ +// dataxml += ""+MAKTX+""; +// }else{ +// dataxml += ""; +// } + + if(!"".equals(ZMAKTX)){ + dataxml += ""+ZMAKTX+""; + }else{ + dataxml += ""; + } + + //String wsdl = "http://lemqas.lemtech.cn:8000/sap/bc/srt/rfc/sap/zmm_inventoryinfo_query/240/zmm_inventoryinfo_query/zmm_inventoryinfo_query" ; + //http://lemprd.lemtech.cn:8000/sap/bc/srt/wsdl/flv_10002A111AD1/srvc_url/sap/bc/srt/rfc/sap/zmm_inventoryinfo_query/300/zmm_inventoryinfo_query/zmm_inventoryinfo_query?sap-client=300 + //http://lemprd.lemtech.cn:8000/sap/bc/srt/rfc/sap/zmm_inventoryinfo_query/300/zmm_inventoryinfo_query/zmm_inventoryinfo_query + + String saphost = bb.getPropValue("CGDD_WORKFLOW","SAPHOST"); + String wsdl = saphost+"/sap/bc/srt/rfc/sap/zmm_inventoryinfo_query/"+client+"/zmm_inventoryinfo_query/zmm_inventoryinfo_query" ; + + String soapAction = "urn:sap-com:document:sap:rfc:functions:ZMM_INVENTORYINFO_QUERY:ZMM_INVENTORYINFO_QUERYRequest"; + + String I_DATA = " \n" + + " "+dataxml+"]]>" ; + String xml= " \n" + + " \n" + + " \n" + + " \n" + + " "+I_DATA+"\n" + + " \n" + + " \n" + + " "; + + System.out.println("xml:"+xml); + + try { + list = doPostSoap(wsdl,xml,soapAction,ZPCBX); + bb.writeLog("list:"+list.size()); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + int count = 0; + if(list !=null && list.size() > 0){ + count = list.size(); + } + apidatas.put("list",list); + apidatas.put("count",count); + return apidatas; + } + + /*** + * + * @param url + * @param soapXml + * @param soapAction + * @return + * @throws Exception + */ + public List> doPostSoap(String url, String soapXml, String soapAction,String ZPCBX) throws Exception + { + + List> list = new ArrayList>(); + BaseBean log = new BaseBean(); + + log.writeLog("url:"+url); + log.writeLog("soapXml:"+soapXml); + log.writeLog("soapAction:"+soapAction); + + HttpClientBuilder httpClientBuilder = HttpClientBuilder.create(); + CloseableHttpClient closeableHttpClient = httpClientBuilder.build(); + HttpPost httpPost = new HttpPost(url); + //设置请求和传输超时时间 + String result = ""; + CloseableHttpResponse response = null; + List> logList = new ArrayList>(); + try { + httpPost.setHeader("Content-Type", "text/xml;charset=UTF-8"); + httpPost.setHeader("SOAPAction", soapAction); + //httpPost.addHeader(new BasicHeader("Authorization", "Basic " + new String(Base64.encode(userpass.getBytes())))); + StringEntity data = new StringEntity(soapXml, Charset.forName("UTF-8")); + log.writeLog("data:"+data.toString()); + httpPost.setEntity(data); + response = closeableHttpClient.execute(httpPost); + HttpEntity httpEntity = response.getEntity(); + if (httpEntity != null) + { + result = EntityUtils.toString(httpEntity, "UTF-8"); + log.writeLog("result:"+result); + if(!"".equals(result)) + { + Document doc = DocumentHelper.parseText(result); + Element topEle = doc.getRootElement(); + Element bodyEle = topEle.element("Body"); + Element rootEle = bodyEle.element("ZMM_INVENTORYINFO_QUERYResponse"); + Element O_DATA = rootEle.element("O_DATA"); + + //String returnData = new String(O_DATA.getText().getBytes("GBK"),"UTF-8"); + + String returnData = O_DATA.getText(); + log.writeLog("returnData:"+returnData); + + Map map = null; + if(!"".equals(returnData)) + { + Document dataDoc = DocumentHelper.parseText(returnData); + Element topDataEle = dataDoc.getRootElement(); + log.writeLog("topDataEle:"+topDataEle.asXML()); + + List nodes = topDataEle.elements("ITEM"); + for (Iterator it = nodes.iterator(); it.hasNext();) { + Element elm = (Element) it.next(); + log.writeLog("elm:"+elm.asXML()); + + Element MATNREle = elm.element("MATNR"); + String MATNR = MATNREle.getText(); + + Element MAKTXEle = elm.element("MAKTX"); + String MAKTX = MAKTXEle.getText(); + + Element WERKSEle = elm.element("WERKS"); + String WERKS = WERKSEle.getText(); + + Element NAME1Ele = elm.element("NAME1"); + String NAME1 = NAME1Ele.getText(); + + Element MEINSEle = elm.element("MEINS"); + String MEINS = MEINSEle.getText(); + + Element SALK3Ele = elm.element("SALK3"); + String SALK3 = SALK3Ele.getText(); + + Element LABSTEle = elm.element("LABST"); + String LABST = LABSTEle.getText(); + + Element WAERSEle = elm.element("WAERS"); + String WAERS = WAERSEle.getText(); + + Element MTARTEle = elm.element("MTART"); + String MTART = MTARTEle.getText(); + + Element MATKLEle = elm.element("MATKL"); + String MATKL = MATKLEle.getText(); + + Element CHARGEle = elm.element("CHARG"); + String CHARG = CHARGEle.getText(); + + Element LGORTEle = elm.element("LGORT"); + String LGORT = LGORTEle.getText(); + + Element LGOBEEle = elm.element("LGOBE"); + String LGOBE = LGOBEEle.getText(); + + + map = new HashMap(); + map.put("MATNR",MATNR); + map.put("CHARG",CHARG); + map.put("WERKS",WERKS); + map.put("LGORT",LGORT); + map.put("MAKTX",MAKTX); + map.put("LGOBE",LGOBE); + map.put("NAME1",NAME1); + map.put("MEINS",MEINS); + map.put("SALK3",SALK3); + map.put("LABST",LABST); + map.put("WAERS",WAERS); + map.put("MTART",MTART); + map.put("MATKL",MATKL); //WERKS //LGORT + + map.put("ID",WERKS+","+CHARG+","+LGORT+","+ZPCBX+","+MATNR+"#&#"+MAKTX); + list.add(map); + + } + } + } + } + } catch (Exception e) { + log.writeLog("e:"+e); + } finally { + if (response != null) { + try { + EntityUtils.consume(response.getEntity()); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + return list; + } +} diff --git a/src/weaver/interfaces/sap/action/LdCgddUpdateCgsqTzAction.java b/src/weaver/interfaces/sap/action/LdCgddUpdateCgsqTzAction.java new file mode 100755 index 0000000..fe72501 --- /dev/null +++ b/src/weaver/interfaces/sap/action/LdCgddUpdateCgsqTzAction.java @@ -0,0 +1,154 @@ +package weaver.interfaces.sap.action; + +import com.weaver.general.BaseBean; +import weaver.conn.RecordSet; +import weaver.general.Util; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.RequestInfo; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author ZhangLei + * @date 2021/7/1 + * 采购订单更新采购申请信息状态 + */ +public class LdCgddUpdateCgsqTzAction implements Action { + + + @Override + public String execute(RequestInfo requestInfo) { + BaseBean bb = new BaseBean(); + String requestid = requestInfo.getRequestid(); + String billtable = requestInfo.getRequestManager().getBillTableName(); + + RecordSet rs = new RecordSet(); + bb.writeLog("----LdCgddUpdateCgsqTzAction------"); + try { + String mainid = "" ; + String ebeln = "" ; + String client = "" ; + String sql = " select id,ebeln,client from "+billtable+" where requestid="+requestid; + rs.execute(sql); + if(rs.next()){ + mainid = Util.null2String(rs.getString("id")); + ebeln = Util.null2String(rs.getString("ebeln")); + client = Util.null2String(rs.getString("client")); + } + bb.writeLog("----mainid------"+mainid); + if(!"".equals(mainid)) + { + List> list = new ArrayList>(); + Map map = null; + sql = " select ebelp,banfn,bnfpo,menge from "+billtable+"_dt1 where mainid="+mainid; + bb.writeLog("----sql------"+sql); + rs.execute(sql); + while (rs.next()){ + String ebelp = Util.null2String(rs.getString("ebelp")); + String banfn = Util.null2String(rs.getString("banfn")); + String bnfpo = Util.null2String(rs.getString("bnfpo")); + String menge = Util.null2String(rs.getString("menge")); + map = new HashMap(); + map.put("ebelp",ebelp); + map.put("bnfpo",bnfpo); + map.put("menge",menge); + map.put("banfn",banfn); //pr + list.add(map); + } + + int err_count = 0; + for(int i=0;i datamap = list.get(i); + + String ebelp = datamap.get("ebelp"); + String bnfpo = datamap.get("bnfpo"); + String banfn = datamap.get("banfn"); //pr + bb.writeLog("----bnfpo------"+bnfpo); + if(!"".equals(bnfpo)){ + for(int k=0;k0){ + requestInfo.getRequestManager().setMessageid("1000"); + requestInfo.getRequestManager().setMessagecontent("更新采购申请台账异常"); + return Action.FAILURE_AND_CONTINUE; + } + }else{ + + requestInfo.getRequestManager().setMessageid("1000"); + requestInfo.getRequestManager().setMessagecontent("获取流程数据异常"); + return Action.FAILURE_AND_CONTINUE; + } + + }catch (Exception e){ + requestInfo.getRequestManager().setMessageid("1000"); + requestInfo.getRequestManager().setMessagecontent("流程提交接口异常"); + return Action.FAILURE_AND_CONTINUE; + } + + return Action.SUCCESS; + } +} diff --git a/src/weaver/interfaces/sap/action/ZMM_MATERIALDATA_AddDt_Action.java b/src/weaver/interfaces/sap/action/ZMM_MATERIALDATA_AddDt_Action.java new file mode 100755 index 0000000..ebaa686 --- /dev/null +++ b/src/weaver/interfaces/sap/action/ZMM_MATERIALDATA_AddDt_Action.java @@ -0,0 +1,167 @@ +package weaver.interfaces.sap.action; + + +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.RequestInfo; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @program: ecology9kf + * @description: + * @author: shilei + * @create: 2021-09-24 10:14 + **/ +public class ZMM_MATERIALDATA_AddDt_Action implements Action { + + @Override + public String execute(RequestInfo requestInfo) { + + String requestid = requestInfo.getRequestid(); + String billtable = requestInfo.getRequestManager().getBillTableName(); + + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + bb.writeLog("ZMM_MATERIALDATA_AddDt_Action-----------------"); + + try { + + String SICHT_V = "" ; + String SICHT_B = "" ; + String SICHT_D = "" ; + String mainid = "" ; + String sql = " select id,SICHT_V,SICHT_B,SICHT_D from "+billtable+" where requestid="+requestid; + bb.writeLog("sql:"+sql); + rs.execute(sql); + if(rs.next()){ + SICHT_V = Util.null2String(rs.getString("SICHT_V")); + SICHT_B = Util.null2String(rs.getString("SICHT_B")); + SICHT_D = Util.null2String(rs.getString("SICHT_D")); + mainid = Util.null2String(rs.getString("id")); + } + + bb.writeLog("SICHT_V:"+SICHT_V); + bb.writeLog("SICHT_B:"+SICHT_B); + bb.writeLog("SICHT_D:"+SICHT_D); + bb.writeLog("mainid:"+mainid); + + List> list = new ArrayList>(); + Map map = null; + + sql = " select item,matnr from "+billtable+"_dt1 where mainid="+mainid; + bb.writeLog("sql:"+sql); + rs.execute(sql); + while (rs.next()){ + String item = Util.null2String(rs.getString("item")); + String matnr = Util.null2String(rs.getString("matnr")); + + map = new HashMap(); + map.put("item",item); + map.put("matnr",matnr); + map.put("mainid",mainid); + list.add(map); + } + + int count = 0; + if("X".equalsIgnoreCase(SICHT_V)) + { + for(int i=0;i datamap = list.get(i); + String matnr = Util.null2String(datamap.get("matnr")); + String item = Util.null2String(datamap.get("item")); + String id = "" ; + sql = " select id from "+billtable+"_dt5 where matnr='"+matnr+"' and item='"+item+"' and mainid="+mainid; + bb.writeLog("sql:"+sql); + rs.execute(sql); + if(rs.next()){ + id = Util.null2String(rs.getString("id")); + } + bb.writeLog("id:"+id); + if("".equals(id)){ + sql = " insert into "+billtable+"_dt5(mainid,item,matnr)values("+mainid+",'"+item+"','"+matnr+"') "; + bb.writeLog("sql:"+sql); + boolean flag = rs.execute(sql); + if(!flag){ + count++; + } + } + } + + } + + if("X".equalsIgnoreCase(SICHT_B)){ + + + for(int i=0;i datamap = list.get(i); + String matnr = Util.null2String(datamap.get("matnr")); + String item = Util.null2String(datamap.get("item")); + String id = "" ; + sql = " select id from "+billtable+"_dt3 where matnr='"+matnr+"' and item='"+item+"' and mainid="+mainid; + bb.writeLog("sql:"+sql); + rs.execute(sql); + if(rs.next()){ + id = Util.null2String(rs.getString("id")); + } + bb.writeLog("id:"+id); + if("".equals(id)){ + sql = " insert into "+billtable+"_dt3(mainid,item,matnr)values("+mainid+",'"+item+"','"+matnr+"') "; + bb.writeLog("sql:"+sql); + boolean flag = rs.execute(sql); + if(!flag){ + count++; + } + } + } + } + + if("X".equalsIgnoreCase(SICHT_D)){ + for(int i=0;i datamap = list.get(i); + String matnr = Util.null2String(datamap.get("matnr")); + String item = Util.null2String(datamap.get("item")); + String id = "" ; + sql = " select id from "+billtable+"_dt4 where matnr='"+matnr+"' and item='"+item+"' and mainid="+mainid; + bb.writeLog("sql:"+sql); + rs.execute(sql); + if(rs.next()){ + id = Util.null2String(rs.getString("id")); + } + bb.writeLog("id:"+id); + if("".equals(id)){ + sql = " insert into "+billtable+"_dt4(mainid,item,matnr)values("+mainid+",'"+item+"','"+matnr+"') "; + bb.writeLog("sql:"+sql); + boolean flag = rs.execute(sql); + if(!flag){ + count++; + } + } + } + } + + bb.writeLog("count:"+count); + if(count > 0){ + requestInfo.getRequestManager().setMessageid("1000"); + requestInfo.getRequestManager().setMessagecontent("增加销售视图、MRP/工厂视图、会计视图异常出错"); + return Action.FAILURE_AND_CONTINUE; + } + } catch (Exception e) { + requestInfo.getRequestManager().setMessageid("1000"); + requestInfo.getRequestManager().setMessagecontent("接口异常"); + return Action.FAILURE_AND_CONTINUE; + } + return Action.SUCCESS; + } + + +} + diff --git a/src/weaver/interfaces/sap/action/ZMM_MATERIALDATA_CHECK_Action.java b/src/weaver/interfaces/sap/action/ZMM_MATERIALDATA_CHECK_Action.java new file mode 100755 index 0000000..8f63b7e --- /dev/null +++ b/src/weaver/interfaces/sap/action/ZMM_MATERIALDATA_CHECK_Action.java @@ -0,0 +1,156 @@ +package weaver.interfaces.sap.action; + +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.RequestInfo; + +import java.util.ArrayList; +import java.util.List; + +/** + * @program: ecology9kf + * @description: + * @author: shilei + * @create: 2021-09-24 10:14 + **/ +public class ZMM_MATERIALDATA_CHECK_Action implements Action { + + @Override + public String execute(RequestInfo requestInfo) { + + String requestid = requestInfo.getRequestid(); + String billtable = requestInfo.getRequestManager().getBillTableName(); + + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + bb.writeLog("step1-----------------"); + try { + String client = "" ; + String sql =" SELECT client FROM " + billtable + " WHERE REQUESTID=" + requestid; + rs.execute(sql); + if (rs.next()) { + client = Util.null2String(rs.getString("client")); + } + + int groupcount = 0; + String group_matnr = ""; + String groupSql=" SELECT * FROM (SELECT ROW_NUMBER() OVER (PARTITION BY MATNR,ZFLAGJTC ORDER BY B.ID) AS XH,B.ID,B.MATNR" + + " FROM "+billtable+" A \n" + + " INNER JOIN "+billtable+"_dt1 B ON A.ID=B.MAINID \n" + + " WHERE REQUESTID = "+requestid + " and ZFLAGJTC = 1 and client = '"+client+"'" + + " ) W WHERE W.XH=2 "; + bb.writeLog("groupSql----:"+groupSql); + rs.execute(groupSql); + if (rs.next()){ + groupcount++; + group_matnr = Util.null2String(rs.getString("MATNR")); + } + + if(groupcount > 0){ + + requestInfo.getRequestManager().setMessage("1234"); + requestInfo.getRequestManager().setMessagecontent("基础视图存中物料编号:"+group_matnr+"有多行业务标识为新增的数据,无法提交!"); + return Action.FAILURE_AND_CONTINUE; + } + + List matnrList = new ArrayList(); + sql =" SELECT B.MATNR " + + " FROM "+billtable+" A \n" + + " INNER JOIN "+billtable+"_dt1 B ON A.ID=B.MAINID \n" + + " WHERE REQUESTID = "+requestid + " and b.ZFLAGJTC=1 and client='"+client+"'"; + + rs.execute(sql); + while (rs.next()){ + String MATNR = Util.null2String(rs.getString("MATNR")); + matnrList.add(MATNR); + } + + int count = 0; + String requestname = "" ; + String matnr_new = "" ; + String request_id = "" ; + for(String MATNR : matnrList){ + groupSql= " SELECT B.ID,B.MATNR,A.REQUESTID,H.REQUESTMARK,H.REQUESTNAME \n" + + " FROM "+billtable+" A \n" + + " INNER JOIN "+billtable+"_dt1 B ON A.ID=B.MAINID \n" + + " INNER JOIN WORKFLOW_REQUESTBASE H ON H.REQUESTID = A.REQUESTID\n" + + " WHERE A.REQUESTID != "+requestid+" \n" + + " AND B.MATNR='"+MATNR+"'\n" + + " AND H.CURRENTNODETYPE = 3\n" ; + bb.writeLog("groupSql----:"+groupSql); + rs.execute(groupSql); + if(rs.next()){ + count++; + requestname = Util.null2String(rs.getString("REQUESTNAME")); + matnr_new = Util.null2String(rs.getString("MATNR")); + request_id = Util.null2String(rs.getString("REQUESTID")); + } + } + + if(count > 0 && !"".equals(requestname)){ + requestInfo.getRequestManager().setMessage("1234"); + requestInfo.getRequestManager().setMessagecontent("物料编号"+matnr_new+",在流程 "+requestname+" 中已新增,无法再次新增!"); + return Action.FAILURE_AND_CONTINUE; + } + + + String factory_matnr = "" ; + String factory_werks = "" ; + int factorycount = 0; + String factorySql = " SELECT * FROM (SELECT ROW_NUMBER() OVER (PARTITION BY MATNR,B.WERKS ORDER BY B.ID) AS XH,B.ID,B.MATNR,B.WERKS" + + " FROM "+billtable+" A \n" + + " INNER JOIN "+billtable+"_dt4 B ON A.ID=B.MAINID \n" + + " WHERE REQUESTID = "+requestid + " and ZFLAGGCC = 1" + + " ) W WHERE W.XH=2 "; + bb.writeLog("factorySql----:"+factorySql); + rs.execute(factorySql); + if (rs.next()){ + factorycount++; + factory_matnr = Util.null2String(rs.getString("MATNR")); + factory_werks = Util.null2String(rs.getString("WERKS")); + } + bb.writeLog("factorycount----:"+factorycount); + if(factorycount > 0){ + requestInfo.getRequestManager().setMessage("1234"); + requestInfo.getRequestManager().setMessagecontent("工厂视图存中物料编号:"+factory_matnr+",工厂:"+factory_werks+"有多行业务标识为新增的数据,无法提交!"); + return Action.FAILURE_AND_CONTINUE; + } + + + + String sale_matnr = "" ; + String sale_vkorg = "" ; + String sale_vtweg = "" ; + int salecount = 0; + String saleSql = " SELECT * FROM (SELECT ROW_NUMBER() OVER (PARTITION BY MATNR,VKORG,VTWEG ORDER BY B.ID) AS XH,B.ID,B.MATNR,B.VKORG,B.VTWEG" + + " FROM "+billtable+" A \n" + + " INNER JOIN "+billtable+"_dt5 B ON A.ID=B.MAINID \n" + + " WHERE REQUESTID = "+requestid + " and ZFLAGXSZZC = 1" + + " ) W WHERE W.XH=2 "; + bb.writeLog("saleSql----:"+saleSql); + rs.execute(saleSql); + if (rs.next()){ + salecount++; + sale_matnr = Util.null2String(rs.getString("MATNR")); + sale_vkorg = Util.null2String(rs.getString("VKORG")); + sale_vtweg = Util.null2String(rs.getString("VTWEG")); + } + bb.writeLog("salecount----:"+salecount); + if(salecount > 0){ + requestInfo.getRequestManager().setMessageid("1234"); + requestInfo.getRequestManager().setMessagecontent("工厂视图存中物料编号:"+sale_matnr+",销售组织:"+sale_vkorg+",分销渠道:"+sale_vtweg+"有多行业务标识为新增的数据,无法提交!"); + return Action.FAILURE_AND_CONTINUE; + } + + } catch (Exception e) { + requestInfo.getRequestManager().setMessageid("1000"); + requestInfo.getRequestManager().setMessagecontent("接口异常"); + return Action.FAILURE_AND_CONTINUE; + } + return Action.SUCCESS; + } + +} + diff --git a/src/weaver/interfaces/sap/action/ZMM_MATERIALDATA_MAINTAIN_Action.java b/src/weaver/interfaces/sap/action/ZMM_MATERIALDATA_MAINTAIN_Action.java new file mode 100644 index 0000000..33ad633 --- /dev/null +++ b/src/weaver/interfaces/sap/action/ZMM_MATERIALDATA_MAINTAIN_Action.java @@ -0,0 +1,592 @@ +package weaver.interfaces.sap.action; + +import com.engine.ld.functions.sap.wlzsjnew.ZMM_MATERIALDATA_MAINTAIN_PortType; +import com.engine.ld.functions.sap.wlzsjnew.ZMM_MATERIALDATA_MAINTAIN_ServiceLocator; +import com.engine.ld.utils.DealXml; +import org.apache.commons.lang3.StringUtils; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.RequestInfo; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; +import java.io.ByteArrayOutputStream; +import java.net.URL; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @program: ecology9kf + * @description: + * @author: shilei + * @create: 2021-09-24 10:14 + **/ +public class ZMM_MATERIALDATA_MAINTAIN_Action implements Action { + + @Override + public String execute(RequestInfo requestInfo) { + + String requestid = requestInfo.getRequestid(); + String billtable = requestInfo.getRequestManager().getBillTableName(); + + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + bb.writeLog("step1-----------------"); + + List> dataList = new ArrayList>(); + Map dataMap = null; + try { + bb.writeLog("ZMM_MATERIALDATA_MAINTAIN_Action"); + String saphost = bb.getPropValue("CGDD_WORKFLOW","SAPHOST"); + bb.writeLog("ZMM_MATERIALDATA_MAINTAIN_Action-saphost:"+saphost); + String client = "" ; + String sql =" SELECT id,client FROM " + billtable + " WHERE REQUESTID=" + requestid; + rs.execute(sql); + if (rs.next()){ + client = Util.null2String(rs.getString("client")); + } + bb.writeLog("ZMM_MATERIALDATA_MAINTAIN_Action-client:"+client); + if(StringUtils.isNotEmpty(client)){ + String wsdl = saphost+"/sap/bc/srt/rfc/sap/zmm_materialdata_maintain/"+client+"/zmm_materialdata_maintain/zmm_materialdata_maintain" ; + bb.writeLog("ZMM_MATERIALDATA_MAINTAIN_Action-wsdl:"+wsdl); + URL wsdlUrl = new URL(wsdl); + bb.writeLog("START-SAP"); + + String[] groupParams = {"MATNR","MTART","ZSPRAS","ZMAKTX","ESPRAS", + "EMAKTX","MEINS","MATKL","BISMT","SPART","MSTAE","MSTDE", + "MTPOS_MARA","BRGEW","NTGEW","GEWEI","GROES","CLASS","XCHPF", + "MSTAV","MSTDV","ALAND","TATYP","TAXKM","TRAGR","RAUBE", + "IPRKZ","ZFLAGJTC","SICHT_K","SICHT_V","SICHT_E","SICHT_D", + "SICHT_P","SICHT_A","SICHT_F","SICHT_L","SICHT_S","SICHT_Q", + "SICHT_B","SICHT_G","ZCLASS_S","LOEVMJTC","BSTME","VABME", + "MFRPN","MPROF","MFRNR","UMREN","UMREZ","MEINH","SPRAS","TDLINE"}; + + + String[] factoryParams = {"MATNR","WERKS","LGORT","EKGRP","MTVFP","LADGR","PRCTR", + "MMSTA","DISMM","DISPO","DISLS","BSTMI","BSTRF","BESKZ", + "SOBSL","LGPRO","RGEKZ","LGFSB","DZEIT","PLIFZ","WEBAZ", + "MRPPP","FHORI","EISBE","EISLO","PERKZ","STRGR","VRMOD", + "VINT1","VINT2","SBDKZ","FEVOR","SFCPF","UEETO","BKLAS", + "VPRSV","PEINH","VERPR","STPRS","EKALR","HKMAT","AWSLS", + "LOSGR","MEINS","ZFLAGGCC","LOEVMGCC","INSMK","NCOST"}; + + + String[] saleParams = {"MATNR","VKORG","VTWEG","DWERK","SKTOF","VERSG","KONDM","KTGRM","MTPOS", + "PRODH","ZFLAGXSZZC","LOEVMXSZZC"}; + + List> groupList = new ArrayList>(); + Map groupmap = null; + String groupSql=" SELECT ZFLAGJTC,LOEVMJTC,MATNR,MTART,ZSPRAS,ZMAKTX,ESPRAS,EMAKTX,MEINS,\n" + + " MATKL,SPART,MSTAE,MSTDE,MTPOS_MARA,BRGEW,NTGEW,GEWEI,GROES,CLASS,XCHPF,\n" + + " MSTAV,MSTDV,ALAND,TATYP,TAXKM,TRAGR,RAUBE,IPRKZ,ZFLAG,SICHT_K,SICHT_V,\n" + + " SICHT_E,SICHT_D,SICHT_A,SICHT_F,SICHT_L,SICHT_S,SICHT_B,SICHT_G,ZCLASS_S,\n" + + " LOEVM,BSTME,VABME,MFRPN,UMREN,UMREZ,MPROF,MFRNR,MEINH,B.ID,B.SPRAS,B.TDLINE" + + " FROM "+billtable+" A \n" + + " inner JOIN "+billtable+"_DT1 B ON A.ID=B.MAINID \n" + + " WHERE A.REQUESTID = "+requestid+" AND (B.BS IS NULL OR B.BS='1') "; + + bb.writeLog("groupSql:"+groupSql); + rs.execute(groupSql); + while (rs.next()){ + groupmap = new HashMap(); + groupmap.put("ID",rs.getString("ID")); + for (String param : groupParams) { + groupmap.put(param, Util.null2String(rs.getString(param))); + } + groupList.add(groupmap); + } + + for(int k=0;k groupMap = groupList.get(k); + String MATNR = Util.null2String(groupMap.get("MATNR")); + String ZFLAGJTC = Util.null2String(groupMap.get("ZFLAGJTC")); + String ID = Util.null2String(groupMap.get("ID")); + + List> factoryList = new ArrayList>(); + Map factorymap = null; + + String factorySql = " SELECT ZFLAGGCC,LOEVMGCC,D.WERKS,LGORT,EKGRP,MTVFP,LADGR,PRCTR,MMSTA,DISMM,\n" + + " DISPO,DISLS,BSTMI,BSTRF,SOBSL,LGPRO,RGEKZ,LGFSB,DZEIT,PLIFZ,WEBAZ,\n" + + " MRPPP,FHORI,EISBE,EISLO,STRGR,VRMOD,VINT1,VINT2,SBDKZ,FEVOR,SFCPF,\n" + + " UEETO,BKLAS,VPRSV,PEINH,VERPR,c.STPRS,EKALR,HKMAT,AWSLS,LOSGR,d.MEINS,\n" + + " D.MATNR,D.BESKZ,INSMK,d.id as dt4id,c.id as dt3id,c.NCOST \n" + + " FROM "+billtable+" F \n" + + " INNER JOIN "+billtable+"_DT4 D ON F.ID = D.MAINID AND (d.BS IS NULL OR d.BS='1') \n" + + " LEFT JOIN "+billtable+"_DT3 C ON F.ID = C.MAINID AND C.WERKS= D.WERKS and c.MATNR = D.MATNR AND (c.BS IS NULL OR c.BS='1') \n" + + " WHERE F.REQUESTID="+requestid+" AND D.MATNR='"+ MATNR+"'" ; + + bb.writeLog("factorySql:"+factorySql); + rs.execute(factorySql); + while (rs.next()){ + factorymap = new HashMap(); + factorymap.put("DT4ID",rs.getString("dt4id")); + factorymap.put("DT3ID",rs.getString("dt3id")); + for (String param : factoryParams) { + factorymap.put(param, Util.null2String(rs.getString(param))); + } + factoryList.add(factorymap); + } + + List> saleList = new ArrayList>(); + Map salemap = null; + String saleSql =" select matnr,vkorg,vtweg,dwerk,sktof,versg,kondm,ktgrm,mtpos,prodh,zflagxszzc,loevmxszzc,b.id as dt5id " + + " from "+billtable+" a " + + " inner join "+billtable+"_dt5 b on a.id=b.mainid " + + " where a.requestid = "+requestid +" and b.MATNR='"+MATNR+"' " + + " and (b.BS IS NULL OR b.BS='1') "; + bb.writeLog("saleSql:"+saleSql); + rs.execute(saleSql); + while (rs.next()){ + salemap = new HashMap(); + salemap.put("DT5ID",rs.getString("dt5id")); + for (String param : saleParams) { + salemap.put(param, Util.null2String(rs.getString(param))); + } + saleList.add(salemap); + } + + bb.writeLog("saleList:"+saleList.size()); + + if("1".equals(ZFLAGJTC)) + { + int xml_count = 0; + int factory_count = factoryList.size() ; + int saleList_count = saleList.size() ; + if(factory_count >= saleList_count){ + xml_count = factory_count; + }else{ + xml_count = saleList_count; + } + + if(xml_count == 0){ + + Map factoryMap = new HashMap(); + for (String param : factoryParams) { + factoryMap.put(param, ""); + } + + Map saleMap = new HashMap(); + for (String param : saleParams) { + saleMap.put(param, ""); + } + + dataMap = new HashMap(); + dataMap.put("ID",ID); + dataMap.put("DT4ID",""); + dataMap.put("DT3ID",""); + dataMap.put("DT5ID",""); + + String dataxml = createFactoryXml(groupMap,groupParams,factoryMap,factoryParams,saleMap,saleParams); + dataMap.put("dataxml",dataxml); + dataList.add(dataMap); + + }else{ + int groupcount = 0; + for(int p=0;p factoryMap = null; + if(p < factory_count){ + factoryMap = factoryList.get(p); + }else{ + factoryMap = new HashMap(); + for (String param : factoryParams) { + factoryMap.put(param, ""); + } + } + + Map saleMap = null; + if(p < saleList_count){ + saleMap = saleList.get(p); + }else{ + saleMap = new HashMap(); + for (String param : saleParams) { + saleMap.put(param, ""); + } + } + + dataMap = new HashMap(); + dataMap.put("ID",ID); + String dt4id = Util.null2String(factoryMap.get("DT4ID")); + String dt3id = Util.null2String(factoryMap.get("DT3ID")); + String dt5id = Util.null2String(saleMap.get("DT5ID")); + dataMap.put("DT4ID",dt4id); + dataMap.put("DT3ID",dt3id); + dataMap.put("DT5ID",dt5id); + + if(groupcount == 0){ + String dataxml = createFactoryXml(groupMap,groupParams,factoryMap,factoryParams,saleMap,saleParams); + dataMap.put("dataxml",dataxml); + dataList.add(dataMap); + }else{ + groupMap.put("ZFLAGJTC","2"); + String dataxml =createFactoryXml(groupMap,groupParams,factoryMap,factoryParams,saleMap,saleParams); + dataMap.put("dataxml",dataxml); + dataList.add(dataMap); + } + groupcount++; + } + } + }else { + int xml_count = 0; + int factory_count = factoryList.size() ; + int saleList_count = saleList.size() ; + if(factory_count >= saleList_count){ + xml_count = factory_count; + }else{ + xml_count = saleList_count; + } + + + if(xml_count == 0){ + + Map factoryMap = new HashMap(); + for (String param : factoryParams) { + factoryMap.put(param, ""); + } + + Map saleMap = new HashMap(); + for (String param : saleParams) { + saleMap.put(param, ""); + } + + dataMap = new HashMap(); + dataMap.put("ID",ID); + dataMap.put("DT4ID",""); + dataMap.put("DT3ID",""); + dataMap.put("DT5ID",""); + + String dataxml = createFactoryXml(groupMap,groupParams,factoryMap,factoryParams,saleMap,saleParams); + + dataMap.put("dataxml",dataxml); + dataList.add(dataMap); + + }else{ + for(int p=0;p factoryMap = null; + if(p < factory_count){ + factoryMap = factoryList.get(p); + }else{ + factoryMap = new HashMap(); + for (String param : factoryParams) { + factoryMap.put(param, ""); + } + } + + Map saleMap = null; + if(p < saleList_count){ + saleMap = saleList.get(p); + }else{ + saleMap = new HashMap(); + for (String param : saleParams) { + saleMap.put(param, ""); + } + } + + dataMap = new HashMap(); + dataMap.put("ID",ID); + String dt4id = Util.null2String(factoryMap.get("DT4ID")); + String dt3id = Util.null2String(factoryMap.get("DT3ID")); + String dt5id = Util.null2String(saleMap.get("DT5ID")); + dataMap.put("DT4ID",dt4id); + dataMap.put("DT3ID",dt3id); + dataMap.put("DT5ID",dt5id); + + String dataxml = createFactoryXml(groupMap,groupParams,factoryMap,factoryParams,saleMap,saleParams); + dataMap.put("dataxml",dataxml); + dataList.add(dataMap); + } + } + } + } + + for(int k=0;k dataxmlMap = dataList.get(k); + String data_xml = dataxmlMap.get("dataxml"); + String ID = dataxmlMap.get("ID"); + String DT4ID = dataxmlMap.get("DT4ID"); + String DT3ID = dataxmlMap.get("DT3ID"); + String DT5ID = dataxmlMap.get("DT5ID"); + bb.writeLog(data_xml); + bb.writeLog(ID); + bb.writeLog(DT4ID); + bb.writeLog(DT3ID); + bb.writeLog(DT5ID); + +// ZMM_MATERIALDATA_MAINTAINProxy pp = new ZMM_MATERIALDATA_MAINTAINProxy(); + bb.writeLog("ZMM_MATERIALDATA_MAINTAIN_PortType"); + + ZMM_MATERIALDATA_MAINTAIN_PortType ZMM_MATERIALDATA_MAINTAIN_PortType = new ZMM_MATERIALDATA_MAINTAIN_ServiceLocator().getZMM_MATERIALDATA_MAINTAIN(wsdlUrl); + String SAPBackXml = ZMM_MATERIALDATA_MAINTAIN_PortType.ZMM_MATERIALDATA_MAINTAIN(data_xml); + bb.writeLog("SAP的返回参数是:"+SAPBackXml); + Map sapBackMap = new DealXml().XmlResultMap(SAPBackXml); + String type = sapBackMap.get("TYPE").toString(); + String message = sapBackMap.get("MESSAGE").toString(); + message = message.contains("'") ? message.replace("'","’") : message; + bb.writeLog("解析后SAP的返回结果是:type:"+type+"message:"+message); + + sql = " UPDATE "+billtable+" SET TYPE='"+type+"',MESSAGE='"+message+"' WHERE requestId="+requestid; + boolean flag = rs.executeUpdate(sql); + if(!flag){ + requestInfo.getRequestManager().setMessageid("1000"); + requestInfo.getRequestManager().setMessagecontent("更新SAP返回结果异常"); + return Action.FAILURE_AND_CONTINUE; + } + + String bs = "" ; + if("S".equalsIgnoreCase(type)){ + bs = "0"; + }else{ + bs = "1"; + } + + if(!"".equals(ID)){ + sql = " update "+billtable+"_dt1 set bs='"+bs+"' where id="+ ID; + bb.writeLog(sql); + boolean istrue1 = rs.execute(sql); + if(!istrue1){ + requestInfo.getRequestManager().setMessageid("1000"); + requestInfo.getRequestManager().setMessagecontent("更新SAP返回结果DT1异常"); + return Action.FAILURE_AND_CONTINUE; + } + } + + if(!"".equals(DT3ID)){ + sql = " update "+billtable+"_dt3 set bs='"+bs+"' where id="+ DT3ID; + bb.writeLog(sql); + boolean istrue3 = rs.execute(sql); + if(!istrue3){ + requestInfo.getRequestManager().setMessageid("1000"); + requestInfo.getRequestManager().setMessagecontent("更新SAP返回结果DT3异常"); + return Action.FAILURE_AND_CONTINUE; + } + } + + if(!"".equals(DT4ID)){ + sql = " update "+billtable+"_dt4 set bs='"+bs+"' where id="+ DT4ID; + bb.writeLog(sql); + boolean istrue4 = rs.execute(sql); + if(!istrue4){ + requestInfo.getRequestManager().setMessageid("1000"); + requestInfo.getRequestManager().setMessagecontent("更新SAP返回结果DT4异常"); + return Action.FAILURE_AND_CONTINUE; + } + } + + if(!"".equals(DT5ID)){ + sql = " update "+billtable+"_dt5 set bs='"+bs+"' where id="+ DT5ID; + bb.writeLog(sql); + boolean istrue5 = rs.execute(sql); + if(!istrue5){ + requestInfo.getRequestManager().setMessageid("1000"); + requestInfo.getRequestManager().setMessagecontent("更新SAP返回结果DT5异常"); + return Action.FAILURE_AND_CONTINUE; + } + } + + if("E".equalsIgnoreCase(type)){ + requestInfo.getRequestManager().setMessageid("1000"); + requestInfo.getRequestManager().setMessagecontent(message); + return Action.FAILURE_AND_CONTINUE; + } + } + + }else{ + requestInfo.getRequestManager().setMessageid("1000"); + requestInfo.getRequestManager().setMessagecontent("client获取值为空"); + return Action.FAILURE_AND_CONTINUE; + } + } catch (Exception e) { + e.printStackTrace(); + bb.writeLog("ZMM_MATERIALDATA_MAINTAINProxy--e:"+e); + bb.writeLog("ZMM_MATERIALDATA_MAINTAINProxy--e:"+e.getMessage()); + requestInfo.getRequestManager().setMessageid("1000"); + requestInfo.getRequestManager().setMessagecontent("接口异常"); + return Action.FAILURE_AND_CONTINUE; + } + return Action.SUCCESS; + } + + + /**** + * + * @param groupMap + * @param groupParams + * @param factoryMap + * @param factoryParams + * @param saleParams + * @return + */ + public String createFactoryXml(Map groupMap,String[] groupParams,Map factoryMap,String[] factoryParams,Map saleMap,String[] saleParams) + { + BaseBean bb = new BaseBean(); + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + DocumentBuilder builder = null; + try { + builder = factory.newDocumentBuilder(); + } catch (ParserConfigurationException e) { + e.printStackTrace(); + } + Document document = builder.newDocument(); + Element root = document.createElement("ROOT"); + document.appendChild(root); + + //group节点 + bb.writeLog("创建group节点"); + Element group = document.createElement("GROUP"); + + for (String groupParam : groupParams) { + if ("BISMT".equals(groupParam) || "SICHT_P".equals(groupParam) || "SICHT_Q".equals(groupParam)) { + appendChild(document, group, groupParam, ""); + bb.writeLog("个别节点控制添加成功"); + } else if ("ZFLAGJTC".equals(groupParam) || "LOEVMJTC".equals(groupParam)){ + appendChild(document,group,groupParam.substring(0,5), Util.null2String(groupMap.get(groupParam).toString())); + } else { + appendChild(document, group, groupParam, Util.null2String(groupMap.get(groupParam).toString())); + bb.writeLog(groupParam + "节点添加成功"); + } + } + root.appendChild(group); + + Element factoryEle = document.createElement("FACTORY"); + bb.writeLog("factory节点添加...."); + for (String factoryParam : factoryParams) { + if ("PERKZ".equals(factoryParam)){ + appendChild(document,factoryEle,"PERKZ",""); + }else if ("ZFLAGGCC".equals(factoryParam) || "LOEVMGCC".equals(factoryParam)){ + appendChild(document,factoryEle,factoryParam.substring(0,5),factoryMap.get(factoryParam).toString()); + }else { + appendChild(document,factoryEle,factoryParam,factoryMap.get(factoryParam).toString()); + } + bb.writeLog(factoryParam+"节点添加成功"); + } + root.appendChild(factoryEle); + bb.writeLog("factory节点添加成功"); + + + Element sale = document.createElement("SALE"); + bb.writeLog("sale节点添加...."); + for (String saleParam : saleParams) { + if ("ZFLAGXSZZC".equals(saleParam) || "LOEVMXSZZC".equals(saleParam)){ + appendChild(document,sale,saleParam.substring(0,5),saleMap.get(saleParam).toString()); + bb.writeLog(saleParam+"节点添加成功,它的值是:"+saleMap.get(saleParam).toString()); + }else { + appendChild(document,sale,saleParam,saleMap.get(saleParam).toString()); + bb.writeLog(saleParam+"节点添加成功"); + } + } + root.appendChild(sale); + + return createXmlToString(document); + } + + +// public String createSaleXml(Map groupMap,String[] groupParams,Map saleMap,String[] saleParams){ +// +// +// BaseBean bb = new BaseBean(); +// DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); +// DocumentBuilder builder = null; +// try { +// builder = factory.newDocumentBuilder(); +// } catch (ParserConfigurationException e) { +// e.printStackTrace(); +// } +// Document document = builder.newDocument(); +// Element root = document.createElement("ROOT"); +// document.appendChild(root); +// +// //group节点 +// bb.writeLog("创建group节点"); +// Element group = document.createElement("GROUP"); +// +// for (String groupParam : groupParams) { +// if ("BISMT".equals(groupParam) || "SICHT_P".equals(groupParam) || "SICHT_Q".equals(groupParam)) { +// appendChild(document, group, groupParam, ""); +// bb.writeLog("个别节点控制添加成功"); +// } else if ("ZFLAGJTC".equals(groupParam) || "LOEVMJTC".equals(groupParam)){ +// appendChild(document,group,groupParam.substring(0,5), Util.null2String(groupMap.get(groupParam).toString())); +// } else { +// appendChild(document, group, groupParam, Util.null2String(groupMap.get(groupParam).toString())); +// bb.writeLog(groupParam + "节点添加成功"); +// } +// } +// root.appendChild(group); +// +// Element sale = document.createElement("SALE"); +// bb.writeLog("sale节点添加...."); +// for (String saleParam : saleParams) { +// if ("ZFLAGXSZZC".equals(saleParam) || "LOEVMXSZZC".equals(saleParam)){ +// appendChild(document,sale,saleParam.substring(0,5),saleMap.get(saleParam).toString()); +// bb.writeLog(saleParam+"节点添加成功,它的值是:"+saleMap.get(saleParam).toString()); +// }else { +// appendChild(document,sale,saleParam,saleMap.get(saleParam).toString()); +// bb.writeLog(saleParam+"节点添加成功"); +// } +// } +// root.appendChild(sale); +// return createXmlToString(document); +// } + + + /** + * document对象中添加子项 + * @param document ducument对象 + * @param parent 父元素 + * @param key 元素标签 + * @param value 元素content值 + */ + private static void appendChild(Document document, Element parent, String key, String value) { + Element child = document.createElement(key); + if(child != null) { + child.setTextContent(value); + } + parent.appendChild(child); + } + + + /** + * 生成xml字符串 + * @param document Document树对象 + * @return 整个xml字符串 + */ + private static String createXmlToString(Document document){ + String xmlString = null; + try { + // 创建TransformerFactory工厂对象 + TransformerFactory transFactory = TransformerFactory.newInstance(); + // 通过工厂对象, 创建Transformer对象 + Transformer transformer = transFactory.newTransformer(); + transformer.setOutputProperty(OutputKeys.ENCODING, "GBK"); + //使Xml自动换行, 并自动缩进 + transformer.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC, ""); + transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); //中间的参数网址固定写法(这里还没搞懂) + transformer.setOutputProperty(OutputKeys.INDENT, "yes"); //是否设置缩进(indent: yes|no) + // 创建DOMSource对象并将Document加载到其中 + DOMSource domSource = new DOMSource(document); + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + // 使用Transformer的transform()方法将DOM树转换成XML + transformer.transform(domSource, new StreamResult(bos)); + xmlString = bos.toString(); + } catch (TransformerException e) { + e.printStackTrace(); + } + return xmlString; + } + +} + diff --git a/src/weaver/interfaces/sap/action/ZMM_POAPPROVALSTATUS_Action.java b/src/weaver/interfaces/sap/action/ZMM_POAPPROVALSTATUS_Action.java new file mode 100755 index 0000000..d188585 --- /dev/null +++ b/src/weaver/interfaces/sap/action/ZMM_POAPPROVALSTATUS_Action.java @@ -0,0 +1,233 @@ +package weaver.interfaces.sap.action; + +import org.apache.commons.lang3.StringUtils; +import org.apache.http.HttpEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.util.EntityUtils; +import org.dom4j.Document; +import org.dom4j.DocumentHelper; +import org.dom4j.Element; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.RequestInfo; + +import java.io.IOException; +import java.nio.charset.Charset; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + + * @author 2019-01-14 + * 采购订单OA-->SAP + * + */ +public class ZMM_POAPPROVALSTATUS_Action extends BaseBean implements Action { + + @Override + public String execute(RequestInfo request) { + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + + bb.writeLog("....ZMM_POAPPROVALSTATUS_Action..."); + String requestid = request.getRequestid(); + String formtable = request.getRequestManager().getBillTableName(); + try { + + String client = "" ; + String ZSPZT = "Y"; + String MESSAGE1 = "流程归档" ; + + String EBELN = "" ; + String ZSPBS = "" ; + String sql =" SELECT EBELN,ZSPBS,client FROM " + formtable + " WHERE REQUESTID=" + requestid; + rs.execute(sql); + if (rs.next()) { + ZSPBS = Util.null2String(rs.getString("ZSPBS")); + EBELN = Util.null2String(rs.getString("EBELN")); + client = Util.null2String(rs.getString("client")); + } + + String username = ""; + String password = ""; + + String saphost = bb.getPropValue("CGDD_WORKFLOW","SAPHOST"); + String saptype = bb.getPropValue("CGDD_WORKFLOW","SAPTYPE"); + //String wsdl = "http://lemqas.lemtech.cn:8000/sap/bc/srt/rfc/sap/zmm_poapprovalstatus_imp/240/zmm_poapprovalstatus_imp/zmm_poapprovalstatus_imp" ; + + if(StringUtils.isNotEmpty(client)){ + String wsdl = saphost+"/sap/bc/srt/rfc/sap/zmm_poapprovalstatus_imp/"+client+"/zmm_poapprovalstatus_imp/zmm_poapprovalstatus_imp" ; + String soapAction = "urn:sap-com:document:sap:rfc:functions:ZMM_POAPPROVALSTATUS_IMP:ZMM_POAPPROVALSTATUS_IMPRequest"; + String usr_pwd = username+":"+password ; + String I_DATA = " \n" + + " "+EBELN+""+MESSAGE1+""+ZSPBS+""+ZSPZT+"]]>" ; + + + String xml= " \n" + + " \n" + + " \n" + + " \n" + + " "+I_DATA+"\n" + + " \n" + + " \n" + + " "; + + bb.writeLog("xml:"+xml); + + List list = new ArrayList(); + Map msgMap = doPostSoap(wsdl,xml,soapAction,usr_pwd,list); + String num = Util.null2String(msgMap.get("num")); + if("1".equals(num)){ + String message = msgMap.get("message"); + String type = msgMap.get("type"); + bb.writeLog("message:"+message); + bb.writeLog("type:"+type); + if("S".equalsIgnoreCase(type)){ + sql = " UPDATE "+formtable+" SET type='" + type + "',message='" + message + "',FRGKE='R' WHERE requestId=" + requestid; + bb.writeLog("sql:"+sql); + boolean flag = rs.executeUpdate(sql); + if(!flag){ + request.getRequestManager().setMessage("1000"); + request.getRequestManager().setMessagecontent("更新流程接口状态失败"); + return Action.FAILURE_AND_CONTINUE; + } + }else if("E".equalsIgnoreCase(type)){ + sql = " UPDATE "+formtable+" SET type='" + type + "',message='" + message + "' WHERE requestId=" + requestid; + bb.writeLog("sql:"+sql); + boolean flag = rs.executeUpdate(sql); + if(!flag){ + request.getRequestManager().setMessage("1000"); + request.getRequestManager().setMessagecontent("更新流程接口状态失败"); + return Action.FAILURE_AND_CONTINUE; + }else{ + request.getRequestManager().setMessage(num); + request.getRequestManager().setMessagecontent(message); + return Action.FAILURE_AND_CONTINUE; + } + } + }else{ + request.getRequestManager().setMessage("1000"); + request.getRequestManager().setMessagecontent("client值为空"); + return Action.FAILURE_AND_CONTINUE; + } + }else{ + request.getRequestManager().setMessage("1000"); + request.getRequestManager().setMessagecontent("接口调用异常!"); + return Action.FAILURE_AND_CONTINUE; + } + } catch (Exception e) { + bb.writeLog("数据异常!"); + bb.writeLog(e.getMessage()); + request.getRequestManager().setMessage("1111"); + request.getRequestManager().setMessagecontent("数据异常!"); + return Action.FAILURE_AND_CONTINUE; + } + return Action.SUCCESS; + } + + /*** + * + * @param url + * @param soapXml + * @param soapAction + * @param userpass + * @param list + * @return + * @throws Exception + */ + public Map doPostSoap(String url, String soapXml, String soapAction, String userpass,List list) throws Exception + { + BaseBean log = new BaseBean(); + + Map msgMap = new HashMap(); + log.writeLog("url:"+url); + log.writeLog("soapXml:"+soapXml); + log.writeLog("soapAction:"+soapAction); + log.writeLog("userpass:"+userpass); + log.writeLog("list:"+list.size()); + + HttpClientBuilder httpClientBuilder = HttpClientBuilder.create(); + CloseableHttpClient closeableHttpClient = httpClientBuilder.build(); + HttpPost httpPost = new HttpPost(url); + //设置请求和传输超时时间 + String result = ""; + CloseableHttpResponse response = null; + try { + httpPost.setHeader("Content-Type", "text/xml;charset=UTF-8"); + httpPost.setHeader("SOAPAction", soapAction); + //httpPost.addHeader(new BasicHeader("Authorization", "Basic " + new String(Base64.encode(userpass.getBytes())))); + StringEntity data = new StringEntity(soapXml, Charset.forName("UTF-8")); + log.writeLog("data:"+data.toString()); + httpPost.setEntity(data); + response = closeableHttpClient.execute(httpPost); + HttpEntity httpEntity = response.getEntity(); + if (httpEntity != null) + { + result = EntityUtils.toString(httpEntity, "UTF-8"); + log.writeLog("result:"+result); + + if(!"".equals(result)) + { + Document doc = DocumentHelper.parseText(result); + Element topEle = doc.getRootElement(); + Element bodyEle = topEle.element("Body"); + Element rootEle = bodyEle.element("ZMM_POAPPROVALSTATUS_IMPResponse"); + Element O_DATA = rootEle.element("O_DATA"); + + String returnData = new String(O_DATA.getText().getBytes("UTF-8"),"UTF-8"); + + log.writeLog("returnData:"+returnData); + + if(!"".equals(returnData)) + { + Document dataDoc = DocumentHelper.parseText(returnData); + Element topDataEle = dataDoc.getRootElement(); + log.writeLog("topDataEle:"+topDataEle.asXML()); + + Element retuenDataEle = topDataEle.element("RETURN"); + log.writeLog("retuenDataEle:"+retuenDataEle.asXML()); + + Element typeDataEle = retuenDataEle.element("TYPE"); + Element messageDataEle = retuenDataEle.element("MESSAGE"); + + String type = typeDataEle.getText(); + String message = messageDataEle.getText(); + log.writeLog("type:"+type); + + msgMap.put("type",type); + msgMap.put("message",message); + msgMap.put("num","1"); + + }else{ + msgMap.put("num","1005"); + } + }else{ + msgMap.put("num","1006"); + } + }else{ + msgMap.put("num","1002"); + } + } catch (Exception e) + { + log.writeLog("e:"+e); + msgMap.put("num","1001"); + } finally { + if (response != null) { + try { + EntityUtils.consume(response.getEntity()); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + return msgMap; + } +} \ No newline at end of file diff --git a/src/weaver/interfaces/sap/action/ZMM_PURCHASEINFODATA_Action.java b/src/weaver/interfaces/sap/action/ZMM_PURCHASEINFODATA_Action.java new file mode 100755 index 0000000..527dade --- /dev/null +++ b/src/weaver/interfaces/sap/action/ZMM_PURCHASEINFODATA_Action.java @@ -0,0 +1,627 @@ +package weaver.interfaces.sap.action; + +import org.apache.commons.lang3.StringUtils; +import org.apache.http.HttpEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.util.EntityUtils; +import org.dom4j.Document; +import org.dom4j.DocumentException; +import org.dom4j.DocumentHelper; +import org.dom4j.Element; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.RequestInfo; + +import java.io.IOException; +import java.nio.charset.Charset; +import java.util.*; + +/** + + * @author 2019-01-14 + * 外部采购申请明细 + * 采购信息记录 + * + */ +public class ZMM_PURCHASEINFODATA_Action extends BaseBean implements Action { + + @Override + public String execute(RequestInfo request) { + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + + bb.writeLog("....ZMM_PURCHASEINFODATA_Action..."); + String requestid = request.getRequestid(); + String formtable = request.getRequestManager().getBillTableName(); + try { + String mainid = "" ; + String client = "" ; + String sql =" SELECT id,client FROM " + formtable + " WHERE REQUESTID=" + requestid; + rs.execute(sql); + if (rs.next()){ + mainid = Util.null2String(rs.getString("id")); + client = Util.null2String(rs.getString("client")); + } + + if(StringUtils.isNotBlank(client)){ + String dataxml = "" ; + dataxml +="" ; + sql =" SELECT * FROM "+formtable+"_dt1 WHERE mainid =" + mainid +" and (bs1=1 or bs1 is null)"; + bb.writeLog("sql:"+sql); + rs.execute(sql); + while (rs.next()) + { + dataxml +="" ; + String LIFNR = Util.null2String(rs.getString("LIFNR")) ; //主表 + dataxml += ""+LIFNR+"" ; + + String MATNR = Util.null2String(rs.getString("MATNR")) ; //主表 + dataxml += ""+MATNR+"" ; + + String item = Util.null2String(rs.getString("item")); + dataxml += ""+item+"" ; + + String INFNR = Util.null2String(rs.getString("INFNR")) ; //主表 + dataxml += ""+INFNR+"" ; + + String ESOKZ = Util.null2String(rs.getString("ESOKZ")) ; //明细表1 + dataxml += ""+ESOKZ+"" ; + + String VERKF = Util.null2String(rs.getString("VERKF")) ; //主表 + dataxml += ""+VERKF+"" ; + + String TELF1 = Util.null2String(rs.getString("TELF1")); //主表 + dataxml += ""+TELF1+"" ; + + String MEINS = Util.null2String(rs.getString("MEINS")) ; //主表 + dataxml += ""+MEINS+"" ; + + String UMREN = Util.null2String(rs.getString("UMREN")) ; //主表 + dataxml += ""+UMREN+"" ; + + String UMREZ = Util.null2String(rs.getString("UMREZ")) ; //主表 + dataxml += ""+UMREZ+"" ; + + String URZLA = Util.null2String(rs.getString("URZLA")) ; //主表 + dataxml += ""+URZLA+"" ; + + String ZFLAG = Util.null2String(rs.getString("ZFLAGJTC")) ; //主表 + dataxml += ""+ZFLAG+"" ; + + String LOEKZ = Util.null2String(rs.getString("LOEKZ")) ; //主表 + dataxml += ""+LOEKZ+"" ; + + String EKORG = Util.null2String(rs.getString("EKORG")) ; //明细表1 + dataxml += ""+EKORG+"" ; + + String APLFZ = Util.null2String(rs.getString("APLFZ")) ; //明细表1 + dataxml += ""+APLFZ+"" ; + + String EKGRP = Util.null2String(rs.getString("EKGRP")) ; //明细表1 + dataxml += ""+EKGRP+"" ; + + String NORBM = Util.null2String(rs.getString("NORBM")) ; //明细表1 + dataxml += ""+NORBM+"" ; + + String MINBM = Util.null2String(rs.getString("MINBM")) ; //明细表1 + dataxml += ""+MINBM+"" ; + + String UEBTO = Util.null2String(rs.getString("UEBTO")) ; //明细表1 + dataxml += ""+UEBTO+"" ; + + +// String ZCZTJ = Util.null2String(rs.getString("ZCZTJ")) ; //主表 +// dataxml += ""+ZCZTJ+"" ; + + String MWSKZ = Util.null2String(rs.getString("MWSKZ")) ; //明细表1 + dataxml += ""+MWSKZ+"" ; + + String WEBRE = Util.null2String(rs.getString("WEBRE")) ; //明细表1 + dataxml += ""+WEBRE+"" ; + + String NETPR = Util.null2String(rs.getString("NETPR")) ; //明细表1 + dataxml += ""+NETPR+"" ; + + String WAERS = Util.null2String(rs.getString("WAERS")) ; //明细表1 + dataxml += ""+WAERS+"" ; + + String PEINH = Util.null2String(rs.getString("PEINH")) ; //明细表1 + dataxml += ""+PEINH+"" ; + + String BPRME = Util.null2String(rs.getString("BPRME")) ; //明细表1 + dataxml += ""+BPRME+"" ; + + String PRDAT = Util.null2String(rs.getString("PRDAT")) ; //明细表1 + dataxml += ""+PRDAT+"" ; + + String BPUMN = Util.null2String(rs.getString("BPUMN")) ; //明细表1 + dataxml += ""+BPUMN+"" ; + + String BPUMZ = Util.null2String(rs.getString("BPUMZ")) ; //明细表1 + dataxml += ""+BPUMZ+"" ; + + String LOEKZCGZZC = Util.null2String(rs.getString("LOEKZCGZZC")) ; //主表 + dataxml += ""+LOEKZCGZZC+"" ; //明细表1 + + String BSTMA = Util.null2String(rs.getString("BSTMA")) ; //订单的最大数量 + dataxml += ""+BSTMA+"" ; //订单的最大数量 + + String itemJtXml = doGetItemJtxmXml(item,formtable,mainid); + dataxml += "" ; + dataxml += itemJtXml ; + dataxml += ""; + + dataxml += "" ; + } + dataxml += "" ; + + bb.writeLog("dataxml:"+dataxml); + String username = ""; + String password = ""; + String saphost = bb.getPropValue("CGDD_WORKFLOW","SAPHOST"); + + String wsdl = saphost+"/sap/bc/srt/rfc/sap/zmm_purchaseinfodata_imp/"+client+"/zmm_purchaseinfodata_imp/zmm_purchaseinfodata_imp" ; + String soapAction = "urn:sap-com:document:sap:rfc:functions:ZMM_PURCHASEINFODATA_IMP:ZMM_PURCHASEINFODATA_IMPRequest"; + + String usr_pwd = username+":"+password ; + + String I_DATA = " "+dataxml+"]]>" ; + + String xml= " \n" + + " \n" + + " \n" + + " \n" + + " "+I_DATA+"\n" + + " \n" + + " \n" + + " "; + + bb.writeLog("xml:"+xml); + + List list = new ArrayList(); + Map msgMap = doPostSoap(wsdl,xml,soapAction,usr_pwd,list,formtable,mainid); + String num = msgMap.get("num"); + if("1".equals(num)){ + String message = msgMap.get("message"); + String type = msgMap.get("type"); + if("S".equalsIgnoreCase(type)) + { + sql = " UPDATE "+formtable+" SET type='" + type + "',message='" + message + "' WHERE requestId=" + requestid; + bb.writeLog("sql:"+sql); + boolean flag = rs.executeUpdate(sql); + if(!flag){ + request.getRequestManager().setMessage("1000"); + request.getRequestManager().setMessagecontent("更新流程接口状态失败"); + return Action.FAILURE_AND_CONTINUE; + } + }else if("E".equalsIgnoreCase(type)){ + sql = " UPDATE "+formtable+" SET type='" + type + "',message='" + message + "' WHERE requestId=" + requestid; + bb.writeLog("sql:"+sql); + boolean flag = rs.executeUpdate(sql); + if(!flag){ + request.getRequestManager().setMessage("1000"); + request.getRequestManager().setMessagecontent("更新流程接口状态失败"); + return Action.FAILURE_AND_CONTINUE; + }else{ + request.getRequestManager().setMessage(num); + request.getRequestManager().setMessagecontent(message); + return Action.FAILURE_AND_CONTINUE; + } + } + }else{ + request.getRequestManager().setMessage(num); + request.getRequestManager().setMessagecontent("接口调用异常"); + return Action.FAILURE_AND_CONTINUE; + } + }else{ + request.getRequestManager().setMessage("1234"); + request.getRequestManager().setMessagecontent("client字段为空,无法判断接口环境"); + return Action.FAILURE_AND_CONTINUE; + } + } catch (Exception e) { + bb.writeLog("数据异常"); + bb.writeLog(e.getMessage()); + request.getRequestManager().setMessage("1111"); + request.getRequestManager().setMessagecontent("数据异常"); + return Action.FAILURE_AND_CONTINUE; + } + return Action.SUCCESS; + } + + /*** + * + * @param url + * @param soapXml + * @param soapAction + * @param userpass + * @param list + * @return + * @throws Exception + */ + public Map doPostSoap(String url, String soapXml, String soapAction, String userpass,List list,String formtable,String mainid) throws Exception + { + BaseBean log = new BaseBean(); + RecordSet rs = new RecordSet(); + + Map msgMap = new HashMap(); + log.writeLog("url:"+url); + log.writeLog("soapXml:"+soapXml); + log.writeLog("soapAction:"+soapAction); + log.writeLog("userpass:"+userpass); + log.writeLog("list:"+list.size()); + + HttpClientBuilder httpClientBuilder = HttpClientBuilder.create(); + CloseableHttpClient closeableHttpClient = httpClientBuilder.build(); + HttpPost httpPost = new HttpPost(url); + //设置请求和传输超时时间 + String result = ""; + CloseableHttpResponse response = null; + List> logList = new ArrayList>(); + try { + httpPost.setHeader("Content-Type", "text/xml;charset=UTF-8"); + httpPost.setHeader("SOAPAction", soapAction); + //httpPost.addHeader(new BasicHeader("Authorization", "Basic " + new String(Base64.encode(userpass.getBytes())))); + StringEntity data = new StringEntity(soapXml, Charset.forName("UTF-8")); + log.writeLog("data:"+data.toString()); + httpPost.setEntity(data); + response = closeableHttpClient.execute(httpPost); + HttpEntity httpEntity = response.getEntity(); + if (httpEntity != null) + { + result = EntityUtils.toString(httpEntity, "UTF-8"); + log.writeLog("result:"+result); + + + if(!"".equals(result)) + { + Document doc = DocumentHelper.parseText(result); + Element topEle = doc.getRootElement(); + Element bodyEle = topEle.element("Body"); + Element rootEle = bodyEle.element("ZMM_PURCHASEINFODATA_IMPResponse"); + Element O_DATA = rootEle.element("O_DATA"); + + //String returnData = new String(O_DATA.getText().getBytes("GBK"),"UTF-8"); + String returnData = O_DATA.getText(); + log.writeLog("returnData:"+returnData); + + if(!"".equals(returnData)) + { + int errcount = 0; + try { + Document dataDoc = DocumentHelper.parseText(returnData); + Element topDataEle = dataDoc.getRootElement(); + log.writeLog("topDataEle:"+topDataEle.asXML()); + List nodes = topDataEle.elements("ITEM"); + int itemcount = 0; + String messages = "" ; + for (Iterator it = nodes.iterator(); it.hasNext();) { + Element elm = (Element) it.next(); + String TYPE = elm.elementTextTrim("TYPE"); + String MESSAGE = elm.elementTextTrim("MESSAGE"); + + if (!"S".equalsIgnoreCase(TYPE)) { + itemcount--; + messages = messages +";"+ MESSAGE ; + }else{ + String bs1 = "0"; + + String INFNR = elm.elementTextTrim("INFNR"); //--dt1 + String KSCHL = elm.elementTextTrim("KSCHL"); + String KNUMH = elm.elementTextTrim("KNUMH"); + String KLFN1 = elm.elementTextTrim("KLFN1"); + String KSTBM = elm.elementTextTrim("KSTBM"); + String KBETR = elm.elementTextTrim("KBETR"); + String LIFNR = elm.elementTextTrim("LIFNR"); + String MATNR = elm.elementTextTrim("MATNR"); + String EKORG = elm.elementTextTrim("EKORG"); + String ESOKZ = elm.elementTextTrim("ESOKZ"); + + String DYTJLXXH = Util.null2String(elm.elementTextTrim("DYTJLXXH")); + log.writeLog("DYTJLXXH:"+DYTJLXXH); + String DYJTCCGZZCITEM = Util.null2String(elm.elementTextTrim("DYJTCCGZZCITEM")); + + if(!"".equals(DYTJLXXH)) + { + String dt2id = "" ; + String sql =" select id " + + " from "+formtable+"_dt2 " + + " where mainid="+mainid+" " + + " and kstbm='"+KSTBM+"' " + + " and kbetr='"+KBETR+"' " + + " and dytjlxxh='"+DYTJLXXH+"' " ; + + log.writeLog("sql:"+sql); + rs.execute(sql); + if(rs.next()){ + dt2id = Util.null2String(rs.getString("id")); + } + + if(!"".equals(dt2id)){ + sql = " update "+formtable+"_dt2 " + + " set knumh='"+KNUMH+"',klfn1='"+KLFN1+"',bs1=" + bs1+ + " where id = "+dt2id; + log.writeLog("sql:"+sql); + boolean flag = rs.executeUpdate(sql); + if(!flag){ + errcount++; + } + } + + String dt4id = "" ; + String dyjtccgzzcitem = "" ; + sql = " select id,dyjtccgzzcitem from "+formtable+"_dt4 " + + " where cast(dyjtccgzzcitem as varchar)+ cast(tjlxdyxh as varchar)='"+DYTJLXXH+"' " + + " and mainid="+mainid + " and kschl='"+KSCHL+"' "; + log.writeLog("sql:"+sql); + rs.execute(sql); + if(rs.next()){ + dt4id = Util.null2String(rs.getString("id")); + dyjtccgzzcitem = Util.null2String(rs.getString("dyjtccgzzcitem")); + } + + if(!"".equals(dt4id)) + { + sql = " update "+formtable+"_dt4 " + + " set knumh='"+KNUMH+"',lifnr='"+LIFNR+"',matnr='" + MATNR+"',ekorg='"+EKORG+"',ESOKZ='"+ESOKZ+"',bs1= "+bs1+ + " where id = "+dt4id; + log.writeLog("sql:"+sql); + boolean flag = rs.executeUpdate(sql); + if(!flag){ + errcount++; + } + } + + String dt1id = "" ; + if(!"".equals(dyjtccgzzcitem)){ + sql = " select id from "+formtable+"_dt1 " + + " where item='"+dyjtccgzzcitem+"' " + + " and mainid="+mainid ; + log.writeLog("sql:"+sql); + rs.execute(sql); + if(rs.next()){ + dt1id = Util.null2String(rs.getString("id")); + } + } + + if(!"".equals(dt1id)){ + sql = " update "+formtable+"_dt1 " + + " set infnr='"+INFNR+"',bs1= " +bs1+ + " where id = "+dt1id; + log.writeLog("sql:"+sql); + boolean flag = rs.executeUpdate(sql); + if(!flag){ + errcount++; + } + } + }else if(!"".equals(DYJTCCGZZCITEM)){ + + String dt4id = "" ; + String dyjtccgzzcitem = "" ; + String sql =" select id,dyjtccgzzcitem from "+formtable+"_dt4 " + + " where cast(dyjtccgzzcitem as varchar)+ cast(tjlxdyxh as varchar)='"+DYJTCCGZZCITEM+"' " + + " and mainid="+mainid + " and kschl='"+KSCHL+"' "; + + log.writeLog("sql:"+sql); + rs.execute(sql); + if(rs.next()){ + dt4id = Util.null2String(rs.getString("id")); + dyjtccgzzcitem = Util.null2String(rs.getString("dyjtccgzzcitem")); + } + + if(!"".equals(dt4id)) + { + sql = " update "+formtable+"_dt4 " + + " set knumh='"+KNUMH+"',ESOKZ='" +ESOKZ+"',bs1= "+bs1+ + " where id = "+dt4id; + log.writeLog("sql:"+sql); + boolean flag = rs.executeUpdate(sql); + if(!flag){ + errcount++; + } + } + + String dt1id = "" ; + if(!"".equals(dyjtccgzzcitem)){ + sql = " select id from "+formtable+"_dt1 " + + " where item='"+dyjtccgzzcitem+"' " + + " and mainid="+mainid ; + + log.writeLog("sql:"+sql); + rs.execute(sql); + if(rs.next()){ + dt1id = Util.null2String(rs.getString("id")); + } + } + + if(!"".equals(dt1id)){ + sql = " update "+formtable+"_dt1 "+ + " set infnr='"+INFNR+"',bs1= " +bs1+ + " where id = "+dt1id; + log.writeLog("sql:"+sql); + boolean flag = rs.executeUpdate(sql); + if(!flag){ + errcount++; + } + } + } + } + } + log.writeLog("itemcount:"+itemcount); + if(itemcount < 0) + { + msgMap.put("type","E"); + msgMap.put("message",messages); + msgMap.put("num","1"); + }else{ + log.writeLog("errcount:"+errcount); + if(errcount > 0){ + msgMap.put("type","E"); + msgMap.put("message","接口调用失败"); + msgMap.put("num","1"); + }else{ + msgMap.put("type","S"); + msgMap.put("message","接口调用成功"); + msgMap.put("num","1"); + } + } + } catch (DocumentException e) { + e.printStackTrace(); + log.writeLog("DocumentException:"+e); + } + }else{ + msgMap.put("num","1005"); + } + }else{ + msgMap.put("num","1006"); + } + }else{ + msgMap.put("num","1002"); + } + } catch (Exception e) + { + log.writeLog("e:"+e); + msgMap.put("num","1001"); + } finally { + if (response != null) { + try { + EntityUtils.consume(response.getEntity()); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + return msgMap; + } + + + /*** + * + * @param itemJtxm + * @param formtable + * @return + */ + public String doGetItemJtxmXml(String itemJtxm,String formtable,String mainid){ + + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + String itemJtxmXml = ""; + String sql =" select * from "+formtable+"_dt4 where mainid=" + mainid +" and dyjtccgzzcitem='"+itemJtxm+"'"; + bb.writeLog("sql:"+sql); + rs.execute(sql); + while (rs.next()) { + + itemJtxmXml += "" ; + String tjlxdyxh = Util.null2String(rs.getString("tjlxdyxh")); + String DYJTCCGZZCITEM = Util.null2String(rs.getString("DYJTCCGZZCITEM")) ; + itemJtxmXml += ""+DYJTCCGZZCITEM+tjlxdyxh+"" ; + + String KSCHL = Util.null2String(rs.getString("KSCHL")) ; + itemJtxmXml += ""+KSCHL+"" ; + + String LIFNR = Util.null2String(rs.getString("LIFNR")) ; + itemJtxmXml += ""+LIFNR+"" ; + + String MATNR = Util.null2String(rs.getString("MATNR")) ; + itemJtxmXml += ""+MATNR+"" ; + + String EKORG = Util.null2String(rs.getString("EKORG")) ; + itemJtxmXml += ""+EKORG+"" ; + + String ESOKZ = Util.null2String(rs.getString("ESOKZ")) ; + itemJtxmXml += ""+ESOKZ+"" ; + + String DATAB = Util.null2String(rs.getString("DATAB")) ; + if(!"".equals(DATAB)){ + itemJtxmXml += ""+DATAB+"" ; //明细表1 + }else{ + itemJtxmXml += "0000-00-00" ; //明细表1 + } + String DATBI = Util.null2String(rs.getString("DATBI")) ; + itemJtxmXml += ""+DATBI+"" ; + + String KNUMH = Util.null2String(rs.getString("KNUMH")) ; + itemJtxmXml += ""+KNUMH+"" ; + + String KBETR = Util.null2String(rs.getString("KBETR")); + itemJtxmXml += ""+KBETR+"" ; + + String KONWA = Util.null2String(rs.getString("KONWA")); + itemJtxmXml += ""+KONWA+"" ; + + String KPEIN = Util.null2String(rs.getString("KPEIN")); + itemJtxmXml += ""+KPEIN+"" ; + + String KMEIN = Util.null2String(rs.getString("KMEIN")); + itemJtxmXml += ""+KMEIN+"" ; + + String KUMNE = Util.null2String(rs.getString("KUMNE")); + itemJtxmXml += ""+KUMNE+"" ; + + String KUMZA = Util.null2String(rs.getString("KUMZA")); + itemJtxmXml += ""+KUMZA+"" ; + + String LOEVM_KO = Util.null2String(rs.getString("LOEVM_KO")); + itemJtxmXml += ""+LOEVM_KO+"" ; + + String ZYXQBS = Util.null2String(rs.getString("ZYXQBS")); + itemJtxmXml += ""+ZYXQBS+"" ; + + itemJtxmXml += ""; + + String Item_Jt_Xml = doGetItemJtXml(itemJtxm,formtable,mainid,tjlxdyxh); + itemJtxmXml += Item_Jt_Xml; + itemJtxmXml += ""; + + itemJtxmXml += "" ; + } + + return itemJtxmXml; + } + + /*** + * + * @param itemJt + * @return + */ + public String doGetItemJtXml(String itemJt,String formtable,String mainid,String tjxmcitem){ + + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + String item_tj_Xml = "" ; + String sql =" select * from "+formtable+"_dt2 where mainid=" + mainid +" and dytjlxxh='"+itemJt+""+tjxmcitem +"'"; + bb.writeLog("sql:"+sql); + rs.execute(sql); + while (rs.next()) + { + item_tj_Xml += "" ; + + String DYTJLXXH = Util.null2String(rs.getString("DYTJLXXH")); + item_tj_Xml += ""+DYTJLXXH+"" ; + + String ZHXM = Util.null2String(rs.getString("ZHXM")); + item_tj_Xml += ""+ZHXM+"" ; + + String KNUMH = Util.null2String(rs.getString("KNUMH")); + item_tj_Xml += ""+KNUMH+"" ; + + String KSTBM = Util.null2String(rs.getString("KSTBM")); + item_tj_Xml += ""+KSTBM+"" ; + + String KONMS = Util.null2String(rs.getString("KONMS")); + item_tj_Xml += ""+KONMS+"" ; + + String KBETR = Util.null2String(rs.getString("KBETR")); + item_tj_Xml += ""+KBETR+"" ; + + item_tj_Xml += "" ; + } + + return item_tj_Xml; + } +} \ No newline at end of file diff --git a/src/weaver/interfaces/sap/action/ZMM_PURCHASEREQUEST_Action.java b/src/weaver/interfaces/sap/action/ZMM_PURCHASEREQUEST_Action.java new file mode 100755 index 0000000..149a7f0 --- /dev/null +++ b/src/weaver/interfaces/sap/action/ZMM_PURCHASEREQUEST_Action.java @@ -0,0 +1,500 @@ +package weaver.interfaces.sap.action; + +import org.apache.commons.lang.StringUtils; +import org.apache.http.HttpEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.util.EntityUtils; +import org.dom4j.Document; +import org.dom4j.DocumentHelper; +import org.dom4j.Element; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.RequestInfo; + +import java.io.IOException; +import java.nio.charset.Charset; +import java.util.HashMap; +import java.util.Map; + + +/** + * + * + * 采购申请流程 + * 采购申请流程传数据给SAP + */ +public class ZMM_PURCHASEREQUEST_Action extends BaseBean implements Action { + @Override + public String execute(RequestInfo requestInfo) { + + String requestid = requestInfo.getRequestid(); + String tablename = requestInfo.getRequestManager().getBillTableName(); + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + + try{ + if(!"".equals(requestid) && !"".equals(tablename)){ + + String client = "" ; + String sql =" SELECT id,client FROM " + tablename + " WHERE REQUESTID=" + requestid; + rs.execute(sql); + if (rs.next()){ + client = Util.null2String(rs.getString("client")); + } + + if(StringUtils.isNotEmpty(client)){ + + String dataXml = "" ; + sql =" select dt.id,dt.BSART, dt.BANFN, dt.BNFPO, dt.KNTTP, dt.EPSTP, dt.MATNR, dt.TXZ01, dt.MENGE, dt.BAMEI, dt.LFDAT, dt.MATKL, dt.WERKS, dt.LGORT, dt.EKGRP, dt.AFNAM, dt.BEDNR, dt.KOSTL, dt.ANLN1, dt.EBKNMENGE, dt.AUFNR, dt.ZFLAG, dt.ELOEK, dt.LIFNR, dt.FLIEF, dt.INFNR, dt.EKORG,dt.SAKTO,a.HEAFTXT,dt.ITEMTXT \n" + + " from "+tablename+" a\n" + + " left join "+tablename+"_dt1 dt on a.id = dt.mainid\n" + + " where a.requestid = ? "; + rs.executeQuery(sql, requestid); + bb.writeLog("sql:"+sql); + while (rs.next()) { + String BANFN = Util.null2String(rs.getString("BANFN")); // 采购申请编号 + if(!"".equals(BANFN)){ + dataXml += ""+BANFN+""; + }else{ + dataXml += ""; + } + + String BNFPO = Util.null2String(rs.getString("BNFPO")); // 采购申请的项目编号 + if(!"".equals(BNFPO)){ + dataXml += ""+BNFPO+""; + }else{ + dataXml += ""; + } + + String EPSTP = Util.null2String(rs.getString("EPSTP")); // 采购凭证中的项目类别 + if(!"".equals(EPSTP)){ + dataXml += ""+EPSTP+""; + }else{ + dataXml += ""; + } + + String MATNR = Util.null2String(rs.getString("MATNR")); // 物料 + if(!"".equals(MATNR)){ + dataXml += ""+MATNR+""; + }else{ + dataXml += ""; + } + + String TXZ01 = Util.null2String(rs.getString("TXZ01")); // 短文本 + if(!"".equals(TXZ01)){ + dataXml += ""+TXZ01+""; + }else{ + dataXml += ""; + } + + String MENGE = Util.null2String(rs.getString("MENGE")); // 申请数量 + if(!"".equals(MENGE)){ + dataXml += ""+MENGE+""; + }else{ + dataXml += ""; + } + + String BAMEI = Util.null2String(rs.getString("BAMEI")); // 采购申请计量单位 + if(!"".equals(BAMEI)){ + dataXml += ""+BAMEI+""; + }else{ + dataXml += ""; + } + + String LFDAT = Util.null2String(rs.getString("LFDAT")); // 交货日期 + if(!"".equals(LFDAT)){ + dataXml += ""+LFDAT+""; + }else{ + dataXml += ""; + } + + String MATKL = Util.null2String(rs.getString("MATKL")); // 物料组 + if(!"".equals(MATKL)){ + dataXml += ""+MATKL+""; + }else{ + dataXml += ""; + } + + String WERKS = Util.null2String(rs.getString("WERKS")); // 工厂 + if(!"".equals(WERKS)){ + dataXml += ""+WERKS+""; + }else{ + dataXml += ""; + } + + String LGORT = Util.null2String(rs.getString("LGORT")); // 库存地点 + if(!"".equals(LGORT)){ + dataXml += ""+LGORT+""; + }else{ + dataXml += ""; + } + + String EKGRP = Util.null2String(rs.getString("EKGRP")); // 采购组 + if(!"".equals(EKGRP)){ + dataXml += ""+EKGRP+""; + }else{ + dataXml += ""; + } + + String AFNAM = Util.null2String(rs.getString("AFNAM")); // 申请者 + if(!"".equals(AFNAM)){ + dataXml += ""+AFNAM+""; + }else{ + dataXml += ""; + } + + + String BEDNR = Util.null2String(rs.getString("BEDNR")); // 跟踪号 + if(!"".equals(BEDNR)){ + dataXml += ""+BEDNR+""; + }else{ + dataXml += ""; + } + + String KOSTL = Util.null2String(rs.getString("KOSTL")); // 成本中心 + if(!"".equals(KOSTL)){ + dataXml += ""+KOSTL+""; + }else{ + dataXml += ""; + } + + String ANLN1 = Util.null2String(rs.getString("ANLN1")); // 资产卡片号 + if(!"".equals(ANLN1)){ + dataXml += ""+ANLN1+""; + }else{ + dataXml += ""; + } + + + String EBKNMENGE = Util.null2String(rs.getString("EBKNMENGE")); // 资产数量 + if(!"".equals(EBKNMENGE)){ + dataXml += ""+EBKNMENGE+""; + }else{ + dataXml += ""; + } + + String AUFNR = Util.null2String(rs.getString("AUFNR")); // 订单 + if(!"".equals(AUFNR)){ + dataXml += ""+AUFNR+""; + }else{ + dataXml += ""; + } + + String ZFLAG = Util.null2String(rs.getString("ZFLAG")); // 业务标识 + if(!"".equals(ZFLAG)){ + dataXml += ""+ZFLAG+""; + }else{ + dataXml += ""; + } + + if("3".equals(ZFLAG)){ + String ELOEK = Util.null2String(rs.getString("ELOEK")); // 采购申请删除标识 + if(!"".equals(ELOEK)){ + dataXml += ""+ELOEK+""; + }else{ + dataXml += ""; + } + }else{ + dataXml += ""; + } + + dataXml += ""; + dataXml += ""; + dataXml += ""; + dataXml += ""; + + String LIFNR = Util.null2String(rs.getString("LIFNR")); // 期望的供应商 + if(!"".equals(LIFNR)){ + dataXml += ""+LIFNR+""; + }else{ + dataXml += ""; + } + + String FLIEF = Util.null2String(rs.getString("FLIEF")); // 固定的供应商 + if(!"".equals(FLIEF)){ + dataXml += ""+FLIEF+""; + }else{ + dataXml += ""; + } + + String INFNR = Util.null2String(rs.getString("INFNR")); // 信息记录 + if(!"".equals(INFNR)){ + dataXml += ""+INFNR+""; + }else{ + dataXml += ""; + } + + String EKORG = Util.null2String(rs.getString("EKORG")); // 采购组织 + if(!"".equals(EKORG)){ + dataXml += ""+EKORG+""; + }else{ + dataXml += ""; + } + + String BSART = Util.null2String(rs.getString("BSART")); // 采购申请凭证类型 + if(!"".equals(BSART)){ + dataXml += ""+BSART+""; + }else{ + dataXml += ""; + } + + String KNTTP = Util.null2String(rs.getString("KNTTP")); // + if(!"".equals(KNTTP)){ + dataXml += ""+KNTTP+""; + }else{ + dataXml += ""; + } + + + String SAKTO = Util.null2String(rs.getString("SAKTO")); // + if(!"".equals(SAKTO)){ + dataXml += ""+SAKTO+""; + }else{ + dataXml += ""; + } + + String HEAFTXT = Util.null2String(rs.getString("HEAFTXT")); // + if(!"".equals(HEAFTXT)){ + dataXml += ""+HEAFTXT+""; + }else{ + dataXml += ""; + } + + String ITEMTXT = Util.null2String(rs.getString("ITEMTXT")); // + if(!"".equals(ITEMTXT)){ + dataXml += ""+ITEMTXT+""; + }else{ + dataXml += ""; + } + } + + String username = ""; + String password = ""; + + + //String wsdl = "http://lemqas.lemtech.cn:8000/sap/bc/srt/rfc/sap/zmm_purchaserequest_imp/240/zmm_purchaserequest_imp/zmm_purchaserequest_imp" ; + + String saphost = bb.getPropValue("CGDD_WORKFLOW","SAPHOST"); + String saptype = bb.getPropValue("CGDD_WORKFLOW","SAPTYPE"); + + String wsdl = saphost+"/sap/bc/srt/rfc/sap/zmm_purchaserequest_imp/"+client+"/zmm_purchaserequest_imp/zmm_purchaserequest_imp" ; + + //String wsdl = saphost+"/sap/bc/srt/wsdl/flv_10002A111AD1/bndg_url/sap/bc/srt/rfc/sap/zmm_purchaserequest_imp/300/zmm_purchaserequest_imp/zmm_purchaserequest_imp?sap-client=300" ; + + String soapAction = "urn:sap-com:document:sap:rfc:functions:ZMM_PURCHASEREQUEST_IMP:ZMM_PURCHASEREQUEST_IMPRequest"; + String usr_pwd = username+":"+password ; + + String I_DATA = " \n" + + " "+dataXml+"]]>" ; + + String xml= " \n" + + " \n" + + " \n" + + " \n" + + " "+I_DATA+"\n" + + " \n" + + " \n" + + " "; + bb.writeLog("xml:"+xml); + Map msgMap = doPostSoap(wsdl,xml,soapAction,usr_pwd); + //Purchase request modified successfully!Purchase application No:1000099312 + + String num = msgMap.get("num"); + if("1".equals(num)){ + String message = msgMap.get("message"); + String type = msgMap.get("type"); + bb.writeLog("message:"+message); + bb.writeLog("type:"+type); + + if("S".equalsIgnoreCase(type)){ + String[] split = message.split(":"); + String banfn = split[1]; + sql = " UPDATE "+tablename+" SET type='" + type + "',message='" + message + "',BANFN='"+banfn+"' WHERE requestId=" + requestid; + bb.writeLog("sql:"+sql); + boolean flag = rs.executeUpdate(sql); + if(!flag){ + requestInfo.getRequestManager().setMessage("1000"); + requestInfo.getRequestManager().setMessagecontent("更新流程接口状态失败"); + return Action.FAILURE_AND_CONTINUE; + } + + sql = " UPDATE "+tablename+"_dt1 SET BANFN='"+banfn+"' WHERE mainid in(select id from "+tablename+" where requestId=" + requestid+") "; + bb.writeLog("sql:"+sql); + boolean flag2 = rs.executeUpdate(sql); + if(!flag2){ + requestInfo.getRequestManager().setMessage("1000"); + requestInfo.getRequestManager().setMessagecontent("更新流程接口状态失败"); + return Action.FAILURE_AND_CONTINUE; + } + + }else if("E".equalsIgnoreCase(type)){ + sql = " UPDATE "+tablename+" SET type='" + type + "',message='" + message + "' WHERE requestId=" + requestid; + bb.writeLog("sql:"+sql); + boolean flag = rs.executeUpdate(sql); + if(!flag){ + requestInfo.getRequestManager().setMessage("1000"); + requestInfo.getRequestManager().setMessagecontent("更新流程接口状态失败"); + return Action.FAILURE_AND_CONTINUE; + }else{ + requestInfo.getRequestManager().setMessage(num); + requestInfo.getRequestManager().setMessagecontent(message); + return Action.FAILURE_AND_CONTINUE; + } + } + }else{ + requestInfo.getRequestManager().setMessage(num); + requestInfo.getRequestManager().setMessagecontent("接口调用异常"); + return Action.FAILURE_AND_CONTINUE; + } + + } + + String BANFN = "" ; + String BNFPO = ""; + String KNTTP = "" ; + String EPSTP = "" ; + String MATNR = "" ; + String TXZ01 = "" ; + String MENGE = "" ; + String BAMEI = "" ; + String LFDAT = "" ; + String MATKL = "" ; + String WERKS = "" ; + String LGORT = "" ; + String EKGRP = "" ; + String AFNAM = "" ; + String BEDNR = "" ; + String KOSTL = "" ; + String ANLN1 = "" ; + String EBKNMENGE = "" ; + String AUFNR = "" ; + String ZFLAG = "" ; + String ELOEK = "" ; + + String LIFNR = "" ; + String FLIEF = "" ; + String INFNR = "" ; + String EKORG = "" ; + String BSART = "" ; + String SAKTO = "" ; + String HEAFTXT = "" ; + String ITEMTXT = "" ; + + + + } + }catch (Exception e){ + bb.writeLog("数据异常!"); + bb.writeLog(e.getMessage()); + requestInfo.getRequestManager().setMessage("1111"); + requestInfo.getRequestManager().setMessagecontent("数据异常!"); + return Action.FAILURE_AND_CONTINUE; + } + return Action.SUCCESS; + + } + + + /*** + * + * @param url + * @param soapXml + * @param soapAction + * @param userpass + * @return + * @throws Exception + */ + public Map doPostSoap(String url, String soapXml, String soapAction, String userpass) throws Exception + { + Map map = new HashMap(); + BaseBean log = new BaseBean(); + RecordSet rs = new RecordSet(); + log.writeLog("url:"+url); + log.writeLog("soapXml:"+soapXml); + log.writeLog("soapAction:"+soapAction); + log.writeLog("userpass:"+userpass); + + HttpClientBuilder httpClientBuilder = HttpClientBuilder.create(); + CloseableHttpClient closeableHttpClient = httpClientBuilder.build(); + HttpPost httpPost = new HttpPost(url); + //设置请求和传输超时时间 + String result = ""; + CloseableHttpResponse response = null; + try { + httpPost.setHeader("Content-Type", "text/xml;charset=UTF-8"); + httpPost.setHeader("SOAPAction", soapAction); + //httpPost.addHeader(new BasicHeader("Authorization", "Basic " + new String(Base64.encode(userpass.getBytes())))); + StringEntity data = new StringEntity(soapXml, Charset.forName("UTF-8")); + log.writeLog("data:"+data.toString()); + httpPost.setEntity(data); + response = closeableHttpClient.execute(httpPost); + HttpEntity httpEntity = response.getEntity(); + if (httpEntity != null) + { + result = EntityUtils.toString(httpEntity, "UTF-8"); + log.writeLog("result:"+result); + + log.writeLog("result22:"+new String(result.getBytes("GBK"),"UTF-8")); + + if(!"".equals(result)) + { + Document doc = DocumentHelper.parseText(result); + Element topEle = doc.getRootElement(); + Element bodyEle = topEle.element("Body"); + Element rootEle = bodyEle.element("ZMM_PURCHASEREQUEST_IMPResponse"); + Element O_DATA = rootEle.element("O_DATA"); + + String returnData = new String(O_DATA.getText().getBytes("GBK"),"UTF-8"); + + log.writeLog("returnData:"+returnData); + + if(!"".equals(returnData)) + { + Document dataDoc = DocumentHelper.parseText(returnData); + Element topDataEle = dataDoc.getRootElement(); + log.writeLog("topDataEle:"+topDataEle.asXML()); + + Element retuenDataEle = topDataEle.element("RETURN"); + log.writeLog("retuenDataEle:"+retuenDataEle.asXML()); + + Element typeDataEle = retuenDataEle.element("TYPE"); + String type = typeDataEle.getText(); + Element messageDataEle = retuenDataEle.element("MESSAGE"); + String message = messageDataEle.getText(); + + map.put("type",type); + map.put("message",message); + + log.writeLog("type:"+type); + map.put("num","1"); + }else{ + map.put("num","1004"); + } + }else{ + map.put("num","1003"); + } + }else{ + map.put("num","1002"); + } + } catch (Exception e) + { + log.writeLog("e:"+e); + map.put("num","1001"); + } finally { + if (response != null) { + try { + EntityUtils.consume(response.getEntity()); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + return map; + } +} diff --git a/src/weaver/interfaces/sap/action/ZMM_VENDORDATA_MAINTAIN_Action.java b/src/weaver/interfaces/sap/action/ZMM_VENDORDATA_MAINTAIN_Action.java new file mode 100755 index 0000000..17217f7 --- /dev/null +++ b/src/weaver/interfaces/sap/action/ZMM_VENDORDATA_MAINTAIN_Action.java @@ -0,0 +1,427 @@ +package weaver.interfaces.sap.action; + +import org.apache.commons.lang3.StringUtils; +import org.apache.http.HttpEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.util.EntityUtils; +import org.dom4j.Document; +import org.dom4j.DocumentHelper; +import org.dom4j.Element; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.RequestInfo; + +import java.io.IOException; +import java.nio.charset.Charset; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +/** + * + * + * 供应商主数据 + * 将数据传给SAP接口并接收其返回的参数 + */ +public class ZMM_VENDORDATA_MAINTAIN_Action implements Action { + @Override + public String execute(RequestInfo requestInfo) { + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + + bb.writeLog("....ZMM_VENDORDATA_MAINTAIN_Action..."); + String requestid = requestInfo.getRequestid(); + String formtable = requestInfo.getRequestManager().getBillTableName(); + try { + + String client = "" ; + String sql =" SELECT client FROM " + formtable + " WHERE REQUESTID=" + requestid; + rs.execute(sql); + if (rs.next()){ + client = Util.null2String(rs.getString("client")); + } + + if(StringUtils.isNotBlank(client)){ + + String LIFNR = "" ; + String MATNR = "" ; + String INFNR = "" ; + String VERKF = "" ; + String TELF1 = "" ; + String MEINS = "" ; + String UMREN = "" ; + String UMREZ = "" ; + String URZLA = "" ; + String ZFLAG = "" ; + String LOEKZ = "" ; + String ZCZTJ = "" ; + + String ESOKZ = "" ; + String EKORG = "" ; + String APLFZ = "" ; + String EKGRP = "" ; + String NORBM = "" ; + String MINBM = "" ; + String UEBTO = "" ; + String MWSKZ = "" ; + String WEBRE = "" ; + String NETPR = "" ; + String WAERS = "" ; + String PEINH = "" ; + String BPRME = "" ; + String KSCHL = "" ; + String PRDAT = ""; + String BPUMN = "" ; + String BPUMZ = ""; + String EINELOEKZ = "" ; //删除标志(采购组织级) + String DATS = "" ; + String DATBI = "" ; + String ZTJYW = "" ; + + + String KSTBM = "" ; + String KONMS = "" ; + String KBETR = "" ; + + + String dataxml = "" ; + sql =" SELECT * FROM " + formtable + " WHERE REQUESTID=" + requestid; + rs.execute(sql); + if (rs.next()) { + + dataxml +="" ; + LIFNR = Util.null2String(rs.getString("LIFNR")) ; + dataxml += ""+LIFNR+"" ; + + MATNR = Util.null2String(rs.getString("MATNR")) ; + dataxml += ""+MATNR+"" ; + + INFNR = Util.null2String(rs.getString("INFNR")) ; + dataxml += ""+INFNR+"" ; + + ESOKZ = Util.null2String(rs.getString("ESOKZ")) ; + dataxml += ""+ESOKZ+"" ; + + VERKF = Util.null2String(rs.getString("VERKF")) ; + dataxml += ""+VERKF+"" ; + + TELF1 = Util.null2String(rs.getString("TELF1")); + dataxml += ""+TELF1+"" ; + + MEINS = Util.null2String(rs.getString("MEINS")) ; + dataxml += ""+MEINS+"" ; + + UMREN = Util.null2String(rs.getString("UMREN")) ; + dataxml += ""+UMREN+"" ; + + UMREZ = Util.null2String(rs.getString("UMREZ")) ; + dataxml += ""+UMREZ+"" ; + + URZLA = Util.null2String(rs.getString("URZLA")) ; + dataxml += ""+URZLA+"" ; + + ZFLAG = Util.null2String(rs.getString("ZFLAG")) ; + dataxml += ""+ZFLAG+"" ; + + LOEKZ = Util.null2String(rs.getString("LOEKZ")) ; + dataxml += ""+LOEKZ+"" ; + + EKORG = Util.null2String(rs.getString("EKORG")) ; + dataxml += ""+EKORG+"" ; + + APLFZ = Util.null2String(rs.getString("APLFZ")) ; + dataxml += ""+APLFZ+"" ; + + EKGRP = Util.null2String(rs.getString("EKGRP")) ; + dataxml += ""+EKGRP+"" ; + + NORBM = Util.null2String(rs.getString("NORBM")) ; + dataxml += ""+NORBM+"" ; + + MINBM = Util.null2String(rs.getString("MINBM")) ; + dataxml += ""+MINBM+"" ; + + UEBTO = Util.null2String(rs.getString("UEBTO")) ; + dataxml += ""+UEBTO+"" ; + + MWSKZ = Util.null2String(rs.getString("MWSKZ")) ; + dataxml += ""+MWSKZ+"" ; + + WEBRE = Util.null2String(rs.getString("WEBRE")) ; + dataxml += ""+WEBRE+"" ; + + NETPR = Util.null2String(rs.getString("NETPR")) ; + dataxml += ""+NETPR+"" ; + + WAERS = Util.null2String(rs.getString("WAERS")) ; + dataxml += ""+WAERS+"" ; + + PEINH = Util.null2String(rs.getString("PEINH")) ; + dataxml += ""+PEINH+"" ; + + BPRME = Util.null2String(rs.getString("BPRME")) ; + dataxml += ""+BPRME+"" ; + + KSCHL = Util.null2String(rs.getString("KSCHL")) ; + dataxml += ""+KSCHL+"" ; + + PRDAT = Util.null2String(rs.getString("PRDAT")) ; + dataxml += ""+PRDAT+"" ; + + BPUMN = Util.null2String(rs.getString("BPUMN")) ; + dataxml += ""+BPUMN+"" ; + + BPUMZ = Util.null2String(rs.getString("BPUMZ")) ; + dataxml += ""+BPUMZ+"" ; + + + EINELOEKZ = Util.null2String(rs.getString("EINELOEKZ")) ;//删除标志(采购组织级) + dataxml += ""+EINELOEKZ+"" ; + + dataxml += ""+"" ; + dataxml += ""+"" ; + dataxml += "0000-00-00" ; + + DATBI = Util.null2String(rs.getString("DATBI")) ; + dataxml += ""+DATBI+"" ; + + KSTBM = Util.null2String(rs.getString("KSTBM")); + dataxml += ""+KSTBM+"" ; + + KONMS = Util.null2String(rs.getString("KONMS")); + dataxml += ""+KONMS+"" ; + + KBETR = Util.null2String(rs.getString("KBETR")); + dataxml += ""+KBETR+"" ; + + ZTJYW = Util.null2String(rs.getString("ZTJYW")); + dataxml += ""+ZTJYW+"" ; + + ZCZTJ = Util.null2String(rs.getString("ZCZTJ")) ; + dataxml += ""+ZCZTJ+"" ; + + dataxml += "" ; + + dataxml += "" ; + LIFNR = Util.null2String(rs.getString("LIFNR")) ; + dataxml += ""+LIFNR+""; + + MATNR = Util.null2String(rs.getString("MATNR")) ; + dataxml += ""+MATNR+"" ; + + INFNR = Util.null2String(rs.getString("INFNR")) ; + dataxml += ""+INFNR+"" ; + + dataxml += ""+"" ; + dataxml += "0000-00-00" ; + + DATBI = Util.null2String(rs.getString("DATBI")) ; + dataxml += ""+DATBI+"" ; + + KSTBM = Util.null2String(rs.getString("KSTBM")); + dataxml += ""+KSTBM+"" ; + + KONMS = Util.null2String(rs.getString("KONMS")); + dataxml += ""+KONMS+"" ; + + KBETR = Util.null2String(rs.getString("KBETR")); + dataxml += ""+KBETR+"" ; + + dataxml += "" ; + } + + String username = ""; + String password = ""; + + + String saphost = bb.getPropValue("CGDD_WORKFLOW","SAPHOST"); +// String saptype = bb.getPropValue("CGDD_WORKFLOW","SAPTYPE"); + + //http://lemprd.lemtech.cn:8000/sap/bc/srt/rfc/sap/zmm_vendordata_maintain/300/zmm_vendordata_maintain/zmm_vendordata_maintain; + + String wsdl = saphost+"/sap/bc/srt/rfc/sap/zmm_vendordata_maintain/"+client+"/zmm_vendordata_maintain/zmm_vendordata_maintain" ; + + String soapAction = "urn:sap-com:document:sap:rfc:functions:ZMM_VENDORDATA_MAINTAIN:ZMM_VENDORDATA_MAINTAINRequest"; + + String usr_pwd = username+":"+password ; + + String I_DATA = " \n" + + " "+dataxml+"]]>" ; + + String xml= " \n" + + " \n" + + " \n" + + " \n" + + " "+I_DATA+"\n" + + " \n" + + " \n" + + " "; + + bb.writeLog("xml:"+xml); + + List list = new ArrayList(); + Map msgMap = doPostSoap(wsdl,xml,soapAction,usr_pwd,list); + String num = msgMap.get("num"); + if("1".equals(num)){ + String message = msgMap.get("message"); + String type = msgMap.get("type"); + if("S".equalsIgnoreCase(type)) + { + sql = " UPDATE "+formtable+" SET type='" + type + "',message='" + message + "' WHERE requestId=" + requestid; + bb.writeLog("sql:"+sql); + boolean flag = rs.executeUpdate(sql); + if(!flag){ + requestInfo.getRequestManager().setMessage("1000"); + requestInfo.getRequestManager().setMessagecontent("更新流程接口状态失败"); + return Action.FAILURE_AND_CONTINUE; + } + }else if("E".equalsIgnoreCase(type)){ + sql = " UPDATE "+formtable+" SET type='" + type + "',message='" + message + "' WHERE requestId=" + requestid; + bb.writeLog("sql:"+sql); + boolean flag = rs.executeUpdate(sql); + if(!flag){ + requestInfo.getRequestManager().setMessage("1000"); + requestInfo.getRequestManager().setMessagecontent("更新流程接口状态失败"); + return Action.FAILURE_AND_CONTINUE; + }else{ + requestInfo.getRequestManager().setMessage(num); + requestInfo.getRequestManager().setMessagecontent(message); + return Action.FAILURE_AND_CONTINUE; + } + } + }else{ + requestInfo.getRequestManager().setMessage(num); + requestInfo.getRequestManager().setMessagecontent("接口调用异常!"); + return Action.FAILURE_AND_CONTINUE; + } + + + }else{ + requestInfo.getRequestManager().setMessageid("1000"); + requestInfo.getRequestManager().setMessagecontent("client获取值为空"); + return Action.FAILURE_AND_CONTINUE; + } + + + + } catch (Exception e) { + bb.writeLog("数据异常!"); + bb.writeLog(e.getMessage()); + requestInfo.getRequestManager().setMessage("1111"); + requestInfo.getRequestManager().setMessagecontent("数据异常!"); + return Action.FAILURE_AND_CONTINUE; + } + return Action.SUCCESS; + } + + + /*** + * + * @param url + * @param soapXml + * @param soapAction + * @param userpass + * @param list + * @return + * @throws Exception + */ + public Map doPostSoap(String url, String soapXml, String soapAction, String userpass,List list) throws Exception + { + BaseBean log = new BaseBean(); + + Map msgMap = new HashMap(); + log.writeLog("url:"+url); + log.writeLog("soapXml:"+soapXml); + log.writeLog("soapAction:"+soapAction); + log.writeLog("userpass:"+userpass); + log.writeLog("list:"+list.size()); + + HttpClientBuilder httpClientBuilder = HttpClientBuilder.create(); + CloseableHttpClient closeableHttpClient = httpClientBuilder.build(); + HttpPost httpPost = new HttpPost(url); + //设置请求和传输超时时间 + String result = ""; + CloseableHttpResponse response = null; + List> logList = new ArrayList>(); + try { + httpPost.setHeader("Content-Type", "text/xml;charset=UTF-8"); + httpPost.setHeader("SOAPAction", soapAction); + //httpPost.addHeader(new BasicHeader("Authorization", "Basic " + new String(Base64.encode(userpass.getBytes())))); + StringEntity data = new StringEntity(soapXml, Charset.forName("UTF-8")); + log.writeLog("data:"+data.toString()); + httpPost.setEntity(data); + response = closeableHttpClient.execute(httpPost); + HttpEntity httpEntity = response.getEntity(); + if (httpEntity != null) + { + result = EntityUtils.toString(httpEntity, "UTF-8"); + log.writeLog("result:"+result); + + + if(!"".equals(result)) + { + Document doc = DocumentHelper.parseText(result); + Element topEle = doc.getRootElement(); + Element bodyEle = topEle.element("Body"); + Element rootEle = bodyEle.element("ZMM_PURCHASEINFODATA_IMPResponse"); + Element O_DATA = rootEle.element("O_DATA"); + + String returnData = new String(O_DATA.getText().getBytes("GBK"),"UTF-8"); + + log.writeLog("returnData:"+returnData); + + if(!"".equals(returnData)) + { + Document dataDoc = DocumentHelper.parseText(returnData); + Element topDataEle = dataDoc.getRootElement(); + log.writeLog("topDataEle:"+topDataEle.asXML()); + + Element retuenDataEle = topDataEle.element("RETURN"); + log.writeLog("retuenDataEle:"+retuenDataEle.asXML()); + + Element typeDataEle = retuenDataEle.element("TYPE"); + + Element messageDataEle = retuenDataEle.element("message"); + + + String type = typeDataEle.getText(); + String message = messageDataEle.getText(); + + msgMap.put("type",type); + msgMap.put("message",message); + + log.writeLog("type:"+type); + msgMap.put("num","1"); + }else{ + msgMap.put("num","1005"); + } + }else{ + msgMap.put("num","1006"); + } + }else{ + msgMap.put("num","1002"); + } + } catch (Exception e) + { + log.writeLog("e:"+e); + msgMap.put("num","1001"); + } finally { + if (response != null) { + try { + EntityUtils.consume(response.getEntity()); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + return msgMap; + } +} diff --git a/src/weaver/interfaces/sap/action/ZOA_REIMBURSEMENT_Action.java b/src/weaver/interfaces/sap/action/ZOA_REIMBURSEMENT_Action.java new file mode 100755 index 0000000..d50e53f --- /dev/null +++ b/src/weaver/interfaces/sap/action/ZOA_REIMBURSEMENT_Action.java @@ -0,0 +1,450 @@ +package weaver.interfaces.sap.action; + +import org.apache.commons.lang3.StringUtils; +import org.apache.http.HttpEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.util.EntityUtils; +import org.dom4j.Document; +import org.dom4j.DocumentHelper; +import org.dom4j.Element; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.RequestInfo; + +import java.io.IOException; +import java.nio.charset.Charset; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + + * @author 2019-01-14 + * 外部采购申请明细 + * + */ +public class ZOA_REIMBURSEMENT_Action extends BaseBean implements Action { + + @Override + public String execute(RequestInfo requestInfo) { + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + + bb.writeLog("....ZOA_REIMBURSEMENT_Action..."); + String requestid = requestInfo.getRequestid(); + String formtable = requestInfo.getRequestManager().getBillTableName(); + try { + + String client = "" ; + String sql =" SELECT client FROM " + formtable + " WHERE requestid=" + requestid; + bb.writeLog(sql); + rs.execute(sql); + if (rs.next()) { + client = Util.null2String(rs.getString("client")); + } + if(StringUtils.isBlank(client)){ + requestInfo.getRequestManager().setMessageid("1000"); + requestInfo.getRequestManager().setMessagecontent("client获取值为空"); + return Action.FAILURE_AND_CONTINUE; + } + + String BUKRS = "" ; + String BLART = "" ; + String BLDAT = "" ; + String BUDAT = "" ; + String MONAT = "" ; + String WAERS = "" ; + String KURSF = "" ; + String WWERT = "" ; + String BKTXT = "" ; + String USNAM = "" ; + String XMWST = "" ; + + String MAINID = "" ; + String headXml = "" ; + sql =" SELECT ID,BUKRS,BLART,BLDAT,BUDAT,WAERS,KURSF,WWERT,BKTXT,USNAM,XMWST FROM " + formtable + " WHERE REQUESTID=" + requestid; + bb.writeLog(sql); + rs.execute(sql); + if (rs.next()) { + BUKRS = Util.null2String(rs.getString("BUKRS")); + BLART = Util.null2String(rs.getString("BLART")); + BLDAT = Util.null2String(rs.getString("BLDAT")); + BUDAT = Util.null2String(rs.getString("BUDAT")); + + if(!"".equals(BUDAT)){ + MONAT = BUDAT.substring(5,7); + if(MONAT.startsWith("0")){ + MONAT = BUDAT.substring(6,7); + } + } + bb.writeLog("MONAT:"+MONAT); + + WAERS = Util.null2String(rs.getString("WAERS")); + KURSF = Util.null2String(rs.getString("KURSF")); + WWERT = Util.null2String(rs.getString("WWERT")); + BKTXT = Util.null2String(rs.getString("BKTXT")); + USNAM = Util.null2String(rs.getString("USNAM")); + XMWST = Util.null2String(rs.getString("XMWST")); + bb.writeLog("XMWST:"+XMWST); + + headXml += ""+BUKRS+"" ; + headXml += ""+BLART+"" ; + headXml += ""+BLDAT+"" ; + headXml += ""+BUDAT+"" ; + headXml += ""+MONAT+"" ; + headXml += ""+WAERS+"" ; + headXml += ""+KURSF+"" ; + headXml += ""+WWERT+"" ; + headXml += ""+BKTXT+"" ; + headXml += ""+USNAM+"" ; + headXml += ""+XMWST+"" ; + + MAINID = Util.null2String(rs.getString("ID")); + } + headXml += ""; + + bb.writeLog("MAINID:"+MAINID); + + String itemXml = "" ; + if(!"".equals(MAINID)){ + double jfje = 0; + double dfje = 0; + + sql =" select jdf,sum(wrbtr) as wrbtr from "+formtable+"_dt1 where mainid=" +MAINID+ + " group by jdf "; + rs.execute(sql); + while (rs.next()){ + String jdf = Util.null2String(rs.getString("jdf")); + if("0".equals(jdf)){ + jfje = Util.getDoubleValue(Util.null2String(rs.getString("wrbtr"))); + }else if("1".equals(jdf)){ + dfje = Util.getDoubleValue(Util.null2String(rs.getString("wrbtr"))); + } + } + + int ksm = 0; + bb.writeLog("jfje:"+jfje); + bb.writeLog("dfje:"+dfje); + if((jfje - dfje) == 0){ + sql = " select BSCHL,HKONT,LIFNR,WRBTR,DMBTR,KOSTL,AUFNR,ZTERM,ZFBDT,MWSKZ,RSTGR,ZUONR,SGTXT," + + "KUNNR,ANLN1,BEWAR,UMSKZ FROM "+formtable+"_DT1 WHERE MAINID="+MAINID+" and JDF=0"; + bb.writeLog("sql:"+sql); + rs.execute(sql); + while (rs.next()){ + String BSCHL = Util.null2String(rs.getString("BSCHL")); + bb.writeLog("BSCHL:"+BSCHL); + String HKONT = Util.null2String(rs.getString("HKONT")); + bb.writeLog("HKONT:"+HKONT); + + String LIFNR = Util.null2String(rs.getString("LIFNR")); + String WRBTR = Util.null2String(rs.getString("WRBTR")); + bb.writeLog("WRBTR:"+WRBTR); + + String DMBTR = Util.null2String(rs.getString("DMBTR")); + bb.writeLog("DMBTR:"+DMBTR); + + String KOSTL = Util.null2String(rs.getString("KOSTL")); + String AUFNR = Util.null2String(rs.getString("AUFNR")); + String ZTERM = Util.null2String(rs.getString("ZTERM")); + String ZFBDT = Util.null2String(rs.getString("ZFBDT")); + String MWSKZ = Util.null2String(rs.getString("MWSKZ")); + if(!"".equals(XMWST)) { + if ("".equals(MWSKZ)) { + ksm++; + } + } + + String RSTGR = Util.null2String(rs.getString("RSTGR")); + String ZUONR = Util.null2String(rs.getString("ZUONR")); + String SGTXT = Util.null2String(rs.getString("SGTXT")); + + String KUNNR = Util.null2String(rs.getString("KUNNR")); + String ANLN1 = Util.null2String(rs.getString("ANLN1")); + String BEWAR = Util.null2String(rs.getString("BEWAR")); + String UMSKZ = Util.null2String(rs.getString("UMSKZ")); + + if(!"".equals(BSCHL)){ + + itemXml += "" ; + itemXml += ""+BSCHL+"" ; + itemXml += ""+HKONT+"" ; + itemXml += ""+LIFNR+"" ; + itemXml += ""+WRBTR+"" ; + itemXml += ""+DMBTR+"" ; + itemXml += ""+KOSTL+"" ; + itemXml += ""+AUFNR+"" ; + itemXml += ""+ZTERM+"" ; + itemXml += ""+ZFBDT+"" ; + itemXml += ""+MWSKZ+"" ; + itemXml += ""+RSTGR+"" ; + itemXml += ""+ZUONR+"" ; + itemXml += ""+SGTXT+"" ; + + itemXml += ""+KUNNR+"" ; + itemXml += ""+ANLN1+"" ; + itemXml += ""+BEWAR+"" ; + itemXml += ""+UMSKZ+"" ; + + itemXml += "" ; + } + } + + + sql = " select BSCHL,HKONT,LIFNR,WRBTR,DMBTR,KOSTL,AUFNR,ZTERM,ZFBDT,MWSKZ,RSTGR,ZUONR,SGTXT," + + " KUNNR,ANLN1,BEWAR,UMSKZ FROM "+formtable+"_DT1 WHERE MAINID="+MAINID+" and JDF=1"; + bb.writeLog("sql:"+sql); + rs.execute(sql); + while (rs.next()){ + + String BSCHL = Util.null2String(rs.getString("BSCHL")); + bb.writeLog("BSCHL:"+BSCHL); + String HKONT = Util.null2String(rs.getString("HKONT")); + bb.writeLog("HKONT:"+HKONT); + + String LIFNR = Util.null2String(rs.getString("LIFNR")); + String WRBTR = Util.null2String(rs.getString("WRBTR")); + bb.writeLog("WRBTR:"+WRBTR); + + String DMBTR = Util.null2String(rs.getString("DMBTR")); + bb.writeLog("DMBTR:"+DMBTR); + + String KOSTL = Util.null2String(rs.getString("KOSTL")); + String AUFNR = Util.null2String(rs.getString("AUFNR")); + String ZTERM = Util.null2String(rs.getString("ZTERM")); + String ZFBDT = Util.null2String(rs.getString("ZFBDT")); + String MWSKZ = Util.null2String(rs.getString("MWSKZ")); + + if(!"".equals(XMWST)) { + if ("".equals(MWSKZ)) { + ksm++; + } + } + + String RSTGR = Util.null2String(rs.getString("RSTGR")); + String ZUONR = Util.null2String(rs.getString("ZUONR")); + String SGTXT = Util.null2String(rs.getString("SGTXT")); + + String KUNNR = Util.null2String(rs.getString("KUNNR")); + String ANLN1 = Util.null2String(rs.getString("ANLN1")); + String BEWAR = Util.null2String(rs.getString("BEWAR")); + String UMSKZ = Util.null2String(rs.getString("UMSKZ")); + + if(!"".equals(BSCHL)){ + itemXml += "" ; + itemXml += ""+BSCHL+"" ; + itemXml += ""+HKONT+"" ; + itemXml += ""+LIFNR+"" ; + itemXml += ""+WRBTR+"" ; + itemXml += ""+DMBTR+"" ; + itemXml += ""+KOSTL+"" ; + itemXml += ""+AUFNR+"" ; + itemXml += ""+ZTERM+"" ; + itemXml += ""+ZFBDT+"" ; + itemXml += ""+MWSKZ+"" ; + itemXml += ""+RSTGR+"" ; + itemXml += ""+ZUONR+"" ; + itemXml += ""+SGTXT+"" ; + + itemXml += ""+KUNNR+"" ; + itemXml += ""+ANLN1+"" ; + itemXml += ""+BEWAR+"" ; + itemXml += ""+UMSKZ+"" ; + + itemXml += "" ; + } + } + + if(ksm > 0){ + requestInfo.getRequestManager().setMessage("1111"); + requestInfo.getRequestManager().setMessagecontent("是否计算税金不为空,需填写税码"); + return Action.FAILURE_AND_CONTINUE; + } + }else{ + requestInfo.getRequestManager().setMessage("1111"); + requestInfo.getRequestManager().setMessagecontent("数据异常,借贷金额不平"); + return Action.FAILURE_AND_CONTINUE; + } + }else{ + requestInfo.getRequestManager().setMessage("1111"); + requestInfo.getRequestManager().setMessagecontent("数据异常,获取流程相关信息失败"); + return Action.FAILURE_AND_CONTINUE; + } + + String username = ""; + String password = ""; + + //String wsdl = "http://lemqas.lemtech.cn:8000/sap/bc/srt/rfc/sap/zfi_reimbursement_imp/240/zfi_reimbursement_imp/zfi_reimbursement_imp" ; + + String saphost = bb.getPropValue("CGDD_WORKFLOW","SAPHOST"); + String wsdl = saphost+"/sap/bc/srt/rfc/sap/zfi_reimbursement_imp/"+client+"/zfi_reimbursement_imp/zfi_reimbursement_imp" ; + + String soapAction = "urn:sap-com:document:sap:rfc:functions:ZFI_REIMBURSEMENT_IMP:ZFI_REIMBURSEMENT_IMPRequest"; + String usr_pwd = username+":"+password ; + + itemXml = itemXml+"" ; + + String I_DATA = " \n" + + " "+headXml+itemXml+"]]>" ; + + + String xml= "\n" + + " \n" + + " \n" + + " \n" + + " "+I_DATA+"\n" + + " \n" + + " \n" + + ""; + + bb.writeLog("xml:"+xml); + + Map msgMap = doPostSoap(wsdl,xml,soapAction,usr_pwd); + String num = msgMap.get("num"); + if("1".equals(num)){ + String message = msgMap.get("message"); + String type = msgMap.get("type"); + if("S".equalsIgnoreCase(type)) + { + sql = " UPDATE "+formtable+" SET type='" + type + "',message='" + message + "' WHERE requestId=" + requestid; + bb.writeLog("sql:"+sql); + boolean flag = rs.executeUpdate(sql); + if(!flag){ + requestInfo.getRequestManager().setMessage("1000"); + requestInfo.getRequestManager().setMessagecontent("更新流程接口状态失败"); + return Action.FAILURE_AND_CONTINUE; + } + }else if("E".equalsIgnoreCase(type)){ + sql = " UPDATE "+formtable+" SET type='" + type + "',message='" + message + "' WHERE requestId=" + requestid; + bb.writeLog("sql:"+sql); + boolean flag = rs.executeUpdate(sql); + if(!flag){ + requestInfo.getRequestManager().setMessage("1000"); + requestInfo.getRequestManager().setMessagecontent("更新流程接口状态失败"); + return Action.FAILURE_AND_CONTINUE; + }else{ + requestInfo.getRequestManager().setMessage(num); + requestInfo.getRequestManager().setMessagecontent(message); + return Action.FAILURE_AND_CONTINUE; + } + } + }else{ + requestInfo.getRequestManager().setMessage(num); + requestInfo.getRequestManager().setMessagecontent("接口调用异常!"); + return Action.FAILURE_AND_CONTINUE; + } + } catch (Exception e) { + bb.writeLog("数据异常!"); + bb.writeLog(e.getMessage()); + requestInfo.getRequestManager().setMessage("1111"); + requestInfo.getRequestManager().setMessagecontent("数据异常!"); + return Action.FAILURE_AND_CONTINUE; + } + return Action.SUCCESS; + } + + /*** + * + * @param url + * @param soapXml + * @param soapAction + * @param userpass + * @return + * @throws Exception + */ + public Map doPostSoap(String url, String soapXml, String soapAction, String userpass) throws Exception + { + + Map msgMap = new HashMap(); + BaseBean log = new BaseBean(); + + log.writeLog("url:"+url); + log.writeLog("soapXml:"+soapXml); + log.writeLog("soapAction:"+soapAction); + log.writeLog("userpass:"+userpass); + + HttpClientBuilder httpClientBuilder = HttpClientBuilder.create(); + CloseableHttpClient closeableHttpClient = httpClientBuilder.build(); + HttpPost httpPost = new HttpPost(url); + //设置请求和传输超时时间 + String result = ""; + CloseableHttpResponse response = null; + List> logList = new ArrayList>(); + try { + httpPost.setHeader("Content-Type", "text/xml;charset=UTF-8"); + httpPost.setHeader("SOAPAction", soapAction); + //httpPost.addHeader(new BasicHeader("Authorization", "Basic " + new String(Base64.encode(userpass.getBytes())))); + StringEntity data = new StringEntity(soapXml, Charset.forName("UTF-8")); + log.writeLog("data:"+data.toString()); + httpPost.setEntity(data); + response = closeableHttpClient.execute(httpPost); + HttpEntity httpEntity = response.getEntity(); + if (httpEntity != null) + { + result = EntityUtils.toString(httpEntity, "UTF-8"); + log.writeLog("result:"+result); + + if(!"".equals(result)) + { + Document doc = DocumentHelper.parseText(result); + Element topEle = doc.getRootElement(); + Element bodyEle = topEle.element("Body"); + Element rootEle = bodyEle.element("ZFI_REIMBURSEMENT_IMPResponse"); + Element O_DATA = rootEle.element("O_DATA"); + + String returnData = new String(O_DATA.getText().getBytes("UTF-8"),"UTF-8"); + + log.writeLog("returnData:"+returnData); + + if(!"".equals(returnData)) + { + Document dataDoc = DocumentHelper.parseText(returnData); + Element topDataEle = dataDoc.getRootElement(); + log.writeLog("topDataEle:"+topDataEle.asXML()); + + Element retuenDataEle = topDataEle.element("RETURN"); + log.writeLog("retuenDataEle:"+retuenDataEle.asXML()); + + Element typeDataEle = retuenDataEle.element("TYPE"); + + String type = typeDataEle.getText(); + + Element messageDataEle = retuenDataEle.element("MESSAGE"); + + String message = messageDataEle.getText().replace("\'","‘").replace("\'","‘").replace("\'","‘").replace("\'","‘"); + + msgMap.put("type",type); + msgMap.put("message",message); + msgMap.put("num","1"); + + }else{ + msgMap.put("num","1005"); + } + }else{ + msgMap.put("num","1004"); + } + }else{ + msgMap.put("num","1003"); + } + } catch (Exception e) + { + log.writeLog("e:"+e); + msgMap.put("num","1002"); + } finally { + if (response != null) { + try { + EntityUtils.consume(response.getEntity()); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + return msgMap; + } +} \ No newline at end of file diff --git a/src/weaver/interfaces/sap/action/ZSD_SALEPRICECONDITION_IMP_Action.java b/src/weaver/interfaces/sap/action/ZSD_SALEPRICECONDITION_IMP_Action.java new file mode 100755 index 0000000..6ff0848 --- /dev/null +++ b/src/weaver/interfaces/sap/action/ZSD_SALEPRICECONDITION_IMP_Action.java @@ -0,0 +1,618 @@ +package weaver.interfaces.sap.action; + +import org.apache.commons.lang3.StringUtils; +import org.apache.http.HttpEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.util.EntityUtils; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.RequestInfo; +import org.dom4j.Document; +import org.dom4j.DocumentException; +import org.dom4j.DocumentHelper; +import org.dom4j.Element; +import java.io.IOException; +import java.nio.charset.Charset; +import java.util.*; + +/** + * @author + * 销售条件记录 + * + */ +public class ZSD_SALEPRICECONDITION_IMP_Action extends BaseBean implements Action { + + @Override + public String execute(RequestInfo requestInfo) { + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + + bb.writeLog("....ZSD_SALEPRICECONDITION_IMP_Action..."); + String requestid = requestInfo.getRequestid(); + String formtable = requestInfo.getRequestManager().getBillTableName(); + try { + String mainid = "" ; + String ywbs = "" ; + String client = "" ; + String sql =" SELECT id,ywbs,client FROM " + formtable + " WHERE REQUESTID=" + requestid; + rs.execute(sql); + if (rs.next()){ + mainid = Util.null2String(rs.getString("id")); + ywbs = Util.null2String(rs.getString("ywbs")); + client = Util.null2String(rs.getString("client")); + } + + if(StringUtils.isNotBlank(client)){ + String dataxml = "" ; + dataxml +="" ; + sql =" SELECT * FROM "+formtable+"_dt1 WHERE mainid =" + mainid +" and (bs1=1 or bs1 is null) "; + bb.writeLog("sql:"+sql); + rs.execute(sql); + while (rs.next()) + { + dataxml +="" ; + + String KNUMH = Util.null2String(rs.getString("KNUMH")) ; +// dataxml += ""+KNUMH+"" ; + + String KSCHL = Util.null2String(rs.getString("KSCHL")) ; //主表 + dataxml += ""+KSCHL+"" ; + + String ZBG = Util.null2String(rs.getString("ZBG")) ; //主表 + dataxml += ""+ZBG+"" ; + + String VKORG = Util.null2String(rs.getString("VKORG")); + dataxml += ""+VKORG+"" ; + + String VTWEG = Util.null2String(rs.getString("VTWEG")) ; //主表 + dataxml += ""+VTWEG+"" ; + + String KUNNR = Util.null2String(rs.getString("KUNNR")) ; //明细表1 + dataxml += ""+KUNNR+"" ; + + String MATNR = Util.null2String(rs.getString("MATNR")) ; //主表 + dataxml += ""+MATNR+"" ; + + String DATBI = Util.null2String(rs.getString("DATBI")); //主表 + dataxml += ""+DATBI+"" ; + + String DATAB = Util.null2String(rs.getString("DATAB")) ; //主表 + dataxml += ""+DATAB+"" ; + + String VKORGAU = Util.null2String(rs.getString("VKORGAU")) ; //主表 + dataxml += ""+VKORGAU+"" ; + + String WERKS = Util.null2String(rs.getString("WERKS")) ; //主表 + dataxml += ""+WERKS+"" ; + + String WAERK = Util.null2String(rs.getString("WAERK")) ; //主表 + dataxml += ""+WAERK+"" ; + + String KONDA = Util.null2String(rs.getString("KONDA")) ; //主表 + dataxml += ""+KONDA+"" ; + + String PLTYP = Util.null2String(rs.getString("PLTYP")) ; //主表 + dataxml += ""+PLTYP+"" ; + + String ZFLAG = Util.null2String(rs.getString("ZFLAG")) ; // + dataxml += ""+ZFLAG+"" ; + + String dt1xh = Util.null2String(rs.getString("xh")) ; + dataxml += ""+dt1xh+"" ; + + String itemJtXml = "" ; + itemJtXml = doGetItemXml(dt1xh,formtable,mainid,ywbs,KNUMH); + + dataxml += "" ; + dataxml += itemJtXml ; + dataxml += ""; + + dataxml += "" ; + } + dataxml += "" ; + + bb.writeLog("dataxml:"+dataxml); + + String username = ""; + String password = ""; + String saphost = bb.getPropValue("CGDD_WORKFLOW","SAPHOST"); +// String saptype = bb.getPropValue("CGDD_WORKFLOW","SAPTYPE"); + + String wsdl = saphost+"/sap/bc/srt/rfc/sap/zsd_salepricecondition_imp/"+client+"/zsd_salepricecondition_imp/zsd_salepricecondition_imp" ; + String soapAction = "urn:sap-com:document:sap:rfc:functions:ZSD_SALEPRICECONDITION_IMP:ZSD_SALEPRICECONDITION_IMPRequest"; + String usr_pwd = username+":"+password ; + String I_DATA = " "+dataxml+"]]>" ; + String xml= " \n" + + " \n" + + " \n" + + " \n" + + " "+I_DATA+"\n" + + " \n" + + " \n" + + " "; + + bb.writeLog("xml:"+xml); + + List list = new ArrayList(); + Map msgMap = doPostSoap(wsdl,xml,soapAction,usr_pwd,list,formtable,mainid); + String num = msgMap.get("num"); + if("1".equals(num)){ + String result = msgMap.get("result"); + String type = msgMap.get("type"); + String message = msgMap.get("message"); + + if("S".equalsIgnoreCase(type)) + { + sql = " UPDATE "+formtable+" SET type='" + type + "',message='" + result + "' WHERE requestId=" + requestid; + bb.writeLog("sql:"+sql); + boolean flag = rs.executeUpdate(sql); + if(!flag){ + requestInfo.getRequestManager().setMessage("1000"); + requestInfo.getRequestManager().setMessagecontent("更新流程接口状态失败"); + return Action.FAILURE_AND_CONTINUE; + } + }else if("E".equalsIgnoreCase(type)){ + sql = " UPDATE "+formtable+" SET type='" + type + "',message='" + result + "' WHERE requestId=" + requestid; + bb.writeLog("sql:"+sql); + boolean flag = rs.executeUpdate(sql); + if(!flag){ + requestInfo.getRequestManager().setMessage("1000"); + requestInfo.getRequestManager().setMessagecontent("更新流程接口状态失败"); + return Action.FAILURE_AND_CONTINUE; + }else{ + requestInfo.getRequestManager().setMessage(num); + requestInfo.getRequestManager().setMessagecontent(message); + return Action.FAILURE_AND_CONTINUE; + } + } + }else{ + + String result = msgMap.get("result"); + String type = msgMap.get("type"); + sql = " UPDATE "+formtable+" SET type='" + type + "',message='" + result + "' WHERE requestId=" + requestid; + bb.writeLog("sql:"+sql); + boolean flag = rs.executeUpdate(sql); + if(!flag){ + requestInfo.getRequestManager().setMessage("1000"); + requestInfo.getRequestManager().setMessagecontent("更新流程接口状态失败"); + return Action.FAILURE_AND_CONTINUE; + }else{ + requestInfo.getRequestManager().setMessage(num); + requestInfo.getRequestManager().setMessagecontent("接口调用异常"); + return Action.FAILURE_AND_CONTINUE; + } + } + }else{ + requestInfo.getRequestManager().setMessageid("1000"); + requestInfo.getRequestManager().setMessagecontent("client获取值为空"); + return Action.FAILURE_AND_CONTINUE; + } + } catch (Exception e) { + bb.writeLog("数据异常!"); + bb.writeLog(e.getMessage()); + requestInfo.getRequestManager().setMessage("1111"); + requestInfo.getRequestManager().setMessagecontent("数据异常!"); + return Action.FAILURE_AND_CONTINUE; + } + return Action.SUCCESS; + } + + /*** + * + * @param url + * @param soapXml + * @param soapAction + * @param userpass + * @param list + * @return + * @throws Exception + */ + public Map doPostSoap(String url, String soapXml, String soapAction, String userpass,List list,String formtable,String mainid) throws Exception + { + BaseBean log = new BaseBean(); + RecordSet rs = new RecordSet(); + + Map msgMap = new HashMap(); + log.writeLog("url:"+url); + log.writeLog("soapXml:"+soapXml); + log.writeLog("soapAction:"+soapAction); + log.writeLog("userpass:"+userpass); + log.writeLog("list:"+list.size()); + + HttpClientBuilder httpClientBuilder = HttpClientBuilder.create(); + CloseableHttpClient closeableHttpClient = httpClientBuilder.build(); + HttpPost httpPost = new HttpPost(url); + //设置请求和传输超时时间 + String result = ""; + CloseableHttpResponse response = null; + List> logList = new ArrayList>(); + try { + httpPost.setHeader("Content-Type", "text/xml;charset=UTF-8"); + httpPost.setHeader("SOAPAction", soapAction); + //httpPost.addHeader(new BasicHeader("Authorization", "Basic " + new String(Base64.encode(userpass.getBytes())))); + StringEntity data = new StringEntity(soapXml, Charset.forName("UTF-8")); + log.writeLog("data:"+data.toString()); + httpPost.setEntity(data); + response = closeableHttpClient.execute(httpPost); + HttpEntity httpEntity = response.getEntity(); + if (httpEntity != null) + { + result = EntityUtils.toString(httpEntity, "UTF-8"); + log.writeLog("result:"+result); + + if(!"".equals(result)) + { + Document doc = DocumentHelper.parseText(result); + Element topEle = doc.getRootElement(); + Element bodyEle = topEle.element("Body"); + Element rootEle = bodyEle.element("ZSD_SALEPRICECONDITION_IMPResponse"); + Element O_DATA = rootEle.element("O_DATA"); + + //String returnData = new String(O_DATA.getText().getBytes("GBK"),"UTF-8"); + String returnData = O_DATA.getText(); + log.writeLog("returnData:"+returnData); + + if(!"".equals(returnData)) + { + int errcount = 0; + try { + Document dataDoc = DocumentHelper.parseText(returnData); + Element topDataEle = dataDoc.getRootElement(); + log.writeLog("topDataEle:"+topDataEle.asXML()); + Element returnDataEle = topDataEle.element("RETURN"); + + List nodes = returnDataEle.elements("ITEM"); + int itemcount = 0; + String messages = "" ; + for (Iterator it = nodes.iterator(); it.hasNext();) { + Element elm = (Element) it.next(); + String TYPE = elm.elementTextTrim("TYPE"); + String MESSAGE = elm.elementTextTrim("MESSAGE"); + + if (!"S".equalsIgnoreCase(TYPE)) { + itemcount--; + messages = messages +";"+ MESSAGE ; + }else{ + + String XH = elm.elementTextTrim("XH"); + String DYMXB1XH = elm.elementTextTrim("DYMXB1XH"); //对应明细表1序号 + String DYMX2XH = elm.elementTextTrim("DYMX2XH"); //对应明细2序号 + String KNUMH = elm.elementTextTrim("KNUMH"); + String KLFN1 = elm.elementTextTrim("KLFN1"); + String KOPOS = elm.elementTextTrim("KOPOS"); + + log.writeLog("DYMXB1XH:"+DYMXB1XH); + log.writeLog("DYMX2XH:"+DYMX2XH); + log.writeLog("KOPOS:"+KOPOS); + log.writeLog("MESSAGE:"+MESSAGE); + + if(!"".equals(DYMX2XH)) + { + String dt3id = "" ; + String sql =" select id " + + " from "+formtable+"_dt3 " + + " where mainid="+mainid+" " + + " and xh="+DYMX2XH+" " ; + + log.writeLog("sql:"+sql); + rs.execute(sql); + if(rs.next()){ + dt3id = Util.null2String(rs.getString("id")); + } + + if(!"".equals(dt3id)){ + sql = " update "+formtable+"_dt3 " + + " set knumh='"+KNUMH+"',kopos='"+KOPOS+"',klfn1='" + KLFN1+"',bs1=0 "+ + " where id = "+dt3id; + log.writeLog("sql:"+sql); + boolean flag = rs.executeUpdate(sql); + if(!flag){ + errcount++; + } + } + + + String dt2id = "" ; + if(!"".equals(DYMXB1XH)) + { + sql = " select id from "+formtable+"_dt2 " + + " where mainid="+mainid + " and mx2xh='"+DYMXB1XH+"' "; + log.writeLog("sql:"+sql); + rs.execute(sql); + if(rs.next()){ + dt2id = Util.null2String(rs.getString("id")); + } + } + + + if(!"".equals(dt2id)) + { + sql = " update "+formtable+"_dt2 " + + " set knumh='"+KNUMH+"',kopos='"+KOPOS+"',bs1=0 "+ + " where id = "+dt2id; + + log.writeLog("sql:"+sql); + boolean flag = rs.executeUpdate(sql); + if(!flag){ + errcount++; + } + } + + String dt1id = "" ; + if(!"".equals(XH)) + { + sql = " select id from "+formtable+"_dt1 " + + " where xh='"+XH+"' " + + " and mainid="+mainid ; + log.writeLog("sql:"+sql); + rs.execute(sql); + if(rs.next()){ + dt1id = Util.null2String(rs.getString("id")); + } + } + + if(!"".equals(dt1id)){ + sql = " update "+formtable+"_dt1 " + + " set knumh='"+KNUMH+"',bs1=0 "+ + " where id = "+dt1id; + log.writeLog("sql:"+sql); + boolean flag = rs.executeUpdate(sql); + if(!flag){ + errcount++; + } + } + }else { + + String dt2id = "" ; + if(!"".equals(DYMXB1XH)) + { + String sql = " select id from "+formtable+"_dt2 " + + " where mainid="+mainid + " and mx2xh='"+DYMXB1XH+"' "; + log.writeLog("sql:"+sql); + rs.execute(sql); + if(rs.next()){ + dt2id = Util.null2String(rs.getString("id")); + } + } + + if(!"".equals(dt2id)) + { + String sql =" update "+formtable+"_dt2 " + + " set knumh='"+KNUMH+"',kopos='"+KOPOS+"',bs1=0 "+ + " where id = "+dt2id; + + log.writeLog("sql:"+sql); + boolean flag = rs.executeUpdate(sql); + if(!flag){ + errcount++; + } + } + + String dt1id = "" ; + if(!"".equals(XH)) + { + String sql = " select id from "+formtable+"_dt1 " + + " where xh='"+XH+"' " + + " and mainid="+mainid ; + log.writeLog("sql:"+sql); + rs.execute(sql); + if(rs.next()){ + dt1id = Util.null2String(rs.getString("id")); + } + } + + if(!"".equals(dt1id)){ + String sql =" update "+formtable+"_dt1 " + + " set knumh='"+KNUMH+"',bs1=0 "+ + " where id = "+dt1id; + log.writeLog("sql:"+sql); + boolean flag = rs.executeUpdate(sql); + if(!flag){ + errcount++; + } + } + } + } + } + log.writeLog("itemcount:"+itemcount); + if(itemcount < 0) + { + msgMap.put("type","E"); + msgMap.put("message","接口返回数据含有异常数据"+messages); + msgMap.put("num","1"); + msgMap.put("result",result); + }else{ + log.writeLog("errcount:"+errcount); + if(errcount > 0){ + msgMap.put("type","E"); + msgMap.put("message","接口调用失败"); + msgMap.put("num","1"); + msgMap.put("result",result); + }else{ + msgMap.put("type","S"); + msgMap.put("message","接口调用成功"); + msgMap.put("num","1"); + } + } + } catch (DocumentException e) { + e.printStackTrace(); + log.writeLog("DocumentException:"+e); + msgMap.put("type","E"); + msgMap.put("num","1010"); + msgMap.put("result",result); + } + }else{ + msgMap.put("type","E"); + msgMap.put("num","1005"); + msgMap.put("result",result); + } + }else{ + msgMap.put("type","E"); + msgMap.put("num","1006"); + msgMap.put("result",result); + } + }else{ + msgMap.put("type","E"); + msgMap.put("num","1002"); + msgMap.put("result",result); + } + } catch (Exception e) + { + log.writeLog("e:"+e); + msgMap.put("type","E"); + msgMap.put("num","1001"); + msgMap.put("result",result); + + } finally { + if (response != null) { + try { + EntityUtils.consume(response.getEntity()); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + return msgMap; + } + + + /*** + * + * @param formtable + * @param mainid + * @return + */ + public String doGetItemXml(String dt1xh,String formtable, String mainid,String ywbs,String knumh){ + + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + String itemJtxmXml = ""; + String sql = "" ; + if("1".equals(ywbs)){ + sql =" select * from "+formtable+"_dt2 where mainid=" + mainid +" and dymxb1xh='"+ dt1xh +"'"; + bb.writeLog("sql:"+sql); + }else if("2".equals(ywbs)){ + sql =" select * from "+formtable+"_dt2 where mainid=" + mainid +" and KNUMH='"+ knumh+"'"; + bb.writeLog("sql:"+sql); + } + bb.writeLog("sql:"+sql); + rs.execute(sql); + while (rs.next()) { + + itemJtxmXml += "" ; + + String KNUMH = Util.null2String(rs.getString("KNUMH")) ; + itemJtxmXml += ""+KNUMH+"" ; + + String KOPOS = Util.null2String(rs.getString("KOPOS")) ; + itemJtxmXml += ""+KOPOS+"" ; + + String KSCHL = Util.null2String(rs.getString("KSCHL")) ; + itemJtxmXml += ""+KSCHL+"" ; + + String KUNNR = Util.null2String(rs.getString("KUNNR")) ; + itemJtxmXml += ""+KUNNR+"" ; + + String MATNR = Util.null2String(rs.getString("MATNR")) ; + itemJtxmXml += ""+MATNR+"" ; + + String KONDM = Util.null2String(rs.getString("KONDM")) ; + itemJtxmXml += ""+KONDM+"" ; + + String KBETR = Util.null2String(rs.getString("KBETR")) ; + itemJtxmXml += ""+KBETR+"" ; + + String WAERK = Util.null2String(rs.getString("WAERK")) ; + itemJtxmXml += ""+WAERK+"" ; + + String KONWA = Util.null2String(rs.getString("KONWA")); + itemJtxmXml += ""+KONWA+"" ; + + String KPEIN = Util.null2String(rs.getString("KPEIN")); + itemJtxmXml += ""+KPEIN+"" ; + + String KMEIN = Util.null2String(rs.getString("KMEIN")); + itemJtxmXml += ""+KMEIN+"" ; + + String LOEVM_KO = Util.null2String(rs.getString("LOEVM_KO")); + itemJtxmXml += ""+LOEVM_KO+"" ; + + String ZFLAG = Util.null2String(rs.getString("ZFLAG")); + itemJtxmXml += ""+ZFLAG+"" ; + +// String dymxb1xh = Util.null2String(rs.getString("DYMXB1XH")); +// itemJtxmXml += ""+dymxb1xh+"" ; + + String mx2xh = Util.null2String(rs.getString("mx2xh")); + +// itemJtxmXml += ""+mx2xh+"" ; + itemJtxmXml += ""+mx2xh+"" ; + + String MXKBAS = Util.null2String(rs.getString("MXKBAS")) ; + itemJtxmXml += ""+MXKBAS+"" ; + + itemJtxmXml += ""; + + String Item_Jt_Xml = doGetItemJtXml(mx2xh,formtable,mainid,ywbs,KNUMH,KOPOS); + itemJtxmXml += Item_Jt_Xml; + itemJtxmXml += ""; + + itemJtxmXml += "" ; + } + + return itemJtxmXml; + } + + /*** + * + * @param mx2xh + * @return + */ + public String doGetItemJtXml(String mx2xh,String formtable,String mainid,String ywbs,String knumh,String kopos){ + + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + String item_tj_Xml = "" ; + String sql = "" ; + if("1".equals(ywbs)){ + sql =" select * from "+formtable+"_dt3 where mainid=" + mainid +" and dymx2xh='"+mx2xh+"' "; + }else if("2".equals(ywbs)){ + sql =" select * from "+formtable+"_dt3 where mainid=" + mainid +" and knumh='"+knumh+"' and kopos='"+kopos+"' "; + } + bb.writeLog("sql:"+sql); + rs.execute(sql); + while (rs.next()) + { + item_tj_Xml += "" ; + + String KNUMH = Util.null2String(rs.getString("KNUMH")); + item_tj_Xml += ""+KNUMH+"" ; + +// String KLFN1 = Util.null2String(rs.getString("KLFN1")); +// item_tj_Xml += ""+KLFN1+"" ; + + String KOPOS = Util.null2String(rs.getString("KOPOS")); + item_tj_Xml += ""+KOPOS+"" ; + + String KSTBM = Util.null2String(rs.getString("KSTBM")); + item_tj_Xml += ""+KSTBM+"" ; + + String KBETR = Util.null2String(rs.getString("KBETR")); + item_tj_Xml += ""+KBETR+"" ; + + String XH = Util.null2String(rs.getString("XH")); + item_tj_Xml += ""+XH+"" ; + + + item_tj_Xml += "" ; + } + + return item_tj_Xml; + } +} \ No newline at end of file diff --git a/src/weaver/zlldjcws/cgdd/bean/CgddBean.java b/src/weaver/zlldjcws/cgdd/bean/CgddBean.java new file mode 100755 index 0000000..01fb3e6 --- /dev/null +++ b/src/weaver/zlldjcws/cgdd/bean/CgddBean.java @@ -0,0 +1,182 @@ +package weaver.interfaces.zlldjcws.cgdd.bean; + +import java.util.List; + +/** + * @author ZhangLei + * @date 2021/7/29 + */ +public class CgddBean { + private static final long serialVersionUID = 1L; + + private String ebeln; + private String bedat; + private String bsart; + private String lifnr; + private String ekorg; + private String ekgrp; + private String bukrs; + private String frgke; + private String zflag; + private String zspbs; + private String creator; + private String cxcx; + private String headtxt; + + + private List cgddDetail1Beans; + + public CgddBean() { + } + + public CgddBean(String ebeln, String bedat, String bsart, String lifnr, String ekorg, String ekgrp, String bukrs, String frgke, String zflag, String zspbs, String creator, List cgddDetail1Beans) { + this.ebeln = ebeln; + this.bedat = bedat; + this.bsart = bsart; + this.lifnr = lifnr; + this.ekorg = ekorg; + this.ekgrp = ekgrp; + this.bukrs = bukrs; + this.frgke = frgke; + this.zflag = zflag; + this.zspbs = zspbs; + this.creator = creator; + this.cgddDetail1Beans = cgddDetail1Beans; + } + + public String getCreator() { + return creator; + } + + public void setCreator(String creator) { + this.creator = creator; + } + + @Override + public String toString() { + return "CgddBean{" + + "ebeln='" + ebeln + '\'' + + ", bedat='" + bedat + '\'' + + ", bsart='" + bsart + '\'' + + ", lifnr='" + lifnr + '\'' + + ", ekorg='" + ekorg + '\'' + + ", ekgrp='" + ekgrp + '\'' + + ", bukrs='" + bukrs + '\'' + + ", frgke='" + frgke + '\'' + + ", zflag='" + zflag + '\'' + + ", zspbs='" + zspbs + '\'' + + ", creator='" + creator + '\'' + + ", cxcx='" + cxcx + '\'' + + ", headtxt='" + headtxt + '\'' + + ", cgddDetail1Beans=" + cgddDetail1Beans + + '}'; + } + + public List getCgddDetail1Beans() { + return cgddDetail1Beans; + } + + public void setCgddDetail1Beans(List cgddDetail1Beans) { + this.cgddDetail1Beans = cgddDetail1Beans; + } + + public static long getSerialVersionUID() { + return serialVersionUID; + } + + public String getEbeln() { + return ebeln; + } + + public void setEbeln(String ebeln) { + this.ebeln = ebeln; + } + + public String getBedat() { + return bedat; + } + + public void setBedat(String bedat) { + this.bedat = bedat; + } + + public String getBsart() { + return bsart; + } + + public void setBsart(String bsart) { + this.bsart = bsart; + } + + public String getLifnr() { + return lifnr; + } + + public void setLifnr(String lifnr) { + this.lifnr = lifnr; + } + + public String getEkorg() { + return ekorg; + } + + public void setEkorg(String ekorg) { + this.ekorg = ekorg; + } + + public String getEkgrp() { + return ekgrp; + } + + public void setEkgrp(String ekgrp) { + this.ekgrp = ekgrp; + } + + public String getBukrs() { + return bukrs; + } + + public void setBukrs(String bukrs) { + this.bukrs = bukrs; + } + + public String getFrgke() { + return frgke; + } + + public void setFrgke(String frgke) { + this.frgke = frgke; + } + + public String getZflag() { + return zflag; + } + + public void setZflag(String zflag) { + this.zflag = zflag; + } + + public String getZspbs() { + return zspbs; + } + + public void setZspbs(String zspbs) { + this.zspbs = zspbs; + } + + public String getCxcx() { + return cxcx; + } + + public void setCxcx(String cxcx) { + this.cxcx = cxcx; + } + + public String getHeadtxt() { + return headtxt; + } + + public void setHeadtxt(String headtxt) { + this.headtxt = headtxt; + } +} diff --git a/src/weaver/zlldjcws/cgdd/bean/CgddDetail1Bean.java b/src/weaver/zlldjcws/cgdd/bean/CgddDetail1Bean.java new file mode 100755 index 0000000..3f4c895 --- /dev/null +++ b/src/weaver/zlldjcws/cgdd/bean/CgddDetail1Bean.java @@ -0,0 +1,436 @@ +package weaver.interfaces.zlldjcws.cgdd.bean; + +/** + * @author ZhangLei + * @date 2021/7/29 + */ +public class CgddDetail1Bean { + private static final long serialVersionUID = 1L; + private String ebeln; + private String ebelp; + private String knttp; + private String epstp; + private String matnr; + private String txz01; + private String menge; + private String meins; + private String eeind; + private String netpr; + private String netwr; + private String mwskz; + private String waers; + private String peinh; + private String matkl; + private String werks; + private String lgort; + private String infnr; + private String retpo; + private String banfn; + private String bnfpo; + private String repos; + private String webre; + private String loekz; + + private String sakto; //总账科目, + private String kostl; //-成本中心, + private String aufnr; //-订单, + private String anln1; //-主资产号, + private String anln2; //-资产次级编号, + private String zekkn; // -帐户分配的顺序编号, + private String zmenge; // -资产数量 + + private String zflag; //是否ZBTO + private String erekz; //最后发票 + private String wepos; //收货 + private String weunb; // GR非估价的 + private String elikz; //收货已完成 + + private String itemtxt; + + public CgddDetail1Bean() { + } + + public CgddDetail1Bean(String ebeln, String ebelp, String knttp, String epstp, String matnr, String txz01, String menge, String meins, String eeind, String netpr, String netwr, String mwskz, String waers, String peinh, String matkl, String werks, String lgort, String infnr, String retpo, String banfn, String bnfpo, String repos, String webre, String loekz, + String sakt,String kostl,String aufnr,String anln1,String anln2,String zekkn,String zmenge + ) { + this.ebeln = ebeln; + this.ebelp = ebelp; + this.knttp = knttp; + this.epstp = epstp; + this.matnr = matnr; + this.txz01 = txz01; + this.menge = menge; + this.meins = meins; + this.eeind = eeind; + this.netpr = netpr; + this.netwr = netwr; + this.mwskz = mwskz; + this.waers = waers; + this.peinh = peinh; + this.matkl = matkl; + this.werks = werks; + this.lgort = lgort; + this.infnr = infnr; + this.retpo = retpo; + this.banfn = banfn; + this.bnfpo = bnfpo; + this.repos = repos; + this.webre = webre; + this.loekz = loekz; + + this.sakto = sakto; //总账科目, + this.kostl = kostl; //-成本中心, + this.aufnr = aufnr; //-订单, + this.anln1 = anln1; //-主资产号, + this.anln2 = anln2; //-资产次级编号, + this.zekkn = zekkn; // -帐户分配的顺序编号, + this.zmenge = zmenge; //资产数量 + + } + + @Override + public String toString() { + return "CgddDetail1Bean{" + + "ebeln='" + ebeln + '\'' + + ", ebelp='" + ebelp + '\'' + + ", knttp='" + knttp + '\'' + + ", epstp='" + epstp + '\'' + + ", matnr='" + matnr + '\'' + + ", txz01='" + txz01 + '\'' + + ", menge='" + menge + '\'' + + ", meins='" + meins + '\'' + + ", eeind='" + eeind + '\'' + + ", netpr='" + netpr + '\'' + + ", netwr='" + netwr + '\'' + + ", mwskz='" + mwskz + '\'' + + ", waers='" + waers + '\'' + + ", peinh='" + peinh + '\'' + + ", matkl='" + matkl + '\'' + + ", werks='" + werks + '\'' + + ", lgort='" + lgort + '\'' + + ", infnr='" + infnr + '\'' + + ", retpo='" + retpo + '\'' + + ", banfn='" + banfn + '\'' + + ", bnfpo='" + bnfpo + '\'' + + ", repos='" + repos + '\'' + + ", webre='" + webre + '\'' + + ", loekz='" + loekz + '\'' + + ", sakto='" + sakto + '\'' + + ", kostl='" + kostl + '\'' + + ", aufnr='" + aufnr + '\'' + + ", anln1='" + anln1 + '\'' + + ", anln2='" + anln2 + '\'' + + ", zekkn='" + zekkn + '\'' + + ", zmenge='" + zmenge + '\'' + + ", zflag='" + zflag + '\'' + + ", erekz='" + erekz + '\'' + + ", wepos='" + wepos + '\'' + + ", weunb='" + weunb + '\'' + + ", elikz='" + elikz + '\'' + + ", itemtxt='" + itemtxt + '\'' + + '}'; + } + + public static long getSerialVersionUID() { + return serialVersionUID; + } + + public String getEbeln() { + return ebeln; + } + + public void setEbeln(String ebeln) { + this.ebeln = ebeln; + } + + public String getEbelp() { + return ebelp; + } + + public void setEbelp(String ebelp) { + this.ebelp = ebelp; + } + + public String getKnttp() { + return knttp; + } + + public void setKnttp(String knttp) { + this.knttp = knttp; + } + + public String getEpstp() { + return epstp; + } + + public void setEpstp(String epstp) { + this.epstp = epstp; + } + + public String getMatnr() { + return matnr; + } + + public void setMatnr(String matnr) { + this.matnr = matnr; + } + + public String getTxz01() { + return txz01; + } + + public void setTxz01(String txz01) { + this.txz01 = txz01; + } + + public String getMenge() { + return menge; + } + + public void setMenge(String menge) { + this.menge = menge; + } + + public String getMeins() { + return meins; + } + + public void setMeins(String meins) { + this.meins = meins; + } + + public String getEeind() { + return eeind; + } + + public void setEeind(String eeind) { + this.eeind = eeind; + } + + public String getNetpr() { + return netpr; + } + + public void setNetpr(String netpr) { + this.netpr = netpr; + } + + public String getNetwr() { + return netwr; + } + + public void setNetwr(String netwr) { + this.netwr = netwr; + } + + public String getMwskz() { + return mwskz; + } + + public void setMwskz(String mwskz) { + this.mwskz = mwskz; + } + + public String getWaers() { + return waers; + } + + public void setWaers(String waers) { + this.waers = waers; + } + + public String getPeinh() { + return peinh; + } + + public void setPeinh(String peinh) { + this.peinh = peinh; + } + + public String getMatkl() { + return matkl; + } + + public void setMatkl(String matkl) { + this.matkl = matkl; + } + + public String getWerks() { + return werks; + } + + public void setWerks(String werks) { + this.werks = werks; + } + + public String getLgort() { + return lgort; + } + + public void setLgort(String lgort) { + this.lgort = lgort; + } + + public String getInfnr() { + return infnr; + } + + public void setInfnr(String infnr) { + this.infnr = infnr; + } + + public String getRetpo() { + return retpo; + } + + public void setRetpo(String retpo) { + this.retpo = retpo; + } + + public String getBanfn() { + return banfn; + } + + public void setBanfn(String banfn) { + this.banfn = banfn; + } + + public String getBnfpo() { + return bnfpo; + } + + public void setBnfpo(String bnfpo) { + this.bnfpo = bnfpo; + } + + public String getRepos() { + return repos; + } + + public void setRepos(String repos) { + this.repos = repos; + } + + public String getWebre() { + return webre; + } + + public void setWebre(String webre) { + this.webre = webre; + } + + public String getLoekz() { + return loekz; + } + + public void setLoekz(String loekz) { + this.loekz = loekz; + } + + public String getKostl() { + return kostl; + } + + public void setKostl(String kostl) { + this.kostl = kostl; + } + + public String getAufnr() { + return aufnr; + } + + public void setAufnr(String aufnr) { + this.aufnr = aufnr; + } + + public String getAnln1() { + return anln1; + } + + public void setAnln1(String anln1) { + this.anln1 = anln1; + } + + public String getAnln2() { + return anln2; + } + + public void setAnln2(String anln2) { + this.anln2 = anln2; + } + + public String getZekkn() { + return zekkn; + } + + public void setZekkn(String zekkn) { + this.zekkn = zekkn; + } + + public String getZmenge() { + return zmenge; + } + + public void setZmenge(String zmenge) { + this.zmenge = zmenge; + } + + + public String getSakto() { + return sakto; + } + + public void setSakto(String sakto) { + this.sakto = sakto; + } + + + public String getZflag() { + return zflag; + } + + public void setZflag(String zflag) { + this.zflag = zflag; + } + + public String getErekz() { + return erekz; + } + + public void setErekz(String erekz) { + this.erekz = erekz; + } + + public String getWepos() { + return wepos; + } + + public void setWepos(String wepos) { + this.wepos = wepos; + } + + public String getWeunb() { + return weunb; + } + + public void setWeunb(String weunb) { + this.weunb = weunb; + } + + public String getElikz() { + return elikz; + } + + public void setElikz(String elikz) { + this.elikz = elikz; + } + + + public String getItemtxt() { + return itemtxt; + } + + public void setItemtxt(String itemtxt) { + this.itemtxt = itemtxt; + } +} diff --git a/src/weaver/zlldjcws/cgdd/service/LdCgddService.java b/src/weaver/zlldjcws/cgdd/service/LdCgddService.java new file mode 100755 index 0000000..d05d454 --- /dev/null +++ b/src/weaver/zlldjcws/cgdd/service/LdCgddService.java @@ -0,0 +1,19 @@ +package weaver.interfaces.zlldjcws.cgdd.service; + +import weaver.interfaces.zlldjcws.util.Message; +import weaver.interfaces.zlldjcws.cgdd.bean.CgddBean; + +import javax.jws.WebMethod; +import javax.jws.WebParam; +import javax.jws.WebService; + +/** + * @author ZhangLei + * @date 2021/8/2 + */ +@WebService +public interface LdCgddService { + + @WebMethod + Message createModeData(@WebParam(name="client") String client, @WebParam(name="cgddBean") CgddBean cgddBean); +} diff --git a/src/weaver/zlldjcws/cgdd/service/impl/LdCgddServiceImpl.java b/src/weaver/zlldjcws/cgdd/service/impl/LdCgddServiceImpl.java new file mode 100755 index 0000000..e0da72b --- /dev/null +++ b/src/weaver/zlldjcws/cgdd/service/impl/LdCgddServiceImpl.java @@ -0,0 +1,215 @@ +package weaver.interfaces.zlldjcws.cgdd.service.impl; + +import com.weaver.general.BaseBean; +import com.weaver.general.Util; +import org.apache.commons.lang.StringUtils; +import weaver.conn.RecordSet; +import weaver.interfaces.zlldjcws.util.Message; +import weaver.interfaces.zlldjcws.util.WorkflowCreateHandler; +import weaver.interfaces.zlldjcws.cgdd.bean.CgddBean; +import weaver.interfaces.zlldjcws.cgdd.bean.CgddDetail1Bean; +import weaver.interfaces.zlldjcws.cgdd.service.LdCgddService; + +import javax.ejb.Stateless; +import javax.jws.WebMethod; +import javax.jws.WebParam; +import javax.jws.WebService; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author ZhangLei + * @date 2021/8/2 + */ + + +@Stateless(mappedName = "LdCgddServiceImpl") +@WebService(serviceName = "LdCgddServiceImpl") +public class LdCgddServiceImpl extends BaseBean implements LdCgddService { + private static String IsNextFlow = "1"; + private String WorkFlowId = getPropValue("CGDD_WORKFLOW", "WORKFLOWID"); + + @WebMethod + @Override + public Message createModeData(@WebParam(name="client")String client, @WebParam(name="cgddBean") CgddBean cgddBean) { + writeLog("client:" + client); + writeLog("主表信息:"); + writeLog("ebeln:" + cgddBean.getEbeln()); + + writeLog("bedat:" + cgddBean.getBedat()); + writeLog("bsart:" + cgddBean.getBsart()); + writeLog("lifnr:" + cgddBean.getLifnr()); + writeLog("ekorg:" + cgddBean.getEkorg()); + writeLog("ekgekgrp:" + cgddBean.getEkgrp()); + writeLog("bukrs:" + cgddBean.getBukrs()); + writeLog("frgke:" + cgddBean.getFrgke()); + writeLog("zflag:" + cgddBean.getZflag()); + writeLog("zspbs:" + cgddBean.getZspbs()); + writeLog("creator:" + cgddBean.getCreator()); + List cgddDetail1Beans = cgddBean.getCgddDetail1Beans(); + writeLog("明细表信息:(明细表数据共有" + cgddDetail1Beans.size() + "行数据)"); + if (cgddDetail1Beans.size() > 0) { + for (CgddDetail1Bean cgddDetail1Bean : cgddDetail1Beans) { + if (cgddDetail1Bean != null) { + writeLog(cgddDetail1Bean.toString()); + } + } + } + return createWorkFlowBySAP(client,cgddBean, cgddDetail1Beans); + } + + + /*** + * + * @param cgddBean + * @param cgddDetail1Beans + * @return + */ + public Message createWorkFlowBySAP(String client,CgddBean cgddBean, List cgddDetail1Beans) { + writeLog("createWorkFlowBySAP"); + writeLog("client:"+client); + Message message = new Message(); + + RecordSet rs = new RecordSet(); + + WorkflowCreateHandler workflowCreateHandler = new WorkflowCreateHandler(); + Map requestMap = new HashMap(); + + String creatorId = cgddBean.getEkgrp();//创建人id + writeLog("creatorId:"+creatorId); + String EBELN = cgddBean.getEbeln(); + String ZFLAG = cgddBean.getZflag(); + writeLog("ZFLAG:"+ZFLAG); + + if(StringUtils.isEmpty(client)){ + message.setFlag("E"); + message.setMessage("client为空,无法判断接口环境"); + message.setId("-300"); + writeLog("此时的Message信息是:" + message.toString()); + return message; + } + + requestMap.put("client", client); + + if (!"".equals(creatorId)) + { + requestMap.put("EBELN".toLowerCase(), cgddBean.getEbeln()); + if(!"".equals(cgddBean.getBedat()) && cgddBean.getBedat() !=null){ + String bedat = cgddBean.getBedat(); + String bedatnew = bedat.substring(0,4)+"-"+bedat.substring(4,6)+"-"+bedat.substring(6,8); + requestMap.put("BEDAT".toLowerCase(), bedatnew); + } + if(!"".equals(cgddBean.getBsart()) && cgddBean.getBsart() !=null){ + requestMap.put("BSART".toLowerCase(), cgddBean.getBsart()); + } + + if(!"".equals(cgddBean.getLifnr()) && cgddBean.getLifnr() !=null){ + requestMap.put("LIFNR".toLowerCase(), cgddBean.getLifnr()); + } + + if(!"".equals(cgddBean.getEkorg()) && cgddBean.getEkorg() !=null){ + requestMap.put("EKORG".toLowerCase(), cgddBean.getEkorg()); + } + + if(!"".equals(cgddBean.getEkgrp()) && cgddBean.getEkgrp() !=null){ + requestMap.put("EKGRP".toLowerCase(), cgddBean.getEkgrp()); + } + + if(!"".equals(cgddBean.getBukrs()) && cgddBean.getBukrs() !=null){ + requestMap.put("BUKRS".toLowerCase(), cgddBean.getBukrs()); + } + + if(!"".equals(cgddBean.getFrgke()) && cgddBean.getFrgke() !=null){ + requestMap.put("FRGKE".toLowerCase(), cgddBean.getFrgke()); + } + + if(!"".equals(cgddBean.getZflag()) && cgddBean.getZflag() !=null){ + requestMap.put("ZFLAG".toLowerCase(), cgddBean.getZflag()); + } + + if(!"".equals(cgddBean.getZspbs()) && cgddBean.getZspbs() !=null){ + requestMap.put("ZSPBS".toLowerCase(), cgddBean.getZspbs()); + } + + if(!"".equals(cgddBean.getHeadtxt()) && cgddBean.getHeadtxt() !=null){ + requestMap.put("HEADTXT".toLowerCase(), cgddBean.getHeadtxt()); + } + + String sql = " select cgzdyry from uf_ekgrp where cgz='"+creatorId+"' and client='"+client+"' and (scbs is null or scbs<>0) " ; + writeLog("sql:"+sql); + rs.execute(sql); + int bool = 0; + if(rs.next()) { + creatorId = Util.null2String(rs.getString("cgzdyry")); + writeLog("cgzdyry:"+creatorId); + bool++; + } + writeLog("creatorId:"+creatorId); + + if(bool == 0) { + writeLog("code:-300"); + message.setFlag("E"); + message.setId("-300"); + message.setMessage("创建人OA系统不存在!"); + return message; + } + writeLog("creator:" + creatorId); + } else { + writeLog("creator:--300"); + message.setFlag("E"); + message.setMessage("缺少创建人"); + message.setId("-300"); + writeLog("此时的Message信息是:" + message.toString()); + return message; + } + + try { + String formtable = workflowCreateHandler.getFormTableByWorkflowId(WorkFlowId); + if("1".equals(ZFLAG)){ + message = workflowCreateHandler.createNewWorkflow(WorkFlowId,IsNextFlow,creatorId,formtable, requestMap, cgddDetail1Beans); + + }else if("2".equals(ZFLAG)){ + String lcid = "" ; + String sql = " select max(requestid) as requestid from "+formtable+" where EBELN='"+EBELN+"' and client='"+client+"'" ; + rs.execute(sql); + if(rs.next()){ + lcid = Util.null2String(rs.getString("requestid")); + } + if(!"".equals(lcid)) + { + String currentnodetype = "" ; + sql = " select currentnodetype from workflow_requestbase where requestid="+lcid ; + rs.execute(sql); + if(rs.next()){ + currentnodetype = Util.null2String(rs.getString("currentnodetype")); + } + if(!"3".equals(currentnodetype)){ + message = workflowCreateHandler.updateWorkflowBySap(lcid,formtable, requestMap, cgddDetail1Beans); + }else{ + message.setFlag("E"); + message.setId("-500"); + message.setMessage("流程已归档,无法修改"); + } + }else{ + message.setFlag("E"); + message.setId("-500"); + message.setMessage("根据采购凭证编号:"+EBELN+",未找到对应的审批流程"); + } + }else if("4".equals(ZFLAG)){ + requestMap.put("cxcx","4"); + message = workflowCreateHandler.createNewWorkflow(WorkFlowId,IsNextFlow,creatorId,formtable, requestMap, cgddDetail1Beans); + } + }catch (Exception e){ + message.setFlag("E"); + message.setId("-400"); + message.setMessage("创建流程异常"); + } + writeLog("此时的Message信息是:" + message); + return message; + } + + + + +} diff --git a/src/weaver/zlldjcws/cgsh/bean/CgshBean.java b/src/weaver/zlldjcws/cgsh/bean/CgshBean.java new file mode 100755 index 0000000..d73e12d --- /dev/null +++ b/src/weaver/zlldjcws/cgsh/bean/CgshBean.java @@ -0,0 +1,229 @@ +package weaver.interfaces.zlldjcws.cgsh.bean; + +/** + * @author ZhangLei + * @date 2021/8/3 + * @tableName uf_PurchaseReceipt + */ +public class CgshBean { + private String budat; + private String mblnr; + private String mjahr; + private String zeile; + private String matnr; + private String maktx; + private String werks; + private String erfmg; + private String charg; + private String lgort; + private String ebeln; + private String ebelp; + private String lfbnr; + private String lfpos; + private String bwart; + private String smbln; + private String smblp; + private String bktxt; + private String sgtxt; + + public CgshBean() { + } + + @Override + public String toString() { + return "CgshBean{" + + "budat='" + budat + '\'' + + ", mblnr='" + mblnr + '\'' + + ", mjahr='" + mjahr + '\'' + + ", zeile='" + zeile + '\'' + + ", matnr='" + matnr + '\'' + + ", maktx='" + maktx + '\'' + + ", werks='" + werks + '\'' + + ", erfmg='" + erfmg + '\'' + + ", charg='" + charg + '\'' + + ", lgort='" + lgort + '\'' + + ", ebeln='" + ebeln + '\'' + + ", ebelp='" + ebelp + '\'' + + ", lfbnr='" + lfbnr + '\'' + + ", lfpos='" + lfpos + '\'' + + ", bwart='" + bwart + '\'' + + ", smbln='" + smbln + '\'' + + ", smblp='" + smblp + '\'' + + '}'; + } + + public String getBudat() { + return budat; + } + + public void setBudat(String budat) { + this.budat = budat; + } + + public String getMblnr() { + return mblnr; + } + + public void setMblnr(String mblnr) { + this.mblnr = mblnr; + } + + public String getMjahr() { + return mjahr; + } + + public void setMjahr(String mjahr) { + this.mjahr = mjahr; + } + + public String getZeile() { + return zeile; + } + + public void setZeile(String zeile) { + this.zeile = zeile; + } + + public String getMatnr() { + return matnr; + } + + public void setMatnr(String matnr) { + this.matnr = matnr; + } + + public String getMaktx() { + return maktx; + } + + public void setMaktx(String maktx) { + this.maktx = maktx; + } + + public String getWerks() { + return werks; + } + + public void setWerks(String werks) { + this.werks = werks; + } + + public String getErfmg() { + return erfmg; + } + + public void setErfmg(String erfmg) { + this.erfmg = erfmg; + } + + public String getCharg() { + return charg; + } + + public void setCharg(String charg) { + this.charg = charg; + } + + + + public String getLgort() { + return lgort; + } + + public void setLgort(String lgort) { + this.lgort = lgort; + } + + public String getEbeln() { + return ebeln; + } + + public void setEbeln(String ebeln) { + this.ebeln = ebeln; + } + + public String getEbelp() { + return ebelp; + } + + public void setEbelp(String ebelp) { + this.ebelp = ebelp; + } + + public String getLfbnr() { + return lfbnr; + } + + public void setLfbnr(String lfbnr) { + this.lfbnr = lfbnr; + } + + public String getLfpos() { + return lfpos; + } + + public void setLfpos(String lfpos) { + this.lfpos = lfpos; + } + + public String getBwart() { + return bwart; + } + + public void setBwart(String bwart) { + this.bwart = bwart; + } + + public String getSmbln() { + return smbln; + } + + public void setSmbln(String smbln) { + this.smbln = smbln; + } + + public String getSmblp() { + return smblp; + } + + public void setSmblp(String smblp) { + this.smblp = smblp; + } + + + public String getBktxt() { + return bktxt; + } + + public void setBktxt(String bktxt) { + this.bktxt = bktxt; + } + + public String getSgtxt() { + return sgtxt; + } + + public void setSgtxt(String sgtxt) { + this.sgtxt = sgtxt; + } + + public CgshBean(String budat, String mblnr, String mjahr, String zeile, String matnr, String maktx, String werks, String erfmg, String charg, String erfme, String lgort, String ebeln, String ebelp, String lfbnr, String lfpos, String bwart, String smbln, String smblp) { + this.budat = budat; + this.mblnr = mblnr; + this.mjahr = mjahr; + this.zeile = zeile; + this.matnr = matnr; + this.maktx = maktx; + this.werks = werks; + this.erfmg = erfmg; + this.charg = charg; + this.lgort = lgort; + this.ebeln = ebeln; + this.ebelp = ebelp; + this.lfbnr = lfbnr; + this.lfpos = lfpos; + this.bwart = bwart; + this.smbln = smbln; + this.smblp = smblp; + } +} diff --git a/src/weaver/zlldjcws/cgsh/service/LdCgshService.java b/src/weaver/zlldjcws/cgsh/service/LdCgshService.java new file mode 100755 index 0000000..c288584 --- /dev/null +++ b/src/weaver/zlldjcws/cgsh/service/LdCgshService.java @@ -0,0 +1,15 @@ +package weaver.interfaces.zlldjcws.cgsh.service; + +import weaver.interfaces.zlldjcws.util.Message; +import weaver.interfaces.zlldjcws.cgsh.bean.CgshBean; +import javax.jws.WebService; +import java.util.List; + +/** + * @author ZhangLei + * @date 2021/8/3 + */ +@WebService +public interface LdCgshService { + List cgshData(String client,List cgshBean); +} diff --git a/src/weaver/zlldjcws/cgsh/service/impl/LdCgshServiceImpl.java b/src/weaver/zlldjcws/cgsh/service/impl/LdCgshServiceImpl.java new file mode 100755 index 0000000..769b59a --- /dev/null +++ b/src/weaver/zlldjcws/cgsh/service/impl/LdCgshServiceImpl.java @@ -0,0 +1,340 @@ +package weaver.interfaces.zlldjcws.cgsh.service.impl; + +import weaver.formmode.setup.ModeRightInfo; +import weaver.general.Util; +import weaver.interfaces.zlldjcws.util.Message; +import com.weaver.general.BaseBean; +import weaver.conn.RecordSet; +import weaver.interfaces.zlldjcws.cgsh.bean.CgshBean; +import weaver.interfaces.zlldjcws.cgsh.service.LdCgshService; + +import javax.ejb.Stateless; +import javax.jws.WebService; +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * @author ZhangLei + * @date 2021/8/3 + * @tableName uf_PurchaseReceipt + */ + +@Stateless(mappedName = "LdCgshServiceImpl") +@WebService(serviceName = "LdCgshServiceImpl") +public class LdCgshServiceImpl extends BaseBean implements LdCgshService { + @Override + public List cgshData(String client,List cgshBeanList) { + + List messageList = new ArrayList(); + + BaseBean bb = new BaseBean(); + +// WorkflowCreateHandler workflowCreateHandler = new WorkflowCreateHandler(); + RecordSet rs = new RecordSet(); + ModeRightInfo mode = new ModeRightInfo(); + + try{ +// String WorkFlowId = getPropValue("CGDD_WORKFLOW", "WORKFLOWID"); +// String formtable = workflowCreateHandler.getFormTableByWorkflowId(WorkFlowId); + List> datasList = new ArrayList>(); + for(int i=0;i datas = new HashMap(); + String budat = cgshBean.getBudat(); //过账日期 + if(!budat.contains("-")){ + budat = budat.substring(0,4)+"-"+budat.substring(4,6)+"-"+budat.substring(6,8); + } + datas.put("budat",budat); + datas.put("mblnr",cgshBean.getMblnr()); + datas.put("mjahr",cgshBean.getMjahr()); + datas.put("zeile",cgshBean.getZeile()); + datas.put("matnr",cgshBean.getMatnr()); + datas.put("maktx",cgshBean.getMaktx()); + datas.put("werks",cgshBean.getWerks()); + datas.put("erfmg",cgshBean.getErfmg()); + datas.put("charg",cgshBean.getCharg()); + datas.put("lgort",cgshBean.getLgort()); + datas.put("ebeln",cgshBean.getEbeln()); + datas.put("ebelp",cgshBean.getEbelp()); + datas.put("lfbnr",cgshBean.getLfbnr()); + datas.put("lfpos",cgshBean.getLfpos()); + datas.put("bwart",cgshBean.getBwart()); + datas.put("smbln",cgshBean.getSmbln()); + datas.put("smblp",cgshBean.getSmblp()); + datas.put("bktxt",cgshBean.getBktxt()); + datas.put("sgtxt",cgshBean.getSgtxt()); + datas.put("client",client); + datasList.add(datas); + + String sapebeln = Util.null2String(cgshBean.getEbeln()); + bb.writeLog("sapebeln:"+sapebeln); + if ("".equals(sapebeln) || sapebeln == null){ + Message message = new Message(); + message.setId("-200"); + message.setFlag("E"); + message.setMessage("第"+(i+1)+"行的采购订单号为空"); + messageList.add(message); + continue; + } + + String sapebelp = Util.null2String(cgshBean.getEbelp()); + bb.writeLog("sapebelp:"+sapebelp); + if ("".equals(sapebelp) || sapebelp == null){ + Message message = new Message(); + message.setId("-200"); + message.setFlag("E"); + message.setMessage("第"+(i+1)+"行的采购订单的项目编号为空"); + messageList.add(message); + continue; + } + + String dt1id = "" ; + String sql =" select k.id,k.mblnr \n" + + " from uf_PurchaseOrder t\n" + + " inner join uf_PurchaseOrder_dt1 k on k.mainid = t.id\n" + + " where t.ebeln='"+sapebeln+"' and k.ebelp='"+sapebelp+"' " ; + + bb.writeLog("sql:"+sql); + rs.execute(sql); + if (rs.next()){ + dt1id = Util.null2String(rs.getString("id")); + } + bb.writeLog("dt1id:"+dt1id); +// if("".equals(dt1id) || dt1id=="") +// { +// Message message = new Message(); +// message.setId("-200"); +// message.setFlag("E"); +// message.setMessage("第"+(i+1)+"行采购订单的未找到相应的订单申请流程"); +// messageList.add(message); +// continue; +// } + + if(!"".equals(dt1id) && dt1id !=null && dt1id !="" && !"null".equals(dt1id)){ + double sap_erfmg = Util.getDoubleValue(Util.null2String(cgshBean.getErfmg())); + String bwart = cgshBean.getBwart(); + double tz_erfmg = 0; + //sql = " select isnull(sum(erfmg),0) as erfmg from uf_PurchaseReceipt where ebeln='"+sapebeln+"' and ebelp='"+sapebelp+"'" ; + sql = " select isnull(sum(case when bwart='101' then isnull(erfmg,0) when bwart='102' then (0-isnull(erfmg,0)) end),0) as erfmg from uf_PurchaseReceipt where ebeln='"+sapebeln+"' and ebelp='"+sapebelp+"' and client='"+client+"'" ; + bb.writeLog("sql:"+sql); + rs.execute(sql); + if(rs.next()){ + tz_erfmg = Util.getDoubleValue(rs.getString("erfmg")); + } + double dd_menge = 0; + sql = " select isnull(menge,0) as menge from uf_PurchaseOrder_dt1 where id="+dt1id +" and client='"+client+"'" ; + bb.writeLog("sql:"+sql); + rs.execute(sql); + if (rs.next()){ + dd_menge = Util.getDoubleValue(Util.null2String(rs.getString("menge"))); + } + bb.writeLog("sap_erfmg:"+sap_erfmg); + bb.writeLog("tz_erfmg:"+tz_erfmg); + bb.writeLog("dd_menge:"+dd_menge); + + if("101".equals(bwart)){ + if((sap_erfmg+tz_erfmg) > dd_menge){ + Message message = new Message(); + message.setId("-200"); + message.setFlag("E"); + message.setMessage("第"+(i+1)+"行台账收货数量大于采购订单申请的采购订单数量"); + messageList.add(message); + continue; + } + }else if("102".equals(bwart)){ + if((tz_erfmg - sap_erfmg) > dd_menge){ + Message message = new Message(); + message.setId("-200"); + message.setFlag("E"); + message.setMessage("第"+(i+1)+"行台账收货数量大于采购订单申请的采购订单数量"); + messageList.add(message); + continue; + } + } + } + } + + bb.writeLog("messageList:"+messageList.size()); + if(messageList.size()>0){ + return messageList; + } + + String formmodeid = "" ; + String sql =" select k.id from modeinfo k \n" + + " inner join workflow_bill l on formid = l.id\n" + + " where l.tablename = 'uf_PurchaseReceipt' " ; + + rs.execute(sql); + if(rs.next()){ + formmodeid = Util.null2String(rs.getString("id")); + } + + SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat formatter2 = new SimpleDateFormat("HH:mm:ss"); + String currentdate = formatter1.format(new Date()); + String currenttime = formatter2.format(new Date()); + String modedatacreater = "1"; + String modedatacreatertype = "0"; + + for(int i=0;i datas = datasList.get(i); + + String sapebeln = datas.get("ebeln"); + String sapebelp = datas.get("ebelp"); + + String sapmblnr = datas.get("mblnr"); + String sapzeile = datas.get("zeile"); + + bb.writeLog("sapebeln:"+sapebeln); + bb.writeLog("sapebelp:"+sapebelp); + bb.writeLog("sapmblnr:"+sapmblnr); + bb.writeLog("sapzeile:"+sapzeile); + + String mblnr = "" ; + String dt1id = "" ; + sql = " select k.id,k.mblnr \n" + + " from uf_PurchaseOrder t\n" + + " inner join uf_PurchaseOrder_dt1 k on k.mainid = t.id\n" + + " where t.ebeln='"+sapebeln+"' and k.ebelp='"+sapebelp+"' and client='"+client+"'" ; + + bb.writeLog("sql:"+sql); + rs.execute(sql); + if (rs.next()){ + dt1id = Util.null2String(rs.getString("id")); + mblnr = Util.null2String(rs.getString("mblnr")); + } + + datas.put("formmodeid", formmodeid); + datas.put("modedatacreater", modedatacreater); + datas.put("modedatacreatertype", modedatacreatertype); + datas.put("modedatacreatedate", currentdate); + datas.put("modedatacreatetime", currenttime); + + String modeuuid = UUID.randomUUID().toString(); + datas.put("modeuuid", modeuuid); + + String tablename = ""; + String tablenvalue = ""; + for (Map.Entry entry : datas.entrySet()) { + String fieldname = Util.null2String(entry.getKey()).trim(); + String fieldvalue = Util.null2String(entry.getValue()).replace("'", "''").trim(); + tablename += tablename == "" ? fieldname : "," + fieldname; + tablenvalue += tablenvalue == "" ? "'" + fieldvalue + "'" : ",'" + fieldvalue + "'"; + } + + if (tablename != "" && tablenvalue != "") { + int count = 0; + sql = " insert into uf_PurchaseReceipt(" + tablename + ") values (" + tablenvalue + ")"; + writeLog("sql:" + sql); + boolean boo = rs.executeUpdate(sql); + if (boo) { + count++; + } + if (count > 0) { + String dataid = ""; + sql = " select id from uf_PurchaseReceipt where modeuuid='" + modeuuid + "'"; + bb.writeLog("sql:"+sql); + rs.execute(sql); + if (rs.next()) { + dataid = Util.null2String(rs.getString("id")); + } + if (!"".equals(dataid)) { + mode.editModeDataShare(Integer.valueOf(modedatacreater), Util.getIntValue(formmodeid), Integer.parseInt(dataid)); + } + + + + double tz_erfmg_new = 0; + sql = " select isnull(sum(case when bwart='101' then isnull(erfmg,0) when bwart='102' then (0-isnull(erfmg,0)) end),0) as erfmg from uf_PurchaseReceipt where ebeln='" + sapebeln + "' and ebelp='" + sapebelp + "' and client='"+client + "'"; + bb.writeLog("sql:"+sql); + rs.execute(sql); + if (rs.next()) { + tz_erfmg_new = Util.getDoubleValue(rs.getString("erfmg")); + } + bb.writeLog("tz_erfmg_new:" + tz_erfmg_new); + + + if (!"".equals(mblnr)) { + mblnr = mblnr + "," + (sapmblnr + "-" + sapzeile); + } else { + mblnr = sapmblnr + "-" + sapzeile; + } + + sql = " update uf_PurchaseOrder_dt1 set yssl='" + tz_erfmg_new + "',mblnr='" + mblnr + "' where id=" + dt1id; + boolean bool = rs.executeUpdate(sql); + bb.writeLog("sql:" + sql); + if (bool) { + sql = " update uf_PurchaseOrder_dt1 set shzt = (case when isnull(yssl,0) = isnull(MENGE,0) then 1 else 0 end) where id=" + dt1id; + boolean flag = rs.executeUpdate(sql); + bb.writeLog("sql:" + sql); + if (flag) { + Message message = new Message(); + message.setId("100"); + message.setFlag("S"); + message.setMessage("台账新增成功"); + messageList.add(message); + } else { + Message message = new Message(); + message.setId("300"); + message.setFlag("S"); + message.setMessage("更新采购订单申请收货状态量异常,采购订单号:"+dt1id); + messageList.add(message); + } + } else { + Message message = new Message(); + message.setId("300"); + message.setFlag("S"); + message.setMessage("更新采购订单申请已收货数量异常,采购订单号:"+dt1id); + messageList.add(message); + } + + // sql = " update "+formtable+"_dt1 set yssl='"+tz_erfmg_new+"' where id="+dt1id; + // boolean bool = rs.executeUpdate(sql); + // bb.writeLog("sql:"+sql); + // if(bool){ + // sql = " update "+formtable+"_dt1 set shzt = (case when isnull(yssl,0) = isnull(MENGE,0) then 1 else 0 end) where id="+dt1id; + // boolean flag = rs.executeUpdate(sql); + // bb.writeLog("sql:"+sql); + // if(flag){ + // message.setId("100"); + // message.setFlag("S"); + // message.setMessage("台账新增成功"); + // }else{ + // message.setId("-300"); + // message.setFlag("E"); + // message.setMessage("更新采购订单申请已收货数量异常"); + // } + // }else{ + // message.setId("-300"); + // message.setFlag("E"); + // message.setMessage("更新采购订单申请已收货数量异常"); + // } + } else { + Message message = new Message(); + message.setId("-300"); + message.setFlag("E"); + message.setMessage("新增台账数据异常"); + messageList.add(message); + } + } else { + Message message = new Message(); + message.setId("-300"); + message.setFlag("E"); + message.setMessage("获取台账数据为空"); + messageList.add(message); + } + } + }catch (Exception e){ + Message message = new Message(); + message.setId("-300"); + message.setFlag("E"); + message.setMessage("接口异常"); + messageList.add(message); + } + return messageList; + } + +} diff --git a/src/weaver/zlldjcws/cgxxjl/bean/CgxxBean.java b/src/weaver/zlldjcws/cgxxjl/bean/CgxxBean.java new file mode 100755 index 0000000..5a4f155 --- /dev/null +++ b/src/weaver/zlldjcws/cgxxjl/bean/CgxxBean.java @@ -0,0 +1,137 @@ +package weaver.interfaces.zlldjcws.cgxxjl.bean; + +/** + * @author shilei + * @date 2022/04/24 + * + */ +public class CgxxBean { + + private String lifnr; + private String matnr; + private String infnr; // + private String verkf; + private String telf1; + private String meins; + private String umren; + private String umrez; + private String urzla; + private String zflag; + private String loekz; + private String zcztj; + + + public String getLifnr() { + return lifnr; + } + + public void setLifnr(String lifnr) { + this.lifnr = lifnr; + } + + public String getMatnr() { + return matnr; + } + + public void setMatnr(String matnr) { + this.matnr = matnr; + } + + public String getInfnr() { + return infnr; + } + + public void setInfnr(String infnr) { + this.infnr = infnr; + } + + public String getVerkf() { + return verkf; + } + + public void setVerkf(String verkf) { + this.verkf = verkf; + } + + public String getTelf1() { + return telf1; + } + + public void setTelf1(String telf1) { + this.telf1 = telf1; + } + + public String getMeins() { + return meins; + } + + public void setMeins(String meins) { + this.meins = meins; + } + + public String getUmren() { + return umren; + } + + public void setUmren(String umren) { + this.umren = umren; + } + + public String getUmrez() { + return umrez; + } + + public void setUmrez(String umrez) { + this.umrez = umrez; + } + + public String getUrzla() { + return urzla; + } + + public void setUrzla(String urzla) { + this.urzla = urzla; + } + + public String getZflag() { + return zflag; + } + + public void setZflag(String zflag) { + this.zflag = zflag; + } + + public String getLoekz() { + return loekz; + } + + public void setLoekz(String loekz) { + this.loekz = loekz; + } + + public String getZcztj() { + return zcztj; + } + + public void setZcztj(String zcztj) { + this.zcztj = zcztj; + } + + @Override + public String toString() { + return "CgxxBean{" + + "lifnr='" + lifnr + '\'' + + ", matnr='" + matnr + '\'' + + ", infnr='" + infnr + '\'' + + ", verkf='" + verkf + '\'' + + ", telf1='" + telf1 + '\'' + + ", meins='" + meins + '\'' + + ", umren='" + umren + '\'' + + ", umrez='" + umrez + '\'' + + ", urzla='" + urzla + '\'' + + ", zflag='" + zflag + '\'' + + ", loekz='" + loekz + '\'' + + ", zcztj='" + zcztj + '\'' + + '}'; + } +} diff --git a/src/weaver/zlldjcws/cgxxjl/bean/CgxxDetail1Bean.java b/src/weaver/zlldjcws/cgxxjl/bean/CgxxDetail1Bean.java new file mode 100755 index 0000000..86acb44 --- /dev/null +++ b/src/weaver/zlldjcws/cgxxjl/bean/CgxxDetail1Bean.java @@ -0,0 +1,226 @@ +package weaver.interfaces.zlldjcws.cgxxjl.bean; + +/** + * @author ZhangLei + * @date 2021/8/2 + * ZJTBS字段在xml格式中存在,但数据库和excel中没有该字段 + */ +public class CgxxDetail1Bean { + + private String infnr; + private String esokz; + private String ekorg; + private String aplfz; + private String ekgrp; + private String norbm; + private String minbm; + private String uebto; + private String mwskz; + private String webre; + private String netpr; + private String waers; + private String peinh; + private String bprme; + private String prdat; //价格有效至 + private String bpumn; + private String bpumz; + private String loekzcgzzc; //删除标志(采购组织级) + private String lifnr; + private String zflag; + private String bstma; + + public String getEsokz() { + return esokz; + } + + public void setEsokz(String esokz) { + this.esokz = esokz; + } + + public String getEkorg() { + return ekorg; + } + + public void setEkorg(String ekorg) { + this.ekorg = ekorg; + } + + public String getAplfz() { + return aplfz; + } + + public void setAplfz(String aplfz) { + this.aplfz = aplfz; + } + + public String getEkgrp() { + return ekgrp; + } + + public void setEkgrp(String ekgrp) { + this.ekgrp = ekgrp; + } + + public String getNorbm() { + return norbm; + } + + public void setNorbm(String norbm) { + this.norbm = norbm; + } + + public String getMinbm() { + return minbm; + } + + public void setMinbm(String minbm) { + this.minbm = minbm; + } + + public String getUebto() { + return uebto; + } + + public void setUebto(String uebto) { + this.uebto = uebto; + } + + public String getMwskz() { + return mwskz; + } + + public void setMwskz(String mwskz) { + this.mwskz = mwskz; + } + + public String getWebre() { + return webre; + } + + public void setWebre(String webre) { + this.webre = webre; + } + + public String getNetpr() { + return netpr; + } + + public void setNetpr(String netpr) { + this.netpr = netpr; + } + + public String getWaers() { + return waers; + } + + public void setWaers(String waers) { + this.waers = waers; + } + + public String getPeinh() { + return peinh; + } + + public void setPeinh(String peinh) { + this.peinh = peinh; + } + + public String getBprme() { + return bprme; + } + + public void setBprme(String bprme) { + this.bprme = bprme; + } + + public String getPrdat() { + return prdat; + } + + public void setPrdat(String prdat) { + this.prdat = prdat; + } + + public String getBpumn() { + return bpumn; + } + + public void setBpumn(String bpumn) { + this.bpumn = bpumn; + } + + public String getBpumz() { + return bpumz; + } + + public void setBpumz(String bpumz) { + this.bpumz = bpumz; + } + + public String getLifnr() { + return lifnr; + } + + public void setLifnr(String lifnr) { + this.lifnr = lifnr; + } + + public String getZflag() { + return zflag; + } + + public void setZflag(String zflag) { + this.zflag = zflag; + } + + public String getInfnr() { + return infnr; + } + + public void setInfnr(String infnr) { + this.infnr = infnr; + } + + public String getLoekzcgzzc() { + return loekzcgzzc; + } + + public void setLoekzcgzzc(String loekzcgzzc) { + this.loekzcgzzc = loekzcgzzc; + } + + public String getBstma() { + return bstma; + } + + public void setBstma(String bstma) { + this.bstma = bstma; + } + + @Override + public String toString() { + return "CgxxDetail1Bean{" + + "infnr='" + infnr + '\'' + + ", esokz='" + esokz + '\'' + + ", ekorg='" + ekorg + '\'' + + ", aplfz='" + aplfz + '\'' + + ", ekgrp='" + ekgrp + '\'' + + ", norbm='" + norbm + '\'' + + ", minbm='" + minbm + '\'' + + ", uebto='" + uebto + '\'' + + ", mwskz='" + mwskz + '\'' + + ", webre='" + webre + '\'' + + ", netpr='" + netpr + '\'' + + ", waers='" + waers + '\'' + + ", peinh='" + peinh + '\'' + + ", bprme='" + bprme + '\'' + + ", prdat='" + prdat + '\'' + + ", bpumn='" + bpumn + '\'' + + ", bpumz='" + bpumz + '\'' + + ", loekzcgzzc='" + loekzcgzzc + '\'' + + ", lifnr='" + lifnr + '\'' + + ", zflag='" + zflag + '\'' + + ", bstma='" + bstma + '\'' + + '}'; + } +} diff --git a/src/weaver/zlldjcws/cgxxjl/bean/CgxxDetail2Bean.java b/src/weaver/zlldjcws/cgxxjl/bean/CgxxDetail2Bean.java new file mode 100755 index 0000000..d07e73f --- /dev/null +++ b/src/weaver/zlldjcws/cgxxjl/bean/CgxxDetail2Bean.java @@ -0,0 +1,66 @@ +package weaver.interfaces.zlldjcws.cgxxjl.bean; + +/** + * @author ZhangLei + * @date 2021/8/2 + * ZJTBS字段在xml格式中存在,但数据库和excel中没有该字段 + */ +public class CgxxDetail2Bean { + + private String kstbm; + private String konms; + private String kbetr; + private String knumh; + private String klfn1; + + public String getKstbm() { + return kstbm; + } + + public void setKstbm(String kstbm) { + this.kstbm = kstbm; + } + + public String getKonms() { + return konms; + } + + public void setKonms(String konms) { + this.konms = konms; + } + + public String getKbetr() { + return kbetr; + } + + public void setKbetr(String kbetr) { + this.kbetr = kbetr; + } + + public String getKnumh() { + return knumh; + } + + public void setKnumh(String knumh) { + this.knumh = knumh; + } + + public String getKlfn1() { + return klfn1; + } + + public void setKlfn1(String klfn1) { + this.klfn1 = klfn1; + } + + @Override + public String toString() { + return "CgxxDetail2Bean{" + + "kstbm='" + kstbm + '\'' + + ", konms='" + konms + '\'' + + ", kbetr='" + kbetr + '\'' + + ", knumh='" + knumh + '\'' + + ", klfn1='" + klfn1 + '\'' + + '}'; + } +} diff --git a/src/weaver/zlldjcws/cgxxjl/bean/CgxxDetail4Bean.java b/src/weaver/zlldjcws/cgxxjl/bean/CgxxDetail4Bean.java new file mode 100755 index 0000000..fa1f557 --- /dev/null +++ b/src/weaver/zlldjcws/cgxxjl/bean/CgxxDetail4Bean.java @@ -0,0 +1,176 @@ +package weaver.interfaces.zlldjcws.cgxxjl.bean; + +/** + * @author ZhangLei + * @date 2021/8/2 + * ZJTBS字段在xml格式中存在,但数据库和excel中没有该字段 + */ +public class CgxxDetail4Bean { + + private String kschl; + private String datab; + private String datbi; //条件记录有效截止日期 + private String knumh; + private String kbetr; + private String konwa; + private String kpein; + private String kmein; + private String kumne; + private String kumza; + private String loevm_ko; + private String zyxqbs; + private String lifnr; + private String matnr; + private String esokz; + private String ekorg; + + public String getKschl() { + return kschl; + } + + public void setKschl(String kschl) { + this.kschl = kschl; + } + + public String getDatab() { + return datab; + } + + public void setDatab(String datab) { + this.datab = datab; + } + + public String getDatbi() { + return datbi; + } + + public void setDatbi(String datbi) { + this.datbi = datbi; + } + + public String getKnumh() { + return knumh; + } + + public void setKnumh(String knumh) { + this.knumh = knumh; + } + + public String getKbetr() { + return kbetr; + } + + public void setKbetr(String kbetr) { + this.kbetr = kbetr; + } + + public String getKonwa() { + return konwa; + } + + public void setKonwa(String konwa) { + this.konwa = konwa; + } + + public String getKpein() { + return kpein; + } + + public void setKpein(String kpein) { + this.kpein = kpein; + } + + public String getKmein() { + return kmein; + } + + public void setKmein(String kmein) { + this.kmein = kmein; + } + + public String getKumne() { + return kumne; + } + + public void setKumne(String kumne) { + this.kumne = kumne; + } + + public String getKumza() { + return kumza; + } + + public void setKumza(String kumza) { + this.kumza = kumza; + } + + public String getLoevm_ko() { + return loevm_ko; + } + + public void setLoevm_ko(String loevm_ko) { + this.loevm_ko = loevm_ko; + } + + public String getZyxqbs() { + return zyxqbs; + } + + public void setZyxqbs(String zyxqbs) { + this.zyxqbs = zyxqbs; + } + + public String getLifnr() { + return lifnr; + } + + public void setLifnr(String lifnr) { + this.lifnr = lifnr; + } + + public String getMatnr() { + return matnr; + } + + public void setMatnr(String matnr) { + this.matnr = matnr; + } + + public String getEsokz() { + return esokz; + } + + public void setEsokz(String esokz) { + this.esokz = esokz; + } + + public String getEkorg() { + return ekorg; + } + + public void setEkorg(String ekorg) { + this.ekorg = ekorg; + } + + @Override + public String toString() { + return "CgxxDetail4Bean{" + + "kschl='" + kschl + '\'' + + ", datab='" + datab + '\'' + + ", datbi='" + datbi + '\'' + + ", knumh='" + knumh + '\'' + + ", kbetr='" + kbetr + '\'' + + ", konwa='" + konwa + '\'' + + ", kpein='" + kpein + '\'' + + ", kmein='" + kmein + '\'' + + ", kumne='" + kumne + '\'' + + ", kumza='" + kumza + '\'' + + ", loevm_ko='" + loevm_ko + '\'' + + ", zyxqbs='" + zyxqbs + '\'' + + ", lifnr='" + lifnr + '\'' + + ", matnr='" + matnr + '\'' + + ", esokz='" + esokz + '\'' + + ", ekorg='" + ekorg + '\'' + + '}'; + } +} diff --git a/src/weaver/zlldjcws/cgxxjl/service/LdCgxxService.java b/src/weaver/zlldjcws/cgxxjl/service/LdCgxxService.java new file mode 100755 index 0000000..bf50e47 --- /dev/null +++ b/src/weaver/zlldjcws/cgxxjl/service/LdCgxxService.java @@ -0,0 +1,21 @@ +package weaver.interfaces.zlldjcws.cgxxjl.service; + +import weaver.interfaces.zlldjcws.cgxxjl.bean.CgxxDetail1Bean; +import weaver.interfaces.zlldjcws.cgxxjl.bean.CgxxDetail2Bean; +import weaver.interfaces.zlldjcws.cgxxjl.bean.CgxxDetail4Bean; +import weaver.interfaces.zlldjcws.util.Message; +import weaver.interfaces.zlldjcws.cgxxjl.bean.CgxxBean; + +import javax.jws.WebService; +import java.util.List; + +/** + * @author ZhangLei + * @date 2021/8/3 + */ +@WebService +public interface LdCgxxService { + + Message cgxxData(String client,CgxxBean cgxxBean, List cgxxDetail1BeanList, List cgxxDetail2BeanList, List cgxxDetail4BeanList); + +} diff --git a/src/weaver/zlldjcws/cgxxjl/service/impl/LdCgxxServiceImpl.java b/src/weaver/zlldjcws/cgxxjl/service/impl/LdCgxxServiceImpl.java new file mode 100755 index 0000000..8fad2b3 --- /dev/null +++ b/src/weaver/zlldjcws/cgxxjl/service/impl/LdCgxxServiceImpl.java @@ -0,0 +1,824 @@ +package weaver.interfaces.zlldjcws.cgxxjl.service.impl; + +import org.apache.dubbo.common.utils.StringUtils; +import weaver.formmode.setup.ModeRightInfo; +import weaver.general.Util; +import weaver.interfaces.zlldjcws.cgxxjl.bean.CgxxDetail1Bean; +import weaver.interfaces.zlldjcws.cgxxjl.bean.CgxxDetail2Bean; +import weaver.interfaces.zlldjcws.cgxxjl.bean.CgxxDetail4Bean; +import weaver.interfaces.zlldjcws.cgxxjl.util.CgxxUtil; +import weaver.interfaces.zlldjcws.util.Message; +import weaver.general.BaseBean; +import weaver.conn.RecordSet; +import weaver.interfaces.zlldjcws.cgxxjl.bean.CgxxBean; +import weaver.interfaces.zlldjcws.cgxxjl.service.LdCgxxService; + +import javax.ejb.Stateless; +import javax.jws.WebService; +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * @author ZhangLei + * @date 2021/8/3 + * @tableName formtable_main_155 + * @note ZJTBS字段在xml格式中存在,但数据库和excel中没有该字段 + */ + +@Stateless(mappedName = "LdCgxxServiceImpl") +@WebService(serviceName = "LdCgxxServiceImpl") +public class LdCgxxServiceImpl extends BaseBean implements LdCgxxService { + + @Override + public Message cgxxData(String client,CgxxBean cgxxBean, List cgxxDetail1BeanList, List cgxxDetail2BeanList, List cgxxDetail4BeanList) { + Message message = new Message(); + RecordSet rs = new RecordSet(); + writeLog("CgxxBean:"+cgxxBean.toString()); + for(int i=0;i 0){ + int count1 = insertDetail1List(client,mainid,cgxxDetail1BeanList,formtable+"_dt1"); + writeLog("采购组织层--mainid:"+count1); + if(count1 > 0){ + message.setFlag("E"); + message.setMessage("新增采购组织层数据失败!"); + message.setId("-200"); + }else{ + int count4 = insertDetail4List(client,mainid,cgxxDetail4BeanList,formtable+"_dt4"); + writeLog("条件项目层--mainid:"+count4); + if(count4 > 0){ + message.setFlag("E"); + message.setMessage("新增条件项目数据失败!"); + message.setId("-200"); + }else{ + int count2 = insertDetail2Data(client,mainid,cgxxDetail2BeanList,formtable+"_dt2"); + writeLog("阶梯价层--mainid:"+count2); + if(count2 >0){ + message.setFlag("E"); + message.setMessage("新增阶梯价层数据失败!"); + message.setId("-200"); + } + } + } + }else{ + message.setFlag("E"); + message.setMessage("新增集团层数据失败"); + message.setId("-200"); + } + }else{ + message.setFlag("E"); + message.setMessage("采购信息记录号为空"); + message.setId("-200"); + } + }else if("2".equals(zflag) || "3".equals(zflag)){ + writeLog("集团层--业务标识修改"); + if(!"".equals(infnr)){ + int mainid = 0 ; + String sql = " select id from "+formtable+" where infnr='"+infnr+"' and client='"+client ; + writeLog("集团层--sql:"+sql); + rs.execute(sql); + if(rs.next()){ + mainid = Util.getIntValue(Util.null2String(rs.getString("id"))); + } + writeLog("集团层--mainid:"+mainid); + if(mainid >0 ) + { + int maincount = updateMainData(client,cgxxBean,formtable,mainid); + writeLog("集团层--count:"+maincount); + if(maincount == 0) + { + int dt1count = 0; + String cg_ekorg = ""; + String cg_infnr = "" ; + for(int i=0;i0){ + message.setFlag("E"); + message.setMessage("根据采购记录号:"+cg_infnr+",获取集团层数据为空"); + message.setId("-200"); + }else{ + int dt1upcount = updateDetail1List(client,cgxxDetail1BeanList,formtable+"_dt1"); + writeLog("采购组织层--dt1upcount:"+dt1upcount); + if(dt1upcount >0){ + message.setFlag("E"); + message.setMessage("更新采购组织层失败"); + message.setId("-200"); + dt1count++; + } + } + + int dt4count = 0; + List dt4InsList = new ArrayList<>(); + List dt4UpdList = new ArrayList<>(); + if(dt1count == 0){ + for(int i=0;i 0){ + message.setFlag("E"); + message.setMessage("更新条件项目层数据失败"); + message.setId("-200"); + dt4count++; + break; + } + }else{ + message.setFlag("E"); + message.setMessage("获取条件项目层数据失败"); + message.setId("-200"); + dt4count++; + break; + } + dt4UpdList.add(tj_knumh); + } + } + + writeLog("条件项目层--dt4count:"+dt4count); + if(dt4count == 0){ + for(int i=0;i0){ + message.setFlag("E"); + message.setMessage("新增数据失败!"); + message.setId("-200"); + } + } + + for(int i=0;i0){ + message.setFlag("E"); + message.setMessage("新增数据失败!"); + message.setId("-200"); + } + } + } + } + }else{ + writeLog("更新集团层失败"); + message.setFlag("E"); + message.setMessage("更新集团层失败"); + message.setId("-200"); + } + }else{ + writeLog("根据采购记录号:"+infnr+",获取集团层数据为空"); + message.setFlag("E"); + message.setMessage("根据采购记录号:"+infnr+",获取集团层数据为空"); + message.setId("-200"); + } + }else{ + writeLog("采购信息记录号为空"); + message.setFlag("E"); + message.setMessage("采购信息记录号为空"); + message.setId("-200"); + } + }else{ + + writeLog("集团层--业务标识其他"); + message.setFlag("E"); + message.setMessage("zflag标识无效"); + message.setId("-200"); + } + }catch (Exception e){ + message.setFlag("E"); + message.setMessage("接口异常"); + message.setId("-200"); + } + return message; + } + + /*** + * + * @param mainid + * @param datasList + * @param formtable + * @return + */ + private int insertDetail1List(String client,int mainid,List datasList,String formtable) { + CgxxUtil cgxxUtil = new CgxxUtil(); + int msg = 0; + for(int i=0;i datas = cgxxUtil.beanToMapNotNull(cgxxDetail1Bean); + + if(datas !=null && datas.size() >0){ + String prdat = Util.null2String(datas.get("prdat")); + if(StringUtils.isNotEmpty(prdat)){ + if(!prdat.contains("-")){ + prdat = prdat.substring(0,4)+"-"+prdat.substring(4,6)+"-"+prdat.substring(6,8); + } + } + datas.put("prdat",prdat); + datas.put("mainid",mainid); + datas.put("client",client); + int count = insertDetailData(datas,formtable); + if(count >0) + { + msg++; + } + } + } + return msg; + } + + /*** + * + * @param cgxxDetail1BeanList + * @param formtable + * @return + */ + private int updateDetail1List(String client,List cgxxDetail1BeanList,String formtable) { + int count = 0; + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + CgxxUtil cgxxUtil = new CgxxUtil(); + try{ + for(int i=0;i dt1Map = cgxxUtil.beanToMap(cgxxDetail1Bean); + if(dt1Map !=null && dt1Map.size() > 0){ + + String prdat = Util.null2String(dt1Map.get("prdat")); + if(StringUtils.isNotEmpty(prdat)){ + if(!prdat.contains("-")){ + prdat = prdat.substring(0,4)+"-"+prdat.substring(4,6)+"-"+prdat.substring(6,8); + } + } + dt1Map.put("prdat",prdat); + + String tableset = "" ; + for (Map.Entry entry : dt1Map.entrySet()) + { + String fieldname = Util.null2String(entry.getKey()).trim(); + String fieldvalue = Util.null2String(entry.getValue()).replace("'", "''").trim(); + tableset += tableset =="" ? fieldname+"='"+fieldvalue+"'" :","+fieldname+"='"+fieldvalue+"'" ; + } + if(tableset !="") + { + sql = " update "+formtable+" set "+tableset+" where id="+dt1id; + bb.writeLog("sql:"+sql); + boolean boo = rs.executeUpdate(sql); + if(!boo){ + count++; + } + } + } + }else{ + count++; + } + } + }catch (Exception e){ + count++; + } + return count; + } + + /*** + * + * @param mainid + * @param cgxxDetail4Bean + * @param formtable + * @return + */ + private int insertDetail4Data(String client,int mainid,CgxxDetail4Bean cgxxDetail4Bean,String formtable,String dt4id) { + CgxxUtil cgxxUtil = new CgxxUtil(); + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + int msg = 0; + try{ + String tj_datbi = cgxxDetail4Bean.getDatbi(); + if(StringUtils.isNotEmpty(tj_datbi)){ + if(!tj_datbi.contains("-")){ + tj_datbi = tj_datbi.substring(0,4)+"-"+tj_datbi.substring(4,6)+"-"+tj_datbi.substring(6,8); + } + } + writeLog("insertDetail4List--条件项目层--tj_datbi:"+tj_datbi); + + + String tj_datab = cgxxDetail4Bean.getDatab(); + if(!"".equals(tj_datab)){ + if(!tj_datab.contains("-")){ + tj_datab = tj_datab.substring(0,4)+"-"+tj_datab.substring(4,6)+"-"+tj_datab.substring(6,8); + } + } + writeLog("insertDetail4List--条件项目层--tj_datab:"+tj_datab); + + if(StringUtils.isNotEmpty(dt4id)) + { + String sql = " update "+formtable+" set DATBI = CONVERT(varchar(100),dateadd(day,-1,'"+tj_datab+"'), 23) where id="+dt4id; + bb.writeLog("sql:"+sql); + boolean flag= rs.execute(sql); + if(flag) { + Map datas = cgxxUtil.beanToMapNotNull(cgxxDetail4Bean); + + if(datas !=null && datas.size() >0){ + datas.put("mainid",mainid); + datas.put("datab",tj_datab); + datas.put("datbi",tj_datbi); + datas.put("client",client); + int count = insertDetailData(datas,formtable); + if(count >0) + { + msg = 1; + } + } + } + }else{ + Map datas = cgxxUtil.beanToMapNotNull(cgxxDetail4Bean); + if(datas !=null && datas.size()>0){ + datas.put("mainid",mainid); + datas.put("datab",tj_datab); + datas.put("datbi",tj_datbi); + datas.put("client",client); + int count = insertDetailData(datas,formtable); + if(count >0) + { + msg = 1; + } + } + } + }catch (Exception e){ + msg = 4; + } + + return msg; + } + + /*** + * + * @param dt4id + * @param cgxxDetail4Bean + * @param formtable + * @return + */ + private int updateDetail4Data(String dt4id,CgxxDetail4Bean cgxxDetail4Bean,String formtable) { + CgxxUtil cgxxUtil = new CgxxUtil(); + int msg = 0; + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + + String tj_datbi = cgxxDetail4Bean.getDatbi(); + if(StringUtils.isNotEmpty(tj_datbi)){ + if(!tj_datbi.contains("-")){ + tj_datbi = tj_datbi.substring(0,4)+"-"+tj_datbi.substring(4,6)+"-"+tj_datbi.substring(6,8); + } + } + writeLog("insertDetail4List--条件项目层--tj_datbi:"+tj_datbi); + + String tj_datab = cgxxDetail4Bean.getDatab(); + if(!"".equals(tj_datab)){ + if(!tj_datab.contains("-")){ + tj_datab = tj_datab.substring(0,4)+"-"+tj_datab.substring(4,6)+"-"+tj_datab.substring(6,8); + } + } + writeLog("insertDetail4List--条件项目层--tj_datab:"+tj_datab); + + Map dt4Map = cgxxUtil.beanToMap(cgxxDetail4Bean); + + if(dt4Map !=null && dt4Map.size()>0){ + dt4Map.put("datab",tj_datab); + dt4Map.put("datbi",tj_datbi); + + String tableset = "" ; + for (Map.Entry entry : dt4Map.entrySet()) + { + String fieldname = Util.null2String(entry.getKey()).trim(); + String fieldvalue = Util.null2String(entry.getValue()).replace("'", "''").trim(); + tableset += tableset =="" ? fieldname+"='"+fieldvalue+"'" :","+fieldname+"='"+fieldvalue+"'" ; + } + if(tableset !="") + { + String sql = " update "+formtable+" set "+tableset+" where id="+dt4id; + bb.writeLog("sql:"+sql); + boolean boo = rs.executeUpdate(sql); + if(!boo){ + msg++; + } + } + } + + return msg; + } + + private int insertDetail4List(String client ,int mainid,List datasList,String formtable) { + CgxxUtil cgxxUtil = new CgxxUtil(); + int msg = 0; + for(int i=0;i datas = cgxxUtil.beanToMapNotNull(cgxxDetail4Bean); + + if(datas !=null && datas.size()>0){ + datas.put("mainid",mainid); + datas.put("datab",tj_datab); + datas.put("datbi",tj_datbi); + datas.put("client",client); + + int count = insertDetailData(datas,formtable); + if(count >0) + { + msg++; + } + } + } + return msg; + } + + /*** + * + * @param mainid + * @param datasList + * @param formTable + * @param tj_knumh + * @return + */ + private int insertDetail2List(String client,int mainid,List datasList ,String formTable,String tj_knumh) { + CgxxUtil cgxxUtil = new CgxxUtil(); + int msg = 0; + for(int i=0;i datas = cgxxUtil.beanToMapNotNull(cgxxDetail2Bean); + if(datas !=null && datas.size()>0){ + datas.put("mainid",mainid); + datas.put("client",client); + int count = insertDetailData(datas,formTable); + if(count >0) + { + msg++; + } + } + } + } + return msg; + } + + /*** + * + * @param mainid + * @param datasList + * @param formTable + * @param tj_knumh + * @return + */ + private int updateDetail2List(String client,int mainid,List datasList ,String formTable,String tj_knumh) { + BaseBean bb = new BaseBean(); + CgxxUtil cgxxUtil = new CgxxUtil(); + RecordSet rs = new RecordSet(); + int msg = 0; + + if(StringUtils.isNotEmpty(tj_knumh)) + { + String sql = " delete from "+formTable+" where knumh='"+tj_knumh+"' and client='"+client+"'" ; + bb.writeLog("sql:"+sql); + boolean flag = rs.executeUpdate(sql); + if(flag) + { + for(int i=0;i datas = cgxxUtil.beanToMapNotNull(cgxxDetail2Bean); + if(datas !=null && datas.size()>0){ + datas.put("mainid",mainid); + datas.put("client",client); + int count = insertDetailData(datas,formTable); + if(count >0) + { + msg++; + break; + } + } + } + } + } + } + + return msg; + } + + + private int insertDetail2Data(String client,int mainid,List datasList,String formtable) { + CgxxUtil cgxxUtil = new CgxxUtil(); + int msg = 0; + for(int i=0;i datas = cgxxUtil.beanToMapNotNull(cgxxDetail2Bean); + if(datas !=null && datas.size() > 0){ + datas.put("mainid",mainid); + datas.put("client",client); + int count = insertDetailData(datas,formtable); + if(count >0) + { + msg++; + } + } + } + return msg; + } + + /*** + * + * @param formtable + * @return + */ + private int insertDetailData(Map datas,String formtable) { + RecordSet rs = new RecordSet(); + int msg = 0; + String tablename = "" ; + String tablenvalue = "" ; + for (Map.Entry entry : datas.entrySet()) + { + String fieldname = Util.null2String(entry.getKey()).trim(); + String fieldvalue = Util.null2String(entry.getValue()).replace("'", "''").trim(); + tablename += tablename==""? fieldname :","+fieldname ; + tablenvalue += tablenvalue=="" ? "'"+fieldvalue+"'" :",'"+fieldvalue+"'" ; + } + if(tablename !="" && tablenvalue !="") + { + String sql = " insert into "+formtable+"("+tablename+") values ("+ tablenvalue +")"; + writeLog("sql:"+sql); + boolean boo = rs.executeUpdate(sql); + if(!boo) + { + msg++; + } + } + return msg; + } + + /*** + * + * @param cgxxBean + * @param formtable + * @return + */ + private int insertMainData(String client,CgxxBean cgxxBean,String formtable) { + + int dataid = 0 ; + RecordSet rs = new RecordSet(); + ModeRightInfo mode = new ModeRightInfo(); + CgxxUtil cgxxUtil = new CgxxUtil(); + Map dataMap = new HashMap(); + dataMap.put("client",client); + String uuid = UUID.randomUUID().toString(); + Map mainMap = cgxxUtil.beanToMapNotNull(cgxxBean); + + if(mainMap !=null && mainMap.size() >0) + { + dataMap.putAll(mainMap); + dataMap.put("uuid",uuid); + String formmodeid = ""; + String sql =" select k.id from modeinfo k \n" + + " inner join workflow_bill l on formid = l.id\n" + + " where l.tablename = '"+formtable+"' "; + + rs.execute(sql); + if (rs.next()) { + formmodeid = Util.null2String(rs.getString("id")); + } + SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat formatter2 = new SimpleDateFormat("HH:mm:ss"); + String currentdate = formatter1.format(new Date()); + String currenttime = formatter2.format(new Date()); + String modedatacreater = "1"; + String modedatacreatertype = "0"; + dataMap.put("formmodeid", formmodeid); + dataMap.put("modedatacreater", modedatacreater); + dataMap.put("modedatacreatertype", modedatacreatertype); + dataMap.put("modedatacreatedate", currentdate); + dataMap.put("modedatacreatetime", currenttime); + String tablename = "" ; + String tablenvalue = "" ; + for (Map.Entry entry : dataMap.entrySet()) + { + String fieldname = Util.null2String(entry.getKey()).trim(); + String fieldvalue = Util.null2String(entry.getValue()).replace("'", "''").trim(); + tablename += tablename==""? fieldname :","+fieldname ; + tablenvalue += tablenvalue=="" ? "'"+fieldvalue+"'" :",'"+fieldvalue+"'" ; + } + if(tablename !="" && tablenvalue !="") + { + int count = 0; + sql = " insert into "+formtable+"("+tablename+") values ("+ tablenvalue +")"; + writeLog("sql:"+sql); + boolean boo = rs.executeUpdate(sql); + if(boo){ + count++; + } + if(count >0) + { + + sql = " select id from "+formtable+" where uuid='"+uuid+"' " ; + rs.execute(sql); + if(rs.next()){ + dataid = Util.getIntValue(Util.null2String(rs.getString("id"))); + } + if(dataid > 0){ + mode.editModeDataShare(Integer.valueOf(modedatacreater), Integer.parseInt(formmodeid), dataid); + } + }else{ + dataid = -1; + } + } + } + return dataid; + } + + + /*** + * + * @param cgxxBean + * @param formtable + * @return + */ + private int updateMainData(String client,CgxxBean cgxxBean,String formtable,int mainid) { + + int count = 0; + BaseBean bb = new BaseBean(); + RecordSet rs = new RecordSet(); + CgxxUtil cgxxUtil = new CgxxUtil(); + Map mainMap = cgxxUtil.beanToMap(cgxxBean); + if(mainMap !=null && mainMap.size() >0) + { + String tableset = "" ; + for (Map.Entry entry : mainMap.entrySet()) + { + String fieldname = Util.null2String(entry.getKey()).trim(); + String fieldvalue = Util.null2String(entry.getValue()).replace("'", "''").trim(); + tableset += tableset =="" ? fieldname+"='"+fieldvalue+"'" :","+fieldname+"='"+fieldvalue+"'" ; + } + if(tableset !="") + { + String sql = " update "+formtable+" set "+tableset+" where id="+mainid+" and client='"+client+"'"; + bb.writeLog("sql:"+sql); + boolean boo = rs.executeUpdate(sql); + if(!boo){ + count++; + } + } + } + + return count; + } +} diff --git a/src/weaver/zlldjcws/cgxxjl/util/CgxxUtil.java b/src/weaver/zlldjcws/cgxxjl/util/CgxxUtil.java new file mode 100644 index 0000000..9ab61b6 --- /dev/null +++ b/src/weaver/zlldjcws/cgxxjl/util/CgxxUtil.java @@ -0,0 +1,187 @@ +package weaver.interfaces.zlldjcws.cgxxjl.util; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import net.sf.cglib.beans.BeanMap; +import org.apache.commons.beanutils.BeanUtils; + +import java.beans.BeanInfo; +import java.beans.Introspector; +import java.beans.PropertyDescriptor; +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.HashMap; +import java.util.Map; +import java.util.stream.Stream; + +public class CgxxUtil { + + /** + * 将对象装换为map + * + * @param bean + * @return + */ + public Map beanToMapNotNull(T bean) { + Map map = new HashMap(); + if (bean != null) { + BeanMap beanMap = BeanMap.create(bean); + for (Object key : beanMap.keySet()) { + String value = String.valueOf(beanMap.get(key)); + if(!"".equals(value) && !"null".equalsIgnoreCase(value) && value !=null && value !=""){ + map.put(String.valueOf(key).toLowerCase(), value); + } + } + } + return map; + } + + + public Map beanToMap(T bean) { + Map map = new HashMap(); + if (bean != null) { + BeanMap beanMap = BeanMap.create(bean); + for (Object key : beanMap.keySet()) { + String value = String.valueOf(beanMap.get(key)); + if(!"".equals(value) && !"null".equalsIgnoreCase(value) && value !=null && value !=""){ + map.put(String.valueOf(key).toLowerCase(), value); + } + } + } + return map; + } + + /*** + * + * @param bean + * @return + * @throws Exception + */ + public Map bean2Map(Object bean) throws Exception { + + Map map = new HashMap(); + BeanInfo beanInfo = Introspector.getBeanInfo(bean.getClass(), + Object.class); + + PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors(); + for (PropertyDescriptor pd : pds) { + String name = pd.getName(); + Method md = pd.getReadMethod(); + map.put(name, md.invoke(bean)); + } + + return map; + } + + + // 把map转换为bean 并且为属性赋值 + public T map2Ban(Map beanMap, Class beanType) throws Exception { + T obj = beanType.newInstance(); + + BeanInfo beanInfo = Introspector.getBeanInfo(beanType, + Object.class); + PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors(); + + for (PropertyDescriptor pd : pds) { + String name = pd.getName(); + Object value = beanMap.get(name); + Method md = pd.getWriteMethod(); + md.invoke(obj, value); + } + return obj; + } + + /*** + * + * @param object + * @return + */ + public Map beanToMap4Object(Object object) { + Map map = new HashMap<>(); + Field[] fields = object.getClass().getDeclaredFields(); + Stream.of(fields).forEach(field -> { + try { + if (!"serialVersionUID".equals(field.getName())) { + field.setAccessible(true); + map.put(field.getName(), field.get(object)); + } + } catch (Exception e) { + e.printStackTrace(); + } + }); + return map; + } + + /*** + * + * @param object + * @return + */ + public Map beanToMap4Object2(Object object) { + Map map = new HashMap<>(); + try { + BeanInfo beanInfo = Introspector.getBeanInfo(object.getClass()); + PropertyDescriptor[] descriptors = beanInfo.getPropertyDescriptors(); + Stream.of(descriptors).forEach(descriptor -> { + try { + if (!"class".equals(descriptor.getName())) { + Method getter = descriptor.getReadMethod(); + map.put(descriptor.getName(), getter.invoke(object)); + } + } catch (Exception e) { + e.printStackTrace(); + } + }); + } catch (Exception e) { + e.printStackTrace(); + } + return map; + } + + + /*** + * + * @param bean + * @param + * @return + */ + public Map beanToMap2(T bean) { + Map map = new HashMap<>(); + Map beanMap = null; + try { + beanMap = BeanUtils.describe(bean); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } catch (InvocationTargetException e) { + e.printStackTrace(); + } catch (NoSuchMethodException e) { + e.printStackTrace(); + } + return beanMap; + } + + + /** + * 对象转Map + * @param object + * @return + */ + public Map beanToMap3(Object object){ + return JSONObject.parseObject(JSON.toJSONString(object),Map.class); + } + + /** + * map转对象 + * @param map + * @param beanClass + * @param + * @return + */ + public T mapToBean3(Map map, Class beanClass) { + return JSONObject.parseObject(JSON.toJSONString(map), beanClass); + + } + + +} diff --git a/src/weaver/zlldjcws/kjkm/bean/KjkmBean.java b/src/weaver/zlldjcws/kjkm/bean/KjkmBean.java new file mode 100755 index 0000000..8f45404 --- /dev/null +++ b/src/weaver/zlldjcws/kjkm/bean/KjkmBean.java @@ -0,0 +1,273 @@ +package weaver.interfaces.zlldjcws.kjkm.bean; + +/** + * @author ZhangLei + * @date 2021/8/3 + */ +public class KjkmBean { + private String saknr; + private String glaccount_type; + private String ktoks; + private String txt30; + private String spras; + private String txt20; + private String txt50; + private String sprasen; + private String txt20en; + private String txt50en; + private String zflag; + private String xloev; + private String bukrs; + private String waers; + private String xmwno; + private String mitkz; + private String altkt; + private String xintb; + private String erdat; + private String xloeb; + private String ktopl; + private String land1; + private String kokrs; + + public KjkmBean() { + } + + public KjkmBean(String saknr, String glaccount_type, String ktoks, String txt30, String spras, String txt20, String txt50, String sprasen, String txt20en, String txt50en, String zflag, String xloev, String bukrs, String waers, String xmwno, String mitkz, String altkt, String xintb, String erdat, String xloeb, String ktopl, String land1, String kokrs) { + this.saknr = saknr; + this.glaccount_type = glaccount_type; + this.ktoks = ktoks; + this.txt30 = txt30; + this.spras = spras; + this.txt20 = txt20; + this.txt50 = txt50; + this.sprasen = sprasen; + this.txt20en = txt20en; + this.txt50en = txt50en; + this.zflag = zflag; + this.xloev = xloev; + this.bukrs = bukrs; + this.waers = waers; + this.xmwno = xmwno; + this.mitkz = mitkz; + this.altkt = altkt; + this.xintb = xintb; + this.erdat = erdat; + this.xloeb = xloeb; + this.ktopl = ktopl; + this.land1 = land1; + this.kokrs = kokrs; + } + + @Override + public String toString() { + return "KjkmBean{" + + "saknr='" + saknr + '\'' + + ", glaccount_type='" + glaccount_type + '\'' + + ", ktoks='" + ktoks + '\'' + + ", txt30='" + txt30 + '\'' + + ", spras='" + spras + '\'' + + ", txt20='" + txt20 + '\'' + + ", txt50='" + txt50 + '\'' + + ", sprasen='" + sprasen + '\'' + + ", txt20en='" + txt20en + '\'' + + ", txt50en='" + txt50en + '\'' + + ", zflag='" + zflag + '\'' + + ", xloev='" + xloev + '\'' + + ", bukrs='" + bukrs + '\'' + + ", waers='" + waers + '\'' + + ", xmwno='" + xmwno + '\'' + + ", mitkz='" + mitkz + '\'' + + ", altkt='" + altkt + '\'' + + ", xintb='" + xintb + '\'' + + ", erdat='" + erdat + '\'' + + ", xloeb='" + xloeb + '\'' + + ", ktopl='" + ktopl + '\'' + + ", land1='" + land1 + '\'' + + ", kokrs='" + kokrs + '\'' + + '}'; + } + + public String getSaknr() { + return saknr; + } + + public void setSaknr(String saknr) { + this.saknr = saknr; + } + + public String getGlaccount_type() { + return glaccount_type; + } + + public void setGlaccount_type(String glaccount_type) { + this.glaccount_type = glaccount_type; + } + + public String getKtoks() { + return ktoks; + } + + public void setKtoks(String ktoks) { + this.ktoks = ktoks; + } + + public String getTxt30() { + return txt30; + } + + public void setTxt30(String txt30) { + this.txt30 = txt30; + } + + public String getSpras() { + return spras; + } + + public void setSpras(String spras) { + this.spras = spras; + } + + public String getTxt20() { + return txt20; + } + + public void setTxt20(String txt20) { + this.txt20 = txt20; + } + + public String getTxt50() { + return txt50; + } + + public void setTxt50(String txt50) { + this.txt50 = txt50; + } + + public String getSprasen() { + return sprasen; + } + + public void setSprasen(String sprasen) { + this.sprasen = sprasen; + } + + public String getTxt20en() { + return txt20en; + } + + public void setTxt20en(String txt20en) { + this.txt20en = txt20en; + } + + public String getTxt50en() { + return txt50en; + } + + public void setTxt50en(String txt50en) { + this.txt50en = txt50en; + } + + public String getZflag() { + return zflag; + } + + public void setZflag(String zflag) { + this.zflag = zflag; + } + + public String getXloev() { + return xloev; + } + + public void setXloev(String xloev) { + this.xloev = xloev; + } + + public String getBukrs() { + return bukrs; + } + + public void setBukrs(String bukrs) { + this.bukrs = bukrs; + } + + public String getWaers() { + return waers; + } + + public void setWaers(String waers) { + this.waers = waers; + } + + public String getXmwno() { + return xmwno; + } + + public void setXmwno(String xmwno) { + this.xmwno = xmwno; + } + + public String getMitkz() { + return mitkz; + } + + public void setMitkz(String mitkz) { + this.mitkz = mitkz; + } + + public String getAltkt() { + return altkt; + } + + public void setAltkt(String altkt) { + this.altkt = altkt; + } + + public String getXintb() { + return xintb; + } + + public void setXintb(String xintb) { + this.xintb = xintb; + } + + public String getErdat() { + return erdat; + } + + public void setErdat(String erdat) { + this.erdat = erdat; + } + + public String getXloeb() { + return xloeb; + } + + public void setXloeb(String xloeb) { + this.xloeb = xloeb; + } + + public String getKtopl() { + return ktopl; + } + + public void setKtopl(String ktopl) { + this.ktopl = ktopl; + } + + public String getLand1() { + return land1; + } + + public void setLand1(String land1) { + this.land1 = land1; + } + + public String getKokrs() { + return kokrs; + } + + public void setKokrs(String kokrs) { + this.kokrs = kokrs; + } +} diff --git a/src/weaver/zlldjcws/kjkm/service/LdKjkmService.java b/src/weaver/zlldjcws/kjkm/service/LdKjkmService.java new file mode 100755 index 0000000..6881aae --- /dev/null +++ b/src/weaver/zlldjcws/kjkm/service/LdKjkmService.java @@ -0,0 +1,15 @@ +package weaver.interfaces.zlldjcws.kjkm.service; + +import weaver.interfaces.zlldjcws.kjkm.bean.KjkmBean; +import weaver.interfaces.zlldjcws.util.Message; + +import javax.jws.WebService; + +/** + * @author ZhangLei + * @date 2021/8/3 + */ +@WebService +public interface LdKjkmService { + Message kjkmData(String client,KjkmBean kjkmBean); +} diff --git a/src/weaver/zlldjcws/kjkm/service/impl/LdKjkmServiceImpl.java b/src/weaver/zlldjcws/kjkm/service/impl/LdKjkmServiceImpl.java new file mode 100755 index 0000000..f85bc94 --- /dev/null +++ b/src/weaver/zlldjcws/kjkm/service/impl/LdKjkmServiceImpl.java @@ -0,0 +1,203 @@ +package weaver.interfaces.zlldjcws.kjkm.service.impl; + + +import com.weaver.general.BaseBean; +import weaver.conn.RecordSet; +import weaver.formmode.setup.ModeRightInfo; +import weaver.general.Util; +import weaver.interfaces.zlldjcws.kjkm.bean.KjkmBean; +import weaver.interfaces.zlldjcws.kjkm.service.LdKjkmService; +import weaver.interfaces.zlldjcws.util.Message; +import javax.ejb.Stateless; +import javax.jws.WebService; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +/** + * @author ZhangLei + * @date 2021/8/3 + * @tableName uf_KJKM + */ + +@Stateless(mappedName = "LdKjkmServiceImpl") +@WebService(serviceName = "LdKjkmServiceImpl") +public class LdKjkmServiceImpl extends BaseBean implements LdKjkmService { + @Override + public Message kjkmData(String client,KjkmBean kjkmBean) { + Message message = new Message(); + RecordSet rs = new RecordSet(); + writeLog("表字段对象是:"); + writeLog(kjkmBean); +// 判断:1=新增、2=修改、3=删除 + String zflag = kjkmBean.getZflag(); + writeLog("接收到的zflag是:" + zflag); +// 存储即将操作数据库的值 + Map datas = new HashMap<>(); + datas.put("client",client); + datas.put("saknr", kjkmBean.getSaknr()); + datas.put("glaccount_type", kjkmBean.getGlaccount_type()); + datas.put("ktoks", kjkmBean.getKtoks()); + datas.put("txt30", kjkmBean.getTxt30()); + datas.put("spras", kjkmBean.getSpras()); + datas.put("txt20", kjkmBean.getTxt20()); + datas.put("txt50", kjkmBean.getTxt50()); + datas.put("sprasen", kjkmBean.getSprasen()); + datas.put("txt20en", kjkmBean.getTxt20en()); + datas.put("txt50en", kjkmBean.getTxt50en()); + datas.put("zflag", kjkmBean.getZflag()); + datas.put("xloev", kjkmBean.getXloev()); + datas.put("bukrs", kjkmBean.getBukrs()); + datas.put("waers", kjkmBean.getWaers()); + datas.put("xmwno", kjkmBean.getXmwno()); + datas.put("mitkz", kjkmBean.getMitkz()); + datas.put("altkt", kjkmBean.getAltkt()); + datas.put("xintb", kjkmBean.getXintb()); + datas.put("erdat", kjkmBean.getErdat()); + datas.put("xloeb", kjkmBean.getXloeb()); + datas.put("ktopl", kjkmBean.getKtopl()); + datas.put("land1", kjkmBean.getLand1()); + datas.put("kokrs", kjkmBean.getKokrs()); + ModeRightInfo mode = new ModeRightInfo(); + + if (zflag == null || "".equals(zflag)) { + message.setId("-200"); + message.setFlag("E"); + message.setMessage("业务标识字段zflag值为空"); + } else if ("1".equals(zflag)) { + + String formmodeid = ""; + String sql = " select k.id from modeinfo k \n" + + " inner join workflow_bill l on formid = l.id\n" + + " where l.tablename = 'uf_kjkm' "; + + rs.execute(sql); + if (rs.next()) { + formmodeid = Util.null2String(rs.getString("id")); + } + SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat formatter2 = new SimpleDateFormat("HH:mm:ss"); + String currentdate = formatter1.format(new Date()); + String currenttime = formatter2.format(new Date()); + String modedatacreater = "1"; + String modedatacreatertype = "0"; + datas.put("formmodeid", formmodeid); + datas.put("modedatacreater", modedatacreater); + datas.put("modedatacreatertype", modedatacreatertype); + datas.put("modedatacreatedate", currentdate); + datas.put("modedatacreatetime", currenttime); + + String modeuuid = UUID.randomUUID().toString(); + datas.put("modeuuid", modeuuid); + + //新增 + writeLog("开始执行新增功能代码"); + //判断传递的会计科目编号在数据库中是否存在 + String saknr = kjkmBean.getSaknr(); + writeLog("传递的总账科目编号saknr是:" + saknr); + if (saknr == null || "".equals(saknr)) { + message.setId("-200"); + message.setFlag("E"); + message.setMessage("总账科目编号为空,无法进行新增"); + } else { + + String dbsaknr =""; + sql = "select saknr from uf_kjkm where saknr = ? and client='"+client+"' "; + rs.executeQuery(sql,saknr); + if (rs.next()){ + dbsaknr = rs.getString("saknr"); + } + + if(!"".equals(dbsaknr)){ + message.setId("-200"); + message.setFlag("E"); + message.setMessage("总账科目编号已存在,无法进行新增"); + }else{ + //insertSQL组装 + String tablename = "" ; + String tablenvalue = "" ; + for (Map.Entry entry : datas.entrySet()){ + String fieldname = Util.null2String(entry.getKey()).trim(); + String fieldvalue = Util.null2String(entry.getValue()).replace("'", "''").trim(); + tablename += tablename==""? fieldname :","+fieldname ; + tablenvalue += tablenvalue=="" ? "'"+fieldvalue+"'" :",'"+fieldvalue+"'" ; + } + if(tablename !="" && tablenvalue !=""){ + int count = 0; + sql = " insert into uf_KJKM("+tablename+") values ("+ tablenvalue +")"; + writeLog("sql:"+sql); + boolean boo = rs.executeUpdate(sql); + if(boo){ + count++; + } + if(count >0){ + String dataid = "" ; + sql = " select * from uf_KJKM where modeuuid='"+modeuuid+"' " ; + rs.execute(sql); + if(rs.next()){ + dataid = Util.null2String(rs.getString("id")); + } + if(!"".equals(dataid)){ + mode.editModeDataShare(Integer.valueOf(modedatacreater), Integer.parseInt(formmodeid), Integer.parseInt(dataid)); + } + + message.setFlag("S"); + message.setMessage("新增数据成功!"); + message.setId("200"); + }else{ + message.setFlag("E"); + message.setMessage("新增数据失败!"); + message.setId("-200"); + } + } + } + } + }else if("2".equals(zflag) || "3".equals(zflag)){ + String saknr = kjkmBean.getSaknr(); + writeLog("传递的总账科目编号saknr是:" + saknr); + if (saknr == null || "".equals(saknr)) { + message.setId("-200"); + message.setFlag("E"); + message.setMessage("总账科目编号为空,无法进行新增"); + }else{ + String dbsaknr =""; + String sql = "select saknr from uf_KJKM where saknr = ? and client='"+client+"'"; + rs.executeQuery(sql,saknr); + if (rs.next()){ + dbsaknr = rs.getString("saknr"); + } + if (dbsaknr == null || "".equals(dbsaknr)) { + message.setId("-200"); + message.setFlag("E"); + message.setMessage("总账科目编号不存在,请重新传递"); + } + + String setvalue = "" ; + for (Map.Entry entry : datas.entrySet()){ + String fieldname = Util.null2String(entry.getKey()).trim(); + String fieldvalue = Util.null2String(entry.getValue()).replace("'", "''").trim(); + setvalue += setvalue==""? fieldname+"='"+fieldvalue+"'" :","+fieldname+"='"+fieldvalue+"'" ; + } + + String updateSql = "update uf_kjkm set "+setvalue+" where saknr='"+saknr+"' and client='"+client+"'"; + writeLog("updateSql:"+updateSql); + boolean updateResult = rs.executeUpdate(updateSql); + if (updateResult){ + message.setId("200"); + message.setFlag("S"); + message.setMessage("Success !"); + }else { + message.setId("-200"); + message.setFlag("E"); + message.setMessage("更新数据库失败,请检查传递的参数"); + } + } + } + return message; + } + +} + + diff --git a/src/weaver/zlldjcws/util/Message.java b/src/weaver/zlldjcws/util/Message.java new file mode 100755 index 0000000..c931d38 --- /dev/null +++ b/src/weaver/zlldjcws/util/Message.java @@ -0,0 +1,63 @@ +package weaver.interfaces.zlldjcws.util; + +/** + * @author ZhangLei + * @date 2021/7/29 + * @ClassName: Message + * @Description: TODO OA返回给SAP的消息 + */ +public class Message { + private String flag ; + private String message ; + private String id ; + private String requestid ; + + public String getFlag() { + return flag; + } + public void setFlag(String flag) { + this.flag = flag; + } + public String getMessage() { + return message; + } + public void setMessage(String message) { + this.message = message; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Message() { + super(); + + } + public Message(String id,String flag, String message,String requestid) { + super(); + this.flag = flag; + this.message = message; + this.id = id; + this.requestid = requestid ; + } + + @Override + public String toString() { + return "Message [id="+id+ "flag=" + flag + ", message=" + message + "]"; + } + + public String getRequestid() { + return requestid; + } + + public void setRequestid(String requestid) { + this.requestid = requestid; + } + + + +} diff --git a/src/weaver/zlldjcws/util/WebServlet.java b/src/weaver/zlldjcws/util/WebServlet.java new file mode 100755 index 0000000..87db98c --- /dev/null +++ b/src/weaver/zlldjcws/util/WebServlet.java @@ -0,0 +1,66 @@ +package weaver.interfaces.zlldjcws.util; + +import javax.servlet.ServletConfig; + +import org.apache.cxf.Bus; +import org.apache.cxf.BusFactory; +import org.apache.cxf.frontend.ServerFactoryBean; +import org.apache.cxf.jaxws.JaxWsServerFactoryBean; +import org.apache.cxf.transport.servlet.CXFNonSpringServlet; +import weaver.interfaces.zlldjcws.cgdd.service.LdCgddService; +import weaver.interfaces.zlldjcws.cgdd.service.impl.LdCgddServiceImpl; +import weaver.interfaces.zlldjcws.cgsh.service.LdCgshService; +import weaver.interfaces.zlldjcws.cgsh.service.impl.LdCgshServiceImpl; +import weaver.interfaces.zlldjcws.cgxxjl.service.LdCgxxService; +import weaver.interfaces.zlldjcws.cgxxjl.service.impl.LdCgxxServiceImpl; +import weaver.interfaces.zlldjcws.kjkm.service.LdKjkmService; +import weaver.interfaces.zlldjcws.kjkm.service.impl.LdKjkmServiceImpl; + +public class WebServlet extends CXFNonSpringServlet { + private static final long serialVersionUID = 1L; + + @Override + protected void loadBus(ServletConfig servletConfig) { + super.loadBus(servletConfig); + + Bus bus = getBus(); + BusFactory.setDefaultBus(bus); + + LdCgddServiceImpl lCgddServiceImpl2 = new LdCgddServiceImpl();//实现类 + + JaxWsServerFactoryBean factory1 = new JaxWsServerFactoryBean(); + factory1.setServiceClass(LdCgddService.class);// 接口类 + factory1.setAddress("/lcgddService2"); //服务请求路径 + factory1.setServiceBean(lCgddServiceImpl2); + factory1.create(); + + LdCgddServiceImpl lCgddServiceImpl = new LdCgddServiceImpl();//实现类 + ServerFactoryBean serverFactoryBean1 = new ServerFactoryBean(); //server工厂 + serverFactoryBean1.setServiceClass(LdCgddService.class);// 接口类 + serverFactoryBean1.setAddress("/lcgddService"); //服务请求路径 + serverFactoryBean1.setServiceBean(lCgddServiceImpl); + serverFactoryBean1.create(); + + LdCgshServiceImpl ldCgshServiceImpl = new LdCgshServiceImpl();//实现类 + ServerFactoryBean serverFactoryBean2 = new ServerFactoryBean(); //server工厂 + serverFactoryBean2.setServiceClass(LdCgshService.class);// 接口类 + serverFactoryBean2.setAddress("/ldcgshService"); //服务请求路径 + serverFactoryBean2.setServiceBean(ldCgshServiceImpl); + serverFactoryBean2.create(); + + LdCgxxServiceImpl ldCgxxServiceImpl = new LdCgxxServiceImpl(); + ServerFactoryBean serverFactoryBean3 = new ServerFactoryBean(); //server工厂 + serverFactoryBean3.setServiceClass(LdCgxxService.class);// 接口类 + serverFactoryBean3.setAddress("/ldcgxxService"); //服务请求路径 + serverFactoryBean3.setServiceBean(ldCgxxServiceImpl); + serverFactoryBean3.create(); + + + LdKjkmServiceImpl ldKjkmServiceImpl = new LdKjkmServiceImpl(); + ServerFactoryBean serverFactoryBean4 = new ServerFactoryBean(); //server工厂 + serverFactoryBean4.setServiceClass(LdKjkmService.class);// 接口类 + serverFactoryBean4.setAddress("/ldkjkmService"); //服务请求路径 + serverFactoryBean4.setServiceBean(ldKjkmServiceImpl); + serverFactoryBean4.create(); + } +} \ No newline at end of file diff --git a/src/weaver/zlldjcws/util/WorkflowCreateHandler.java b/src/weaver/zlldjcws/util/WorkflowCreateHandler.java new file mode 100755 index 0000000..539b916 --- /dev/null +++ b/src/weaver/zlldjcws/util/WorkflowCreateHandler.java @@ -0,0 +1,600 @@ +package weaver.interfaces.zlldjcws.util; + +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.TimeUtil; +import weaver.general.Util; +import weaver.hrm.resource.ResourceComInfo; +import weaver.interfaces.zlldjcws.cgdd.bean.CgddDetail1Bean; +import weaver.soa.workflow.request.*; +import weaver.workflow.request.RequestComInfo; +import weaver.workflow.workflow.WorkflowComInfo; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; + +/** + * + * @ClassName: WorkflowCreateHandler + * @Description: TODO + * {异构系统创建ecology工作流的辅助类, + * 支持ecology7.x-ecology8.1所有版本的ecology的创建工作流 + * } + * @author shil + * @date 2020-03-25 下午5:03:03 + * + */ +public class WorkflowCreateHandler extends BaseBean { + + public WorkflowCreateHandler() { + super(); + } + + /*** + * + * @param workflowid + * @return + */ + public String findWorkflowForm(String workflowid) + { + String tablename = ""; + String cDandT = TimeUtil.getCurrentDateString()+" "+ TimeUtil.getCurrentTimeString(); + RecordSet ws = new RecordSet(); + ws.execute("select t2.tablename from workflow_base t1,workflow_bill t2 where t2.id=t1.formid and t1.id ='"+workflowid+"'"); + if(ws.next()){ + tablename = Util.null2String(ws.getString("tablename")); + }else{ + tablename = "-1"; + writeLog("shauter 当前时间:"+cDandT+"-workflowid="+workflowid+"-没有设置表单"); + } + return tablename; + + } + + /** + * + * @Title: bulidWorkflowTitle + * @Description: TODO(构建流程标题) + * @param @param workflowid + * @param @param creatorid + * @param @return 设定文件 + * @return String 返回类型 + * @throws + */ + public String bulidWorkflowTitle(String workflowid,String creatorid) + { + StringBuffer workflowtitle=new StringBuffer(""); + ResourceComInfo ResourceComInfo = null; + try { + ResourceComInfo = new ResourceComInfo(); + } catch (Exception e) { + e.printStackTrace(); + } + String latsname = ResourceComInfo.getLastname(creatorid); + workflowtitle.append(findWorkflowName(""+workflowid)+"--"+latsname); + return workflowtitle.toString(); + } + + /** + * + * @Title: findWorkflowName + * @Description: TODO(获取流程名称) + * @param @param workflowid + * @param @return 设定文件 + * @return String 返回类型 + * @throws + */ + public String findWorkflowName(String workflowid){ + String workflowname=""; + WorkflowComInfo WorkflowComInfo = null; + try { + WorkflowComInfo = new WorkflowComInfo(); + workflowname = WorkflowComInfo.getWorkflowname(""+workflowid); + } catch (Exception e) { + e.printStackTrace(); + workflowname ="-1"; + } + return workflowname; + } + + /** + * + * @Title: findDataIDByReqID + * @Description: TODO(获取表单数据id) + * @param @param workflowid + * @param @param requestid + * @param @return 设定文件 + * @return String 返回类型 + * @throws + */ + public String findDataIDByReqID(String workflowid,String requestid){ + String dataid=""; + RecordSet rs = new RecordSet(); + rs.execute("select id from "+findWorkflowForm(workflowid)+" where requestid='"+requestid+"' "); + rs.next(); + dataid = Util.null2String(rs.getString(1)); + return dataid; + } + /** + * + * @Title: expoundRequest + * @Description: TODO(这里用一句话描述这个方法的作用) + * @param @param requestid + * @param @return 设定文件 + * @return String 返回类型 + * @throws + */ + + public String expoundRequest(String requestid) + { + writeLog("--------------requestid:"+requestid); + String dec = ""; + int ireqid = Util.getIntValue(requestid, 0); + if(ireqid>0){ + + }else if(ireqid==-1){ + dec = "创建流程失败"; + }else if(ireqid==-2){ + dec = "用户没有流程创建权限"; + }else if(ireqid==-3){ + dec = "创建流程基本信息失败"; + }else if(ireqid==-4){ + dec = "保存表单主表信息失败"; + }else if(ireqid==-5){ + dec = "更新紧急程度失败"; + }else if(ireqid==-6){ + dec = "流程操作者失败"; + }else if(ireqid==-7){ + dec = "流转至下一节点失败"; + }else if(ireqid==-8){ + dec = "节点附加操作失败"; + } + return dec; + } + + /** + * + * @Title: WorkflowCreateByMainTableMap + * @param @param creatorId 创建人Id + * @param @param workflowId 流程Id + * @param @param requestName 请求标题 + * @param @param IsNextFlow 是否提交到下一节点 + * @param @param requestMap Map格式的主表数据=<字段名称,字段值> + * @param @return 设定文件 + * @return String 返回类型 + * @throws + */ + public String WorkflowCreateByRequestMap(String creatorId ,String workflowId ,String requestName ,String IsNextFlow,Map requestMainMap,List> detailList) + { + writeLog("-----创建流程传递的参数个数--------"); + writeLog("creatorId:"+creatorId); + writeLog("workflowId:"+workflowId); + writeLog("requestName:"+requestName); + writeLog("IsNextFlow:"+IsNextFlow); + + String requestid = ""; + RequestInfo requestInfo = new RequestInfo(); + //创建人Id + requestInfo.setCreatorid(creatorId); + + //工作流Id + requestInfo.setWorkflowid(workflowId); + + //请求标题 + requestInfo.setDescription(requestName); + if("0".equals(IsNextFlow)) + { + requestInfo.setIsNextFlow(IsNextFlow); + } + + //主表字段 + MainTableInfo mainTableInfo = new MainTableInfo(); + Property[] propertyArray = new Property[requestMainMap.size()]; + int p = 0; + for (Entry entry : requestMainMap.entrySet()) + { + propertyArray[p] = new Property(); + propertyArray[p].setName(Util.null2String(entry.getKey())); + propertyArray[p].setValue(Util.null2String(entry.getValue())); + writeLog("\r\n---p="+p+"---Key="+entry.getKey()+"---Value="+entry.getValue()); + p++; + } + writeLog("-----创建流程传递的参数个数p="+p); + mainTableInfo.setProperty(propertyArray); + requestInfo.setMainTableInfo(mainTableInfo); + + if(detailList.size() >0) + { + DetailTableInfo detailTableInfo = queryDetailTableInfo(detailList,"1"); + requestInfo.setDetailTableInfo(detailTableInfo); + } + + RequestService service = new RequestService(); + try { + //流程 + try { + requestid = service.createRequest(requestInfo);//创建请求id + } catch (Exception e) { + writeLog("======="+e.getMessage()); + } + //String userId = requestInfo.getLastoperator();//请求最后的操作者 + //记录日志 + StringBuffer sbf = new StringBuffer("\r\n-----xwd创建工作流记录日志开始"); + WorkflowComInfo wfcif =new WorkflowComInfo(); + RequestComInfo rcif = new RequestComInfo(); + ResourceComInfo rscif = new ResourceComInfo(); + sbf.append("\r\n-----姓名:"+rscif.getLastname(rcif.getRequestCreater(requestid))); + sbf.append("\r\n-----时间:"+rcif.getRequestCreateTime(requestid)); + sbf.append("\r\n-----创建流程:"+wfcif.getWorkflowname(workflowId)); + sbf.append("\r\n-----请求:"+rcif.getRequestname(requestid)); + sbf.append("\r\n-----请求:"+requestid); + sbf.append("\r\n-----创建工作流记录日志结束"); + writeLog(sbf.toString()); + System.out.println(""+sbf.toString()); + } catch (Exception e) { + writeLog("错误:" + e); + System.out.println("错误:" + e); + } + return requestid; + } + + + + /*** + * + * @param detailList + * @param detailid + * @return + */ + public DetailTableInfo queryDetailTableInfo(List> detailList,String detailid){ + DetailTableInfo dti = new DetailTableInfo(); + if("".equals(detailid)){ + return dti; + } + + List detailtables = new ArrayList(); + DetailTable dt = new DetailTable(); + dt.setId(detailid); + List rows = new ArrayList(); + + for(int i=0;i detailMap = detailList.get(i); + Row r = new Row(); + List cells = new ArrayList(); + for (Entry entry : detailMap.entrySet()) + { + String fieldname = Util.null2String(entry.getKey()).trim(); + String fieldvalue = Util.null2String(entry.getValue()).replace("'", "''").trim(); + Cell c = new Cell(); + c.setName(fieldname); + c.setValue(fieldvalue); + cells.add(c); + } + + Cell[] ca = new Cell[cells.size()]; + cells.toArray(ca); + r.setCell(ca); + rows.add(r); + } + + Row[] ra = new Row[rows.size()]; + rows.toArray(ra); + dt.setRow(ra); + detailtables.add(dt); + + DetailTable[] dta = new DetailTable[detailtables.size()]; + detailtables.toArray(dta); + dti.setDetailTable(dta); + + return dti; + } + + + /** + * + * @param workflowid + * @return + */ + public String getFormTableByWorkflowId(String workflowid) + { + String formtable = ""; + RecordSet rs = new RecordSet(); + String sql = " select abs(formid) as formid from workflow_base where id="+workflowid; + rs.execute(sql); + if(rs.next()){ + formtable = "formtable_main_"+Util.null2String(rs.getString("formid")); + } + return formtable; + } + + + /*** + * + * @param list + * @return + */ + public int insertDtTableByList(List> list,String table,String mainid) + { + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + int count = 0; + + if(list !=null && list.size() > 0) + { + for(int i=0; i map = list.get(i); + for (Entry entry : map.entrySet()) + { + String fieldname = Util.null2String(entry.getKey()).trim(); + String fieldvalue = Util.null2String(entry.getValue()).replace("'", "''").trim(); + tablename += tablename==""? fieldname :","+fieldname ; + tablenvalue += tablenvalue=="" ? "'"+fieldvalue+"'" :",'"+fieldvalue+"'" ; + } + + if(tablename !="" && tablenvalue !="") + { + String sql = " insert into "+table+"(mainid,"+tablename+") values ('"+mainid+"',"+ tablenvalue +")"; + writeLog("sql:"+sql); + boolean boo = rs.execute(sql); + if(!boo) + { + count++; + } + } + } + } + + bb.writeLog("count:"+count); + return count; + } + + + /*** + * + * @param creatorId + * @param formtable + * @param requestMap + * @param cgddDetail1Beans + */ + public Message createNewWorkflow(String WorkFlowId,String IsNextFlow,String creatorId, String formtable, Map requestMap,List cgddDetail1Beans) + { + Message message = new Message(); + RecordSet rs = new RecordSet(); + try{ + String title = bulidWorkflowTitle(WorkFlowId, creatorId); + writeLog("title:" + title); + + List> list = new ArrayList>(); + + if (cgddDetail1Beans != null && cgddDetail1Beans.size() > 0) + { + Map map = null; + for (int i = 0; i < cgddDetail1Beans.size(); i++) + { + CgddDetail1Bean cgddDetail1Bean = cgddDetail1Beans.get(i); + if (cgddDetail1Bean != null) + { + map = new HashMap(); + + map.put("EBELN".toLowerCase(), cgddDetail1Bean.getEbeln() == null ? "" : cgddDetail1Bean.getEbeln()); + map.put("EBELP".toLowerCase(), cgddDetail1Bean.getEbelp() == null ? "" : cgddDetail1Bean.getEbelp()); + map.put("KNTTP".toLowerCase(), cgddDetail1Bean.getKnttp() == null ? "" : cgddDetail1Bean.getKnttp()); + map.put("EPSTP".toLowerCase(), cgddDetail1Bean.getEpstp() == null ? "" : cgddDetail1Bean.getEpstp()); + map.put("MATNR".toLowerCase(), cgddDetail1Bean.getMatnr() == null ? "" : cgddDetail1Bean.getMatnr()); + map.put("TXZ01".toLowerCase(), cgddDetail1Bean.getTxz01() == null ? "" : cgddDetail1Bean.getTxz01()); + map.put("MENGE".toLowerCase(), cgddDetail1Bean.getMenge() == null ? "" : cgddDetail1Bean.getMenge()); + map.put("MEINS".toLowerCase(), cgddDetail1Bean.getMeins() == null ? "" : cgddDetail1Bean.getMeins()); + + if(!"".equals(cgddDetail1Bean.getEeind())){ + String eeind = cgddDetail1Bean.getEeind() ; + String eeindnew = eeind.substring(0,4)+"-"+eeind.substring(4,6)+"-"+eeind.substring(6,8); + map.put("EEIND".toLowerCase(),eeindnew); + } + + map.put("NETPR".toLowerCase(), cgddDetail1Bean.getNetpr() == null ? "" : cgddDetail1Bean.getNetpr()); + map.put("NETWR".toLowerCase(), cgddDetail1Bean.getNetwr() == null ? "" : cgddDetail1Bean.getNetwr()); + map.put("MWSKZ".toLowerCase(), cgddDetail1Bean.getMwskz() == null ? "" : cgddDetail1Bean.getMwskz()); + map.put("WAERS".toLowerCase(), cgddDetail1Bean.getWaers() == null ? "" : cgddDetail1Bean.getWaers()); + map.put("PEINH".toLowerCase(), cgddDetail1Bean.getPeinh() == null ? "" : cgddDetail1Bean.getPeinh()); + map.put("MATKL".toLowerCase(), cgddDetail1Bean.getMatkl() == null ? "" : cgddDetail1Bean.getMatkl()); + map.put("WERKS".toLowerCase(), cgddDetail1Bean.getWerks() == null ? "" : cgddDetail1Bean.getWerks()); + map.put("LGORT".toLowerCase(), cgddDetail1Bean.getLgort() == null ? "" : cgddDetail1Bean.getLgort()); + map.put("INFNR".toLowerCase(), cgddDetail1Bean.getInfnr() == null ? "" : cgddDetail1Bean.getInfnr()); + map.put("RETPO".toLowerCase(), cgddDetail1Bean.getRetpo() == null ? "" : cgddDetail1Bean.getRetpo()); + map.put("BANFN".toLowerCase(), cgddDetail1Bean.getBanfn() == null ? "" : cgddDetail1Bean.getBanfn()); + map.put("BNFPO".toLowerCase(), cgddDetail1Bean.getBnfpo() == null ? "" : cgddDetail1Bean.getBnfpo()); + map.put("REPOS".toLowerCase(), cgddDetail1Bean.getRepos() == null ? "" : cgddDetail1Bean.getRepos()); + map.put("WEBRE".toLowerCase(), cgddDetail1Bean.getWebre() == null ? "" : cgddDetail1Bean.getWebre()); + map.put("LOEKZ".toLowerCase(), cgddDetail1Bean.getLoekz() == null ? "" : cgddDetail1Bean.getLoekz()); + + + map.put("sakto".toLowerCase(), cgddDetail1Bean.getSakto() == null ? "" : cgddDetail1Bean.getSakto()); + map.put("kostl".toLowerCase(), cgddDetail1Bean.getKostl() == null ? "" : cgddDetail1Bean.getKostl()); + map.put("aufnr".toLowerCase(), cgddDetail1Bean.getAufnr() == null ? "" : cgddDetail1Bean.getAufnr()); + map.put("anln1".toLowerCase(), cgddDetail1Bean.getAnln1() == null ? "" : cgddDetail1Bean.getAnln1()); + map.put("anln2".toLowerCase(), cgddDetail1Bean.getAnln2() == null ? "" : cgddDetail1Bean.getAnln2()); + map.put("zekkn".toLowerCase(), cgddDetail1Bean.getZekkn() == null ? "" : cgddDetail1Bean.getZekkn()); + map.put("zmenge".toLowerCase(), cgddDetail1Bean.getZmenge() == null ? "" : cgddDetail1Bean.getZmenge()); + + map.put("itemtxt".toLowerCase(), cgddDetail1Bean.getItemtxt() == null ? "" : cgddDetail1Bean.getItemtxt()); + + list.add(map); + } + } + } + + String requestid = WorkflowCreateByRequestMap(creatorId, WorkFlowId, title, IsNextFlow, requestMap,list); + if(Util.getIntValue(requestid) > 0) + { + message.setFlag("S"); + message.setId("200"); + message.setMessage(expoundRequest(requestid)); + }else{ + message.setFlag("E"); + message.setId("-100"); + message.setMessage(expoundRequest(requestid)); + } + }catch (Exception e){ + message.setFlag("E"); + message.setId("-400"); + message.setMessage("创建流程异常"); + } + + return message; + } + + + /*** + * + * @param requestid + * @param formtable + * @param requestMap + * @param cgddDetail1Beans + * @return + */ + public Message updateWorkflowBySap(String requestid, String formtable, Map requestMap,List cgddDetail1Beans) + { + Message message = new Message(); + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + try{ + String tableset = "" ; + for (Entry entry : requestMap.entrySet()) + { + String fieldname = Util.null2String(entry.getKey()).trim(); + String fieldvalue = Util.null2String(entry.getValue()).replace("'", "''").trim(); + tableset += tableset =="" ? fieldname+"='"+fieldvalue+"'" :","+fieldname+"='"+fieldvalue+"'" ; + } + if(!"".equals(tableset)) + { + String sql = " update "+formtable+" set "+tableset+" where requestid="+requestid; + bb.writeLog("sql:"+sql); + boolean flag2 = rs.executeUpdate(sql); + bb.writeLog("flag2:"+flag2); + if(flag2){ + + String mainid = "" ; + String mainsql = " select id from "+formtable+" where requestid=?"; + rs.executeQuery(mainsql, requestid); + if(rs.next()){ + mainid = Util.null2String(rs.getString("id")); + } + + bb.writeLog("mainid:"+mainid); + if(!"".equals(mainid)) + { + List> list = new ArrayList>(); + Map map = null; + if (cgddDetail1Beans != null && cgddDetail1Beans.size() > 0) + { + for (int i = 0; i < cgddDetail1Beans.size(); i++) + { + CgddDetail1Bean cgddDetail1Bean = cgddDetail1Beans.get(i); + if (cgddDetail1Bean != null) + { + map = new HashMap(); + map.put("EBELN".toLowerCase(), cgddDetail1Bean.getEbeln() == null ? "" : cgddDetail1Bean.getEbeln()); + map.put("EBELP".toLowerCase(), cgddDetail1Bean.getEbelp() == null ? "" : cgddDetail1Bean.getEbelp()); + map.put("KNTTP".toLowerCase(), cgddDetail1Bean.getKnttp() == null ? "" : cgddDetail1Bean.getKnttp()); + map.put("EPSTP".toLowerCase(), cgddDetail1Bean.getEpstp() == null ? "" : cgddDetail1Bean.getEpstp()); + map.put("MATNR".toLowerCase(), cgddDetail1Bean.getMatnr() == null ? "" : cgddDetail1Bean.getMatnr()); + map.put("TXZ01".toLowerCase(), cgddDetail1Bean.getTxz01() == null ? "" : cgddDetail1Bean.getTxz01()); + map.put("MENGE".toLowerCase(), cgddDetail1Bean.getMenge() == null ? "" : cgddDetail1Bean.getMenge()); + map.put("MEINS".toLowerCase(), cgddDetail1Bean.getMeins() == null ? "" : cgddDetail1Bean.getMeins()); + + bb.writeLog("Eeind:"+cgddDetail1Bean.getEeind()); + if(!"".equals(cgddDetail1Bean.getEeind()) && !"null".equals(cgddDetail1Bean.getEeind()) && cgddDetail1Bean.getEeind().length() >=8 ){ + String eeind = cgddDetail1Bean.getEeind() ; + String eeindnew = eeind.substring(0,4)+"-"+eeind.substring(4,6)+"-"+eeind.substring(6,8); + map.put("EEIND".toLowerCase(),eeindnew); + } + + map.put("NETPR".toLowerCase(), cgddDetail1Bean.getNetpr() == null ? "" : cgddDetail1Bean.getNetpr()); + map.put("NETWR".toLowerCase(), cgddDetail1Bean.getNetwr() == null ? "" : cgddDetail1Bean.getNetwr()); + map.put("MWSKZ".toLowerCase(), cgddDetail1Bean.getMwskz() == null ? "" : cgddDetail1Bean.getMwskz()); + map.put("WAERS".toLowerCase(), cgddDetail1Bean.getWaers() == null ? "" : cgddDetail1Bean.getWaers()); + map.put("PEINH".toLowerCase(), cgddDetail1Bean.getPeinh() == null ? "" : cgddDetail1Bean.getPeinh()); + map.put("MATKL".toLowerCase(), cgddDetail1Bean.getMatkl() == null ? "" : cgddDetail1Bean.getMatkl()); + map.put("WERKS".toLowerCase(), cgddDetail1Bean.getWerks() == null ? "" : cgddDetail1Bean.getWerks()); + map.put("LGORT".toLowerCase(), cgddDetail1Bean.getLgort() == null ? "" : cgddDetail1Bean.getLgort()); + map.put("INFNR".toLowerCase(), cgddDetail1Bean.getInfnr() == null ? "" : cgddDetail1Bean.getInfnr()); + map.put("RETPO".toLowerCase(), cgddDetail1Bean.getRetpo() == null ? "" : cgddDetail1Bean.getRetpo()); + map.put("BANFN".toLowerCase(), cgddDetail1Bean.getBanfn() == null ? "" : cgddDetail1Bean.getBanfn()); + map.put("BNFPO".toLowerCase(), cgddDetail1Bean.getBnfpo() == null ? "" : cgddDetail1Bean.getBnfpo()); + map.put("REPOS".toLowerCase(), cgddDetail1Bean.getRepos() == null ? "" : cgddDetail1Bean.getRepos()); + map.put("WEBRE".toLowerCase(), cgddDetail1Bean.getWebre() == null ? "" : cgddDetail1Bean.getWebre()); + map.put("LOEKZ".toLowerCase(), cgddDetail1Bean.getLoekz() == null ? "" : cgddDetail1Bean.getLoekz()); + + map.put("sakto".toLowerCase(), cgddDetail1Bean.getSakto() == null ? "" : cgddDetail1Bean.getSakto()); + map.put("kostl".toLowerCase(), cgddDetail1Bean.getKostl() == null ? "" : cgddDetail1Bean.getKostl()); + map.put("aufnr".toLowerCase(), cgddDetail1Bean.getAufnr() == null ? "" : cgddDetail1Bean.getAufnr()); + map.put("anln1".toLowerCase(), cgddDetail1Bean.getAnln1() == null ? "" : cgddDetail1Bean.getAnln1()); + map.put("anln2".toLowerCase(), cgddDetail1Bean.getAnln2() == null ? "" : cgddDetail1Bean.getAnln2()); + map.put("zekkn".toLowerCase(), cgddDetail1Bean.getZekkn() == null ? "" : cgddDetail1Bean.getZekkn()); + map.put("zmenge".toLowerCase(), cgddDetail1Bean.getZmenge() == null ? "" : cgddDetail1Bean.getZmenge()); + + map.put("itemtxt".toLowerCase(), cgddDetail1Bean.getItemtxt() == null ? "" : cgddDetail1Bean.getItemtxt()); + + list.add(map); + } + } + + + bb.writeLog("list:"+list.size()); + sql = " delete from "+formtable+"_dt1 where mainid="+mainid; + boolean flag = rs.executeUpdate(sql); + bb.writeLog("flag:"+flag); + if(flag){ + int cou = insertDtTableByList(list,formtable+"_dt1",mainid); + if(cou > 0){ + message.setFlag("E"); + message.setId("-200"); + message.setMessage("生成明细表异常"); + }else{ + message.setFlag("S"); + message.setId("100"); + message.setMessage("创建流程成功"); + } + }else{ + message.setFlag("E"); + message.setId("100"); + message.setMessage("更新明细表数据失败"); + } + }else{ + message.setFlag("S"); + message.setId("100"); + message.setMessage("创建流程成功"); + } + }else{ + message.setFlag("E"); + message.setId("-500"); + message.setMessage("获取流程主表异常,创建流程失败"); + } + + }else{ + message.setFlag("E"); + message.setId("-500"); + message.setMessage("获取流程主表异常,创建流程失败"); + } + }else{ + message.setFlag("S"); + message.setId("100"); + message.setMessage("创建流程成功"); + } + }catch (Exception e){ + message.setFlag("E"); + message.setId("-400"); + message.setMessage("更新流程异常"); + bb.writeLog("e:"+e); + } + return message; + } + +}