123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- package model
- import (
- "strings"
- pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
- )
- type EventSale struct {
- Id int64 `json:"id"`
- PastureId int64 `json:"pastureId"`
- DealerId int32 `json:"dealerId"`
- DealerName string `json:"dealerName"`
- SalePrice float64 `json:"salePrice"`
- SaleAllWeight int32 `json:"saleAllWeight"`
- SaleAllAmount float64 `json:"saleAllAmount"`
- SaleCowCount int32 `json:"saleCowCount"`
- SaleKind pasturePb.SalesType_Kind `json:"saleKind"`
- OutReasonsKind pasturePb.OutReasons_Kind `json:"outReasonsKind"`
- OutReasonsName string `json:"outReasonsName"`
- SaleAt int64 `json:"saleAt"`
- SaleTicker string `json:"saleTicker"`
- QuarantineReport string `json:"quarantineReport"`
- Remarks string `json:"remarks"`
- OperationId int64 `json:"operationId"`
- OperationName string `json:"operationName"`
- MessageId int64 `json:"messageId"`
- MessageName string `json:"messageName"`
- CreatedAt int64 `json:"createdAt"`
- UpdatedAt int64 `json:"updatedAt"`
- }
- func (e *EventSale) TableName() string {
- return "event_sale"
- }
- func NewEventSale(pastureId int64, dealerInfo *SaleDealer, req *pasturePb.EventCowSale, operationUser, currUser *SystemUser) *EventSale {
- return &EventSale{
- PastureId: pastureId,
- DealerId: dealerInfo.Id,
- DealerName: dealerInfo.Name,
- SalePrice: float64(req.SalePrice),
- SaleAllWeight: int32(req.SaleAllWeight * 1000),
- SaleAllAmount: float64(req.SaleAllPrice),
- SaleCowCount: int32(len(req.EarNumbers)),
- SaleKind: req.SalesType,
- OutReasonsKind: req.OutReasonsKind,
- OutReasonsName: req.OutReasonsName,
- SaleAt: int64(req.SaleAt),
- SaleTicker: strings.Join(req.SaleTicket, ","),
- QuarantineReport: strings.Join(req.QuarantineReport, ","),
- Remarks: req.Remarks,
- OperationId: operationUser.Id,
- OperationName: operationUser.Name,
- MessageId: currUser.Id,
- MessageName: currUser.Name,
- }
- }
- type EventSaleSlice []*EventSale
- func (e EventSaleSlice) ToPB(eventSaleCarMap map[int64][]*EventSaleCar, eventSaleCowMap map[int64][]*EventSaleCow) []*pasturePb.EventCowSale {
- res := make([]*pasturePb.EventCowSale, len(e))
- for i, v := range e {
- saleVehicleItems := make([]*pasturePb.SaleVehicleItem, 0)
- if eventSaleCarItems, ok := eventSaleCarMap[v.Id]; ok {
- for _, item := range eventSaleCarItems {
- es, weighbridgePhotos, vehiclePhotos := make([]string, 0), make([]string, 0), make([]string, 0)
- if item.EarNumbers != "" {
- es = strings.Split(item.EarNumbers, ",")
- }
- if item.WeighbridgePhotos != "" {
- weighbridgePhotos = strings.Split(item.WeighbridgePhotos, ",")
- }
- if item.CarPhotos != "" {
- vehiclePhotos = strings.Split(item.CarPhotos, ",")
- }
- saleVehicleItem := &pasturePb.SaleVehicleItem{
- CarNumber: item.CarNumber,
- CowCount: item.CowCount,
- CowWeight: float32(item.CowWeight) / 1000,
- OutboundTicket: item.OutboundTicket,
- WeighbridgePhotos: weighbridgePhotos,
- VehiclePhotos: vehiclePhotos,
- EarNumbers: es,
- }
- saleVehicleItems = append(saleVehicleItems, saleVehicleItem)
- }
- }
- earNumbers := make([]string, 0)
- saleCount := int32(0)
- if cowList, ok := eventSaleCowMap[v.Id]; ok {
- for _, cow := range cowList {
- earNumbers = append(earNumbers, cow.EarNumber)
- saleCount++
- }
- }
- res[i] = &pasturePb.EventCowSale{
- DealerId: v.DealerId,
- DealerName: v.DealerName,
- SaleAt: int32(v.SaleAt),
- EarNumbers: earNumbers,
- SalesType: v.SaleKind,
- OutReasonsKind: v.OutReasonsKind,
- OutReasonsName: v.OutReasonsName,
- SaleAllWeight: float32(v.SaleAllWeight) / 1000,
- SaleAllPrice: float32(v.SaleAllAmount),
- SalePrice: float32(v.SalePrice),
- OperationId: int32(v.OperationId),
- OperationName: v.OperationName,
- Remarks: v.Remarks,
- SaleTicket: strings.Split(v.SaleTicker, ","),
- QuarantineReport: strings.Split(v.QuarantineReport, ","),
- SaleVehicleItems: saleVehicleItems,
- SaleCount: saleCount,
- }
- }
- return res
- }
- type EventSaleModel struct {
- CowList []*Cow
- SalesType pasturePb.SalesType_Kind
- SaleAt int64
- EventSaleCarList []*EventSaleCar
- EventSaleCowList []*EventSaleCow
- NeckRingList []*NeckRing
- EventCowLog []*EventCowLog
- }
|