evmtools-node 0.0.24 → 0.0.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -65,11 +65,84 @@ export declare class Project {
65
65
  }[];
66
66
  /**
67
67
  * Project単位の統計情報を返す
68
- * @param project
69
- * @returns
68
+ * @returns ProjectStatistics配列(要素数1)
70
69
  */
71
70
  get statisticsByProject(): ProjectStatistics[];
71
+ /**
72
+ * 担当者別の統計情報を返す
73
+ * @returns AssigneeStatistics配列
74
+ */
72
75
  get statisticsByName(): AssigneeStatistics[];
76
+ /**
77
+ * フィルタ条件に基づいてタスクを抽出する
78
+ *
79
+ * @param options フィルタオプション
80
+ * @returns フィルタ結果の TaskRow[](親タスク含む全タスク)
81
+ *
82
+ * @note 統計計算時は内部でリーフタスクのみを使用(二重カウント防止)
83
+ *
84
+ * @example
85
+ * // "認証機能" を含むタスクを取得(親タスク含む)
86
+ * const tasks = project.filterTasks({ filter: "認証機能" })
87
+ *
88
+ * // 引数なしは全タスクを返す
89
+ * const allTasks = project.filterTasks()
90
+ */
91
+ filterTasks(options?: TaskFilterOptions): TaskRow[];
92
+ /**
93
+ * プロジェクト統計情報を取得する
94
+ *
95
+ * オーバーロード:
96
+ * 1. getStatistics() - プロジェクト全体の統計
97
+ * 2. getStatistics({ filter }) - フィルタして統計
98
+ * 3. getStatistics(TaskRow[]) - 渡されたタスクの統計
99
+ */
100
+ getStatistics(): ProjectStatistics;
101
+ getStatistics(options: StatisticsOptions): ProjectStatistics;
102
+ getStatistics(tasks: TaskRow[]): ProjectStatistics;
103
+ /**
104
+ * 担当者別統計情報を取得する
105
+ *
106
+ * オーバーロード:
107
+ * 1. getStatisticsByName() - プロジェクト全体の担当者別統計
108
+ * 2. getStatisticsByName({ filter }) - フィルタして担当者別統計
109
+ * 3. getStatisticsByName(TaskRow[]) - 渡されたタスクの担当者別統計
110
+ */
111
+ getStatisticsByName(): AssigneeStatistics[];
112
+ getStatisticsByName(options: StatisticsOptions): AssigneeStatistics[];
113
+ getStatisticsByName(tasks: TaskRow[]): AssigneeStatistics[];
114
+ /**
115
+ * 引数を解決してリーフタスクのみを返す(統計計算用)
116
+ * filterTasks() は全タスクを返すが、統計計算はリーフのみで行う
117
+ */
118
+ private _resolveTasks;
119
+ /**
120
+ * プロジェクト統計を計算
121
+ */
122
+ private _calculateStatistics;
123
+ /**
124
+ * 担当者別統計を計算
125
+ */
126
+ private _calculateAssigneeStats;
127
+ /**
128
+ * 拡張統計を計算(共通ヘルパー)
129
+ * REQ-REFACTOR-002: 高性能版を使用
130
+ * Issue #145: dailyPvOverride: 1.0 を削除し、REQ-EVM-001 AC-03 に準拠
131
+ * (直近N日平均を使用)
132
+ */
133
+ private _calculateExtendedStats;
134
+ /**
135
+ * 遅延統計を計算
136
+ */
137
+ private _calculateDelayStats;
138
+ /**
139
+ * 基本統計のみを計算(循環参照回避用)
140
+ * REQ-REFACTOR-002
141
+ *
142
+ * @param tasks リーフタスクの配列
143
+ * @returns BasicStats
144
+ */
145
+ private _calculateBasicStats;
73
146
  /**
74
147
  * LongData形式のPV情報を返す
75
148
  * @param calcPVS 累積が欲しいときはtrue、デフォルトはfalse
@@ -105,30 +178,6 @@ export declare class Project {
105
178
  * - validStatus.isValid === false のタスクを返す
106
179
  */
107
180
  get excludedTasks(): ExcludedTask[];
