作者 yangfu

feat: 统计服务重定向

@@ -155,5 +155,6 @@ func NewHttpLibByteBankServiceGateway(host string) *HttpLibByteBankServiceGatewa @@ -155,5 +155,6 @@ func NewHttpLibByteBankServiceGateway(host string) *HttpLibByteBankServiceGatewa
155 gt.ReadWriteTimeout = 10 * time.Second 155 gt.ReadWriteTimeout = 10 * time.Second
156 return &HttpLibByteBankServiceGateway{ 156 return &HttpLibByteBankServiceGateway{
157 BaseServiceGateway: gt, 157 BaseServiceGateway: gt,
  158 + baseURL: host,
158 } 159 }
159 } 160 }
@@ -2,9 +2,12 @@ package domainService @@ -2,9 +2,12 @@ package domainService
2 2
3 import ( 3 import (
4 "github.com/linmadan/egglib-go/core/application" 4 "github.com/linmadan/egglib-go/core/application"
  5 + pG "github.com/linmadan/egglib-go/transaction/pg"
5 "github.com/tidwall/gjson" 6 "github.com/tidwall/gjson"
6 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/constant" 7 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/constant"
7 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/infrastructure/allied-lib/gateway/byte_bank" 8 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/infrastructure/allied-lib/gateway/byte_bank"
  9 + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/infrastructure/pg"
  10 + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/log"
8 ) 11 )
9 12
10 type ByteBankService struct { 13 type ByteBankService struct {
@@ -41,15 +44,16 @@ listLoop: @@ -41,15 +44,16 @@ listLoop:
41 return formulaId 44 return formulaId
42 } 45 }
43 46
44 -// SectionProductive 时段产能  
45 -func (svr *ByteBankService) SectionProductive() (interface{}, error) { 47 +// DeviceOperationEfficiency 设备运行效率
  48 +func (svr *ByteBankService) DeviceOperationEfficiency() (interface{}, error) {
46 //获取公式id时段产能 49 //获取公式id时段产能
47 - formulaId := svr.GetFormulasId("type_salesman_id") 50 + formulaId := svr.GetFormulasId("设备运行效率")
48 //获取解析数据 51 //获取解析数据
49 byteResult, err := svr.internalService.AnalysisFormulaByte(formulaId) 52 byteResult, err := svr.internalService.AnalysisFormulaByte(formulaId)
50 if err != nil { 53 if err != nil {
51 return struct{}{}, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 54 return struct{}{}, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
52 } 55 }
  56 + log.Logger.Debug("获取设备运行效率:" + string(byteResult))
53 code := gjson.GetBytes(byteResult, "code").String() 57 code := gjson.GetBytes(byteResult, "code").String()
54 if code != "0" { 58 if code != "0" {
55 msg := gjson.GetBytes(byteResult, "msg").String() 59 msg := gjson.GetBytes(byteResult, "msg").String()
@@ -57,10 +61,66 @@ func (svr *ByteBankService) SectionProductive() (interface{}, error) { @@ -57,10 +61,66 @@ func (svr *ByteBankService) SectionProductive() (interface{}, error) {
57 } 61 }
58 //待解析的 62 //待解析的
59 queryResult := gjson.GetBytes(byteResult, "data.queryResult").Array() 63 queryResult := gjson.GetBytes(byteResult, "data.queryResult").Array()
  64 +
  65 + /*
  66 + 1.生产设备
  67 + 2.设备本月运行数据
  68 + */
  69 + transactionContext := pG.NewPGTransactionContext(pg.DB)
  70 + if err := transactionContext.StartTransaction(); err != nil {
  71 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  72 + }
  73 + defer func() {
  74 + transactionContext.RollbackTransaction()
  75 + }()
  76 + //deviceRepository, _ := repository.NewDeviceRepository(transactionContext)
  77 + //_, devices, err := deviceRepository.Find(map[string]interface{}{
  78 + // "companyId": constant.MANUFACTURE_DEFAULT_COMPANYID,
  79 + // "orgId": constant.MANUFACTURE_DEFAULT_ORGID,
  80 + // "workshopId": constant.MANUFACTURE_DEFAULT_WORKSHOPID,
  81 + // "orderBy": "device_name asc"})
  82 + //if err != nil {
  83 + // return nil, err
  84 + //}
  85 + //var response = make([]interface{}, 0)
  86 + //for _, d := range devices {
  87 + // var deviceSn string
  88 + // var productCount, runningTime int64
  89 + // for _, item := range queryResult {
  90 + // deviceSn = item.Get("device_sn").String()
  91 + // if deviceSn == d.DeviceCode {
  92 + // productCount = item.Get("product_count").Int()
  93 + // runningTime = item.Get("timing").Int()
  94 + // break
  95 + // }
  96 + // }
  97 + // response = append(response, map[string]interface{}{
  98 + // "deviceName": d.DeviceName,
  99 + // "deviceType": d.DeviceType,
  100 + // "productCount": productCount,
  101 + // "timing": runningTime,
  102 + // })
  103 + //}
  104 +
  105 + var response = make([]interface{}, 0)
  106 + var deviceSn string
  107 + var productCount, runningTime int64
60 for _, item := range queryResult { 108 for _, item := range queryResult {
61 - if item.Get("type_salesman_id").String() != "" {  
62 - continue 109 + deviceSn = item.Get("device_sn").String()
  110 + if deviceSn != "" {
  111 + productCount = item.Get("product_count").Int()
  112 + runningTime = item.Get("timing").Int()
  113 + response = append(response, map[string]interface{}{
  114 + "device_sn": deviceSn,
  115 + "device_type": item.Get("device_type").String(),
  116 + "product_count": productCount,
  117 + "timing": runningTime,
  118 + })
63 } 119 }
64 } 120 }
65 - return nil, nil 121 +
  122 + if err := transactionContext.CommitTransaction(); err != nil {
  123 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  124 + }
  125 + return map[string]interface{}{"devices": response}, nil
66 } 126 }
@@ -27,6 +27,9 @@ const ( @@ -27,6 +27,9 @@ const (
27 DeviceRunningStatistics = "DeviceRunningStatistics" 27 DeviceRunningStatistics = "DeviceRunningStatistics"
28 // 设备运行信息 28 // 设备运行信息
29 DeviceRunningInfo = "DeviceRunningInfo" 29 DeviceRunningInfo = "DeviceRunningInfo"
  30 +
  31 + // DeviceOperationEfficiency 字库-设备运行效率
  32 + DeviceOperationEfficiency = "device-operation-efficiency"
30 ) 33 )
31 34
32 const ( 35 const (
@@ -62,6 +65,11 @@ func (ptr *PGCommonStatisticsService) CommonStatistics(actionType string, queryO @@ -62,6 +65,11 @@ func (ptr *PGCommonStatisticsService) CommonStatistics(actionType string, queryO
62 case DeviceRunningInfo: 65 case DeviceRunningInfo:
63 result, err = ptr.DeviceRunningInfo(queryOptions) 66 result, err = ptr.DeviceRunningInfo(queryOptions)
64 break 67 break
  68 +
  69 + case DeviceOperationEfficiency:
  70 + svr := NewByteBankService()
  71 + result, err = svr.DeviceOperationEfficiency()
  72 + break
65 } 73 }
66 return result, err 74 return result, err
67 } 75 }
@@ -11,6 +11,7 @@ import ( @@ -11,6 +11,7 @@ import (
11 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/application/statistics/service" 11 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/application/statistics/service"
12 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/constant" 12 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/constant"
13 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/domain" 13 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/domain"
  14 + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/infrastructure/domainService"
14 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/log" 15 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-manufacture/pkg/log"
15 "net/http" 16 "net/http"
16 "strconv" 17 "strconv"
@@ -49,6 +50,24 @@ func (controller *StatisticsController) CommonStatisticsHandler(actionType strin @@ -49,6 +50,24 @@ func (controller *StatisticsController) CommonStatisticsHandler(actionType strin
49 } 50 }
50 } 51 }
51 52
  53 +func (controller *StatisticsController) InternalRedirectHandler() func(ctx *context.Context) {
  54 + return func(ctx *context.Context) {
  55 + attendanceService := service.NewCommonStatisticsService(nil)
  56 + cmd := &query.CommonStatisticsQuery{}
  57 + options := make(map[string]interface{})
  58 + Unmarshal(ctx, &options)
  59 +
  60 + actionType := ctx.Input.Query(":actionType")
  61 + operateInfo := ContextParseOperateInfo(ctx)
  62 + options["companyId"] = operateInfo.CompanyId
  63 + options["orgId"] = operateInfo.OrgId
  64 + cmd.Action = actionType
  65 + cmd.QueryOptions = options
  66 + data, err := attendanceService.CommonStatisticsService(cmd)
  67 + Response(ctx, data, err)
  68 + }
  69 +}
  70 +
52 func (controller *StatisticsController) TaskHandler() func(ctx *context.Context) { 71 func (controller *StatisticsController) TaskHandler() func(ctx *context.Context) {
53 return func(ctx *context.Context) { 72 return func(ctx *context.Context) {
54 task := ctx.Input.Query(":taskId") 73 task := ctx.Input.Query(":taskId")
@@ -91,6 +110,15 @@ func (controller *StatisticsController) TaskHandler() func(ctx *context.Context) @@ -91,6 +110,15 @@ func (controller *StatisticsController) TaskHandler() func(ctx *context.Context)
91 } 110 }
92 crontab.SyncProduct(bc) 111 crontab.SyncProduct(bc)
93 break 112 break
  113 + case "9":
  114 + svr := domainService.NewByteBankService()
  115 + response, err := svr.DeviceOperationEfficiency()
  116 + if err != nil {
  117 + Response(ctx, nil, err)
  118 + return
  119 + }
  120 + Response(ctx, response, nil)
  121 + break
94 } 122 }
95 Response(ctx, nil, nil) 123 Response(ctx, nil, nil)
96 } 124 }
@@ -15,4 +15,6 @@ func init() { @@ -15,4 +15,6 @@ func init() {
15 web.Post("/statistics/device-production-efficiency-statistics", c.CommonStatisticsHandler("DeviceProductionEfficiencyStatistics")) 15 web.Post("/statistics/device-production-efficiency-statistics", c.CommonStatisticsHandler("DeviceProductionEfficiencyStatistics"))
16 web.Post("/statistics/device-running-statistics", c.CommonStatisticsHandler("DeviceRunningStatistics")) 16 web.Post("/statistics/device-running-statistics", c.CommonStatisticsHandler("DeviceRunningStatistics"))
17 web.Post("/statistics/device-running-info", c.CommonStatisticsHandler("DeviceRunningInfo")) 17 web.Post("/statistics/device-running-info", c.CommonStatisticsHandler("DeviceRunningInfo"))
  18 +
  19 + web.Post("/statistics/internal/:actionType", c.InternalRedirectHandler())
18 } 20 }