@dssp/dkpi 1.0.30 → 1.0.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/project-complete-tabs/pc-tab1-plan.d.ts +1 -10
- package/dist-client/pages/project-complete-tabs/pc-tab1-plan.js +22 -64
- package/dist-client/pages/project-complete-tabs/pc-tab1-plan.js.map +1 -1
- package/dist-client/pages/sv-project-update.d.ts +2 -3
- package/dist-client/pages/sv-project-update.js +156 -17
- package/dist-client/pages/sv-project-update.js.map +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-server/service/kpi-metric-value/kpi-metric-value-mutation.d.ts +6 -1
- package/dist-server/service/kpi-metric-value/kpi-metric-value-mutation.js +12 -15
- package/dist-server/service/kpi-metric-value/kpi-metric-value-mutation.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/schema.graphql +1932 -125
|
@@ -124,7 +124,7 @@ let SvProjectUpdate = class SvProjectUpdate extends ScopedElementsMixin(PageView
|
|
|
124
124
|
};
|
|
125
125
|
}
|
|
126
126
|
render() {
|
|
127
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z;
|
|
127
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10;
|
|
128
128
|
return html `
|
|
129
129
|
<dkpi-project-update-header
|
|
130
130
|
.projectId=${this.project.id || ''}
|
|
@@ -211,6 +211,36 @@ let SvProjectUpdate = class SvProjectUpdate extends ScopedElementsMixin(PageView
|
|
|
211
211
|
</span>
|
|
212
212
|
</div>
|
|
213
213
|
|
|
214
|
+
<div row>
|
|
215
|
+
<span>지상 층수</span>
|
|
216
|
+
<span align-end>
|
|
217
|
+
<md-outlined-text-field
|
|
218
|
+
type="text"
|
|
219
|
+
name="upperFloorCount"
|
|
220
|
+
numeric
|
|
221
|
+
building-complex
|
|
222
|
+
.value=${((_l = (_k = (_j = this.project) === null || _j === void 0 ? void 0 : _j.buildingComplex) === null || _k === void 0 ? void 0 : _k.upperFloorCount) === null || _l === void 0 ? void 0 : _l.toString()) || ''}
|
|
223
|
+
@input=${this._onInputChange}
|
|
224
|
+
suffix-text="층"
|
|
225
|
+
></md-outlined-text-field>
|
|
226
|
+
</span>
|
|
227
|
+
</div>
|
|
228
|
+
|
|
229
|
+
<div row>
|
|
230
|
+
<span>지하 층수</span>
|
|
231
|
+
<span align-end>
|
|
232
|
+
<md-outlined-text-field
|
|
233
|
+
type="text"
|
|
234
|
+
name="lowerFloorCount"
|
|
235
|
+
numeric
|
|
236
|
+
building-complex
|
|
237
|
+
.value=${((_p = (_o = (_m = this.project) === null || _m === void 0 ? void 0 : _m.buildingComplex) === null || _o === void 0 ? void 0 : _o.lowerFloorCount) === null || _p === void 0 ? void 0 : _p.toString()) || ''}
|
|
238
|
+
@input=${this._onInputChange}
|
|
239
|
+
suffix-text="층"
|
|
240
|
+
></md-outlined-text-field>
|
|
241
|
+
</span>
|
|
242
|
+
</div>
|
|
243
|
+
|
|
214
244
|
<div row>
|
|
215
245
|
<span>착공일정 ~ 준공일정(계획)</span>
|
|
216
246
|
<span
|
|
@@ -234,6 +264,33 @@ let SvProjectUpdate = class SvProjectUpdate extends ScopedElementsMixin(PageView
|
|
|
234
264
|
</span>
|
|
235
265
|
</div>
|
|
236
266
|
|
|
267
|
+
<!--
|
|
268
|
+
실제 일정은 계획 일정 바로 아래. KPI 공기성과가 이 둘의 차이로 매겨지므로
|
|
269
|
+
나란히 보여야 입력자가 어느 쪽을 적는지 헷갈리지 않는다.
|
|
270
|
+
-->
|
|
271
|
+
<div row>
|
|
272
|
+
<span>착공일 ~ 준공일(실제)</span>
|
|
273
|
+
<span
|
|
274
|
+
><input
|
|
275
|
+
type="date"
|
|
276
|
+
name="actualStartDate"
|
|
277
|
+
project
|
|
278
|
+
.value=${this.project.actualStartDate || ''}
|
|
279
|
+
@input=${this._onInputChange}
|
|
280
|
+
max="9999-12-31"
|
|
281
|
+
/>
|
|
282
|
+
~
|
|
283
|
+
<input
|
|
284
|
+
type="date"
|
|
285
|
+
name="actualEndDate"
|
|
286
|
+
project
|
|
287
|
+
.value=${this.project.actualEndDate || ''}
|
|
288
|
+
@input=${this._onInputChange}
|
|
289
|
+
max="9999-12-31"
|
|
290
|
+
/>
|
|
291
|
+
</span>
|
|
292
|
+
</div>
|
|
293
|
+
|
|
237
294
|
<div row>
|
|
238
295
|
<span>유형</span>
|
|
239
296
|
<span
|
|
@@ -310,7 +367,7 @@ let SvProjectUpdate = class SvProjectUpdate extends ScopedElementsMixin(PageView
|
|
|
310
367
|
type="text"
|
|
311
368
|
name="clientCompany"
|
|
312
369
|
building-complex
|
|
313
|
-
.value=${((
|
|
370
|
+
.value=${((_r = (_q = this.project) === null || _q === void 0 ? void 0 : _q.buildingComplex) === null || _r === void 0 ? void 0 : _r.clientCompany) || ''}
|
|
314
371
|
@input=${this._onInputChange}
|
|
315
372
|
></md-outlined-text-field>
|
|
316
373
|
</span>
|
|
@@ -322,7 +379,7 @@ let SvProjectUpdate = class SvProjectUpdate extends ScopedElementsMixin(PageView
|
|
|
322
379
|
type="text"
|
|
323
380
|
name="constructionCompany"
|
|
324
381
|
building-complex
|
|
325
|
-
.value=${((
|
|
382
|
+
.value=${((_t = (_s = this.project) === null || _s === void 0 ? void 0 : _s.buildingComplex) === null || _t === void 0 ? void 0 : _t.constructionCompany) || ''}
|
|
326
383
|
@input=${this._onInputChange}
|
|
327
384
|
></md-outlined-text-field>
|
|
328
385
|
</span>
|
|
@@ -334,7 +391,7 @@ let SvProjectUpdate = class SvProjectUpdate extends ScopedElementsMixin(PageView
|
|
|
334
391
|
type="text"
|
|
335
392
|
name="designCompany"
|
|
336
393
|
building-complex
|
|
337
|
-
.value=${((
|
|
394
|
+
.value=${((_v = (_u = this.project) === null || _u === void 0 ? void 0 : _u.buildingComplex) === null || _v === void 0 ? void 0 : _v.designCompany) || ''}
|
|
338
395
|
@input=${this._onInputChange}
|
|
339
396
|
></md-outlined-text-field>
|
|
340
397
|
</span>
|
|
@@ -346,7 +403,7 @@ let SvProjectUpdate = class SvProjectUpdate extends ScopedElementsMixin(PageView
|
|
|
346
403
|
type="text"
|
|
347
404
|
name="supervisoryCompany"
|
|
348
405
|
building-complex
|
|
349
|
-
.value=${((
|
|
406
|
+
.value=${((_x = (_w = this.project) === null || _w === void 0 ? void 0 : _w.buildingComplex) === null || _x === void 0 ? void 0 : _x.supervisoryCompany) || ''}
|
|
350
407
|
@input=${this._onInputChange}
|
|
351
408
|
></md-outlined-text-field>
|
|
352
409
|
</span>
|
|
@@ -357,7 +414,7 @@ let SvProjectUpdate = class SvProjectUpdate extends ScopedElementsMixin(PageView
|
|
|
357
414
|
<span>
|
|
358
415
|
<ox-input-image
|
|
359
416
|
name="mainPhoto"
|
|
360
|
-
value=${((
|
|
417
|
+
value=${((_z = (_y = this.project) === null || _y === void 0 ? void 0 : _y.mainPhoto) === null || _z === void 0 ? void 0 : _z.fullpath) || ''}
|
|
361
418
|
@change=${this.onCreateAttachment.bind(this)}
|
|
362
419
|
></ox-input-image>
|
|
363
420
|
</span>
|
|
@@ -370,7 +427,22 @@ let SvProjectUpdate = class SvProjectUpdate extends ScopedElementsMixin(PageView
|
|
|
370
427
|
name="constructionCost"
|
|
371
428
|
numeric
|
|
372
429
|
building-complex
|
|
373
|
-
.value=${((
|
|
430
|
+
.value=${((_2 = (_1 = (_0 = this.project) === null || _0 === void 0 ? void 0 : _0.buildingComplex) === null || _1 === void 0 ? void 0 : _1.constructionCost) === null || _2 === void 0 ? void 0 : _2.toString()) || ''}
|
|
431
|
+
@input=${this._onInputChange}
|
|
432
|
+
suffix-text="억원"
|
|
433
|
+
></md-outlined-text-field>
|
|
434
|
+
</span>
|
|
435
|
+
</div>
|
|
436
|
+
|
|
437
|
+
<div row>
|
|
438
|
+
<span>실제공사비</span>
|
|
439
|
+
<span
|
|
440
|
+
><md-outlined-text-field
|
|
441
|
+
type="text"
|
|
442
|
+
name="actualConstructionCost"
|
|
443
|
+
numeric
|
|
444
|
+
project
|
|
445
|
+
.value=${((_3 = this.project.actualConstructionCost) === null || _3 === void 0 ? void 0 : _3.toString()) || ''}
|
|
374
446
|
@input=${this._onInputChange}
|
|
375
447
|
suffix-text="억원"
|
|
376
448
|
></md-outlined-text-field>
|
|
@@ -384,12 +456,73 @@ let SvProjectUpdate = class SvProjectUpdate extends ScopedElementsMixin(PageView
|
|
|
384
456
|
name="workerCount"
|
|
385
457
|
numeric
|
|
386
458
|
building-complex
|
|
387
|
-
.value=${((
|
|
459
|
+
.value=${((_6 = (_5 = (_4 = this.project) === null || _4 === void 0 ? void 0 : _4.buildingComplex) === null || _5 === void 0 ? void 0 : _5.workerCount) === null || _6 === void 0 ? void 0 : _6.toString()) || ''}
|
|
388
460
|
@input=${this._onInputChange}
|
|
389
461
|
suffix-text="(M/M)"
|
|
390
462
|
></md-outlined-text-field>
|
|
391
463
|
</span>
|
|
392
464
|
</div>
|
|
465
|
+
|
|
466
|
+
<!--
|
|
467
|
+
준공 시점에 확정되는 실적 — 재해율·재해강도율·품질검측 건수.
|
|
468
|
+
재해율은 %로 받는다 (재해자수/상시근로자수×100). KPI 가 쓰는 비율 단위로는
|
|
469
|
+
수집할 때 서버가 나눈다 — 입력하는 사람이 단위를 환산하지 않도록.
|
|
470
|
+
-->
|
|
471
|
+
<div row>
|
|
472
|
+
<span>재해율</span>
|
|
473
|
+
<span
|
|
474
|
+
><md-outlined-text-field
|
|
475
|
+
type="text"
|
|
476
|
+
name="accidentRate"
|
|
477
|
+
numeric
|
|
478
|
+
project
|
|
479
|
+
.value=${((_7 = this.project.accidentRate) === null || _7 === void 0 ? void 0 : _7.toString()) || ''}
|
|
480
|
+
@input=${this._onInputChange}
|
|
481
|
+
suffix-text="%"
|
|
482
|
+
></md-outlined-text-field>
|
|
483
|
+
</span>
|
|
484
|
+
</div>
|
|
485
|
+
<div row>
|
|
486
|
+
<span>재해강도율</span>
|
|
487
|
+
<span
|
|
488
|
+
><md-outlined-text-field
|
|
489
|
+
type="text"
|
|
490
|
+
name="accidentSeverityRate"
|
|
491
|
+
numeric
|
|
492
|
+
project
|
|
493
|
+
.value=${((_8 = this.project.accidentSeverityRate) === null || _8 === void 0 ? void 0 : _8.toString()) || ''}
|
|
494
|
+
@input=${this._onInputChange}
|
|
495
|
+
></md-outlined-text-field>
|
|
496
|
+
</span>
|
|
497
|
+
</div>
|
|
498
|
+
<div row>
|
|
499
|
+
<span>품질검측 건수</span>
|
|
500
|
+
<span
|
|
501
|
+
><md-outlined-text-field
|
|
502
|
+
type="text"
|
|
503
|
+
name="inspectionCount"
|
|
504
|
+
numeric
|
|
505
|
+
project
|
|
506
|
+
.value=${((_9 = this.project.inspectionCount) === null || _9 === void 0 ? void 0 : _9.toString()) || ''}
|
|
507
|
+
@input=${this._onInputChange}
|
|
508
|
+
suffix-text="건"
|
|
509
|
+
></md-outlined-text-field>
|
|
510
|
+
</span>
|
|
511
|
+
</div>
|
|
512
|
+
<div row>
|
|
513
|
+
<span>품질검측 불합격 건수</span>
|
|
514
|
+
<span
|
|
515
|
+
><md-outlined-text-field
|
|
516
|
+
type="text"
|
|
517
|
+
name="inspectionFailCount"
|
|
518
|
+
numeric
|
|
519
|
+
project
|
|
520
|
+
.value=${((_10 = this.project.inspectionFailCount) === null || _10 === void 0 ? void 0 : _10.toString()) || ''}
|
|
521
|
+
@input=${this._onInputChange}
|
|
522
|
+
suffix-text="건"
|
|
523
|
+
></md-outlined-text-field>
|
|
524
|
+
</span>
|
|
525
|
+
</div>
|
|
393
526
|
</div>
|
|
394
527
|
|
|
395
528
|
<div detail-info>
|
|
@@ -506,6 +639,13 @@ let SvProjectUpdate = class SvProjectUpdate extends ScopedElementsMixin(PageView
|
|
|
506
639
|
geoGroup
|
|
507
640
|
startDate
|
|
508
641
|
endDate
|
|
642
|
+
actualStartDate
|
|
643
|
+
actualEndDate
|
|
644
|
+
actualConstructionCost
|
|
645
|
+
accidentRate
|
|
646
|
+
accidentSeverityRate
|
|
647
|
+
inspectionCount
|
|
648
|
+
inspectionFailCount
|
|
509
649
|
mainPhoto {
|
|
510
650
|
fullpath
|
|
511
651
|
}
|
|
@@ -525,6 +665,8 @@ let SvProjectUpdate = class SvProjectUpdate extends ScopedElementsMixin(PageView
|
|
|
525
665
|
area
|
|
526
666
|
coverageRatio
|
|
527
667
|
floorAreaRatio
|
|
668
|
+
upperFloorCount
|
|
669
|
+
lowerFloorCount
|
|
528
670
|
structureType
|
|
529
671
|
workerCount
|
|
530
672
|
designChangeCount
|
|
@@ -673,9 +815,8 @@ let SvProjectUpdate = class SvProjectUpdate extends ScopedElementsMixin(PageView
|
|
|
673
815
|
* · siteType (한글) → SiteType enum 변환 (BC.siteType, enum 컬럼)
|
|
674
816
|
* · siteType (한글) → BC.constructionType 그대로 (자유 텍스트 컬럼)
|
|
675
817
|
* · area / floorAreaRatio / coverageRatio / householdCount / buildingCount /
|
|
676
|
-
* structureType → BC 동명 컬럼에 직접 대입
|
|
677
|
-
* ·
|
|
678
|
-
* 없음, 매핑 skip (참고용 콘솔 로그만)
|
|
818
|
+
* upperFloorCount / lowerFloorCount / structureType → BC 동명 컬럼에 직접 대입
|
|
819
|
+
* · bldNm / useAprDay / pmsDay → BC 컬럼 없음, 매핑 skip (참고용 콘솔 로그만)
|
|
679
820
|
*/
|
|
680
821
|
async _collectBasicInfo() {
|
|
681
822
|
var _a, _b, _c, _d;
|
|
@@ -765,6 +906,9 @@ let SvProjectUpdate = class SvProjectUpdate extends ScopedElementsMixin(PageView
|
|
|
765
906
|
setBC('coverageRatio', this._toNum(data.coverageRatio));
|
|
766
907
|
setBC('householdCount', this._toNum(data.householdCount));
|
|
767
908
|
setBC('buildingCount', this._toNum(data.buildingCount));
|
|
909
|
+
// 층수 — 건축물대장이 단지 단위로 내려 준다. 담을 컬럼이 생겨 이제 폼에 반영한다.
|
|
910
|
+
setBC('upperFloorCount', this._toNum(data.upperFloorCount));
|
|
911
|
+
setBC('lowerFloorCount', this._toNum(data.lowerFloorCount));
|
|
768
912
|
setBC('structureType', data.structureType);
|
|
769
913
|
// siteType: 한글 → SiteType enum 매핑. 매핑 안 되면 BC.siteType 빈 채로.
|
|
770
914
|
if (data.siteType) {
|
|
@@ -781,12 +925,7 @@ let SvProjectUpdate = class SvProjectUpdate extends ScopedElementsMixin(PageView
|
|
|
781
925
|
project.endDate = data.endDate;
|
|
782
926
|
this.project = project;
|
|
783
927
|
// 참고 메타 — BC/Project 직접 컬럼 없음, 콘솔로만 (permitDate=건축허가일, bldNm 등)
|
|
784
|
-
console.log('[정보 연동] meta:', JSON.stringify({
|
|
785
|
-
upperFloorCount: data.upperFloorCount,
|
|
786
|
-
lowerFloorCount: data.lowerFloorCount,
|
|
787
|
-
bldNm: data.bldNm,
|
|
788
|
-
permitDate: data.permitDate
|
|
789
|
-
}));
|
|
928
|
+
console.log('[정보 연동] meta:', JSON.stringify({ bldNm: data.bldNm, permitDate: data.permitDate }));
|
|
790
929
|
}
|
|
791
930
|
_toNum(v) {
|
|
792
931
|
if (v === null || v === undefined || v === '')
|