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)
|
}
|
}
|