zhangzengfei
2023-07-13 89ce2bc6b71ea331c219c295074a289d09c808af
kingdee/cst.go
@@ -5,13 +5,14 @@
   "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 = `
@@ -64,10 +65,11 @@
}
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 {
@@ -89,6 +91,7 @@
      logger.Warn("解析请求失败, %s", err.Error())
      return err
   }
   logger.Debug("接收到创建生产任务单请求, 共%d条订单", len(query))
   for _, q := range query {
      ret := Commit2CSTService(q)
@@ -103,7 +106,6 @@
}
func Commit2CSTService(order CSTNsqQuery) (result CSTNsqReply) {
   fmt.Println(order)
   result.Code = -1
   result.FBillNo = order.FBillNo
   result.FNumber = order.FNumber
@@ -127,7 +129,7 @@
      int(order.UseAmount), // 完工入库上限
      int(order.UseAmount), // 完工入库下限
   )
   fmt.Println(joHead)
   //fmt.Println(joHead)
   params := map[string]string{
      "action":  "生产任务单.新增",
      "fuserid": "16394",
@@ -165,7 +167,7 @@
   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
@@ -177,11 +179,12 @@
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)
   }
@@ -189,6 +192,10 @@
   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")