diff --git a/src/controllers/DevelopmentEmployeeHistoryController.ts b/src/controllers/DevelopmentEmployeeHistoryController.ts index 65dadc1..2d35b66 100644 --- a/src/controllers/DevelopmentEmployeeHistoryController.ts +++ b/src/controllers/DevelopmentEmployeeHistoryController.ts @@ -360,10 +360,18 @@ export class DevelopmentEmployeeHistoryController extends Controller { relations: [ "development", "development.developmentOthers", + "development.developmentOthers.province", "employeePosLevel", "employeePosType", ], where: { id: id, type: type }, + order: { + development:{ + developmentOthers: { + createdAt: "ASC" + } + } + } }); if (!getDevelopment) { throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลประวัติการฝึกอบรม/ดูงานนี้"); @@ -408,6 +416,7 @@ export class DevelopmentEmployeeHistoryController extends Controller { ? getDevelopment.development.developmentOthers.map((dev) => ({ topicAcademic: dev.topicAcademic, addressAcademic: dev.addressAcademic, + Province: dev.province.name })) : [], }; diff --git a/src/controllers/DevelopmentHistoryController.ts b/src/controllers/DevelopmentHistoryController.ts index 368858f..c8589df 100644 --- a/src/controllers/DevelopmentHistoryController.ts +++ b/src/controllers/DevelopmentHistoryController.ts @@ -27,6 +27,7 @@ import { PosLevel } from "../entities/PosLevel"; import { RequestWithUser } from "../middlewares/user"; import { setLogDataDiff } from "../interfaces/utils"; import permission from "../interfaces/permission"; +import { Province } from "../entities/Province"; @Route("api/v1/development/history/officer") @Tags("DevelopmentOfficerHistory") @@ -321,9 +322,10 @@ export class DevelopmentOfficerHistoryController extends Controller { const formattedData = development.map((item) => ({ id: item.id, citizenId: item.citizenId, - fullName: item.prefix == null && item.firstName == null && item.lastName == null - ? "" - : `${item?.prefix}${item?.firstName} ${item?.lastName}`, + fullName: + item.prefix == null && item.firstName == null && item.lastName == null + ? "" + : `${item?.prefix}${item?.firstName} ${item?.lastName}`, position: item.position, year: item.development.year, root: item.development.root, //test @@ -350,8 +352,21 @@ export class DevelopmentOfficerHistoryController extends Controller { await new permission().PermissionGet(request, "SYS_DEV_HISTORY_OFFICER"); const type = "OFFICER"; const getDevelopment = await this.developmentHistoryRepository.findOne({ - relations: ["development", "development.developmentOthers","posLevel", "posType"], + relations: [ + "development", + "development.developmentOthers", + "development.developmentOthers.province", + "posLevel", + "posType", + ], where: { id: id, type: type }, + order: { + development: { + developmentOthers: { + createdAt: "ASC", + }, + }, + }, }); if (!getDevelopment) { throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลประวัติการฝึกอบรม/ดูงานนี้"); @@ -389,12 +404,13 @@ export class DevelopmentOfficerHistoryController extends Controller { getDevelopment.development != null ? getDevelopment.development.dateStudyStart : null, dateStudyEnd: getDevelopment.development != null ? getDevelopment.development.dateStudyEnd : null, - academic: getDevelopment.development?.developmentOthers - ? getDevelopment.development.developmentOthers.map(dev => ({ + academic: getDevelopment.development?.developmentOthers + ? getDevelopment.development.developmentOthers.map((dev) => ({ topicAcademic: dev.topicAcademic, - addressAcademic: dev.addressAcademic - })) - : [] + addressAcademic: dev.addressAcademic, + Province: dev.province.name, + })) + : [], }; return new HttpSuccess(formattedData); diff --git a/src/entities/DevelopmentOther.ts b/src/entities/DevelopmentOther.ts index 0e627f0..7cf0da1 100644 --- a/src/entities/DevelopmentOther.ts +++ b/src/entities/DevelopmentOther.ts @@ -38,7 +38,7 @@ export class DevelopmentOther extends EntityBase { development: Development; @ManyToOne(() => Province, (province: Province) => province.developmentOthers) - @JoinColumn({ name: "developmentId" }) + @JoinColumn({ name: "provinceActualId" }) province: Province; } diff --git a/src/migration/1734583427091-update_devorder_add_relation_province.ts b/src/migration/1734583427091-update_devorder_add_relation_province.ts deleted file mode 100644 index 9084218..0000000 --- a/src/migration/1734583427091-update_devorder_add_relation_province.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class UpdateDevorderAddRelationProvince1734583427091 implements MigrationInterface { - name = 'UpdateDevorderAddRelationProvince1734583427091' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE \`developmentOther\` ADD CONSTRAINT \`FK_d5dfdb7ca0d11c0cdf3b3a55e6f\` FOREIGN KEY (\`developmentId\`) REFERENCES \`province\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE \`developmentOther\` DROP FOREIGN KEY \`FK_d5dfdb7ca0d11c0cdf3b3a55e6f\``); - } - -} diff --git a/src/migration/1734586571465-update_development_add_relation_province.ts b/src/migration/1734586571465-update_development_add_relation_province.ts new file mode 100644 index 0000000..6b37a7f --- /dev/null +++ b/src/migration/1734586571465-update_development_add_relation_province.ts @@ -0,0 +1,14 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class UpdateDevelopmentAddRelationProvince1734586571465 implements MigrationInterface { + name = 'UpdateDevelopmentAddRelationProvince1734586571465' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE \`developmentOther\` ADD CONSTRAINT \`FK_47bbbecaea9b7b31d2536054656\` FOREIGN KEY (\`provinceActualId\`) REFERENCES \`province\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE \`developmentOther\` DROP FOREIGN KEY \`FK_47bbbecaea9b7b31d2536054656\``); + } + +}