fix(加班): 统一日期选择与耗时口径

This commit is contained in:
Script Generator
2026-06-29 15:42:49 +08:00
parent 8a1726c426
commit 0e27a4d4c5
5 changed files with 90 additions and 12 deletions

View File

@@ -364,6 +364,6 @@
- `calcWorkHours` 和正常任务的 `calcActualElapsedHours` 都按中国工作日历和工作时段计算。
- 法定节假日、周末不计入正常工时;调休上班日计入正常工时。
- AI 预估工时是工作量建议,不按日期跳过;执行预估只有从计划起止时间自动推导时才走工作日历。
- 加班记录不受工作日历过滤,按加班单填写的开始/结束时间直接计入额外投入
- 加班记录不受工作日历过滤,但不按自然小时连续打卡计算;使用项目管理口径:每个自然日默认 9:00-12:00、13:00-18:00 计 8h中间完整日期按 8h首尾日期按填写的开始/结束时间裁剪,结束晚于 18:00 的当天额外计入超出时长
**理由**:正常任务耗时回答“工作时间里实际投入了多少”,加班记录回答“非正常工作时间额外投入了多少”,两条口径分开才能避免休息日被重复或误算
**理由**:正常任务耗时回答“工作时间里实际投入了多少”,加班记录回答“额外投入覆盖了多少项目工作量”。项目管理不做打卡,跨天记录不能把夜间空档算成工时;但节假日和周末仍允许记录,不受中国工作日历过滤

View File

@@ -239,4 +239,5 @@ Implementation convention:
- 正常任务耗时使用 `calcWorkHours` / `calcActualElapsedHours`,按中国工作日历和 9:00-12:00、13:00-18:00 工作时段计算。
- 法定节假日和周末不计入正常任务耗时;调休上班日计入正常任务耗时。
- AI 预估工时和手填执行预估工时本身是小时数,不再按日期过滤;只有从计划起止时间自动推导的执行预估会按工作日历计算。
- 加班记录使用 `overtime.calcDuration`按加班单开始/结束时间直接计算,不受节假日过滤。
- 加班记录使用 `overtime.calcDuration`,不受节假日过滤,但按项目管理口径计算:每个自然日默认最多 8h跨天中间日期按 8h结束晚于 18:00 的当天额外计入超出时长,避免把夜间空档当作打卡工时
- 新建加班记录也使用工作日历日期选择器;节假日和周末可选,只提示不阻止。