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","MASM","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","MASM","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
- }
|