Commit ba90d0ba by 孙龙
parents bea328e7 9191b5ed
Showing with 103 additions and 10 deletions
...@@ -7,7 +7,10 @@ import ( ...@@ -7,7 +7,10 @@ import (
"github.com/ichunt2019/cfg/lib" "github.com/ichunt2019/cfg/lib"
"github.com/tidwall/gjson" "github.com/tidwall/gjson"
"golang-asynctask/app/dao/scm_data_dao" "golang-asynctask/app/dao/scm_data_dao"
"io/ioutil"
"net/http"
"runtime" "runtime"
"strconv"
"sync" "sync"
"time" "time"
) )
...@@ -15,6 +18,8 @@ import ( ...@@ -15,6 +18,8 @@ import (
var ( var (
wg sync.WaitGroup wg sync.WaitGroup
currentDate string currentDate string
timeStart time.Time
currentUnix int64
) )
func init(){ func init(){
...@@ -39,7 +44,12 @@ func main() { ...@@ -39,7 +44,12 @@ func main() {
runtime.GOMAXPROCS(2) runtime.GOMAXPROCS(2)
currentDate = time.Now().Format("2006-01-02") currentDate = time.Now().Format("2006-01-02")
currentDate := "20210506" //currentDate := "2021-05-06"
//请求数据
currentUnix = time.Now().Unix()
timeLocal,_ := time.LoadLocation("Local")
timeStart,_ = time.ParseInLocation("2006-01-02",currentDate,timeLocal)
//获取当前时间 //获取当前时间
fmt.Println(currentDate) fmt.Println(currentDate)
...@@ -47,19 +57,19 @@ func main() { ...@@ -47,19 +57,19 @@ func main() {
wg.Add(2) wg.Add(2)
//指统计指定日期前20条物料记录 //指统计指定日期前20条物料记录
go getMaterialstatistic() go GetMaterialstatistic()
//返回历史物数量以及当日物料统计数量 //返回历史物数量以及当日物料统计数量
go getTotalStatistic() go GetTotalStatistic()
wg.Wait() wg.Wait()
} }
func getTotalStatistic() { func GetTotalStatistic() {
defer wg.Done() defer wg.Done()
jsonStr := requestTableInfo("totalStatistic") jsonStr := RequestTableInfo("totalStatistic")
//{"data": [{"materialQty": 0, "materialCount": 0, "materialTotalQty": 966724502}], "returnCode": "0000", "returnMsg": "\u6210\u529f"} //{"data": [{"materialQty": 0, "materialCount": 0, "materialTotalQty": 966724502}], "returnCode": "0000", "returnMsg": "\u6210\u529f"}
if gjson.Get(jsonStr,"returnCode").String() != "0000" || gjson.Get(jsonStr, "data").String() == "[]" { if gjson.Get(jsonStr,"returnCode").String() != "0000" || gjson.Get(jsonStr, "data").String() == "[]" {
...@@ -69,6 +79,8 @@ func getTotalStatistic() { ...@@ -69,6 +79,8 @@ func getTotalStatistic() {
sqlDb := scm_data_dao.GetDashboardDb() sqlDb := scm_data_dao.GetDashboardDb()
currentSearch :=TopSearch()
for _, res := range gjson.Get(jsonStr, "data").Array() { for _, res := range gjson.Get(jsonStr, "data").Array() {
erpKey := make(map[string]interface{}) erpKey := make(map[string]interface{})
...@@ -78,9 +90,12 @@ func getTotalStatistic() { ...@@ -78,9 +90,12 @@ func getTotalStatistic() {
return true return true
}) })
//获取当前日元器件型号搜索量
//添加数据 //添加数据
_, err := sqlDb.Exec("insert into lie_btv_daily_order_transaction (datetime,daily_ic_num,daily_ic_sn_num,history_ic_search_xinum)" + _, err := sqlDb.Exec("insert into lie_btv_daily_order_transaction (datetime,daily_ic_num,daily_ic_sn_num,history_ic_search_xinum,current_sku_sum,daily_ic_search_num,daily_ic_search_xinum)" +
"value(?,?,?,?)",currentDate,erpKey["materialQty"],erpKey["materialCount"],erpKey["materialTotalQty"]) "value(?,?,?,?,?,?,?)",currentDate,erpKey["materialQty"],erpKey["materialCount"],erpKey["materialTotalQty"],GetCurrentSku(),currentSearch,currentSearch)
if err != nil { if err != nil {
fmt.Println("getTotalStatistic_sql_"+err.Error()) fmt.Println("getTotalStatistic_sql_"+err.Error())
...@@ -89,11 +104,11 @@ func getTotalStatistic() { ...@@ -89,11 +104,11 @@ func getTotalStatistic() {
} }
func getMaterialstatistic() { func GetMaterialstatistic() {
defer wg.Done() defer wg.Done()
jsonStr := requestTableInfo("topStatistic") jsonStr := RequestTableInfo("topStatistic")
//{"data": [], "returnCode": "0000", "returnMsg": "\u6210\u529f"} //{"data": [], "returnCode": "0000", "returnMsg": "\u6210\u529f"}
if gjson.Get(jsonStr,"returnCode").String() != "0000" || gjson.Get(jsonStr, "data").String() == "[]" { if gjson.Get(jsonStr,"returnCode").String() != "0000" || gjson.Get(jsonStr, "data").String() == "[]" {
...@@ -122,9 +137,59 @@ func getMaterialstatistic() { ...@@ -122,9 +137,59 @@ func getMaterialstatistic() {
} }
//获取搜索数据 request example http://so12.ichunt.com/search/SearchLog/aggs?start_time=1621785600&end_time=1621871999&limit=2
// start_time 开始时间戳
// end_time 结束时间戳
// limit 显示前几条
func TopSearch()int64 {
//获取前两百条数据
requestUrl := "http://so12.ichunt.com/search/SearchLog/aggs?start_time="+strconv.FormatInt(timeStart.Unix(),10)+"&end_time="+strconv.FormatInt(currentUnix,10)+"&limit=200"
//requestUrl = "http://so12.ichunt.com/search/SearchLog/aggs?start_time=1621785600&end_time=1621871999&limit=200"
jsonStr := RequestUrl(requestUrl)
//{"error_code":0,"error_msg":"","data":[{"goods_name":"1N5408","count":20},{"goods_name":"OPA356AQDBVRQ1","count":19}]}
if gjson.Get(jsonStr,"error_code").String() != "0"{
fmt.Println("获取搜索数据失败",jsonStr)
return 0
}
insertDataNum := 20
var allNum int64
sqlDb := scm_data_dao.GetDashboardDb()
for _, res := range gjson.Get(jsonStr, "data").Array() {
erpKey := make(map[string]interface{})
res.ForEach(func(key, value gjson.Result) bool {
erpKey[key.String()] = value.String()
if key.String() == "count" {
allNum +=value.Int()
}
return true
})
if insertDataNum > 0{
//添加数据
_, err := sqlDb.Exec("insert into lie_btv_daily_top_search (datetime,sn,search_num)" +
"value(?,?,?)",currentDate,erpKey["goods_name"],erpKey["count"])
if err != nil {
fmt.Println(err)
}
}
insertDataNum--
}
return allNum
}
//获取表信息,返回byte //获取表信息,返回byte
//request example //http://119.23.228.186:50005/ getCustomsDockingData {"tableName":"SYS_OPERATE_LOG","bizDate":"2021-05-07"} //request example //http://119.23.228.186:50005/ getCustomsDockingData {"tableName":"SYS_OPERATE_LOG","bizDate":"2021-05-07"}
func requestTableInfo(requestType string)string { func RequestTableInfo(requestType string)string {
type Sub struct { type Sub struct {
...@@ -144,3 +209,30 @@ func requestTableInfo(requestType string)string { ...@@ -144,3 +209,30 @@ func requestTableInfo(requestType string)string {
//json字符串 //json字符串
return result return result
} }
func GetCurrentSku()string {
requestStr :="http://soso12.ichunt.com/search/Es/searchSku?create_time/range="+strconv.FormatInt(timeStart.Unix(),10)+","+strconv.FormatInt(currentUnix,10)+"&goods_status/condition=1"
requestResult := RequestUrl(requestStr)
return gjson.Get(requestResult,"data.total").String()
}
func RequestUrl(url string)string {
//获取sku数量 http://soso12.ichunt.com/search/Es/searchSku?create_time/range=1620379867,1621489319&goods_status/condition=1
///{"error_code":0,"error_msg":"","data":{"total":"1765","scroll_id":null,"goods_id":[]}}
//获取当日搜索前二十
res, err :=http.Get(url)
if err != nil {
return ""
}
robots, err := ioutil.ReadAll(res.Body)
res.Body.Close()
if err != nil {
return ""
}
return string(robots)
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment