|
|
@@ -0,0 +1,111 @@
|
|
|
+package service
|
|
|
+
|
|
|
+import (
|
|
|
+ "context"
|
|
|
+ "dashoo.cn/micro/app/dao/work"
|
|
|
+ "dashoo.cn/micro/app/model/sys_report"
|
|
|
+ "dashoo.cn/micro/app/service"
|
|
|
+ "database/sql"
|
|
|
+ "github.com/gogf/gf/errors/gerror"
|
|
|
+ "github.com/gogf/gf/os/glog"
|
|
|
+)
|
|
|
+
|
|
|
+type WorkOrderService struct {
|
|
|
+ Dao *work.WorkOrderDao
|
|
|
+ *service.ContextService
|
|
|
+}
|
|
|
+
|
|
|
+func NewWorkOrderService(ctx context.Context) (svc *WorkOrderService, err error) {
|
|
|
+ svc = new(WorkOrderService)
|
|
|
+ if svc.ContextService, err = svc.Init(ctx); err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ svc.Dao = work.NewWorkOrderDao(svc.Tenant)
|
|
|
+ return svc, nil
|
|
|
+}
|
|
|
+
|
|
|
+// GetSaleWorkOrderReportList 查询销售工单统计
|
|
|
+func (s WorkOrderService) GetSaleWorkOrderReportList(month string) (list []*sys_report.WorkerOrderRtn, err error) {
|
|
|
+ db := s.Dao
|
|
|
+ if month != "" {
|
|
|
+ month = month[0:7]
|
|
|
+ err = db.Fields(s.Dao.C.SaleId, s.Dao.C.SaleName, s.Dao.C.OrderTypeId, s.Dao.C.OrderTypeName, "COUNT(order_type_id) AS OrderTypeNum").WhereLike(s.Dao.C.CreatedTime, "%"+month+"%").Group(s.Dao.C.SaleId, s.Dao.C.OrderTypeId).Scan(&list)
|
|
|
+
|
|
|
+ }
|
|
|
+ if month == "" {
|
|
|
+ err = db.Fields(s.Dao.C.SaleId, s.Dao.C.SaleName, s.Dao.C.OrderTypeId, s.Dao.C.OrderTypeName, "COUNT(order_type_id) AS OrderTypeNum").Group(s.Dao.C.SaleId, s.Dao.C.OrderTypeId).Scan(&list)
|
|
|
+ }
|
|
|
+
|
|
|
+ if err != nil && err != sql.ErrNoRows {
|
|
|
+ glog.Error("查询销售报表发生错误!")
|
|
|
+ return nil, gerror.New("查询销售报表发生错误!")
|
|
|
+ }
|
|
|
+
|
|
|
+ return list, nil
|
|
|
+}
|
|
|
+
|
|
|
+// GetSaleWorkOrderReportList 查询产品线工单统计
|
|
|
+func (s WorkOrderService) GetProductWorkOrderReportList(month string) (list []*sys_report.WorkerOrderRtn, err error) {
|
|
|
+ db := s.Dao
|
|
|
+ if month != "" {
|
|
|
+ month = month[0:7]
|
|
|
+ err = db.Fields(s.Dao.C.ProductLine, s.Dao.C.OrderTypeId, s.Dao.C.OrderTypeName, "COUNT(order_type_id) AS OrderTypeNum").WhereLike(s.Dao.C.CreatedTime, "%"+month+"%").Group(s.Dao.C.ProductLine, s.Dao.C.OrderTypeId).Scan(&list)
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ if month == "" {
|
|
|
+ err = db.Fields(s.Dao.C.ProductLine, s.Dao.C.OrderTypeId, s.Dao.C.OrderTypeName, "COUNT(order_type_id) AS OrderTypeNum").Group(s.Dao.C.ProductLine, s.Dao.C.OrderTypeId).Scan(&list)
|
|
|
+ }
|
|
|
+
|
|
|
+ if err != nil && err != sql.ErrNoRows {
|
|
|
+ glog.Error("查询销售报表发生错误!")
|
|
|
+ return nil, gerror.New("查询销售报表发生错误!")
|
|
|
+ }
|
|
|
+ //
|
|
|
+ res, err := service.GetDictDataByType(s.Ctx, "sys_product_line")
|
|
|
+ glog.Info("res的结果是:", res)
|
|
|
+ if err != nil {
|
|
|
+ glog.Error("字典查询调用失败")
|
|
|
+ return list, nil
|
|
|
+ }
|
|
|
+ var keyList []string
|
|
|
+ for k, _ := range res {
|
|
|
+ keyList = append(keyList, k)
|
|
|
+ }
|
|
|
+ for i := 0; i < len(list); i++ {
|
|
|
+ productLine := list[i].ProductLine
|
|
|
+ num, _ := service.FindItem(keyList, productLine)
|
|
|
+ if num != -1 {
|
|
|
+ list[i].ProductLineName = res[productLine]
|
|
|
+ }
|
|
|
+ if num == -1 {
|
|
|
+ list[i].ProductLineName = ""
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return list, nil
|
|
|
+}
|
|
|
+
|
|
|
+// GetSaleWorkOrderReportList 查询支持人员工单统计
|
|
|
+func (s WorkOrderService) GetSupportWorkOrderReportList(month string) (list []*sys_report.WorkerOrderRtn, err error) {
|
|
|
+ db := s.Dao
|
|
|
+ if month != "" {
|
|
|
+ month = month[0:7]
|
|
|
+ err = db.Fields(s.Dao.C.AssignUserId, s.Dao.C.AssignUserName, s.Dao.C.OrderTypeId, s.Dao.C.OrderTypeName, "COUNT(order_type_id) AS OrderTypeNum").WhereLike(s.Dao.C.CreatedTime, "%"+month+"%").Group(s.Dao.C.AssignUserId, s.Dao.C.OrderTypeId).Scan(&list)
|
|
|
+
|
|
|
+ }
|
|
|
+ if month == "" {
|
|
|
+ err = db.Fields(s.Dao.C.AssignUserId, s.Dao.C.AssignUserName, s.Dao.C.OrderTypeId, s.Dao.C.OrderTypeName, "COUNT(order_type_id) AS OrderTypeNum").Group(s.Dao.C.AssignUserId, s.Dao.C.OrderTypeId).Scan(&list)
|
|
|
+ }
|
|
|
+
|
|
|
+ if err != nil && err != sql.ErrNoRows {
|
|
|
+ glog.Error("查询销售报表发生错误!")
|
|
|
+ return nil, gerror.New("查询销售报表发生错误!")
|
|
|
+ }
|
|
|
+
|
|
|
+ return list, nil
|
|
|
+}
|
|
|
+
|
|
|
+// GetSaleWorkLoadReportList 查询工作量统计
|
|
|
+//func (s WorkOrderService) GetSupportWorkOrderReportList(month string) (list []*sys_report.WorkerOrderRtn, err error) {
|
|
|
+//
|
|
|
+//}
|