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

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
}