feat: 重写工单统计接口。
This commit is contained in:
parent
bd9277c88f
commit
feee69a4ec
@ -1,13 +1,8 @@
|
||||
package dashboard
|
||||
|
||||
import (
|
||||
"ferry/global/orm"
|
||||
"ferry/models/process"
|
||||
"ferry/models/system"
|
||||
"ferry/pkg/pagination"
|
||||
"ferry/pkg/service"
|
||||
"ferry/tools/app"
|
||||
"fmt"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
@ -18,83 +13,17 @@ import (
|
||||
|
||||
func InitData(c *gin.Context) {
|
||||
var (
|
||||
err error
|
||||
panelGroup struct {
|
||||
UserTotalCount int `json:"user_total_count"`
|
||||
WorkOrderTotalCount int `json:"work_order_total_count"`
|
||||
UpcomingTotalCount int `json:"upcoming_total_count"`
|
||||
MyUpcomingCount int `json:"my_upcoming_count"`
|
||||
}
|
||||
result interface{}
|
||||
processOrderList []process.Info
|
||||
processOrderListMap map[string][]interface{}
|
||||
err error
|
||||
workOrderCount map[string]int // 工单数量统计
|
||||
)
|
||||
|
||||
// 查询用户总数
|
||||
err = orm.Eloquent.Model(&system.SysUser{}).Count(&panelGroup.UserTotalCount).Error
|
||||
workOrderCount, err = service.WorkOrderCount(c)
|
||||
if err != nil {
|
||||
app.Error(c, -1, err, "")
|
||||
return
|
||||
}
|
||||
|
||||
// 查询工单总数
|
||||
err = orm.Eloquent.Model(&process.WorkOrderInfo{}).Count(&panelGroup.WorkOrderTotalCount).Error
|
||||
if err != nil {
|
||||
app.Error(c, -1, err, "")
|
||||
return
|
||||
}
|
||||
|
||||
// 查询待办总数
|
||||
err = orm.Eloquent.Model(&process.WorkOrderInfo{}).
|
||||
Where("is_end = 0").
|
||||
Count(&panelGroup.UpcomingTotalCount).Error
|
||||
if err != nil {
|
||||
app.Error(c, -1, err, "")
|
||||
return
|
||||
}
|
||||
|
||||
// 查询我的待办
|
||||
w := service.WorkOrder{
|
||||
Classify: 1,
|
||||
GinObj: c,
|
||||
}
|
||||
result, err = w.PureWorkOrderList()
|
||||
if err != nil {
|
||||
app.Error(c, -1, err, "")
|
||||
return
|
||||
}
|
||||
panelGroup.MyUpcomingCount = result.(*pagination.Paginator).TotalCount
|
||||
|
||||
// 查询周工单统计
|
||||
statisticsData, err := service.WeeklyStatistics()
|
||||
if err != nil {
|
||||
app.Error(c, -1, err, fmt.Sprintf("查询周工单统计失败,%v", err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
// 查询工单提交排名
|
||||
submitRankingData, err := service.SubmitRanking()
|
||||
if err != nil {
|
||||
app.Error(c, -1, err, fmt.Sprintf("查询工单提交排名失败,%v", err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
// 查询最常用的流程
|
||||
err = orm.Eloquent.Model(&process.Info{}).Order("submit_count desc").Limit(10).Find(&processOrderList).Error
|
||||
if err != nil {
|
||||
app.Error(c, -1, err, fmt.Sprintf("查询最常用的流程失败,%v", err.Error()))
|
||||
return
|
||||
}
|
||||
processOrderListMap = make(map[string][]interface{})
|
||||
for _, v := range processOrderList {
|
||||
processOrderListMap["title"] = append(processOrderListMap["title"], v.Name)
|
||||
processOrderListMap["submit_count"] = append(processOrderListMap["submit_count"], v.SubmitCount)
|
||||
}
|
||||
|
||||
app.OK(c, map[string]interface{}{
|
||||
"panelGroup": panelGroup,
|
||||
"statisticsData": statisticsData,
|
||||
"submitRankingData": submitRankingData,
|
||||
"processOrderList": processOrderListMap,
|
||||
"workOrderCount": workOrderCount,
|
||||
}, "")
|
||||
}
|
||||
|
@ -3,6 +3,9 @@ package service
|
||||
import (
|
||||
"database/sql"
|
||||
"ferry/global/orm"
|
||||
"ferry/pkg/pagination"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
/*
|
||||
@ -140,3 +143,39 @@ func SubmitRanking() (submitRankingData map[string][]interface{}, err error) {
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
// 查询工单数量统计
|
||||
func WorkOrderCount(c *gin.Context) (countList map[string]int, err error) {
|
||||
var (
|
||||
w *WorkOrder
|
||||
result interface{}
|
||||
)
|
||||
countList = make(map[string]int)
|
||||
for _, i := range []int{1, 2, 3, 4} {
|
||||
w = NewWorkOrder(i, c)
|
||||
if i != 1 {
|
||||
result, err = w.PureWorkOrderList()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
} else {
|
||||
w = NewWorkOrder(i, c)
|
||||
result, err = w.WorkOrderList()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
if i == 1 {
|
||||
countList["upcoming"] = result.(*pagination.Paginator).TotalCount
|
||||
} else if i == 2 {
|
||||
countList["my_create"] = result.(*pagination.Paginator).TotalCount
|
||||
} else if i == 3 {
|
||||
countList["related"] = result.(*pagination.Paginator).TotalCount
|
||||
} else if i == 4 {
|
||||
countList["all"] = result.(*pagination.Paginator).TotalCount
|
||||
}
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
@ -29,6 +29,13 @@ type workOrderInfo struct {
|
||||
DataClassify int `json:"data_classify"`
|
||||
}
|
||||
|
||||
func NewWorkOrder(classify int, c *gin.Context) *WorkOrder {
|
||||
return &WorkOrder{
|
||||
Classify: classify,
|
||||
GinObj: c,
|
||||
}
|
||||
}
|
||||
|
||||
func (w *WorkOrder) PureWorkOrderList() (result interface{}, err error) {
|
||||
var (
|
||||
workOrderInfoList []workOrderInfo
|
||||
|
Loading…
x
Reference in New Issue
Block a user