outbound_detail.go 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package model
  2. import pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
  3. type OutboundDetail struct {
  4. Id int64 `json:"id"`
  5. OutboundId int64 `json:"outboundId"`
  6. GoodsId int64 `json:"goodsId"`
  7. GoodsName string `json:"goodsName"`
  8. Specs string `json:"specs"`
  9. Producer string `json:"producer"`
  10. BatchNumber string `json:"batchNumber"`
  11. Price int32 `json:"price"`
  12. Unit pasturePb.Unit_Kind `json:"unit"`
  13. UnitName string `json:"unitName"`
  14. Quantity int32 `json:"quantity"`
  15. IsDelete pasturePb.IsShow_Kind `json:"isDelete"`
  16. CreatedAt int64 `json:"createdAt"`
  17. UpdatedAt int64 `json:"updatedAt"`
  18. }
  19. func (o *OutboundDetail) TableName() string {
  20. return "outbound_detail"
  21. }
  22. func NewOutboundDetailList(outboundId int64, req []*pasturePb.OutboundApplyGoodsItem, unitMap map[pasturePb.Unit_Kind]string) []*OutboundDetail {
  23. res := make([]*OutboundDetail, 0)
  24. for _, v := range req {
  25. unitName := ""
  26. if unit, ok := unitMap[v.Unit]; ok {
  27. unitName = unit
  28. }
  29. res = append(res, &OutboundDetail{
  30. OutboundId: outboundId,
  31. GoodsId: int64(v.GoodsId),
  32. GoodsName: v.GoodsName,
  33. Specs: v.Specs,
  34. Producer: v.Producer,
  35. BatchNumber: v.BatchNumber,
  36. Price: int32(v.Price * 100),
  37. Unit: v.Unit,
  38. UnitName: unitName,
  39. Quantity: int32(v.Quantity),
  40. IsDelete: pasturePb.IsShow_Ok,
  41. })
  42. }
  43. return res
  44. }
  45. type OutboundDetailSlice []*OutboundDetail
  46. func (o OutboundDetailSlice) ToPB(unitMap map[pasturePb.Unit_Kind]string) []*pasturePb.OutboundApplyGoodsItem {
  47. res := make([]*pasturePb.OutboundApplyGoodsItem, len(o))
  48. for i, v := range o {
  49. unitName := ""
  50. if unit, ok := unitMap[v.Unit]; ok {
  51. unitName = unit
  52. }
  53. res[i] = &pasturePb.OutboundApplyGoodsItem{
  54. GoodsId: int32(v.GoodsId),
  55. GoodsName: v.GoodsName,
  56. Specs: v.Specs,
  57. Producer: v.Producer,
  58. BatchNumber: v.BatchNumber,
  59. Price: float32(v.Price) / 100,
  60. Unit: v.Unit,
  61. UnitName: unitName,
  62. Quantity: uint32(v.Quantity),
  63. }
  64. }
  65. return res
  66. }