广汽安道拓Acura项目MES后台
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.2 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  1. package schedule
  2. import (
  3. model "LAPP_ACURA_MOM_BACKEND/models/base"
  4. "LAPP_ACURA_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. }