From 1873461012c99801f364bd07fae2c218d245048e Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期一, 11 九月 2023 19:42:39 +0800
Subject: [PATCH] 修复bom第一启动时的全量上报

---
 kingdee/cst.go |   43 +++++++++++++++++++++++++++++++------------
 1 files changed, 31 insertions(+), 12 deletions(-)

diff --git a/kingdee/cst.go b/kingdee/cst.go
index 076286a..17621bb 100644
--- a/kingdee/cst.go
+++ b/kingdee/cst.go
@@ -1,17 +1,22 @@
 package kingdee
 
+/*
+璇锋眰鍐欏叆鐢熶骇浠诲姟鍗曠殑鎺ュ彛
+鎺ユ敹aps鐨勮姹�, 璋冪敤鏈湴鐨勭敓浜т换鍔″崟鏈嶅姟, 骞跺搷搴旂粨鏋�
+*/
 import (
 	"bytes"
 	"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,9 +69,11 @@
 }
 
 type CSTNsqReply struct {
-	FBillNo string `json:"fBillNo"` // 璁㈠崟缂栧彿
-	Code    int    `json:"code"`    // CST鎺ュ彛杩斿洖鐨刢ode
-	Message string `json:"message"` // 鎴愬姛鍒欒繑鍥炲崟鍙�, 澶辫触杩斿洖
+	FBillNo string `json:"FBillNo"` // 璁㈠崟缂栧彿
+	FNumber string `json:"FNumber"` // 鐗╂枡浠g爜
+	ICMONo  string `json:"ICMONo"`  // 閲戣澏绯荤粺鐨勭敓浜т换鍔″崟缂栧彿
+	Code    int    `json:"code"`    // CST鎺ュ彛杩斿洖鐨刢ode, 鎴愬姛200
+	Message string `json:"message"` // 澶辫触鐨勯敊璇俊鎭�
 }
 
 type CSTServiceResponse struct {
@@ -88,6 +95,7 @@
 		logger.Warn("瑙f瀽璇锋眰澶辫触, %s", err.Error())
 		return err
 	}
+	logger.Debug("鎺ユ敹鍒板垱寤虹敓浜т换鍔″崟璇锋眰, 鍏�%d鏉¤鍗�", len(query))
 
 	for _, q := range query {
 		ret := Commit2CSTService(q)
@@ -102,8 +110,14 @@
 }
 
 func Commit2CSTService(order CSTNsqQuery) (result CSTNsqReply) {
-	fmt.Println(order)
 	result.Code = -1
+	result.FBillNo = order.FBillNo
+	result.FNumber = order.FNumber
+
+	if result.FBillNo == "" || result.FNumber == "" {
+		result.Message = "璁㈠崟缂栧彿鎴栫墿鏂欑紪鍙蜂笉鑳戒负绌�"
+		return
+	}
 
 	today := time.Now().Format("2006-01-02")
 	joHead := fmt.Sprintf(JoHeadTemplate,
@@ -119,7 +133,7 @@
 		int(order.UseAmount), // 瀹屽伐鍏ュ簱涓婇檺
 		int(order.UseAmount), // 瀹屽伐鍏ュ簱涓嬮檺
 	)
-	fmt.Println(joHead)
+	//fmt.Println(joHead)
 	params := map[string]string{
 		"action":  "鐢熶骇浠诲姟鍗�.鏂板",
 		"fuserid": "16394",
@@ -156,8 +170,8 @@
 	}
 
 	if rspMsg.ErrCode == 0 {
-		result.Code = 0
-		result.Message = rspMsg.Data.FBillNo
+		result.Code = 200
+		result.ICMONo = rspMsg.Data.FBillNo
 	} else {
 		result.Code = rspMsg.ErrCode
 		result.Message = rspMsg.ErrMsg
@@ -169,11 +183,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)
 	}
@@ -181,6 +196,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")

--
Gitblit v1.8.0