package service import ( "cu-helper/wms/model" "github.com/go-resty/resty/v2" "github.com/mizuki1412/go-core-kit/class/exception" "github.com/tidwall/gjson" "time" ) //获取光衰数据列表 // HighOptLossUnder 在途光衰单 type HighOptLossUnder struct { Count int //所有在途单 UnderCount int //施工中在途单,包含不可处理 ApplyCount int //人工回访在途单 CantCount int //回单不可处理 DurationOverSeven int DurationOverFifteen int Book int } type HighOptLossHistory struct { Count int } // ReqGetHighOptLossUnderList 查询在途光衰单(包含施工中、人工回访、综合调度等全部未归档状态) func ReqGetHighOptLossUnderList() map[string]*HighOptLossUnder { h := model.NewHeader() header := h.GenReqParam() f := model.NewGetHighOptLossUnderList() form := f.GenReqParam() client := resty.New().SetRetryCount(5).SetRetryWaitTime(10 * time.Second) resp, err := client.R(). SetHeaders(header).SetFormData(form).Post("http://132.151.160.87:10010/wms-zj/gshuaiOrderQueryW/getOrderInfo.do") if err != nil { panic(exception.New(err.Error())) } data := gjson.Get(resp.String(), "list").Array() m := make(map[string]*HighOptLossUnder) for _, v := range data { if m[v.Get("DEAL_MAN").String()] == nil { m[v.Get("DEAL_MAN").String()] = &HighOptLossUnder{} } m[v.Get("DEAL_MAN").String()].Count++ if v.Get("STATUS").String() == "施工处理" { m[v.Get("DEAL_MAN").String()].UnderCount++ if v.Get("REPLY_TYPE").String() == "不可处理" { m[v.Get("DEAL_MAN").String()].CantCount++ } duration := v.Get("TIMELONGS").Int() if duration >= 604800 { m[v.Get("DEAL_MAN").String()].DurationOverSeven++ } if duration >= 1296000 { m[v.Get("DEAL_MAN").String()].DurationOverFifteen++ } if v.Get("BOOK_TIME").String() != "" { m[v.Get("DEAL_MAN").String()].Book++ } } if v.Get("STATUS").String() == "人工回访" { m[v.Get("DEAL_MAN").String()].ApplyCount++ } } return m } // ReqGetHighOptLossHistoryList 查询历史光衰单 func ReqGetHighOptLossHistoryList() map[string]*HighOptLossHistory { h := model.NewHeader() header := h.GenReqParam() f := model.NewGetHighOptLossHistoryList() form := f.GenReqParam() client := resty.New().SetRetryCount(5).SetRetryWaitTime(10 * time.Second) resp, err := client.R(). SetHeaders(header).SetFormData(form).Post("http://132.151.160.87:10010/wms-zj/gshuaiOrderQueryW/getOrderInfo.do") if err != nil { panic(exception.New(err.Error())) } data := gjson.Get(resp.String(), "list").Array() m := make(map[string]*HighOptLossHistory) for _, v := range data { if m[v.Get("DEAL_MAN").String()] == nil { m[v.Get("DEAL_MAN").String()] = &HighOptLossHistory{} } m[v.Get("DEAL_MAN").String()].Count++ } return m }