| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283 | 
							- package main
 
- import (
 
- 	"bytes"
 
- 	"encoding/json"
 
- 	"encoding/xml"
 
- 	"fmt"
 
- 	"io/ioutil"
 
- 	"net/http"
 
- 	"strings"
 
- )
 
- type EASLoginInfo struct{
 
- 	UserName string `json:"userName"`
 
- 	Password string `json:"password"`
 
- 	SlnName	 string `json:"slnName"`
 
- 	DcName 	 string	`json:"dcName"`
 
- 	Language string	`json:"language"`
 
- 	DbType	 int32	`json:"dbType"`
 
- }
 
- var(
 
- 	LoginStr  = `<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:log="http://login.webservice.bos.kingdee.com">
 
-    <soapenv:Header/>
 
-    <soapenv:Body>
 
-       <log:login soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
 
-          <userName xsi:type="xsd:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">userName?</userName>
 
-          <password xsi:type="xsd:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">password?</password>
 
-          <slnName xsi:type="xsd:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">slnName?</slnName>
 
-          <dcName xsi:type="xsd:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">dcName?</dcName>
 
-          <language xsi:type="xsd:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">language?</language>
 
-          <dbType xsi:type="xsd:int">dbType?</dbType>
 
-       </log:login>
 
-    </soapenv:Body>
 
- </soapenv:Envelope>
 
- `
 
- 	LogoutStr = `<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:log="http://login.webservice.bos.kingdee.com">
 
-    <soapenv:Header/>
 
-    <soapenv:Body>
 
-       <log:logout soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
 
-          <userName xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">userName?</userName>
 
-          <slnName xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">slnName?</slnName>
 
-          <dcName xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">dcName?</dcName>
 
-          <language xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">language?</language>
 
-       </log:logout>
 
-    </soapenv:Body>
 
- </soapenv:Envelope>
 
- `
 
- 	InsertPartsStr = `<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservice.synfacade.modernfarming.eas.kingdee.com">
 
-     <soapenv:Header>
 
-         <ns1:SessionId
 
-             xmlns:ns1="http://login.webservice.bos.kingdee.com">SessionId?
 
-         </ns1:SessionId>
 
-     </soapenv:Header>
 
-    <soapenv:Body>
 
-       <web:synMaterial soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
 
-          <request xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">strJson?</request>
 
-       </web:synMaterial>
 
-    </soapenv:Body>
 
- </soapenv:Envelope>
 
- `
 
- 	InsertPartsuselaidStr = `<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:app="http://app.ws.scm.eas.kingdee.com">
 
-    <soapenv:Header>
 
-         <ns1:SessionId
 
-             xmlns:ns1="http://login.webservice.bos.kingdee.com">SessionId?
 
-         </ns1:SessionId>
 
-     </soapenv:Header>
 
-    <soapenv:Body>
 
-       <app:importBill soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
 
-          <billType xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">billType?</billType>
 
-          <billDataJSON xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">strJson?</billDataJSON>
 
-          <billStatus xsi:type="xsd:int">1</billStatus>
 
-       </app:importBill>
 
-    </soapenv:Body>
 
- </soapenv:Envelope>
 
- `
 
- )
 
- func main(){
 
- 	sessionid := EASWebServiceLogin()
 
- 	//EASWebServicInsertParts(sessionid,"{}")
 
- 	EASWebServicInsertPartsuselaid(sessionid,"{}","007")
 
- 	//EASWebServiceLogout()
 
- }
 
- type Response struct {
 
- 	Body    rspBody  `xml:"Body" json:"body"`
 
- }
 
- type rspBody struct {
 
- 	Record []rqRecord `xml:"multiRef" json:"multiRef"`
 
- 	SynMaterialResponse SMReturn `xml:"synMaterialResponse" json:"SynMaterialResponse"`
 
- 	ImportBillResponse ImportBillResponse  `xml:"importBillResponse" json:"importBillResponse"`
 
- }
 
- type ImportBillResponse struct {
 
- 	ImportBillReturn string `xml:"importBillReturn" json:"importBillReturn"`
 
- }
 
- type SMReturn struct {
 
- 	SynMaterialReturn  string `xml:"synMaterialReturn" json:"synMaterialReturn"`
 
- }
 
- type rqRecord struct {
 
- 	SessionId  string `xml:"sessionId" json:"sessionId"`
 
- }
 
- func EASWebServiceLogin()string{
 
- 	client := &http.Client{}
 
- 	resstr := ReplaceStrWebSevice("login","user","kdeas@02","eas","XDMY","L2","1","","","")
 
- 	body := bytes.NewBuffer([]byte(resstr))
 
- 	req, err := http.NewRequest("POST",
 
- 		"http://60.174.151.11:6888/ormrpc/services/EASLogin?wsdl",
 
- 		body,
 
- 	)
 
- 	req.Header.Set("Content-Type", "text/xml")
 
- 	req.Header.Set("SOAPAction", "application/soap+xml")
 
- 	if err != nil {
 
- 		// handle error
 
- 	}
 
- 	resp, err := client.Do(req)
 
- 	if err != nil {
 
- 		fmt.Println(err)
 
- 		return ""
 
- 	}
 
- 	defer resp.Body.Close()
 
- 	result_body, err := ioutil.ReadAll(resp.Body)
 
- 	if err != nil {
 
- 		fmt.Println(err)
 
- 		return ""
 
- 	}
 
- 	v := Response {}
 
- 	err = xml.Unmarshal([]byte(string(result_body)), &v)
 
- 	if err != nil {
 
- 		fmt.Println(err.Error())
 
- 	}
 
- 	if len(v.Body.Record)>0{
 
- 		fmt.Println(v.Body.Record[0].SessionId)
 
- 		return  v.Body.Record[0].SessionId
 
- 	}
 
- 	return ""
 
- }
 
- func EASWebServiceLogout(){
 
- 	client := &http.Client{}
 
- 	resstr := ReplaceStrWebSevice("logout","user","","eas","XDMY","L2","","","","")
 
- 	body := bytes.NewBuffer([]byte(resstr))
 
- 	req, err := http.NewRequest("POST",
 
- 		"http://60.174.151.11:6888/ormrpc/services/EASLogin?wsdl",
 
- 		body,
 
- 	)
 
- 	req.Header.Set("Content-Type", "text/xml")
 
- 	req.Header.Set("SOAPAction", "application/soap+xml")
 
- 	if err != nil {
 
- 		// handle error
 
- 	}
 
- 	resp, err := client.Do(req)
 
- 	if err != nil {
 
- 		fmt.Println(err)
 
- 		return
 
- 	}
 
- 	defer resp.Body.Close()
 
- 	result_body, err := ioutil.ReadAll(resp.Body)
 
- 	if err != nil {
 
- 		fmt.Println(err)
 
- 		return
 
- 	}
 
- 	fmt.Println(string(result_body))
 
- }
 
- func EASWebServicInsertParts(SessionId,soapencJson string){
 
- 	client := &http.Client{}
 
- 	resstr := ReplaceStrWebSevice("InsertParts","","","","","","",SessionId,soapencJson,"")
 
- 	body := bytes.NewBuffer([]byte(resstr))
 
- 	req, err := http.NewRequest("POST",
 
- 		"http://60.174.151.11:6888/ormrpc/services/WSSynMasterDataFacade?wsdl",
 
- 		body,
 
- 	)
 
- 	req.Header.Set("Content-Type", "text/xml")
 
- 	req.Header.Set("SOAPAction", "application/soap+xml")
 
- 	if err != nil {
 
- 		// handle error
 
- 	}
 
- 	resp, err := client.Do(req)
 
- 	if err != nil {
 
- 		fmt.Println(err)
 
- 		return
 
- 	}
 
- 	defer resp.Body.Close()
 
- 	result_body, err := ioutil.ReadAll(resp.Body)
 
- 	if err != nil {
 
- 		fmt.Println(err)
 
- 		return
 
- 	}
 
- 	v := Response {}
 
- 	err = xml.Unmarshal([]byte(string(result_body)), &v)
 
- 	if err != nil {
 
- 		fmt.Println(err.Error())
 
- 	}
 
- 	resmap :=  make(map[string]string,0)
 
- 	err = json.Unmarshal([]byte(v.Body.SynMaterialResponse.SynMaterialReturn),&resmap)
 
- 	if resmap["success"] == "0"{
 
- 		fmt.Println(resmap["message"])
 
- 	}
 
- 	//fmt.Println(string(result_body))
 
- }
 
- func EASWebServicInsertPartsuselaid(SessionId,strJson,billType string){ //billType采购入库单:006 销售出库单:007 其他入库单:008 其他出库单:009 领料出库单:100 生产入库单:101
 
- 	client := &http.Client{}
 
- 	resstr := ReplaceStrWebSevice("InsertPartsuselaidStr","","","","","","",SessionId,strJson,billType)
 
- 	body := bytes.NewBuffer([]byte(resstr))
 
- 	req, err := http.NewRequest("POST",
 
- 		"http://60.174.151.11:6888/ormrpc/services/WSSCMWebServiceFacade?wsdl",
 
- 		body,
 
- 	)
 
- 	req.Header.Set("Content-Type", "text/xml")
 
- 	req.Header.Set("SOAPAction", "application/soap+xml")
 
- 	if err != nil {
 
- 		// handle error
 
- 	}
 
- 	resp, err := client.Do(req)
 
- 	if err != nil {
 
- 		fmt.Println(err)
 
- 		return
 
- 	}
 
- 	defer resp.Body.Close()
 
- 	result_body, err := ioutil.ReadAll(resp.Body)
 
- 	if err != nil {
 
- 		fmt.Println(err)
 
- 		return
 
- 	}
 
- 	v := Response {}
 
- 	err = xml.Unmarshal([]byte(string(result_body)), &v)
 
- 	if err != nil {
 
- 		fmt.Println(err.Error())
 
- 	}
 
- 	resmap :=  make(map[string]interface{},0)
 
- 	if v.Body.ImportBillResponse.ImportBillReturn != "" {
 
- 		err = json.Unmarshal([]byte(v.Body.ImportBillResponse.ImportBillReturn),&resmap)
 
- 		fmt.Println(v.Body.ImportBillResponse.ImportBillReturn)
 
- 		fmt.Println(len(resmap["billErrors"].([]interface {})))
 
- 		if resmap["status"] == "2"{
 
- 			fmt.Println(resmap["msg"])
 
- 		}
 
- 	}
 
- }
 
- func ReplaceStrWebSevice(typeIn,userName,password,slnName,dcName,language,dbType,SessionId,strJson,billType string)string{
 
- 	res := ""
 
- 	switch typeIn {
 
- 	case "login":
 
- 		res = LoginStr
 
- 		res = strings.ReplaceAll(res,"userName?",userName)
 
- 		res = strings.ReplaceAll(res,"password?",password)
 
- 		res = strings.ReplaceAll(res,"slnName?",slnName)
 
- 		res = strings.ReplaceAll(res,"dcName?",dcName)
 
- 		res = strings.ReplaceAll(res,"language?",language)
 
- 		res = strings.ReplaceAll(res,"dbType?",dbType)
 
- 	case "logout":
 
- 		res = LogoutStr
 
- 		res = strings.ReplaceAll(res,"userName?",userName)
 
- 		res = strings.ReplaceAll(res,"slnName?",slnName)
 
- 		res = strings.ReplaceAll(res,"dcName?",dcName)
 
- 		res = strings.ReplaceAll(res,"language?",language)
 
- 	case "InsertParts":
 
- 		res = InsertPartsStr
 
- 		res = strings.ReplaceAll(res,"SessionId?",SessionId)
 
- 		res = strings.ReplaceAll(res,"strJson?",strJson)
 
- 	case "InsertPartsuselaidStr":
 
- 		res = InsertPartsuselaidStr
 
- 		res = strings.ReplaceAll(res,"SessionId?",SessionId)
 
- 		res = strings.ReplaceAll(res,"strJson?",strJson)
 
- 		res = strings.ReplaceAll(res,"billType?",billType)
 
- 	}
 
- 	return  res
 
- }
 
 
  |