package report import ( "encoding/json" "kingdee-dbapi/cache" "kingdee-dbapi/config" "kingdee-dbapi/kingdee" "kingdee-dbapi/models" "kingdee-dbapi/nsqclient" ) func SendOrder() { var completedOrderNo = make(map[string]struct{}) list := kingdee.SeOrderList() for i := 0; i < len(list); i++ { if cache.Exists(list[i].FBillNo) { list = append(list[:i], list[i+1:]...) } else { completedOrderNo[list[i].FBillNo] = struct{}{} } } b, _ := json.Marshal(list) ok := nsqclient.HttpPost(config.Options.OrderTopic, b) if ok { // 写入数据库, 标记已经上报过了,避免重复上报 for orderNo, _ := range completedOrderNo { cursor := models.Order{ OrderNo: orderNo, } cursor.Insert() cache.WriteCache(orderNo) } } // 逐条发送 //for idx, _ := range list { // // 已经推送过的订单 // if cache.Exists(list[idx].FBillNo) { // continue // } // // b, _ := json.Marshal(list[idx]) // // ok := nsqclient.HttpPost(config.Options.OrderTopic, b) // if ok { // completedOrderNo[list[idx].FBillNo] = struct{}{} // } //} } func SendInventory() { list := kingdee.ICInventory() // 每次发 300 条 for i := 0; i < len(list); i += 300 { end := i + 300 if end > len(list) { end = len(list) } b, _ := json.Marshal(list[i:end]) nsqclient.HttpPost(config.Options.InventoryTopic, b) } }