From d51357e715d4ddb7f044bd84cff6f9cc227c0ffa Mon Sep 17 00:00:00 2001 From: Moss <> Date: Mon, 16 Jun 2025 21:34:15 +0700 Subject: [PATCH] migrate dna --- src/controllers/DevelopmentController.ts | 251 ++++++++++++------ .../DevelopmentScholarshipController.ts | 31 ++- src/entities/DevelopmentScholarship.ts | 18 ++ .../1743061489009-update_strategyadddorder.ts | 22 -- ...able_actualGoal_and_plannedGoalPosition.ts | 36 --- ...ddress_and_developScholaship_add_fields.ts | 24 -- ...pdate_table_developScholaship_edit_type.ts | 16 -- .../1750083465733-update30062025604.ts | 14 + .../1750083913468-update30062025605.ts | 14 + 9 files changed, 243 insertions(+), 183 deletions(-) delete mode 100644 src/migration/1743061489009-update_strategyadddorder.ts delete mode 100644 src/migration/1744342850196-update_table_actualGoal_and_plannedGoalPosition.ts delete mode 100644 src/migration/1745290442590-update_table_developAddress_and_developScholaship_add_fields.ts delete mode 100644 src/migration/1745313881448-update_table_developScholaship_edit_type.ts create mode 100644 src/migration/1750083465733-update30062025604.ts create mode 100644 src/migration/1750083913468-update30062025605.ts diff --git a/src/controllers/DevelopmentController.ts b/src/controllers/DevelopmentController.ts index db37d6c..77986d2 100644 --- a/src/controllers/DevelopmentController.ts +++ b/src/controllers/DevelopmentController.ts @@ -370,20 +370,22 @@ export class DevelopmentController extends Controller { await Promise.all( requestBody.positions.map(async (x) => { const _data = Object.assign(new PlannedGoalPosition(), x); - let checkPosType:any = null - let posTypeShortName:any = null + let checkPosType: any = null; + let posTypeShortName: any = null; if (x.posTypePlanned) { - if(requestBody.groupTarget == "PERSONNEL" && - (requestBody.groupTargetSub == "EMPLOYEE" || requestBody.groupTargetSub == "EMPLOYEETEMP")) { + if ( + requestBody.groupTarget == "PERSONNEL" && + (requestBody.groupTargetSub == "EMPLOYEE" || + requestBody.groupTargetSub == "EMPLOYEETEMP") + ) { checkPosType = await this.empPosTypeRepository.findOne({ where: { posTypeName: x.posTypePlanned }, }); if (!checkPosType) { throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลกลุ่มงาน"); } - posTypeShortName = checkPosType.posTypeShortName - } - else { + posTypeShortName = checkPosType.posTypeShortName; + } else { checkPosType = await this.posTypeRepository.findOne({ where: { posTypeName: x.posTypePlanned }, }); @@ -393,24 +395,28 @@ export class DevelopmentController extends Controller { } } if (x.posLevelPlanned) { - let checkPosLevel:any - if (requestBody.groupTarget == "PERSONNEL" && - (requestBody.groupTargetSub == "EMPLOYEE" || requestBody.groupTargetSub == "EMPLOYEETEMP")) { + let checkPosLevel: any; + if ( + requestBody.groupTarget == "PERSONNEL" && + (requestBody.groupTargetSub == "EMPLOYEE" || + requestBody.groupTargetSub == "EMPLOYEETEMP") + ) { checkPosLevel = await this.empPosLevelRepository.find({ - where: { - posTypeId: checkPosType.id + where: { + posTypeId: checkPosType.id, }, }); - const mapShortName = checkPosLevel.flatMap((x:any) => `${posTypeShortName} ${x.posLevelName}`); + const mapShortName = checkPosLevel.flatMap( + (x: any) => `${posTypeShortName} ${x.posLevelName}`, + ); if (checkPosLevel.length == 0 /*|| !mapShortName.includes(x.posLevelPlanned)*/) { throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลระดับชั้นงาน"); } - } - else { + } else { checkPosLevel = await this.posLevelRepository.findOne({ - where: { + where: { posLevelName: x.posLevelPlanned, - posTypeId: checkPosType.id + posTypeId: checkPosType.id, }, }); if (!checkPosLevel) { @@ -502,20 +508,21 @@ export class DevelopmentController extends Controller { if (!development) { throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลโครงการ/หลักสูตรการฝึกอบรมนี้"); } - let checkPosType:any = null - let posTypeShortName:any = null + let checkPosType: any = null; + let posTypeShortName: any = null; if (requestBody.posTypeActual) { - if(requestBody.groupTarget == "PERSONNEL" && - (requestBody.groupTargetSub == "EMPLOYEE" || requestBody.groupTargetSub == "EMPLOYEETEMP")) { + if ( + requestBody.groupTarget == "PERSONNEL" && + (requestBody.groupTargetSub == "EMPLOYEE" || requestBody.groupTargetSub == "EMPLOYEETEMP") + ) { checkPosType = await this.empPosTypeRepository.findOne({ where: { posTypeName: requestBody.posTypeActual }, }); if (!checkPosType) { throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลกลุ่มงาน"); } - posTypeShortName = checkPosType.posTypeShortName - } - else { + posTypeShortName = checkPosType.posTypeShortName; + } else { checkPosType = await this.posTypeRepository.findOne({ where: { posTypeName: requestBody.posTypeActual }, }); @@ -525,24 +532,27 @@ export class DevelopmentController extends Controller { } } if (requestBody.posLevelActual) { - let checkPosLevel:any - if (requestBody.groupTarget == "PERSONNEL" && - (requestBody.groupTargetSub == "EMPLOYEE" || requestBody.groupTargetSub == "EMPLOYEETEMP")) { + let checkPosLevel: any; + if ( + requestBody.groupTarget == "PERSONNEL" && + (requestBody.groupTargetSub == "EMPLOYEE" || requestBody.groupTargetSub == "EMPLOYEETEMP") + ) { checkPosLevel = await this.empPosLevelRepository.find({ - where: { - posTypeId: checkPosType.id + where: { + posTypeId: checkPosType.id, }, }); - const mapShortName = checkPosLevel.flatMap((x:any) => `${posTypeShortName} ${x.posLevelName}`); + const mapShortName = checkPosLevel.flatMap( + (x: any) => `${posTypeShortName} ${x.posLevelName}`, + ); if (checkPosLevel.length == 0 /*|| !mapShortName.includes(x.posLevelPlanned)*/) { throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลระดับชั้นงาน"); } - } - else { + } else { checkPosLevel = await this.posLevelRepository.findOne({ - where: { + where: { posLevelName: requestBody.posLevelActual, - posTypeId: checkPosType.id + posTypeId: checkPosType.id, }, }); if (!checkPosLevel) { @@ -665,20 +675,22 @@ export class DevelopmentController extends Controller { await Promise.all( requestBody.positions.map(async (x) => { const _data = Object.assign(new PlannedGoalPosition(), x); - let checkPosType:any = null - let posTypeShortName:any = null + let checkPosType: any = null; + let posTypeShortName: any = null; if (x.posTypePlanned) { - if(requestBody.groupTarget == "PERSONNEL" && - (requestBody.groupTargetSub == "EMPLOYEE" || requestBody.groupTargetSub == "EMPLOYEETEMP")) { + if ( + requestBody.groupTarget == "PERSONNEL" && + (requestBody.groupTargetSub == "EMPLOYEE" || + requestBody.groupTargetSub == "EMPLOYEETEMP") + ) { checkPosType = await this.empPosTypeRepository.findOne({ where: { posTypeName: x.posTypePlanned }, }); if (!checkPosType) { throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลกลุ่มงาน"); } - posTypeShortName = checkPosType.posTypeShortName - } - else { + posTypeShortName = checkPosType.posTypeShortName; + } else { checkPosType = await this.posTypeRepository.findOne({ where: { posTypeName: x.posTypePlanned }, }); @@ -688,24 +700,28 @@ export class DevelopmentController extends Controller { } } if (x.posLevelPlanned) { - let checkPosLevel:any - if (requestBody.groupTarget == "PERSONNEL" && - (requestBody.groupTargetSub == "EMPLOYEE" || requestBody.groupTargetSub == "EMPLOYEETEMP")) { + let checkPosLevel: any; + if ( + requestBody.groupTarget == "PERSONNEL" && + (requestBody.groupTargetSub == "EMPLOYEE" || + requestBody.groupTargetSub == "EMPLOYEETEMP") + ) { checkPosLevel = await this.empPosLevelRepository.find({ - where: { - posTypeId: checkPosType.id + where: { + posTypeId: checkPosType.id, }, }); - const mapShortName = checkPosLevel.flatMap((x:any) => `${posTypeShortName} ${x.posLevelName}`); + const mapShortName = checkPosLevel.flatMap( + (x: any) => `${posTypeShortName} ${x.posLevelName}`, + ); if (checkPosLevel.length == 0 /*|| !mapShortName.includes(x.posLevelPlanned)*/) { throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลระดับชั้นงาน"); } - } - else { + } else { checkPosLevel = await this.posLevelRepository.findOne({ - where: { + where: { posLevelName: x.posLevelPlanned, - posTypeId: checkPosType.id + posTypeId: checkPosType.id, }, }); if (!checkPosLevel) { @@ -801,20 +817,21 @@ export class DevelopmentController extends Controller { if (!development) { throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลโครงการ/หลักสูตรการฝึกอบรมนี้"); } - let checkPosType:any = null - let posTypeShortName:any = null + let checkPosType: any = null; + let posTypeShortName: any = null; if (requestBody.posTypeActual) { - if(requestBody.groupTarget == "PERSONNEL" && - (requestBody.groupTargetSub == "EMPLOYEE" || requestBody.groupTargetSub == "EMPLOYEETEMP")) { + if ( + requestBody.groupTarget == "PERSONNEL" && + (requestBody.groupTargetSub == "EMPLOYEE" || requestBody.groupTargetSub == "EMPLOYEETEMP") + ) { checkPosType = await this.empPosTypeRepository.findOne({ where: { posTypeName: requestBody.posTypeActual }, }); if (!checkPosType) { throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลกลุ่มงาน"); } - posTypeShortName = checkPosType.posTypeShortName - } - else { + posTypeShortName = checkPosType.posTypeShortName; + } else { checkPosType = await this.posTypeRepository.findOne({ where: { posTypeName: requestBody.posTypeActual }, }); @@ -824,24 +841,27 @@ export class DevelopmentController extends Controller { } } if (requestBody.posLevelActual) { - let checkPosLevel:any - if (requestBody.groupTarget == "PERSONNEL" && - (requestBody.groupTargetSub == "EMPLOYEE" || requestBody.groupTargetSub == "EMPLOYEETEMP")) { + let checkPosLevel: any; + if ( + requestBody.groupTarget == "PERSONNEL" && + (requestBody.groupTargetSub == "EMPLOYEE" || requestBody.groupTargetSub == "EMPLOYEETEMP") + ) { checkPosLevel = await this.empPosLevelRepository.find({ - where: { - posTypeId: checkPosType.id + where: { + posTypeId: checkPosType.id, }, }); - const mapShortName = checkPosLevel.flatMap((x:any) => `${posTypeShortName} ${x.posLevelName}`); + const mapShortName = checkPosLevel.flatMap( + (x: any) => `${posTypeShortName} ${x.posLevelName}`, + ); if (checkPosLevel.length == 0 /*|| !mapShortName.includes(x.posLevelPlanned)*/) { throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลระดับชั้นงาน"); } - } - else { + } else { checkPosLevel = await this.posLevelRepository.findOne({ - where: { + where: { posLevelName: requestBody.posLevelActual, - posTypeId: checkPosType.id + posTypeId: checkPosType.id, }, }); if (!checkPosLevel) { @@ -2046,7 +2066,13 @@ export class DevelopmentController extends Controller { @Query("node") node?: number | null, @Query("keyword") keyword?: string, ) { - // await new permission().PermissionOrgList(request, "SYS_DEV_SCHOLARSHIP"); + let _data = await new permission().PermissionOrgList(request, "SYS_DEV_PROJECT"); + await new CallAPI() + .PostData(request, "/org/finddna", _data) + .then((x) => { + _data = x; + }) + .catch((x) => {}); const [development, total] = await AppDataSource.getRepository(Development) .createQueryBuilder("development") .andWhere(year > 0 ? "development.year LIKE :year" : "1=1", { @@ -2086,6 +2112,56 @@ export class DevelopmentController extends Controller { keyword: `%${keyword}%`, }, ) + .andWhere( + _data.root != undefined && _data.root != null + ? _data.root[0] != null + ? `development.rootDnaId IN (:...root)` + : `development.rootDnaId is null` + : "1=1", + { + root: _data.root, + }, + ) + .andWhere( + _data.child1 != undefined && _data.child1 != null + ? _data.child1[0] != null + ? `development.child1DnaId IN (:...child1)` + : `development.child1DnaId is null` + : "1=1", + { + child1: _data.child1, + }, + ) + .andWhere( + _data.child2 != undefined && _data.child2 != null + ? _data.child2[0] != null + ? `development.child2DnaId IN (:...child2)` + : `development.child2DnaId is null` + : "1=1", + { + child2: _data.child2, + }, + ) + .andWhere( + _data.child3 != undefined && _data.child3 != null + ? _data.child3[0] != null + ? `development.child3DnaId IN (:...child3)` + : `development.child3DnaId is null` + : "1=1", + { + child3: _data.child3, + }, + ) + .andWhere( + _data.child4 != undefined && _data.child4 != null + ? _data.child4[0] != null + ? `development.child4DnaId IN (:...child4)` + : `development.child4DnaId is null` + : "1=1", + { + child4: _data.child4, + }, + ) .select([ "development.id", "development.projectName", @@ -2385,7 +2461,12 @@ export class DevelopmentController extends Controller { dateStart: getDevelopment.dateStart, dateEnd: getDevelopment.dateEnd, totalDate: getDevelopment.totalDate, - developmentAddresss: getDevelopment.developmentAddresss == null ? null : getDevelopment.developmentAddresss.sort((a, b) => new Date(a.createdAt).getTime() - new Date(b.createdAt).getTime()), + developmentAddresss: + getDevelopment.developmentAddresss == null + ? null + : getDevelopment.developmentAddresss.sort( + (a, b) => new Date(a.createdAt).getTime() - new Date(b.createdAt).getTime(), + ), }; return new HttpSuccess(_getDevelopment); } @@ -2597,7 +2678,7 @@ export class DevelopmentController extends Controller { startDate: x.dateStart, endDate: x.dateEnd, isDate: true, - developmentId: id + developmentId: id, }) .then((x) => { _data.isDone = true; @@ -2620,7 +2701,7 @@ export class DevelopmentController extends Controller { startDate: x.dateStart, endDate: x.dateEnd, isDate: true, - developmentId: id + developmentId: id, }) .then((x) => { _data.isDone = true; @@ -2658,7 +2739,7 @@ export class DevelopmentController extends Controller { relations: ["development", "development.developmentProjectTechniqueActuals"], }); - let isDevelopment70: boolean = false + let isDevelopment70: boolean = false; const dev70Lists = [ "on_the_job_training", "job_project_assignment", @@ -2671,18 +2752,18 @@ export class DevelopmentController extends Controller { "benchmarking", "problem_solving", "team_working", - "other1" + "other1", ]; - let isDevelopment20: boolean = false + let isDevelopment20: boolean = false; const dev20Lists = [ "coaching", "mentoring", "team_meeting", "consulting", "feedback", - "other2" + "other2", ]; - let isDevelopment10: boolean = false + let isDevelopment10: boolean = false; const dev10Lists = [ "self_learning", "classroom_training", @@ -2691,17 +2772,21 @@ export class DevelopmentController extends Controller { "e_training", "meeting", "seminar", - "other3" + "other3", ]; await Promise.all( getDevelopment.map(async (x) => { const _data = Object.assign(new DevelopmentHistory(), x); - const techniqueActuals = x.development?.developmentProjectTechniqueActuals.flatMap(x => x.name) || []; - isDevelopment70 = techniqueActuals.length > 0 && dev70Lists.some(item => techniqueActuals.includes(item)); - isDevelopment20 = techniqueActuals.length > 0 && dev20Lists.some(item => techniqueActuals.includes(item)); - isDevelopment10 = techniqueActuals.length > 0 && dev10Lists.some(item => techniqueActuals.includes(item)); - + const techniqueActuals = + x.development?.developmentProjectTechniqueActuals.flatMap((x) => x.name) || []; + isDevelopment70 = + techniqueActuals.length > 0 && dev70Lists.some((item) => techniqueActuals.includes(item)); + isDevelopment20 = + techniqueActuals.length > 0 && dev20Lists.some((item) => techniqueActuals.includes(item)); + isDevelopment10 = + techniqueActuals.length > 0 && dev10Lists.some((item) => techniqueActuals.includes(item)); + if (x.type == "OFFICER") { await new CallAPI() .PostData(request, "/org/profile/development", { diff --git a/src/controllers/DevelopmentScholarshipController.ts b/src/controllers/DevelopmentScholarshipController.ts index 8587ed5..af23f0a 100644 --- a/src/controllers/DevelopmentScholarshipController.ts +++ b/src/controllers/DevelopmentScholarshipController.ts @@ -161,7 +161,13 @@ export class DevelopmentScholarshipController extends Controller { @Query("year") year?: number, @Query("scholarshipType") scholarshipType?: string, ) { - await new permission().PermissionList(request, "SYS_DEV_SCHOLARSHIP"); + let _data = await new permission().PermissionOrgList(request, "SYS_DEV_SCHOLARSHIP"); + await new CallAPI() + .PostData(request, "/org/finddna", _data) + .then((x) => { + _data = x; + }) + .catch((x) => {}); const [development, total] = await AppDataSource.getRepository(DevelopmentScholarship) .createQueryBuilder("developmentScholarship") .leftJoinAndSelect("developmentScholarship.posLevel", "posLevel") @@ -226,6 +232,16 @@ export class DevelopmentScholarshipController extends Controller { ); }), ) + .andWhere( + _data.root != undefined && _data.root != null + ? _data.root[0] != null + ? `developmentScholarship.rootDnaId IN (:...root)` + : `developmentScholarship.rootDnaId is null` + : "1=1", + { + root: _data.root, + }, + ) .orderBy("developmentScholarship.scholarshipYear", "DESC") .addOrderBy("developmentScholarship.createdAt", "DESC") .skip((page - 1) * pageSize) @@ -264,6 +280,7 @@ export class DevelopmentScholarshipController extends Controller { throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลทุนการศึกษา/ฝึกอบรมนี้"); } const formattedData = { + rootDnaId: getDevelopment.rootDnaId ? getDevelopment.rootDnaId : null, rootId: getDevelopment.rootId ? getDevelopment.rootId : null, root: getDevelopment.root ? getDevelopment.root : null, org: getDevelopment.org ? getDevelopment.org : null, @@ -282,6 +299,9 @@ export class DevelopmentScholarshipController extends Controller { : null, posTypeId: getDevelopment.posTypeId ? getDevelopment.posTypeId : null, posTypeName: getDevelopment.posType?.posTypeName ? getDevelopment.posType?.posTypeName : null, + guarantorRootDnaId: getDevelopment.guarantorRootDnaId + ? getDevelopment.guarantorRootDnaId + : null, guarantorRootId: getDevelopment.guarantorRootId ? getDevelopment.guarantorRootId : null, guarantorRoot: getDevelopment.guarantorRoot ? getDevelopment.guarantorRoot : null, guarantorOrg: getDevelopment.guarantorOrg ? getDevelopment.guarantorOrg : null, @@ -426,6 +446,7 @@ export class DevelopmentScholarshipController extends Controller { throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลทุนการศึกษา/ฝึกอบรมนี้"); } const formattedData = { + rootDnaId: getDevelopment.rootDnaId ? getDevelopment.rootDnaId : null, rootId: getDevelopment.rootId ? getDevelopment.rootId : null, root: getDevelopment.root ? getDevelopment.root : null, org: getDevelopment.org ? getDevelopment.org : null, @@ -444,6 +465,9 @@ export class DevelopmentScholarshipController extends Controller { : null, posTypeId: getDevelopment.posTypeId ? getDevelopment.posTypeId : null, posTypeName: getDevelopment.posType?.posTypeName ? getDevelopment.posType?.posTypeName : null, + guarantorRootDnaId: getDevelopment.guarantorRootDnaId + ? getDevelopment.guarantorRootDnaId + : null, guarantorRootId: getDevelopment.guarantorRootId ? getDevelopment.guarantorRootId : null, guarantorRoot: getDevelopment.guarantorRoot ? getDevelopment.guarantorRoot : null, guarantorOrg: getDevelopment.guarantorOrg ? getDevelopment.guarantorOrg : null, @@ -567,7 +591,10 @@ export class DevelopmentScholarshipController extends Controller { * @param {string} id id รายการ */ @Get("admin/detail/{id}") - async GetDevelopemtScholarshipUserDetailAdminById(@Request() request: RequestWithUser, @Path() id: string) { + async GetDevelopemtScholarshipUserDetailAdminById( + @Request() request: RequestWithUser, + @Path() id: string, + ) { let _workflow = await new permission().Workflow(request, id, "SYS_DEV_SCHOLARSHIP"); if (_workflow == false) await new permission().PermissionGet(request, "SYS_DEV_SCHOLARSHIP"); const getDevelopment = await this.developmentScholarshipRepository.findOne({ diff --git a/src/entities/DevelopmentScholarship.ts b/src/entities/DevelopmentScholarship.ts index 976598e..cd1c614 100644 --- a/src/entities/DevelopmentScholarship.ts +++ b/src/entities/DevelopmentScholarship.ts @@ -5,6 +5,13 @@ import { PosType } from "./PosType"; @Entity("developmentScholarship") export class DevelopmentScholarship extends EntityBase { + @Column({ + nullable: true, + comment: "id dna หน่วยงาน", + default: null, + }) + rootDnaId: string; + @Column({ nullable: true, comment: "id หน่วยงาน", @@ -137,6 +144,13 @@ export class DevelopmentScholarship extends EntityBase { @JoinColumn({ name: "posTypeId" }) posType: PosType; + @Column({ + nullable: true, + comment: "id Dna หน่วยงาน", + default: null, + }) + guarantorRootDnaId: string; + @Column({ nullable: true, comment: "id หน่วยงาน", @@ -576,6 +590,7 @@ export class DevelopmentScholarship extends EntityBase { budgetSourceOther: string; } export class CreateDevelopmentScholarship { + rootDnaId?: string | null; rootId: string | null; root: string | null; org: string | null; @@ -591,6 +606,7 @@ export class CreateDevelopmentScholarship { posExecutive: string | null; posLevelId: string | null; posTypeId: string | null; + guarantorRootDnaId: string | null; guarantorRootId: string | null; guarantorRoot: string | null; guarantorOrg: string | null; @@ -642,6 +658,7 @@ export class CreateDevelopmentScholarship { } export class UpdateDevelopmentScholarship { + rootDnaId?: string | null; rootId: string | null; root: string | null; org: string | null; @@ -657,6 +674,7 @@ export class UpdateDevelopmentScholarship { posExecutive: string | null; posLevelId: string | null; posTypeId: string | null; + guarantorRootDnaId?: string | null; guarantorRootId?: string | null; guarantorRoot?: string | null; guarantorOrg?: string | null; diff --git a/src/migration/1743061489009-update_strategyadddorder.ts b/src/migration/1743061489009-update_strategyadddorder.ts deleted file mode 100644 index c6c6e16..0000000 --- a/src/migration/1743061489009-update_strategyadddorder.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class UpdateStrategyadddorder1743061489009 implements MigrationInterface { - name = 'UpdateStrategyadddorder1743061489009' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE \`strategyChild4\` ADD \`order\` int NULL COMMENT 'ลำดับความสำคัญ'`); - await queryRunner.query(`ALTER TABLE \`strategyChild3\` ADD \`order\` int NULL COMMENT 'ลำดับความสำคัญ'`); - await queryRunner.query(`ALTER TABLE \`strategyChild2\` ADD \`order\` int NULL COMMENT 'ลำดับความสำคัญ'`); - await queryRunner.query(`ALTER TABLE \`strategyChild1\` ADD \`order\` int NULL COMMENT 'ลำดับความสำคัญ'`); - await queryRunner.query(`ALTER TABLE \`strategyChild5\` ADD \`order\` int NULL COMMENT 'ลำดับความสำคัญ'`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE \`strategyChild5\` DROP COLUMN \`order\``); - await queryRunner.query(`ALTER TABLE \`strategyChild1\` DROP COLUMN \`order\``); - await queryRunner.query(`ALTER TABLE \`strategyChild2\` DROP COLUMN \`order\``); - await queryRunner.query(`ALTER TABLE \`strategyChild3\` DROP COLUMN \`order\``); - await queryRunner.query(`ALTER TABLE \`strategyChild4\` DROP COLUMN \`order\``); - } - -} diff --git a/src/migration/1744342850196-update_table_actualGoal_and_plannedGoalPosition.ts b/src/migration/1744342850196-update_table_actualGoal_and_plannedGoalPosition.ts deleted file mode 100644 index 2888b6f..0000000 --- a/src/migration/1744342850196-update_table_actualGoal_and_plannedGoalPosition.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class UpdateTableActualGoalAndPlannedGoalPosition1744342850196 implements MigrationInterface { - name = 'UpdateTableActualGoalAndPlannedGoalPosition1744342850196' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE \`actualGoal\` DROP FOREIGN KEY \`FK_a9a864dd06eaa25edba8be8f24c\``); - await queryRunner.query(`ALTER TABLE \`actualGoal\` DROP FOREIGN KEY \`FK_e08e337e5ddeb4942c72393ff58\``); - await queryRunner.query(`ALTER TABLE \`plannedGoalPosition\` DROP FOREIGN KEY \`FK_4eef5d8c3ab92f7af4a762150a4\``); - await queryRunner.query(`ALTER TABLE \`plannedGoalPosition\` DROP FOREIGN KEY \`FK_8e7e0bf6eebd99f58e9b47c6b05\``); - await queryRunner.query(`ALTER TABLE \`actualGoal\` DROP COLUMN \`posLevelActualId\``); - await queryRunner.query(`ALTER TABLE \`actualGoal\` DROP COLUMN \`posTypeActualId\``); - await queryRunner.query(`ALTER TABLE \`plannedGoalPosition\` DROP COLUMN \`posLevelPlannedId\``); - await queryRunner.query(`ALTER TABLE \`plannedGoalPosition\` DROP COLUMN \`posTypePlannedId\``); - await queryRunner.query(`ALTER TABLE \`actualGoal\` ADD \`posTypeActual\` varchar(255) NULL COMMENT 'ประเภทตำแหน่ง & กลุ่มงาน'`); - await queryRunner.query(`ALTER TABLE \`actualGoal\` ADD \`posLevelActual\` varchar(255) NULL COMMENT 'ระดับตำแหน่ง & ระดับชั้นงาน'`); - await queryRunner.query(`ALTER TABLE \`plannedGoalPosition\` ADD \`posTypePlanned\` varchar(255) NULL COMMENT 'ประเภทตำแหน่ง & กลุ่มงาน'`); - await queryRunner.query(`ALTER TABLE \`plannedGoalPosition\` ADD \`posLevelPlanned\` varchar(255) NULL COMMENT 'ระดับตำแหน่ง & ระดับชั้นงาน'`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE \`plannedGoalPosition\` DROP COLUMN \`posLevelPlanned\``); - await queryRunner.query(`ALTER TABLE \`plannedGoalPosition\` DROP COLUMN \`posTypePlanned\``); - await queryRunner.query(`ALTER TABLE \`actualGoal\` DROP COLUMN \`posLevelActual\``); - await queryRunner.query(`ALTER TABLE \`actualGoal\` DROP COLUMN \`posTypeActual\``); - await queryRunner.query(`ALTER TABLE \`plannedGoalPosition\` ADD \`posTypePlannedId\` varchar(255) NULL COMMENT 'ประเภทตำแหน่ง'`); - await queryRunner.query(`ALTER TABLE \`plannedGoalPosition\` ADD \`posLevelPlannedId\` varchar(255) NULL COMMENT 'ระดับตำแหน่ง'`); - await queryRunner.query(`ALTER TABLE \`actualGoal\` ADD \`posTypeActualId\` varchar(255) NULL COMMENT 'ประเภทตำแหน่ง'`); - await queryRunner.query(`ALTER TABLE \`actualGoal\` ADD \`posLevelActualId\` varchar(255) NULL COMMENT 'ระดับตำแหน่ง'`); - await queryRunner.query(`ALTER TABLE \`plannedGoalPosition\` ADD CONSTRAINT \`FK_8e7e0bf6eebd99f58e9b47c6b05\` FOREIGN KEY (\`posLevelPlannedId\`) REFERENCES \`posLevel\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE \`plannedGoalPosition\` ADD CONSTRAINT \`FK_4eef5d8c3ab92f7af4a762150a4\` FOREIGN KEY (\`posTypePlannedId\`) REFERENCES \`posType\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE \`actualGoal\` ADD CONSTRAINT \`FK_e08e337e5ddeb4942c72393ff58\` FOREIGN KEY (\`posTypeActualId\`) REFERENCES \`posType\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`); - await queryRunner.query(`ALTER TABLE \`actualGoal\` ADD CONSTRAINT \`FK_a9a864dd06eaa25edba8be8f24c\` FOREIGN KEY (\`posLevelActualId\`) REFERENCES \`posLevel\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`); - } - -} diff --git a/src/migration/1745290442590-update_table_developAddress_and_developScholaship_add_fields.ts b/src/migration/1745290442590-update_table_developAddress_and_developScholaship_add_fields.ts deleted file mode 100644 index 001ec46..0000000 --- a/src/migration/1745290442590-update_table_developAddress_and_developScholaship_add_fields.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class UpdateTableDevelopAddressAndDevelopScholashipAddFields1745290442590 implements MigrationInterface { - name = 'UpdateTableDevelopAddressAndDevelopScholashipAddFields1745290442590' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE \`developmentScholarship\` ADD \`budgetSourceOther\` int NULL COMMENT 'เงินอื่นๆ'`); - await queryRunner.query(`ALTER TABLE \`developmentAddress\` ADD \`addressType\` varchar(255) NULL COMMENT 'สถานที่ดำเนินการ ในประเทศ(IN_COUNTRY) หรือ ต่างประเทศ(ABROAD)'`); - await queryRunner.query(`ALTER TABLE \`developmentAddress\` ADD \`country\` varchar(255) NULL COMMENT 'ชื่อประเทศ (กรณีเลือกสถานที่ดำเนินการต่างประเทศ)'`); - await queryRunner.query(`ALTER TABLE \`developmentScholarship\` DROP COLUMN \`useOfficialTime\``); - await queryRunner.query(`ALTER TABLE \`developmentScholarship\` ADD \`useOfficialTime\` varchar(255) NOT NULL COMMENT 'ใช้เวลาราชการ' DEFAULT 0`); - await queryRunner.query(`ALTER TABLE \`developmentAddress\` CHANGE \`provinceName\` \`provinceName\` varchar(255) NULL COMMENT 'ชื่อจังหวัด (กรณีเลือกสถานที่ดำเนินการในประเทศ)'`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE \`developmentAddress\` CHANGE \`provinceName\` \`provinceName\` varchar(255) NULL COMMENT 'โครงการ/หลักสูตรการฝึกอบรม'`); - await queryRunner.query(`ALTER TABLE \`developmentScholarship\` DROP COLUMN \`useOfficialTime\``); - await queryRunner.query(`ALTER TABLE \`developmentScholarship\` ADD \`useOfficialTime\` tinyint NOT NULL COMMENT 'ใช้เวลาราชการ' DEFAULT '0'`); - await queryRunner.query(`ALTER TABLE \`developmentAddress\` DROP COLUMN \`country\``); - await queryRunner.query(`ALTER TABLE \`developmentAddress\` DROP COLUMN \`addressType\``); - await queryRunner.query(`ALTER TABLE \`developmentScholarship\` DROP COLUMN \`budgetSourceOther\``); - } - -} diff --git a/src/migration/1745313881448-update_table_developScholaship_edit_type.ts b/src/migration/1745313881448-update_table_developScholaship_edit_type.ts deleted file mode 100644 index c6c393f..0000000 --- a/src/migration/1745313881448-update_table_developScholaship_edit_type.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class UpdateTableDevelopScholashipEditType1745313881448 implements MigrationInterface { - name = 'UpdateTableDevelopScholashipEditType1745313881448' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE \`developmentScholarship\` DROP COLUMN \`budgetSourceOther\``); - await queryRunner.query(`ALTER TABLE \`developmentScholarship\` ADD \`budgetSourceOther\` varchar(255) NULL COMMENT 'เงินอื่นๆ'`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE \`developmentScholarship\` DROP COLUMN \`budgetSourceOther\``); - await queryRunner.query(`ALTER TABLE \`developmentScholarship\` ADD \`budgetSourceOther\` int NULL COMMENT 'เงินอื่นๆ'`); - } - -} diff --git a/src/migration/1750083465733-update30062025604.ts b/src/migration/1750083465733-update30062025604.ts new file mode 100644 index 0000000..8fcdedc --- /dev/null +++ b/src/migration/1750083465733-update30062025604.ts @@ -0,0 +1,14 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class Update300620256041750083465733 implements MigrationInterface { + name = 'Update300620256041750083465733' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE \`developmentScholarship\` ADD \`rootDnaId\` varchar(255) NULL COMMENT 'id dna หน่วยงาน'`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE \`developmentScholarship\` DROP COLUMN \`rootDnaId\``); + } + +} diff --git a/src/migration/1750083913468-update30062025605.ts b/src/migration/1750083913468-update30062025605.ts new file mode 100644 index 0000000..644e8c2 --- /dev/null +++ b/src/migration/1750083913468-update30062025605.ts @@ -0,0 +1,14 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class Update300620256051750083913468 implements MigrationInterface { + name = 'Update300620256051750083913468' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE \`developmentScholarship\` ADD \`guarantorRootDnaId\` varchar(255) NULL COMMENT 'id Dna หน่วยงาน'`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE \`developmentScholarship\` DROP COLUMN \`guarantorRootDnaId\``); + } + +}