| | |
| | | "encoding/json" |
| | | "fmt" |
| | | "io/ioutil" |
| | | "kingdee-dbapi/config" |
| | | "kingdee-dbapi/logger" |
| | | "kingdee-dbapi/nsqclient" |
| | | "mime/multipart" |
| | | "net/http" |
| | | "strconv" |
| | | "time" |
| | | |
| | | "kingdee-dbapi/config" |
| | | "kingdee-dbapi/logger" |
| | | "kingdee-dbapi/nsqclient" |
| | | ) |
| | | |
| | | var JoHeadTemplate = ` |
| | |
| | | } |
| | | |
| | | type CSTNsqReply struct { |
| | | FBillNo string `json:"fBillNo"` // 订单编号 |
| | | FBillNo string `json:"FBillNo"` // 订单编号 |
| | | FNumber string `json:"FNumber"` // 物料代码 |
| | | Code int `json:"code"` // CST接口返回的code |
| | | Message string `json:"message"` // 成功则返回单号, 失败返回 |
| | | ICMONo string `json:"ICMONo"` // 金蝶系统的生产任务单编号 |
| | | Code int `json:"code"` // CST接口返回的code, 成功200 |
| | | Message string `json:"message"` // 失败的错误信息 |
| | | } |
| | | |
| | | type CSTServiceResponse struct { |
| | |
| | | logger.Warn("解析请求失败, %s", err.Error()) |
| | | return err |
| | | } |
| | | logger.Debug("接收到创建生产任务单请求, 共%d条订单", len(query)) |
| | | |
| | | for _, q := range query { |
| | | ret := Commit2CSTService(q) |
| | |
| | | } |
| | | |
| | | func Commit2CSTService(order CSTNsqQuery) (result CSTNsqReply) { |
| | | fmt.Println(order) |
| | | result.Code = -1 |
| | | result.FBillNo = order.FBillNo |
| | | result.FNumber = order.FNumber |
| | |
| | | int(order.UseAmount), // 完工入库上限 |
| | | int(order.UseAmount), // 完工入库下限 |
| | | ) |
| | | fmt.Println(joHead) |
| | | //fmt.Println(joHead) |
| | | params := map[string]string{ |
| | | "action": "生产任务单.新增", |
| | | "fuserid": "16394", |
| | |
| | | |
| | | if rspMsg.ErrCode == 0 { |
| | | result.Code = 200 |
| | | result.Message = rspMsg.Data.FBillNo |
| | | result.ICMONo = rspMsg.Data.FBillNo |
| | | } else { |
| | | result.Code = rspMsg.ErrCode |
| | | result.Message = rspMsg.ErrMsg |
| | |
| | | func newMultipartRequest(url string, params map[string]string) (*http.Request, error) { |
| | | body := &bytes.Buffer{} |
| | | writer := multipart.NewWriter(body) |
| | | |
| | | // 设置Boundary, 接口验证了六个- |
| | | err := writer.SetBoundary("------basicHttpClient" + strconv.Itoa(int(time.Now().Unix()))) |
| | | if err != nil { |
| | | if err := writer.SetBoundary("------basicHttpClient" + strconv.Itoa(int(time.Now().Unix()))); err != nil { |
| | | fmt.Println(err.Error()) |
| | | } |
| | | |
| | | for key, val := range params { |
| | | _ = writer.WriteField(key, val) |
| | | } |
| | |
| | | writer.Close() |
| | | |
| | | req, err := http.NewRequest("POST", url, body) |
| | | if err != nil { |
| | | return nil, err |
| | | } |
| | | |
| | | req.Header.Set("Content-Type", writer.FormDataContentType()) |
| | | req.Header.Set("User-Agent", "basicHttpClient/0.0.1") |
| | | req.Header.Set("Connection", "keep-alive") |