230 lines
6 KiB
TypeScript
230 lines
6 KiB
TypeScript
import { ViewColumn, ViewEntity } from "typeorm";
|
|
|
|
@ViewEntity({
|
|
expression: `SELECT
|
|
employeePosMaster.id,
|
|
employeePosMaster.posMasterNoPrefix,
|
|
employeePosMaster.posMasterNo,
|
|
employeePosMaster.posMasterNoSuffix,
|
|
employeePosMaster.orgRevisionId,
|
|
employeePosMaster.orgRootId,
|
|
employeePosMaster.orgChild1Id,
|
|
employeePosMaster.orgChild2Id,
|
|
employeePosMaster.orgChild3Id,
|
|
employeePosMaster.orgChild4Id,
|
|
employeePosMaster.current_holderId,
|
|
profileEmployee.id as profileId,
|
|
profileEmployee.prefix,
|
|
profileEmployee.firstName,
|
|
profileEmployee.lastName,
|
|
profileEmployee.citizenId,
|
|
profileEmployee.position,
|
|
profileEmployee.amount,
|
|
profileEmployee.dateRetire,
|
|
profileEmployee.birthDate,
|
|
profileEmployee.salaryLevel,
|
|
profileEmployee.group,
|
|
orgRoot.id as rootId,
|
|
orgRoot.orgRootShortName,
|
|
orgRoot.orgRootOrder,
|
|
orgRoot.orgRootName,
|
|
orgChild1.id as child1Id,
|
|
orgChild1.orgChild1ShortName,
|
|
orgChild1.orgChild1Order,
|
|
orgChild1.orgChild1Name,
|
|
orgChild2.id as child2Id,
|
|
orgChild2.orgChild2ShortName,
|
|
orgChild2.orgChild2Order,
|
|
orgChild2.orgChild2Name,
|
|
orgChild3.id as child3Id,
|
|
orgChild3.orgChild3ShortName,
|
|
orgChild3.orgChild3Order,
|
|
orgChild3.orgChild3Name,
|
|
orgChild4.id as child4Id,
|
|
orgChild4.orgChild4ShortName,
|
|
orgChild4.orgChild4Order,
|
|
orgChild4.orgChild4Name,
|
|
position.id as positionId,
|
|
position.positionIsSelected,
|
|
position.posExecutiveId as positionPosExecutiveId,
|
|
position.isSpecial,
|
|
posExecutive.id as posExecutiveId,
|
|
posExecutive.posExecutiveName,
|
|
profileDiscipline.id as profileDisciplineId,
|
|
profileDiscipline.date as disCriplineDate,
|
|
profileLeave.id as profileLeaveId,
|
|
profileAssessment.id as profileAssessmentId,
|
|
profileAssessment.pointSum,
|
|
employeePosLevel.id as posLevelId,
|
|
employeePosLevel.posLevelName,
|
|
employeePosType.id as posTypeId,
|
|
employeePosType.posTypeName,
|
|
employeePosType.posTypeShortName
|
|
FROM
|
|
employeePosMaster
|
|
LEFT JOIN
|
|
profileEmployee ON employeePosMaster.current_holderId = profileEmployee.id
|
|
LEFT JOIN
|
|
orgRoot ON employeePosMaster.orgRootId = orgRoot.id
|
|
LEFT JOIN
|
|
orgChild1 ON employeePosMaster.orgChild1Id = orgChild1.id
|
|
LEFT JOIN
|
|
orgChild2 ON employeePosMaster.orgChild2Id = orgChild2.id
|
|
LEFT JOIN
|
|
orgChild3 ON employeePosMaster.orgChild3Id = orgChild3.id
|
|
LEFT JOIN
|
|
orgChild4 ON employeePosMaster.orgChild4Id = orgChild4.id
|
|
LEFT JOIN
|
|
position ON employeePosMaster.id = position.posMasterId
|
|
LEFT JOIN
|
|
posExecutive ON position.posExecutiveId = posExecutive.id
|
|
LEFT JOIN (
|
|
SELECT *
|
|
FROM profileDisciplineEmployee pd1
|
|
WHERE pd1.date = (
|
|
SELECT MAX(pd2.date)
|
|
FROM profileDisciplineEmployee pd2
|
|
WHERE pd2.profileId = pd1.profileId
|
|
)
|
|
) AS profileDiscipline ON profileDiscipline.profileId = profileEmployee.id
|
|
LEFT JOIN (
|
|
SELECT pl1.*
|
|
FROM profileLeave pl1
|
|
INNER JOIN (
|
|
SELECT profileId, MAX(createdAt) AS maxDate
|
|
FROM profileLeave
|
|
GROUP BY profileId
|
|
) pl2 ON pl1.profileId = pl2.profileId
|
|
AND pl1.createdAt = pl2.maxDate
|
|
) AS profileLeave ON profileLeave.profileId = employeePosMaster.current_holderId
|
|
LEFT JOIN
|
|
profileAssessment ON profileAssessment.profileId = profileEmployee.id
|
|
LEFT JOIN
|
|
employeePosLevel ON profileEmployee.posLevelId = employeePosLevel.id
|
|
LEFT JOIN
|
|
employeePosType ON profileEmployee.posTypeId = employeePosType.id
|
|
WHERE
|
|
employeePosMaster.current_holderId IS NOT NULL
|
|
ORDER BY
|
|
profileEmployee.citizenId ASC
|
|
`,
|
|
})
|
|
|
|
export class viewEmployeePosMaster {
|
|
@ViewColumn()
|
|
id: string;
|
|
@ViewColumn()
|
|
posMasterNoPrefix: string;
|
|
@ViewColumn()
|
|
posMasterNo: number;
|
|
@ViewColumn()
|
|
posMasterNoSuffix: string;
|
|
@ViewColumn()
|
|
orgRevisionId: string;
|
|
@ViewColumn()
|
|
orgRootId: string;
|
|
@ViewColumn()
|
|
orgChild1Id: string;
|
|
@ViewColumn()
|
|
orgChild2Id: string;
|
|
@ViewColumn()
|
|
orgChild3Id: string;
|
|
@ViewColumn()
|
|
orgChild4Id: string;
|
|
@ViewColumn()
|
|
current_holderId: string;
|
|
@ViewColumn()
|
|
profileId: string;
|
|
@ViewColumn()
|
|
prefix: string;
|
|
@ViewColumn()
|
|
firstName: string;
|
|
@ViewColumn()
|
|
lastName: string;
|
|
@ViewColumn()
|
|
citizenId: number;
|
|
@ViewColumn()
|
|
position: string;
|
|
@ViewColumn()
|
|
amount: number;
|
|
@ViewColumn()
|
|
dateRetire: Date;
|
|
@ViewColumn()
|
|
birthDate: Date;
|
|
@ViewColumn()
|
|
rootId: string;
|
|
@ViewColumn()
|
|
orgRootShortName: string;
|
|
@ViewColumn()
|
|
orgRootOrder: string;
|
|
@ViewColumn()
|
|
orgRootName: string;
|
|
@ViewColumn()
|
|
child1Id: string;
|
|
@ViewColumn()
|
|
orgChild1ShortName: string;
|
|
@ViewColumn()
|
|
orgChild1Order: string;
|
|
@ViewColumn()
|
|
orgChild1Name: string;
|
|
@ViewColumn()
|
|
child2Id: string;
|
|
@ViewColumn()
|
|
orgChild2ShortName: string;
|
|
@ViewColumn()
|
|
orgChild2Order: string;
|
|
@ViewColumn()
|
|
orgChild2Name: string;
|
|
@ViewColumn()
|
|
child3Id: string;
|
|
@ViewColumn()
|
|
orgChild3ShortName: string;
|
|
@ViewColumn()
|
|
orgChild3Order: string;
|
|
@ViewColumn()
|
|
orgChild3Name: string;
|
|
@ViewColumn()
|
|
child4Id: string;
|
|
@ViewColumn()
|
|
orgChild4ShortName: string;
|
|
@ViewColumn()
|
|
orgChild4Order: string;
|
|
@ViewColumn()
|
|
orgChild4Name: string;
|
|
@ViewColumn()
|
|
positionId: string;
|
|
@ViewColumn()
|
|
positionIsSelected: boolean;
|
|
@ViewColumn()
|
|
positionPosExecutiveId: string;
|
|
@ViewColumn()
|
|
isSpecial: boolean;
|
|
@ViewColumn()
|
|
posExecutiveId: string;
|
|
@ViewColumn()
|
|
posExecutiveName: string;
|
|
@ViewColumn()
|
|
profileDisciplineId: string;
|
|
@ViewColumn()
|
|
disCriplineDate: Date;
|
|
@ViewColumn()
|
|
profileLeaveId: string;
|
|
@ViewColumn()
|
|
profileAssessmentId: string;
|
|
@ViewColumn()
|
|
pointSum: number;
|
|
@ViewColumn()
|
|
posLevelId: string;
|
|
@ViewColumn()
|
|
posLevelName: string;
|
|
@ViewColumn()
|
|
posTypeId: string;
|
|
@ViewColumn()
|
|
posTypeName: string;
|
|
@ViewColumn()
|
|
salaryLevel: number;
|
|
@ViewColumn()
|
|
group: number;
|
|
@ViewColumn()
|
|
posTypeShortName: string;
|
|
}
|