enhance: provide count of used instances
This commit is contained in:
parent
2d978b960b
commit
a26bbe6e45
12 changed files with 30 additions and 12 deletions
|
@ -19,5 +19,6 @@ export class equipmentType {
|
||||||
@OneToMany(() => inspectionPlan, (ip) => ip.equipmentType, { cascade: ["insert"] })
|
@OneToMany(() => inspectionPlan, (ip) => ip.equipmentType, { cascade: ["insert"] })
|
||||||
inspectionPlans: inspectionPlan[];
|
inspectionPlans: inspectionPlan[];
|
||||||
|
|
||||||
equipmentCount: number;
|
equipmentCount?: number;
|
||||||
|
equipmentCountUsed?: number;
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,5 +19,6 @@ export class vehicleType {
|
||||||
@OneToMany(() => inspectionPlan, (ip) => ip.vehicleType, { cascade: ["insert"] })
|
@OneToMany(() => inspectionPlan, (ip) => ip.vehicleType, { cascade: ["insert"] })
|
||||||
inspectionPlans: inspectionPlan[];
|
inspectionPlans: inspectionPlan[];
|
||||||
|
|
||||||
vehicleCount: number;
|
vehicleCount?: number;
|
||||||
|
vehicleCountUsed?: number;
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,5 +19,6 @@ export class wearableType {
|
||||||
@OneToMany(() => inspectionPlan, (ip) => ip.wearableType, { cascade: ["insert"] })
|
@OneToMany(() => inspectionPlan, (ip) => ip.wearableType, { cascade: ["insert"] })
|
||||||
inspectionPlans: inspectionPlan[];
|
inspectionPlans: inspectionPlan[];
|
||||||
|
|
||||||
wearableCount: number;
|
wearableCount?: number;
|
||||||
|
wearableCountUsed?: number;
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@ export default abstract class EquipmentTypeFactory {
|
||||||
type: record.type,
|
type: record.type,
|
||||||
description: record.description,
|
description: record.description,
|
||||||
equipmentCount: record.equipmentCount,
|
equipmentCount: record.equipmentCount,
|
||||||
|
equipmentCountUsed: record.equipmentCountUsed,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@ export default abstract class VehicleTypeFactory {
|
||||||
type: record.type,
|
type: record.type,
|
||||||
description: record.description,
|
description: record.description,
|
||||||
vehicleCount: record.vehicleCount,
|
vehicleCount: record.vehicleCount,
|
||||||
|
vehicleCountUsed: record.vehicleCountUsed,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@ export default abstract class WearableTypeFactory {
|
||||||
type: record.type,
|
type: record.type,
|
||||||
description: record.description,
|
description: record.description,
|
||||||
wearableCount: record.wearableCount,
|
wearableCount: record.wearableCount,
|
||||||
|
wearableCountUsed: record.wearableCountUsed,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { Like, In } from "typeorm";
|
import { Like, IsNull } from "typeorm";
|
||||||
import { dataSource } from "../../../data-source";
|
import { dataSource } from "../../../data-source";
|
||||||
import { equipmentType } from "../../../entity/unit/equipment/equipmentType";
|
import { equipmentType } from "../../../entity/unit/equipment/equipmentType";
|
||||||
import DatabaseActionException from "../../../exceptions/databaseActionException";
|
import DatabaseActionException from "../../../exceptions/databaseActionException";
|
||||||
|
@ -22,7 +22,10 @@ export default abstract class EquipmentTypeService {
|
||||||
let query = dataSource
|
let query = dataSource
|
||||||
.getRepository(equipmentType)
|
.getRepository(equipmentType)
|
||||||
.createQueryBuilder("equipmentType")
|
.createQueryBuilder("equipmentType")
|
||||||
.loadRelationCountAndMap("equipmentType.equipmentCount", "equipmentType.equipment");
|
.loadRelationCountAndMap("equipmentType.equipmentCount", "equipmentType.equipment", "count")
|
||||||
|
.loadRelationCountAndMap("equipmentType.equipmentCountUsed", "equipmentType.equipment", "countUsed", (qb) =>
|
||||||
|
qb.where({ decommissioned: IsNull() })
|
||||||
|
);
|
||||||
|
|
||||||
if (search != "") {
|
if (search != "") {
|
||||||
query = query.where({
|
query = query.where({
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { Like, In } from "typeorm";
|
import { Like, In, IsNull } from "typeorm";
|
||||||
import { dataSource } from "../../../data-source";
|
import { dataSource } from "../../../data-source";
|
||||||
import { vehicleType } from "../../../entity/unit/vehicle/vehicleType";
|
import { vehicleType } from "../../../entity/unit/vehicle/vehicleType";
|
||||||
import DatabaseActionException from "../../../exceptions/databaseActionException";
|
import DatabaseActionException from "../../../exceptions/databaseActionException";
|
||||||
|
@ -22,7 +22,10 @@ export default abstract class VehicleTypeService {
|
||||||
let query = dataSource
|
let query = dataSource
|
||||||
.getRepository(vehicleType)
|
.getRepository(vehicleType)
|
||||||
.createQueryBuilder("vehicleType")
|
.createQueryBuilder("vehicleType")
|
||||||
.loadRelationCountAndMap("vehicleType.vehicleCount", "vehicleType.vehicle");
|
.loadRelationCountAndMap("vehicleType.vehicleCount", "vehicleType.vehicle", "count")
|
||||||
|
.loadRelationCountAndMap("vehicleType.vehicleCountUsed", "vehicleType.vehicle", "countUsed", (qb) =>
|
||||||
|
qb.where({ decommissioned: IsNull() })
|
||||||
|
);
|
||||||
|
|
||||||
if (search != "") {
|
if (search != "") {
|
||||||
query = query.where({
|
query = query.where({
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { In, Like } from "typeorm";
|
import { In, IsNull, Like } from "typeorm";
|
||||||
import { dataSource } from "../../../data-source";
|
import { dataSource } from "../../../data-source";
|
||||||
import { wearableType } from "../../../entity/unit/wearable/wearableType";
|
import { wearableType } from "../../../entity/unit/wearable/wearableType";
|
||||||
import DatabaseActionException from "../../../exceptions/databaseActionException";
|
import DatabaseActionException from "../../../exceptions/databaseActionException";
|
||||||
|
@ -22,7 +22,10 @@ export default abstract class WearableTypeService {
|
||||||
let query = dataSource
|
let query = dataSource
|
||||||
.getRepository(wearableType)
|
.getRepository(wearableType)
|
||||||
.createQueryBuilder("wearableType")
|
.createQueryBuilder("wearableType")
|
||||||
.loadRelationCountAndMap("wearableType.wearableCount", "wearableType.wearable");
|
.loadRelationCountAndMap("wearableType.wearableCount", "wearableType.wearable", "count")
|
||||||
|
.loadRelationCountAndMap("wearableType.wearableCountUsed", "wearableType.wearable", "countUsed", (qb) =>
|
||||||
|
qb.where({ decommissioned: IsNull() })
|
||||||
|
);
|
||||||
|
|
||||||
if (search != "") {
|
if (search != "") {
|
||||||
query = query.where({
|
query = query.where({
|
||||||
|
|
|
@ -2,5 +2,6 @@ export interface EquipmentTypeViewModel {
|
||||||
id: string;
|
id: string;
|
||||||
type: string;
|
type: string;
|
||||||
description: string;
|
description: string;
|
||||||
equipmentCount: number;
|
equipmentCount?: number;
|
||||||
|
equipmentCountUsed?: number;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,5 +2,6 @@ export interface VehicleTypeViewModel {
|
||||||
id: string;
|
id: string;
|
||||||
type: string;
|
type: string;
|
||||||
description: string;
|
description: string;
|
||||||
vehicleCount: number;
|
vehicleCount?: number;
|
||||||
|
vehicleCountUsed?: number;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,5 +2,6 @@ export interface WearableTypeViewModel {
|
||||||
id: string;
|
id: string;
|
||||||
type: string;
|
type: string;
|
||||||
description: string;
|
description: string;
|
||||||
wearableCount: number;
|
wearableCount?: number;
|
||||||
|
wearableCountUsed?: number;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue