migrate view
This commit is contained in:
parent
7a54ad98ec
commit
d0732a87e3
3 changed files with 597 additions and 0 deletions
197
src/entities/view/viewRegistryOfficer.ts
Normal file
197
src/entities/view/viewRegistryOfficer.ts
Normal file
|
|
@ -0,0 +1,197 @@
|
|||
import { ViewColumn, ViewEntity } from "typeorm";
|
||||
|
||||
@ViewEntity({
|
||||
expression: `
|
||||
WITH Position AS (
|
||||
SELECT
|
||||
posExecutive.posExecutiveName,
|
||||
pn.posMasterId,
|
||||
ROW_NUMBER() OVER (PARTITION BY pn.posMasterId) AS pn_number
|
||||
FROM position pn
|
||||
LEFT JOIN posExecutive ON pn.posExecutiveId = posExecutive.id
|
||||
WHERE pn.positionIsSelected IS TRUE
|
||||
),
|
||||
PosMaster AS (
|
||||
SELECT
|
||||
pm.current_holderId,
|
||||
pm.posMasterNo,
|
||||
pm.orgRootId,
|
||||
pm.orgChild1Id,
|
||||
pm.orgChild2Id,
|
||||
pm.orgChild3Id,
|
||||
pm.orgChild4Id,
|
||||
orgRoot.orgRootName,
|
||||
orgChild1.orgChild1Name,
|
||||
orgChild2.orgChild2Name,
|
||||
orgChild3.orgChild3Name,
|
||||
orgChild4.orgChild4Name,
|
||||
pn.posExecutiveName,
|
||||
CASE
|
||||
WHEN pm.orgChild1Id IS NULL THEN CONCAT(orgRoot.orgRootShortName, pm.posMasterNo)
|
||||
WHEN pm.orgChild2Id IS NULL THEN CONCAT(orgChild1.orgChild1ShortName, pm.posMasterNo)
|
||||
WHEN pm.orgChild3Id IS NULL THEN CONCAT(orgChild2.orgChild2ShortName, pm.posMasterNo)
|
||||
WHEN pm.orgChild4Id IS NULL THEN CONCAT(orgChild3.orgChild3ShortName, pm.posMasterNo)
|
||||
ELSE CONCAT(orgChild4.orgChild4ShortName, pm.posMasterNo)
|
||||
END AS searchShortName,
|
||||
ROW_NUMBER() OVER (PARTITION BY pm.current_holderId ORDER BY pm.posMasterNo DESC) AS pm_number
|
||||
FROM posMaster pm
|
||||
LEFT JOIN orgRevision ON orgRevision.id = pm.orgRevisionId
|
||||
LEFT JOIN orgRoot ON orgRoot.id = pm.orgRootId
|
||||
LEFT JOIN orgChild1 ON orgChild1.id = pm.orgChild1Id
|
||||
LEFT JOIN orgChild2 ON orgChild2.id = pm.orgChild2Id
|
||||
LEFT JOIN orgChild3 ON orgChild3.id = pm.orgChild3Id
|
||||
LEFT JOIN orgChild4 ON orgChild4.id = pm.orgChild4Id
|
||||
LEFT JOIN Position pn ON pm.id = pn.posMasterId AND pn.pn_number = 1
|
||||
WHERE
|
||||
orgRevision.orgRevisionIsCurrent IS TRUE
|
||||
AND orgRevision.orgRevisionIsDraft IS FALSE
|
||||
),
|
||||
Education AS (
|
||||
SELECT
|
||||
ed.degree,
|
||||
ed.profileId,
|
||||
ed.level,
|
||||
ROW_NUMBER() OVER (PARTITION BY ed.profileId ORDER BY ed.level DESC) AS ed_number
|
||||
FROM profileEducation ed
|
||||
WHERE ed.isUse IS TRUE
|
||||
ORDER BY ed.level ASC
|
||||
)
|
||||
SELECT
|
||||
p.citizenId,
|
||||
p.prefix,
|
||||
p.firstName,
|
||||
p.lastName,
|
||||
p.isProbation,
|
||||
p.isLeave,
|
||||
p.isRetirement,
|
||||
p.leaveType,
|
||||
pm.posMasterNo,
|
||||
pm.orgRootId,
|
||||
pm.orgChild1Id,
|
||||
pm.orgChild2Id,
|
||||
pm.orgChild3Id,
|
||||
pm.orgChild4Id,
|
||||
pm.orgRootName,
|
||||
pm.orgChild1Name,
|
||||
pm.orgChild2Name,
|
||||
pm.orgChild3Name,
|
||||
pm.orgChild4Name,
|
||||
CASE
|
||||
WHEN pm.orgChild1Id IS NULL THEN pm.orgRootName
|
||||
WHEN pm.orgChild2Id IS NULL THEN CONCAT(pm.orgChild1Name, " ", pm.orgRootName)
|
||||
WHEN pm.orgChild3Id IS NULL THEN CONCAT(pm.orgChild2Name, " ", pm.orgChild1Name, " ", pm.orgRootName)
|
||||
WHEN pm.orgChild4Id IS NULL THEN CONCAT(pm.orgChild3Name, " ", pm.orgChild2Name, " ", pm.orgChild1Name, " ", pm.orgRootName)
|
||||
ELSE CONCAT(pm.orgChild4Name, " ", pm.orgChild3Name, " ", pm.orgChild2Name, " ", pm.orgChild1Name, " ", pm.orgRootName)
|
||||
END AS org,
|
||||
pm.searchShortName,
|
||||
pm.posExecutiveName,
|
||||
p.position,
|
||||
posType.posTypeName,
|
||||
posLevel.posLevelName,
|
||||
p.gender,
|
||||
p.relationship,
|
||||
p.dateAppoint,
|
||||
p.birthdate,
|
||||
ed.degree,
|
||||
TIMESTAMPDIFF(YEAR, p.birthdate, CURDATE()) AS age
|
||||
FROM profile p
|
||||
LEFT JOIN posLevel ON p.posLevelId = posLevel.id
|
||||
LEFT JOIN posType ON p.posTypeId = posType.id
|
||||
LEFT JOIN PosMaster pm ON p.id = pm.current_holderId AND pm.pm_number = 1
|
||||
LEFT JOIN Education ed ON p.id = ed.profileId AND ed.ed_number = 1
|
||||
`,
|
||||
})
|
||||
export class viewRegistryOfficer {
|
||||
@ViewColumn()
|
||||
id: string;
|
||||
|
||||
@ViewColumn()
|
||||
prefix: string;
|
||||
|
||||
@ViewColumn()
|
||||
firstName: string;
|
||||
|
||||
@ViewColumn()
|
||||
lastName: string;
|
||||
|
||||
@ViewColumn()
|
||||
isProbation: boolean;
|
||||
|
||||
@ViewColumn()
|
||||
isLeave: boolean;
|
||||
|
||||
@ViewColumn()
|
||||
isRetirement: boolean;
|
||||
|
||||
@ViewColumn()
|
||||
leaveType: string;
|
||||
|
||||
@ViewColumn()
|
||||
posMasterNo: string;
|
||||
|
||||
@ViewColumn()
|
||||
orgRootId: string;
|
||||
|
||||
@ViewColumn()
|
||||
orgChild1Id: string;
|
||||
|
||||
@ViewColumn()
|
||||
orgChild2Id: string;
|
||||
|
||||
@ViewColumn()
|
||||
orgChild3Id: string;
|
||||
|
||||
@ViewColumn()
|
||||
orgChild4Id: string;
|
||||
|
||||
@ViewColumn()
|
||||
orgRootName: string;
|
||||
|
||||
@ViewColumn()
|
||||
orgChild1Name: string;
|
||||
|
||||
@ViewColumn()
|
||||
orgChild2Name: string;
|
||||
|
||||
@ViewColumn()
|
||||
orgChild3Name: string;
|
||||
|
||||
@ViewColumn()
|
||||
orgChild4Name: string;
|
||||
|
||||
@ViewColumn()
|
||||
org: string;
|
||||
|
||||
@ViewColumn()
|
||||
searchShortName: string;
|
||||
|
||||
@ViewColumn()
|
||||
posExecutiveName: string;
|
||||
|
||||
@ViewColumn()
|
||||
position: string;
|
||||
|
||||
@ViewColumn()
|
||||
posTypeName: string;
|
||||
|
||||
@ViewColumn()
|
||||
posLevelName: string;
|
||||
|
||||
@ViewColumn()
|
||||
gender: string;
|
||||
|
||||
@ViewColumn()
|
||||
relationship: string;
|
||||
|
||||
@ViewColumn()
|
||||
dateAppoint: Date;
|
||||
|
||||
@ViewColumn()
|
||||
birthdate: Date;
|
||||
|
||||
@ViewColumn()
|
||||
degree: string;
|
||||
|
||||
@ViewColumn()
|
||||
age: number;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue