package jit

import (
	omModel "LAPP_ACURA_MOM_BACKEND/models/om"
	"sync"
	"time"
)

// PackOrderInfo 包装页面返回数据
type PackOrderInfo struct {
	IsClosed        bool           `json:"isClosed"`
	Message         string         `json:"message"`
	PackOrderId     string         `json:"packOrderId"`
	MatchTemplateLi []PackTemplate `json:"matchTemplateLi"`
	PLCResult       bool           `json:"plcResult"`
	PLCMessage      string         `json:"plcMessage"`
}

// PackTemplateWithLst 包装模板及详细结构体
type PackTemplateWithLst struct {
	PackTemplate        `xorm:"extends"`
	PackTemplateItemLst `xorm:"extends"`
}

// UserPackOrder 登录用户当前操作的包装单
type UserPackOrder struct {
	Lock        *sync.Mutex
	PackOrderId string
	UserId      string
	ProjectId   string
	TemplateLi  []PackTemplate
	SyncTime    time.Time
}

// UserPackOrderMap 所有在线用户操作包装单MAP
var UserPackOrderMap map[string]UserPackOrder

// AllPackTemplateData 所有的包装单模板
type AllPackTemplateData struct {
	Lock     sync.RWMutex
	SyncTime time.Time
	Data     []PackTemplate
}

// AllPackTemplate 所有包装单模板数据
var AllPackTemplate AllPackTemplateData

// TempShipOrderData 当前用户发运单 扫描的临时数据
type TempShipOrderData struct {
	UserId        string
	ScannedArtMap map[string]int
	PackOrderIdLi []string
}

// UserShipOrderTempMap 所有用户 发运处理的临时数据
var UserShipOrderTempMap map[string]TempShipOrderData

// ShipResult 发运扫描返回前端结构体
type ShipResult struct {
	IsClosed   bool   `json:"isClosed"`
	Message    string `json:"message"`
	PLCResult  bool   `json:"plcResult"`
	PLCMessage string `json:"plcMessage"`
}

// ShipOrderWithStatus 发运单连表状态
type ShipOrderWithStatus struct {
	ShipOrder       `xorm:"extends"`
	ShipOrderStatus `xorm:"extends"`
}

// PackOrderWithStatus 包装单连表状态
type PackOrderWithStatus struct {
	PackOrder       `xorm:"extends"`
	PackOrderStatus `xorm:"extends"`
}

// ShipOrderItemLstWithData 发运项子项和数据项连表数据
type ShipOrderItemLstWithData struct {
	ShipOrderItemLst `xorm:"extends"`
	ShipOrderDataLst `xorm:"extends"`
}

// BackFlushData 回冲查询数据
type BackFlushData struct {
	omModel.SerialOrder `xorm:"extends"`
	PackOrderStatus     `xorm:"extends"`
	PackOrderItemLst    `xorm:"extends"`
	PackOrder           `xorm:"extends"`
}
