第二代基于事件的高级计划排程引擎
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.
 

208 lines
7.2 KiB

// Copyright (c) Shenyang Leading Edge Intelligent Technology Co., Ltd. All rights reserved.
package models
import (
"errors"
"leit.com/aps_engine/db"
"time"
"xorm.io/core"
)
type Article struct {
Plantnr int `json:"PlantNr" xorm:"not null pk INT(4)"`
Artid string `json:"ArtId" xorm:"not null pk NVARCHAR(80)"`
Descr1 string `json:"Descr1" xorm:"not null NVARCHAR(200)"`
Descr2 string `json:"Descr2" xorm:"not null NVARCHAR(200)"`
Arttypeid string `json:"ArtTypeId" xorm:"not null NVARCHAR(80)"`
Projectid string `json:"ProjectId" xorm:"not null NVARCHAR(80)"`
Custartid string `json:"CustArtId" xorm:"not null NVARCHAR(80)"`
Alternativeartid string `json:"AlternativeArtId" xorm:"not null NVARCHAR(80)"`
Planresourcegroupid string `json:"PlanResourceGroupId" xorm:"not null NVARCHAR(80)"`
Planresourceid string `json:"PlanResourceId" xorm:"not null NVARCHAR(80)"`
Usedresourceid string `json:"UsedResourceId" xorm:"not null NVARCHAR(80)"`
Uomid string `json:"UomId" xorm:"not null NVARCHAR(80)"`
Planscraprate float32 `json:"PlanScrapRate" xorm:"not null FLOAT(8)"`
Rateperhourtoggle int `json:"RatePerHourToggle" xorm:"not null BIT(1)"`
Timeperitemtoggle int `json:"TimePerItemToggle" xorm:"not null BIT(1)"`
Timeperbatchtoggle int `json:"TimePerBatchToggle" xorm:"not null BIT(1)"`
Batchtimefieldtoggle int `json:"BatchTimeFieldToggle" xorm:"not null BIT(1)"`
Optimeperitem float32 `json:"OpTimePerItem" xorm:"FLOAT(8)"`
Batchtime float32 `json:"BatchTime" xorm:"FLOAT(8)"`
Quantityperhour float32 `json:"QuantityPerHour" xorm:"not null FLOAT(8)"`
Midbatchquantity int `json:"MidBatchQuantity" xorm:"not null INT(4)"`
Midbatchtime time.Time `json:"MidBatchTime" xorm:"DATETIME(8)"`
Effectiveoptime float32 `json:"EffectiveOpTime" xorm:"FLOAT(8)"`
Batchingmethod int `json:"BatchingMethod" xorm:"not null INT(4)"`
Deliverybuffer float32 `json:"DeliveryBuffer" xorm:"FLOAT(8)"`
Icon string `json:"Icon" xorm:"not null NVARCHAR(200)"`
Displaycolor string `json:"DisplayColor" xorm:"not null NVARCHAR(40)"`
Document string `json:"Document" xorm:"not null NVARCHAR(200)"`
Defaultroute string `json:"DefaultRoute" xorm:"not null NVARCHAR(80)"`
Defaultinspectplanid string `json:"DefaultInspectPlanId" xorm:"not null NVARCHAR(80)"`
Lotsize float32 `json:"LotSize" xorm:"FLOAT(8)"`
Abcclass string `json:"ABCClass" xorm:"not null NVARCHAR(2)"`
Artsize1 string `json:"ArtSize1" xorm:"not null NVARCHAR(200)"`
Artsize2 string `json:"ArtSize2" xorm:"not null NVARCHAR(200)"`
Artsize3 string `json:"ArtSize3" xorm:"not null NVARCHAR(200)"`
Artsize4 string `json:"ArtSize4" xorm:"not null NVARCHAR(200)"`
Artsize5 string `json:"ArtSize5" xorm:"not null NVARCHAR(200)"`
Artspec1 string `json:"ArtSpec1" xorm:"not null NVARCHAR(200)"`
Artspec2 string `json:"ArtSpec2" xorm:"not null NVARCHAR(200)"`
Artspec3 string `json:"ArtSpec3" xorm:"not null NVARCHAR(200)"`
Artspec4 string `json:"ArtSpec4" xorm:"not null NVARCHAR(200)"`
Artspec5 string `json:"ArtSpec5" xorm:"not null NVARCHAR(200)"`
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)"`
}
/******数据表名******/
func (t *Article) TableName() string {
return "Article"
}
/******************************************************************************
*
* @Function Name :
*-----------------------------------------------------------------------------
*
* @Description : 数据添加
*
* @Function Parameters:
*
* @Return Value :
*
* @Author : Lou Wenzhi
*
* @Date : 2021/3/6 8:47
*
******************************************************************************/
func (t *Article) Add() error {
e := db.Eloquent.Master()
count := new(Article)
/**主键:****/
/******/
affw, err := e.Table(t.TableName()).ID(core.PK{t.Plantnr, t.Artid}).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 *Article) Del() (err error) {
e := db.Eloquent.Master()
/**主键:****/
/******/
_, err = e.ID(core.PK{t.Plantnr, t.Artid}).Delete(&Article{})
if err != nil {
return
}
return nil
}
/******************************************************************************
*
* @Function Name :
*-----------------------------------------------------------------------------
*
* @Description : 数据修改
*
* @Function Parameters:
*
* @Return Value :
*
* @Author : Lou Wenzhi
*
* @Date : 2021/3/6 8:47
*
******************************************************************************/
func (t *Article) Update() error {
e := db.Eloquent.Master()
/**主键:****/
/******/
_, err := e.ID(core.PK{t.Plantnr, t.Artid}).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 *Article) SelectOne() (Article, error) {
e := db.Eloquent.Master()
var data Article
/**主键:****/
/******/
_, err := e.ID(core.PK{t.Plantnr, t.Artid}).Get(&data)
if err != nil {
return data, err
}
return data, nil
}
/******************************************************************************
*
* @Function Name :
*-----------------------------------------------------------------------------
*
* @Description : 查找所有的物料
*
* @Function Parameters:
*
* @Return Value :
*
* @Author : LEO XUE
*
* @Date : 2021/5/10 8:47
*
******************************************************************************/
func (t *Article) SelectAll() (datalst []Article, err error) {
e := db.Eloquent.Master()
if err = e.Table(t.TableName()).Where("PlantNr = ?",t.Plantnr).OrderBy("ArtId").Find(&datalst); err != nil{
return
}
return
}