108
- /**
109
- * プロジェクト全体のBAC(Budget at Completion)
110
- * 全リーフタスクの予定工数の合計
111
- *
112
- * @returns BAC(人日)。タスクがない場合は0
113
- *
114
- * @remarks
115
- * statisticsByProject.totalWorkloadExcel を再利用
116
- */
117
- get bac(): number;
118
- /**
119
- * プロジェクト全体の累積EV
120
- * 全リーフタスクのEVの合計
121
- *
122
- * @returns 累積EV(人日)
123
- */
124
- get totalEv(): number;
125
- /**
126
- * プロジェクト全体のETC'(SPI版)
127
- * (BAC - 累積EV) / SPI
128
- *
129
- * @returns ETC'(人日)。SPI=0またはSPI未定義の場合はundefined
130
- */
131
- get etcPrime(): number | undefined;
132
181
  /**
133
182
  * 計画稼働日数を取得
134
183
  * プロジェクト開始日から終了日までの、休日を除いた稼働日数
@@ -149,11 +198,16 @@ export declare class Project {
149
198
  calculateRecentDailyPv(lookbackDays?: number): number;
150
199
  /**
151
200
  * 完了予測を計算
201
+ * REQ-REFACTOR-002: オーバーロード対応
152
202
  *
153
- * @param options 予測オプション
154
- * @returns 完了予測結果。計算不能な場合はundefined
203
+ * オーバーロード:
204
+ * 1. calculateCompletionForecast() - プロジェクト全体
205
+ * 2. calculateCompletionForecast(options) - フィルタ + 予測オプション
206
+ * 3. calculateCompletionForecast(tasks, options?) - タスク配列指定
155
207
  */
156
- calculateCompletionForecast(options?: CompletionForecastOptions): CompletionForecast | undefined;
208
+ calculateCompletionForecast(): CompletionForecast | undefined;
209
+ calculateCompletionForecast(options: CompletionForecastOptions & StatisticsOptions): CompletionForecast | undefined;
210
+ calculateCompletionForecast(tasks: TaskRow[], options?: CompletionForecastOptions): CompletionForecast | undefined;
157
211
  /**
158
212
  * 信頼性を判定
159
213
  */
@@ -185,6 +239,16 @@ export type Statistics = {
185
239
  totalPvCalculated?: number;
186
240
  totalEv?: number;
187
241
  spi?: number;
242
+ /** ETC'(残作業予測)。SPI=0の場合は計算不能のためundefined */
243
+ etcPrime?: number;
244
+ /** 完了予測日。計算不能な場合はundefined */
245
+ completionForecast?: Date;
246
+ /** 遅延タスク数 */
247
+ delayedTaskCount: number;
248
+ /** 平均遅延日数(遅延タスクがない場合は0) */
249
+ averageDelayDays: number;
250
+ /** 最大遅延日数(遅延タスクがない場合は0) */
251
+ maxDelayDays: number;
188
252
  };
