优化排班功能
This commit is contained in:
1 parent
8acbe732ff
commit
8ba15d87b3
13 files changed
+2463
-565
No files matched your search
@@ -98,7 +98,13 @@ func (c *BackendOaSchedulingController) scPlanInputFromBody(body map[string]inte
|
||||
input.IncludeChild = scBoolValue(body, "include_child")
|
||||
}
|
||||
|
||||
if _, msg := scDateSpan(input.StartDate, input.EndDate); msg != "" {
|
||||
// 无期限方案:结束日期允许为空,落库时存哨兵值,发布时按滚动窗口分批生成
|
||||
if scIsNoEnd(input.EndDate) {
|
||||
if _, ok := scParseDate(input.StartDate); !ok {
|
||||
return nil, "开始日期格式错误"
|
||||
}
|
||||
input.EndDate = scPlanNoEndDate
|
||||
} else if _, msg := scDateSpan(input.StartDate, input.EndDate); msg != "" {
|
||||
return nil, msg
|
||||
}
|
||||
|
||||
@@ -181,6 +187,7 @@ func scPlanView(plan *models.OaSchedulePlan) map[string]interface{} {
|
||||
"employee_names": plan.EmployeeNames,
|
||||
"start_date": normalizeOaDate(plan.StartDate),
|
||||
"end_date": normalizeOaDate(plan.EndDate),
|
||||
"no_end": scIsNoEnd(plan.EndDate),
|
||||
"weekdays": weekdays,
|
||||
"shift_id": plan.ShiftID,
|
||||
"shift_name": plan.ShiftName,
|
||||
@@ -330,7 +337,7 @@ func (c *BackendOaSchedulingController) PlanPreview() {
|
||||
return
|
||||
}
|
||||
|
||||
dates, msg := scDateSpan(input.StartDate, input.EndDate)
|
||||
dates, msg := scPlanGenWindow(input.StartDate, input.EndDate)
|
||||
if msg != "" {
|
||||
c.scFail(400, 400, msg)
|
||||
return
|
||||
@@ -369,6 +376,9 @@ func (c *BackendOaSchedulingController) PlanPreview() {
|
||||
"workday_count": len(workdays),
|
||||
"rest_count": len(dates) - len(workdays),
|
||||
"entry_count": entryCount,
|
||||
"no_end": scIsNoEnd(input.EndDate),
|
||||
"gen_start": dates[0],
|
||||
"gen_end": dates[len(dates)-1],
|
||||
"shift": shift,
|
||||
"scope_name": c.scScopeName(tid, input),
|
||||
"template_name": input.TemplateName,
|
||||
@@ -673,7 +683,7 @@ func (c *BackendOaSchedulingController) scPublishPlan(tid, uid uint64, username
|
||||
return nil, fmt.Errorf("范围覆盖 %d 名员工,超过单次 %d 人上限", len(employees), scPlanMaxEmployees)
|
||||
}
|
||||
|
||||
dates, msg := scDateSpan(normalizeOaDate(plan.StartDate), normalizeOaDate(plan.EndDate))
|
||||
dates, msg := scPlanGenWindow(normalizeOaDate(plan.StartDate), normalizeOaDate(plan.EndDate))
|
||||
if msg != "" {
|
||||
return nil, errors.New(msg)
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user