@dssp/supervision 1.0.0-alpha.30 → 1.0.0-alpha.32
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/dist-client/pages/building-inspection/building-inspection-list.js +34 -6
- package/dist-client/pages/building-inspection/building-inspection-list.js.map +1 -1
- package/dist-client/pages/building-inspection/component/daily-worklog-popup.d.ts +5 -0
- package/dist-client/pages/building-inspection/component/daily-worklog-popup.js +149 -38
- package/dist-client/pages/building-inspection/component/daily-worklog-popup.js.map +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-mutation.js +1 -1
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-mutation.js.map +1 -1
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.d.ts +2 -0
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.js +39 -3
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.js.map +1 -1
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.d.ts +4 -0
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.js +16 -0
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.js.map +1 -1
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.d.ts +6 -0
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.js +28 -0
- package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
|
@@ -16,7 +16,7 @@ let BuildingInspectionDailyWorklogMutation = class BuildingInspectionDailyWorklo
|
|
|
16
16
|
throw new Error('projectId 가 없습니다.');
|
|
17
17
|
if (!patch.date)
|
|
18
18
|
throw new Error('date 가 없습니다.');
|
|
19
|
-
const result = await worklogRepo.save(Object.assign(Object.assign({}, patch), { documentNo: await (0, building_inspection_daily_worklog_query_1.generateDailyWorklogDocumentNo)(patch.projectId), domain: domain, creator: user, updater: user }));
|
|
19
|
+
const result = await worklogRepo.save(Object.assign(Object.assign({}, patch), { overallSupervisory: patch.overallSupervisoryId ? { id: patch.overallSupervisoryId } : undefined, taskSupervisory: patch.taskSupervisoryId ? { id: patch.taskSupervisoryId } : undefined, documentNo: await (0, building_inspection_daily_worklog_query_1.generateDailyWorklogDocumentNo)(patch.projectId), domain: domain, creator: user, updater: user }));
|
|
20
20
|
for (const buildingInspectionId of patch.buildingInspectionIds) {
|
|
21
21
|
const buildingInspection = await buildingInspectionRepo.findOne({ where: { id: buildingInspectionId } });
|
|
22
22
|
await buildingInspectionRepo.save(Object.assign(Object.assign({}, buildingInspection), { worklog: result }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"building-inspection-daily-worklog-mutation.js","sourceRoot":"","sources":["../../../server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAAsE;AACtE,2FAAoF;AACpF,qGAAiI;AACjI,oFAA+E;AAC/E,uGAA0F;AAGnF,IAAM,sCAAsC,GAA5C,MAAM,sCAAsC;IAG3C,AAAN,KAAK,CAAC,oCAAoC,CAC1B,KAAwC,EAC/C,OAAwB;QAE/B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAC1C,MAAM,WAAW,GAAG,EAAE,CAAC,aAAa,CAAC,kEAA8B,CAAC,CAAA;QACpE,MAAM,sBAAsB,GAAG,EAAE,CAAC,aAAa,CAAC,wCAAkB,CAAC,CAAA;QAEnE,IAAI,CAAC,KAAK,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;QAC1D,IAAI,CAAC,KAAK,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;QAEhD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,iCAChC,KAAK,KACR,UAAU,EAAE,MAAM,IAAA,wEAA8B,EAAC,KAAK,CAAC,SAAS,CAAC,EACjE,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,IACb,CAAA;QAEF,KAAK,MAAM,oBAAoB,IAAI,KAAK,CAAC,qBAAqB,EAAE,CAAC;YAC/D,MAAM,kBAAkB,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAA;YACxG,MAAM,sBAAsB,CAAC,IAAI,iCAAM,kBAAkB,KAAE,OAAO,EAAE,MAAM,IAAG,CAAA;QAC/E,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAIK,AAAN,KAAK,CAAC,oCAAoC,CAC1B,KAA0C,EACjD,OAAwB;QAE/B,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAClC,MAAM,WAAW,GAAG,EAAE,CAAC,aAAa,CAAC,kEAA8B,CAAC,CAAA;QAEpE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QACrE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,+CAChC,MAAM,GACN,KAAK,KACR,OAAO,EAAE,IAAI,IACb,CAAA;QAEF,OAAO,MAAM,CAAA;IACf,CAAC;CACF,CAAA;
|
|
1
|
+
{"version":3,"file":"building-inspection-daily-worklog-mutation.js","sourceRoot":"","sources":["../../../server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'\nimport { BuildingInspectionDailyWorklog } from './building-inspection-daily-worklog'\nimport { BuildingInspectionDailyWorklogPatch, BuildingInspectionDailyWorklogNew } from './building-inspection-daily-worklog-type'\nimport { BuildingInspection } from '../building-inspection/building-inspection'\nimport { generateDailyWorklogDocumentNo } from './building-inspection-daily-worklog-query'\n\n@Resolver(BuildingInspectionDailyWorklog)\nexport class BuildingInspectionDailyWorklogMutation {\n @Directive('@transaction')\n @Mutation(returns => BuildingInspectionDailyWorklog, { description: 'Create Daily Worklog by projectId+date' })\n async createBuildingInspectionDailyWorklog(\n @Arg('patch') patch: BuildingInspectionDailyWorklogNew,\n @Ctx() context: ResolverContext\n ): Promise<BuildingInspectionDailyWorklog> {\n const { user, domain, tx } = context.state\n const worklogRepo = tx.getRepository(BuildingInspectionDailyWorklog)\n const buildingInspectionRepo = tx.getRepository(BuildingInspection)\n\n if (!patch.projectId) throw new Error('projectId 가 없습니다.')\n if (!patch.date) throw new Error('date 가 없습니다.')\n\n const result = await worklogRepo.save({\n ...patch,\n overallSupervisory: patch.overallSupervisoryId ? ({ id: patch.overallSupervisoryId } as any) : undefined,\n taskSupervisory: patch.taskSupervisoryId ? ({ id: patch.taskSupervisoryId } as any) : undefined,\n documentNo: await generateDailyWorklogDocumentNo(patch.projectId),\n domain: domain,\n creator: user,\n updater: user\n })\n\n for (const buildingInspectionId of patch.buildingInspectionIds) {\n const buildingInspection = await buildingInspectionRepo.findOne({ where: { id: buildingInspectionId } })\n await buildingInspectionRepo.save({ ...buildingInspection, worklog: result })\n }\n\n return result\n }\n\n @Directive('@transaction')\n @Mutation(returns => BuildingInspectionDailyWorklog, { description: 'Update Daily Worklog' })\n async updateBuildingInspectionDailyWorklog(\n @Arg('patch') patch: BuildingInspectionDailyWorklogPatch,\n @Ctx() context: ResolverContext\n ): Promise<BuildingInspectionDailyWorklog> {\n const { user, tx } = context.state\n const worklogRepo = tx.getRepository(BuildingInspectionDailyWorklog)\n\n const origin = await worklogRepo.findOne({ where: { id: patch.id } })\n const result = await worklogRepo.save({\n ...origin,\n ...patch,\n updater: user\n })\n\n return result\n }\n}\n"]}
|
|
@@ -10,5 +10,7 @@ export declare class BuildingInspectionDailyWorklogQuery {
|
|
|
10
10
|
domain(worklog: BuildingInspectionDailyWorklog): Promise<Domain>;
|
|
11
11
|
updater(worklog: BuildingInspectionDailyWorklog): Promise<User>;
|
|
12
12
|
creator(worklog: BuildingInspectionDailyWorklog): Promise<User>;
|
|
13
|
+
overallSupervisory(worklog: BuildingInspectionDailyWorklog): Promise<User>;
|
|
14
|
+
taskSupervisory(worklog: BuildingInspectionDailyWorklog): Promise<User>;
|
|
13
15
|
}
|
|
14
16
|
export declare function generateDailyWorklogDocumentNo(projectId: string): Promise<string>;
|
|
@@ -31,11 +31,20 @@ let BuildingInspectionDailyWorklogQuery = class BuildingInspectionDailyWorklogQu
|
|
|
31
31
|
.select('bi.id', 'buildingInspectionId')
|
|
32
32
|
.addSelect('c.location', 'location')
|
|
33
33
|
.addSelect('c.construction_type', 'constructionType')
|
|
34
|
+
.addSelect('c.id', 'checklistId')
|
|
35
|
+
.addSelect('c.task_supervisory_signature', 'taskSupervisorySignature')
|
|
36
|
+
.addSelect('c.overall_supervisory_signature', 'overallSupervisorySignature')
|
|
37
|
+
.addSelect('c.task_supervisory_id', 'taskSupervisoryId')
|
|
38
|
+
.addSelect('c.overall_supervisory_id', 'overallSupervisoryId')
|
|
39
|
+
.addSelect('u.name', 'taskSupervisoryName')
|
|
40
|
+
.addSelect('u2.name', 'overallSupervisoryName')
|
|
34
41
|
.leftJoin('building_complexes', 'bc', 'p.building_complex_id = bc.id')
|
|
35
42
|
.leftJoin('buildings', 'b', 'b.building_complex_id = bc.id')
|
|
36
43
|
.leftJoin('building_levels', 'bl', 'bl.building_id = b.id')
|
|
37
44
|
.leftJoin('building_inspections', 'bi', 'bi.building_level_id = bl.id')
|
|
38
45
|
.leftJoin('checklists', 'c', 'bi.checklist_id = c.id')
|
|
46
|
+
.leftJoin('users', 'u', 'u.id = c.task_supervisory_id')
|
|
47
|
+
.leftJoin('users', 'u2', 'u2.id = c.overall_supervisory_id')
|
|
39
48
|
.where('p.id = :projectId', { projectId })
|
|
40
49
|
.andWhere('bi.project_type = :projectType', { projectType })
|
|
41
50
|
.andWhere('bi.worklog_id IS NULL')
|
|
@@ -48,10 +57,15 @@ let BuildingInspectionDailyWorklogQuery = class BuildingInspectionDailyWorklogQu
|
|
|
48
57
|
supervisoryTitle: inspection.constructionType,
|
|
49
58
|
supervisorContent: `${inspection.location} - ${inspection.constructionType} 검측 완료`
|
|
50
59
|
}));
|
|
51
|
-
const
|
|
52
|
-
id: inspection.buildingInspectionId
|
|
60
|
+
const buildingInspectionsData = buildingInspections.map(inspection => ({
|
|
61
|
+
id: inspection.buildingInspectionId,
|
|
62
|
+
checklistId: inspection.checklistId
|
|
53
63
|
}));
|
|
54
|
-
return {
|
|
64
|
+
return {
|
|
65
|
+
documentNo,
|
|
66
|
+
worklogs: worklogsData,
|
|
67
|
+
buildingInspections: buildingInspectionsData
|
|
68
|
+
};
|
|
55
69
|
}
|
|
56
70
|
async dailyWorklogDatesOfProject(projectId, startDate, endDate, context) {
|
|
57
71
|
const result = await (0, shell_1.getRepository)(building_inspection_daily_worklog_1.BuildingInspectionDailyWorklog).find({
|
|
@@ -69,6 +83,14 @@ let BuildingInspectionDailyWorklogQuery = class BuildingInspectionDailyWorklogQu
|
|
|
69
83
|
async creator(worklog) {
|
|
70
84
|
return await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: worklog.creatorId });
|
|
71
85
|
}
|
|
86
|
+
async overallSupervisory(worklog) {
|
|
87
|
+
return worklog.overallSupervisoryId
|
|
88
|
+
? await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: worklog.overallSupervisoryId })
|
|
89
|
+
: undefined;
|
|
90
|
+
}
|
|
91
|
+
async taskSupervisory(worklog) {
|
|
92
|
+
return worklog.taskSupervisoryId ? await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: worklog.taskSupervisoryId }) : undefined;
|
|
93
|
+
}
|
|
72
94
|
};
|
|
73
95
|
exports.BuildingInspectionDailyWorklogQuery = BuildingInspectionDailyWorklogQuery;
|
|
74
96
|
tslib_1.__decorate([
|
|
@@ -111,6 +133,20 @@ tslib_1.__decorate([
|
|
|
111
133
|
tslib_1.__metadata("design:paramtypes", [building_inspection_daily_worklog_1.BuildingInspectionDailyWorklog]),
|
|
112
134
|
tslib_1.__metadata("design:returntype", Promise)
|
|
113
135
|
], BuildingInspectionDailyWorklogQuery.prototype, "creator", null);
|
|
136
|
+
tslib_1.__decorate([
|
|
137
|
+
(0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
|
|
138
|
+
tslib_1.__param(0, (0, type_graphql_1.Root)()),
|
|
139
|
+
tslib_1.__metadata("design:type", Function),
|
|
140
|
+
tslib_1.__metadata("design:paramtypes", [building_inspection_daily_worklog_1.BuildingInspectionDailyWorklog]),
|
|
141
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
142
|
+
], BuildingInspectionDailyWorklogQuery.prototype, "overallSupervisory", null);
|
|
143
|
+
tslib_1.__decorate([
|
|
144
|
+
(0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
|
|
145
|
+
tslib_1.__param(0, (0, type_graphql_1.Root)()),
|
|
146
|
+
tslib_1.__metadata("design:type", Function),
|
|
147
|
+
tslib_1.__metadata("design:paramtypes", [building_inspection_daily_worklog_1.BuildingInspectionDailyWorklog]),
|
|
148
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
149
|
+
], BuildingInspectionDailyWorklogQuery.prototype, "taskSupervisory", null);
|
|
114
150
|
exports.BuildingInspectionDailyWorklogQuery = BuildingInspectionDailyWorklogQuery = tslib_1.__decorate([
|
|
115
151
|
(0, type_graphql_1.Resolver)(building_inspection_daily_worklog_1.BuildingInspectionDailyWorklog)
|
|
116
152
|
], BuildingInspectionDailyWorklogQuery);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"building-inspection-daily-worklog-query.js","sourceRoot":"","sources":["../../../server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Query, FieldResolver, Root, Arg, Ctx } from 'type-graphql'\nimport { Domain, getRepository } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { BuildingInspectionDailyWorklog } from './building-inspection-daily-worklog'\nimport { DocumentNoType } from '../checklist/checklist'\nimport { ProjectType } from '../building-inspection/building-inspection'\nimport { config } from '@things-factory/env'\nimport moment from 'moment-timezone'\nimport { Between } from 'typeorm'\n\nconst projectType = config.get('projectType', ProjectType.DSSP)\n\n@Resolver(BuildingInspectionDailyWorklog)\nexport class BuildingInspectionDailyWorklogQuery {\n /**\n * 프로젝트와 날짜로 일일업무일지 조회. 없으면 새 문서번호를 생성해 빈 데이터를 반환\n */\n @Query(returns => BuildingInspectionDailyWorklog, { nullable: true })\n async buildingInspectionDailyWorklogByProjectIdAndDate(\n @Arg('projectId') projectId: string,\n @Arg('date') date: string,\n @Ctx() context: ResolverContext\n ): Promise<BuildingInspectionDailyWorklog> {\n const repository = getRepository(BuildingInspectionDailyWorklog)\n const worklogs = await repository.findOne({ where: { projectId, date } })\n\n // 워크로그가 존재하면 해당 데이터를 반환\n if (worklogs) return worklogs\n\n // 존재하지 않으면 새 문서번호와 검측되지 않은 검측 데이터를 반환\n const requestDate = moment(date).format('YYYY-MM-DD')\n const documentNo = await generateDailyWorklogDocumentNo(projectId)\n const buildingInspections = await getRepository('projects')\n .createQueryBuilder('p')\n .select('bi.id', 'buildingInspectionId')\n .addSelect('c.location', 'location')\n .addSelect('c.construction_type', 'constructionType')\n .leftJoin('building_complexes', 'bc', 'p.building_complex_id = bc.id')\n .leftJoin('buildings', 'b', 'b.building_complex_id = bc.id')\n .leftJoin('building_levels', 'bl', 'bl.building_id = b.id')\n .leftJoin('building_inspections', 'bi', 'bi.building_level_id = bl.id')\n .leftJoin('checklists', 'c', 'bi.checklist_id = c.id')\n .where('p.id = :projectId', { projectId })\n .andWhere('bi.project_type = :projectType', { projectType })\n .andWhere('bi.worklog_id IS NULL')\n .andWhere('c.inspection_result_updated_at IS NOT NULL') // 검측 결과 요청서가 생성된 경우\n .andWhere('bi.request_date <= :requestDate', { requestDate })\n .getRawMany()\n\n // 선택된 검측 정보들의 정보 셋팅하여 신규 일일 업무일지에 기본 셋팅\n const worklogsData = buildingInspections.map(inspection => ({\n constructionType: inspection.constructionType,\n supervisoryTitle: inspection.constructionType,\n supervisorContent: `${inspection.location} - ${inspection.constructionType} 검측 완료`\n }))\n const buildingInspectionsIds = buildingInspections.map(inspection => ({\n id: inspection.buildingInspectionId\n }))\n\n return { documentNo, worklogs: worklogsData, buildingInspections: buildingInspectionsIds } as BuildingInspectionDailyWorklog\n }\n\n @Query(returns => [BuildingInspectionDailyWorklog])\n async dailyWorklogDatesOfProject(\n @Arg('projectId') projectId: string,\n @Arg('startDate') startDate: string,\n @Arg('endDate') endDate: string,\n @Ctx() context: ResolverContext\n ): Promise<BuildingInspectionDailyWorklog[]> {\n const result = await getRepository(BuildingInspectionDailyWorklog).find({\n where: { projectId, date: Between(startDate, endDate) },\n order: { date: 'ASC' }\n })\n\n return result\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() worklog: BuildingInspectionDailyWorklog): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: worklog.domainId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() worklog: BuildingInspectionDailyWorklog): Promise<User> {\n return await getRepository(User).findOneBy({ id: worklog.updaterId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() worklog: BuildingInspectionDailyWorklog): Promise<User> {\n return await getRepository(User).findOneBy({ id: worklog.creatorId })\n }\n}\n\nexport async function generateDailyWorklogDocumentNo(projectId: string): Promise<string> {\n // 프로젝트의 documentNaming을 가져오고, 일일업무일지(04) 최신 번호를 찾아 +1\n const project = await getRepository<any>('projects').findOne({ where: { id: projectId } })\n const naming: string = project?.documentNaming || ''\n\n const latest = await getRepository(BuildingInspectionDailyWorklog)\n .createQueryBuilder('d')\n .where('d.project_id = :projectId', { projectId })\n .andWhere('d.document_no LIKE :pattern', { pattern: `${naming} 검측 제${DocumentNoType.DAILY_WORKLOG}-%` })\n .orderBy('d.created_at', 'DESC')\n .getOne()\n\n let sequence = '00001'\n if (latest?.documentNo) {\n const match = latest.documentNo.match(/\\-(\\d{5})호$/)\n if (match) sequence = (Number(match[1]) + 1).toString().padStart(5, '0')\n }\n\n return `${naming} 검측 제04-${sequence}호`\n}\n"]}
|
|
1
|
+
{"version":3,"file":"building-inspection-daily-worklog-query.js","sourceRoot":"","sources":["../../../server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Query, FieldResolver, Root, Arg, Ctx } from 'type-graphql'\nimport { Domain, getRepository } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { BuildingInspectionDailyWorklog } from './building-inspection-daily-worklog'\nimport { DocumentNoType } from '../checklist/checklist'\nimport { BuildingInspection, ProjectType } from '../building-inspection/building-inspection'\nimport { config } from '@things-factory/env'\nimport moment from 'moment-timezone'\nimport { Between } from 'typeorm'\n\nconst projectType = config.get('projectType', ProjectType.DSSP)\n\n@Resolver(BuildingInspectionDailyWorklog)\nexport class BuildingInspectionDailyWorklogQuery {\n /**\n * 프로젝트와 날짜로 일일업무일지 조회. 없으면 새 문서번호를 생성해 빈 데이터를 반환\n */\n @Query(returns => BuildingInspectionDailyWorklog, { nullable: true })\n async buildingInspectionDailyWorklogByProjectIdAndDate(\n @Arg('projectId') projectId: string,\n @Arg('date') date: string,\n @Ctx() context: ResolverContext\n ): Promise<BuildingInspectionDailyWorklog> {\n const repository = getRepository(BuildingInspectionDailyWorklog)\n const worklogs = await repository.findOne({ where: { projectId, date } })\n\n // 워크로그가 존재하면 해당 데이터를 반환\n if (worklogs) return worklogs\n\n // 존재하지 않으면 새 문서번호와 검측되지 않은 검측 데이터를 반환\n const requestDate = moment(date).format('YYYY-MM-DD')\n const documentNo = await generateDailyWorklogDocumentNo(projectId)\n const buildingInspections = await getRepository('projects')\n .createQueryBuilder('p')\n .select('bi.id', 'buildingInspectionId')\n .addSelect('c.location', 'location')\n .addSelect('c.construction_type', 'constructionType')\n .addSelect('c.id', 'checklistId')\n .addSelect('c.task_supervisory_signature', 'taskSupervisorySignature')\n .addSelect('c.overall_supervisory_signature', 'overallSupervisorySignature')\n .addSelect('c.task_supervisory_id', 'taskSupervisoryId')\n .addSelect('c.overall_supervisory_id', 'overallSupervisoryId')\n .addSelect('u.name', 'taskSupervisoryName')\n .addSelect('u2.name', 'overallSupervisoryName')\n .leftJoin('building_complexes', 'bc', 'p.building_complex_id = bc.id')\n .leftJoin('buildings', 'b', 'b.building_complex_id = bc.id')\n .leftJoin('building_levels', 'bl', 'bl.building_id = b.id')\n .leftJoin('building_inspections', 'bi', 'bi.building_level_id = bl.id')\n .leftJoin('checklists', 'c', 'bi.checklist_id = c.id')\n .leftJoin('users', 'u', 'u.id = c.task_supervisory_id')\n .leftJoin('users', 'u2', 'u2.id = c.overall_supervisory_id')\n .where('p.id = :projectId', { projectId })\n .andWhere('bi.project_type = :projectType', { projectType })\n .andWhere('bi.worklog_id IS NULL')\n .andWhere('c.inspection_result_updated_at IS NOT NULL') // 검측 결과 요청서가 생성된 경우\n .andWhere('bi.request_date <= :requestDate', { requestDate })\n .getRawMany()\n\n // 선택된 검측 정보들의 정보 셋팅하여 신규 일일 업무일지에 기본 셋팅\n const worklogsData = buildingInspections.map(inspection => ({\n constructionType: inspection.constructionType,\n supervisoryTitle: inspection.constructionType,\n supervisorContent: `${inspection.location} - ${inspection.constructionType} 검측 완료`\n }))\n const buildingInspectionsData = buildingInspections.map(inspection => ({\n id: inspection.buildingInspectionId,\n checklistId: inspection.checklistId\n }))\n\n return {\n documentNo,\n worklogs: worklogsData,\n buildingInspections: buildingInspectionsData as BuildingInspection[]\n } as BuildingInspectionDailyWorklog\n }\n\n @Query(returns => [BuildingInspectionDailyWorklog])\n async dailyWorklogDatesOfProject(\n @Arg('projectId') projectId: string,\n @Arg('startDate') startDate: string,\n @Arg('endDate') endDate: string,\n @Ctx() context: ResolverContext\n ): Promise<BuildingInspectionDailyWorklog[]> {\n const result = await getRepository(BuildingInspectionDailyWorklog).find({\n where: { projectId, date: Between(startDate, endDate) },\n order: { date: 'ASC' }\n })\n\n return result\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() worklog: BuildingInspectionDailyWorklog): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: worklog.domainId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() worklog: BuildingInspectionDailyWorklog): Promise<User> {\n return await getRepository(User).findOneBy({ id: worklog.updaterId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() worklog: BuildingInspectionDailyWorklog): Promise<User> {\n return await getRepository(User).findOneBy({ id: worklog.creatorId })\n }\n\n @FieldResolver(type => User)\n async overallSupervisory(@Root() worklog: BuildingInspectionDailyWorklog): Promise<User> {\n return worklog.overallSupervisoryId\n ? await getRepository(User).findOneBy({ id: worklog.overallSupervisoryId })\n : (undefined as any)\n }\n\n @FieldResolver(type => User)\n async taskSupervisory(@Root() worklog: BuildingInspectionDailyWorklog): Promise<User> {\n return worklog.taskSupervisoryId ? await getRepository(User).findOneBy({ id: worklog.taskSupervisoryId }) : (undefined as any)\n }\n}\n\nexport async function generateDailyWorklogDocumentNo(projectId: string): Promise<string> {\n // 프로젝트의 documentNaming을 가져오고, 일일업무일지(04) 최신 번호를 찾아 +1\n const project = await getRepository<any>('projects').findOne({ where: { id: projectId } })\n const naming: string = project?.documentNaming || ''\n\n const latest = await getRepository(BuildingInspectionDailyWorklog)\n .createQueryBuilder('d')\n .where('d.project_id = :projectId', { projectId })\n .andWhere('d.document_no LIKE :pattern', { pattern: `${naming} 검측 제${DocumentNoType.DAILY_WORKLOG}-%` })\n .orderBy('d.created_at', 'DESC')\n .getOne()\n\n let sequence = '00001'\n if (latest?.documentNo) {\n const match = latest.documentNo.match(/\\-(\\d{5})호$/)\n if (match) sequence = (Number(match[1]) + 1).toString().padStart(5, '0')\n }\n\n return `${naming} 검측 제04-${sequence}호`\n}\n"]}
|
|
@@ -5,6 +5,10 @@ export declare class BuildingInspectionDailyWorklogNew {
|
|
|
5
5
|
worklogs?: any;
|
|
6
6
|
memo?: string;
|
|
7
7
|
directiveMemo?: string;
|
|
8
|
+
overallSupervisoryId?: string;
|
|
9
|
+
taskSupervisoryId?: string;
|
|
10
|
+
overallSupervisorySignature?: string;
|
|
11
|
+
taskSupervisorySignature?: string;
|
|
8
12
|
buildingInspectionIds?: string[];
|
|
9
13
|
}
|
|
10
14
|
export declare class BuildingInspectionDailyWorklogPatch {
|
|
@@ -28,6 +28,22 @@ tslib_1.__decorate([
|
|
|
28
28
|
(0, type_graphql_1.Field)({ nullable: true }),
|
|
29
29
|
tslib_1.__metadata("design:type", String)
|
|
30
30
|
], BuildingInspectionDailyWorklogNew.prototype, "directiveMemo", void 0);
|
|
31
|
+
tslib_1.__decorate([
|
|
32
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
33
|
+
tslib_1.__metadata("design:type", String)
|
|
34
|
+
], BuildingInspectionDailyWorklogNew.prototype, "overallSupervisoryId", void 0);
|
|
35
|
+
tslib_1.__decorate([
|
|
36
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
37
|
+
tslib_1.__metadata("design:type", String)
|
|
38
|
+
], BuildingInspectionDailyWorklogNew.prototype, "taskSupervisoryId", void 0);
|
|
39
|
+
tslib_1.__decorate([
|
|
40
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
41
|
+
tslib_1.__metadata("design:type", String)
|
|
42
|
+
], BuildingInspectionDailyWorklogNew.prototype, "overallSupervisorySignature", void 0);
|
|
43
|
+
tslib_1.__decorate([
|
|
44
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
45
|
+
tslib_1.__metadata("design:type", String)
|
|
46
|
+
], BuildingInspectionDailyWorklogNew.prototype, "taskSupervisorySignature", void 0);
|
|
31
47
|
tslib_1.__decorate([
|
|
32
48
|
(0, type_graphql_1.Field)(type => [String], { nullable: true }),
|
|
33
49
|
tslib_1.__metadata("design:type", Array)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"building-inspection-daily-worklog-type.js","sourceRoot":"","sources":["../../../server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAoE;AACpE,iDAAoD;AACpD,2FAAoF;AAG7E,IAAM,iCAAiC,GAAvC,MAAM,iCAAiC;
|
|
1
|
+
{"version":3,"file":"building-inspection-daily-worklog-type.js","sourceRoot":"","sources":["../../../server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAoE;AACpE,iDAAoD;AACpD,2FAAoF;AAG7E,IAAM,iCAAiC,GAAvC,MAAM,iCAAiC;CA8B7C,CAAA;AA9BY,8EAAiC;AAE5C;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;oEACT;AAGlB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;+DACd;AAGb;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;mEAClC;AAGd;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+DACb;AAGb;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wEACJ;AAGtB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+EACG;AAG7B;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4EACA;AAG1B;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sFACU;AAGpC;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;mFACO;AAGjC;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gFACZ;4CA7BrB,iCAAiC;IAD7C,IAAA,wBAAS,GAAE;GACC,iCAAiC,CA8B7C;AAGM,IAAM,mCAAmC,GAAzC,MAAM,mCAAmC;CAY/C,CAAA;AAZY,kFAAmC;AAE9C;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;+DAC5B;AAGX;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qEAClC;AAGd;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iEACb;AAGb;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0EACJ;8CAXX,mCAAmC;IAD/C,IAAA,wBAAS,GAAE;GACC,mCAAmC,CAY/C;AAGM,IAAM,kCAAkC,GAAxC,MAAM,kCAAkC;CAM9C,CAAA;AANY,gFAAkC;AAE7C;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,kEAA8B,CAAC,CAAC;;iEACT;AAGvC;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,CAAC;;iEACN;6CALF,kCAAkC;IAD9C,IAAA,yBAAU,GAAE;GACA,kCAAkC,CAM9C","sourcesContent":["import { ObjectType, Field, InputType, Int, ID } from 'type-graphql'\nimport { ScalarObject } from '@things-factory/shell'\nimport { BuildingInspectionDailyWorklog } from './building-inspection-daily-worklog'\n\n@InputType()\nexport class BuildingInspectionDailyWorklogNew {\n @Field({ nullable: false })\n projectId!: string\n\n @Field({ nullable: false })\n date?: string\n\n @Field(type => ScalarObject, { nullable: true })\n worklogs?: any\n\n @Field({ nullable: true })\n memo?: string\n\n @Field({ nullable: true })\n directiveMemo?: string\n\n @Field({ nullable: true })\n overallSupervisoryId?: string\n\n @Field({ nullable: true })\n taskSupervisoryId?: string\n\n @Field({ nullable: true })\n overallSupervisorySignature?: string\n\n @Field({ nullable: true })\n taskSupervisorySignature?: string\n\n @Field(type => [String], { nullable: true })\n buildingInspectionIds?: string[]\n}\n\n@InputType()\nexport class BuildingInspectionDailyWorklogPatch {\n @Field(type => ID, { nullable: false })\n id?: string\n\n @Field(type => ScalarObject, { nullable: true })\n worklogs?: any\n\n @Field({ nullable: true })\n memo?: string\n\n @Field({ nullable: true })\n directiveMemo?: string\n}\n\n@ObjectType()\nexport class BuildingInspectionDailyWorklogList {\n @Field(type => [BuildingInspectionDailyWorklog])\n items: BuildingInspectionDailyWorklog[]\n\n @Field(type => Int)\n total: number\n}\n"]}
|
package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.d.ts
CHANGED
|
@@ -16,6 +16,12 @@ export declare class BuildingInspectionDailyWorklog {
|
|
|
16
16
|
worklogs?: Worklog[];
|
|
17
17
|
memo?: string;
|
|
18
18
|
directiveMemo?: string;
|
|
19
|
+
overallSupervisory?: User;
|
|
20
|
+
overallSupervisoryId?: string;
|
|
21
|
+
taskSupervisory?: User;
|
|
22
|
+
taskSupervisoryId?: string;
|
|
23
|
+
overallSupervisorySignature?: string;
|
|
24
|
+
taskSupervisorySignature?: string;
|
|
19
25
|
buildingInspections?: BuildingInspection[];
|
|
20
26
|
createdAt?: Date;
|
|
21
27
|
updatedAt?: Date;
|
package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.js
CHANGED
|
@@ -55,6 +55,34 @@ tslib_1.__decorate([
|
|
|
55
55
|
(0, type_graphql_1.Field)({ nullable: true }),
|
|
56
56
|
tslib_1.__metadata("design:type", String)
|
|
57
57
|
], BuildingInspectionDailyWorklog.prototype, "directiveMemo", void 0);
|
|
58
|
+
tslib_1.__decorate([
|
|
59
|
+
(0, typeorm_1.ManyToOne)(type => auth_base_1.User, { nullable: true }),
|
|
60
|
+
(0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true, description: '총괄 감리 책임자' }),
|
|
61
|
+
tslib_1.__metadata("design:type", auth_base_1.User)
|
|
62
|
+
], BuildingInspectionDailyWorklog.prototype, "overallSupervisory", void 0);
|
|
63
|
+
tslib_1.__decorate([
|
|
64
|
+
(0, typeorm_1.RelationId)((worklog) => worklog.overallSupervisory),
|
|
65
|
+
tslib_1.__metadata("design:type", String)
|
|
66
|
+
], BuildingInspectionDailyWorklog.prototype, "overallSupervisoryId", void 0);
|
|
67
|
+
tslib_1.__decorate([
|
|
68
|
+
(0, typeorm_1.ManyToOne)(type => auth_base_1.User, { nullable: true }),
|
|
69
|
+
(0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true, description: '건축사보 (공종별 감리 관리자)' }),
|
|
70
|
+
tslib_1.__metadata("design:type", auth_base_1.User)
|
|
71
|
+
], BuildingInspectionDailyWorklog.prototype, "taskSupervisory", void 0);
|
|
72
|
+
tslib_1.__decorate([
|
|
73
|
+
(0, typeorm_1.RelationId)((worklog) => worklog.taskSupervisory),
|
|
74
|
+
tslib_1.__metadata("design:type", String)
|
|
75
|
+
], BuildingInspectionDailyWorklog.prototype, "taskSupervisoryId", void 0);
|
|
76
|
+
tslib_1.__decorate([
|
|
77
|
+
(0, typeorm_1.Column)({ nullable: true, comment: '총괄 감리 책임자 사인' }),
|
|
78
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
79
|
+
tslib_1.__metadata("design:type", String)
|
|
80
|
+
], BuildingInspectionDailyWorklog.prototype, "overallSupervisorySignature", void 0);
|
|
81
|
+
tslib_1.__decorate([
|
|
82
|
+
(0, typeorm_1.Column)({ nullable: true, comment: '건축사보 (공종별 감리 관리자) 사인' }),
|
|
83
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
84
|
+
tslib_1.__metadata("design:type", String)
|
|
85
|
+
], BuildingInspectionDailyWorklog.prototype, "taskSupervisorySignature", void 0);
|
|
58
86
|
tslib_1.__decorate([
|
|
59
87
|
(0, typeorm_1.OneToMany)(type => building_inspection_1.BuildingInspection, buildingInspection => buildingInspection.worklog),
|
|
60
88
|
(0, type_graphql_1.Field)(type => [building_inspection_1.BuildingInspection], { nullable: true }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"building-inspection-daily-worklog.js","sourceRoot":"","sources":["../../../server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.ts"],"names":[],"mappings":";;;;AAAA,qCAWgB;AAChB,+CAAoD;AAEpD,iDAA4D;AAC5D,yDAAgD;AAChD,oFAA+E;AAcxE,IAAM,8BAA8B,GAApC,MAAM,8BAA8B;
|
|
1
|
+
{"version":3,"file":"building-inspection-daily-worklog.js","sourceRoot":"","sources":["../../../server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CreateDateColumn,\n UpdateDateColumn,\n DeleteDateColumn,\n Entity,\n Index,\n Column,\n RelationId,\n ManyToOne,\n PrimaryGeneratedColumn,\n OneToMany\n} from 'typeorm'\nimport { ObjectType, Field, ID } from 'type-graphql'\n\nimport { Domain, ScalarObject } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { BuildingInspection } from '../building-inspection/building-inspection'\n\nexport interface Worklog {\n constructionType: string\n supervisoryTitle: string\n supervisorContent: string\n}\n\n@Entity({ comment: '일일 업무일지' })\n@Index('ix_building_inspection_daily_worklog_0', (worklog: BuildingInspectionDailyWorklog) => [worklog.projectId, worklog.date], {\n unique: true,\n where: '\"deleted_at\" IS NULL'\n})\n@ObjectType({ description: 'Entity for BuildingInspectionDailyWorklog' })\nexport class BuildingInspectionDailyWorklog {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID, { nullable: true })\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field({ nullable: true })\n domain?: Domain\n\n @RelationId((worklog: BuildingInspectionDailyWorklog) => worklog.domain)\n domainId?: string\n\n @Column({ nullable: false, comment: '프로젝트 ID' })\n @Field({ nullable: false })\n projectId!: string\n\n @Column({ nullable: true, comment: '문서번호 - {네이밍} 검측 제04-00001호)' }) // DocumentNoType 참조\n @Field({ nullable: true })\n documentNo?: string\n\n @Column({ type: 'date', nullable: true, comment: '작성 날짜' })\n @Field(type => String, { nullable: true })\n date?: string\n\n @Column({ type: 'simple-json', nullable: true, comment: '작업사항' })\n @Field(type => ScalarObject, { nullable: true })\n worklogs?: Worklog[]\n\n @Column({ nullable: true, comment: '특기사항' })\n @Field({ nullable: true })\n memo?: string\n\n @Column({ nullable: true, comment: '지적 사항 및 처리결과' })\n @Field({ nullable: true })\n directiveMemo?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: '총괄 감리 책임자' })\n overallSupervisory?: User\n\n @RelationId((worklog: BuildingInspectionDailyWorklog) => worklog.overallSupervisory)\n overallSupervisoryId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: '건축사보 (공종별 감리 관리자)' })\n taskSupervisory?: User\n\n @RelationId((worklog: BuildingInspectionDailyWorklog) => worklog.taskSupervisory)\n taskSupervisoryId?: string\n\n @Column({ nullable: true, comment: '총괄 감리 책임자 사인' })\n @Field({ nullable: true })\n overallSupervisorySignature?: string\n\n @Column({ nullable: true, comment: '건축사보 (공종별 감리 관리자) 사인' })\n @Field({ nullable: true })\n taskSupervisorySignature?: string\n\n @OneToMany(type => BuildingInspection, buildingInspection => buildingInspection.worklog)\n @Field(type => [BuildingInspection], { nullable: true })\n buildingInspections?: BuildingInspection[]\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @DeleteDateColumn()\n @Field({ nullable: true })\n deletedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((worklog: BuildingInspectionDailyWorklog) => worklog.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((worklog: BuildingInspectionDailyWorklog) => worklog.updater)\n updaterId?: string\n}\n"]}
|