@acorex-platform/module-maintenance-management-client 0.0.69 → 1.0.1
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/fesm2022/{acorex-platform-module-maintenance-management-client-acorex-platform-module-maintenance-management-client-6cXxZPN1.mjs → acorex-platform-module-maintenance-management-client-acorex-platform-module-maintenance-management-client-CGjcOjjv.mjs} +305 -34
- package/fesm2022/acorex-platform-module-maintenance-management-client-acorex-platform-module-maintenance-management-client-CGjcOjjv.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-activity-type-asset-type.mjs +9 -0
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-activity-type-asset-type.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-activity-type-resource.mjs +9 -0
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-activity-type-resource.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-activity-type.mjs +9 -0
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-activity-type.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-failure-cause.mjs +9 -0
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-failure-cause.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-failure-detection.mjs +9 -0
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-failure-detection.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-failure-effect.mjs +9 -0
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-failure-effect.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-failure-mechanism.mjs +9 -0
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-failure-mechanism.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-failure-mode-asset-type.mjs +9 -0
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-failure-mode-asset-type.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-failure-mode-mechanism.mjs +9 -0
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-failure-mode-mechanism.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-failure-mode-solution.mjs +9 -0
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-failure-mode-solution.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-failure-mode.mjs +9 -0
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-failure-mode.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-failure-register-cause.mjs +9 -0
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-failure-register-cause.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-failure-register-effect.mjs +9 -0
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-failure-register-effect.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-failure-register-mechanism.mjs +9 -0
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-failure-register-mechanism.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-failure-register.mjs +9 -0
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-failure-register.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-failure-severity.mjs +9 -0
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-failure-severity.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-failure-type.mjs +9 -0
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-failure-type.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-maintenance-plan.mjs +87 -13
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-maintenance-plan.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-maintenance-template-activity-type.mjs +9 -0
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-maintenance-template-activity-type.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-maintenance-template-failure-mode.mjs +9 -0
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-maintenance-template-failure-mode.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-maintenance-template-resource.mjs +9 -0
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-maintenance-template-resource.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-maintenance-template.mjs +13 -13
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-maintenance-template.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-maintenance-type.mjs +9 -0
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-maintenance-type.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-work-order.mjs +19 -0
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-work-order.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-work-package.mjs +9 -0
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-work-package.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-work-report.mjs +9 -0
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entities-work-report.mjs.map +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-acorex-platform-module-maintenance-management-client-contracts-entity-catalog-CDwXJTyO.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-acorex-platform-module-maintenance-management-client-contracts-entity-catalog-Dgu63wyv.mjs} +36 -27
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entity-catalog-acorex-platform-module-maintenance-management-client-contracts-entity-catalog-Dgu63wyv.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type-asset-type.entity-BgNCJg1o.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type-asset-type.entity-CePSpBHM.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type-asset-type.entity-BgNCJg1o.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type-asset-type.entity-CePSpBHM.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type-resource.entity-LY3WhspA.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type-resource.entity-Bfvk4GcQ.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type-resource.entity-LY3WhspA.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type-resource.entity-Bfvk4GcQ.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type.entity-DyXcIKqY.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type.entity-Jy3BDuNN.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type.entity-DyXcIKqY.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-activity-type.entity-Jy3BDuNN.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-cause.entity-B93wAqPv.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-cause.entity-CCgWn686.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-cause.entity-B93wAqPv.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-cause.entity-CCgWn686.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-detection.entity-Clc6RXxF.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-detection.entity-r_GaKV4C.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-detection.entity-Clc6RXxF.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-detection.entity-r_GaKV4C.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-effect.entity-qSSTwoD0.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-effect.entity-BC8cmP-E.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-effect.entity-qSSTwoD0.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-effect.entity-BC8cmP-E.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mechanism.entity-DsMYTxrE.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mechanism.entity-DkyVyX8d.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mechanism.entity-DsMYTxrE.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mechanism.entity-DkyVyX8d.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-asset-type.entity-DlqzE2Za.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-asset-type.entity-WxiHq42o.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-asset-type.entity-DlqzE2Za.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-asset-type.entity-WxiHq42o.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-mechanism.entity-0xGHmQqy.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-mechanism.entity-B1yGBbFQ.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-mechanism.entity-0xGHmQqy.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-mechanism.entity-B1yGBbFQ.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-solution.entity-B5bLQ4g6.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-solution.entity-Bquvs5zg.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-solution.entity-B5bLQ4g6.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode-solution.entity-Bquvs5zg.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode.entity-BCCVzThS.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode.entity-DU4i03Hi.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode.entity-BCCVzThS.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-mode.entity-DU4i03Hi.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-cause.entity-CZKNsPR2.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-cause.entity-DvO7KoEq.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-cause.entity-CZKNsPR2.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-cause.entity-DvO7KoEq.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-effect.entity-CWhXlK6i.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-effect.entity-DK702y8j.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-effect.entity-CWhXlK6i.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-effect.entity-DK702y8j.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-mechanism.entity-DzSmFBD_.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-mechanism.entity-Dua1ufeE.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-mechanism.entity-DzSmFBD_.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register-mechanism.entity-Dua1ufeE.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register.entity-5mfrErkC.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register.entity-Cs-SLfHm.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register.entity-5mfrErkC.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-register.entity-Cs-SLfHm.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-severity.entity-DKL3K1P_.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-severity.entity-C-vkhC0g.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-severity.entity-DKL3K1P_.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-severity.entity-C-vkhC0g.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-type.entity-BwPWU2hj.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-type.entity-DEcLe9MD.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-type.entity-BwPWU2hj.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-failure-type.entity-DEcLe9MD.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-plan.entity-DZp6tUTX.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-plan.entity-R0UVSWKi.mjs} +80 -15
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-plan.entity-R0UVSWKi.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-activity-type.entity-CEgtM97Q.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-activity-type.entity-C3KERG4U.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-activity-type.entity-CEgtM97Q.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-activity-type.entity-C3KERG4U.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-failure-mode.entity-DRt6Cfbc.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-failure-mode.entity-EXXJjDYH.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-failure-mode.entity-DRt6Cfbc.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-failure-mode.entity-EXXJjDYH.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-resource.entity-zQAeVklB.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-resource.entity-CrMPuOD8.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-resource.entity-zQAeVklB.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template-resource.entity-CrMPuOD8.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template.entity-DgtyyggM.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template.entity-Bn2DAaNN.mjs} +6 -15
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template.entity-Bn2DAaNN.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-type.entity-D3ipDMzR.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-type.entity-DS8_oRB7.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-type.entity-D3ipDMzR.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-type.entity-DS8_oRB7.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-order.entity-hgfgOV6Q.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-order.entity-DS1RPQ-I.mjs} +12 -2
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-order.entity-DS1RPQ-I.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-package.entity-ubzIZ90s.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-package.entity-BUMsgLTC.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-package.entity-ubzIZ90s.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-package.entity-BUMsgLTC.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-report.entity-Blu2UR8v.mjs → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-report.entity-V0CqICBq.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-report.entity-Blu2UR8v.mjs.map → acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-report.entity-V0CqICBq.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entity-catalog.mjs +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts.mjs +76 -9
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts.mjs.map +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-create-or-get-work-report-draft.activity-DDvUWUU5.mjs → acorex-platform-module-maintenance-management-client-create-or-get-work-report-draft.activity-BXKKfu4I.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-create-or-get-work-report-draft.activity-DDvUWUU5.mjs.map → acorex-platform-module-maintenance-management-client-create-or-get-work-report-draft.activity-BXKKfu4I.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-maintenance-interval-widget-edit.component-CUcsLsuh.mjs → acorex-platform-module-maintenance-management-client-maintenance-interval-widget-edit.component-Be1Nup4H.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-maintenance-interval-widget-edit.component-CUcsLsuh.mjs.map → acorex-platform-module-maintenance-management-client-maintenance-interval-widget-edit.component-Be1Nup4H.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-maintenance-interval-widget-view.component-CM0Wokah.mjs → acorex-platform-module-maintenance-management-client-maintenance-interval-widget-view.component-B0vjGln5.mjs} +12 -8
- package/fesm2022/acorex-platform-module-maintenance-management-client-maintenance-interval-widget-view.component-B0vjGln5.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-maintenance-management-client-record-work-report-assessment.activity-BiD6NYBT.mjs → acorex-platform-module-maintenance-management-client-record-work-report-assessment.activity-BJUgm59a.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-record-work-report-assessment.activity-BiD6NYBT.mjs.map → acorex-platform-module-maintenance-management-client-record-work-report-assessment.activity-BJUgm59a.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-start-work-order-flow.command-B5Ko0JyG.mjs → acorex-platform-module-maintenance-management-client-start-work-order-flow.command-Bg1do_Uu.mjs} +135 -10
- package/fesm2022/acorex-platform-module-maintenance-management-client-start-work-order-flow.command-Bg1do_Uu.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-maintenance-management-client-update-work-order-completed.activity-Di4R6LQl.mjs → acorex-platform-module-maintenance-management-client-update-work-order-completed.activity-CSKzwPjv.mjs} +37 -2
- package/fesm2022/acorex-platform-module-maintenance-management-client-update-work-order-completed.activity-CSKzwPjv.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-maintenance-management-client-update-work-order-in-progress.activity-D75YRfD2.mjs → acorex-platform-module-maintenance-management-client-update-work-order-in-progress.activity-B8vjsOI_.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-update-work-order-in-progress.activity-D75YRfD2.mjs.map → acorex-platform-module-maintenance-management-client-update-work-order-in-progress.activity-B8vjsOI_.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-maintenance-management-client-work-order-workflow-column.component-B90OJ-Ol.mjs → acorex-platform-module-maintenance-management-client-work-order-workflow-column.component-DG80hqRj.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-maintenance-management-client-work-order-workflow-column.component-B90OJ-Ol.mjs.map → acorex-platform-module-maintenance-management-client-work-order-workflow-column.component-DG80hqRj.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client.mjs +1 -1
- package/i18n/en-AU/maintenance-management.json +31 -4
- package/i18n/en-US/maintenance-management.json +31 -4
- package/i18n/fa-IR/maintenance-management.json +31 -4
- package/package.json +2 -1
- package/types/acorex-platform-module-maintenance-management-client-contracts.d.ts +54 -8
- package/types/acorex-platform-module-maintenance-management-client.d.ts +10 -3
- package/fesm2022/acorex-platform-module-maintenance-management-client-acorex-platform-module-maintenance-management-client-6cXxZPN1.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entity-catalog-acorex-platform-module-maintenance-management-client-contracts-entity-catalog-CDwXJTyO.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-plan.entity-DZp6tUTX.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entity-catalog-maintenance-template.entity-DgtyyggM.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-contracts-entity-catalog-work-order.entity-hgfgOV6Q.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-maintenance-interval-widget-view.component-CM0Wokah.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-start-work-order-flow.command-B5Ko0JyG.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-maintenance-management-client-update-work-order-completed.activity-Di4R6LQl.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-maintenance-management-client-start-work-order-flow.command-Bg1do_Uu.mjs","sources":["../../../../libs/modules/maintenance-management/client/src/lib/features/work-order/commands/start-work-order-flow-id.util.ts","../../../../libs/modules/maintenance-management/client/src/lib/features/work-order/commands/start-work-order-flow.command.ts"],"sourcesContent":["//#region ----- Types -----\n\nfunction resolveText(value: unknown): string {\n return typeof value === 'string' ? value.trim() : '';\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value != null && typeof value === 'object' && !Array.isArray(value);\n}\n\nexport interface StartWorkOrderFlowIdResolution {\n workOrderId: string;\n /** Interval (or other) workflow instance that owns the task-board card. */\n sourceInstanceId: string;\n sourceBookmarkId: string;\n sourceActivityId: string;\n sourceTaskToken: string;\n}\n\n//#endregion\n\n//#region ----- Resolve -----\n\n/**\n * Distinguishes WorkOrder id from workflow-instance / bookmark ids on StartFlow input.\n * Prefer explicit business `data.id` / `workOrderId`; never treat bookmarkId or instanceId as the work order.\n */\nexport function resolveStartWorkOrderFlowIds(input: Record<string, unknown> | null | undefined): StartWorkOrderFlowIdResolution {\n const root = isRecord(input) ? input : {};\n const data = isRecord(root['data']) ? root['data'] : {};\n const options = isRecord(root['options']) ? root['options'] : {};\n const optionsData = isRecord(options['data']) ? options['data'] : {};\n\n const sourceInstanceId =\n resolveText(root['instanceId']) ||\n resolveText(data['instanceId']) ||\n resolveText(options['instanceId']) ||\n resolveText(optionsData['instanceId']);\n const sourceBookmarkId =\n resolveText(root['bookmarkId']) ||\n resolveText(data['bookmarkId']) ||\n resolveText(options['bookmarkId']) ||\n resolveText(optionsData['bookmarkId']);\n const sourceActivityId =\n resolveText(root['activityId']) ||\n resolveText(data['activityId']) ||\n resolveText(options['activityId']) ||\n resolveText(optionsData['activityId']);\n const sourceTaskToken =\n resolveText(root['taskToken']) ||\n resolveText(data['taskToken']) ||\n resolveText(options['taskToken']) ||\n resolveText(optionsData['taskToken']);\n\n const candidates = [\n resolveText(data['workOrderId']),\n resolveText(root['workOrderId']),\n resolveText(options['workOrderId']),\n resolveText(data['id']),\n resolveText(optionsData['id']),\n resolveText(optionsData['workOrderId']),\n ];\n\n let workOrderId = '';\n for (const candidate of candidates) {\n if (!candidate) {\n continue;\n }\n // Never confuse task-board / workflow ids with the work order.\n if (\n candidate === sourceInstanceId ||\n candidate === sourceBookmarkId ||\n candidate === sourceActivityId ||\n candidate === sourceTaskToken\n ) {\n continue;\n }\n workOrderId = candidate;\n break;\n }\n\n return {\n workOrderId,\n sourceInstanceId,\n sourceBookmarkId,\n sourceActivityId,\n sourceTaskToken,\n };\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXDialogService } from '@acorex/components/dialog';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationService, resolveMultiLanguageString } from '@acorex/core/translation';\nimport { AXPRuntimeCommandResult } from '@acorex-platform/framework-shared/core';\nimport {\n AXPEntityService,\n buildAXPRecordWorkflowInfo,\n getRecordWorkflowInstanceId,\n} from '@acorex-platform/framework-client/layout/entity';\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPBroadcastEventService } from '@acorex-platform/framework-client/core';\nimport { AXP_WORKFLOW_ENGINE, type AXPWorkflowEngine } from '@acorex-platform/framework-client/workflow';\nimport { AXPWorkflowInstanceHumanTaskService } from '@acorex-platform/module-workflow-management-client';\nimport { inject, Injectable } from '@angular/core';\nimport { defaultTo, get, isString } from 'lodash';\n\nimport { AXMWorkOrderStatus, RootConfig } from '@acorex-platform/module-maintenance-management-client/contracts';\nimport type { AXMMaintenanceManagementMaintenanceTemplateWorkflowConfig } from '@acorex-platform/module-maintenance-management-client/contracts';\nimport type { AXMMaintenanceManagementWorkOrderEntityModel } from '@acorex-platform/module-maintenance-management-client/contracts';\nimport {\n type EntityStorageBackend,\n queryWorkflowTemplatesForAsset,\n resolveDisplayLabel,\n type MaintenanceTemplateLike,\n} from '../../../middlewares/maintenance-generation.utils';\nimport { resolveStartWorkOrderFlowIds } from './start-work-order-flow-id.util';\n\n//#endregion\n\n//#region ---- Types ----\n\ninterface StartWorkOrderFlowContext {\n /** When set, applies the maintenance template on the work order before starting the workflow. */\n maintenanceTemplateId?: string;\n /** Interval workflow checklist → approval `preChecklistQuestionnaireId`. */\n checklist?: string;\n data?: Record<string, unknown>;\n options?: { maintenanceTemplateId?: string; checklist?: string };\n /** Source interval (or other) task-board card — consumed only after a successful start. */\n instanceId?: string;\n bookmarkId?: string;\n activityId?: string;\n taskToken?: string;\n}\n\nconst STARTABLE_STATUSES = new Set<string>([\n AXMWorkOrderStatus.Planned,\n AXMWorkOrderStatus.Scheduled,\n AXMWorkOrderStatus.Assigned,\n]);\n\n//#endregion\n\n/**\n * Starts the maintenance template workflow for a work order (execution + approval).\n */\n@Injectable({ providedIn: 'root' })\nexport class StartWorkOrderFlowCommand implements AXPCommand<StartWorkOrderFlowContext, void> {\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly workflowEngine = inject(AXP_WORKFLOW_ENGINE) as AXPWorkflowEngine;\n private readonly humanTaskService = inject(AXPWorkflowInstanceHumanTaskService);\n private readonly toastService = inject(AXToastService);\n private readonly translationService = inject(AXTranslationService);\n private readonly dialogService = inject(AXDialogService);\n private readonly eventService = inject(AXPBroadcastEventService);\n\n //#endregion\n\n //#region ---- Command Implementation ----\n\n async execute(input: StartWorkOrderFlowContext): AXPCommandExecuteResultPromise<void> {\n const ids = resolveStartWorkOrderFlowIds(input as unknown as Record<string, unknown>);\n const workOrderId = ids.workOrderId;\n if (!workOrderId) {\n return { success: false, message: { text: 'Work order id is required.' } };\n }\n\n const row = defaultTo(get(input, 'data'), {}) as Record<string, unknown>;\n let workOrder = await this.loadWorkOrder(workOrderId, row);\n if (!workOrder) {\n return { success: false, message: { text: 'Work order not found.' } };\n }\n\n const existingExecutionInstanceId = getRecordWorkflowInstanceId(\n workOrder as unknown as Record<string, unknown>,\n );\n // Idempotent retry: execution already attached — close the interval card if still open.\n if (existingExecutionInstanceId) {\n await this.consumeSourceIntervalCard(ids);\n this.eventService.publish('task-board.refresh', {});\n return { success: true, kind: 'object', data: undefined };\n }\n\n const explicitTemplateId = this.resolveText(get(input, 'maintenanceTemplateId'));\n const selectedTemplateId = await this.resolveMaintenanceTemplateId(workOrder, explicitTemplateId || undefined);\n if (!selectedTemplateId) {\n return { success: false };\n }\n\n const flowPrerequisites = await this.validateFlowPrerequisites(workOrder, selectedTemplateId);\n if (!flowPrerequisites) {\n return { success: false };\n }\n\n const { workflowConfig, workflowName, assignedEmployeeId } = flowPrerequisites;\n\n if (selectedTemplateId !== workOrder.maintenanceTemplateId) {\n await this.applyMaintenanceTemplate(workOrderId, selectedTemplateId);\n workOrder = (await this.loadWorkOrder(workOrderId)) ?? workOrder;\n }\n\n const assetIdentifiers = await this.resolveAssetIdentifiers(this.resolveText(workOrder.assetId));\n const checklistOverride =\n this.resolveText(get(input, 'checklist')) || this.resolveText(get(input, 'options.checklist'));\n const workflowInputs = this.buildWorkflowInputs(\n workOrder,\n workflowConfig,\n assignedEmployeeId,\n assetIdentifiers,\n checklistOverride || undefined,\n );\n const correlationId = `${RootConfig.entities.workOrder.source}:${workOrderId}:${workflowName}`;\n\n try {\n // Start via engine only — do not use AXPWorkflowManager.start() here; it auto-runs inline\n // frontend steps (e.g. checklist fill). Human tasks must stay on the task board.\n const startResponse = await this.workflowEngine.start({\n workflowId: workflowName,\n input: {\n ...workflowInputs,\n workOrderId,\n refId: workOrderId,\n refType: RootConfig.entities.workOrder.source,\n correlationId,\n },\n });\n\n const instanceId = startResponse.instanceId;\n if (!instanceId) {\n const unknownError = await this.translationService.translateAsync(\n '@general:messages.generic.error.description',\n );\n this.toastService.show({\n color: 'danger',\n title: await this.translationService.translateAsync('@general:messages.generic.error.title'),\n content: unknownError,\n closeButton: true,\n timeOut: 5000,\n });\n return { success: false, message: { text: unknownError } };\n }\n\n await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.workOrder.name)\n .data()\n .update(workOrderId, {\n workflowInfo: buildAXPRecordWorkflowInfo({\n instanceId,\n definitionId: workflowName,\n correlationId,\n }),\n } as never);\n\n // Close the original interval card only after execution workflow + workflowInfo succeed.\n await this.consumeSourceIntervalCard(ids);\n\n this.eventService.publish('task-board.refresh', { provider: workflowName });\n\n const taskBoardHint = await this.translationService.translateAsync(\n '@maintenance-management:work-orders.messages.workflow-started-use-task-board',\n );\n this.toastService.show({\n color: 'success',\n title: await this.translationService.translateAsync('@general:messages.generic.success.title'),\n content: taskBoardHint,\n closeButton: true,\n timeOut: 6000,\n });\n\n return { success: true, kind: 'object', data: undefined };\n } catch (error: unknown) {\n const message =\n error instanceof Error\n ? error.message\n : await this.translationService.translateAsync(\n '@general:messages.generic.error.description',\n );\n console.error('[StartWorkOrderFlowCommand]', error);\n this.toastService.show({\n color: 'danger',\n title: await this.translationService.translateAsync('@general:messages.generic.error.title'),\n content: message,\n closeButton: true,\n timeOut: 5000,\n });\n // Leave the interval card open for retry.\n return { success: false, message: { text: message } };\n }\n }\n\n //#endregion\n\n //#region ---- Helpers ----\n\n /**\n * Consumes the interval-due human-task bookmark after execution workflow is attached.\n * Failures here do not roll back StartFlow — the card may remain until the next idempotent retry.\n */\n private async consumeSourceIntervalCard(ids: {\n sourceInstanceId: string;\n sourceBookmarkId: string;\n sourceActivityId: string;\n sourceTaskToken: string;\n workOrderId: string;\n }): Promise<void> {\n if (!ids.sourceInstanceId || !ids.sourceBookmarkId || !ids.sourceActivityId || !ids.sourceTaskToken) {\n return;\n }\n // Never resume using the work-order / execution instance id as the source card.\n if (\n ids.sourceInstanceId === ids.workOrderId ||\n ids.sourceBookmarkId === ids.workOrderId ||\n ids.sourceActivityId === ids.workOrderId\n ) {\n return;\n }\n\n try {\n await this.humanTaskService.resumeSuspendedHumanTask({\n instanceId: ids.sourceInstanceId,\n bookmarkId: ids.sourceBookmarkId,\n activityId: ids.sourceActivityId,\n taskToken: ids.sourceTaskToken,\n outcome: 'Done',\n userInput: { workOrderId: ids.workOrderId },\n suppressContinuation: true,\n });\n } catch (error) {\n console.error('[StartWorkOrderFlowCommand] failed to consume interval card', error);\n }\n }\n\n private async loadWorkOrder(\n workOrderId: string,\n row?: Record<string, unknown>,\n ): Promise<AXMMaintenanceManagementWorkOrderEntityModel | null> {\n if (get(row, 'id') === workOrderId) {\n return row as unknown as AXMMaintenanceManagementWorkOrderEntityModel;\n }\n\n const loaded = await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.workOrder.name)\n .data()\n .byKey(workOrderId);\n return (loaded as AXMMaintenanceManagementWorkOrderEntityModel | null) ?? null;\n }\n\n private async applyMaintenanceTemplate(workOrderId: string, templateId: string): Promise<void> {\n const template = (await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.maintenanceTemplate.name)\n .data()\n .byKey(templateId)) as {\n id?: string;\n title?: unknown;\n maintenanceTypeId?: string;\n metadataIds?: string[];\n workflowConfig?: AXMMaintenanceManagementMaintenanceTemplateWorkflowConfig | null;\n needShutdown?: boolean;\n needPermission?: boolean;\n estimatedMinutes?: number;\n } | null;\n\n if (!template?.id) {\n throw new Error('Maintenance template not found.');\n }\n\n const estimatedHours =\n typeof template.estimatedMinutes === 'number' && template.estimatedMinutes > 0\n ? Math.round((template.estimatedMinutes / 60) * 100) / 100\n : undefined;\n\n await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.workOrder.name)\n .data()\n .update(workOrderId, {\n maintenanceTemplateId: template.id,\n maintenanceTypeId: template.maintenanceTypeId,\n maintenanceTemplate: {\n id: template.id,\n title: template.title,\n metadataIds: template.metadataIds,\n workflowConfig: template.workflowConfig,\n },\n needShutdown: template.needShutdown ?? false,\n needPermission: template.needPermission ?? false,\n ...(estimatedHours !== undefined ? { estimatedHours } : {}),\n } as never);\n }\n\n private async resolveWorkflowConfig(\n workOrder: AXMMaintenanceManagementWorkOrderEntityModel,\n ): Promise<AXMMaintenanceManagementMaintenanceTemplateWorkflowConfig | null> {\n let workflowConfig = workOrder.maintenanceTemplate?.workflowConfig ?? null;\n if (!workflowConfig?.workflowDefinitionId && workOrder.maintenanceTemplateId) {\n const template = await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.maintenanceTemplate.name)\n .data()\n .byKey(workOrder.maintenanceTemplateId);\n workflowConfig = get(template, 'workflowConfig') ?? null;\n }\n return workflowConfig;\n }\n\n private isWorkflowEnabled(\n workflowConfig: AXMMaintenanceManagementMaintenanceTemplateWorkflowConfig | null,\n ): boolean {\n if (!workflowConfig?.workflowDefinitionId?.trim() || !workflowConfig.workflowName?.trim()) {\n return false;\n }\n return workflowConfig.enabled !== false;\n }\n\n /**\n * Validates work-order state before starting a workflow or persisting workflowInfo.\n */\n private async validateFlowPrerequisites(\n workOrder: AXMMaintenanceManagementWorkOrderEntityModel,\n selectedTemplateId: string,\n ): Promise<{\n workflowConfig: AXMMaintenanceManagementMaintenanceTemplateWorkflowConfig;\n workflowName: string;\n assignedEmployeeId: string;\n } | null> {\n const statusId = workOrder.statusId ?? '';\n if (!STARTABLE_STATUSES.has(statusId)) {\n const content = await this.translationService.translateAsync(\n '@maintenance-management:work-orders.messages.flow-requires-startable-status',\n );\n await this.showWarning(content);\n return null;\n }\n\n const workflowConfig = await this.resolveWorkflowConfigForTemplate(selectedTemplateId);\n if (!this.isWorkflowEnabled(workflowConfig)) {\n const content = await this.translationService.translateAsync(\n '@maintenance-management:work-orders.messages.no-workflow-configured',\n );\n await this.showWarning(content);\n return null;\n }\n\n const workflowName = this.resolveExecutionWorkflowName(workflowConfig!);\n const assignedToId = this.resolveText(workOrder.assignedToId);\n if (!assignedToId) {\n const content = await this.translationService.translateAsync(\n '@maintenance-management:work-orders.messages.assigned-user-required',\n );\n await this.showWarning(content);\n return null;\n }\n\n const assignedEmployeeId = await this.resolveEmployeeIdByPersonId(assignedToId);\n if (workflowName === 'work-order-approval' && !assignedEmployeeId) {\n const content = await this.translationService.translateAsync(\n '@maintenance-management:work-orders.messages.assigned-employee-required',\n );\n await this.showWarning(content);\n return null;\n }\n\n return { workflowConfig: workflowConfig!, workflowName, assignedEmployeeId };\n }\n\n /**\n * Interval templates bind `maintenance-interval-work-order` for due-check creation.\n * Manual StartFlow continues with `defaultInput.executionWorkflowName` when present.\n */\n private resolveExecutionWorkflowName(\n workflowConfig: AXMMaintenanceManagementMaintenanceTemplateWorkflowConfig,\n ): string {\n const executionName = this.resolveText(get(workflowConfig, 'defaultInput.executionWorkflowName'));\n if (executionName) {\n return executionName;\n }\n return workflowConfig.workflowName.trim();\n }\n\n private async resolveWorkflowConfigForTemplate(\n templateId: string,\n ): Promise<AXMMaintenanceManagementMaintenanceTemplateWorkflowConfig | null> {\n const template = await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.maintenanceTemplate.name)\n .data()\n .byKey(templateId);\n return get(template, 'workflowConfig') ?? null;\n }\n\n private async resolveAssetIdentifiers(\n assetId: string,\n ): Promise<{ assetCode: string | null; assetSerialNumber: string | null }> {\n if (!assetId) {\n return { assetCode: null, assetSerialNumber: null };\n }\n\n const asset = (await this.entityService\n .withEntity('AssetManagement', 'Asset')\n .data()\n .byKey(assetId)) as { code?: string; serialNumber?: string } | null;\n\n const assetCode = this.resolveText(asset?.code);\n const assetSerialNumber = this.resolveText(asset?.serialNumber);\n\n return {\n assetCode: assetCode || null,\n assetSerialNumber: assetSerialNumber || null,\n };\n }\n\n private buildWorkflowInputs(\n workOrder: AXMMaintenanceManagementWorkOrderEntityModel,\n workflowConfig: AXMMaintenanceManagementMaintenanceTemplateWorkflowConfig,\n assignedEmployeeId: string,\n assetIdentifiers: { assetCode: string | null; assetSerialNumber: string | null },\n checklistOverride?: string,\n ): Record<string, unknown> {\n const assetTitle = workOrder.asset?.title;\n const assetDisplayName =\n typeof assetTitle === 'string'\n ? assetTitle\n : resolveMultiLanguageString(assetTitle as never, this.translationService.getActiveLang());\n\n const templateDefaults = defaultTo(workflowConfig.defaultInput, {}) as Record<string, unknown>;\n const maintenanceTypeTitle = workOrder.maintenanceType?.title;\n const maintenanceTypeName =\n typeof maintenanceTypeTitle === 'string'\n ? maintenanceTypeTitle\n : resolveMultiLanguageString(maintenanceTypeTitle as never, this.translationService.getActiveLang());\n\n const assignedToTitle = workOrder.assignedTo?.fullName;\n // Interval workflow input `checklist` maps to approval flow `preChecklistQuestionnaireId`.\n const checklistId =\n this.resolveText(checklistOverride) ||\n this.resolveText(templateDefaults['checklist']) ||\n this.resolveText(templateDefaults['preChecklistQuestionnaireId']);\n\n // Template defaults first; runtime plan / work-order refs must win (never overridable by defaults).\n return {\n ...templateDefaults,\n workOrderId: workOrder.id,\n workOrderNo: workOrder.workOrderNo,\n workOrderCode: workOrder.workOrderNo,\n assetId: workOrder.assetId,\n assetCode: assetIdentifiers.assetCode,\n assetSerialNumber: assetIdentifiers.assetSerialNumber,\n assetDisplayName,\n maintenanceTypeId: workOrder.maintenanceTypeId,\n maintenanceTypeName,\n maintenancePlanId: workOrder.maintenancePlanId ?? null,\n failureRegisterId: workOrder.failureRegisterId ?? null,\n assignedToId: workOrder.assignedToId ?? null,\n assignedToDisplayName:\n typeof assignedToTitle === 'string' && assignedToTitle.trim()\n ? assignedToTitle.trim()\n : workOrder.assignedToId ?? null,\n assignedEmployeeId: assignedEmployeeId || null,\n sourceType: workOrder.sourceType ?? null,\n dueDate: workOrder.scheduledEnd ?? workOrder.scheduledStart ?? null,\n ...(checklistId ? { preChecklistQuestionnaireId: checklistId, checklist: checklistId } : {}),\n };\n }\n\n private resolveText(value: unknown): string {\n if (!isString(value)) {\n return '';\n }\n return value.trim();\n }\n\n private async showWarning(content: string): Promise<void> {\n this.toastService.show({\n color: 'warning',\n title: await this.translationService.translateAsync('@general:messages.generic.warning.title'),\n content,\n closeButton: true,\n timeOut: 10000,\n timeOutProgress: true,\n });\n }\n\n /**\n * Work-order approval flow expects `HumanCapitalManagement.Employee` id (`performedById` on WorkReport).\n * `WorkOrder.assignedToId` stores `PersonCore.Person` id.\n */\n private async resolveEmployeeIdByPersonId(personId: string): Promise<string> {\n if (!personId) {\n return '';\n }\n\n const page = await this.entityService\n .withEntity('HumanCapitalManagement', 'Employee')\n .data()\n .query({\n skip: 0,\n take: 1,\n filter: {\n logic: 'and',\n filters: [{ field: 'personId', operator: { type: 'equal' }, value: personId }],\n },\n } as never);\n\n const employee = defaultTo(get(page, 'items[0]'), null) as { id?: string } | null;\n return this.resolveText(employee?.id);\n }\n\n private async resolveMaintenanceTemplateId(\n workOrder: AXMMaintenanceManagementWorkOrderEntityModel,\n explicitTemplateId?: string,\n ): Promise<string> {\n if (explicitTemplateId) {\n return explicitTemplateId;\n }\n\n const currentTemplateId = this.resolveText(workOrder.maintenanceTemplateId);\n if (currentTemplateId) {\n const currentConfig = await this.resolveWorkflowConfig(workOrder);\n if (this.isWorkflowEnabled(currentConfig)) {\n return currentTemplateId;\n }\n }\n\n const assetId = this.resolveText(workOrder.assetId);\n if (!assetId) {\n const content = await this.translationService.translateAsync(\n '@maintenance-management:work-orders.messages.no-workflow-templates-for-asset',\n );\n await this.showWarning(content);\n return '';\n }\n\n const backend = this.createStorageBackend();\n const templateEntityName = `${RootConfig.module.name}.${RootConfig.entities.maintenanceTemplate.name}`;\n const templates = await queryWorkflowTemplatesForAsset(backend, templateEntityName, assetId);\n if (templates.length === 0) {\n const content = await this.translationService.translateAsync(\n '@maintenance-management:work-orders.messages.no-workflow-templates-for-asset',\n );\n await this.showWarning(content);\n return '';\n }\n\n if (templates.length === 1) {\n return templates[0].id;\n }\n\n return (await this.pickMaintenanceTemplate(templates)) ?? '';\n }\n\n private async pickMaintenanceTemplate(templates: MaintenanceTemplateLike[]): Promise<string | null> {\n const locale = this.translationService.getActiveLang() as 'en-US' | 'fa-IR';\n const sorted = [...templates].sort((a, b) => {\n const ta = resolveDisplayLabel(a.title, a.code ?? a.id, locale);\n const tb = resolveDisplayLabel(b.title, b.code ?? b.id, locale);\n return ta.localeCompare(tb, locale, { sensitivity: 'base' });\n });\n\n const title = await this.translationService.translateAsync(\n '@maintenance-management:work-orders.actions.start-flow.select-template.title',\n );\n const content = await this.translationService.translateAsync(\n '@maintenance-management:work-orders.actions.start-flow.select-template.content',\n );\n const cancelLabel = await this.translationService.translateAsync('@general:actions.cancel.title');\n\n return new Promise((resolve) => {\n let settled = false;\n const finish = (value: string | null) => {\n if (settled) {\n return;\n }\n settled = true;\n resolve(value);\n };\n\n const dialog = this.dialogService.open({\n title,\n content,\n type: 'primary',\n orientation: 'vertical',\n closeButton: true,\n buttons: [\n {\n text: cancelLabel,\n color: 'default',\n autofocus: true,\n onClick: () => {\n dialog.close();\n finish(null);\n },\n },\n ...sorted.map((template) => ({\n text: resolveDisplayLabel(template.title, template.code ?? template.id, locale),\n color: 'primary' as const,\n onClick: () => {\n dialog.close();\n finish(template.id);\n },\n })),\n ],\n });\n });\n }\n\n private createStorageBackend(): EntityStorageBackend {\n return {\n getOne: async (entityName, id) => {\n const [module, entity] = entityName.split('.');\n return this.entityService.withEntity(module, entity).data().byKey(id);\n },\n insertOne: async () => null,\n query: async (entityName, request) => {\n const [module, entity] = entityName.split('.');\n return this.entityService.withEntity(module, entity).data().query(request as never);\n },\n };\n }\n\n //#endregion\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';
|
|
2
|
+
import { readAssetUsageValues } from '@acorex-platform/module-asset-management-client/contracts';
|
|
2
3
|
import * as i0 from '@angular/core';
|
|
3
4
|
import { inject, Injectable } from '@angular/core';
|
|
4
5
|
import { isString } from 'lodash';
|
|
5
|
-
import { RootConfig, AXMWorkOrderStatus } from '@acorex-platform/module-maintenance-management-client/contracts';
|
|
6
|
+
import { RootConfig, AXMWorkOrderStatus, isAXMMaintenanceMeterKind, isAXMMaintenanceIntervalUnitForKind } from '@acorex-platform/module-maintenance-management-client/contracts';
|
|
6
7
|
|
|
7
8
|
//#endregion
|
|
8
9
|
/**
|
|
@@ -53,12 +54,21 @@ class UpdateWorkOrderCompletedActivity {
|
|
|
53
54
|
};
|
|
54
55
|
}
|
|
55
56
|
const completedAt = new Date().toISOString();
|
|
57
|
+
const readings = await this.captureCompletionUsageReadings(workOrder.assetId, completedAt);
|
|
58
|
+
if (!readings.ok) {
|
|
59
|
+
return {
|
|
60
|
+
success: false,
|
|
61
|
+
message: { text: readings.message },
|
|
62
|
+
metadata: { outcome: 'Failed' },
|
|
63
|
+
};
|
|
64
|
+
}
|
|
56
65
|
await this.entityService
|
|
57
66
|
.withEntity(RootConfig.module.name, RootConfig.entities.workOrder.name)
|
|
58
67
|
.data()
|
|
59
68
|
.update(workOrderId, {
|
|
60
69
|
statusId: AXMWorkOrderStatus.Completed,
|
|
61
70
|
completedAt,
|
|
71
|
+
completionUsageReadings: readings.readings,
|
|
62
72
|
});
|
|
63
73
|
return { success: true, kind: 'object',
|
|
64
74
|
data: {
|
|
@@ -71,6 +81,31 @@ class UpdateWorkOrderCompletedActivity {
|
|
|
71
81
|
}
|
|
72
82
|
//#endregion
|
|
73
83
|
//#region ---- Helpers ----
|
|
84
|
+
async captureCompletionUsageReadings(assetId, capturedAt) {
|
|
85
|
+
const id = this.resolveText(assetId);
|
|
86
|
+
if (!id) {
|
|
87
|
+
return { ok: false, message: 'Work order has no asset, so completion readings cannot be captured.' };
|
|
88
|
+
}
|
|
89
|
+
const asset = (await this.entityService
|
|
90
|
+
.withEntity('AssetManagement', 'Asset')
|
|
91
|
+
.data()
|
|
92
|
+
.byKey(id));
|
|
93
|
+
if (!asset) {
|
|
94
|
+
return { ok: false, message: 'Asset not found, so completion readings cannot be captured.' };
|
|
95
|
+
}
|
|
96
|
+
const readings = [];
|
|
97
|
+
for (const item of readAssetUsageValues(asset.usageValues)) {
|
|
98
|
+
if (!isAXMMaintenanceMeterKind(item.kind)) {
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
const unit = item.unit;
|
|
102
|
+
if (!isAXMMaintenanceIntervalUnitForKind(item.kind, unit)) {
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
readings.push({ kind: item.kind, currentValue: item.currentValue, unit, capturedAt });
|
|
106
|
+
}
|
|
107
|
+
return { ok: true, readings };
|
|
108
|
+
}
|
|
74
109
|
resolveText(value) {
|
|
75
110
|
if (!isString(value)) {
|
|
76
111
|
return '';
|
|
@@ -86,4 +121,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
86
121
|
}] });
|
|
87
122
|
|
|
88
123
|
export { UpdateWorkOrderCompletedActivity };
|
|
89
|
-
//# sourceMappingURL=acorex-platform-module-maintenance-management-client-update-work-order-completed.activity-
|
|
124
|
+
//# sourceMappingURL=acorex-platform-module-maintenance-management-client-update-work-order-completed.activity-CSKzwPjv.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-maintenance-management-client-update-work-order-completed.activity-CSKzwPjv.mjs","sources":["../../../../libs/modules/maintenance-management/client/src/lib/features/work-order/workflows/activities/update-work-order-completed.activity.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPRuntimeCommandResult } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { readAssetUsageValues } from '@acorex-platform/module-asset-management-client/contracts';\nimport { inject, Injectable } from '@angular/core';\nimport { isString } from 'lodash';\n\nimport {\n AXMWorkOrderStatus,\n RootConfig,\n isAXMMaintenanceIntervalUnitForKind,\n isAXMMaintenanceMeterKind,\n type AXMMaintenanceIntervalUnit,\n type AXMMaintenanceManagementWorkOrderEntityModel,\n type AXMWorkOrderCompletionUsageReading,\n} from '@acorex-platform/module-maintenance-management-client/contracts';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface UpdateWorkOrderCompletedInput {\n workOrderId: string;\n}\n\nexport interface UpdateWorkOrderCompletedOutput {\n workOrderId: string;\n statusId: string;\n completedAt: string;\n}\n\n//#endregion\n\n/**\n * Marks the work order as completed. Approval/sign-off is handled by a separate workflow.\n */\n@Injectable({ providedIn: 'root' })\nexport class UpdateWorkOrderCompletedActivity\n implements AXPCommand<UpdateWorkOrderCompletedInput, UpdateWorkOrderCompletedOutput>\n{\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n\n //#endregion\n\n //#region ---- Command Implementation ----\n\n async execute(\n input: UpdateWorkOrderCompletedInput,\n ): AXPCommandExecuteResultPromise<UpdateWorkOrderCompletedOutput> {\n const workOrderId = this.resolveText(input?.workOrderId);\n if (!workOrderId) {\n return {\n success: false,\n message: { text: 'workOrderId is required' },\n metadata: { outcome: 'Failed' },\n };\n }\n\n const workOrder = (await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.workOrder.name)\n .data()\n .byKey(workOrderId)) as AXMMaintenanceManagementWorkOrderEntityModel | null;\n\n if (!workOrder?.id) {\n return {\n success: false,\n message: { text: 'Work order not found' },\n metadata: { outcome: 'NotFound' },\n };\n }\n\n if (workOrder.statusId === AXMWorkOrderStatus.Completed) {\n return { success: true, kind: 'object',\n data: {\n workOrderId,\n statusId: AXMWorkOrderStatus.Completed,\n completedAt: workOrder.completedAt ?? new Date().toISOString(),\n },\n metadata: { outcome: 'Done' },\n };\n }\n\n if (workOrder.statusId !== AXMWorkOrderStatus.InProgress) {\n return {\n success: false,\n message: { text: 'Work order must be in progress before it can be marked completed.' },\n metadata: { outcome: 'Failed' },\n };\n }\n\n const completedAt = new Date().toISOString();\n const readings = await this.captureCompletionUsageReadings(workOrder.assetId, completedAt);\n if (!readings.ok) {\n return {\n success: false,\n message: { text: readings.message },\n metadata: { outcome: 'Failed' },\n };\n }\n\n await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.workOrder.name)\n .data()\n .update(workOrderId, {\n statusId: AXMWorkOrderStatus.Completed,\n completedAt,\n completionUsageReadings: readings.readings,\n } as never);\n\n return { success: true, kind: 'object',\n data: {\n workOrderId,\n statusId: AXMWorkOrderStatus.Completed,\n completedAt,\n },\n metadata: { outcome: 'Done' },\n };\n }\n\n //#endregion\n\n //#region ---- Helpers ----\n\n private async captureCompletionUsageReadings(\n assetId: string | undefined,\n capturedAt: string,\n ): Promise<{ ok: true; readings: AXMWorkOrderCompletionUsageReading[] } | { ok: false; message: string }> {\n const id = this.resolveText(assetId);\n if (!id) {\n return { ok: false, message: 'Work order has no asset, so completion readings cannot be captured.' };\n }\n\n const asset = (await this.entityService\n .withEntity('AssetManagement', 'Asset')\n .data()\n .byKey(id)) as { usageValues?: unknown } | null;\n if (!asset) {\n return { ok: false, message: 'Asset not found, so completion readings cannot be captured.' };\n }\n\n const readings: AXMWorkOrderCompletionUsageReading[] = [];\n for (const item of readAssetUsageValues(asset.usageValues)) {\n if (!isAXMMaintenanceMeterKind(item.kind)) {\n continue;\n }\n const unit = item.unit as unknown as AXMMaintenanceIntervalUnit;\n if (!isAXMMaintenanceIntervalUnitForKind(item.kind, unit)) {\n continue;\n }\n readings.push({ kind: item.kind, currentValue: item.currentValue, unit, capturedAt });\n }\n return { ok: true, readings };\n }\n\n private resolveText(value: unknown): string {\n if (!isString(value)) {\n return '';\n }\n return value.trim();\n }\n\n //#endregion\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import * as i0 from '@angular/core';
|
|
|
4
4
|
import { inject, Injectable } from '@angular/core';
|
|
5
5
|
import { isString } from 'lodash';
|
|
6
6
|
import { RootConfig, AXMWorkOrderStatus } from '@acorex-platform/module-maintenance-management-client/contracts';
|
|
7
|
-
import { A as AXM_WORK_ORDER_WORKFLOW_DEBUG_NAMESPACE } from './acorex-platform-module-maintenance-management-client-acorex-platform-module-maintenance-management-client-
|
|
7
|
+
import { A as AXM_WORK_ORDER_WORKFLOW_DEBUG_NAMESPACE } from './acorex-platform-module-maintenance-management-client-acorex-platform-module-maintenance-management-client-CGjcOjjv.mjs';
|
|
8
8
|
|
|
9
9
|
//#region ---- Imports ----
|
|
10
10
|
//#endregion
|
|
@@ -93,4 +93,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
93
93
|
}] });
|
|
94
94
|
|
|
95
95
|
export { UpdateWorkOrderInProgressActivity };
|
|
96
|
-
//# sourceMappingURL=acorex-platform-module-maintenance-management-client-update-work-order-in-progress.activity-
|
|
96
|
+
//# sourceMappingURL=acorex-platform-module-maintenance-management-client-update-work-order-in-progress.activity-B8vjsOI_.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-maintenance-management-client-update-work-order-in-progress.activity-
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-maintenance-management-client-update-work-order-in-progress.activity-B8vjsOI_.mjs","sources":["../../../../libs/modules/maintenance-management/client/src/lib/features/work-order/workflows/activities/update-work-order-in-progress.activity.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPDebugService } from '@acorex-platform/framework-client/core';\nimport { AXPRuntimeCommandResult } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { inject, Injectable } from '@angular/core';\nimport { isString } from 'lodash';\n\nimport { AXMWorkOrderStatus, RootConfig } from '@acorex-platform/module-maintenance-management-client/contracts';\nimport { AXM_WORK_ORDER_WORKFLOW_DEBUG_NAMESPACE } from '../work-order-workflow.debug';\nimport type { AXMMaintenanceManagementWorkOrderEntityModel } from '@acorex-platform/module-maintenance-management-client/contracts';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface UpdateWorkOrderInProgressInput {\n workOrderId: string;\n}\n\nexport interface UpdateWorkOrderInProgressOutput {\n workOrderId: string;\n statusId: string;\n startedAt: string | null;\n skipped: boolean;\n}\n\n//#endregion\n\n/**\n * Sets the work order to in-progress when it is not already in that state.\n */\n@Injectable({ providedIn: 'root' })\nexport class UpdateWorkOrderInProgressActivity\n implements AXPCommand<UpdateWorkOrderInProgressInput, UpdateWorkOrderInProgressOutput>\n{\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly debug = inject(AXPDebugService);\n\n //#endregion\n\n //#region ---- Command Implementation ----\n\n async execute(\n input: UpdateWorkOrderInProgressInput,\n ): AXPCommandExecuteResultPromise<UpdateWorkOrderInProgressOutput> {\n const workOrderId = this.resolveText(input?.workOrderId);\n if (!workOrderId) {\n return {\n success: false,\n message: { text: 'workOrderId is required' },\n metadata: { outcome: 'Failed' },\n };\n }\n\n const workOrder = (await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.workOrder.name)\n .data()\n .byKey(workOrderId)) as AXMMaintenanceManagementWorkOrderEntityModel | null;\n\n if (!workOrder?.id) {\n return {\n success: false,\n message: { text: 'Work order not found' },\n metadata: { outcome: 'NotFound' },\n };\n }\n\n if (workOrder.statusId === AXMWorkOrderStatus.InProgress) {\n return { success: true, kind: 'object',\n data: {\n workOrderId,\n statusId: AXMWorkOrderStatus.InProgress,\n startedAt: workOrder.startedAt ?? null,\n skipped: true,\n },\n metadata: { outcome: 'Done' },\n };\n }\n\n if (workOrder.statusId === AXMWorkOrderStatus.Completed || workOrder.statusId === AXMWorkOrderStatus.SignedOff) {\n return {\n success: false,\n message: { text: 'Work order is already completed.' },\n metadata: { outcome: 'Failed' },\n };\n }\n\n const startedAt = this.resolveText(workOrder.startedAt) || new Date().toISOString();\n await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.workOrder.name)\n .data()\n .update(workOrderId, {\n statusId: AXMWorkOrderStatus.InProgress,\n startedAt,\n } as never);\n\n this.debug.trace(\n AXM_WORK_ORDER_WORKFLOW_DEBUG_NAMESPACE,\n 'work-order-status',\n 'Work order set to in-progress',\n { workOrderId, startedAt, previousStatusId: workOrder.statusId },\n );\n\n return { success: true, kind: 'object',\n data: {\n workOrderId,\n statusId: AXMWorkOrderStatus.InProgress,\n startedAt,\n skipped: false,\n },\n metadata: { outcome: 'Done' },\n };\n }\n\n //#endregion\n\n //#region ---- Helpers ----\n\n private resolveText(value: unknown): string {\n if (!isString(value)) {\n return '';\n }\n return value.trim();\n }\n\n //#endregion\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ import * as i0 from '@angular/core';
|
|
|
14
14
|
import { inject, signal, effect, untracked, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
15
15
|
import { get, defaultTo, isString } from 'lodash';
|
|
16
16
|
import { AXMWorkOrderStatus, RootConfig, AXMMaintenanceManagementCommandKeys } from '@acorex-platform/module-maintenance-management-client/contracts';
|
|
17
|
-
import { q as queryWorkflowTemplatesForAsset, r as resolveDisplayLabel } from './acorex-platform-module-maintenance-management-client-acorex-platform-module-maintenance-management-client-
|
|
17
|
+
import { q as queryWorkflowTemplatesForAsset, r as resolveDisplayLabel } from './acorex-platform-module-maintenance-management-client-acorex-platform-module-maintenance-management-client-CGjcOjjv.mjs';
|
|
18
18
|
|
|
19
19
|
//#region ---- Imports ----
|
|
20
20
|
const STARTABLE_STATUSES = new Set([
|
|
@@ -317,4 +317,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
317
317
|
}], ctorParameters: () => [] });
|
|
318
318
|
|
|
319
319
|
export { AXMWorkOrderWorkflowColumnComponent };
|
|
320
|
-
//# sourceMappingURL=acorex-platform-module-maintenance-management-client-work-order-workflow-column.component-
|
|
320
|
+
//# sourceMappingURL=acorex-platform-module-maintenance-management-client-work-order-workflow-column.component-DG80hqRj.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-maintenance-management-client-work-order-workflow-column.component-B90OJ-Ol.mjs","sources":["../../../../libs/modules/maintenance-management/client/src/lib/features/work-order/widgets/work-order-workflow-column.component.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport {\n AXTranslationModule,\n AXTranslationService,\n} from '@acorex/core/translation';\nimport {\n AXPEntityService,\n getRecordWorkflowInstanceId,\n} from '@acorex-platform/framework-client/layout/entity';\nimport { AXPColumnWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';\nimport { AXPCommandService } from '@acorex-platform/framework-client/runtime';\nimport { ChangeDetectionStrategy, Component, effect, inject, signal, untracked } from '@angular/core';\nimport { defaultTo, get, isString } from 'lodash';\n\nimport {\n AXMMaintenanceManagementCommandKeys,\n AXMWorkOrderStatus,\n RootConfig,\n} from '@acorex-platform/module-maintenance-management-client/contracts';\nimport type { AXMMaintenanceManagementMaintenanceTemplateWorkflowConfig } from '@acorex-platform/module-maintenance-management-client/contracts';\nimport {\n type EntityStorageBackend,\n queryWorkflowTemplatesForAsset,\n resolveDisplayLabel,\n} from '../../../middlewares/maintenance-generation.utils';\n\n//#endregion\n\n//#region ---- Types ----\n\ninterface WorkflowTemplateOption {\n id: string;\n title: string;\n}\n\nconst STARTABLE_STATUSES = new Set<string>([\n AXMWorkOrderStatus.Planned,\n AXMWorkOrderStatus.Scheduled,\n AXMWorkOrderStatus.Assigned,\n]);\n\n//#endregion\n\n//#region ---- Component ----\n\n@Component({\n selector: 'axm-work-order-workflow-column',\n host: {\n class: 'w-full block',\n '(click)': 'onColumnClick($event)',\n '(mousedown)': 'onColumnClick($event)',\n '(dblclick)': 'onColumnClick($event)',\n },\n template: `\n <div class=\"w-full\">\n @if (isBusy() || isLoading()) {\n <ax-loading></ax-loading>\n } @else if (activeWorkflowLabel()) {\n <span\n class=\"inline-flex items-center gap-1 text-xs font-medium\"\n [title]=\"activeWorkflowLabel()\"\n >\n <i class=\"fa-light fa-diagram-project fa-fw\"></i>\n <span>{{ activeWorkflowLabel() }}</span>\n </span>\n } @else if (canSelect()) {\n @if (templates().length === 0) {\n <span class=\"text-muted text-xs\">---</span>\n } @else if (templates().length === 1) {\n <ax-button\n class=\"ax-sm\"\n look=\"link\"\n [text]=\"templates()[0].title\"\n (onClick)=\"selectTemplate(templates()[0])\"\n >\n <ax-prefix>\n <i class=\"fa-light fa-play\"></i>\n </ax-prefix>\n </ax-button>\n } @else {\n <ax-button class=\"ax-sm\" look=\"outline\" [text]=\"selectLabel()\">\n <ax-prefix>\n <i class=\"fa-light fa-diagram-project\"></i>\n </ax-prefix>\n <ax-dropdown-panel #panel>\n <ax-button-item-list>\n @for (template of templates(); track template.id) {\n <ax-button-item\n [text]=\"template.title\"\n (onClick)=\"selectTemplate(template)\"\n >\n <ax-prefix>\n <i class=\"fa-light fa-play\"></i>\n </ax-prefix>\n </ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n } @else {\n <span class=\"text-muted text-xs\">---</span>\n }\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n AXButtonModule,\n AXDecoratorModule,\n AXDropdownModule,\n AXLoadingModule,\n AXTranslationModule,\n ],\n inputs: ['rawValue', 'rowData'],\n})\nexport class AXMWorkOrderWorkflowColumnComponent extends AXPColumnWidgetComponent<unknown> {\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly commandService = inject(AXPCommandService);\n private readonly translation = inject(AXTranslationService);\n\n //#endregion\n\n //#region ---- State ----\n\n protected isLoading = signal(false);\n protected isBusy = signal(false);\n protected templates = signal<WorkflowTemplateOption[]>([]);\n protected activeWorkflowLabel = signal('');\n protected canSelect = signal(false);\n protected selectLabel = signal('');\n\n //#endregion\n\n //#region ---- Lifecycle ----\n\n constructor() {\n super();\n effect(() => {\n const row = this.rowData as Record<string, unknown> | undefined;\n untracked(() => {\n void this.syncRowState(row);\n });\n });\n }\n\n //#endregion\n\n //#region ---- UI Handlers ----\n\n /** Prevents grid row default / double-click actions when interacting with this column. */\n protected onColumnClick(event: Event): void {\n event.stopPropagation();\n event.preventDefault();\n }\n\n protected async selectTemplate(\n template: WorkflowTemplateOption,\n ): Promise<void> {\n if (this.isBusy() || !template.id) {\n return;\n }\n\n const row = this.rowData as Record<string, unknown> | undefined;\n const workOrderId = this.resolveText(get(row, 'id'));\n if (!workOrderId) {\n return;\n }\n\n this.isBusy.set(true);\n try {\n const entitySource = `${RootConfig.module.name}.${RootConfig.entities.workOrder.name}`;\n const result = await this.commandService.execute(\n AXMMaintenanceManagementCommandKeys.WorkOrder.StartFlow,\n {\n entity: entitySource,\n data: {\n ...defaultTo(row, {}),\n id: workOrderId,\n maintenanceTemplateId: template.id,\n },\n \n },\n );\n\n if (result?.success) {\n const updated = (await this.entityService\n .withEntity(\n RootConfig.module.name,\n RootConfig.entities.workOrder.name,\n )\n .data()\n .byKey(workOrderId)) as Record<string, unknown> | null;\n if (row && updated) {\n Object.assign(row, updated);\n await this.syncRowState(row);\n }\n } else if (row) {\n const updated = (await this.entityService\n .withEntity(\n RootConfig.module.name,\n RootConfig.entities.workOrder.name,\n )\n .data()\n .byKey(workOrderId)\n .catch(() => null)) as Record<string, unknown> | null;\n if (updated) {\n Object.assign(row, updated);\n await this.syncRowState(row);\n }\n }\n } finally {\n this.isBusy.set(false);\n }\n }\n\n //#endregion\n\n //#region ---- Helpers ----\n\n private async syncRowState(\n row: Record<string, unknown> | undefined,\n ): Promise<void> {\n this.isLoading.set(true);\n try {\n this.selectLabel.set(\n await this.translation.translateAsync(\n '@maintenance-management:work-orders.entities.work-order.fields.workflow-column.select-workflow',\n ),\n );\n\n if (!row) {\n this.templates.set([]);\n this.activeWorkflowLabel.set('');\n this.canSelect.set(false);\n return;\n }\n\n if (getRecordWorkflowInstanceId(row)) {\n this.templates.set([]);\n this.canSelect.set(false);\n this.activeWorkflowLabel.set(this.resolveActiveWorkflowLabel(row));\n return;\n }\n\n const statusId = this.resolveText(get(row, 'statusId'));\n const assetId = this.resolveText(get(row, 'assetId'));\n const canStart = STARTABLE_STATUSES.has(statusId) && !!assetId;\n this.canSelect.set(canStart);\n this.activeWorkflowLabel.set('');\n\n if (!canStart || !assetId) {\n this.templates.set([]);\n return;\n }\n\n const backend = this.createStorageBackend();\n const templateEntityName = `${RootConfig.module.name}.${RootConfig.entities.maintenanceTemplate.name}`;\n const rawTemplates = await queryWorkflowTemplatesForAsset(\n backend,\n templateEntityName,\n assetId,\n );\n const locale = this.translation.getActiveLang() as 'en-US' | 'fa-IR';\n\n this.templates.set(\n [...rawTemplates]\n .sort((a, b) => {\n const ta = resolveDisplayLabel(a.title, a.code ?? a.id, locale);\n const tb = resolveDisplayLabel(b.title, b.code ?? b.id, locale);\n return ta.localeCompare(tb, locale, { sensitivity: 'base' });\n })\n .map((template) => ({\n id: template.id,\n title: resolveDisplayLabel(\n template.title,\n template.code ?? template.id,\n locale,\n ),\n })),\n );\n } finally {\n this.isLoading.set(false);\n }\n }\n\n private resolveActiveWorkflowLabel(row: Record<string, unknown>): string {\n const locale = this.translation.getActiveLang() as 'en-US' | 'fa-IR';\n const workflowConfig = get(row, 'maintenanceTemplate.workflowConfig') as\n | AXMMaintenanceManagementMaintenanceTemplateWorkflowConfig\n | null\n | undefined;\n const workflowName = workflowConfig?.workflowName?.trim();\n if (workflowName) {\n return workflowName;\n }\n\n const templateTitle = get(row, 'maintenanceTemplate.title');\n if (templateTitle) {\n return resolveDisplayLabel(\n templateTitle as Parameters<typeof resolveDisplayLabel>[0],\n this.resolveText(get(row, 'maintenanceTemplateId')),\n locale,\n );\n }\n\n return '';\n }\n\n private createStorageBackend(): EntityStorageBackend {\n return {\n getOne: async (entityName, id) => {\n const [module, entity] = entityName.split('.');\n return this.entityService.withEntity(module, entity).data().byKey(id);\n },\n insertOne: async () => null,\n query: async (entityName, request) => {\n const [module, entity] = entityName.split('.');\n return this.entityService\n .withEntity(module, entity)\n .data()\n .query(request as never);\n },\n };\n }\n\n private resolveText(value: unknown): string {\n if (!isString(value)) {\n return '';\n }\n return value.trim();\n }\n\n //#endregion\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-maintenance-management-client-work-order-workflow-column.component-DG80hqRj.mjs","sources":["../../../../libs/modules/maintenance-management/client/src/lib/features/work-order/widgets/work-order-workflow-column.component.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport {\n AXTranslationModule,\n AXTranslationService,\n} from '@acorex/core/translation';\nimport {\n AXPEntityService,\n getRecordWorkflowInstanceId,\n} from '@acorex-platform/framework-client/layout/entity';\nimport { AXPColumnWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';\nimport { AXPCommandService } from '@acorex-platform/framework-client/runtime';\nimport { ChangeDetectionStrategy, Component, effect, inject, signal, untracked } from '@angular/core';\nimport { defaultTo, get, isString } from 'lodash';\n\nimport {\n AXMMaintenanceManagementCommandKeys,\n AXMWorkOrderStatus,\n RootConfig,\n} from '@acorex-platform/module-maintenance-management-client/contracts';\nimport type { AXMMaintenanceManagementMaintenanceTemplateWorkflowConfig } from '@acorex-platform/module-maintenance-management-client/contracts';\nimport {\n type EntityStorageBackend,\n queryWorkflowTemplatesForAsset,\n resolveDisplayLabel,\n} from '../../../middlewares/maintenance-generation.utils';\n\n//#endregion\n\n//#region ---- Types ----\n\ninterface WorkflowTemplateOption {\n id: string;\n title: string;\n}\n\nconst STARTABLE_STATUSES = new Set<string>([\n AXMWorkOrderStatus.Planned,\n AXMWorkOrderStatus.Scheduled,\n AXMWorkOrderStatus.Assigned,\n]);\n\n//#endregion\n\n//#region ---- Component ----\n\n@Component({\n selector: 'axm-work-order-workflow-column',\n host: {\n class: 'w-full block',\n '(click)': 'onColumnClick($event)',\n '(mousedown)': 'onColumnClick($event)',\n '(dblclick)': 'onColumnClick($event)',\n },\n template: `\n <div class=\"w-full\">\n @if (isBusy() || isLoading()) {\n <ax-loading></ax-loading>\n } @else if (activeWorkflowLabel()) {\n <span\n class=\"inline-flex items-center gap-1 text-xs font-medium\"\n [title]=\"activeWorkflowLabel()\"\n >\n <i class=\"fa-light fa-diagram-project fa-fw\"></i>\n <span>{{ activeWorkflowLabel() }}</span>\n </span>\n } @else if (canSelect()) {\n @if (templates().length === 0) {\n <span class=\"text-muted text-xs\">---</span>\n } @else if (templates().length === 1) {\n <ax-button\n class=\"ax-sm\"\n look=\"link\"\n [text]=\"templates()[0].title\"\n (onClick)=\"selectTemplate(templates()[0])\"\n >\n <ax-prefix>\n <i class=\"fa-light fa-play\"></i>\n </ax-prefix>\n </ax-button>\n } @else {\n <ax-button class=\"ax-sm\" look=\"outline\" [text]=\"selectLabel()\">\n <ax-prefix>\n <i class=\"fa-light fa-diagram-project\"></i>\n </ax-prefix>\n <ax-dropdown-panel #panel>\n <ax-button-item-list>\n @for (template of templates(); track template.id) {\n <ax-button-item\n [text]=\"template.title\"\n (onClick)=\"selectTemplate(template)\"\n >\n <ax-prefix>\n <i class=\"fa-light fa-play\"></i>\n </ax-prefix>\n </ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n } @else {\n <span class=\"text-muted text-xs\">---</span>\n }\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n AXButtonModule,\n AXDecoratorModule,\n AXDropdownModule,\n AXLoadingModule,\n AXTranslationModule,\n ],\n inputs: ['rawValue', 'rowData'],\n})\nexport class AXMWorkOrderWorkflowColumnComponent extends AXPColumnWidgetComponent<unknown> {\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly commandService = inject(AXPCommandService);\n private readonly translation = inject(AXTranslationService);\n\n //#endregion\n\n //#region ---- State ----\n\n protected isLoading = signal(false);\n protected isBusy = signal(false);\n protected templates = signal<WorkflowTemplateOption[]>([]);\n protected activeWorkflowLabel = signal('');\n protected canSelect = signal(false);\n protected selectLabel = signal('');\n\n //#endregion\n\n //#region ---- Lifecycle ----\n\n constructor() {\n super();\n effect(() => {\n const row = this.rowData as Record<string, unknown> | undefined;\n untracked(() => {\n void this.syncRowState(row);\n });\n });\n }\n\n //#endregion\n\n //#region ---- UI Handlers ----\n\n /** Prevents grid row default / double-click actions when interacting with this column. */\n protected onColumnClick(event: Event): void {\n event.stopPropagation();\n event.preventDefault();\n }\n\n protected async selectTemplate(\n template: WorkflowTemplateOption,\n ): Promise<void> {\n if (this.isBusy() || !template.id) {\n return;\n }\n\n const row = this.rowData as Record<string, unknown> | undefined;\n const workOrderId = this.resolveText(get(row, 'id'));\n if (!workOrderId) {\n return;\n }\n\n this.isBusy.set(true);\n try {\n const entitySource = `${RootConfig.module.name}.${RootConfig.entities.workOrder.name}`;\n const result = await this.commandService.execute(\n AXMMaintenanceManagementCommandKeys.WorkOrder.StartFlow,\n {\n entity: entitySource,\n data: {\n ...defaultTo(row, {}),\n id: workOrderId,\n maintenanceTemplateId: template.id,\n },\n \n },\n );\n\n if (result?.success) {\n const updated = (await this.entityService\n .withEntity(\n RootConfig.module.name,\n RootConfig.entities.workOrder.name,\n )\n .data()\n .byKey(workOrderId)) as Record<string, unknown> | null;\n if (row && updated) {\n Object.assign(row, updated);\n await this.syncRowState(row);\n }\n } else if (row) {\n const updated = (await this.entityService\n .withEntity(\n RootConfig.module.name,\n RootConfig.entities.workOrder.name,\n )\n .data()\n .byKey(workOrderId)\n .catch(() => null)) as Record<string, unknown> | null;\n if (updated) {\n Object.assign(row, updated);\n await this.syncRowState(row);\n }\n }\n } finally {\n this.isBusy.set(false);\n }\n }\n\n //#endregion\n\n //#region ---- Helpers ----\n\n private async syncRowState(\n row: Record<string, unknown> | undefined,\n ): Promise<void> {\n this.isLoading.set(true);\n try {\n this.selectLabel.set(\n await this.translation.translateAsync(\n '@maintenance-management:work-orders.entities.work-order.fields.workflow-column.select-workflow',\n ),\n );\n\n if (!row) {\n this.templates.set([]);\n this.activeWorkflowLabel.set('');\n this.canSelect.set(false);\n return;\n }\n\n if (getRecordWorkflowInstanceId(row)) {\n this.templates.set([]);\n this.canSelect.set(false);\n this.activeWorkflowLabel.set(this.resolveActiveWorkflowLabel(row));\n return;\n }\n\n const statusId = this.resolveText(get(row, 'statusId'));\n const assetId = this.resolveText(get(row, 'assetId'));\n const canStart = STARTABLE_STATUSES.has(statusId) && !!assetId;\n this.canSelect.set(canStart);\n this.activeWorkflowLabel.set('');\n\n if (!canStart || !assetId) {\n this.templates.set([]);\n return;\n }\n\n const backend = this.createStorageBackend();\n const templateEntityName = `${RootConfig.module.name}.${RootConfig.entities.maintenanceTemplate.name}`;\n const rawTemplates = await queryWorkflowTemplatesForAsset(\n backend,\n templateEntityName,\n assetId,\n );\n const locale = this.translation.getActiveLang() as 'en-US' | 'fa-IR';\n\n this.templates.set(\n [...rawTemplates]\n .sort((a, b) => {\n const ta = resolveDisplayLabel(a.title, a.code ?? a.id, locale);\n const tb = resolveDisplayLabel(b.title, b.code ?? b.id, locale);\n return ta.localeCompare(tb, locale, { sensitivity: 'base' });\n })\n .map((template) => ({\n id: template.id,\n title: resolveDisplayLabel(\n template.title,\n template.code ?? template.id,\n locale,\n ),\n })),\n );\n } finally {\n this.isLoading.set(false);\n }\n }\n\n private resolveActiveWorkflowLabel(row: Record<string, unknown>): string {\n const locale = this.translation.getActiveLang() as 'en-US' | 'fa-IR';\n const workflowConfig = get(row, 'maintenanceTemplate.workflowConfig') as\n | AXMMaintenanceManagementMaintenanceTemplateWorkflowConfig\n | null\n | undefined;\n const workflowName = workflowConfig?.workflowName?.trim();\n if (workflowName) {\n return workflowName;\n }\n\n const templateTitle = get(row, 'maintenanceTemplate.title');\n if (templateTitle) {\n return resolveDisplayLabel(\n templateTitle as Parameters<typeof resolveDisplayLabel>[0],\n this.resolveText(get(row, 'maintenanceTemplateId')),\n locale,\n );\n }\n\n return '';\n }\n\n private createStorageBackend(): EntityStorageBackend {\n return {\n getOne: async (entityName, id) => {\n const [module, entity] = entityName.split('.');\n return this.entityService.withEntity(module, entity).data().byKey(id);\n },\n insertOne: async () => null,\n query: async (entityName, request) => {\n const [module, entity] = entityName.split('.');\n return this.entityService\n .withEntity(module, entity)\n .data()\n .query(request as never);\n },\n };\n }\n\n private resolveText(value: unknown): string {\n if (!isString(value)) {\n return '';\n }\n return value.trim();\n }\n\n //#endregion\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { a as AXMMaintenanceIntervalComponent, b as AXMMaintenanceManagementMenuProvider, c as AXMMaintenanceManagementModule, d as AXMMaintenanceManagementPermissionDefinitionProvider, e as AXMMaintenanceManagementSearchCommandProvider, A as AXM_WORK_ORDER_WORKFLOW_DEBUG_NAMESPACE, f as createWorkOrderExecutionWorkflowDefinition, w as workOrderExecutionWorkflowDefinition, g as workOrderExecutionWorkflowName } from './acorex-platform-module-maintenance-management-client-acorex-platform-module-maintenance-management-client-
|
|
1
|
+
export { a as AXMMaintenanceIntervalComponent, b as AXMMaintenanceManagementMenuProvider, c as AXMMaintenanceManagementModule, d as AXMMaintenanceManagementPermissionDefinitionProvider, e as AXMMaintenanceManagementSearchCommandProvider, A as AXM_WORK_ORDER_WORKFLOW_DEBUG_NAMESPACE, f as createWorkOrderExecutionWorkflowDefinition, w as workOrderExecutionWorkflowDefinition, g as workOrderExecutionWorkflowName } from './acorex-platform-module-maintenance-management-client-acorex-platform-module-maintenance-management-client-CGjcOjjv.mjs';
|
|
2
2
|
//# sourceMappingURL=acorex-platform-module-maintenance-management-client.mjs.map
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
"empty": "This asset type has no maintenance intervals.",
|
|
33
33
|
"none": "No maintenance intervals are enabled.",
|
|
34
34
|
"kinds": {
|
|
35
|
+
"schedule": "Schedule",
|
|
35
36
|
"date": "Date",
|
|
36
37
|
"distance": "Distance",
|
|
37
38
|
"operating-hours": "Operating Hours",
|
|
@@ -43,15 +44,24 @@
|
|
|
43
44
|
"hour": "Hours",
|
|
44
45
|
"operation": "Operations"
|
|
45
46
|
},
|
|
47
|
+
"recurrence-unit": {
|
|
48
|
+
"title": "Recurrence Unit",
|
|
49
|
+
"hourly": "Hourly",
|
|
50
|
+
"daily": "Daily",
|
|
51
|
+
"weekly": "Weekly",
|
|
52
|
+
"monthly": "Monthly",
|
|
53
|
+
"yearly": "Yearly"
|
|
54
|
+
},
|
|
46
55
|
"trigger-logic": {
|
|
47
56
|
"title": "Trigger Condition",
|
|
48
|
-
"any": "Create
|
|
49
|
-
"all": "Create
|
|
57
|
+
"any": "Create Work Order when any interval is reached",
|
|
58
|
+
"all": "Create Work Order when all intervals are reached"
|
|
50
59
|
},
|
|
51
60
|
"validation": {
|
|
52
61
|
"interval": "Enter a number greater than zero.",
|
|
53
62
|
"integer": "Enter a whole number greater than zero.",
|
|
54
|
-
"
|
|
63
|
+
"date": "Choose a date.",
|
|
64
|
+
"schedule": "Set a schedule."
|
|
55
65
|
}
|
|
56
66
|
},
|
|
57
67
|
"maintenance-types": {
|
|
@@ -505,11 +515,16 @@
|
|
|
505
515
|
"supervisor-approval": {
|
|
506
516
|
"description": "Review the work order and checklist answers. Approve or reject when ready."
|
|
507
517
|
},
|
|
518
|
+
"interval-due": {
|
|
519
|
+
"task-title": "Interval Due — {{ workOrderCode }}",
|
|
520
|
+
"description": "A maintenance interval is due. Start the work order flow from the task board."
|
|
521
|
+
},
|
|
508
522
|
"actions": {
|
|
509
523
|
"open-questionnaire": "Open questionnaire",
|
|
510
524
|
"work-complete": "Mark work complete",
|
|
511
525
|
"review": "Review",
|
|
512
|
-
"reject": "Reject"
|
|
526
|
+
"reject": "Reject",
|
|
527
|
+
"start-flow": "Start Work Order Flow"
|
|
513
528
|
}
|
|
514
529
|
},
|
|
515
530
|
"entities": {
|
|
@@ -588,6 +603,12 @@
|
|
|
588
603
|
"completed-at": {
|
|
589
604
|
"title": "Completed At"
|
|
590
605
|
},
|
|
606
|
+
"completion-usage-readings": {
|
|
607
|
+
"title": "Completion Usage Readings"
|
|
608
|
+
},
|
|
609
|
+
"interval-states-progression": {
|
|
610
|
+
"title": "Interval States Progression"
|
|
611
|
+
},
|
|
591
612
|
"assigned-to-id": {
|
|
592
613
|
"title": "Assigned To"
|
|
593
614
|
},
|
|
@@ -2042,5 +2063,11 @@
|
|
|
2042
2063
|
"title": "Checklist Results",
|
|
2043
2064
|
"description": "Read-only checklist assessment references with view-response actions."
|
|
2044
2065
|
}
|
|
2066
|
+
},
|
|
2067
|
+
"commands": {
|
|
2068
|
+
"maintenance-interval-check": {
|
|
2069
|
+
"title": "Maintenance Interval Check",
|
|
2070
|
+
"description": "Creates a work order when an asset usage reading reaches a maintenance plan threshold."
|
|
2071
|
+
}
|
|
2045
2072
|
}
|
|
2046
2073
|
}
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
"empty": "This asset type has no maintenance intervals.",
|
|
33
33
|
"none": "No maintenance intervals are enabled.",
|
|
34
34
|
"kinds": {
|
|
35
|
+
"schedule": "Schedule",
|
|
35
36
|
"date": "Date",
|
|
36
37
|
"distance": "Distance",
|
|
37
38
|
"operating-hours": "Operating Hours",
|
|
@@ -43,15 +44,24 @@
|
|
|
43
44
|
"hour": "Hours",
|
|
44
45
|
"operation": "Operations"
|
|
45
46
|
},
|
|
47
|
+
"recurrence-unit": {
|
|
48
|
+
"title": "Recurrence Unit",
|
|
49
|
+
"hourly": "Hourly",
|
|
50
|
+
"daily": "Daily",
|
|
51
|
+
"weekly": "Weekly",
|
|
52
|
+
"monthly": "Monthly",
|
|
53
|
+
"yearly": "Yearly"
|
|
54
|
+
},
|
|
46
55
|
"trigger-logic": {
|
|
47
56
|
"title": "Trigger Condition",
|
|
48
|
-
"any": "Create
|
|
49
|
-
"all": "Create
|
|
57
|
+
"any": "Create Work Order when any interval is reached",
|
|
58
|
+
"all": "Create Work Order when all intervals are reached"
|
|
50
59
|
},
|
|
51
60
|
"validation": {
|
|
52
61
|
"interval": "Enter a number greater than zero.",
|
|
53
62
|
"integer": "Enter a whole number greater than zero.",
|
|
54
|
-
"
|
|
63
|
+
"date": "Choose a date.",
|
|
64
|
+
"schedule": "Set a schedule."
|
|
55
65
|
}
|
|
56
66
|
},
|
|
57
67
|
"maintenance-types": {
|
|
@@ -505,11 +515,16 @@
|
|
|
505
515
|
"supervisor-approval": {
|
|
506
516
|
"description": "Review the work order and checklist answers. Approve or reject when ready."
|
|
507
517
|
},
|
|
518
|
+
"interval-due": {
|
|
519
|
+
"task-title": "Interval Due — {{ workOrderCode }}",
|
|
520
|
+
"description": "A maintenance interval is due. Start the work order flow from the task board."
|
|
521
|
+
},
|
|
508
522
|
"actions": {
|
|
509
523
|
"open-questionnaire": "Open questionnaire",
|
|
510
524
|
"work-complete": "Mark work complete",
|
|
511
525
|
"review": "Review",
|
|
512
|
-
"reject": "Reject"
|
|
526
|
+
"reject": "Reject",
|
|
527
|
+
"start-flow": "Start Work Order Flow"
|
|
513
528
|
}
|
|
514
529
|
},
|
|
515
530
|
"entities": {
|
|
@@ -588,6 +603,12 @@
|
|
|
588
603
|
"completed-at": {
|
|
589
604
|
"title": "Completed At"
|
|
590
605
|
},
|
|
606
|
+
"completion-usage-readings": {
|
|
607
|
+
"title": "Completion Usage Readings"
|
|
608
|
+
},
|
|
609
|
+
"interval-states-progression": {
|
|
610
|
+
"title": "Interval States Progression"
|
|
611
|
+
},
|
|
591
612
|
"assigned-to-id": {
|
|
592
613
|
"title": "Assigned To"
|
|
593
614
|
},
|
|
@@ -2042,5 +2063,11 @@
|
|
|
2042
2063
|
"title": "Checklist Results",
|
|
2043
2064
|
"description": "Read-only checklist assessment references with view-response actions."
|
|
2044
2065
|
}
|
|
2066
|
+
},
|
|
2067
|
+
"commands": {
|
|
2068
|
+
"maintenance-interval-check": {
|
|
2069
|
+
"title": "Maintenance Interval Check",
|
|
2070
|
+
"description": "Creates a work order when an asset usage reading reaches a maintenance plan threshold."
|
|
2071
|
+
}
|
|
2045
2072
|
}
|
|
2046
2073
|
}
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
"empty": "این نوع دارایی بازه نگهداری ندارد.",
|
|
33
33
|
"none": "بازه نگهداری فعال نشده است.",
|
|
34
34
|
"kinds": {
|
|
35
|
+
"schedule": "زمانبندی",
|
|
35
36
|
"date": "تاریخ",
|
|
36
37
|
"distance": "مسافت",
|
|
37
38
|
"operating-hours": "ساعت کارکرد",
|
|
@@ -43,15 +44,24 @@
|
|
|
43
44
|
"hour": "ساعت",
|
|
44
45
|
"operation": "عملیات"
|
|
45
46
|
},
|
|
47
|
+
"recurrence-unit": {
|
|
48
|
+
"title": "واحد تکرار",
|
|
49
|
+
"hourly": "ساعتی",
|
|
50
|
+
"daily": "روزانه",
|
|
51
|
+
"weekly": "هفتگی",
|
|
52
|
+
"monthly": "ماهانه",
|
|
53
|
+
"yearly": "سالانه"
|
|
54
|
+
},
|
|
46
55
|
"trigger-logic": {
|
|
47
56
|
"title": "شرط فعالسازی",
|
|
48
|
-
"any": "
|
|
49
|
-
"all": "
|
|
57
|
+
"any": "دستور کار وقتی ایجاد شود که هر کدام از بازهها برسد",
|
|
58
|
+
"all": "دستور کار وقتی ایجاد شود که همه بازهها برسند"
|
|
50
59
|
},
|
|
51
60
|
"validation": {
|
|
52
61
|
"interval": "عددی بزرگتر از صفر وارد کنید.",
|
|
53
62
|
"integer": "یک عدد صحیح بزرگتر از صفر وارد کنید.",
|
|
54
|
-
"
|
|
63
|
+
"date": "یک تاریخ انتخاب کنید.",
|
|
64
|
+
"schedule": "زمانبندی را مشخص کنید."
|
|
55
65
|
}
|
|
56
66
|
},
|
|
57
67
|
"maintenance-types": {
|
|
@@ -505,11 +515,16 @@
|
|
|
505
515
|
"supervisor-approval": {
|
|
506
516
|
"description": "دستور کار و پاسخهای چکلیست را بررسی کنید و در صورت آمادگی تأیید یا رد کنید."
|
|
507
517
|
},
|
|
518
|
+
"interval-due": {
|
|
519
|
+
"task-title": "سررسید بازه — {{ workOrderCode }}",
|
|
520
|
+
"description": "بازه نگهداری سر رسیده است. جریان دستور کار را از تابلوی وظایف شروع کنید."
|
|
521
|
+
},
|
|
508
522
|
"actions": {
|
|
509
523
|
"open-questionnaire": "باز کردن پرسشنامه",
|
|
510
524
|
"work-complete": "علامتگذاری تکمیل کار",
|
|
511
525
|
"review": "بررسی",
|
|
512
|
-
"reject": "رد"
|
|
526
|
+
"reject": "رد",
|
|
527
|
+
"start-flow": "شروع جریان دستور کار"
|
|
513
528
|
}
|
|
514
529
|
},
|
|
515
530
|
"entities": {
|
|
@@ -588,6 +603,12 @@
|
|
|
588
603
|
"completed-at": {
|
|
589
604
|
"title": "زمان تکمیل"
|
|
590
605
|
},
|
|
606
|
+
"completion-usage-readings": {
|
|
607
|
+
"title": "قرائت کارکرد هنگام تکمیل"
|
|
608
|
+
},
|
|
609
|
+
"interval-states-progression": {
|
|
610
|
+
"title": "پیشرفت وضعیت بازه"
|
|
611
|
+
},
|
|
591
612
|
"assigned-to-id": {
|
|
592
613
|
"title": "مسئول انجام"
|
|
593
614
|
},
|
|
@@ -2029,5 +2050,11 @@
|
|
|
2029
2050
|
"title": "نتایج چکلیست",
|
|
2030
2051
|
"description": "ارجاعات ارزیابی چکلیست فقط خواندنی با عمل مشاهده پاسخ."
|
|
2031
2052
|
}
|
|
2053
|
+
},
|
|
2054
|
+
"commands": {
|
|
2055
|
+
"maintenance-interval-check": {
|
|
2056
|
+
"title": "بررسی بازه نگهداری",
|
|
2057
|
+
"description": "وقتی مقدار کارکرد دارایی به آستانه برنامه نگهداری برسد، دستور کار میسازد."
|
|
2058
|
+
}
|
|
2032
2059
|
}
|
|
2033
2060
|
}
|
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@acorex-platform/module-maintenance-management-client",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"peerDependencies": {
|
|
6
|
+
"@acorex-platform/module-asset-management-client": "1.0.1",
|
|
6
7
|
"@angular/common": "^21.0.0 || ^22.0.0",
|
|
7
8
|
"@angular/core": "^21.0.0 || ^22.0.0"
|
|
8
9
|
},
|