feat: 工单提交排名统计接口开发。

This commit is contained in:
Mr. Lan 2021-03-12 00:15:01 +08:00
parent feee69a4ec
commit eb07c152a3
2 changed files with 56 additions and 6 deletions

View File

@ -13,17 +13,32 @@ import (
func InitData(c *gin.Context) {
var (
err error
workOrderCount map[string]int // 工单数量统计
err error
count map[string]int // 工单数量统计
ranks []service.Ranks
)
workOrderCount, err = service.WorkOrderCount(c)
statistics := service.Statistics{
StartTime: "",
EndTime: "",
}
// 查询工单类型数据统计
count, err = statistics.WorkOrderCount(c)
if err != nil {
app.Error(c, -1, err, "")
app.Error(c, -1, err, "查询工单类型数据统计失败")
return
}
// 查询工单数据排名
ranks, err = statistics.WorkOrderRanks()
if err != nil {
app.Error(c, -1, err, "查询提交工单排名数据失败")
return
}
app.OK(c, map[string]interface{}{
"workOrderCount": workOrderCount,
"count": count,
"ranks": ranks,
}, "")
}

View File

@ -3,6 +3,7 @@ package service
import (
"database/sql"
"ferry/global/orm"
"ferry/models/process"
"ferry/pkg/pagination"
"github.com/gin-gonic/gin"
@ -12,6 +13,23 @@ import (
@Author : lanyulei
*/
type Ranks struct {
Name string `json:"name"`
Total int `json:"total"`
}
type Statistics struct {
StartTime string `json:"start_time"`
EndTime string `json:"end_time"`
}
func NewStatistics(startTime string, endTime string) *Statistics {
return &Statistics{
StartTime: startTime,
EndTime: endTime,
}
}
// 查询周统计数据
func WeeklyStatistics() (statisticsData map[string][]interface{}, err error) {
var (
@ -145,7 +163,7 @@ func SubmitRanking() (submitRankingData map[string][]interface{}, err error) {
}
// 查询工单数量统计
func WorkOrderCount(c *gin.Context) (countList map[string]int, err error) {
func (s *Statistics) WorkOrderCount(c *gin.Context) (countList map[string]int, err error) {
var (
w *WorkOrder
result interface{}
@ -179,3 +197,20 @@ func WorkOrderCount(c *gin.Context) (countList map[string]int, err error) {
return
}
// 查询指定范围内的提交工单折线图统计
// 查询指定范围内的提交工单排名数据
func (s *Statistics) WorkOrderRanks() (ranks []Ranks, err error) {
ranks = make([]Ranks, 0)
err = orm.Eloquent.Model(&process.WorkOrderInfo{}).
Joins("left join p_process_info on p_process_info.id = p_work_order_info.process").
Select("p_process_info.name as name, count(p_work_order_info.id) as total").
Group("p_work_order_info.process").
Order("total desc").
Limit(10).
Scan(&ranks).Error
return
}