diff --git a/dao/base/implments/WorkCalendar.dao.impl.go b/dao/base/implments/WorkCalendar.dao.impl.go index e777faa..f581292 100644 --- a/dao/base/implments/WorkCalendar.dao.impl.go +++ b/dao/base/implments/WorkCalendar.dao.impl.go @@ -326,7 +326,7 @@ func (impl *WorkCalendarDAOImplement) SelectAll(startDate, endDate time.Time) (d startday = utils.GetYMDString(startDate) endday = utils.GetYMDString(endDate) for i = 0; i < len(datalst); i++ { - if err = session.Where("PlantNr = ? and WorkCalendarNr = ? and WorkDate >= ? and WorkDate <= ?", + if err = session.Table(meta.WorkCalendarLst.TableName).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 } diff --git a/services/schedule/Schedule_test.go b/services/schedule/Schedule_test.go index 7b294ac..503dbab 100644 --- a/services/schedule/Schedule_test.go +++ b/services/schedule/Schedule_test.go @@ -49,8 +49,14 @@ func TestScheduler(t *testing.T) { fmt.Printf("LoadProjectData:%v",schedeng.ProjDict) // 加载时间模型,基于调度引擎指定的时间区间 schedeng.LoadTimemodelData() + + fmt.Println() fmt.Printf("LoadTimemodelData:%v",schedeng.Tmsrv) + fmt.Println() + fmt.Printf("DayModelDict:%v",schedeng.Tmsrv.DayModelDict) + fmt.Println() + fmt.Printf("CalendarDict:%v",schedeng.Tmsrv.CalendarDict) // 加载产品换型主数据 err = schedeng.LoadSetupData() if err !=nil{ @@ -73,9 +79,16 @@ func TestScheduler(t *testing.T) { fmt.Println() fmt.Printf("LoadWorkLineWorkShiftData:%v",schedeng.WorklineDict) // 生成产线的时间曲线 - schedeng.GenerateWorkLineTimeCurve() + err = schedeng.GenerateWorkLineTimeCurve() + if err !=nil{ + t.Error(err.Error()) + } fmt.Println() fmt.Printf("GenerateWorkLineTimeCurve:%v",schedeng.Tmsrv) + fmt.Println() + fmt.Printf("WeekModelDict:%v",schedeng.Tmsrv.WeekModelDict) + fmt.Println() + fmt.Printf("CalendarDict:%v",schedeng.Tmsrv.CalendarDict) // 加载工单数据(调度任务) //schedeng.LoadSchedTaskData() // 对调度任务进行排序 diff --git a/services/schedule/Scheduler.Ctrl.go b/services/schedule/Scheduler.Ctrl.go index 72b0ea0..8265636 100644 --- a/services/schedule/Scheduler.Ctrl.go +++ b/services/schedule/Scheduler.Ctrl.go @@ -87,9 +87,15 @@ func (schedsrv *SchedulerSrv) LoadTimemodelData() { // 初始化 schedsrv.Tmsrv = TimeModelSrv{PlantNr: schedsrv.PlantNr} // 加载指定日期范畴内的时间模型相关主数据 - schedsrv.Tmsrv.LoadBasicData(schedsrv.StartDate, schedsrv.EndDate) + err := schedsrv.Tmsrv.LoadBasicData(schedsrv.StartDate, schedsrv.EndDate) + if err != nil { + fmt.Println(err) + } // 生成日模型的时间线列表 - schedsrv.Tmsrv.GenDayModelLineArray() + err = schedsrv.Tmsrv.GenDayModelLineArray() + if err != nil { + fmt.Println(err) + } } // 加载产线班次的实际出勤数据,指定时段,没有按班次指定的默认值填充 @@ -145,7 +151,10 @@ func (schedsrv *SchedulerSrv) GenerateWorkLineTimeCurve() (err error) { // 遍历产线 for _, wlsrv = range schedsrv.WorklineDict { // 基于产线的时间模型和排班获取产线在指定时间区间内的时间线集合 - wlsrv.GetWorkDayList(&schedsrv.Tmsrv) + err := wlsrv.GetWorkDayList(&schedsrv.Tmsrv) + if err != nil { + fmt.Println(err) + } wlsrv.GenerateTimeCurve(&schedsrv.Tmsrv) } diff --git a/services/schedule/WorkLine.Ctrl.go b/services/schedule/WorkLine.Ctrl.go index 2e96257..06e6344 100644 --- a/services/schedule/WorkLine.Ctrl.go +++ b/services/schedule/WorkLine.Ctrl.go @@ -122,16 +122,25 @@ func(wlsrv *WorklineSrv)GetWorkDayList(tmsrv *TimeModelSrv)(err error){ err = errors.New(fmt.Sprintf("产线%s的周模型%d不存在!",wlsrv.WorklineTab.WorkLineid,wlsrv.WorklineTab.WeekModelNr)) return } + fmt.Println("11111") + fmt.Println(wlsrv.WorklineTab.WorkCalendarNr) + fmt.Println(tmsrv.CalendarDict) // 获取产线的工作日历 if calsrv, ok = tmsrv.CalendarDict[wlsrv.WorklineTab.WorkCalendarNr]; !ok { err = errors.New(fmt.Sprintf("产线%s的工作日历%d不存在!",wlsrv.WorklineTab.WorkLineid,wlsrv.WorklineTab.WorkCalendarNr)) return } + fmt.Println("22222") + fmt.Printf("calsrv :%v",calsrv) + fmt.Println() // 基于时间模型的起始时间点获取产线的日模型列表 days = utils.GetCrossDays(tmsrv.StartDate, tmsrv.EndDate) for i = 0 ; i < days; i++ { tt := tmsrv.StartDate.Add(time.Duration(i*24)*time.Hour) daymodelnr = wmsrv.GetDayModelNrByDate(tt) + fmt.Println() + fmt.Printf("daymodelnr :%v",daymodelnr) + fmt.Println() if dmsrv, ok = tmsrv.DayModelDict[daymodelnr]; !ok{ err = errors.New(fmt.Sprintf("周模型%d中指定的日模型%d不存在!",wmsrv.WeekModelNr,daymodelnr)) return @@ -306,7 +315,7 @@ func(wlsrv *WorklineSrv)GetWorkShiftEff(day string, wsnr int, tmsrv *TimeModelSr key = day + strconv.Itoa(wsnr) if wlwsefftab, ok = wlsrv.WorkShiftEffDict[key]; ok { // 获取指定日期和人员班组号的排班人数 - perqty = wlwsefftab.Personqty + perqty = wlwsefftab.PersonQty // 比较人数,获取效率值 eff = wss.GetEffByPersonQty(perqty) return