// Copyright (c) Shenyang Leading Edge Intelligent Technology Co., Ltd. All rights reserved.

package om

import (
	"LAPP_ACURA_MOM_BACKEND/grmi"
	baseModel "LAPP_ACURA_MOM_BACKEND/models/base"
	"xorm.io/core"
)

/******************************************************************************
 *
 * @Struct Name              : SerialOrder
 *-----------------------------------------------------------------------------
 *
 * @Description              : SerialOrder的实体映射
 *
 * @Author                   : 代码生成器创建
 *
 * @Date                     : 2021-10-22 14:06:37
 *
 ******************************************************************************/
type SerialOrder struct {
	PlantNr               int                     `xorm:"pk int 'PlantNr'" json:"OM_SerialOrder-PlantNr"`
	SerialOrderId         string                  `xorm:"pk nvarchar(100) 'SerialOrderId'" json:"OM_SerialOrder-SerialOrderId"`
	ArtId                 string                  `xorm:"nvarchar(40) 'ArtId' not null" json:"OM_SerialOrder-ArtId"`
	ProjectId             string                  `xorm:"nvarchar(40) 'ProjectId' not null" json:"OM_SerialOrder-ProjectId"`
	Descr                 string                  `xorm:"nvarchar(100) 'Descr' not null" json:"OM_SerialOrder-Descr"`
	WorkOrderId           string                  `xorm:"nvarchar(40) 'WorkOrderId' not null" json:"OM_SerialOrder-WorkOrderId"`
	CustOrderId           string                  `xorm:"nvarchar(40) 'CustOrderId' not null" json:"OM_SerialOrder-CustOrderId"`
	FirstPieceInBatch     bool                    `xorm:"bit 'FirstPieceInBatch' not null" json:"OM_SerialOrder-FirstPieceInBatch"`
	LastPieceInBatch      bool                    `xorm:"bit 'LastPieceInBatch' not null" json:"OM_SerialOrder-LastPieceInBatch"`
	PreSchedKey           int64                   `xorm:"bigint 'PreSchedKey' not null" json:"OM_SerialOrder-PreSchedKey"`
	SchedKey              int64                   `xorm:"bigint 'SchedKey' not null" json:"OM_SerialOrder-SchedKey"`
	Priority              int                     `xorm:"int 'Priority' not null" json:"OM_SerialOrder-Priority"`
	OrderType             string                  `xorm:"nvarchar(20) 'OrderType' not null" json:"OM_SerialOrder-OrderType"`
	OrderType1            string                  `xorm:"nvarchar(20) 'OrderType1' not null" json:"OM_SerialOrder-OrderType1"`
	OrderType2            string                  `xorm:"nvarchar(20) 'OrderType2' not null" json:"OM_SerialOrder-OrderType2"`
	PlanResourceId        string                  `xorm:"nvarchar(40) 'PlanResourceId' not null" json:"OM_SerialOrder-PlanResourceId"`
	UsedResourceId        string                  `xorm:"nvarchar(40) 'UsedResourceId' not null" json:"OM_SerialOrder-UsedResourceId"`
	PlanQty               float64                 `xorm:"float 'PlanQty' not null" json:"OM_SerialOrder-PlanQty"`
	QtyUomId              string                  `xorm:"nvarchar(40) 'QtyUomId' not null" json:"OM_SerialOrder-QtyUomId"`
	OpTimePerItem         float64                 `xorm:"float 'OpTimePerItem'" json:"OM_SerialOrder-OpTimePerItem"`
	TimeUomId             string                  `xorm:"nvarchar(40) 'TimeUomId' not null" json:"OM_SerialOrder-TimeUomId"`
	PlanStartDate         grmi.Date               `xorm:"date 'PlanStartDate' not null" json:"OM_SerialOrder-PlanStartDate"`
	PlanEndDate           grmi.Date               `xorm:"date 'PlanEndDate' not null" json:"OM_SerialOrder-PlanEndDate"`
	SetupStartTime        grmi.DateTime           `xorm:"datetime 'SetupStartTime' not null" json:"OM_SerialOrder-SetupStartTime"`
	SetupEndTime          grmi.DateTime           `xorm:"datetime 'SetupEndTime' not null" json:"OM_SerialOrder-SetupEndTime"`
	PlanStartTime         grmi.DateTime           `xorm:"datetime 'PlanStartTime' not null" json:"OM_SerialOrder-PlanStartTime"`
	PlanEndTime           grmi.DateTime           `xorm:"datetime 'PlanEndTime' not null" json:"OM_SerialOrder-PlanEndTime"`
	ActStartTime          grmi.DateTime           `xorm:"datetime 'ActStartTime' not null" json:"OM_SerialOrder-ActStartTime"`
	ActEndTime            grmi.DateTime           `xorm:"datetime 'ActEndTime' not null" json:"OM_SerialOrder-ActEndTime"`
	PickingFlag           string                  `xorm:"nvarchar(40) 'PickingFlag' not null" json:"OM_SerialOrder-PickingFlag"`
	IsFirstPieceToggle    bool                    `xorm:"bit 'IsFirstPieceToggle' not null" json:"OM_SerialOrder-IsFirstPieceToggle"`
	BackFlushFlag         bool                    `xorm:"bit 'BackFlushFlag' not null" json:"OM_SerialOrder-BackFlushFlag"`
	GenerateFlag          bool                    `xorm:"bit 'GenerateFlag' not null" json:"OM_SerialOrder-GenerateFlag"`
	RepairFlag            bool                    `xorm:"bit 'RepairFlag' not null" json:"OM_SerialOrder-RepairFlag"`
	OriginSerialOrderId   string                  `xorm:"nvarchar(50) 'OriginSerialOrderId' not null" json:"OM_SerialOrder-OriginSerialOrderId"`
	LinkSerialOrderId     string                  `xorm:"nvarchar(50) 'LinkSerialOrderId' not null" json:"OM_SerialOrder-LinkSerialOrderId"`
	SyncKey               string                  `xorm:"nvarchar(50) 'SyncKey' not null" json:"OM_SerialOrder-SyncKey"`
	CtrlPara1             int                     `xorm:"int 'CtrlPara1' not null" json:"OM_SerialOrder-CtrlPara1"`
	CtrlPara2             int                     `xorm:"int 'CtrlPara2' not null" json:"OM_SerialOrder-CtrlPara2"`
	CtrlStr1              string                  `xorm:"nvarchar(255) 'CtrlStr1' not null" json:"OM_SerialOrder-CtrlStr1"`
	CtrlStr2              string                  `xorm:"nvarchar(255) 'CtrlStr2' not null" json:"OM_SerialOrder-CtrlStr2"`
	CtrlTime1             grmi.DateTime           `xorm:"datetime 'CtrlTime1'" json:"OM_SerialOrder-CtrlTime1"`
	CtrlTime2             grmi.DateTime           `xorm:"datetime 'CtrlTime2'" json:"OM_SerialOrder-CtrlTime2"`
	LastModify            grmi.DateTime           `xorm:"datetime 'LastModify' not null updated" json:"OM_SerialOrder-LastModify"`
	LastUser              string                  `xorm:"nvarchar(20) 'LastUser' not null" json:"OM_SerialOrder-LastUser"`
	CreateTime            grmi.DateTime           `xorm:"datetime 'CreateTime' not null created" json:"OM_SerialOrder-CreateTime"`
	QualityCheck          string                  `xorm:"nvarchar(16) 'QualityCheck' not null" json:"OM_SerialOrder-QualityCheck"`
	QualityCheckTime      grmi.DateTime           `xorm:"datetime 'QualityCheckTime'" json:"OM_SerialOrder-QualityCheckTime"`
	MainOrderId           string                  `xorm:"nvarchar(40) 'MainOrderId' not null" json:"OM_SerialOrder-MainOrderId"`
	EOLCheck              string                  `xorm:"nvarchar(40) 'EOLCheck' not null" json:"OM_SerialOrder-EOLCheck"`
	SerialOrderStatus     SerialOrderStatus       `json:"OM_SerialOrder-SerialOrderStatus" xorm:"-"`
	PreOrderLi            []SerialOrder           `xorm:"-" json:"-"`
	SerialOrderPOLstLi    []SerialOrderPOLst      `xorm:"-" json:"-"`
	SerialOrderStepLstLi  []SerialOrderStepLst    `xorm:"-" json:"-"`
	SerialOrderOPDetailLi []SerialOrderOPDetail   `xorm:"-" json:"-"`
	LabelHeadLi           []baseModel.LabelHead   `xorm:"-" json:"-"`
	LabelDetailLi         []baseModel.LabelDetail `xorm:"-" json:"-"`
}

/******************************************************************************
 *
 * @Function Name            : GetKey
 *-----------------------------------------------------------------------------
 *
 * @Description              : 获取实体的主键
 *
 * @Return Value             : 实体的主键
 *
 * @Author                   : 代码生成器创建
 *
 * @Date                     : 2021-10-22 14:06:37
 *
 ******************************************************************************/
func (self *SerialOrder) GetKey() core.PK {
	return core.PK{self.PlantNr, self.SerialOrderId}
}
