work.go 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package backend
  2. import (
  3. "context"
  4. "fmt"
  5. "kpt-pasture/model"
  6. "net/http"
  7. "gitee.com/xuyiping_admin/pkg/xerr"
  8. pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
  9. )
  10. func (s *StoreEntry) OrderList(ctx context.Context, req *pasturePb.SearchWorkOrderRequest, pagination *pasturePb.PaginationModel) (*pasturePb.SearchWorkOrderResponse, error) {
  11. workOrderList := make([]*model.WorkOrder, 0)
  12. var count int64 = 0
  13. pref := s.DB.Model(new(model.WorkOrder))
  14. if req.Name != "" {
  15. pref.Where("name like ?", fmt.Sprintf("%s%s%s", "%", req.Name, "%"))
  16. }
  17. if req.Frequency > 0 {
  18. pref.Where("frequency = ?", req.Frequency)
  19. }
  20. if req.Priority > 0 {
  21. pref.Where("priority = ?", req.Priority)
  22. }
  23. if req.IsShow > 0 {
  24. pref.Where("is_show = ?", req.IsShow)
  25. }
  26. if req.SubscribeUnit > 0 {
  27. pref.Where("subscribe_unit = ?", req.SubscribeUnit)
  28. }
  29. if req.CategoryId > 0 {
  30. pref.Where("category_id = ?", req.CategoryId)
  31. }
  32. if err := pref.Order("id desc").Count(&count).Limit(int(pagination.PageSize)).Offset(int(pagination.PageOffset)).
  33. Find(&workOrderList).Error; err != nil {
  34. return nil, xerr.WithStack(err)
  35. }
  36. priorityMap := s.WorkOrderPriorityMap()
  37. frequencyMap := s.WorkOrderFrequencyMap()
  38. subscribeUnitMap := s.WorkOrderSubUnitMap()
  39. return &pasturePb.SearchWorkOrderResponse{
  40. Code: http.StatusOK,
  41. Message: "ok",
  42. Data: &pasturePb.SearchWorkOrderData{
  43. List: model.WorkOrderSlice(workOrderList).ToPB(priorityMap, frequencyMap, subscribeUnitMap),
  44. Total: int32(count),
  45. PageSize: pagination.PageSize,
  46. Page: pagination.Page,
  47. },
  48. }, nil
  49. }
  50. func (s *StoreEntry) OrderCreateOrUpdate(ctx context.Context, req *pasturePb.WorkOrderList) error {
  51. currentUser, _ := s.GetCurrentSystemUser(ctx)
  52. workOrderCategoryMap := s.WorkOrderCategoryMap()
  53. systemUserList, _ := s.SystemUserList(ctx)
  54. deptList, _ := s.SystemDeptList(ctx)
  55. newWorkOrder := model.NewWorkOrder(req, currentUser, systemUserList, deptList, workOrderCategoryMap)
  56. if req.Id <= 0 {
  57. if err := s.DB.Create(newWorkOrder).Error; err != nil {
  58. return xerr.WithStack(err)
  59. }
  60. } else {
  61. if err := s.DB.Where("id = ?", req.Id).Updates(newWorkOrder).Error; err != nil {
  62. return xerr.WithStack(err)
  63. }
  64. }
  65. return nil
  66. }