// Copyright (c) Shenyang Leading Edge Intelligent Technology Co., Ltd. All rights reserved. package models import ( "leit.com/LAPP_GAAS_GFrame/db" "errors" "leit.com/LAPP_GAAS_GFrame/schedule" "xorm.io/core" "time" ) type Workcalendar struct { Plantnr int `json:"PlantNr" xorm:"not null pk INT(4)"` Workcalendarnr int `json:"WorkCalendarNr" xorm:"not null pk INT(4)"` Descr string `json:"Descr" 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)"` Itemlst []Workcalendarlst `json:"itemlst" xorm:"-"` } /******数据表名******/ func (t *Workcalendar) TableName() string { return "Workcalendar" } /****************************************************************************** * * @Function Name : *----------------------------------------------------------------------------- * * @Description : 数据添加 * * @Function Parameters: * * @Return Value : * * @Author : Lou Wenzhi * * @Date : 2021/3/6 8:47 * ******************************************************************************/ func (t *Workcalendar) Add() error { e := db.Eloquent.Master() count := new(Workcalendar) affw, err := e.Table(t.TableName()).ID(core.PK{t.Plantnr, t.Workcalendarnr}).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 *Workcalendar) Del() bool { e := db.Eloquent.Master() _, err := e.ID(core.PK{t.Plantnr, t.Workcalendarnr}).Delete(&Workcalendar{}) 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 *Workcalendar) Update() error { e := db.Eloquent.Master() _, err := e.ID(core.PK{t.Plantnr, t.Workcalendarnr}).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 *Workcalendar) SelectOne() (Workcalendar, error) { e := db.Eloquent.Master() var data Workcalendar _, err := e.ID(core.PK{t.Plantnr, t.Workcalendarnr}).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 *Workcalendar) SelectAll(startDate, endDate time.Time) (datalst []Workcalendar, err error) { var ( i int startday, endday string ) // 获取日历头信息 e := db.Eloquent.Master() if err = e.Table(t.TableName()).Where("PlantNr = ?",t.Plantnr).OrderBy("WorkCalendarNr").Find(&datalst); err != nil { return } // 获取明细数据 startday = schedule.GetYMDString(startDate) endday = schedule.GetYMDString(endDate) for i = 0; i < len(datalst); i++ { if err = e.Table("WorkCalendarLst").Where("PlantNr = ? and WorkCalendarNr = ? and WorkDate >= ? and WorkDate <= ?", datalst[i].Plantnr, datalst[i].Workcalendarnr, startday, endday).OrderBy("WorkDate").Find(&datalst[i].Itemlst); err != nil { return } } return }