work_order.go 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. package model
  2. import (
  3. "kpt-pasture/http/util"
  4. "strconv"
  5. "strings"
  6. pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
  7. )
  8. type WorkOrder struct {
  9. Id int64 `json:"id"`
  10. Name string `json:"name"`
  11. CategoryId pasturePb.WorkOrderCategory_Kind `json:"categoryId"`
  12. CategoryName string `json:"categoryName"`
  13. Priority pasturePb.Priority_Kind `json:"priority"`
  14. Frequency pasturePb.WorkOrderFrequency_Kind `json:"frequency"`
  15. ExecTime string `json:"execTime"`
  16. SubscribeUnit pasturePb.WorkOrderSubscribeUnit_Kind `json:"subscribeUnit"`
  17. ExecPersons string `json:"execPersons"`
  18. ExecPersonNames string `json:"execPersonsNames"`
  19. ExecDepartmental string `json:"execDepartmental"`
  20. ExecDepartmentalNames string `json:"execDepartmentalNames"`
  21. IsShow pasturePb.IsShow_Kind `json:"isShow"`
  22. Photos string `json:"photos"`
  23. Remarks string `json:"remarks"`
  24. OperationId int64 `json:"operationId"`
  25. OperationName string `json:"operationName"`
  26. CreatedAt int64 `json:"createdAt"`
  27. UpdatedAt int64 `json:"updatedAt"`
  28. }
  29. func (w *WorkOrder) TableName() string {
  30. return "work_order"
  31. }
  32. func NewWorkOrder(
  33. req *pasturePb.WorkOrderList,
  34. curUser *SystemUser,
  35. systemUserList []*SystemUser,
  36. deptList []*SystemDept,
  37. workOrderCategoryMap map[pasturePb.WorkOrderCategory_Kind]string,
  38. ) *WorkOrder {
  39. execPersonNames := make([]string, 0)
  40. execDeptNames := make([]string, 0)
  41. if len(req.ExecPersons) > 0 {
  42. for _, v := range req.ExecPersons {
  43. for _, vv := range systemUserList {
  44. if int32(vv.Id) != v {
  45. continue
  46. }
  47. execPersonNames = append(execPersonNames, vv.Name)
  48. }
  49. }
  50. }
  51. for _, d := range deptList {
  52. for _, dd := range req.ExecDepartmental {
  53. if int32(d.Id) != dd {
  54. continue
  55. }
  56. execDeptNames = append(execDeptNames, d.Name)
  57. }
  58. }
  59. return &WorkOrder{
  60. Name: req.Name,
  61. CategoryId: req.CategoryId,
  62. CategoryName: workOrderCategoryMap[req.CategoryId],
  63. Priority: req.Priority,
  64. ExecTime: req.ExecTime,
  65. SubscribeUnit: req.SubscribeUnit,
  66. ExecPersons: util.Int32SliceToString(req.ExecPersons, ","),
  67. ExecPersonNames: strings.Join(execPersonNames, ","),
  68. ExecDepartmental: util.Int32SliceToString(req.ExecDepartmental, ","),
  69. ExecDepartmentalNames: strings.Join(execDeptNames, ","),
  70. IsShow: req.IsShow,
  71. Photos: strings.Join(req.Photos, ","),
  72. Frequency: req.Frequency,
  73. Remarks: req.Remarks,
  74. OperationId: curUser.Id,
  75. OperationName: curUser.Name,
  76. }
  77. }
  78. type WorkOrderSlice []*WorkOrder
  79. func (w WorkOrderSlice) ToPB(
  80. priorityMap map[pasturePb.Priority_Kind]string,
  81. frequencyMap map[pasturePb.WorkOrderFrequency_Kind]string,
  82. subscribeUnitMap map[pasturePb.WorkOrderSubscribeUnit_Kind]string,
  83. ) []*pasturePb.WorkOrderList {
  84. res := make([]*pasturePb.WorkOrderList, len(w))
  85. for i, v := range w {
  86. execPersons, execDepartmental := make([]int32, 0), make([]int32, 0)
  87. if len(v.ExecPersons) > 0 {
  88. for _, personId := range strings.Split(v.ExecPersons, ",") {
  89. p, _ := strconv.Atoi(personId)
  90. execPersons = append(execPersons, int32(p))
  91. }
  92. }
  93. if len(v.ExecDepartmental) > 0 {
  94. for _, deptId := range strings.Split(v.ExecDepartmental, ",") {
  95. d, _ := strconv.Atoi(deptId)
  96. execDepartmental = append(execDepartmental, int32(d))
  97. }
  98. }
  99. res[i] = &pasturePb.WorkOrderList{
  100. Id: int32(v.Id),
  101. Name: v.Name,
  102. CategoryId: v.CategoryId,
  103. CategoryName: v.CategoryName,
  104. Priority: v.Priority,
  105. PriorityName: priorityMap[v.Priority],
  106. Frequency: v.Frequency,
  107. FrequencyName: frequencyMap[v.Frequency],
  108. ExecTime: v.ExecTime,
  109. SubscribeUnit: v.SubscribeUnit,
  110. SubscribeUnitName: subscribeUnitMap[v.SubscribeUnit],
  111. ExecPersons: execPersons,
  112. ExecPersonsNames: strings.Split(v.ExecPersonNames, ","),
  113. ExecDepartmental: execDepartmental,
  114. ExecDepartmentalNames: strings.Split(v.ExecDepartmental, ","),
  115. IsShow: v.IsShow,
  116. Photos: strings.Split(v.Photos, ","),
  117. Remarks: v.Remarks,
  118. OperatorId: int32(v.OperationId),
  119. OperatorName: v.OperationName,
  120. CreatedAt: int32(v.CreatedAt),
  121. UpdatedAt: int32(v.UpdatedAt),
  122. }
  123. }
  124. return res
  125. }