// 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 Toolunavailtimelst struct { Plantnr int `json:"PlantNr" xorm:"not null pk INT(4)"` Toolnr int `json:"ToolNr" xorm:"not null pk INT(4)"` Projectid string `json:"ProjectId" xorm:"not null NVARCHAR(80)"` Begtime time.Time `json:"BegTime" xorm:"not null pk DATETIME(8)"` Endtime time.Time `json:"EndTime" xorm:"DATETIME(8)"` 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 *Toolunavailtimelst) TableName() string { return "Toolunavailtimelst" } /****************************************************************************** * * @Function Name : *----------------------------------------------------------------------------- * * @Description : 数据添加 * * @Function Parameters: * * @Return Value : * * @Author : Lou Wenzhi * * @Date : 2021/3/6 8:47 * ******************************************************************************/ func (t *Toolunavailtimelst) Add() error { e := db.Eloquent.Master() count := new(Toolunavailtimelst) /**主键:****/ /******/ affw, err := e.Table(t.TableName()).ID(core.PK{t.Plantnr, t.Toolnr, t.Begtime}).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 *Toolunavailtimelst) Del() (err error) { e := db.Eloquent.Master() /**主键:****/ /******/ _, err = e.ID(core.PK{t.Plantnr, t.Toolnr, t.Begtime}).Delete(&Toolunavailtimelst{}) if err != nil { return } return nil } /****************************************************************************** * * @Function Name : *----------------------------------------------------------------------------- * * @Description : 数据修改 * * @Function Parameters: * * @Return Value : * * @Author : Lou Wenzhi * * @Date : 2021/3/6 8:47 * ******************************************************************************/ func (t *Toolunavailtimelst) Update() error { e := db.Eloquent.Master() /**主键:****/ /******/ _, err := e.ID(core.PK{t.Plantnr, t.Toolnr, t.Begtime}).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 *Toolunavailtimelst) SelectOne() (Toolunavailtimelst, error) { e := db.Eloquent.Master() var data Toolunavailtimelst /**主键:****/ /******/ _, err := e.ID(core.PK{t.Plantnr, t.Toolnr, t.Begtime}).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 *Toolunavailtimelst) GetUnAvailTime(starttime, endtime time.Time) (datalst []Toolunavailtimelst, err error) { e := db.Eloquent.Master() if err = e.Table(t.TableName()).Where("PlantNr = ? and BegTime >= ? and BegTime <= ?", t.Plantnr, starttime, endtime).Or("PlantNr = ? and EndTime >= ? and EndTime <= ?", t.Plantnr, starttime, endtime).Asc("ToolNr","BegTime").Find(&datalst); err != nil{ return } return }