189
253
  export type ProjectStatistics = {
190
254
  projectName?: string;
@@ -199,6 +263,19 @@ export type LongData = {
199
263
  baseDate: string;
200
264
  value?: number;
201
265
  };
266
+ /**
267
+ * タスクフィルタオプション
268
+ */
269
+ export interface TaskFilterOptions {
270
+ /** fullTaskName による部分一致フィルタ */
271
+ filter?: string;
272
+ }
273
+ /**
274
+ * 統計情報取得オプション
275
+ * TaskFilterOptions を継承(フィルタ条件を含む)
276
+ */
277
+ export interface StatisticsOptions extends TaskFilterOptions {
278
+ }
202
279
  /**
203
280
  * 計算から除外されたタスクの情報
204
281
  */
@@ -219,6 +296,18 @@ export interface CompletionForecastOptions {
219
296
  /** 計算を打ち切る最大日数(デフォルト: 730 = 2年) */
220
297
  maxForecastDays?: number;
221
298
  }
299
+ /**
300
+ * 基本統計(循環参照回避用)
301
+ * REQ-REFACTOR-002
302
+ */
303
+ export interface BasicStats {
304
+ /** 総EV(出来高) */
305
+ totalEv: number | undefined;
306
+ /** SPI(スケジュール効率) */
307
+ spi: number | undefined;
308
+ /** BAC(総工数) */
309
+ bac: number | undefined;
310
+ }
222
311
  /**
223
312
  * 完了予測結果
224
313
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Project.d.ts","sourceRoot":"","sources":["../../src/domain/Project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Project.d.ts","sourceRoot":"","sources":["../../src/domain/Project.ts"],"names":[],"mappings":"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"}
@@ -124,57 +124,189 @@ class Project {
124
124
  }
125
125
  /**
126
126
  * Project単位の統計情報を返す
127
- * @param project
128
- * @returns
127
+ * @returns ProjectStatistics配列(要素数1)
129
128
  */
130
129
  get statisticsByProject() {
130
+ return [this.getStatistics()];
131
+ }
132
+ /**
133
+ * 担当者別の統計情報を返す
134
+ * @returns AssigneeStatistics配列
135
+ */
136
+ get statisticsByName() {
137
+ return this.getStatisticsByName();
138
+ }
139
+ /**
140
+ * フィルタ条件に基づいてタスクを抽出する
141
+ *
142
+ * @param options フィルタオプション
143
+ * @returns フィルタ結果の TaskRow[](親タスク含む全タスク)
144
+ *
145
+ * @note 統計計算時は内部でリーフタスクのみを使用(二重カウント防止)
146
+ *
147
+ * @example
148
+ * // "認証機能" を含むタスクを取得(親タスク含む)
149
+ * const tasks = project.filterTasks({ filter: "認証機能" })
150
+ *
151
+ * // 引数なしは全タスクを返す
152
+ * const allTasks = project.filterTasks()
153
+ */
154
+ filterTasks(options) {
155
+ const allTasks = this.toTaskRows();
156
+ if (!options?.filter || options.filter.trim() === '') {
157
+ return allTasks;
158
+ }
159
+ return allTasks.filter((task) => {
160
+ const fullName = this.getFullTaskName(task);
161
+ return fullName.includes(options.filter);
162
+ });
163
+ }
164
+ getStatistics(optionsOrTasks) {
165
+ const tasks = this._resolveTasks(optionsOrTasks);
166
+ return this._calculateStatistics(tasks);
167
+ }
168
+ getStatisticsByName(optionsOrTasks) {
169
+ const tasks = this._resolveTasks(optionsOrTasks);
170
+ return this._calculateAssigneeStats(tasks);
171
+ }
172
+ /**
173
+ * 引数を解決してリーフタスクのみを返す(統計計算用)
174
+ * filterTasks() は全タスクを返すが、統計計算はリーフのみで行う
175
+ */
176
+ _resolveTasks(optionsOrTasks) {
177
+ let tasks;
178
+ if (optionsOrTasks === undefined) {
179
+ tasks = this.filterTasks();
180
+ }
181
+ else if (Array.isArray(optionsOrTasks)) {
182
+ tasks = optionsOrTasks;
183
+ }
184
+ else {
185
+ tasks = this.filterTasks(optionsOrTasks);
186
+ }
187
+ // 統計計算はリーフタスクのみ(二重カウント防止)
188
+ return tasks.filter((t) => t.isLeaf);
189
+ }
190
+ /**
191
+ * プロジェクト統計を計算
192
+ */
193
+ _calculateStatistics(tasks) {
131
194
  const name = this._name;
132
195
  const baseDate = this._baseDate;
133
- const startDate = this._startDate; // Date|undefinedだけど、実際はほぼ確実に、存在する(タスクが0コとか)
134
- const endDate = this._endDate; // Date|undefinedだけど、実際はほぼ確実に、存在する(タスクが0コとか)
135
- const rows = this.toTaskRows();
136
- const result = (0, tidy_1.tidy)(rows, (0, tidy_1.filter)((row) => row.isLeaf), //フォルダの情報は不要
137
- (0, tidy_1.summarize)({
138
- projectName: () => name,
139
- startDate: () => (0, common_1.dateStr)(startDate),
140
- endDate: () => (0, common_1.dateStr)(endDate),
141
- totalTasksCount: (group) => group.length,
142
- totalWorkloadExcel: sumWorkload, // Excel工数(task#workload) の 足し算
143
- totalWorkloadCalculated: (group) => sumCalculatePVs(group, endDate), // endDate時の、計算、累積pv(したのヤツ) の、足し算
144
- averageWorkload: averageWorkload,
145
- baseDate: () => (0, common_1.dateStr)(baseDate),
146
- totalPvExcel: sumPVs, // Excel累積pv(TaskRow#pv) の足し算
147
- totalPvCalculated: (group) => sumCalculatePVs(group, baseDate), // 計算、累積pv(TaskRow#calculatePVs(baseDate)) の、足し算
148
- totalEv: sumEVs, // Excel累積Ev(TaskRow#ev) の足し算
149
- spi: (group) => calculateSPI(group, baseDate),
150
- }));
151
- // console.table(result)
152
- return result;
196
+ const startDate = this._startDate;
197
+ const endDate = this._endDate;
198
+ // 基本統計
199
+ const totalPvCalculated = sumCalculatePVs(tasks, baseDate);
200
+ const totalEv = sumEVs(tasks);
201
+ const spi = calculateSPI(tasks, baseDate);
202
+ const bac = sumWorkload(tasks);
203
+ // 拡張統計
204
+ const extendedStats = this._calculateExtendedStats(tasks, spi, bac, totalEv);
205
+ return {
206
+ projectName: name,
207
+ startDate: (0, common_1.dateStr)(startDate),
208
+ endDate: (0, common_1.dateStr)(endDate),
209
+ totalTasksCount: tasks.length,
210
+ totalWorkloadExcel: bac,
211
+ totalWorkloadCalculated: endDate ? sumCalculatePVs(tasks, endDate) : undefined,
212
+ averageWorkload: averageWorkload(tasks),
213
+ baseDate: (0, common_1.dateStr)(baseDate),
214
+ totalPvExcel: sumPVs(tasks),
215
+ totalPvCalculated,
216
+ totalEv,
217
+ spi,
218
+ ...extendedStats,
219
+ };
153
220
  }
154
- get statisticsByName() {
221
+ /**
222
+ * 担当者別統計を計算
223
+ */
224
+ _calculateAssigneeStats(tasks) {
155
225
  const baseDate = this._baseDate;
156
226
  const endDate = this._endDate;
157
- const rows = this.toTaskRows();
158
- const result = (0, tidy_1.tidy)(rows,
159
- // mutate({
160
- // assignee: (row) => row.assignee?.trim() ?? '', // 🔧 trim()を適用
161
- // }),
162
- (0, tidy_1.filter)((row) => row.isLeaf), //フォルダの情報は不要
163
- (0, tidy_1.groupBy)('assignee', [
164
- (0, tidy_1.summarize)({
165
- totalTasksCount: (group) => group.length,
166
- totalWorkloadExcel: sumWorkload,
167
- totalWorkloadCalculated: (group) => sumCalculatePVs(group, endDate),
168
- averageWorkload: averageWorkload,
169
- baseDate: () => (0, common_1.dateStr)(baseDate),
170
- totalPvExcel: sumPVs,
171
- totalPvCalculated: (group) => sumCalculatePVs(group, baseDate),
172
- totalEv: sumEVs,
173
- spi: (group) => calculateSPI(group, baseDate),
174
- }),
175
- ]));
176
- // console.table(result)
177
- return result;
227
+ // 担当者ごとにグループ化
228
+ const grouped = new Map();
229
+ for (const task of tasks) {
230
+ const key = task.assignee;
231
+ if (!grouped.has(key)) {
232
+ grouped.set(key, []);
233
+ }
234
+ grouped.get(key).push(task);
235
+ }
236
+ return Array.from(grouped.entries()).map(([assignee, assigneeTasks]) => {
237
+ const totalPvCalculated = sumCalculatePVs(assigneeTasks, baseDate);
238
+ const totalEv = sumEVs(assigneeTasks);
239
+ const spi = calculateSPI(assigneeTasks, baseDate);
240
+ const bac = sumWorkload(assigneeTasks);
241
+ // 拡張統計(担当者ごとに計算)
242
+ const extendedStats = this._calculateExtendedStats(assigneeTasks, spi, bac, totalEv);
243
+ return {
244
+ assignee: assignee || undefined,
245
+ totalTasksCount: assigneeTasks.length,
246
+ totalWorkloadExcel: bac,
247
+ totalWorkloadCalculated: endDate ? sumCalculatePVs(assigneeTasks, endDate) : undefined,
248
+ averageWorkload: averageWorkload(assigneeTasks),
249
+ baseDate: (0, common_1.dateStr)(baseDate),
250
+ totalPvExcel: sumPVs(assigneeTasks),
251
+ totalPvCalculated,
252
+ totalEv,
253
+ spi,
254
+ ...extendedStats,
255
+ };
256
+ });
257
+ }
258
+ /**
259
+ * 拡張統計を計算(共通ヘルパー)
260
+ * REQ-REFACTOR-002: 高性能版を使用
261
+ * Issue #145: dailyPvOverride: 1.0 を削除し、REQ-EVM-001 AC-03 に準拠
262
+ * (直近N日平均を使用)
263
+ */
264
+ _calculateExtendedStats(tasks, spi, bac, totalEv) {
265
+ // 高性能版を呼び出し(dailyPvOverride なし → calculateRecentDailyPv() を使用)
266
+ const forecast = this.calculateCompletionForecast(tasks);
267
+ // 遅延情報
268
+ const { delayedTaskCount, averageDelayDays, maxDelayDays } = this._calculateDelayStats(tasks);
269
+ return {
270
+ etcPrime: forecast?.etcPrime,
271
+ completionForecast: forecast?.forecastDate,
272
+ delayedTaskCount,
273
+ averageDelayDays,
274
+ maxDelayDays,
275
+ };
276
+ }
277
+ /**
278
+ * 遅延統計を計算
279
+ */
280
+ _calculateDelayStats(tasks) {
281
+ const baseDate = this._baseDate;
282
+ // 遅延日数計算
283
+ const calcDelayDays = (task) => {
284
+ return -((0, common_1.formatRelativeDaysNumber)(baseDate, task.endDate) ?? 0);
285
+ };
286
+ // 遅延タスク抽出(未完了かつ遅延日数 > 0)
287
+ const delayedTasks = tasks
288
+ .filter((task) => !task.finished)
289
+ .filter((task) => task.endDate !== undefined)
290
+ .filter((task) => calcDelayDays(task) > 0);
291
+ const delayDays = delayedTasks.map(calcDelayDays);
292
+ const delayedTaskCount = delayedTasks.length;
293
+ const averageDelayDays = delayDays.length > 0 ? delayDays.reduce((a, b) => a + b, 0) / delayDays.length : 0;
294
+ const maxDelayDays = delayDays.length > 0 ? Math.max(...delayDays) : 0;
295
+ return { delayedTaskCount, averageDelayDays, maxDelayDays };
296
+ }
297
+ /**
298
+ * 基本統計のみを計算(循環参照回避用)
299
+ * REQ-REFACTOR-002
300
+ *
301
+ * @param tasks リーフタスクの配列
302
+ * @returns BasicStats
303
+ */
304
+ _calculateBasicStats(tasks) {
305
+ return {
306
+ totalEv: sumEVs(tasks),
307
+ spi: calculateSPI(tasks, this._baseDate),
308
+ bac: sumWorkload(tasks),
309
+ };
178
310
  }
179
311
  /**
180
312
  * LongData形式のPV情報を返す
@@ -318,43 +450,6 @@ class Project {
318
450
  reason: task.validStatus.invalidReason ?? '理由不明',
319
451
  }));
320
452
  }
321
- /**
322
- * プロジェクト全体のBAC(Budget at Completion)
323
- * 全リーフタスクの予定工数の合計
324
- *
325
- * @returns BAC(人日)。タスクがない場合は0
326
- *
327
- * @remarks
328
- * statisticsByProject.totalWorkloadExcel を再利用
329
- */
330
- get bac() {
331
- const stats = this.statisticsByProject[0];
332
- return stats?.totalWorkloadExcel ?? 0;
333
- }
334
- /**
335
- * プロジェクト全体の累積EV
336
- * 全リーフタスクのEVの合計
337
- *
338
- * @returns 累積EV(人日)
339
- */
340
- get totalEv() {
341
- const stats = this.statisticsByProject[0];
342
- return stats?.totalEv ?? 0;
343
- }
344
- /**
345
- * プロジェクト全体のETC'(SPI版)
346
- * (BAC - 累積EV) / SPI
347
- *
348
- * @returns ETC'(人日)。SPI=0またはSPI未定義の場合はundefined
349
- */
350
- get etcPrime() {
351
- const stats = this.statisticsByProject[0];
352
- const spi = stats?.spi;
353
- if (spi === undefined || spi === null || spi === 0)
354
- return undefined;
355
- const ev = this.totalEv;
356
- return (this.bac - ev) / spi;
357
- }
358
453
  /**
359
454
  * 計画稼働日数を取得
360
455
  * プロジェクト開始日から終了日までの、休日を除いた稼働日数
@@ -397,24 +492,36 @@ class Project {
397
492
  return 0;
398
493
  return pvValues.reduce((a, b) => a + b, 0) / pvValues.length;
399
494
  }
400
- /**
401
- * 完了予測を計算
402
- *
403
- * @param options 予測オプション
404
- * @returns 完了予測結果。計算不能な場合はundefined
405
- */
406
- calculateCompletionForecast(options) {
495
+ calculateCompletionForecast(optionsOrTasks, maybeOptions) {
496
+ // 引数の型を判定してタスクとオプションを解決
497
+ let tasks;
498
+ let options;
499
+ if (optionsOrTasks === undefined) {
500
+ // 引数なし: プロジェクト全体
501
+ tasks = this._resolveTasks();
502
+ options = undefined;
503
+ }
504
+ else if (Array.isArray(optionsOrTasks)) {
505
+ // TaskRow[] が渡された場合
506
+ tasks = optionsOrTasks.filter((t) => t.isLeaf);
507
+ options = maybeOptions;
508
+ }
509
+ else {
510
+ // StatisticsOptions & CompletionForecastOptions が渡された場合
511
+ tasks = this._resolveTasks(optionsOrTasks);
512
+ options = optionsOrTasks;
513
+ }
407
514
  const lookbackDays = options?.lookbackDays ?? 7;
408
515
  const maxForecastDays = options?.maxForecastDays ?? 730;
409
- // SPI を取得
410
- const stats = this.statisticsByProject[0];
411
- const spi = stats?.spi;
516
+ // 基本統計を計算(循環参照を避けるため _calculateBasicStats を使用)
517
+ const basicStats = this._calculateBasicStats(tasks);
518
+ const spi = basicStats.spi;
412
519
  if (spi === undefined || spi === null || spi === 0) {
413
520
  return undefined;
414
521
  }
415
522
  // 残作業量を計算
416
- const ev = this.totalEv;
417
- const bac = this.bac;
523
+ const ev = basicStats.totalEv ?? 0;
524
+ const bac = basicStats.bac ?? 0;
418
525
  const remainingWork = bac - ev;
419
526
  // 完了済みの場合
420
527
  if (remainingWork <= 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"Project.js","sourceRoot":"","sources":["../../src/domain/Project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Project.js","sourceRoot":"","sources":["../../src/domain/Project.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,32 @@
1
- import { Project, ProjectStatistics } from './Project';
1
+ import { Project, ProjectStatistics, TaskFilterOptions } from './Project';
2
2
  import { TaskRow } from './TaskRow';
3
+ /**
4
+ * 期間SPI計算オプション
5
+ */
6
+ export interface RecentSpiOptions extends TaskFilterOptions {
7
+ /**
8
+ * 期間警告の閾値(日数)
9
+ * この日数を超えると警告ログを出力
10
+ * @default 30
11
+ */
12
+ warnThresholdDays?: number;
13
+ }
3
14
  export declare class ProjectService {
15
+ /**
16
+ * 複数のProjectスナップショットから期間SPIを計算する
17
+ * 渡されたProject群の累積SPIの平均を返す
18
+ *
19
+ * @param projects Project配列
20
+ * @param options オプション(フィルタ条件、警告閾値)
21
+ * @returns 期間SPI。計算不能な場合はundefined
22
+ */
23
+ calculateRecentSpi(projects: Project[], options?: RecentSpiOptions): number | undefined;
24
+ /**
25
+ * 期間が閾値を超えている場合に警告ログを出力
26
+ * @param projects Project配列
27
+ * @param thresholdDays 閾値(日数)
28
+ */
29
+ private _warnIfPeriodTooLong;
4
30
  calculateTaskDiffs(now: Project, prev: Project): TaskDiff[];
5
31
  calculateProjectDiffs(taskDiffs: TaskDiff[]): ProjectDiff[];
6
32
  calculateAssigneeDiffs(taskDiffs: TaskDiff[]): AssigneeDiff[];