|
|
- // Copyright (c) Shenyang Leading Edge Intelligent Technology Co., Ltd. All rights reserved.
- package models
-
- import (
- "errors"
- "leit.com/aps_engine/common"
- "leit.com/aps_engine/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(80)"`
- 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(80)"`
- 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)"`
- Timeuomid string `json:"TimeUomId" xorm:"not null NVARCHAR(80)"`
- Batchingmethod int `json:"BatchingMethod" xorm:"not null INT(4)"`
- 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)"`
- 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)"`
- Operationlst []OmWooperation `xorm:"-"`
- }
-
- // 客户订单和它的版本头综合视图
- type VWorkorder 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()
- count := new(OmWorkorder)
- /**主键:****/
- affw, err := e.Table(t.TableName()).ID(core.PK{t.Plantnr, t.Workorderid}).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 *OmWorkorder) Del() (err error) {
- e := db.Eloquent.Master()
-
- _, err = e.ID(core.PK{t.Plantnr, t.Workorderid}).Delete(&OmWorkorder{})
- if err != nil {
- return
- }
- 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 data, err
- }
- return data, nil
- }
-
- /******************************************************************************
- *
- * @Function Name :
- *-----------------------------------------------------------------------------
- *
- * @Description : 查找单个工单的完整数据
- *
- * @Function Parameters:
- *
- * @Return Value :
- *
- * @Author : LEO XUE
- *
- * @Date : 2021/3/6 8:47
- *
- ******************************************************************************/
- func (t *OmWorkorder) SelectOneFullData() (vdata VWorkorder, err error) {
- var (
- j int
- vdatalst []VWorkorder
- )
-
- e := db.Eloquent.Master()
- query := e.Table(t.TableName())
- query = query.Join("INNER", "OmWorkorderstatus", "OmWorkorder.PlantNr = OmWorkorderstatus.PlantNr and OmWorkorder.WorkOrderId = OmWorkorderstatus.WorkOrderId")
- query = query.Join("INNER", "OmWorkorderqty", "OmWorkorder.PlantNr = OmWorkorderqty.PlantNr and OmWorkorder.WorkOrderId = OmWorkorderqty.WorkOrderId")
- query = query.Where("OmWorkorder.PlantNr = ? and OmWorkorder.WorkOrderId = ?", t.Plantnr, t.Workorderid)
-
- if err = query.Find(&vdatalst); err != nil {
- return
- }
- if len(vdatalst) > 0 {
- vdata = vdatalst[0]
- }
-
- if err = e.Table("OmWooperation").Where("PlantNr = ? and WorkOrderId = ?",t.Plantnr,
- t.Workorderid).Asc("OperationNr", "SplitNr").Find(&vdata.OmWorkorder.Operationlst); err != nil{
- return
- }
-
- for j = 0; j < len(vdata.OmWorkorder.Operationlst); j++ {
- if vdata.OmWorkorder.Operationlst[j], err = vdata.OmWorkorder.Operationlst[j].SelectOne(); err != nil {
- return
- }
- }
-
- return
- }
-
- /******************************************************************************
- *
- * @Function Name :
- *-----------------------------------------------------------------------------
- *
- * @Description : 查找所有未完成的工单数据,包括它的状态和数量数据
- *
- * @Function Parameters:
- *
- * @Return Value :
- *
- * @Author : LEO XUE
- *
- * @Date : 2021/5/10 8:47
- *
- ******************************************************************************/
- func (t *OmWorkorder) SelectAllUnfinishedFullData() (vdatalst []VWorkorder, err error) {
- var (
- i,j int
- )
-
- e := db.Eloquent.Master()
- query := e.Table(t.TableName())
- query = query.Join("INNER", "OmWorkorderstatus", "OmWorkorder.PlantNr = OmWorkorderstatus.PlantNr and OmWorkorder.WorkOrderId = OmWorkorderstatus.WorkOrderId")
- query = query.Join("INNER", "OmWorkorderqty", "OmWorkorder.PlantNr = OmWorkorderqty.PlantNr and OmWorkorder.WorkOrderId = OmWorkorderqty.WorkOrderId")
- query = query.Where("OmWorkorder.PlantNr = ? and OmWorkorder.status < ?", t.Plantnr, common.WO_STATUS_FINISHED).Desc("OmWorkorderstatus.Status", "OmWorkorder.PlanStartTime")
-
- if err = query.Find(&vdatalst); err != nil {
- return
- }
-
- // 获取订单工序数据
- for i = 0; i < len(vdatalst); i++ {
- if err = e.Table("OmWooperation").Where("PlantNr = ? and WorkOrderId = ?",t.Plantnr,
- t.Workorderid).Asc("OperationNr", "SplitNr").Find(&vdatalst[i].OmWorkorder.Operationlst); err != nil{
- return
- }
-
- for j = 0; j < len(vdatalst[i].OmWorkorder.Operationlst); j++ {
- if vdatalst[i].OmWorkorder.Operationlst[j], err = vdatalst[i].OmWorkorder.Operationlst[j].SelectOne(); err != nil {
- return
- }
- }
- }
-
- return
- }
|