evmtools-node 0.0.5
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.
- package/.prettierrc +9 -0
- package/.vscode/settings.json +20 -0
- package/LICENSE +201 -0
- package/README.md +71 -0
- package/class.pu +62 -0
- package/dist/common/index.d.ts +4 -0
- package/dist/common/index.d.ts.map +1 -0
- package/dist/common/index.js +20 -0
- package/dist/common/index.js.map +1 -0
- package/dist/common/myStyles.d.ts +10 -0
- package/dist/common/myStyles.d.ts.map +1 -0
- package/dist/common/myStyles.js +52 -0
- package/dist/common/myStyles.js.map +1 -0
- package/dist/common/styles.d.ts +12 -0
- package/dist/common/styles.d.ts.map +1 -0
- package/dist/common/styles.js +30 -0
- package/dist/common/styles.js.map +1 -0
- package/dist/common/utils.d.ts +53 -0
- package/dist/common/utils.d.ts.map +1 -0
- package/dist/common/utils.js +163 -0
- package/dist/common/utils.js.map +1 -0
- package/dist/domain/Project.d.ts +98 -0
- package/dist/domain/Project.d.ts.map +1 -0
- package/dist/domain/Project.js +291 -0
- package/dist/domain/Project.js.map +1 -0
- package/dist/domain/ProjectCreator.d.ts +8 -0
- package/dist/domain/ProjectCreator.d.ts.map +1 -0
- package/dist/domain/ProjectCreator.js +3 -0
- package/dist/domain/ProjectCreator.js.map +1 -0
- package/dist/domain/ProjectProgressCreator.d.ts +5 -0
- package/dist/domain/ProjectProgressCreator.d.ts.map +1 -0
- package/dist/domain/ProjectProgressCreator.js +3 -0
- package/dist/domain/ProjectProgressCreator.js.map +1 -0
- package/dist/domain/ProjectRepository.d.ts +5 -0
- package/dist/domain/ProjectRepository.d.ts.map +1 -0
- package/dist/domain/ProjectRepository.js +3 -0
- package/dist/domain/ProjectRepository.js.map +1 -0
- package/dist/domain/ProjectService.d.ts +59 -0
- package/dist/domain/ProjectService.d.ts.map +1 -0
- package/dist/domain/ProjectService.js +216 -0
- package/dist/domain/ProjectService.js.map +1 -0
- package/dist/domain/TaskNode.d.ts +37 -0
- package/dist/domain/TaskNode.d.ts.map +1 -0
- package/dist/domain/TaskNode.js +54 -0
- package/dist/domain/TaskNode.js.map +1 -0
- package/dist/domain/TaskRow.d.ts +222 -0
- package/dist/domain/TaskRow.d.ts.map +1 -0
- package/dist/domain/TaskRow.js +260 -0
- package/dist/domain/TaskRow.js.map +1 -0
- package/dist/domain/TaskRowCreator.d.ts +11 -0
- package/dist/domain/TaskRowCreator.d.ts.map +1 -0
- package/dist/domain/TaskRowCreator.js +3 -0
- package/dist/domain/TaskRowCreator.js.map +1 -0
- package/dist/domain/TaskService.d.ts +18 -0
- package/dist/domain/TaskService.d.ts.map +1 -0
- package/dist/domain/TaskService.js +56 -0
- package/dist/domain/TaskService.js.map +1 -0
- package/dist/domain/index.d.ts +9 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/index.js +25 -0
- package/dist/domain/index.js.map +1 -0
- package/dist/infrastructure/ExcelBufferProjectCreator.d.ts +9 -0
- package/dist/infrastructure/ExcelBufferProjectCreator.d.ts.map +1 -0
- package/dist/infrastructure/ExcelBufferProjectCreator.js +23 -0
- package/dist/infrastructure/ExcelBufferProjectCreator.js.map +1 -0
- package/dist/infrastructure/ExcelProjectCreator.d.ts +8 -0
- package/dist/infrastructure/ExcelProjectCreator.d.ts.map +1 -0
- package/dist/infrastructure/ExcelProjectCreator.js +31 -0
- package/dist/infrastructure/ExcelProjectCreator.js.map +1 -0
- package/dist/infrastructure/ExcelTaskRowCreator.d.ts +8 -0
- package/dist/infrastructure/ExcelTaskRowCreator.d.ts.map +1 -0
- package/dist/infrastructure/ExcelTaskRowCreator.js +24 -0
- package/dist/infrastructure/ExcelTaskRowCreator.js.map +1 -0
- package/dist/infrastructure/MappingProjectCreator.d.ts +9 -0
- package/dist/infrastructure/MappingProjectCreator.d.ts.map +1 -0
- package/dist/infrastructure/MappingProjectCreator.js +36 -0
- package/dist/infrastructure/MappingProjectCreator.js.map +1 -0
- package/dist/infrastructure/ProjectRepositoryImpl.d.ts +6 -0
- package/dist/infrastructure/ProjectRepositoryImpl.d.ts.map +1 -0
- package/dist/infrastructure/ProjectRepositoryImpl.js +124 -0
- package/dist/infrastructure/ProjectRepositoryImpl.js.map +1 -0
- package/dist/infrastructure/TaskRowCreatorImpl.d.ts +11 -0
- package/dist/infrastructure/TaskRowCreatorImpl.d.ts.map +1 -0
- package/dist/infrastructure/TaskRowCreatorImpl.js +135 -0
- package/dist/infrastructure/TaskRowCreatorImpl.js.map +1 -0
- package/dist/infrastructure/TaskRowFactory.d.ts +9 -0
- package/dist/infrastructure/TaskRowFactory.d.ts.map +1 -0
- package/dist/infrastructure/TaskRowFactory.js +47 -0
- package/dist/infrastructure/TaskRowFactory.js.map +1 -0
- package/dist/infrastructure/index.d.ts +9 -0
- package/dist/infrastructure/index.d.ts.map +1 -0
- package/dist/infrastructure/index.js +25 -0
- package/dist/infrastructure/index.js.map +1 -0
- package/dist/infrastructure/types.d.ts +29 -0
- package/dist/infrastructure/types.d.ts.map +1 -0
- package/dist/infrastructure/types.js +66 -0
- package/dist/infrastructure/types.js.map +1 -0
- package/dist/logger.d.ts +7 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +42 -0
- package/dist/logger.js.map +1 -0
- package/dist/presentation/cli-pbevm-diff.d.ts +2 -0
- package/dist/presentation/cli-pbevm-diff.d.ts.map +1 -0
- package/dist/presentation/cli-pbevm-diff.js +39 -0
- package/dist/presentation/cli-pbevm-diff.js.map +1 -0
- package/dist/presentation/cli-pbevm-show-project.d.ts +2 -0
- package/dist/presentation/cli-pbevm-show-project.d.ts.map +1 -0
- package/dist/presentation/cli-pbevm-show-project.js +38 -0
- package/dist/presentation/cli-pbevm-show-project.js.map +1 -0
- package/dist/presentation/cli-pbevm-summary.d.ts +3 -0
- package/dist/presentation/cli-pbevm-summary.d.ts.map +1 -0
- package/dist/presentation/cli-pbevm-summary.js +35 -0
- package/dist/presentation/cli-pbevm-summary.js.map +1 -0
- package/dist/presentation/cli-test.d.ts +3 -0
- package/dist/presentation/cli-test.d.ts.map +1 -0
- package/dist/presentation/cli-test.js +123 -0
- package/dist/presentation/cli-test.js.map +1 -0
- package/dist/presentation/project-test2.d.ts +22 -0
- package/dist/presentation/project-test2.d.ts.map +1 -0
- package/dist/presentation/project-test2.js +106 -0
- package/dist/presentation/project-test2.js.map +1 -0
- package/dist/usercase/index.d.ts +4 -0
- package/dist/usercase/index.d.ts.map +1 -0
- package/dist/usercase/index.js +20 -0
- package/dist/usercase/index.js.map +1 -0
- package/dist/usercase/pbevm-diff-usercase.d.ts +10 -0
- package/dist/usercase/pbevm-diff-usercase.d.ts.map +1 -0
- package/dist/usercase/pbevm-diff-usercase.js +67 -0
- package/dist/usercase/pbevm-diff-usercase.js.map +1 -0
- package/dist/usercase/pbevm-show-project-usecase.d.ts +10 -0
- package/dist/usercase/pbevm-show-project-usecase.d.ts.map +1 -0
- package/dist/usercase/pbevm-show-project-usecase.js +19 -0
- package/dist/usercase/pbevm-show-project-usecase.js.map +1 -0
- package/dist/usercase/pbevm-summary-usercase.d.ts +8 -0
- package/dist/usercase/pbevm-summary-usercase.d.ts.map +1 -0
- package/dist/usercase/pbevm-summary-usercase.js +47 -0
- package/dist/usercase/pbevm-summary-usercase.js.map +1 -0
- package/eslint.config.mjs +25 -0
- package/now.xlsm +0 -0
- package/package.json +71 -0
- package/prev.xlsm +0 -0
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatRelativeDays = exports.formatRelativeDaysNumber = exports.minDate = exports.maxDate = exports.average = exports.round = exports.sum = exports.dateStr = exports.generateBaseDates = void 0;
|
|
4
|
+
exports.printTaskNodes = printTaskNodes;
|
|
5
|
+
exports.printTaskRows = printTaskRows;
|
|
6
|
+
exports.printTask = printTask;
|
|
7
|
+
/**
|
|
8
|
+
* FROM/TOの日付を渡して、日付配列を作る。今のところJSTで作成する事
|
|
9
|
+
* @param from 例 new Date('2025-06-01T00:00:00+09:00'),
|
|
10
|
+
* @param to 例 new Date('2025-06-30T00:00:00+09:00')
|
|
11
|
+
* @returns
|
|
12
|
+
*/
|
|
13
|
+
const generateBaseDates = (from, to) => {
|
|
14
|
+
const dates = [];
|
|
15
|
+
const current = new Date(from); // from を複製
|
|
16
|
+
while (current <= to) {
|
|
17
|
+
dates.push(new Date(current)); // コピーして格納
|
|
18
|
+
current.setDate(current.getDate() + 1); // 1日進める
|
|
19
|
+
}
|
|
20
|
+
return dates;
|
|
21
|
+
};
|
|
22
|
+
exports.generateBaseDates = generateBaseDates;
|
|
23
|
+
/**
|
|
24
|
+
* date をyyyy/mmdd表記する
|
|
25
|
+
* @param date
|
|
26
|
+
* @returns
|
|
27
|
+
*/
|
|
28
|
+
const dateStr = (date) => {
|
|
29
|
+
if (!date)
|
|
30
|
+
return '';
|
|
31
|
+
return date.toLocaleString('ja-JP', {
|
|
32
|
+
timeZone: 'Asia/Tokyo',
|
|
33
|
+
year: 'numeric',
|
|
34
|
+
month: '2-digit',
|
|
35
|
+
day: '2-digit',
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
exports.dateStr = dateStr;
|
|
39
|
+
function printTaskNodes(taskNodes, baseDates) {
|
|
40
|
+
// TaskNode自体が Iterable なので、rootTaskごとにIterateする
|
|
41
|
+
for (const rootTask of taskNodes) {
|
|
42
|
+
// rootTaskごとにfor文を回せば良い
|
|
43
|
+
for (const row of rootTask) {
|
|
44
|
+
printTask(row, baseDates);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function printTaskRows(rows, baseDates) {
|
|
49
|
+
for (const row of rows) {
|
|
50
|
+
printTask(row, baseDates);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
function printTask(row, baseDates) {
|
|
54
|
+
if (!row.isLeaf)
|
|
55
|
+
return;
|
|
56
|
+
console.log('-----');
|
|
57
|
+
console.log('row.id', 'row.name', 'row.isLeaf', 'baseDateDisp', 'row.calculatePV(baseDate)', 'row.calculatePVs(baseDate)'
|
|
58
|
+
// baseDatesn,
|
|
59
|
+
// 'baseDate'
|
|
60
|
+
);
|
|
61
|
+
for (const baseDate of baseDates) {
|
|
62
|
+
// const baseDatesn = date2Sn(baseDate)
|
|
63
|
+
const baseDateDisp = (0, exports.dateStr)(baseDate);
|
|
64
|
+
console.log(row.id, row.name, row.isLeaf, baseDateDisp, row.calculatePV(baseDate), row.calculatePVs(baseDate)
|
|
65
|
+
// baseDatesn,
|
|
66
|
+
// baseDate
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* 足し算する
|
|
72
|
+
*/
|
|
73
|
+
const sumFunc = (prev, current) => (current ? prev + current : prev);
|
|
74
|
+
const sum = (numbers, scale) => {
|
|
75
|
+
if (numbers) {
|
|
76
|
+
// const nonNullDatas = numbers.filter((number) => !!number) // undefinedを除去
|
|
77
|
+
const nonNullDatas = numbers.filter((number) => number != null); // null または undefined を除去
|
|
78
|
+
if (nonNullDatas.length > 0) {
|
|
79
|
+
const result = nonNullDatas.reduce(sumFunc, 0);
|
|
80
|
+
return (0, exports.round)(result, scale);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
exports.sum = sum;
|
|
85
|
+
/**
|
|
86
|
+
* 四捨五入して、scale位にする
|
|
87
|
+
* @param num
|
|
88
|
+
* @param scale
|
|
89
|
+
* @returns
|
|
90
|
+
*/
|
|
91
|
+
const round = (num, scale = 10) => Math.round(num * 10 ** scale) / 10 ** scale;
|
|
92
|
+
exports.round = round;
|
|
93
|
+
/**
|
|
94
|
+
*
|
|
95
|
+
* @param numbers 平均
|
|
96
|
+
* @returns
|
|
97
|
+
*/
|
|
98
|
+
const average = (numbers, scale = 3) => {
|
|
99
|
+
if (numbers) {
|
|
100
|
+
// const nonNullDatas = numbers.filter((data) => !!data) // undefinedを除去
|
|
101
|
+
const nonNullDatas = numbers.filter((data) => data != null); // null または undefined を除去
|
|
102
|
+
// console.log(nonNullDatas)
|
|
103
|
+
if (nonNullDatas.length > 0) {
|
|
104
|
+
const result = (0, exports.sum)(nonNullDatas) / nonNullDatas.length;
|
|
105
|
+
return (0, exports.round)(result, scale);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
exports.average = average;
|
|
110
|
+
/**
|
|
111
|
+
* Date配列を引数にとり、MaxやMinを選んで返す
|
|
112
|
+
*
|
|
113
|
+
* @param dates
|
|
114
|
+
* @param maxOrMinDate
|
|
115
|
+
* @returns
|
|
116
|
+
*/
|
|
117
|
+
const maxOrMinDate = (dates, maxOrMinDate) => {
|
|
118
|
+
const datesNum = dates
|
|
119
|
+
.filter((date) => !(date === undefined))
|
|
120
|
+
.map((date) => date.getTime());
|
|
121
|
+
return datesNum.length > 0 ? new Date(maxOrMinDate(...datesNum)) : undefined;
|
|
122
|
+
};
|
|
123
|
+
const maxDate = (dates) => maxOrMinDate(dates, Math.max);
|
|
124
|
+
exports.maxDate = maxDate;
|
|
125
|
+
const minDate = (dates) => maxOrMinDate(dates, Math.min);
|
|
126
|
+
exports.minDate = minDate;
|
|
127
|
+
/**
|
|
128
|
+
* baseDate(基準日) に比べて targetDate(おもに期限) が何日後かを計算して返す
|
|
129
|
+
* base 2025/07/19 target 2025/07/18 => -1
|
|
130
|
+
* @param baseDate
|
|
131
|
+
* @param targetDate
|
|
132
|
+
* @param locale
|
|
133
|
+
* @returns
|
|
134
|
+
*/
|
|
135
|
+
const formatRelativeDaysNumber = (baseDate, targetDate) => {
|
|
136
|
+
if (!baseDate || !targetDate)
|
|
137
|
+
return undefined;
|
|
138
|
+
const base = new Date(baseDate);
|
|
139
|
+
const target = new Date(targetDate);
|
|
140
|
+
const diffMs = target.getTime() - base.getTime();
|
|
141
|
+
const diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24));
|
|
142
|
+
return diffDays;
|
|
143
|
+
};
|
|
144
|
+
exports.formatRelativeDaysNumber = formatRelativeDaysNumber;
|
|
145
|
+
/**
|
|
146
|
+
* baseDate(基準日) に比べて targetDate(おもに期限) が何日後かを計算して返す
|
|
147
|
+
* (文字列で)
|
|
148
|
+
* base 2025/07/19 target 2025/07/18 => -1
|
|
149
|
+
* @param baseDate
|
|
150
|
+
* @param targetDate
|
|
151
|
+
* @param locale
|
|
152
|
+
* @returns
|
|
153
|
+
*/
|
|
154
|
+
const formatRelativeDays = (baseDate, targetDate, locale = 'ja') => {
|
|
155
|
+
const diffDays = (0, exports.formatRelativeDaysNumber)(baseDate, targetDate);
|
|
156
|
+
if (diffDays === undefined)
|
|
157
|
+
return undefined;
|
|
158
|
+
const rtf = new Intl.RelativeTimeFormat(locale, { numeric: 'auto' });
|
|
159
|
+
return rtf.format(diffDays, 'day'); // "in 3 days" → "3日後"
|
|
160
|
+
};
|
|
161
|
+
exports.formatRelativeDays = formatRelativeDays;
|
|
162
|
+
// if (!module.parent) { /* empty */ }
|
|
163
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/common/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { TaskNode } from './TaskNode';
|
|
2
|
+
import { TaskRow } from './TaskRow';
|
|
3
|
+
export declare class Project {
|
|
4
|
+
private _taskNodes;
|
|
5
|
+
private _baseDate;
|
|
6
|
+
private _startDate?;
|
|
7
|
+
private _endDate?;
|
|
8
|
+
private _name?;
|
|
9
|
+
private _taskService;
|
|
10
|
+
constructor(_taskNodes: TaskNode[], _baseDate: Date, _startDate?: Date | undefined, _endDate?: Date | undefined, _name?: string | undefined);
|
|
11
|
+
get baseDate(): Date;
|
|
12
|
+
get taskNodes(): TaskNode[];
|
|
13
|
+
get startDate(): Date | undefined;
|
|
14
|
+
get endDate(): Date | undefined;
|
|
15
|
+
get name(): string | undefined;
|
|
16
|
+
get length(): number;
|
|
17
|
+
toTaskRows(): TaskRow[];
|
|
18
|
+
printAndGetRawData: (printRowNum?: number) => {
|
|
19
|
+
予定開始日: string;
|
|
20
|
+
予定終了日: string;
|
|
21
|
+
実績開始日: string;
|
|
22
|
+
実績終了日: string;
|
|
23
|
+
進捗応当日: string;
|
|
24
|
+
sharp: number;
|
|
25
|
+
id: number;
|
|
26
|
+
level: number;
|
|
27
|
+
name: string;
|
|
28
|
+
assignee?: string | undefined;
|
|
29
|
+
workload?: number | undefined;
|
|
30
|
+
progressRate?: number | undefined;
|
|
31
|
+
scheduledWorkDays?: number | undefined;
|
|
32
|
+
pv?: number | undefined;
|
|
33
|
+
ev?: number | undefined;
|
|
34
|
+
spi?: number | undefined;
|
|
35
|
+
delayDays?: number | undefined;
|
|
36
|
+
remarks?: string | undefined;
|
|
37
|
+
parentId?: number | undefined;
|
|
38
|
+
isLeaf?: boolean | undefined;
|
|
39
|
+
}[];
|
|
40
|
+
/**
|
|
41
|
+
* Project単位の統計情報を返す
|
|
42
|
+
* @param project
|
|
43
|
+
* @returns
|
|
44
|
+
*/
|
|
45
|
+
get statisticsByProject(): ProjectStatistics[];
|
|
46
|
+
get statisticsByName(): AssigneeStatistics[];
|
|
47
|
+
/**
|
|
48
|
+
* LongData形式のPV情報を返す
|
|
49
|
+
* @param calcPVS 累積が欲しいときはtrue、デフォルトはfalse
|
|
50
|
+
* @returns LongData[]
|
|
51
|
+
*/
|
|
52
|
+
private _internalPvByProjectLong;
|
|
53
|
+
/**
|
|
54
|
+
* Projectごともしくはヒトごとのデータについて、ひと単位の横並びデータに並び替える
|
|
55
|
+
* Excelに表示するなどはこちらが良い
|
|
56
|
+
* @param longDatas
|
|
57
|
+
* @returns
|
|
58
|
+
*/
|
|
59
|
+
private _toWideFormat;
|
|
60
|
+
private _internalPvByProject;
|
|
61
|
+
get pvByProjectLong(): LongData[];
|
|
62
|
+
get pvsByProjectLong(): LongData[];
|
|
63
|
+
get pvByProject(): Record<string, unknown>[];
|
|
64
|
+
get pvsByProject(): Record<string, unknown>[];
|
|
65
|
+
private _internalPvByNameLong;
|
|
66
|
+
private _internalPvByName;
|
|
67
|
+
get pvByNameLong(): LongData[];
|
|
68
|
+
get pvsByNameLong(): LongData[];
|
|
69
|
+
get pvByName(): Record<string, unknown>[];
|
|
70
|
+
get pvsByName(): Record<string, unknown>[];
|
|
71
|
+
}
|
|
72
|
+
export declare const isValidNumber: (value: unknown) => value is number;
|
|
73
|
+
export declare const calcRate: (a: number | undefined, b: number | undefined) => number | undefined;
|
|
74
|
+
export type Statistics = {
|
|
75
|
+
totalTasksCount?: number;
|
|
76
|
+
totalWorkloadExcel?: number;
|
|
77
|
+
totalWorkloadCalculated?: number;
|
|
78
|
+
averageWorkload?: number;
|
|
79
|
+
baseDate: string;
|
|
80
|
+
totalPvExcel?: number;
|
|
81
|
+
totalPvCalculated?: number;
|
|
82
|
+
totalEv?: number;
|
|
83
|
+
spi?: number;
|
|
84
|
+
};
|
|
85
|
+
export type ProjectStatistics = {
|
|
86
|
+
projectName?: string;
|
|
87
|
+
startDate: string;
|
|
88
|
+
endDate: string;
|
|
89
|
+
} & Statistics;
|
|
90
|
+
export type AssigneeStatistics = {
|
|
91
|
+
assignee?: string;
|
|
92
|
+
} & Statistics;
|
|
93
|
+
export type LongData = {
|
|
94
|
+
assignee: string;
|
|
95
|
+
baseDate: string;
|
|
96
|
+
value?: number;
|
|
97
|
+
};
|
|
98
|
+
//# sourceMappingURL=Project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Project.d.ts","sourceRoot":"","sources":["../../src/domain/Project.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,qBAAa,OAAO;IAIZ,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,UAAU,CAAC;IACnB,OAAO,CAAC,QAAQ,CAAC;IACjB,OAAO,CAAC,KAAK,CAAC;IAPlB,OAAO,CAAC,YAAY,CAAoB;gBAG5B,UAAU,EAAE,QAAQ,EAAE,EACtB,SAAS,EAAE,IAAI,EACf,UAAU,CAAC,EAAE,IAAI,YAAA,EACjB,QAAQ,CAAC,EAAE,IAAI,YAAA,EACf,KAAK,CAAC,EAAE,MAAM,YAAA;IAG1B,IAAI,QAAQ,SAEX;IACD,IAAI,SAAS,eAEZ;IAED,IAAI,SAAS,qBAEZ;IACD,IAAI,OAAO,qBAEV;IACD,IAAI,IAAI,uBAEP;IAED,IAAI,MAAM,WAET;IAED,UAAU,IAAI,OAAO,EAAE;IAIvB,kBAAkB,GAAI,cAAc,MAAM;;;;;;;;;;;;;;;;;;;;;QA2CzC;IAED;;;;OAIG;IACH,IAAI,mBAAmB,IAAI,iBAAiB,EAAE,CA0B7C;IAED,IAAI,gBAAgB,IAAI,kBAAkB,EAAE,CAwB3C;IAED;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IA4ChC;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,oBAAoB;IAK5B,IAAI,eAAe,eAElB;IACD,IAAI,gBAAgB,eAEnB;IAED,IAAI,WAAW,8BAEd;IAED,IAAI,YAAY,8BAEf;IAED,OAAO,CAAC,qBAAqB;IA0C7B,OAAO,CAAC,iBAAiB;IAKzB,IAAI,YAAY,eAEf;IAED,IAAI,aAAa,eAEhB;IAED,IAAI,QAAQ,8BAEX;IAED,IAAI,SAAS,8BAEZ;CACJ;AA0BD,eAAO,MAAM,aAAa,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MACH,CAAA;AAcrD,eAAO,MAAM,QAAQ,GAAI,GAAG,MAAM,GAAG,SAAS,EAAE,GAAG,MAAM,GAAG,SAAS,uBAKpE,CAAA;AAoBD,MAAM,MAAM,UAAU,GAAG;IACrB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,GAAG,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CAClB,GAAG,UAAU,CAAA;AAEd,MAAM,MAAM,kBAAkB,GAAG;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAA;CACpB,GAAG,UAAU,CAAA;AAEd,MAAM,MAAM,QAAQ,GAAG;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA"}
|
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.calcRate = exports.isValidNumber = exports.Project = void 0;
|
|
4
|
+
const tidy_1 = require("@tidyjs/tidy");
|
|
5
|
+
const common_1 = require("../common");
|
|
6
|
+
const TaskService_1 = require("./TaskService");
|
|
7
|
+
class Project {
|
|
8
|
+
constructor(_taskNodes, _baseDate, _startDate, _endDate, _name) {
|
|
9
|
+
this._taskNodes = _taskNodes;
|
|
10
|
+
this._baseDate = _baseDate;
|
|
11
|
+
this._startDate = _startDate;
|
|
12
|
+
this._endDate = _endDate;
|
|
13
|
+
this._name = _name;
|
|
14
|
+
this._taskService = new TaskService_1.TaskService();
|
|
15
|
+
this.printAndGetRawData = (printRowNum) => {
|
|
16
|
+
console.log(`プロジェクト名: ${this._name}`);
|
|
17
|
+
console.log(`開始日: ${(0, common_1.dateStr)(this._startDate)}`);
|
|
18
|
+
console.log(`終了日: ${(0, common_1.dateStr)(this._endDate)}`);
|
|
19
|
+
console.log(`基準日: ${(0, common_1.dateStr)(this._baseDate)}`);
|
|
20
|
+
// console.table(this._taskNodes)
|
|
21
|
+
const taskRows = this.toTaskRows();
|
|
22
|
+
const rows = taskRows.map((taskRow) => {
|
|
23
|
+
const {
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
25
|
+
calculatePV,
|
|
26
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
27
|
+
calculatePVs,
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
29
|
+
plotMap,
|
|
30
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
31
|
+
checkStartEndDateAndPlotMap, startDate, endDate, actualStartDate, actualEndDate, expectedProgressDate, ...rest // ココのデータだけが出力される
|
|
32
|
+
} = taskRow;
|
|
33
|
+
return {
|
|
34
|
+
...rest,
|
|
35
|
+
予定開始日: (0, common_1.dateStr)(startDate),
|
|
36
|
+
予定終了日: (0, common_1.dateStr)(endDate),
|
|
37
|
+
実績開始日: (0, common_1.dateStr)(actualStartDate),
|
|
38
|
+
実績終了日: (0, common_1.dateStr)(actualEndDate),
|
|
39
|
+
進捗応当日: (0, common_1.dateStr)(expectedProgressDate),
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
// ユーザ入力値か、未指定なら全部。入力値が大きいときも全部
|
|
43
|
+
// const num = printRowNum && printRowNum <= rows.length ? printRowNum : rows.length
|
|
44
|
+
const taskCount = rows.length;
|
|
45
|
+
console.log(`タスク数:${taskCount}件`);
|
|
46
|
+
const numToShow = Math.min(printRowNum ?? taskCount, taskCount);
|
|
47
|
+
console.log(`先頭${numToShow}行データ:`);
|
|
48
|
+
console.table(rows.slice(0, numToShow));
|
|
49
|
+
return rows;
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
get baseDate() {
|
|
53
|
+
return this._baseDate;
|
|
54
|
+
}
|
|
55
|
+
get taskNodes() {
|
|
56
|
+
return this._taskNodes;
|
|
57
|
+
}
|
|
58
|
+
get startDate() {
|
|
59
|
+
return this._startDate;
|
|
60
|
+
}
|
|
61
|
+
get endDate() {
|
|
62
|
+
return this._endDate;
|
|
63
|
+
}
|
|
64
|
+
get name() {
|
|
65
|
+
return this._name;
|
|
66
|
+
}
|
|
67
|
+
get length() {
|
|
68
|
+
return this.toTaskRows().length;
|
|
69
|
+
}
|
|
70
|
+
toTaskRows() {
|
|
71
|
+
return this._taskService.convertToTaskRows(this._taskNodes);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Project単位の統計情報を返す
|
|
75
|
+
* @param project
|
|
76
|
+
* @returns
|
|
77
|
+
*/
|
|
78
|
+
get statisticsByProject() {
|
|
79
|
+
const name = this._name;
|
|
80
|
+
const baseDate = this._baseDate;
|
|
81
|
+
const startDate = this._startDate; // Date|undefinedだけど、実際はほぼ確実に、存在する(タスクが0コとか)
|
|
82
|
+
const endDate = this._endDate; // Date|undefinedだけど、実際はほぼ確実に、存在する(タスクが0コとか)
|
|
83
|
+
const rows = this.toTaskRows();
|
|
84
|
+
const result = (0, tidy_1.tidy)(rows, (0, tidy_1.filter)((row) => row.isLeaf), //フォルダの情報は不要
|
|
85
|
+
(0, tidy_1.summarize)({
|
|
86
|
+
projectName: () => name,
|
|
87
|
+
startDate: () => (0, common_1.dateStr)(startDate),
|
|
88
|
+
endDate: () => (0, common_1.dateStr)(endDate),
|
|
89
|
+
totalTasksCount: (group) => group.length,
|
|
90
|
+
totalWorkloadExcel: sumWorkload, // Excel工数(task#workload) の 足し算
|
|
91
|
+
totalWorkloadCalculated: (group) => sumCalculatePVs(group, endDate), // endDate時の、計算、累積pv(したのヤツ) の、足し算
|
|
92
|
+
averageWorkload: averageWorkload,
|
|
93
|
+
baseDate: () => (0, common_1.dateStr)(baseDate),
|
|
94
|
+
totalPvExcel: sumPVs, // Excel累積pv(TaskRow#pv) の足し算
|
|
95
|
+
totalPvCalculated: (group) => sumCalculatePVs(group, baseDate), // 計算、累積pv(TaskRow#calculatePVs(baseDate)) の、足し算
|
|
96
|
+
totalEv: sumEVs, // Excel累積Ev(TaskRow#ev) の足し算
|
|
97
|
+
spi: (group) => calculateSPI(group, baseDate),
|
|
98
|
+
}));
|
|
99
|
+
// console.table(result)
|
|
100
|
+
return result;
|
|
101
|
+
}
|
|
102
|
+
get statisticsByName() {
|
|
103
|
+
const baseDate = this._baseDate;
|
|
104
|
+
const endDate = this._endDate;
|
|
105
|
+
const rows = this.toTaskRows();
|
|
106
|
+
const result = (0, tidy_1.tidy)(rows, (0, tidy_1.filter)((row) => row.isLeaf), //フォルダの情報は不要
|
|
107
|
+
(0, tidy_1.groupBy)('assignee', [
|
|
108
|
+
(0, tidy_1.summarize)({
|
|
109
|
+
totalTasksCount: (group) => group.length,
|
|
110
|
+
totalWorkloadExcel: sumWorkload,
|
|
111
|
+
totalWorkloadCalculated: (group) => sumCalculatePVs(group, endDate),
|
|
112
|
+
averageWorkload: averageWorkload,
|
|
113
|
+
baseDate: () => (0, common_1.dateStr)(baseDate),
|
|
114
|
+
totalPvExcel: sumPVs,
|
|
115
|
+
totalPvCalculated: (group) => sumCalculatePVs(group, baseDate),
|
|
116
|
+
totalEv: sumEVs,
|
|
117
|
+
spi: (group) => calculateSPI(group, baseDate),
|
|
118
|
+
}),
|
|
119
|
+
]));
|
|
120
|
+
// console.table(result)
|
|
121
|
+
return result;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* LongData形式のPV情報を返す
|
|
125
|
+
* @param calcPVS 累積が欲しいときはtrue、デフォルトはfalse
|
|
126
|
+
* @returns LongData[]
|
|
127
|
+
*/
|
|
128
|
+
_internalPvByProjectLong(calcPVS = false) {
|
|
129
|
+
// const baseDate = project.baseDate
|
|
130
|
+
const from = this._startDate;
|
|
131
|
+
const to = this._endDate;
|
|
132
|
+
// const projectName = this._name
|
|
133
|
+
if (!(from && to)) {
|
|
134
|
+
throw new Error('fromかtoが取得できませんでした');
|
|
135
|
+
}
|
|
136
|
+
const baseDates = (0, common_1.generateBaseDates)(from, to);
|
|
137
|
+
const rows = this.toTaskRows();
|
|
138
|
+
const longFormat = [];
|
|
139
|
+
for (const baseDate of baseDates) {
|
|
140
|
+
const label = (0, common_1.dateStr)(baseDate);
|
|
141
|
+
const result = (0, tidy_1.tidy)(rows, (0, tidy_1.filter)((row) => row.isLeaf), //フォルダの情報は不要
|
|
142
|
+
// filter((row: TaskRow) => row.assignee !== undefined),
|
|
143
|
+
(0, tidy_1.summarize)({
|
|
144
|
+
[`${label}`]: (group) => calcPVS
|
|
145
|
+
? sumCalculatePVs(group, baseDate)
|
|
146
|
+
: sumCalculatePV(group, baseDate),
|
|
147
|
+
// 基準日ごとに、担当者でグルーピングされたPVデータを足している
|
|
148
|
+
}));
|
|
149
|
+
// console.table(result)
|
|
150
|
+
for (const row of result) {
|
|
151
|
+
const name = (row.assignee ?? '(未割当)');
|
|
152
|
+
longFormat.push({
|
|
153
|
+
assignee: name,
|
|
154
|
+
baseDate: label,
|
|
155
|
+
value: row[label],
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return longFormat;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Projectごともしくはヒトごとのデータについて、ひと単位の横並びデータに並び替える
|
|
163
|
+
* Excelに表示するなどはこちらが良い
|
|
164
|
+
* @param longDatas
|
|
165
|
+
* @returns
|
|
166
|
+
*/
|
|
167
|
+
_toWideFormat(longDatas) {
|
|
168
|
+
const wideMap = new Map();
|
|
169
|
+
for (const { assignee, baseDate, value } of longDatas) {
|
|
170
|
+
// const mapKey = `${assignee}::${fromClass}->${toClass}`
|
|
171
|
+
// assigneeごとに、baseDateプロパティを追加していく(pvデータを横並びにしたい)
|
|
172
|
+
const mapKey = assignee;
|
|
173
|
+
if (!wideMap.has(mapKey)) {
|
|
174
|
+
wideMap.set(mapKey, { assignee });
|
|
175
|
+
}
|
|
176
|
+
wideMap.get(mapKey)[baseDate] = value;
|
|
177
|
+
}
|
|
178
|
+
return Array.from(wideMap.values());
|
|
179
|
+
}
|
|
180
|
+
_internalPvByProject(calcPVS = false) {
|
|
181
|
+
const longDatas = this._internalPvByProjectLong(calcPVS);
|
|
182
|
+
return this._toWideFormat(longDatas);
|
|
183
|
+
}
|
|
184
|
+
get pvByProjectLong() {
|
|
185
|
+
return this._internalPvByProjectLong();
|
|
186
|
+
}
|
|
187
|
+
get pvsByProjectLong() {
|
|
188
|
+
return this._internalPvByProjectLong(true);
|
|
189
|
+
}
|
|
190
|
+
get pvByProject() {
|
|
191
|
+
return this._internalPvByProject();
|
|
192
|
+
}
|
|
193
|
+
get pvsByProject() {
|
|
194
|
+
return this._internalPvByProject(true);
|
|
195
|
+
}
|
|
196
|
+
_internalPvByNameLong(calcPVS = false) {
|
|
197
|
+
const from = this._startDate;
|
|
198
|
+
const to = this._endDate;
|
|
199
|
+
if (!(from && to)) {
|
|
200
|
+
throw new Error('fromかtoが取得できませんでした');
|
|
201
|
+
}
|
|
202
|
+
const baseDates = (0, common_1.generateBaseDates)(from, to);
|
|
203
|
+
const rows = this.toTaskRows();
|
|
204
|
+
const longFormat = [];
|
|
205
|
+
for (const baseDate of baseDates) {
|
|
206
|
+
const label = (0, common_1.dateStr)(baseDate);
|
|
207
|
+
const result = (0, tidy_1.tidy)(rows, (0, tidy_1.filter)((row) => row.isLeaf), //フォルダの情報は不要
|
|
208
|
+
// filter((row: TaskRow) => row.assignee !== undefined),
|
|
209
|
+
(0, tidy_1.groupBy)('assignee', [
|
|
210
|
+
(0, tidy_1.summarize)({
|
|
211
|
+
[`${label}`]: (group) => calcPVS
|
|
212
|
+
? sumCalculatePVs(group, baseDate)
|
|
213
|
+
: sumCalculatePV(group, baseDate), // 基準日ごとに、担当者でグルーピングされたPVデータを足している
|
|
214
|
+
}),
|
|
215
|
+
]));
|
|
216
|
+
// console.table(result)
|
|
217
|
+
for (const row of result) {
|
|
218
|
+
const name = (row.assignee ?? '(未割当)');
|
|
219
|
+
longFormat.push({
|
|
220
|
+
assignee: name,
|
|
221
|
+
baseDate: label,
|
|
222
|
+
value: row[label],
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
return longFormat;
|
|
227
|
+
}
|
|
228
|
+
_internalPvByName(calcPVS = false) {
|
|
229
|
+
const longDatas = this._internalPvByNameLong(calcPVS);
|
|
230
|
+
return this._toWideFormat(longDatas);
|
|
231
|
+
}
|
|
232
|
+
get pvByNameLong() {
|
|
233
|
+
return this._internalPvByNameLong();
|
|
234
|
+
}
|
|
235
|
+
get pvsByNameLong() {
|
|
236
|
+
return this._internalPvByNameLong(true);
|
|
237
|
+
}
|
|
238
|
+
get pvByName() {
|
|
239
|
+
return this._internalPvByName();
|
|
240
|
+
}
|
|
241
|
+
get pvsByName() {
|
|
242
|
+
return this._internalPvByName(true);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
exports.Project = Project;
|
|
246
|
+
const sumWorkload = (group) => (0, common_1.sum)(group.map((d) => d.workload ?? 0));
|
|
247
|
+
const averageWorkload = (group) => (0, common_1.average)(group.map((d) => d.workload ?? 0));
|
|
248
|
+
const sumCalculatePV = (group, baseDate) => (0, common_1.sum)(group.map((d) => d.calculatePV(baseDate) ?? 0), 3);
|
|
249
|
+
const sumCalculatePVs = (group, baseDate) => (0, common_1.sum)(group.map((d) => d.calculatePVs(baseDate) ?? 0), 3);
|
|
250
|
+
const sumPVs = (group) => (0, common_1.sum)(group.map((d) => d.pv ?? 0), 3); // 基準日ごとに、担当者でグルーピングされたPVデータを足している
|
|
251
|
+
const sumEVs = (group) => (0, common_1.sum)(group.map((d) => d.ev ?? 0), 3);
|
|
252
|
+
const isValidNumber = (value) => typeof value === 'number' && !Number.isNaN(value);
|
|
253
|
+
exports.isValidNumber = isValidNumber;
|
|
254
|
+
// const calcSPI = (group: TaskRow[]) => {
|
|
255
|
+
// const ev = sumEVs(group)
|
|
256
|
+
// const pv = sumPVs(group)
|
|
257
|
+
// return calcRate(ev, pv)
|
|
258
|
+
// }
|
|
259
|
+
const calculateSPI = (group, baseDate) => {
|
|
260
|
+
const ev = sumEVs(group);
|
|
261
|
+
const pv = sumCalculatePVs(group, baseDate);
|
|
262
|
+
return (0, exports.calcRate)(ev, pv);
|
|
263
|
+
};
|
|
264
|
+
const calcRate = (a, b) => {
|
|
265
|
+
if ((0, exports.isValidNumber)(b) && (0, exports.isValidNumber)(a) && b !== 0) {
|
|
266
|
+
return a / b;
|
|
267
|
+
}
|
|
268
|
+
return undefined;
|
|
269
|
+
};
|
|
270
|
+
exports.calcRate = calcRate;
|
|
271
|
+
// /**
|
|
272
|
+
// * タスク情報
|
|
273
|
+
// */
|
|
274
|
+
// private nu.mine.kino.entity.TaskInformation[] taskInformations;
|
|
275
|
+
// /**
|
|
276
|
+
// * プロジェクト開始日
|
|
277
|
+
// */
|
|
278
|
+
// private java.util.Date projectStartDate;
|
|
279
|
+
// /**
|
|
280
|
+
// * プロジェクト終了日
|
|
281
|
+
// */
|
|
282
|
+
// private java.util.Date projectEndDate;
|
|
283
|
+
// /**
|
|
284
|
+
// * 基準日
|
|
285
|
+
// */
|
|
286
|
+
// private java.util.Date baseDate;
|
|
287
|
+
// /**
|
|
288
|
+
// * 休日カレンダー
|
|
289
|
+
// */
|
|
290
|
+
// private nu.mine.kino.entity.Holiday[] holidays;
|
|
291
|
+
//# sourceMappingURL=Project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Project.js","sourceRoot":"","sources":["../../src/domain/Project.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectCreator.d.ts","sourceRoot":"","sources":["../../src/domain/ProjectCreator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;CACpC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectCreator.js","sourceRoot":"","sources":["../../src/domain/ProjectCreator.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectProgressCreator.d.ts","sourceRoot":"","sources":["../../src/domain/ProjectProgressCreator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAE/D,MAAM,WAAW,sBAAsB;IACnC,qBAAqB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAAA;CACtD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectProgressCreator.js","sourceRoot":"","sources":["../../src/domain/ProjectProgressCreator.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectRepository.d.ts","sourceRoot":"","sources":["../../src/domain/ProjectRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,MAAM,WAAW,iBAAiB;IAC9B,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAaxC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectRepository.js","sourceRoot":"","sources":["../../src/domain/ProjectRepository.ts"],"names":[],"mappings":""}
|