package test;
import java.math.BigDecimal;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import javax.jws.WebMethod;
import javax.xml.datatype.XMLGregorianCalendar;
import javax.xml.ws.Holder;
import U9.part.com.microsoft.schemas._2003._10.serialization.arrays.ArrayOfKeyValueOfanyTypeanyType;
import U9.part.com.microsoft.schemas._2003._10.serialization.arrays.ArrayOfKeyValueOfanyTypeanyType.KeyValueOfanyTypeanyType;
import U9.part.exceptions.ubf.ufsoft.ArrayOfMessageBase;
import U9.part.org.datacontract.schemas._2004._07.ufsoft_ubf.ServiceException;
import U9.part.org.datacontract.schemas._2004._07.ufsoft_ubf_util.ObjectFactory;
import U9.part.org.datacontract.schemas._2004._07.ufsoft_ubf_util.ThreadContext;
import U9.part.org.tempuri.BatchCreateItemByDTOSRVStub;
import U9.part.org.ufida.UFIDAU9ISVItemIBatchCreateItemByDTOSRV;
import U9.part.org.ufida.UFIDAU9ISVItemIBatchCreateItemByDTOSRVDoServiceExceptionFaultFaultMessage;
import U9.part.org.ufida.entitydata.ArrayOfUFIDAU9CBOSCMItemItemMasterData;
import U9.part.org.ufida.entitydata.ArrayOfUFIDAU9ISVItemItemMasterDTOData;
import U9.part.org.ufida.entitydata.UFIDAU9BaseFlexFieldDescFlexFieldDescFlexSegmentsData;
import U9.part.org.ufida.entitydata.UFIDAU9BasePropertyTypesEffectiveData;
import U9.part.org.ufida.entitydata.UFIDAU9CBOPubControllerCommonArchiveDataDTOData;
import U9.part.org.ufida.entitydata.UFIDAU9CBOPubControllerContextDTOData;
import U9.part.org.ufida.entitydata.UFIDAU9ISVItemItemInvInfoDTOData;
import U9.part.org.ufida.entitydata.UFIDAU9ISVItemItemMFGInfoDTOData;
import U9.part.org.ufida.entitydata.UFIDAU9ISVItemItemMRPInfoDTOData;
import U9.part.org.ufida.entitydata.UFIDAU9ISVItemItemMasterDTOData;
import U9.part.org.ufida.entitydata.UFIDAU9ISVItemItemPurchaseInfoDTOData;
public class SendPartService {
private static String ip = GlobalSettings.get("U9集成.服务器地址");
private static String parturl = "http://" + ip
+ "/U9/services/UFIDA.U9.ISV.MiscRcvISV.ICommonCreateMiscRcv.svc";
private static List<Object> wireList = new ArrayList<Object>();
public String SendData(){
String massge =null;
System.out.println("aaa");
try {
//创建当前上下文(相当于验证信息,这部分需灵活配置)
String IDForCompany = GlobalSettings.get("U9集成.企业编码");//当前企业编号
System.out.println("IDForCompany : " +IDForCompany);
Long IDForOrganization = new Long(GlobalSettings.get("U9集成.组织ID"));//当前组织ID
System.out.println("IDForOrganization : " +IDForOrganization);
String codeForOrganization =GlobalSettings.get("U9集成.组织编码");//当前组织编码
System.out.println("codeForOrganization : " + codeForOrganization);
Long IDForUsers = new Long(GlobalSettings.get("U9集成.用户Id"));//当前用户ID
System.out.println("IDForUsers : " +IDForUsers);
String UserCode = GlobalSettings.get("U9集成.用户账号");//当前用户编码
System.out.println("UserCode : " + UserCode);
URL u = new URL(parturl);
System.out.println(" url : " +u);
BatchCreateItemByDTOSRVStub createRcvsvclient = new BatchCreateItemByDTOSRVStub();
System.out.println("222");
UFIDAU9ISVItemIBatchCreateItemByDTOSRV createsv = createRcvsvclient.getBasicHttpBindingUFIDAU9ISVItemIBatchCreateItemByDTOSRV();
System.out.println("333");
ArrayOfUFIDAU9ISVItemItemMasterDTOData rCList = null;
System.out.println("444");
Holder<ArrayOfUFIDAU9CBOSCMItemItemMasterData> doResult = new Holder<ArrayOfUFIDAU9CBOSCMItemItemMasterData>() ;
System.out.println("555");
Holder<ArrayOfMessageBase> outMessages = new Holder<ArrayOfMessageBase>();
// String IDForCompany = "015";//当前企业编号
// Long IDForOrganization = new Long("1001506264962105");//当前组织ID
// Long IDForUsers = new Long("1001506264742043");//当前用户ID
// String UserCode = "admin";//当前用户编码
//创建上下文环境
Object context = createContext(IDForCompany,IDForOrganization,IDForUsers,UserCode);
//将入库单内容传入ERP(入和返的值,均作为此方法的参数)。
//context验证信息,rCVList入的值,doResult方法返回值,
System.out.println("6");
createsv._do(context, rCList,GetContext(codeForOrganization,IDForCompany,UserCode) ,doResult, outMessages);
if(outMessages!=null){
massge = "导入完成!";
}
System.out.println("Invoke end ...");
System.gc();
}catch(UFIDAU9ISVItemIBatchCreateItemByDTOSRVDoServiceExceptionFaultFaultMessage ex)
{
//下面的代码可以将服务端的异常信息给显示输出来。
StringBuilder sb = new StringBuilder();
sb.append("导入失败!");
String error=null;
ServiceException ed = ex.getFaultInfo();
for (int i=0 ;i<ed.getAny().size()-1;i++)
{
if(ed!=null&&ed.getAny()!=null&&ed.getAny().get(i).toString()!=null){
sb.append(ed.getAny().get(i).toString()).append("\n");
}
if(ed!=null&&ed.getAny()!=null&& ed.getAny().get(i)!=null&&ed.getAny().get(i).getFirstChild()!=null
&& !"".equals(ed)&&!"".equals(ed.getAny())&& !"".equals(ed.getAny().get(i))&&!"".equals(ed.getAny().get(i).getFirstChild())){
sb.append(ed.getAny().get(i).getFirstChild().toString()).append("\n");
}
// System.out.println(ed.getAny().get(i).toString());
// System.out.println();
// System.out.println(ed.getAny().get(i).getFirstChild().toString());
}
error = sb.toString();
if(error.indexOf("料号 已存在,请重新输入!")!=-1){
massge = "导入成功";
System.out.println(massge);
}else{
massge = error;
System.out.println(massge);
}
return massge;
}
catch(Exception ex)
{
massge = "导入失败!\n"+ex.getMessage()+"\n"+ex.getClass().toString()+"\n"+"------------------------------------------------------------";
// System.out.println("Error..");
// System.out.println(ex.getMessage());
// System.out.println(ex.getClass().toString());
// System.out.println(ex.getStackTrace().toString());
return massge;
}
return massge;
}
// 创建上下文环境
@WebMethod(operationName="differentFromMethodName")
public static Object createContext(String entid, long orgid, long userid,
String usercode) {
ObjectFactory contextfactory = new ObjectFactory();
ThreadContext tc = contextfactory.createThreadContext();
U9.part.com.microsoft.schemas._2003._10.serialization.arrays.ObjectFactory arrayFactory = new U9.part.com.microsoft.schemas._2003._10.serialization.arrays.ObjectFactory();
ArrayOfKeyValueOfanyTypeanyType contextarray = arrayFactory
.createArrayOfKeyValueOfanyTypeanyType();
KeyValueOfanyTypeanyType kv1 = new KeyValueOfanyTypeanyType();
kv1.setKey("EnterpriseID");
kv1.setValue(entid);// 填具体的企业编号
contextarray.getKeyValueOfanyTypeanyType().add(kv1);
KeyValueOfanyTypeanyType kv2 = new KeyValueOfanyTypeanyType();
kv2.setKey("OrgID");
kv2.setValue(orgid);// 填具体的组织ID
contextarray.getKeyValueOfanyTypeanyType().add(kv2);
KeyValueOfanyTypeanyType kv3 = new KeyValueOfanyTypeanyType();
kv3.setKey("UserID");
kv3.setValue(userid);// //填具体的用户ID
contextarray.getKeyValueOfanyTypeanyType().add(kv3);
KeyValueOfanyTypeanyType kv4 = new KeyValueOfanyTypeanyType();
kv4.setKey("UserCode");
kv4.setValue(usercode);// 填具体的用户编码
contextarray.getKeyValueOfanyTypeanyType().add(kv4);
KeyValueOfanyTypeanyType kv5 = new KeyValueOfanyTypeanyType();
kv5.setKey("CultureName");
kv5.setValue("zh-CN");// 当前语种
contextarray.getKeyValueOfanyTypeanyType().add(kv5);
tc.setNa