package schedule import ( model "LAPP_ACURA_MOM_BACKEND/models/base" "time" ) type WorkShiftSrv struct { WorkShiftNr int ShiftType string StartTime time.Time EndTime time.Time Wsstab model.WorkShift } func (wss *WorkShiftSrv) Init(wstab model.WorkShift) { wss.WorkShiftNr = wstab.WorkShiftNr wss.Wsstab = wstab } // 基于指定的人数获取效率,默认取班组设置效率 func (wss *WorkShiftSrv) GetEffByPersonQty(pesqty int) (eff float64) { var ( i int found bool ) found = false for i = 0; i < len(wss.Wsstab.WorkShiftEffLst); i++ { if pesqty >= wss.Wsstab.WorkShiftEffLst[i].PlanPersonLclQty && pesqty <= wss.Wsstab.WorkShiftEffLst[i].PlanPersonUclQty { found = true eff = wss.Wsstab.WorkShiftEffLst[i].PlanEfficiency break } } if !found { eff = wss.Wsstab.PlanEfficiency } return } // 基于人员出勤等级获取效率,默认取班组设置效率 func (wss *WorkShiftSrv) GetEffByLevel(levelid string) (eff float64) { var ( i int found bool ) found = false for i = 0; i < len(wss.Wsstab.WorkShiftEffLst); i++ { if levelid >= wss.Wsstab.WorkShiftEffLst[i].LevelId { found = true eff = wss.Wsstab.WorkShiftEffLst[i].PlanEfficiency break } } if !found { eff = wss.Wsstab.PlanEfficiency } return }