diff --git a/src/entity/unit/inspection/inspection.ts b/src/entity/unit/inspection/inspection.ts index 27b85c1..77e32d0 100644 --- a/src/entity/unit/inspection/inspection.ts +++ b/src/entity/unit/inspection/inspection.ts @@ -1,9 +1,10 @@ -import { Column, ColumnType, CreateDateColumn, Entity, ManyToOne, PrimaryGeneratedColumn } from "typeorm"; +import { Column, ColumnType, CreateDateColumn, Entity, ManyToOne, OneToMany, PrimaryGeneratedColumn } from "typeorm"; import { inspectionPlan } from "./inspectionPlan"; import { inspectionVersionedPlan } from "./inspectionVersionedPlan"; import { getTypeByORM } from "../../../migrations/ormHelper"; import { vehicle } from "../vehicle/vehicle"; import { equipment } from "../equipment/equipment"; +import { inspectionPointResult } from "./inspectionPointResult"; @Entity() export class inspection { @@ -61,4 +62,7 @@ export class inspection { onUpdate: "RESTRICT", }) vehicle: vehicle; + + @OneToMany(() => inspectionPointResult, (ipr) => ipr.inspection) + pointResults: inspectionPointResult[]; } diff --git a/src/service/unit/damageReport.ts b/src/service/unit/damageReport.ts index 0832766..b6134d6 100644 --- a/src/service/unit/damageReport.ts +++ b/src/service/unit/damageReport.ts @@ -4,7 +4,7 @@ import DatabaseActionException from "../../exceptions/databaseActionException"; export default abstract class DamageReportService { /** - * @description get all damageReport types + * @description get all damageReports * @returns {Promise>} */ static async getAll(): Promise> { diff --git a/src/service/unit/equipment/equipmentService.ts b/src/service/unit/equipment/equipmentService.ts index 8c28427..a2e1823 100644 --- a/src/service/unit/equipment/equipmentService.ts +++ b/src/service/unit/equipment/equipmentService.ts @@ -4,14 +4,15 @@ import DatabaseActionException from "../../../exceptions/databaseActionException export default abstract class EquipmentService { /** - * @description get all equipment types + * @description get all equipment * @returns {Promise>} */ static async getAll(): Promise> { return await dataSource .getRepository(equipment) .createQueryBuilder("equipment") - .orderBy("type", "ASC") + .leftJoinAndSelect("equipment.equipmentType", "equipmenttype") + .orderBy("name", "ASC") .getMany() .then((res) => { return res; @@ -29,6 +30,7 @@ export default abstract class EquipmentService { return await dataSource .getRepository(equipment) .createQueryBuilder("equipment") + .leftJoinAndSelect("equipment.equipmentType", "equipmenttype") .where({ id }) .getOneOrFail() .then((res) => { diff --git a/src/service/unit/equipment/equipmentTypeService.ts b/src/service/unit/equipment/equipmentTypeService.ts index 4617544..237b0cd 100644 --- a/src/service/unit/equipment/equipmentTypeService.ts +++ b/src/service/unit/equipment/equipmentTypeService.ts @@ -4,7 +4,7 @@ import DatabaseActionException from "../../../exceptions/databaseActionException export default abstract class EquipmentTypeService { /** - * @description get all equipment types + * @description get all equipmentTypes * @returns {Promise>} */ static async getAll(): Promise> { diff --git a/src/service/unit/inspection/inspectionPlanService.ts b/src/service/unit/inspection/inspectionPlanService.ts index 96fbab9..0e2cc47 100644 --- a/src/service/unit/inspection/inspectionPlanService.ts +++ b/src/service/unit/inspection/inspectionPlanService.ts @@ -1,17 +1,30 @@ import { dataSource } from "../../../data-source"; import { inspectionPlan } from "../../../entity/unit/inspection/inspectionPlan"; +import { DB_TYPE } from "../../../env.defaults"; import DatabaseActionException from "../../../exceptions/databaseActionException"; export default abstract class InspectionPlanService { /** - * @description get all inspectionPlan types + * @description get all inspectionPlans for related * @returns {Promise>} */ - static async getAll(): Promise> { + static async getAllForRelated( + where: { equipmentId: string } | { vehicleId: string } + ): Promise> { return await dataSource .getRepository(inspectionPlan) .createQueryBuilder("inspectionPlan") - .orderBy("type", "ASC") + .leftJoinAndMapOne( + "inspectionPlan.latestVersionedPlan", + "inspectionPlan.versionedPlans", + "latestVersionedPlan", + DB_TYPE == "postgres" + ? 'latestVersionedPlan.inspectionPlanId = inspectionPlan.id AND latestVersionedPlan.version = (SELECT MAX("ivp"."start") FROM "inspection_versioned_plan" "ivp" WHERE "ivp"."inspectionPlanId" = "inspectionPlan"."id")' + : "latestVersionedPlan.inspectionPlanId = inspectionPlan.id AND latestVersionedPlan.version = (SELECT MAX(ivp.start) FROM inspection_versioned_plan ivp WHERE ivp.inspectionPlanId = inspectionPlan.id)" + ) + .leftJoinAndSelect("latestVersionedPlan.inspectionPoints", "inspectionPoints") + .where(where) + .orderBy("title", "ASC") .getMany() .then((res) => { return res; @@ -29,6 +42,15 @@ export default abstract class InspectionPlanService { return await dataSource .getRepository(inspectionPlan) .createQueryBuilder("inspectionPlan") + .leftJoinAndMapOne( + "inspectionPlan.latestVersionedPlan", + "inspectionPlan.versionedPlans", + "latestVersionedPlan", + DB_TYPE == "postgres" + ? 'latestVersionedPlan.inspectionPlanId = inspectionPlan.id AND latestVersionedPlan.version = (SELECT MAX("ivp"."start") FROM "inspection_versioned_plan" "ivp" WHERE "ivp"."inspectionPlanId" = "inspectionPlan"."id")' + : "latestVersionedPlan.inspectionPlanId = inspectionPlan.id AND latestVersionedPlan.version = (SELECT MAX(ivp.start) FROM inspection_versioned_plan ivp WHERE ivp.inspectionPlanId = inspectionPlan.id)" + ) + .leftJoinAndSelect("latestVersionedPlan.inspectionPoints", "inspectionPoints") .where({ id }) .getOneOrFail() .then((res) => { diff --git a/src/service/unit/inspection/inspectionPointResultService.ts b/src/service/unit/inspection/inspectionPointResultService.ts index 4ac3450..d538a63 100644 --- a/src/service/unit/inspection/inspectionPointResultService.ts +++ b/src/service/unit/inspection/inspectionPointResultService.ts @@ -4,14 +4,15 @@ import DatabaseActionException from "../../../exceptions/databaseActionException export default abstract class InspectionPointResultService { /** - * @description get all inspectionPointResult types + * @description get all inspectionPointResults * @returns {Promise>} */ - static async getAll(): Promise> { + static async getAllForInspection(inspectionId: string): Promise> { return await dataSource .getRepository(inspectionPointResult) .createQueryBuilder("inspectionPointResult") - .orderBy("type", "ASC") + .leftJoinAndSelect("inspectionPointResult.inspectionPoint", "inspectionPoint") + .where({ inspectionId }) .getMany() .then((res) => { return res; @@ -29,6 +30,7 @@ export default abstract class InspectionPointResultService { return await dataSource .getRepository(inspectionPointResult) .createQueryBuilder("inspectionPointResult") + .leftJoinAndSelect("inspectionPointResult.inspectionPoint", "inspectionPoint") .where({ id }) .getOneOrFail() .then((res) => { diff --git a/src/service/unit/inspection/inspectionPointService.ts b/src/service/unit/inspection/inspectionPointService.ts index 4203550..0285c9f 100644 --- a/src/service/unit/inspection/inspectionPointService.ts +++ b/src/service/unit/inspection/inspectionPointService.ts @@ -4,14 +4,15 @@ import DatabaseActionException from "../../../exceptions/databaseActionException export default abstract class InspectionPointService { /** - * @description get all inspectionPoint types + * @description get all inspectionPoints * @returns {Promise>} */ - static async getAll(): Promise> { + static async getAllForVersionedPlan(versionedPlanId: string): Promise> { return await dataSource .getRepository(inspectionPoint) .createQueryBuilder("inspectionPoint") - .orderBy("type", "ASC") + .where({ versionedPlanId }) + .orderBy("sort", "ASC") .getMany() .then((res) => { return res; diff --git a/src/service/unit/inspection/inspectionService.ts b/src/service/unit/inspection/inspectionService.ts index cd8ba7d..8262dd9 100644 --- a/src/service/unit/inspection/inspectionService.ts +++ b/src/service/unit/inspection/inspectionService.ts @@ -4,14 +4,20 @@ import DatabaseActionException from "../../../exceptions/databaseActionException export default abstract class InspectionService { /** - * @description get all inspection types + * @description get all inspections for related * @returns {Promise>} */ - static async getAll(): Promise> { + static async getAllForRelated(where: { equipmentId: string } | { vehicleId: string }): Promise> { return await dataSource .getRepository(inspection) .createQueryBuilder("inspection") - .orderBy("type", "ASC") + .leftJoinAndSelect("inspection.inspectionPlan", "inspectionPlan") + .leftJoinAndSelect("inspection.inspectionVersionedPlan", "inspectionVersionedPlan") + .leftJoinAndSelect("inspectionVersionedPlan.inspectionPoints", "inspectionPoints") + .leftJoinAndSelect("inspection.pointResults", "pointResults") + .leftJoinAndSelect("pointResults.inspectionPoint", "inspectionPoint") + .where(where) + .orderBy("createdAt", "DESC") .getMany() .then((res) => { return res; @@ -29,6 +35,11 @@ export default abstract class InspectionService { return await dataSource .getRepository(inspection) .createQueryBuilder("inspection") + .leftJoinAndSelect("inspection.inspectionPlan", "inspectionPlan") + .leftJoinAndSelect("inspection.inspectionVersionedPlan", "inspectionVersionedPlan") + .leftJoinAndSelect("inspectionVersionedPlan.inspectionPoints", "inspectionPoints") + .leftJoinAndSelect("inspection.pointResults", "pointResults") + .leftJoinAndSelect("pointResults.inspectionPoint", "inspectionPoint") .where({ id }) .getOneOrFail() .then((res) => { diff --git a/src/service/unit/inspection/inspectionVersionedPlanService.ts b/src/service/unit/inspection/inspectionVersionedPlanService.ts index ebaa296..9313979 100644 --- a/src/service/unit/inspection/inspectionVersionedPlanService.ts +++ b/src/service/unit/inspection/inspectionVersionedPlanService.ts @@ -4,14 +4,16 @@ import DatabaseActionException from "../../../exceptions/databaseActionException export default abstract class InspectionVersionedPlanService { /** - * @description get all inspectionVersionedPlan types + * @description get all inspectionVersionedPlans * @returns {Promise>} */ - static async getAll(): Promise> { + static async getAllForInspectionPlan(inspectionPlanId: string): Promise> { return await dataSource .getRepository(inspectionVersionedPlan) .createQueryBuilder("inspectionVersionedPlan") - .orderBy("type", "ASC") + .leftJoinAndSelect("inspectionVersionedPlan.inspectionPoints", "inspectionPoints") + .where({ inspectionPlanId }) + .orderBy("version", "ASC") .getMany() .then((res) => { return res; @@ -29,6 +31,7 @@ export default abstract class InspectionVersionedPlanService { return await dataSource .getRepository(inspectionVersionedPlan) .createQueryBuilder("inspectionVersionedPlan") + .leftJoinAndSelect("inspectionVersionedPlan.inspectionPoints", "inspectionPoints") .where({ id }) .getOneOrFail() .then((res) => { diff --git a/src/service/unit/vehicle/vehicleService.ts b/src/service/unit/vehicle/vehicleService.ts index 898911f..39d7b06 100644 --- a/src/service/unit/vehicle/vehicleService.ts +++ b/src/service/unit/vehicle/vehicleService.ts @@ -4,14 +4,15 @@ import DatabaseActionException from "../../../exceptions/databaseActionException export default abstract class VehicleService { /** - * @description get all vehicle types + * @description get all vehicles * @returns {Promise>} */ static async getAll(): Promise> { return await dataSource .getRepository(vehicle) .createQueryBuilder("vehicle") - .orderBy("type", "ASC") + .leftJoinAndSelect("vehicle.vehicleType", "vehicletype") + .orderBy("name", "ASC") .getMany() .then((res) => { return res; @@ -29,6 +30,7 @@ export default abstract class VehicleService { return await dataSource .getRepository(vehicle) .createQueryBuilder("vehicle") + .leftJoinAndSelect("vehicle.vehicleType", "vehicletype") .where({ id }) .getOneOrFail() .then((res) => { diff --git a/src/service/unit/vehicle/vehicleTypeService.ts b/src/service/unit/vehicle/vehicleTypeService.ts index 2af3acc..8ba8104 100644 --- a/src/service/unit/vehicle/vehicleTypeService.ts +++ b/src/service/unit/vehicle/vehicleTypeService.ts @@ -4,7 +4,7 @@ import DatabaseActionException from "../../../exceptions/databaseActionException export default abstract class VehicleTypeService { /** - * @description get all vehicleType types + * @description get all vehicleTypes * @returns {Promise>} */ static async getAll(): Promise> { diff --git a/src/service/unit/wearable/wearableService.ts b/src/service/unit/wearable/wearableService.ts index 77c120a..9fc7325 100644 --- a/src/service/unit/wearable/wearableService.ts +++ b/src/service/unit/wearable/wearableService.ts @@ -4,14 +4,15 @@ import DatabaseActionException from "../../../exceptions/databaseActionException export default abstract class WearableService { /** - * @description get all wearable types + * @description get all wearables * @returns {Promise>} */ static async getAll(): Promise> { return await dataSource .getRepository(wearable) .createQueryBuilder("wearable") - .orderBy("type", "ASC") + .leftJoinAndSelect("wearable.wearableType", "wearabletype") + .orderBy("name", "ASC") .getMany() .then((res) => { return res; @@ -29,6 +30,7 @@ export default abstract class WearableService { return await dataSource .getRepository(wearable) .createQueryBuilder("wearable") + .leftJoinAndSelect("wearable.wearableType", "wearabletype") .where({ id }) .getOneOrFail() .then((res) => { diff --git a/src/service/unit/wearable/wearableTypeService.ts b/src/service/unit/wearable/wearableTypeService.ts index 77f7a90..63a696b 100644 --- a/src/service/unit/wearable/wearableTypeService.ts +++ b/src/service/unit/wearable/wearableTypeService.ts @@ -4,7 +4,7 @@ import DatabaseActionException from "../../../exceptions/databaseActionException export default abstract class WearableTypeService { /** - * @description get all wearableType types + * @description get all wearableTypes * @returns {Promise>} */ static async getAll(): Promise> {