// Copyright (c) Shenyang Leading Edge Intelligent Technology Co., Ltd. All rights reserved. package models import ( "fmt" "leit.com/aps_engine/db" "errors" "leit.com/aps_engine/grmi" "xorm.io/core" "time" ) type WorkCalendar struct { PlantNr int `xorm:"pk int 'PlantNr'" json:"WorkCalendar-PlantNr"` WorkCalendarNr int `xorm:"pk int 'WorkCalendarNr' autoincr" json:"WorkCalendar-WorkCalendarNr"` Descr string `xorm:"nvarchar(100) 'Descr' not null" json:"WorkCalendar-Descr"` LastModify grmi.DateTime `xorm:"datetime 'LastModify' not null updated" json:"WorkCalendar-LastModify"` LastUser string `xorm:"nvarchar(20) 'LastUser' not null" json:"WorkCalendar-LastUser"` CreateTime grmi.DateTime `xorm:"datetime 'CreateTime' not null created" json:"WorkCalendar-CreateTime"` WorkCalendarLst []WorkCalendarLstAndDay `xorm:"-" json:"WorkCalendar-WorkCalendarLst"` WorkCalendarLstLi []WorkCalendarLst `xorm:"-" json:"WorkCalendar-WorkCalendarLstLi"` } /******数据表名******/ func (t *WorkCalendar) TableName() string { return "Workcalendar" } /****************************************************************************** * * @Function Name : GetKey *----------------------------------------------------------------------------- * * @Description : 获取实体的主键 * * @Return Value : 实体的主键 * * @Author : 代码生成器创建 * * @Date : 2021-03-23 17:06:57 * ******************************************************************************/ func (self *WorkCalendar) GetKey() core.PK { return core.PK{self.PlantNr, self.WorkCalendarNr} } /****************************************************************************** * * @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(t.GetKey()).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(t.GetKey()).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(t.GetKey()).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(t.GetKey()).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 = getYMDString(startDate) endday = 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].WorkCalendarLstLi); err != nil { return } } return } // 获取时间点的日期,以年月日字符类型数据返回 func getYMDString(t time.Time)(ymd string){ var ( y1, d1 int m1 time.Month ) y1,m1,d1 = t.Date() ymd = fmt.Sprintf("%04d", y1) + fmt.Sprintf("%02d", int(m1)) + fmt.Sprintf("%02d", d1) return }