You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
2.8 KiB
Go
92 lines
2.8 KiB
Go
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
|
|
}
|