package schedule import ( model "LAPP_ACURA_MOM_BACKEND/models/base" "LAPP_ACURA_MOM_BACKEND/utils" "time" ) // 周模型 type WeekModelSrv struct { WeekModelNr int ValidFromDate time.Time DayModelNrArray []int WeekModelTab model.WeekModel } // 初始化 func (wmsrv *WeekModelSrv) Init(wmtab model.WeekModel) { var ( i int ) wmsrv.WeekModelTab = wmtab wmsrv.WeekModelNr = wmsrv.WeekModelTab.WeekModelNr wmsrv.ValidFromDate = time.Now() wmsrv.DayModelNrArray = []int{} for i = 0; i < wmsrv.WeekModelTab.LoopDays; i++ { if i < len(wmsrv.WeekModelTab.WeekModelLstLi) { wmsrv.DayModelNrArray = append(wmsrv.DayModelNrArray, wmsrv.WeekModelTab.WeekModelLstLi[i].DayModelNr) } else { wmsrv.DayModelNrArray = append(wmsrv.DayModelNrArray, 0) } } } // 基于指定日期获取对应的日模型号 func (wmsrv *WeekModelSrv) GetDayModelNrByDate(spdate time.Time) (DayModelNr int) { var ( crossdays, moddays int ) crossdays = utils.GetCrossDays(wmsrv.ValidFromDate, spdate) moddays = crossdays % wmsrv.WeekModelTab.LoopDays if moddays < len(wmsrv.DayModelNrArray) { DayModelNr = wmsrv.DayModelNrArray[moddays] } else { DayModelNr = 0 } return }