You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.1 KiB

  1. package schedule
  2. import (
  3. model "LAPP_LF_MOM_BACKEND/models/base"
  4. "LAPP_LF_MOM_BACKEND/utils"
  5. "time"
  6. )
  7. // 周模型
  8. type WeekModelSrv struct {
  9. WeekModelNr int
  10. ValidFromDate time.Time
  11. DayModelNrArray []int
  12. WeekModelTab model.WeekModel
  13. }
  14. // 初始化
  15. func(wmsrv *WeekModelSrv)Init(wmtab model.WeekModel){
  16. var (
  17. i int
  18. )
  19. wmsrv.WeekModelTab = wmtab
  20. wmsrv.WeekModelNr = wmsrv.WeekModelTab.WeekModelNr
  21. wmsrv.ValidFromDate = time.Now()
  22. wmsrv.DayModelNrArray = []int{}
  23. for i = 0; i < wmsrv.WeekModelTab.LoopDays; i++ {
  24. if i < len(wmsrv.WeekModelTab.WeekModelLstLi) {
  25. wmsrv.DayModelNrArray = append(wmsrv.DayModelNrArray, wmsrv.WeekModelTab.WeekModelLstLi[i].DayModelNr)
  26. }else{
  27. wmsrv.DayModelNrArray = append(wmsrv.DayModelNrArray, 0 )
  28. }
  29. }
  30. }
  31. // 基于指定日期获取对应的日模型号
  32. func(wmsrv *WeekModelSrv)GetDayModelNrByDate(spdate time.Time)(DayModelNr int){
  33. var(
  34. crossdays, moddays int
  35. )
  36. crossdays = utils.GetCrossDays(wmsrv.ValidFromDate, spdate)
  37. moddays = crossdays % wmsrv.WeekModelTab.LoopDays
  38. if moddays < len(wmsrv.DayModelNrArray){
  39. DayModelNr = wmsrv.DayModelNrArray[moddays]
  40. }else{
  41. DayModelNr = 0
  42. }
  43. return
  44. }