第二代基于事件的高级计划排程引擎
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

184 lines
5.3 KiB

// Copyright (c) Shenyang Leading Edge Intelligent Technology Co., Ltd. All rights reserved.
package models
import (
"leit.com/aps_engine/db"
"time"
"errors"
"xorm.io/core"
)
type Workshift struct {
Plantnr int `json:"PlantNr" xorm:"not null pk INT(4)"`
Workshiftnr int `json:"WorkShiftNr" xorm:"not null pk INT(4)"`
Descr string `json:"Descr" xorm:"NVARCHAR(200)"`
Abrev string `json:"Abrev" xorm:"not null NVARCHAR(20)"`
Hexcolor string `json:"HexColor" xorm:"NVARCHAR(20)"`
Planpersonqty int `json:"PlanPersonQty" xorm:"INT(4)"`
Planefficiency float32 `json:"PlanEfficiency" xorm:"not null FLOAT(8)"`
SBeg int `json:"S_Beg" xorm:"INT(4)"`
SEnd int `json:"S_End" xorm:"INT(4)"`
SLen int `json:"S_Len" xorm:"INT(4)"`
SB1Beg int `json:"S_B1_Beg" xorm:"INT(4)"`
SB1End int `json:"S_B1_End" xorm:"INT(4)"`
SB2Beg int `json:"S_B2_Beg" xorm:"INT(4)"`
SB2End int `json:"S_B2_End" xorm:"INT(4)"`
SB3Beg int `json:"S_B3_Beg" xorm:"INT(4)"`
SB3End int `json:"S_B3_End" xorm:"INT(4)"`
SB4Beg int `json:"S_B4_Beg" xorm:"INT(4)"`
SB4End int `json:"S_B4_End" xorm:"INT(4)"`
SB5Beg int `json:"S_B5_Beg" xorm:"INT(4)"`
SB5End int `json:"S_B5_End" xorm:"INT(4)"`
Lastmodify time.Time `json:"LastModify" xorm:"DATETIME(8)"`
Lastuser string `json:"LastUser" xorm:"not null NVARCHAR(40)"`
Createtime time.Time `json:"CreateTime" xorm:"DATETIME(8)"`
Efflst []Workshiftefflst `json:"efflst" xorm:"-"`
}
/******数据表名******/
func (t *Workshift) TableName() string {
return "Workshift"
}
/******************************************************************************
*
* @Function Name :
*-----------------------------------------------------------------------------
*
* @Description : 数据添加
*
* @Function Parameters:
*
* @Return Value :
*
* @Author : Lou Wenzhi
*
* @Date : 2021/3/6 8:47
*
******************************************************************************/
func (t *Workshift) Add() error {
e := db.Eloquent.Master()
count := new(Workshift)
affw, err := e.Table(t.TableName()).ID(core.PK{t.Plantnr, t.Workshiftnr}).Count(count)
if err != nil {
return err
}
if affw > 0 {
return errors.New("数据已经存在!")
}
_, err = e.Table(t.TableName()).Insert(t)
if err != nil {
return err
}
return nil
}
/******************************************************************************
*
* @Function Name :
*-----------------------------------------------------------------------------
*
* @Description : 数据删除
*
* @Function Parameters:
*
* @Return Value :
*
* @Author : Lou Wenzhi
*
* @Date : 2021/3/6 8:47
*
******************************************************************************/
func (t *Workshift) Del() bool {
e := db.Eloquent.Master()
_, err := e.ID(core.PK{t.Plantnr, t.Workshiftnr}).Delete(&Workshift{})
if err != nil {
return false
}
return true
}
/******************************************************************************
*
* @Function Name :
*-----------------------------------------------------------------------------
*
* @Description : 数据修改
*
* @Function Parameters:
*
* @Return Value :
*
* @Author : Lou Wenzhi
*
* @Date : 2021/3/6 8:47
*
******************************************************************************/
func (t *Workshift) Update() error {
e := db.Eloquent.Master()
_, err := e.ID(core.PK{t.Plantnr, t.Workshiftnr}).Update(t)
if err != nil {
return err
}
return nil
}
/******************************************************************************
*
* @Function Name :
*-----------------------------------------------------------------------------
*
* @Description : 数据查找
*
* @Function Parameters:
*
* @Return Value :
*
* @Author : Lou Wenzhi
*
* @Date : 2021/3/6 8:47
*
******************************************************************************/
func (t *Workshift) SelectOne() (Workshift, error) {
e := db.Eloquent.Master()
var data Workshift
_, err := e.ID(core.PK{t.Plantnr, t.Workshiftnr}).Get(&data)
if err != nil {
return data, err
}
return data, nil
}
/******************************************************************************
*
* @Function Name :
*-----------------------------------------------------------------------------
*
* @Description : 数据查找
*
* @Function Parameters:
*
* @Return Value :
*
* @Author : Lou Wenzhi
*
* @Date : 2021/3/6 8:47
*
******************************************************************************/
func (t *Workshift) SelectAll() (datalst []Workshift, err error) {
var i int
e := db.Eloquent.Master()
if err = e.Table(t.TableName()).Where("PlantNr = ?",t.Plantnr).OrderBy("WorkShiftNr").Find(&datalst);err != nil {
return
}
for i = 0; i < len(datalst); i++ {
if err = e.Table("Workshiftefflst").Where("PlantNr = ? and WorkShiftNr = ?", datalst[i].Plantnr,
datalst[i].Workshiftnr).OrderBy("LevelId").Find(&datalst[i].Efflst); err != nil {
return
}
}
return
}