package com.sw.mes.config.webservice;

import java.rmi.RemoteException;
import java.util.Map;

import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.ServiceException;

import com.sw.mes.third.entity.SoapInDto;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;




public class CallWebServiceConfig {
    public static Map sendWebService(String uri, SoapInDto soapInDto, Integer timeOut) throws ServiceException, RemoteException {

        String endpoint = uri;
        Service service = new Service();
        Call call = null;
        QName qn = new QName("uri:com.tjsemi.mes", "MT_MES_TO_ERP_REQ");
        call = (Call) service.createCall();
        call.setUsername("SYS_MES_QAS");
        call.setPassword("Tjsemi#002129");
        call.setOperationName(qn);
        call.setTargetEndpointAddress(endpoint);
        call.setTimeout(timeOut);
        call.setUseSOAPAction(true);
        call.addParameter("SYSID", qn, ParameterMode.IN);
        call.addParameter("IFYWID", qn, ParameterMode.IN);
        call.addParameter("BSKEY", qn, ParameterMode.IN);
        call.addParameter("SAPKEY", qn, ParameterMode.IN);
        call.addParameter("ZORG", qn, ParameterMode.IN);
        call.addParameter("ZFILED1", qn, ParameterMode.IN);
        call.addParameter("ZFILED2", qn, ParameterMode.IN);
        call.addParameter("ZFILED3", qn, ParameterMode.IN);
        call.addParameter("ZFILED4", qn, ParameterMode.IN);
        call.addParameter("ZFILED5", qn, ParameterMode.IN);
        call.addParameter("ZDATA", qn, ParameterMode.IN);
        String SYSID = soapInDto.getSYSID();
        String IFYWID = soapInDto.getIFYWID();
        String BSKEY = soapInDto.getBSKEY();
        String SAPKEY = soapInDto.getSAPKEY();
        String ZORG = soapInDto.getZORG();
        String ZFILED1 = soapInDto.getZFILED1();
        String ZFILED2 = soapInDto.getZFILED2();
        String ZFILED3 = soapInDto.getZFILED3();
        String ZFILED4 = soapInDto.getZFILED4();
        String ZFILED5 = soapInDto.getZFILED5();
        String ZDATA = soapInDto.getZDATA();
        call.invoke(new Object[]{SYSID, IFYWID, BSKEY, SAPKEY, ZORG, ZFILED1, ZFILED2, ZFILED3, ZFILED4, ZFILED5, ZDATA});
        Map outputParams = call.getOutputParams();
        System.out.println(outputParams.toString());
        return outputParams;
    }
}
