Merge branch 'develop' of github.com:Frappet/hrms-api-org into develop
This commit is contained in:
commit
918f182a45
13 changed files with 1004 additions and 285 deletions
|
|
@ -47,7 +47,7 @@ import { OFFICER } from "../entities/OFFICER";
|
|||
import { Position } from "../entities/Position";
|
||||
import { PosMaster } from "../entities/PosMaster";
|
||||
import { positionOfficer } from "../entities/positionOfficer";
|
||||
import { uuidv7 } from "uuidv7";
|
||||
// import { uuidv7 } from "uuidv7";
|
||||
@Route("api/v1/org/upload")
|
||||
@Tags("UPLOAD")
|
||||
@Security("bearerAuth")
|
||||
|
|
@ -578,8 +578,8 @@ export class ImportDataController extends Controller {
|
|||
profileSalary.lastUpdateFullName = request.user.name;
|
||||
profileSalary.createdAt = new Date();
|
||||
profileSalary.lastUpdatedAt = new Date();
|
||||
const result = uuidv7();
|
||||
profileSalary.id = result;
|
||||
// const result = uuidv7();
|
||||
// profileSalary.id = result;
|
||||
// console.log(">>>>>>>>>>>>>>>>>>>" + rowCount);
|
||||
|
||||
// // Generate SQL INSERT Statement using TypeORM QueryBuilder but don't execute it
|
||||
|
|
|
|||
|
|
@ -43,6 +43,19 @@ export class ProfileSalaryController extends Controller {
|
|||
return new HttpSuccess(record);
|
||||
}
|
||||
|
||||
@Get("position/user")
|
||||
public async getSalaryPositionUser(@Request() request: { user: Record<string, any> }) {
|
||||
const profile = await this.profileRepo.findOneBy({ keycloak: request.user.sub });
|
||||
if (!profile) {
|
||||
throw new HttpError(HttpStatus.BAD_REQUEST, "ไม่พบ profile ดังกล่าว");
|
||||
}
|
||||
const record = await this.salaryRepo.find({
|
||||
where: { profileId: profile.id },
|
||||
order: { order: "ASC" },
|
||||
});
|
||||
return new HttpSuccess(record);
|
||||
}
|
||||
|
||||
@Get("{profileId}")
|
||||
public async getSalary(@Path() profileId: string, @Request() req: RequestWithUser) {
|
||||
let _workflow = await new permission().Workflow(req, profileId, "SYS_REGISTRY_OFFICER");
|
||||
|
|
|
|||
|
|
@ -47,6 +47,19 @@ export class ProfileSalaryEmployeeController extends Controller {
|
|||
return new HttpSuccess(record);
|
||||
}
|
||||
|
||||
@Get("position/user")
|
||||
public async getSalaryPositionUser(@Request() request: { user: Record<string, any> }) {
|
||||
const profile = await this.profileRepo.findOneBy({ keycloak: request.user.sub });
|
||||
if (!profile) {
|
||||
throw new HttpError(HttpStatus.BAD_REQUEST, "ไม่พบ profile ดังกล่าว");
|
||||
}
|
||||
const record = await this.salaryRepo.find({
|
||||
where: { profileEmployeeId: profile.id },
|
||||
order: { order: "ASC" },
|
||||
});
|
||||
return new HttpSuccess(record);
|
||||
}
|
||||
|
||||
@Get("{profileId}")
|
||||
public async getSalaryEmployee(@Path() profileId: string, @Request() req: RequestWithUser) {
|
||||
let _workflow = await new permission().Workflow(req, profileId, "SYS_REGISTRY_EMP");
|
||||
|
|
@ -59,6 +72,21 @@ export class ProfileSalaryEmployeeController extends Controller {
|
|||
return new HttpSuccess(record);
|
||||
}
|
||||
|
||||
@Get("position/{profileId}")
|
||||
public async getPositionSalaryEmployee(
|
||||
@Path() profileId: string,
|
||||
@Request() req: RequestWithUser,
|
||||
) {
|
||||
let _workflow = await new permission().Workflow(req, profileId, "SYS_REGISTRY_EMP");
|
||||
if (_workflow == false)
|
||||
await new permission().PermissionOrgUserGet(req, "SYS_REGISTRY_EMP", profileId);
|
||||
const record = await this.salaryRepo.find({
|
||||
where: { profileEmployeeId: profileId },
|
||||
order: { order: "ASC" },
|
||||
});
|
||||
return new HttpSuccess(record);
|
||||
}
|
||||
|
||||
@Get("admin/{profileId}")
|
||||
public async getSalaryEmployeeAdmin(@Path() profileId: string, @Request() req: RequestWithUser) {
|
||||
let _workflow = await new permission().Workflow(req, profileId, "SYS_WAGE");
|
||||
|
|
|
|||
|
|
@ -177,20 +177,28 @@ export class ReportController extends Controller {
|
|||
@Query() posType?: string,
|
||||
@Query() posLevel?: string,
|
||||
@Query() position?: string,
|
||||
@Query() posExecutiveName?: string,
|
||||
@Query() positionExecutive?: string,
|
||||
@Query() gender?: string,
|
||||
@Query() status?: string,
|
||||
@Query() education?: string,
|
||||
@Query() startDateAppoint?: Date,
|
||||
@Query() endDateAppoint?: Date,
|
||||
@Query() dateStart?: Date,
|
||||
@Query() dateEnd?: Date,
|
||||
@Query() ageMin?: number,
|
||||
@Query() ageMax?: number,
|
||||
@Query() isProbation?: boolean,
|
||||
@Query() isRetire?: boolean,
|
||||
@Query() isRetireLaw?: boolean,
|
||||
@Query() retireType?: string,
|
||||
@Query() sortBy: string = "posMasterNo",
|
||||
@Query() sort: "ASC" | "DESC" = "ASC",
|
||||
) {
|
||||
const _null: any = null;
|
||||
if(!dateStart) {
|
||||
dateStart = _null
|
||||
}
|
||||
if(!dateEnd) {
|
||||
dateEnd = _null
|
||||
}
|
||||
if (ageMin && (ageMin < 18 || ageMin > 60)) {
|
||||
throw new HttpError(HttpStatus.NOT_FOUND, "ageMin must be between 18 and 60");
|
||||
}
|
||||
|
|
@ -216,23 +224,28 @@ export class ReportController extends Controller {
|
|||
nodeCondition = "registryOfficer.orgChild4Id = :nodeId";
|
||||
}
|
||||
let dateAppointCondition = "1=1";
|
||||
if (startDateAppoint && endDateAppoint) {
|
||||
if (dateStart && dateEnd) {
|
||||
dateAppointCondition =
|
||||
"DATE(registryOfficer.dateAppoint) >= :startDateAppoint AND DATE(registryOfficer.dateAppoint) <= :endDateAppoint";
|
||||
} else if (startDateAppoint) {
|
||||
} else if (dateStart) {
|
||||
dateAppointCondition = "DATE(registryOfficer.dateAppoint) >= :startDateAppoint";
|
||||
} else if (endDateAppoint) {
|
||||
} else if (dateEnd) {
|
||||
dateAppointCondition = "DATE(registryOfficer.dateAppoint) <= :endDateAppoint";
|
||||
}
|
||||
|
||||
const IsLeavecondition = ["registryOfficer.isLeave = :isLeave"];
|
||||
const parameters: any = { isLeave: isRetire };
|
||||
|
||||
if (retireType && retireType.trim() !== "") {
|
||||
IsLeavecondition.push("registryOfficer.leaveType = :retireType");
|
||||
parameters.retireType = retireType;
|
||||
}
|
||||
|
||||
let retireLawCondition = "1=1";
|
||||
if(isRetireLaw) {
|
||||
retireLawCondition =
|
||||
"DATE(registryOfficer.dateRetireLaw) >= :startDateRetireLaw AND DATE(registryOfficer.dateRetireLaw) <= :endDateRetireLaw";
|
||||
}
|
||||
|
||||
const [lists, total] = await AppDataSource.getRepository(viewRegistryOfficer)
|
||||
.createQueryBuilder("registryOfficer")
|
||||
.where(nodeCondition, {
|
||||
|
|
@ -243,8 +256,12 @@ export class ReportController extends Controller {
|
|||
ageMax,
|
||||
})
|
||||
.andWhere(dateAppointCondition, {
|
||||
startDateAppoint: startDateAppoint?.toISOString().split("T")[0],
|
||||
endDateAppoint: endDateAppoint?.toISOString().split("T")[0],
|
||||
startDateAppoint: dateStart?.toISOString().split("T")[0],
|
||||
endDateAppoint: dateEnd?.toISOString().split("T")[0],
|
||||
})
|
||||
.andWhere(retireLawCondition, {
|
||||
startDateRetireLaw: new Date(new Date().getFullYear() - 1, 9, 1, 0, 0, 0, 0)?.toISOString().split("T")[0],
|
||||
endDateRetireLaw: new Date(new Date().getFullYear(), 8, 30, 23, 59, 59, 999).toISOString().split("T")[0],
|
||||
})
|
||||
.andWhere("registryOfficer.isProbation = :isProbation", {
|
||||
isProbation: isProbation,
|
||||
|
|
@ -275,11 +292,11 @@ export class ReportController extends Controller {
|
|||
}
|
||||
)
|
||||
.andWhere(
|
||||
posExecutiveName != null && posExecutiveName != ""
|
||||
positionExecutive != null && positionExecutive != ""
|
||||
? "registryOfficer.posExecutiveName LIKE :posExecutiveName"
|
||||
: "1=1",
|
||||
{
|
||||
posExecutiveName: `%${posExecutiveName}%`,
|
||||
posExecutiveName: `%${positionExecutive}%`,
|
||||
}
|
||||
)
|
||||
.andWhere(
|
||||
|
|
@ -338,6 +355,8 @@ export class ReportController extends Controller {
|
|||
gender: x.gender,
|
||||
relationship: x.relationship,
|
||||
dateAppoint: x.dateAppoint,
|
||||
dateRetire: x.dateRetire,
|
||||
dateRetireLaw: x.dateRetireLaw,
|
||||
birthdate: x.birthdate,
|
||||
degree: x.degree,
|
||||
age: x.age,
|
||||
|
|
@ -477,16 +496,24 @@ export class ReportController extends Controller {
|
|||
@Query() gender?: string,
|
||||
@Query() status?: string,
|
||||
@Query() education?: string,
|
||||
@Query() startDateAppoint?: Date,
|
||||
@Query() endDateAppoint?: Date,
|
||||
@Query() dateStart?: Date,
|
||||
@Query() dateEnd?: Date,
|
||||
@Query() isProbation?: boolean,
|
||||
@Query() isRetire?: boolean,
|
||||
@Query() isRetireLaw?: boolean,
|
||||
@Query() retireType?: string,
|
||||
@Query() ageMin?: number,
|
||||
@Query() ageMax?: number,
|
||||
@Query() sortBy: string = "posMasterNo",
|
||||
@Query() sort: "ASC" | "DESC" = "ASC",
|
||||
) {
|
||||
const _null: any = null;
|
||||
if(!dateStart) {
|
||||
dateStart = _null
|
||||
}
|
||||
if(!dateEnd) {
|
||||
dateEnd = _null
|
||||
}
|
||||
if (ageMin && (ageMin < 18 || ageMin > 60)) {
|
||||
throw new HttpError(HttpStatus.NOT_FOUND, "ageMin must be between 18 and 60");
|
||||
}
|
||||
|
|
@ -512,22 +539,28 @@ export class ReportController extends Controller {
|
|||
nodeCondition = "registryEmployee.orgChild4Id = :nodeId";
|
||||
}
|
||||
let dateAppointCondition = "1=1";
|
||||
if (startDateAppoint && endDateAppoint) {
|
||||
if (dateStart && dateEnd) {
|
||||
dateAppointCondition =
|
||||
"DATE(registryEmployee.dateAppoint) >= :startDateAppoint AND DATE(registryEmployee.dateAppoint) <= :endDateAppoint";
|
||||
} else if (startDateAppoint) {
|
||||
} else if (dateStart) {
|
||||
dateAppointCondition = "DATE(registryEmployee.dateAppoint) >= :startDateAppoint";
|
||||
} else if (endDateAppoint) {
|
||||
} else if (dateEnd) {
|
||||
dateAppointCondition = "DATE(registryEmployee.dateAppoint) <= :endDateAppoint";
|
||||
}
|
||||
|
||||
const IsLeavecondition = ["registryEmployee.isLeave = :isLeave"];
|
||||
const parameters: any = { isLeave: isRetire };
|
||||
|
||||
if (retireType && retireType.trim() !== "") {
|
||||
IsLeavecondition.push("registryEmployee.leaveType = :retireType");
|
||||
parameters.retireType = retireType;
|
||||
}
|
||||
|
||||
let retireLawCondition = "1=1";
|
||||
if(isRetireLaw) {
|
||||
retireLawCondition =
|
||||
"DATE(registryEmployee.dateRetireLaw) >= :startDateRetireLaw AND DATE(registryEmployee.dateRetireLaw) <= :endDateRetireLaw";
|
||||
}
|
||||
|
||||
const [lists, total] = await AppDataSource.getRepository(viewRegistryEmployee)
|
||||
.createQueryBuilder("registryEmployee")
|
||||
.where(nodeCondition, {
|
||||
|
|
@ -538,8 +571,12 @@ export class ReportController extends Controller {
|
|||
ageMax,
|
||||
})
|
||||
.andWhere(dateAppointCondition, {
|
||||
startDateAppoint: startDateAppoint?.toISOString().split("T")[0],
|
||||
endDateAppoint: endDateAppoint?.toISOString().split("T")[0],
|
||||
startDateAppoint: dateStart?.toISOString().split("T")[0],
|
||||
endDateAppoint: dateEnd?.toISOString().split("T")[0],
|
||||
})
|
||||
.andWhere(retireLawCondition, {
|
||||
startDateRetireLaw: new Date(new Date().getFullYear() - 1, 9, 1, 0, 0, 0, 0)?.toISOString().split("T")[0],
|
||||
endDateRetireLaw: new Date(new Date().getFullYear(), 8, 30, 23, 59, 59, 999).toISOString().split("T")[0],
|
||||
})
|
||||
.andWhere("registryEmployee.isProbation = :isProbation", {
|
||||
isProbation: isProbation,
|
||||
|
|
@ -548,7 +585,7 @@ export class ReportController extends Controller {
|
|||
.andWhere("registryEmployee.employeeClass = 'PERM'")
|
||||
.andWhere(
|
||||
posType != null && posType != ""
|
||||
? "registryOfficer.posTypeName LIKE :posTypeName"
|
||||
? "registryEmployee.posTypeName LIKE :posTypeName"
|
||||
: "1=1",
|
||||
{
|
||||
posTypeName: `%${posType}%`,
|
||||
|
|
@ -556,7 +593,7 @@ export class ReportController extends Controller {
|
|||
)
|
||||
.andWhere(
|
||||
posLevel != null && posLevel != ""
|
||||
? "registryOfficer.posLevelName LIKE :posLevelName"
|
||||
? "registryEmployee.posLevelName LIKE :posLevelName"
|
||||
: "1=1",
|
||||
{
|
||||
posLevelName: `%${posLevel}%`,
|
||||
|
|
@ -564,7 +601,7 @@ export class ReportController extends Controller {
|
|||
)
|
||||
.andWhere(
|
||||
position != null && position != ""
|
||||
? "registryOfficer.position LIKE :position"
|
||||
? "registryEmployee.position LIKE :position"
|
||||
: "1=1",
|
||||
{
|
||||
position: `%${position}%`,
|
||||
|
|
@ -572,7 +609,7 @@ export class ReportController extends Controller {
|
|||
)
|
||||
.andWhere(
|
||||
gender != null && gender != ""
|
||||
? "registryOfficer.gender LIKE :gender"
|
||||
? "registryEmployee.gender LIKE :gender"
|
||||
: "1=1",
|
||||
{
|
||||
gender: `%${gender}%`,
|
||||
|
|
@ -580,7 +617,7 @@ export class ReportController extends Controller {
|
|||
)
|
||||
.andWhere(
|
||||
status != null && status != ""
|
||||
? "registryOfficer.relationship LIKE :relationship"
|
||||
? "registryEmployee.relationship LIKE :relationship"
|
||||
: "1=1",
|
||||
{
|
||||
relationship: `%${status}%`,
|
||||
|
|
@ -588,7 +625,7 @@ export class ReportController extends Controller {
|
|||
)
|
||||
.andWhere(
|
||||
education != null && education != ""
|
||||
? "registryOfficer.degree LIKE :degree"
|
||||
? "registryEmployee.degree LIKE :degree"
|
||||
: "1=1",
|
||||
{
|
||||
degree: `%${education}%`,
|
||||
|
|
@ -625,6 +662,8 @@ export class ReportController extends Controller {
|
|||
gender: x.gender,
|
||||
relationship: x.relationship,
|
||||
dateAppoint: x.dateAppoint,
|
||||
dateRetire: x.dateRetire,
|
||||
dateRetireLaw: x.dateRetireLaw,
|
||||
birthdate: x.birthdate,
|
||||
degree: x.degree,
|
||||
age: x.age,
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ export class ProfileSalary extends EntityBase {
|
|||
comment: "เลขที่คำสั่ง",
|
||||
default: null,
|
||||
})
|
||||
commandNo: number;
|
||||
commandNo: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
|
|
@ -242,7 +242,7 @@ export class ProfileSalary extends EntityBase {
|
|||
}
|
||||
|
||||
export class CreateProfileSalary {
|
||||
profileId: string;
|
||||
profileId: string | null;
|
||||
commandDateAffect?: Date | null;
|
||||
commandDateSign?: Date | null;
|
||||
amount?: Double | null;
|
||||
|
|
@ -266,7 +266,7 @@ export class CreateProfileSalary {
|
|||
positionCee?: string | null;
|
||||
commandCode?: string | null;
|
||||
commandName?: string | null;
|
||||
commandNo?: number | null;
|
||||
commandNo?: string | null;
|
||||
commandYear?: number | null;
|
||||
}
|
||||
|
||||
|
|
@ -293,7 +293,7 @@ export class CreateProfileSalaryEmployee {
|
|||
positionCee?: string | null;
|
||||
commandCode?: string | null;
|
||||
commandName?: string | null;
|
||||
commandNo?: number | null;
|
||||
commandNo?: string | null;
|
||||
commandYear?: number | null;
|
||||
}
|
||||
|
||||
|
|
@ -318,7 +318,7 @@ export class UpdateProfileSalaryEmployee {
|
|||
positionCee?: string | null;
|
||||
commandCode?: string | null;
|
||||
commandName?: string | null;
|
||||
commandNo?: number | null;
|
||||
commandNo?: string | null;
|
||||
commandYear?: number | null;
|
||||
}
|
||||
|
||||
|
|
@ -344,6 +344,6 @@ export type UpdateProfileSalary = {
|
|||
positionCee?: string | null;
|
||||
commandCode?: string | null;
|
||||
commandName?: string | null;
|
||||
commandNo?: number | null;
|
||||
commandNo?: string | null;
|
||||
commandYear?: number | null;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ export class ProfileSalaryHistory extends EntityBase {
|
|||
comment: "เลขที่คำสั่ง",
|
||||
default: null,
|
||||
})
|
||||
commandNo: number;
|
||||
commandNo: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ import { ViewColumn, ViewEntity } from "typeorm";
|
|||
ed.degree,
|
||||
ed.profileEmployeeId,
|
||||
ed.level,
|
||||
ROW_NUMBER() OVER (PARTITION BY ed.profileEmployeeId ORDER BY ed.level DESC) AS ed_number
|
||||
ROW_NUMBER() OVER (PARTITION BY ed.profileEmployeeId ORDER BY ed.level ASC) AS ed_number
|
||||
FROM profileEducation ed
|
||||
WHERE ed.isUse IS TRUE
|
||||
ORDER BY ed.level ASC
|
||||
|
|
@ -85,10 +85,12 @@ import { ViewColumn, ViewEntity } from "typeorm";
|
|||
pm.searchShortName,
|
||||
p.position,
|
||||
posType.posTypeName,
|
||||
posLevel.posLevelName,
|
||||
CONCAT(posType.posTypeShortName, ' ', posLevel.posLevelName) AS "posLevelName",
|
||||
p.gender,
|
||||
p.relationship,
|
||||
p.dateAppoint,
|
||||
p.dateRetire,
|
||||
p.dateRetireLaw,
|
||||
p.birthdate,
|
||||
ed.degree,
|
||||
TIMESTAMPDIFF(YEAR, p.birthdate, CURDATE()) AS age
|
||||
|
|
@ -183,6 +185,12 @@ export class viewRegistryEmployee {
|
|||
|
||||
@ViewColumn()
|
||||
dateAppoint: Date;
|
||||
|
||||
@ViewColumn()
|
||||
dateRetire: Date;
|
||||
|
||||
@ViewColumn()
|
||||
dateRetireLaw: Date;
|
||||
|
||||
@ViewColumn()
|
||||
birthdate: Date;
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ import { ViewColumn, ViewEntity } from "typeorm";
|
|||
ed.degree,
|
||||
ed.profileId,
|
||||
ed.level,
|
||||
ROW_NUMBER() OVER (PARTITION BY ed.profileId ORDER BY ed.level DESC) AS ed_number
|
||||
ROW_NUMBER() OVER (PARTITION BY ed.profileId ORDER BY ed.level ASC) AS ed_number
|
||||
FROM profileEducation ed
|
||||
WHERE ed.isUse IS TRUE
|
||||
ORDER BY ed.level ASC
|
||||
|
|
@ -93,6 +93,8 @@ import { ViewColumn, ViewEntity } from "typeorm";
|
|||
p.gender,
|
||||
p.relationship,
|
||||
p.dateAppoint,
|
||||
p.dateRetire,
|
||||
p.dateRetireLaw,
|
||||
p.birthdate,
|
||||
ed.degree,
|
||||
TIMESTAMPDIFF(YEAR, p.birthdate, CURDATE()) AS age
|
||||
|
|
@ -191,6 +193,12 @@ export class viewRegistryOfficer {
|
|||
@ViewColumn()
|
||||
dateAppoint: Date;
|
||||
|
||||
@ViewColumn()
|
||||
dateRetire: Date;
|
||||
|
||||
@ViewColumn()
|
||||
dateRetireLaw: Date;
|
||||
|
||||
@ViewColumn()
|
||||
birthdate: Date;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,246 +0,0 @@
|
|||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class Update22420251740366319309 implements MigrationInterface {
|
||||
name = 'Update22420251740366319309'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`idOFFICER\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP PRIMARY KEY`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`ID\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`FLAG_PERSON_TYPE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`RANK_CODE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`FLAG_TYPE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`RET_BORN_DATE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`RET_BORN_YEAR\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`RETURN_OCCUPY_DATE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`MP_FORCE_DATE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`UPCLASS_DATE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`WORK_LINE_DATE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`FUND_COURSE_NAME\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`EDUCATION_NAME\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`MAJOR_CODE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`MAJOR_NAME\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`UNIVER_NAME\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`POSITION_CATG\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`WORK_LINE_CODE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`MP_CEE_NAME\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`MP_CEE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`ADMIN_CODE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`ADMIN_NAME\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`SALARY_LEVEL_CODE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`SALARY_POS_ABB_NAME\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`SAL_POS_AMOUNT_2\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`SPECIALIST_CODE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`SPECIALIST_DATE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`SALARY_POS_ABB_NAME_1\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`SAL_POS_AMOUNT_1\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`ADMIN_DATE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`MP_FLAG\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`SALARY_ADD\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`SPECIAL_PERCENT\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`SPECIAL_AMT\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`PAYMENT_AMT\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`PAYMENT_PERCENT\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`MP_FLAG_1\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`COST_LIVING_AMOUNT\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`DEPARTMENT_CODE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`DIVISION_CODE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`SECTION_CODE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`JOB_CODE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`FLAG_CUR_ST\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`POS_NUM_CODE_SIT\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`MP_COMMAND_NUM\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`MP_COMMAND_DATE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`FLAG_TO_NAME_CODE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`MP_POS_DATE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`MP_YEAR\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`RET_BORN_MP_YEAR\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`SALARY_POS_CODE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`SALARY_POS_CODE_1\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`CUR_YEAR\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`FLAG_TO_NAME\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`POS_NUM_CODE_SIT_ABB\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`POS_NUM_CODE_SIT_CODE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`CONTENT_NO\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`POS_NUM_CODE_SIT_O\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`POS_NUM_CODE_SIT_ABB_O\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`POS_NUM_CODE_SIT_CODE_O\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`MP_COMMAND_NUM_O\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`CUR_YEAR_O\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`MP_YEAR_O\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`FLAG_TO_NAME_CODE_O\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`FLAG_TO_NAME_O\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`MP_COMMAND_DATE_O\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`MP_POS_DATE_O\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`MP_FLAG_O\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`MP_FLAG_1_O\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`MP_CEE_O\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`SALARY_LEVEL_CODE_O\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`SALARY_O\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`SPECIAL_AMT_O\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`SALARY_ADD_O\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`MP_CEE_CODE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`SALARY_LEVEL\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`MP_CEE_CODE_O\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`SALARY_LEVEL_O\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`GROUPWORK_CODE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`WORK_LINE_CODE_O\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`WORK_LINE_NAME_O\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`FLAG_RETIRE_STATUS\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`MARRIAGE_STATE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`SUN_NO\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`RETIRE_TYPE_CODE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`RETIRE_POS_NO\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`DEXPIRE_DATE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`HELP_LIVING_AMOUNT\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`OLD_RETIRE_DEPARTMENT_CODE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`OLD_RETIRE_DIVISION_CODE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`OLD_RETIRE_SECTION_CODE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`OLD_RETIRE_JOB_CODE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`CREATE_DATE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`UPDATE_DATE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`HR_PERSONAL_EMP_ADDRESS\` DROP COLUMN \`STREET\``);
|
||||
await queryRunner.query(`ALTER TABLE \`HR_PERSONAL_EMP_ADDRESS\` DROP COLUMN \`TEL\``);
|
||||
await queryRunner.query(`ALTER TABLE \`HR_PERSONAL_EMP_ADDRESS\` DROP COLUMN \`CONTACT_STREET\``);
|
||||
await queryRunner.query(`ALTER TABLE \`HR_PERSONAL_EMP_ADDRESS\` DROP COLUMN \`CONTACT_TEL\``);
|
||||
await queryRunner.query(`ALTER TABLE \`HR_PERSONAL_EMP_FAMILY\` DROP COLUMN \`FATHER_RANK_CODE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`HR_PERSONAL_EMP_FAMILY\` DROP COLUMN \`MOTHER_RANK_CODE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`HR_PERSONAL_EMP_FAMILY\` DROP COLUMN \`SPOUSE_RANK_CODE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`HR_PERSONAL_EMP_FAMILY\` DROP COLUMN \`LIFE_SPOUSE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`HR_PERSONAL_EMP_FAMILY\` DROP COLUMN \`SUN_NO\``);
|
||||
await queryRunner.query(`ALTER TABLE \`HR_EDUCATION_EMP\` DROP COLUMN \`FLAG_EDUCATION\``);
|
||||
await queryRunner.query(`ALTER TABLE \`HR_EDUCATION_EMP\` DROP COLUMN \`MAJOR_CODE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`HR_EDUCATION_EMP\` DROP COLUMN \`MINOR_CODE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`HR_EDUCATION_EMP\` DROP COLUMN \`FUND_COURSE_CODE\``);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`id\` int NOT NULL PRIMARY KEY AUTO_INCREMENT`);
|
||||
await queryRunner.query(`ALTER TABLE \`positionOfficer\` DROP COLUMN \`id\``);
|
||||
await queryRunner.query(`ALTER TABLE \`positionOfficer\` ADD \`id\` int NOT NULL PRIMARY KEY AUTO_INCREMENT`);
|
||||
await queryRunner.query(`ALTER TABLE \`positionOfficer\` DROP COLUMN \`order_move_position\``);
|
||||
await queryRunner.query(`ALTER TABLE \`positionOfficer\` ADD \`order_move_position\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`HR_EDUCATION\` DROP COLUMN \`EDUCATION_SEQ\``);
|
||||
await queryRunner.query(`ALTER TABLE \`HR_EDUCATION\` ADD \`EDUCATION_SEQ\` varchar(255) NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`HR_EDUCATION_EMP\` DROP COLUMN \`EDUCATION_SEQ\``);
|
||||
await queryRunner.query(`ALTER TABLE \`HR_EDUCATION_EMP\` ADD \`EDUCATION_SEQ\` varchar(255) NULL`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE \`HR_EDUCATION_EMP\` DROP COLUMN \`EDUCATION_SEQ\``);
|
||||
await queryRunner.query(`ALTER TABLE \`HR_EDUCATION_EMP\` ADD \`EDUCATION_SEQ\` mediumtext NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`HR_EDUCATION\` DROP COLUMN \`EDUCATION_SEQ\``);
|
||||
await queryRunner.query(`ALTER TABLE \`HR_EDUCATION\` ADD \`EDUCATION_SEQ\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`positionOfficer\` DROP COLUMN \`order_move_position\``);
|
||||
await queryRunner.query(`ALTER TABLE \`positionOfficer\` ADD \`order_move_position\` int NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`positionOfficer\` DROP COLUMN \`id\``);
|
||||
await queryRunner.query(`ALTER TABLE \`positionOfficer\` ADD \`id\` int NOT NULL DEFAULT '0'`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` DROP COLUMN \`id\``);
|
||||
await queryRunner.query(`ALTER TABLE \`HR_EDUCATION_EMP\` ADD \`FUND_COURSE_CODE\` mediumtext NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`HR_EDUCATION_EMP\` ADD \`MINOR_CODE\` mediumtext NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`HR_EDUCATION_EMP\` ADD \`MAJOR_CODE\` mediumtext NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`HR_EDUCATION_EMP\` ADD \`FLAG_EDUCATION\` mediumtext NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`HR_PERSONAL_EMP_FAMILY\` ADD \`SUN_NO\` mediumtext NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`HR_PERSONAL_EMP_FAMILY\` ADD \`LIFE_SPOUSE\` mediumtext NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`HR_PERSONAL_EMP_FAMILY\` ADD \`SPOUSE_RANK_CODE\` mediumtext NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`HR_PERSONAL_EMP_FAMILY\` ADD \`MOTHER_RANK_CODE\` mediumtext NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`HR_PERSONAL_EMP_FAMILY\` ADD \`FATHER_RANK_CODE\` mediumtext NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`HR_PERSONAL_EMP_ADDRESS\` ADD \`CONTACT_TEL\` mediumtext NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`HR_PERSONAL_EMP_ADDRESS\` ADD \`CONTACT_STREET\` mediumtext NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`HR_PERSONAL_EMP_ADDRESS\` ADD \`TEL\` mediumtext NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`HR_PERSONAL_EMP_ADDRESS\` ADD \`STREET\` mediumtext NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`UPDATE_DATE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`CREATE_DATE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`OLD_RETIRE_JOB_CODE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`OLD_RETIRE_SECTION_CODE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`OLD_RETIRE_DIVISION_CODE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`OLD_RETIRE_DEPARTMENT_CODE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`HELP_LIVING_AMOUNT\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`DEXPIRE_DATE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`RETIRE_POS_NO\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`RETIRE_TYPE_CODE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`SUN_NO\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`MARRIAGE_STATE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`FLAG_RETIRE_STATUS\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`WORK_LINE_NAME_O\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`WORK_LINE_CODE_O\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`GROUPWORK_CODE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`SALARY_LEVEL_O\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`MP_CEE_CODE_O\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`SALARY_LEVEL\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`MP_CEE_CODE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`SALARY_ADD_O\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`SPECIAL_AMT_O\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`SALARY_O\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`SALARY_LEVEL_CODE_O\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`MP_CEE_O\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`MP_FLAG_1_O\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`MP_FLAG_O\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`MP_POS_DATE_O\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`MP_COMMAND_DATE_O\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`FLAG_TO_NAME_O\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`FLAG_TO_NAME_CODE_O\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`MP_YEAR_O\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`CUR_YEAR_O\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`MP_COMMAND_NUM_O\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`POS_NUM_CODE_SIT_CODE_O\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`POS_NUM_CODE_SIT_ABB_O\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`POS_NUM_CODE_SIT_O\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`CONTENT_NO\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`POS_NUM_CODE_SIT_CODE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`POS_NUM_CODE_SIT_ABB\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`FLAG_TO_NAME\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`CUR_YEAR\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`SALARY_POS_CODE_1\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`SALARY_POS_CODE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`RET_BORN_MP_YEAR\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`MP_YEAR\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`MP_POS_DATE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`FLAG_TO_NAME_CODE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`MP_COMMAND_DATE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`MP_COMMAND_NUM\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`POS_NUM_CODE_SIT\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`FLAG_CUR_ST\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`JOB_CODE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`SECTION_CODE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`DIVISION_CODE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`DEPARTMENT_CODE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`COST_LIVING_AMOUNT\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`MP_FLAG_1\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`PAYMENT_PERCENT\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`PAYMENT_AMT\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`SPECIAL_AMT\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`SPECIAL_PERCENT\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`SALARY_ADD\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`MP_FLAG\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`ADMIN_DATE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`SAL_POS_AMOUNT_1\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`SALARY_POS_ABB_NAME_1\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`SPECIALIST_DATE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`SPECIALIST_CODE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`SAL_POS_AMOUNT_2\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`SALARY_POS_ABB_NAME\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`SALARY_LEVEL_CODE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`ADMIN_NAME\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`ADMIN_CODE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`MP_CEE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`MP_CEE_NAME\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`WORK_LINE_CODE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`POSITION_CATG\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`UNIVER_NAME\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`MAJOR_NAME\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`MAJOR_CODE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`EDUCATION_NAME\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`FUND_COURSE_NAME\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`WORK_LINE_DATE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`UPCLASS_DATE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`MP_FORCE_DATE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`RETURN_OCCUPY_DATE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`RET_BORN_YEAR\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`RET_BORN_DATE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`FLAG_TYPE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`RANK_CODE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`FLAG_PERSON_TYPE\` text NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`ID\` varchar(13) NOT NULL`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD PRIMARY KEY (\`ID\`)`);
|
||||
await queryRunner.query(`ALTER TABLE \`OFFICER\` ADD \`idOFFICER\` int NULL`);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,424 @@
|
|||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class UpdateViewRegistryOfficerAndEmployee1740373723906 implements MigrationInterface {
|
||||
name = 'UpdateViewRegistryOfficerAndEmployee1740373723906'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`DELETE FROM \`bma_ehr_organization_demo\`.\`typeorm_metadata\` WHERE \`type\` = ? AND \`name\` = ? AND \`schema\` = ?`, ["VIEW","view_registry_employee","bma_ehr_organization_demo"]);
|
||||
await queryRunner.query(`DROP VIEW \`view_registry_employee\``);
|
||||
await queryRunner.query(`DELETE FROM \`bma_ehr_organization_demo\`.\`typeorm_metadata\` WHERE \`type\` = ? AND \`name\` = ? AND \`schema\` = ?`, ["VIEW","view_registry_officer","bma_ehr_organization_demo"]);
|
||||
await queryRunner.query(`DROP VIEW \`view_registry_officer\``);
|
||||
await queryRunner.query(`ALTER TABLE \`profileSalaryHistory\` DROP FOREIGN KEY \`FK_f1ded3e1f83ab2437f739a14f38\``);
|
||||
await queryRunner.query(`ALTER TABLE \`profileSalaryHistory\` ADD CONSTRAINT \`FK_f1ded3e1f83ab2437f739a14f38\` FOREIGN KEY (\`profileSalaryId\`) REFERENCES \`profileSalary\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`CREATE VIEW \`view_registry_officer\` AS
|
||||
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.id as profileId,
|
||||
p.citizenId,
|
||||
p.rank,
|
||||
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.dateRetire,
|
||||
p.dateRetireLaw,
|
||||
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
|
||||
`);
|
||||
await queryRunner.query(`INSERT INTO \`bma_ehr_organization_demo\`.\`typeorm_metadata\`(\`database\`, \`schema\`, \`table\`, \`type\`, \`name\`, \`value\`) VALUES (DEFAULT, ?, DEFAULT, ?, ?, ?)`, ["bma_ehr_organization_demo","VIEW","view_registry_officer","WITH Position AS (\n SELECT \n posExecutive.posExecutiveName,\n pn.posMasterId,\n ROW_NUMBER() OVER (PARTITION BY pn.posMasterId) AS pn_number\n FROM position pn\n LEFT JOIN posExecutive ON pn.posExecutiveId = posExecutive.id\n WHERE pn.positionIsSelected IS TRUE\n ),\n PosMaster AS (\n SELECT \n pm.current_holderId,\n pm.posMasterNo,\n pm.orgRootId,\n pm.orgChild1Id,\n pm.orgChild2Id,\n pm.orgChild3Id,\n pm.orgChild4Id,\n orgRoot.orgRootName,\n orgChild1.orgChild1Name,\n orgChild2.orgChild2Name,\n orgChild3.orgChild3Name,\n orgChild4.orgChild4Name,\n pn.posExecutiveName,\n CASE \n WHEN pm.orgChild1Id IS NULL THEN CONCAT(orgRoot.orgRootShortName, pm.posMasterNo)\n WHEN pm.orgChild2Id IS NULL THEN CONCAT(orgChild1.orgChild1ShortName, pm.posMasterNo)\n WHEN pm.orgChild3Id IS NULL THEN CONCAT(orgChild2.orgChild2ShortName, pm.posMasterNo)\n WHEN pm.orgChild4Id IS NULL THEN CONCAT(orgChild3.orgChild3ShortName, pm.posMasterNo)\n ELSE CONCAT(orgChild4.orgChild4ShortName, pm.posMasterNo)\n END AS searchShortName,\n ROW_NUMBER() OVER (PARTITION BY pm.current_holderId ORDER BY pm.posMasterNo DESC) AS pm_number\n FROM posMaster pm\n LEFT JOIN orgRevision ON orgRevision.id = pm.orgRevisionId\n LEFT JOIN orgRoot ON orgRoot.id = pm.orgRootId\n LEFT JOIN orgChild1 ON orgChild1.id = pm.orgChild1Id\n LEFT JOIN orgChild2 ON orgChild2.id = pm.orgChild2Id\n LEFT JOIN orgChild3 ON orgChild3.id = pm.orgChild3Id\n LEFT JOIN orgChild4 ON orgChild4.id = pm.orgChild4Id\n LEFT JOIN Position pn ON pm.id = pn.posMasterId AND pn.pn_number = 1\n WHERE \n orgRevision.orgRevisionIsCurrent IS TRUE \n AND orgRevision.orgRevisionIsDraft IS FALSE\n ),\n Education AS (\n SELECT \n ed.degree,\n ed.profileId,\n ed.level,\n ROW_NUMBER() OVER (PARTITION BY ed.profileId ORDER BY ed.level DESC) AS ed_number\n FROM profileEducation ed\n WHERE ed.isUse IS TRUE\n ORDER BY ed.level ASC\n )\n SELECT \n p.id as profileId,\n p.citizenId,\n p.rank,\n p.prefix,\n p.firstName,\n p.lastName,\n p.isProbation,\n p.isLeave,\n p.isRetirement,\n p.leaveType,\n pm.posMasterNo,\n pm.orgRootId,\n pm.orgChild1Id,\n pm.orgChild2Id,\n pm.orgChild3Id,\n pm.orgChild4Id,\n pm.orgRootName,\n pm.orgChild1Name,\n pm.orgChild2Name,\n pm.orgChild3Name,\n pm.orgChild4Name,\n CASE \n WHEN pm.orgChild1Id IS NULL THEN pm.orgRootName\n WHEN pm.orgChild2Id IS NULL THEN CONCAT(pm.orgChild1Name, \" \", pm.orgRootName)\n WHEN pm.orgChild3Id IS NULL THEN CONCAT(pm.orgChild2Name, \" \", pm.orgChild1Name, \" \", pm.orgRootName)\n WHEN pm.orgChild4Id IS NULL THEN CONCAT(pm.orgChild3Name, \" \", pm.orgChild2Name, \" \", pm.orgChild1Name, \" \", pm.orgRootName)\n ELSE CONCAT(pm.orgChild4Name, \" \", pm.orgChild3Name, \" \", pm.orgChild2Name, \" \", pm.orgChild1Name, \" \", pm.orgRootName)\n END AS org,\n pm.searchShortName,\n pm.posExecutiveName,\n p.position,\n posType.posTypeName,\n posLevel.posLevelName,\n p.gender,\n p.relationship,\n p.dateAppoint,\n p.dateRetire,\n p.dateRetireLaw,\n p.birthdate,\n ed.degree,\n TIMESTAMPDIFF(YEAR, p.birthdate, CURDATE()) AS age\n FROM profile p\n LEFT JOIN posLevel ON p.posLevelId = posLevel.id\n LEFT JOIN posType ON p.posTypeId = posType.id\n LEFT JOIN PosMaster pm ON p.id = pm.current_holderId AND pm.pm_number = 1\n LEFT JOIN Education ed ON p.id = ed.profileId AND ed.ed_number = 1"]);
|
||||
await queryRunner.query(`CREATE VIEW \`view_registry_employee\` AS
|
||||
WITH Position AS (
|
||||
SELECT
|
||||
pn.posMasterId,
|
||||
ROW_NUMBER() OVER (PARTITION BY pn.posMasterId) AS pn_number
|
||||
FROM employeePosition pn
|
||||
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,
|
||||
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 employeePosMaster 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.profileEmployeeId,
|
||||
ed.level,
|
||||
ROW_NUMBER() OVER (PARTITION BY ed.profileEmployeeId ORDER BY ed.level DESC) AS ed_number
|
||||
FROM profileEducation ed
|
||||
WHERE ed.isUse IS TRUE
|
||||
ORDER BY ed.level ASC
|
||||
)
|
||||
SELECT
|
||||
p.id as profileEmployeeId,
|
||||
p.citizenId,
|
||||
p.rank,
|
||||
p.prefix,
|
||||
p.firstName,
|
||||
p.lastName,
|
||||
p.isProbation,
|
||||
p.isLeave,
|
||||
p.isRetirement,
|
||||
p.leaveType,
|
||||
p.employeeClass,
|
||||
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,
|
||||
p.position,
|
||||
posType.posTypeName,
|
||||
posLevel.posLevelName,
|
||||
p.gender,
|
||||
p.relationship,
|
||||
p.dateAppoint,
|
||||
p.dateRetire,
|
||||
p.dateRetireLaw,
|
||||
p.birthdate,
|
||||
ed.degree,
|
||||
TIMESTAMPDIFF(YEAR, p.birthdate, CURDATE()) AS age
|
||||
FROM profileEmployee p
|
||||
LEFT JOIN employeePosLevel posLevel ON p.posLevelId = posLevel.id
|
||||
LEFT JOIN employeePosType 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.profileEmployeeId AND ed.ed_number = 1
|
||||
`);
|
||||
await queryRunner.query(`INSERT INTO \`bma_ehr_organization_demo\`.\`typeorm_metadata\`(\`database\`, \`schema\`, \`table\`, \`type\`, \`name\`, \`value\`) VALUES (DEFAULT, ?, DEFAULT, ?, ?, ?)`, ["bma_ehr_organization_demo","VIEW","view_registry_employee","WITH Position AS (\n SELECT \n pn.posMasterId,\n ROW_NUMBER() OVER (PARTITION BY pn.posMasterId) AS pn_number\n FROM employeePosition pn\n WHERE pn.positionIsSelected IS TRUE\n ),\n PosMaster AS (\n SELECT \n pm.current_holderId,\n pm.posMasterNo,\n pm.orgRootId,\n pm.orgChild1Id,\n pm.orgChild2Id,\n pm.orgChild3Id,\n pm.orgChild4Id,\n orgRoot.orgRootName,\n orgChild1.orgChild1Name,\n orgChild2.orgChild2Name,\n orgChild3.orgChild3Name,\n orgChild4.orgChild4Name,\n CASE \n WHEN pm.orgChild1Id IS NULL THEN CONCAT(orgRoot.orgRootShortName, pm.posMasterNo)\n WHEN pm.orgChild2Id IS NULL THEN CONCAT(orgChild1.orgChild1ShortName, pm.posMasterNo)\n WHEN pm.orgChild3Id IS NULL THEN CONCAT(orgChild2.orgChild2ShortName, pm.posMasterNo)\n WHEN pm.orgChild4Id IS NULL THEN CONCAT(orgChild3.orgChild3ShortName, pm.posMasterNo)\n ELSE CONCAT(orgChild4.orgChild4ShortName, pm.posMasterNo)\n END AS searchShortName,\n ROW_NUMBER() OVER (PARTITION BY pm.current_holderId ORDER BY pm.posMasterNo DESC) AS pm_number\n FROM employeePosMaster pm\n LEFT JOIN orgRevision ON orgRevision.id = pm.orgRevisionId\n LEFT JOIN orgRoot ON orgRoot.id = pm.orgRootId\n LEFT JOIN orgChild1 ON orgChild1.id = pm.orgChild1Id\n LEFT JOIN orgChild2 ON orgChild2.id = pm.orgChild2Id\n LEFT JOIN orgChild3 ON orgChild3.id = pm.orgChild3Id\n LEFT JOIN orgChild4 ON orgChild4.id = pm.orgChild4Id\n LEFT JOIN Position pn ON pm.id = pn.posMasterId AND pn.pn_number = 1\n WHERE orgRevision.orgRevisionIsCurrent IS TRUE \n AND orgRevision.orgRevisionIsDraft IS FALSE\n ),\n Education AS (\n SELECT \n ed.degree,\n ed.profileEmployeeId,\n ed.level,\n ROW_NUMBER() OVER (PARTITION BY ed.profileEmployeeId ORDER BY ed.level DESC) AS ed_number\n FROM profileEducation ed\n WHERE ed.isUse IS TRUE\n ORDER BY ed.level ASC\n )\n SELECT \n p.id as profileEmployeeId,\n p.citizenId,\n p.rank,\n p.prefix,\n p.firstName,\n p.lastName,\n p.isProbation,\n p.isLeave,\n p.isRetirement,\n p.leaveType,\n p.employeeClass,\n pm.posMasterNo,\n pm.orgRootId,\n pm.orgChild1Id,\n pm.orgChild2Id,\n pm.orgChild3Id,\n pm.orgChild4Id,\n pm.orgRootName,\n pm.orgChild1Name,\n pm.orgChild2Name,\n pm.orgChild3Name,\n pm.orgChild4Name,\n CASE \n WHEN pm.orgChild1Id IS NULL THEN pm.orgRootName\n WHEN pm.orgChild2Id IS NULL THEN CONCAT(pm.orgChild1Name, \" \", pm.orgRootName)\n WHEN pm.orgChild3Id IS NULL THEN CONCAT(pm.orgChild2Name, \" \", pm.orgChild1Name, \" \", pm.orgRootName)\n WHEN pm.orgChild4Id IS NULL THEN CONCAT(pm.orgChild3Name, \" \", pm.orgChild2Name, \" \", pm.orgChild1Name, \" \", pm.orgRootName)\n ELSE CONCAT(pm.orgChild4Name, \" \", pm.orgChild3Name, \" \", pm.orgChild2Name, \" \", pm.orgChild1Name, \" \", pm.orgRootName)\n END AS org,\n pm.searchShortName,\n p.position,\n posType.posTypeName,\n posLevel.posLevelName,\n p.gender,\n p.relationship,\n p.dateAppoint,\n p.dateRetire,\n p.dateRetireLaw,\n p.birthdate,\n ed.degree,\n TIMESTAMPDIFF(YEAR, p.birthdate, CURDATE()) AS age\n FROM profileEmployee p\n LEFT JOIN employeePosLevel posLevel ON p.posLevelId = posLevel.id\n LEFT JOIN employeePosType posType ON p.posTypeId = posType.id\n LEFT JOIN PosMaster pm ON p.id = pm.current_holderId AND pm.pm_number = 1\n LEFT JOIN Education ed ON p.id = ed.profileEmployeeId AND ed.ed_number = 1"]);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`DELETE FROM \`bma_ehr_organization_demo\`.\`typeorm_metadata\` WHERE \`type\` = ? AND \`name\` = ? AND \`schema\` = ?`, ["VIEW","view_registry_employee","bma_ehr_organization_demo"]);
|
||||
await queryRunner.query(`DROP VIEW \`view_registry_employee\``);
|
||||
await queryRunner.query(`DELETE FROM \`bma_ehr_organization_demo\`.\`typeorm_metadata\` WHERE \`type\` = ? AND \`name\` = ? AND \`schema\` = ?`, ["VIEW","view_registry_officer","bma_ehr_organization_demo"]);
|
||||
await queryRunner.query(`DROP VIEW \`view_registry_officer\``);
|
||||
await queryRunner.query(`ALTER TABLE \`profileSalaryHistory\` DROP FOREIGN KEY \`FK_f1ded3e1f83ab2437f739a14f38\``);
|
||||
await queryRunner.query(`ALTER TABLE \`profileSalaryHistory\` ADD CONSTRAINT \`FK_f1ded3e1f83ab2437f739a14f38\` FOREIGN KEY (\`profileSalaryId\`) REFERENCES \`profileSalary\`(\`id\`) ON DELETE RESTRICT ON UPDATE RESTRICT`);
|
||||
await queryRunner.query(`CREATE VIEW \`view_registry_officer\` AS 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.id as profileId,
|
||||
p.citizenId,
|
||||
p.rank,
|
||||
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`);
|
||||
await queryRunner.query(`INSERT INTO \`bma_ehr_organization_demo\`.\`typeorm_metadata\`(\`database\`, \`schema\`, \`table\`, \`type\`, \`name\`, \`value\`) VALUES (DEFAULT, ?, DEFAULT, ?, ?, ?)`, ["bma_ehr_organization_demo","VIEW","view_registry_officer","WITH Position AS (\n SELECT \n posExecutive.posExecutiveName,\n pn.posMasterId,\n ROW_NUMBER() OVER (PARTITION BY pn.posMasterId) AS pn_number\n FROM position pn\n LEFT JOIN posExecutive ON pn.posExecutiveId = posExecutive.id\n WHERE pn.positionIsSelected IS TRUE\n ),\n PosMaster AS (\n SELECT \n pm.current_holderId,\n pm.posMasterNo,\n pm.orgRootId,\n pm.orgChild1Id,\n pm.orgChild2Id,\n pm.orgChild3Id,\n pm.orgChild4Id,\n orgRoot.orgRootName,\n orgChild1.orgChild1Name,\n orgChild2.orgChild2Name,\n orgChild3.orgChild3Name,\n orgChild4.orgChild4Name,\n pn.posExecutiveName,\n CASE \n WHEN pm.orgChild1Id IS NULL THEN CONCAT(orgRoot.orgRootShortName, pm.posMasterNo)\n WHEN pm.orgChild2Id IS NULL THEN CONCAT(orgChild1.orgChild1ShortName, pm.posMasterNo)\n WHEN pm.orgChild3Id IS NULL THEN CONCAT(orgChild2.orgChild2ShortName, pm.posMasterNo)\n WHEN pm.orgChild4Id IS NULL THEN CONCAT(orgChild3.orgChild3ShortName, pm.posMasterNo)\n ELSE CONCAT(orgChild4.orgChild4ShortName, pm.posMasterNo)\n END AS searchShortName,\n ROW_NUMBER() OVER (PARTITION BY pm.current_holderId ORDER BY pm.posMasterNo DESC) AS pm_number\n FROM posMaster pm\n LEFT JOIN orgRevision ON orgRevision.id = pm.orgRevisionId\n LEFT JOIN orgRoot ON orgRoot.id = pm.orgRootId\n LEFT JOIN orgChild1 ON orgChild1.id = pm.orgChild1Id\n LEFT JOIN orgChild2 ON orgChild2.id = pm.orgChild2Id\n LEFT JOIN orgChild3 ON orgChild3.id = pm.orgChild3Id\n LEFT JOIN orgChild4 ON orgChild4.id = pm.orgChild4Id\n LEFT JOIN Position pn ON pm.id = pn.posMasterId AND pn.pn_number = 1\n WHERE \n orgRevision.orgRevisionIsCurrent IS TRUE \n AND orgRevision.orgRevisionIsDraft IS FALSE\n ),\n Education AS (\n SELECT \n ed.degree,\n ed.profileId,\n ed.level,\n ROW_NUMBER() OVER (PARTITION BY ed.profileId ORDER BY ed.level DESC) AS ed_number\n FROM profileEducation ed\n WHERE ed.isUse IS TRUE\n ORDER BY ed.level ASC\n )\n SELECT \n p.id as profileId,\n p.citizenId,\n p.rank,\n p.prefix,\n p.firstName,\n p.lastName,\n p.isProbation,\n p.isLeave,\n p.isRetirement,\n p.leaveType,\n pm.posMasterNo,\n pm.orgRootId,\n pm.orgChild1Id,\n pm.orgChild2Id,\n pm.orgChild3Id,\n pm.orgChild4Id,\n pm.orgRootName,\n pm.orgChild1Name,\n pm.orgChild2Name,\n pm.orgChild3Name,\n pm.orgChild4Name,\n CASE \n WHEN pm.orgChild1Id IS NULL THEN pm.orgRootName\n WHEN pm.orgChild2Id IS NULL THEN CONCAT(pm.orgChild1Name, \" \", pm.orgRootName)\n WHEN pm.orgChild3Id IS NULL THEN CONCAT(pm.orgChild2Name, \" \", pm.orgChild1Name, \" \", pm.orgRootName)\n WHEN pm.orgChild4Id IS NULL THEN CONCAT(pm.orgChild3Name, \" \", pm.orgChild2Name, \" \", pm.orgChild1Name, \" \", pm.orgRootName)\n ELSE CONCAT(pm.orgChild4Name, \" \", pm.orgChild3Name, \" \", pm.orgChild2Name, \" \", pm.orgChild1Name, \" \", pm.orgRootName)\n END AS org,\n pm.searchShortName,\n pm.posExecutiveName,\n p.position,\n posType.posTypeName,\n posLevel.posLevelName,\n p.gender,\n p.relationship,\n p.dateAppoint,\n p.birthdate,\n ed.degree,\n TIMESTAMPDIFF(YEAR, p.birthdate, CURDATE()) AS age\n FROM profile p\n LEFT JOIN posLevel ON p.posLevelId = posLevel.id\n LEFT JOIN posType ON p.posTypeId = posType.id\n LEFT JOIN PosMaster pm ON p.id = pm.current_holderId AND pm.pm_number = 1\n LEFT JOIN Education ed ON p.id = ed.profileId AND ed.ed_number = 1"]);
|
||||
await queryRunner.query(`CREATE VIEW \`view_registry_employee\` AS WITH Position AS (
|
||||
SELECT
|
||||
pn.posMasterId,
|
||||
ROW_NUMBER() OVER (PARTITION BY pn.posMasterId) AS pn_number
|
||||
FROM employeePosition pn
|
||||
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,
|
||||
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 employeePosMaster 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.profileEmployeeId,
|
||||
ed.level,
|
||||
ROW_NUMBER() OVER (PARTITION BY ed.profileEmployeeId ORDER BY ed.level DESC) AS ed_number
|
||||
FROM profileEducation ed
|
||||
WHERE ed.isUse IS TRUE
|
||||
ORDER BY ed.level ASC
|
||||
)
|
||||
SELECT
|
||||
p.id as profileEmployeeId,
|
||||
p.citizenId,
|
||||
p.rank,
|
||||
p.prefix,
|
||||
p.firstName,
|
||||
p.lastName,
|
||||
p.isProbation,
|
||||
p.isLeave,
|
||||
p.isRetirement,
|
||||
p.leaveType,
|
||||
p.employeeClass,
|
||||
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,
|
||||
p.position,
|
||||
posType.posTypeName,
|
||||
posLevel.posLevelName,
|
||||
p.gender,
|
||||
p.relationship,
|
||||
p.dateAppoint,
|
||||
p.birthdate,
|
||||
ed.degree,
|
||||
TIMESTAMPDIFF(YEAR, p.birthdate, CURDATE()) AS age
|
||||
FROM profileEmployee p
|
||||
LEFT JOIN employeePosLevel posLevel ON p.posLevelId = posLevel.id
|
||||
LEFT JOIN employeePosType 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.profileEmployeeId AND ed.ed_number = 1`);
|
||||
await queryRunner.query(`INSERT INTO \`bma_ehr_organization_demo\`.\`typeorm_metadata\`(\`database\`, \`schema\`, \`table\`, \`type\`, \`name\`, \`value\`) VALUES (DEFAULT, ?, DEFAULT, ?, ?, ?)`, ["bma_ehr_organization_demo","VIEW","view_registry_employee","WITH Position AS (\n SELECT \n pn.posMasterId,\n ROW_NUMBER() OVER (PARTITION BY pn.posMasterId) AS pn_number\n FROM employeePosition pn\n WHERE pn.positionIsSelected IS TRUE\n ),\n PosMaster AS (\n SELECT \n pm.current_holderId,\n pm.posMasterNo,\n pm.orgRootId,\n pm.orgChild1Id,\n pm.orgChild2Id,\n pm.orgChild3Id,\n pm.orgChild4Id,\n orgRoot.orgRootName,\n orgChild1.orgChild1Name,\n orgChild2.orgChild2Name,\n orgChild3.orgChild3Name,\n orgChild4.orgChild4Name,\n CASE \n WHEN pm.orgChild1Id IS NULL THEN CONCAT(orgRoot.orgRootShortName, pm.posMasterNo)\n WHEN pm.orgChild2Id IS NULL THEN CONCAT(orgChild1.orgChild1ShortName, pm.posMasterNo)\n WHEN pm.orgChild3Id IS NULL THEN CONCAT(orgChild2.orgChild2ShortName, pm.posMasterNo)\n WHEN pm.orgChild4Id IS NULL THEN CONCAT(orgChild3.orgChild3ShortName, pm.posMasterNo)\n ELSE CONCAT(orgChild4.orgChild4ShortName, pm.posMasterNo)\n END AS searchShortName,\n ROW_NUMBER() OVER (PARTITION BY pm.current_holderId ORDER BY pm.posMasterNo DESC) AS pm_number\n FROM employeePosMaster pm\n LEFT JOIN orgRevision ON orgRevision.id = pm.orgRevisionId\n LEFT JOIN orgRoot ON orgRoot.id = pm.orgRootId\n LEFT JOIN orgChild1 ON orgChild1.id = pm.orgChild1Id\n LEFT JOIN orgChild2 ON orgChild2.id = pm.orgChild2Id\n LEFT JOIN orgChild3 ON orgChild3.id = pm.orgChild3Id\n LEFT JOIN orgChild4 ON orgChild4.id = pm.orgChild4Id\n LEFT JOIN Position pn ON pm.id = pn.posMasterId AND pn.pn_number = 1\n WHERE orgRevision.orgRevisionIsCurrent IS TRUE \n AND orgRevision.orgRevisionIsDraft IS FALSE\n ),\n Education AS (\n SELECT \n ed.degree,\n ed.profileEmployeeId,\n ed.level,\n ROW_NUMBER() OVER (PARTITION BY ed.profileEmployeeId ORDER BY ed.level DESC) AS ed_number\n FROM profileEducation ed\n WHERE ed.isUse IS TRUE\n ORDER BY ed.level ASC\n )\n SELECT \n p.id as profileEmployeeId,\n p.citizenId,\n p.rank,\n p.prefix,\n p.firstName,\n p.lastName,\n p.isProbation,\n p.isLeave,\n p.isRetirement,\n p.leaveType,\n p.employeeClass,\n pm.posMasterNo,\n pm.orgRootId,\n pm.orgChild1Id,\n pm.orgChild2Id,\n pm.orgChild3Id,\n pm.orgChild4Id,\n pm.orgRootName,\n pm.orgChild1Name,\n pm.orgChild2Name,\n pm.orgChild3Name,\n pm.orgChild4Name,\n CASE \n WHEN pm.orgChild1Id IS NULL THEN pm.orgRootName\n WHEN pm.orgChild2Id IS NULL THEN CONCAT(pm.orgChild1Name, \" \", pm.orgRootName)\n WHEN pm.orgChild3Id IS NULL THEN CONCAT(pm.orgChild2Name, \" \", pm.orgChild1Name, \" \", pm.orgRootName)\n WHEN pm.orgChild4Id IS NULL THEN CONCAT(pm.orgChild3Name, \" \", pm.orgChild2Name, \" \", pm.orgChild1Name, \" \", pm.orgRootName)\n ELSE CONCAT(pm.orgChild4Name, \" \", pm.orgChild3Name, \" \", pm.orgChild2Name, \" \", pm.orgChild1Name, \" \", pm.orgRootName)\n END AS org,\n pm.searchShortName,\n p.position,\n posType.posTypeName,\n posLevel.posLevelName,\n p.gender,\n p.relationship,\n p.dateAppoint,\n p.birthdate,\n ed.degree,\n TIMESTAMPDIFF(YEAR, p.birthdate, CURDATE()) AS age\n FROM profileEmployee p\n LEFT JOIN employeePosLevel posLevel ON p.posLevelId = posLevel.id\n LEFT JOIN employeePosType posType ON p.posTypeId = posType.id\n LEFT JOIN PosMaster pm ON p.id = pm.current_holderId AND pm.pm_number = 1\n LEFT JOIN Education ed ON p.id = ed.profileEmployeeId AND ed.ed_number = 1"]);
|
||||
}
|
||||
|
||||
}
|
||||
424
src/migration/1740382878673-updateViewRegistryEmployee.ts
Normal file
424
src/migration/1740382878673-updateViewRegistryEmployee.ts
Normal file
|
|
@ -0,0 +1,424 @@
|
|||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class UpdateViewRegistryEmployee1740382878673 implements MigrationInterface {
|
||||
name = 'UpdateViewRegistryEmployee1740382878673'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`DELETE FROM \`bma_ehr_organization_demo\`.\`typeorm_metadata\` WHERE \`type\` = ? AND \`name\` = ? AND \`schema\` = ?`, ["VIEW","view_registry_employee","bma_ehr_organization_demo"]);
|
||||
await queryRunner.query(`DROP VIEW \`view_registry_employee\``);
|
||||
await queryRunner.query(`DELETE FROM \`bma_ehr_organization_demo\`.\`typeorm_metadata\` WHERE \`type\` = ? AND \`name\` = ? AND \`schema\` = ?`, ["VIEW","view_registry_officer","bma_ehr_organization_demo"]);
|
||||
await queryRunner.query(`DROP VIEW \`view_registry_officer\``);
|
||||
await queryRunner.query(`CREATE VIEW \`view_registry_officer\` AS
|
||||
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 ASC) AS ed_number
|
||||
FROM profileEducation ed
|
||||
WHERE ed.isUse IS TRUE
|
||||
ORDER BY ed.level ASC
|
||||
)
|
||||
SELECT
|
||||
p.id as profileId,
|
||||
p.citizenId,
|
||||
p.rank,
|
||||
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.dateRetire,
|
||||
p.dateRetireLaw,
|
||||
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
|
||||
`);
|
||||
await queryRunner.query(`INSERT INTO \`bma_ehr_organization_demo\`.\`typeorm_metadata\`(\`database\`, \`schema\`, \`table\`, \`type\`, \`name\`, \`value\`) VALUES (DEFAULT, ?, DEFAULT, ?, ?, ?)`, ["bma_ehr_organization_demo","VIEW","view_registry_officer","WITH Position AS (\n SELECT \n posExecutive.posExecutiveName,\n pn.posMasterId,\n ROW_NUMBER() OVER (PARTITION BY pn.posMasterId) AS pn_number\n FROM position pn\n LEFT JOIN posExecutive ON pn.posExecutiveId = posExecutive.id\n WHERE pn.positionIsSelected IS TRUE\n ),\n PosMaster AS (\n SELECT \n pm.current_holderId,\n pm.posMasterNo,\n pm.orgRootId,\n pm.orgChild1Id,\n pm.orgChild2Id,\n pm.orgChild3Id,\n pm.orgChild4Id,\n orgRoot.orgRootName,\n orgChild1.orgChild1Name,\n orgChild2.orgChild2Name,\n orgChild3.orgChild3Name,\n orgChild4.orgChild4Name,\n pn.posExecutiveName,\n CASE \n WHEN pm.orgChild1Id IS NULL THEN CONCAT(orgRoot.orgRootShortName, pm.posMasterNo)\n WHEN pm.orgChild2Id IS NULL THEN CONCAT(orgChild1.orgChild1ShortName, pm.posMasterNo)\n WHEN pm.orgChild3Id IS NULL THEN CONCAT(orgChild2.orgChild2ShortName, pm.posMasterNo)\n WHEN pm.orgChild4Id IS NULL THEN CONCAT(orgChild3.orgChild3ShortName, pm.posMasterNo)\n ELSE CONCAT(orgChild4.orgChild4ShortName, pm.posMasterNo)\n END AS searchShortName,\n ROW_NUMBER() OVER (PARTITION BY pm.current_holderId ORDER BY pm.posMasterNo DESC) AS pm_number\n FROM posMaster pm\n LEFT JOIN orgRevision ON orgRevision.id = pm.orgRevisionId\n LEFT JOIN orgRoot ON orgRoot.id = pm.orgRootId\n LEFT JOIN orgChild1 ON orgChild1.id = pm.orgChild1Id\n LEFT JOIN orgChild2 ON orgChild2.id = pm.orgChild2Id\n LEFT JOIN orgChild3 ON orgChild3.id = pm.orgChild3Id\n LEFT JOIN orgChild4 ON orgChild4.id = pm.orgChild4Id\n LEFT JOIN Position pn ON pm.id = pn.posMasterId AND pn.pn_number = 1\n WHERE \n orgRevision.orgRevisionIsCurrent IS TRUE \n AND orgRevision.orgRevisionIsDraft IS FALSE\n ),\n Education AS (\n SELECT \n ed.degree,\n ed.profileId,\n ed.level,\n ROW_NUMBER() OVER (PARTITION BY ed.profileId ORDER BY ed.level ASC) AS ed_number\n FROM profileEducation ed\n WHERE ed.isUse IS TRUE\n ORDER BY ed.level ASC\n )\n SELECT \n p.id as profileId,\n p.citizenId,\n p.rank,\n p.prefix,\n p.firstName,\n p.lastName,\n p.isProbation,\n p.isLeave,\n p.isRetirement,\n p.leaveType,\n pm.posMasterNo,\n pm.orgRootId,\n pm.orgChild1Id,\n pm.orgChild2Id,\n pm.orgChild3Id,\n pm.orgChild4Id,\n pm.orgRootName,\n pm.orgChild1Name,\n pm.orgChild2Name,\n pm.orgChild3Name,\n pm.orgChild4Name,\n CASE \n WHEN pm.orgChild1Id IS NULL THEN pm.orgRootName\n WHEN pm.orgChild2Id IS NULL THEN CONCAT(pm.orgChild1Name, \" \", pm.orgRootName)\n WHEN pm.orgChild3Id IS NULL THEN CONCAT(pm.orgChild2Name, \" \", pm.orgChild1Name, \" \", pm.orgRootName)\n WHEN pm.orgChild4Id IS NULL THEN CONCAT(pm.orgChild3Name, \" \", pm.orgChild2Name, \" \", pm.orgChild1Name, \" \", pm.orgRootName)\n ELSE CONCAT(pm.orgChild4Name, \" \", pm.orgChild3Name, \" \", pm.orgChild2Name, \" \", pm.orgChild1Name, \" \", pm.orgRootName)\n END AS org,\n pm.searchShortName,\n pm.posExecutiveName,\n p.position,\n posType.posTypeName,\n posLevel.posLevelName,\n p.gender,\n p.relationship,\n p.dateAppoint,\n p.dateRetire,\n p.dateRetireLaw,\n p.birthdate,\n ed.degree,\n TIMESTAMPDIFF(YEAR, p.birthdate, CURDATE()) AS age\n FROM profile p\n LEFT JOIN posLevel ON p.posLevelId = posLevel.id\n LEFT JOIN posType ON p.posTypeId = posType.id\n LEFT JOIN PosMaster pm ON p.id = pm.current_holderId AND pm.pm_number = 1\n LEFT JOIN Education ed ON p.id = ed.profileId AND ed.ed_number = 1"]);
|
||||
await queryRunner.query(`CREATE VIEW \`view_registry_employee\` AS
|
||||
WITH Position AS (
|
||||
SELECT
|
||||
pn.posMasterId,
|
||||
ROW_NUMBER() OVER (PARTITION BY pn.posMasterId) AS pn_number
|
||||
FROM employeePosition pn
|
||||
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,
|
||||
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 employeePosMaster 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.profileEmployeeId,
|
||||
ed.level,
|
||||
ROW_NUMBER() OVER (PARTITION BY ed.profileEmployeeId ORDER BY ed.level ASC) AS ed_number
|
||||
FROM profileEducation ed
|
||||
WHERE ed.isUse IS TRUE
|
||||
ORDER BY ed.level ASC
|
||||
)
|
||||
SELECT
|
||||
p.id as profileEmployeeId,
|
||||
p.citizenId,
|
||||
p.rank,
|
||||
p.prefix,
|
||||
p.firstName,
|
||||
p.lastName,
|
||||
p.isProbation,
|
||||
p.isLeave,
|
||||
p.isRetirement,
|
||||
p.leaveType,
|
||||
p.employeeClass,
|
||||
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,
|
||||
p.position,
|
||||
posType.posTypeName,
|
||||
CONCAT(posType.posTypeShortName, ' ', posLevel.posLevelName) AS "posLevelName",
|
||||
p.gender,
|
||||
p.relationship,
|
||||
p.dateAppoint,
|
||||
p.dateRetire,
|
||||
p.dateRetireLaw,
|
||||
p.birthdate,
|
||||
ed.degree,
|
||||
TIMESTAMPDIFF(YEAR, p.birthdate, CURDATE()) AS age
|
||||
FROM profileEmployee p
|
||||
LEFT JOIN employeePosLevel posLevel ON p.posLevelId = posLevel.id
|
||||
LEFT JOIN employeePosType 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.profileEmployeeId AND ed.ed_number = 1
|
||||
`);
|
||||
await queryRunner.query(`INSERT INTO \`bma_ehr_organization_demo\`.\`typeorm_metadata\`(\`database\`, \`schema\`, \`table\`, \`type\`, \`name\`, \`value\`) VALUES (DEFAULT, ?, DEFAULT, ?, ?, ?)`, ["bma_ehr_organization_demo","VIEW","view_registry_employee","WITH Position AS (\n SELECT \n pn.posMasterId,\n ROW_NUMBER() OVER (PARTITION BY pn.posMasterId) AS pn_number\n FROM employeePosition pn\n WHERE pn.positionIsSelected IS TRUE\n ),\n PosMaster AS (\n SELECT \n pm.current_holderId,\n pm.posMasterNo,\n pm.orgRootId,\n pm.orgChild1Id,\n pm.orgChild2Id,\n pm.orgChild3Id,\n pm.orgChild4Id,\n orgRoot.orgRootName,\n orgChild1.orgChild1Name,\n orgChild2.orgChild2Name,\n orgChild3.orgChild3Name,\n orgChild4.orgChild4Name,\n CASE \n WHEN pm.orgChild1Id IS NULL THEN CONCAT(orgRoot.orgRootShortName, pm.posMasterNo)\n WHEN pm.orgChild2Id IS NULL THEN CONCAT(orgChild1.orgChild1ShortName, pm.posMasterNo)\n WHEN pm.orgChild3Id IS NULL THEN CONCAT(orgChild2.orgChild2ShortName, pm.posMasterNo)\n WHEN pm.orgChild4Id IS NULL THEN CONCAT(orgChild3.orgChild3ShortName, pm.posMasterNo)\n ELSE CONCAT(orgChild4.orgChild4ShortName, pm.posMasterNo)\n END AS searchShortName,\n ROW_NUMBER() OVER (PARTITION BY pm.current_holderId ORDER BY pm.posMasterNo DESC) AS pm_number\n FROM employeePosMaster pm\n LEFT JOIN orgRevision ON orgRevision.id = pm.orgRevisionId\n LEFT JOIN orgRoot ON orgRoot.id = pm.orgRootId\n LEFT JOIN orgChild1 ON orgChild1.id = pm.orgChild1Id\n LEFT JOIN orgChild2 ON orgChild2.id = pm.orgChild2Id\n LEFT JOIN orgChild3 ON orgChild3.id = pm.orgChild3Id\n LEFT JOIN orgChild4 ON orgChild4.id = pm.orgChild4Id\n LEFT JOIN Position pn ON pm.id = pn.posMasterId AND pn.pn_number = 1\n WHERE orgRevision.orgRevisionIsCurrent IS TRUE \n AND orgRevision.orgRevisionIsDraft IS FALSE\n ),\n Education AS (\n SELECT \n ed.degree,\n ed.profileEmployeeId,\n ed.level,\n ROW_NUMBER() OVER (PARTITION BY ed.profileEmployeeId ORDER BY ed.level ASC) AS ed_number\n FROM profileEducation ed\n WHERE ed.isUse IS TRUE\n ORDER BY ed.level ASC\n )\n SELECT \n p.id as profileEmployeeId,\n p.citizenId,\n p.rank,\n p.prefix,\n p.firstName,\n p.lastName,\n p.isProbation,\n p.isLeave,\n p.isRetirement,\n p.leaveType,\n p.employeeClass,\n pm.posMasterNo,\n pm.orgRootId,\n pm.orgChild1Id,\n pm.orgChild2Id,\n pm.orgChild3Id,\n pm.orgChild4Id,\n pm.orgRootName,\n pm.orgChild1Name,\n pm.orgChild2Name,\n pm.orgChild3Name,\n pm.orgChild4Name,\n CASE \n WHEN pm.orgChild1Id IS NULL THEN pm.orgRootName\n WHEN pm.orgChild2Id IS NULL THEN CONCAT(pm.orgChild1Name, \" \", pm.orgRootName)\n WHEN pm.orgChild3Id IS NULL THEN CONCAT(pm.orgChild2Name, \" \", pm.orgChild1Name, \" \", pm.orgRootName)\n WHEN pm.orgChild4Id IS NULL THEN CONCAT(pm.orgChild3Name, \" \", pm.orgChild2Name, \" \", pm.orgChild1Name, \" \", pm.orgRootName)\n ELSE CONCAT(pm.orgChild4Name, \" \", pm.orgChild3Name, \" \", pm.orgChild2Name, \" \", pm.orgChild1Name, \" \", pm.orgRootName)\n END AS org,\n pm.searchShortName,\n p.position,\n posType.posTypeName,\n CONCAT(posType.posTypeShortName, ' ', posLevel.posLevelName) AS \"posLevelName\",\n p.gender,\n p.relationship,\n p.dateAppoint,\n p.dateRetire,\n p.dateRetireLaw,\n p.birthdate,\n ed.degree,\n TIMESTAMPDIFF(YEAR, p.birthdate, CURDATE()) AS age\n FROM profileEmployee p\n LEFT JOIN employeePosLevel posLevel ON p.posLevelId = posLevel.id\n LEFT JOIN employeePosType posType ON p.posTypeId = posType.id\n LEFT JOIN PosMaster pm ON p.id = pm.current_holderId AND pm.pm_number = 1\n LEFT JOIN Education ed ON p.id = ed.profileEmployeeId AND ed.ed_number = 1"]);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`DELETE FROM \`bma_ehr_organization_demo\`.\`typeorm_metadata\` WHERE \`type\` = ? AND \`name\` = ? AND \`schema\` = ?`, ["VIEW","view_registry_employee","bma_ehr_organization_demo"]);
|
||||
await queryRunner.query(`DROP VIEW \`view_registry_employee\``);
|
||||
await queryRunner.query(`DELETE FROM \`bma_ehr_organization_demo\`.\`typeorm_metadata\` WHERE \`type\` = ? AND \`name\` = ? AND \`schema\` = ?`, ["VIEW","view_registry_officer","bma_ehr_organization_demo"]);
|
||||
await queryRunner.query(`DROP VIEW \`view_registry_officer\``);
|
||||
await queryRunner.query(`CREATE VIEW \`view_registry_officer\` AS 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.id as profileId,
|
||||
p.citizenId,
|
||||
p.rank,
|
||||
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.dateRetire,
|
||||
p.dateRetireLaw,
|
||||
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`);
|
||||
await queryRunner.query(`INSERT INTO \`bma_ehr_organization_demo\`.\`typeorm_metadata\`(\`database\`, \`schema\`, \`table\`, \`type\`, \`name\`, \`value\`) VALUES (DEFAULT, ?, DEFAULT, ?, ?, ?)`, ["bma_ehr_organization_demo","VIEW","view_registry_officer","WITH Position AS (\n SELECT \n posExecutive.posExecutiveName,\n pn.posMasterId,\n ROW_NUMBER() OVER (PARTITION BY pn.posMasterId) AS pn_number\n FROM position pn\n LEFT JOIN posExecutive ON pn.posExecutiveId = posExecutive.id\n WHERE pn.positionIsSelected IS TRUE\n ),\n PosMaster AS (\n SELECT \n pm.current_holderId,\n pm.posMasterNo,\n pm.orgRootId,\n pm.orgChild1Id,\n pm.orgChild2Id,\n pm.orgChild3Id,\n pm.orgChild4Id,\n orgRoot.orgRootName,\n orgChild1.orgChild1Name,\n orgChild2.orgChild2Name,\n orgChild3.orgChild3Name,\n orgChild4.orgChild4Name,\n pn.posExecutiveName,\n CASE \n WHEN pm.orgChild1Id IS NULL THEN CONCAT(orgRoot.orgRootShortName, pm.posMasterNo)\n WHEN pm.orgChild2Id IS NULL THEN CONCAT(orgChild1.orgChild1ShortName, pm.posMasterNo)\n WHEN pm.orgChild3Id IS NULL THEN CONCAT(orgChild2.orgChild2ShortName, pm.posMasterNo)\n WHEN pm.orgChild4Id IS NULL THEN CONCAT(orgChild3.orgChild3ShortName, pm.posMasterNo)\n ELSE CONCAT(orgChild4.orgChild4ShortName, pm.posMasterNo)\n END AS searchShortName,\n ROW_NUMBER() OVER (PARTITION BY pm.current_holderId ORDER BY pm.posMasterNo DESC) AS pm_number\n FROM posMaster pm\n LEFT JOIN orgRevision ON orgRevision.id = pm.orgRevisionId\n LEFT JOIN orgRoot ON orgRoot.id = pm.orgRootId\n LEFT JOIN orgChild1 ON orgChild1.id = pm.orgChild1Id\n LEFT JOIN orgChild2 ON orgChild2.id = pm.orgChild2Id\n LEFT JOIN orgChild3 ON orgChild3.id = pm.orgChild3Id\n LEFT JOIN orgChild4 ON orgChild4.id = pm.orgChild4Id\n LEFT JOIN Position pn ON pm.id = pn.posMasterId AND pn.pn_number = 1\n WHERE \n orgRevision.orgRevisionIsCurrent IS TRUE \n AND orgRevision.orgRevisionIsDraft IS FALSE\n ),\n Education AS (\n SELECT \n ed.degree,\n ed.profileId,\n ed.level,\n ROW_NUMBER() OVER (PARTITION BY ed.profileId ORDER BY ed.level DESC) AS ed_number\n FROM profileEducation ed\n WHERE ed.isUse IS TRUE\n ORDER BY ed.level ASC\n )\n SELECT \n p.id as profileId,\n p.citizenId,\n p.rank,\n p.prefix,\n p.firstName,\n p.lastName,\n p.isProbation,\n p.isLeave,\n p.isRetirement,\n p.leaveType,\n pm.posMasterNo,\n pm.orgRootId,\n pm.orgChild1Id,\n pm.orgChild2Id,\n pm.orgChild3Id,\n pm.orgChild4Id,\n pm.orgRootName,\n pm.orgChild1Name,\n pm.orgChild2Name,\n pm.orgChild3Name,\n pm.orgChild4Name,\n CASE \n WHEN pm.orgChild1Id IS NULL THEN pm.orgRootName\n WHEN pm.orgChild2Id IS NULL THEN CONCAT(pm.orgChild1Name, \" \", pm.orgRootName)\n WHEN pm.orgChild3Id IS NULL THEN CONCAT(pm.orgChild2Name, \" \", pm.orgChild1Name, \" \", pm.orgRootName)\n WHEN pm.orgChild4Id IS NULL THEN CONCAT(pm.orgChild3Name, \" \", pm.orgChild2Name, \" \", pm.orgChild1Name, \" \", pm.orgRootName)\n ELSE CONCAT(pm.orgChild4Name, \" \", pm.orgChild3Name, \" \", pm.orgChild2Name, \" \", pm.orgChild1Name, \" \", pm.orgRootName)\n END AS org,\n pm.searchShortName,\n pm.posExecutiveName,\n p.position,\n posType.posTypeName,\n posLevel.posLevelName,\n p.gender,\n p.relationship,\n p.dateAppoint,\n p.dateRetire,\n p.dateRetireLaw,\n p.birthdate,\n ed.degree,\n TIMESTAMPDIFF(YEAR, p.birthdate, CURDATE()) AS age\n FROM profile p\n LEFT JOIN posLevel ON p.posLevelId = posLevel.id\n LEFT JOIN posType ON p.posTypeId = posType.id\n LEFT JOIN PosMaster pm ON p.id = pm.current_holderId AND pm.pm_number = 1\n LEFT JOIN Education ed ON p.id = ed.profileId AND ed.ed_number = 1"]);
|
||||
await queryRunner.query(`CREATE VIEW \`view_registry_employee\` AS WITH Position AS (
|
||||
SELECT
|
||||
pn.posMasterId,
|
||||
ROW_NUMBER() OVER (PARTITION BY pn.posMasterId) AS pn_number
|
||||
FROM employeePosition pn
|
||||
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,
|
||||
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 employeePosMaster 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.profileEmployeeId,
|
||||
ed.level,
|
||||
ROW_NUMBER() OVER (PARTITION BY ed.profileEmployeeId ORDER BY ed.level DESC) AS ed_number
|
||||
FROM profileEducation ed
|
||||
WHERE ed.isUse IS TRUE
|
||||
ORDER BY ed.level ASC
|
||||
)
|
||||
SELECT
|
||||
p.id as profileEmployeeId,
|
||||
p.citizenId,
|
||||
p.rank,
|
||||
p.prefix,
|
||||
p.firstName,
|
||||
p.lastName,
|
||||
p.isProbation,
|
||||
p.isLeave,
|
||||
p.isRetirement,
|
||||
p.leaveType,
|
||||
p.employeeClass,
|
||||
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,
|
||||
p.position,
|
||||
posType.posTypeName,
|
||||
CONCAT(posType.posTypeShortName, ' ', posLevel.posLevelName) AS "posLevelName",
|
||||
p.gender,
|
||||
p.relationship,
|
||||
p.dateAppoint,
|
||||
p.dateRetire,
|
||||
p.dateRetireLaw,
|
||||
p.birthdate,
|
||||
ed.degree,
|
||||
TIMESTAMPDIFF(YEAR, p.birthdate, CURDATE()) AS age
|
||||
FROM profileEmployee p
|
||||
LEFT JOIN employeePosLevel posLevel ON p.posLevelId = posLevel.id
|
||||
LEFT JOIN employeePosType 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.profileEmployeeId AND ed.ed_number = 1`);
|
||||
await queryRunner.query(`INSERT INTO \`bma_ehr_organization_demo\`.\`typeorm_metadata\`(\`database\`, \`schema\`, \`table\`, \`type\`, \`name\`, \`value\`) VALUES (DEFAULT, ?, DEFAULT, ?, ?, ?)`, ["bma_ehr_organization_demo","VIEW","view_registry_employee","WITH Position AS (\n SELECT \n pn.posMasterId,\n ROW_NUMBER() OVER (PARTITION BY pn.posMasterId) AS pn_number\n FROM employeePosition pn\n WHERE pn.positionIsSelected IS TRUE\n ),\n PosMaster AS (\n SELECT \n pm.current_holderId,\n pm.posMasterNo,\n pm.orgRootId,\n pm.orgChild1Id,\n pm.orgChild2Id,\n pm.orgChild3Id,\n pm.orgChild4Id,\n orgRoot.orgRootName,\n orgChild1.orgChild1Name,\n orgChild2.orgChild2Name,\n orgChild3.orgChild3Name,\n orgChild4.orgChild4Name,\n CASE \n WHEN pm.orgChild1Id IS NULL THEN CONCAT(orgRoot.orgRootShortName, pm.posMasterNo)\n WHEN pm.orgChild2Id IS NULL THEN CONCAT(orgChild1.orgChild1ShortName, pm.posMasterNo)\n WHEN pm.orgChild3Id IS NULL THEN CONCAT(orgChild2.orgChild2ShortName, pm.posMasterNo)\n WHEN pm.orgChild4Id IS NULL THEN CONCAT(orgChild3.orgChild3ShortName, pm.posMasterNo)\n ELSE CONCAT(orgChild4.orgChild4ShortName, pm.posMasterNo)\n END AS searchShortName,\n ROW_NUMBER() OVER (PARTITION BY pm.current_holderId ORDER BY pm.posMasterNo DESC) AS pm_number\n FROM employeePosMaster pm\n LEFT JOIN orgRevision ON orgRevision.id = pm.orgRevisionId\n LEFT JOIN orgRoot ON orgRoot.id = pm.orgRootId\n LEFT JOIN orgChild1 ON orgChild1.id = pm.orgChild1Id\n LEFT JOIN orgChild2 ON orgChild2.id = pm.orgChild2Id\n LEFT JOIN orgChild3 ON orgChild3.id = pm.orgChild3Id\n LEFT JOIN orgChild4 ON orgChild4.id = pm.orgChild4Id\n LEFT JOIN Position pn ON pm.id = pn.posMasterId AND pn.pn_number = 1\n WHERE orgRevision.orgRevisionIsCurrent IS TRUE \n AND orgRevision.orgRevisionIsDraft IS FALSE\n ),\n Education AS (\n SELECT \n ed.degree,\n ed.profileEmployeeId,\n ed.level,\n ROW_NUMBER() OVER (PARTITION BY ed.profileEmployeeId ORDER BY ed.level DESC) AS ed_number\n FROM profileEducation ed\n WHERE ed.isUse IS TRUE\n ORDER BY ed.level ASC\n )\n SELECT \n p.id as profileEmployeeId,\n p.citizenId,\n p.rank,\n p.prefix,\n p.firstName,\n p.lastName,\n p.isProbation,\n p.isLeave,\n p.isRetirement,\n p.leaveType,\n p.employeeClass,\n pm.posMasterNo,\n pm.orgRootId,\n pm.orgChild1Id,\n pm.orgChild2Id,\n pm.orgChild3Id,\n pm.orgChild4Id,\n pm.orgRootName,\n pm.orgChild1Name,\n pm.orgChild2Name,\n pm.orgChild3Name,\n pm.orgChild4Name,\n CASE \n WHEN pm.orgChild1Id IS NULL THEN pm.orgRootName\n WHEN pm.orgChild2Id IS NULL THEN CONCAT(pm.orgChild1Name, \" \", pm.orgRootName)\n WHEN pm.orgChild3Id IS NULL THEN CONCAT(pm.orgChild2Name, \" \", pm.orgChild1Name, \" \", pm.orgRootName)\n WHEN pm.orgChild4Id IS NULL THEN CONCAT(pm.orgChild3Name, \" \", pm.orgChild2Name, \" \", pm.orgChild1Name, \" \", pm.orgRootName)\n ELSE CONCAT(pm.orgChild4Name, \" \", pm.orgChild3Name, \" \", pm.orgChild2Name, \" \", pm.orgChild1Name, \" \", pm.orgRootName)\n END AS org,\n pm.searchShortName,\n p.position,\n posType.posTypeName,\n CONCAT(posType.posTypeShortName, ' ', posLevel.posLevelName) AS \"posLevelName\",\n p.gender,\n p.relationship,\n p.dateAppoint,\n p.dateRetire,\n p.dateRetireLaw,\n p.birthdate,\n ed.degree,\n TIMESTAMPDIFF(YEAR, p.birthdate, CURDATE()) AS age\n FROM profileEmployee p\n LEFT JOIN employeePosLevel posLevel ON p.posLevelId = posLevel.id\n LEFT JOIN employeePosType posType ON p.posTypeId = posType.id\n LEFT JOIN PosMaster pm ON p.id = pm.current_holderId AND pm.pm_number = 1\n LEFT JOIN Education ed ON p.id = ed.profileEmployeeId AND ed.ed_number = 1"]);
|
||||
}
|
||||
|
||||
}
|
||||
20
src/migration/1740392430192-updateProfileSalary.ts
Normal file
20
src/migration/1740392430192-updateProfileSalary.ts
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class UpdateProfileSalary1740392430192 implements MigrationInterface {
|
||||
name = 'UpdateProfileSalary1740392430192'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE \`profileSalaryHistory\` DROP COLUMN \`commandNo\``);
|
||||
await queryRunner.query(`ALTER TABLE \`profileSalaryHistory\` ADD \`commandNo\` varchar(255) NULL COMMENT 'เลขที่คำสั่ง'`);
|
||||
await queryRunner.query(`ALTER TABLE \`profileSalary\` DROP COLUMN \`commandNo\``);
|
||||
await queryRunner.query(`ALTER TABLE \`profileSalary\` ADD \`commandNo\` varchar(255) NULL COMMENT 'เลขที่คำสั่ง'`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE \`profileSalary\` DROP COLUMN \`commandNo\``);
|
||||
await queryRunner.query(`ALTER TABLE \`profileSalary\` ADD \`commandNo\` int NULL COMMENT 'เลขที่คำสั่ง'`);
|
||||
await queryRunner.query(`ALTER TABLE \`profileSalaryHistory\` DROP COLUMN \`commandNo\``);
|
||||
await queryRunner.query(`ALTER TABLE \`profileSalaryHistory\` ADD \`commandNo\` int NULL COMMENT 'เลขที่คำสั่ง'`);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -42,7 +42,7 @@ export async function init() {
|
|||
|
||||
console.log("[AMQ] Listening for message...");
|
||||
createConsumer(queue, channel, handler), //----> (3) Process Consumer
|
||||
createConsumer(queue_org, channel, handler_org);
|
||||
createConsumer(queue_org, channel, handler_org);
|
||||
// createConsumer(queue2, channel, handler2);
|
||||
}
|
||||
|
||||
|
|
@ -173,3 +173,4 @@ async function handler_org(msg: amqp.ConsumeMessage): Promise<boolean> {
|
|||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue