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.
 

301 lines
9.9 KiB

// Copyright (c) Shenyang Leading Edge Intelligent Technology Co., Ltd. All rights reserved.
package models
import (
"errors"
"leit.com/LAPP_GAAS_GFrame/db"
"time"
"xorm.io/core"
)
type OmWorkorder struct {
Plantnr int `json:"PlantNr" xorm:"not null pk INT(4)"`
Workorderid string `json:"WorkOrderId" xorm:"not null pk NVARCHAR(40)"`
Artid string `json:"ArtId" xorm:"not null NVARCHAR(80)"`
Custartid string `json:"CustArtId" xorm:"not null NVARCHAR(80)"`
Routetemplateid string `json:"RouteTemplateId" xorm:"not null NVARCHAR(80)"`
Ordertype string `json:"OrderType" xorm:"not null NVARCHAR(40)"`
Ordertype1 string `json:"OrderType1" xorm:"not null NVARCHAR(40)"`
Ordertype2 string `json:"OrderType2" xorm:"not null NVARCHAR(40)"`
Orderinfo string `json:"OrderInfo" xorm:"not null NVARCHAR(200)"`
Custorderid string `json:"CustOrderId" xorm:"not null NVARCHAR(80)"`
Erporderid string `json:"ErpOrderId" xorm:"not null NVARCHAR(80)"`
Parentorderid string `json:"ParentOrderId" xorm:"not null NVARCHAR(80)"`
Priority int `json:"Priority" xorm:"not null INT(4)"`
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)"`
Planqty float32 `json:"PlanQty" xorm:"not null FLOAT(8)"`
Qtyuomid string `json:"QtyUomId" xorm:"not null NVARCHAR(20)"`
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)"`
Batchquantity float32 `json:"BatchQuantity" xorm:"not null FLOAT(8"`
Batchingmethod int `json:"BatchingMethod" xorm:"not null INT(4)"`
Timeuomid string `json:"QtyUomId" xorm:"not null NVARCHAR(20)"`
Planstartdate time.Time `json:"PlanStartDate" xorm:"not null DATE(3)"`
Planenddate time.Time `json:"PlanEndDate" xorm:"not null DATE(3)"`
Setupstarttime time.Time `json:"SetupStartTime" xorm:"not null DATETIME(8)"`
Setupendtime time.Time `json:"SetupEndTime" xorm:"not null DATETIME(8)"`
Planstarttime time.Time `json:"PlanStartTime" xorm:"not null DATETIME(8)"`
Planendtime time.Time `json:"PlanEndTime" xorm:"not null DATETIME(8)"`
Fixstarttime int `json:"FixStartTime" xorm:"not null BIT(1)"`
Actstarttime time.Time `json:"ActStartTime" xorm:"not null DATETIME(8)"`
Actendtime time.Time `json:"ActEndTime" xorm:"not null DATETIME(8)"`
Projectid string `json:"ProjectId" xorm:"not null NVARCHAR(80)"`
Customerid string `json:"CustomerId" xorm:"not null NVARCHAR(80)"`
Customername string `json:"CustomerName" 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)"`
Wostatustab OmWorkorderstatus `json:"OmWorkOrderStatus" xorm:"-"`
Woqtytab OmWorkorderqty `json:"OmWorkOrderQty" xorm:"-"`
}
// 生产订单和它的状态的综合视图
type VOmWorkorder struct {
OmWorkorder `xorm:"extends"`
OmWorkorderstatus `xorm:"extends"`
OmWorkorderqty `xorm:"extends"`
}
/******数据表名******/
func (t *OmWorkorder) TableName() string {
return "OmWorkOrder"
}
/******************************************************************************
*
* @Function Name :
*-----------------------------------------------------------------------------
*
* @Description : 数据添加
*
* @Function Parameters:
*
* @Return Value :
*
* @Author : Lou Wenzhi
*
* @Date : 2021/3/6 8:47
*
******************************************************************************/
func (t *OmWorkorder) Add() error {
e := db.Eloquent.Master()
wotab := new(OmWorkorder)
/**主键:****/
affw, err := e.Table(t.TableName()).ID(core.PK{t.Plantnr, t.Workorderid}).Count(wotab)
if err != nil {
return err
}
if affw > 0 {
return errors.New("数据已经存在!")
}
_, err = e.Table(t.TableName()).Insert(t)
// 写入订单状态
if err = wotab.Wostatustab.Add(); err != nil {
return err
}
// 写入订单数量
if err = wotab.Woqtytab.Add(); err != nil {
return err
}
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 *OmWorkorder) Del() error {
e := db.Eloquent.Master()
/**删除订单****/
_, err := e.ID(core.PK{t.Plantnr, t.Workorderid}).Delete(&OmWorkorder{})
if err != nil {
return errors.New("删除失败!")
}
// 删除订单状态
if err = t.Wostatustab.Del(); err != nil {
return err
}
// 删除订单数量
if err = t.Woqtytab.Del(); err != nil {
return err
}
return nil
}
/******************************************************************************
*
* @Function Name :
*-----------------------------------------------------------------------------
*
* @Description : 数据修改
*
* @Function Parameters:
*
* @Return Value :
*
* @Author : Lou Wenzhi
*
* @Date : 2021/3/6 8:47
*
******************************************************************************/
func (t *OmWorkorder) Update() error {
e := db.Eloquent.Master()
/**主键:****/
_, err := e.ID(core.PK{t.Plantnr, t.Workorderid}).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 *OmWorkorder) SelectOne() (data OmWorkorder, err error) {
e := db.Eloquent.Master()
/**主键:****/
_, err = e.ID(core.PK{t.Plantnr, t.Workorderid}).Get(&data)
if err != nil {
return
}
// 获取订单生产状态
_, err = e.ID(core.PK{t.Plantnr, t.Workorderid}).Get(&data.Wostatustab)
if err != nil {
return
}
// 获取订单生产数量
_, err = e.ID(core.PK{t.Plantnr, t.Workorderid}).Get(&data.Woqtytab)
if err != nil {
return
}
return
}
/******************************************************************************
*
* @Function Name : SelectStartedTasks
*-----------------------------------------------------------------------------
*
* @Description : 查找指定时间段内已开始的订单包括已完成
*
* @Function Parameters:
*
* @Return Value :
*
* @Author : Leo Xue
*
* @Date : 2021/3/6 8:47
*
******************************************************************************/
func (t *OmWorkorder) SelectStartedTasks(startTime, endTime time.Time) (datalst []OmWorkorder, err error) {
var (
i int
wotab OmWorkorder
vdatalst []VOmWorkorder
)
e := db.Eloquent.Master()
if err = e.Table("OmWorkOrder").Join("INNER","OmWorkOrderStatus",
"OmWorkOrderStatus.PlantNr = OmWorkOrder.PlantNr and OmWorkOrderStatus.ProdOrderId = OmWorkOrder.ProdOrderId").Join("INNER","OmWorkOrderQty",
"OmWorkOrderQty.PlantNr = OmWorkOrder.PlantNr and OmWorkOrderQty.ProdOrderId = OmWorkOrder.ProdOrderId").Where("").Find(&vdatalst); err != nil{
return
}
datalst = []OmWorkorder{}
for i = 0; i < len(vdatalst); i++ {
wotab = OmWorkorder{}
wotab = vdatalst[i].OmWorkorder
wotab.Wostatustab = vdatalst[i].OmWorkorderstatus
wotab.Woqtytab = vdatalst[i].OmWorkorderqty
}
return
}
/******************************************************************************
*
* @Function Name : SelectPlannedTasks
*-----------------------------------------------------------------------------
*
* @Description : 查找指定时间段内已计划的订单包括已下达的
*
* @Function Parameters:
*
* @Return Value :
*
* @Author : Leo Xue
*
* @Date : 2021/3/6 8:47
*
******************************************************************************/
func (t *OmWorkorder) SelectPlannedTasks(startTime, endTime time.Time) (datalst []OmWorkorder, err error) {
e := db.Eloquent.Master()
e = e
return
}
/******************************************************************************
*
* @Function Name : SelectUnPlannedTasks
*-----------------------------------------------------------------------------
*
* @Description : 查找未计划的订单
*
* @Function Parameters:
*
* @Return Value :
*
* @Author : Leo Xue
*
* @Date : 2021/3/6 8:47
*
******************************************************************************/
func (t *OmWorkorder) SelectUnPlannedTasks() (datalst []OmWorkorder, err error) {
e := db.Eloquent.Master()
e = e
return
}