diff --git a/src/controllers/OrgChild1Controller.ts b/src/controllers/OrgChild1Controller.ts index 5291d528..75c8c8ed 100644 --- a/src/controllers/OrgChild1Controller.ts +++ b/src/controllers/OrgChild1Controller.ts @@ -67,6 +67,7 @@ export class OrgChild1Controller { orgChild1Fax: orgChild1.orgChild1Fax, orgRevisionId: orgChild1.orgRevisionId, isOfficer: orgChild1.isOfficer, + misId: orgChild1.misId, orgCode: orgChild1.orgRoot.orgRootCode + orgChild1.orgChild1Code, }; return new HttpSuccess(getOrgChild1); diff --git a/src/controllers/OrgChild2Controller.ts b/src/controllers/OrgChild2Controller.ts index a4aba5d6..1445b72a 100644 --- a/src/controllers/OrgChild2Controller.ts +++ b/src/controllers/OrgChild2Controller.ts @@ -79,6 +79,7 @@ export class OrgChild2Controller extends Controller { orgChild2PhoneIn: orgChild2.orgChild2PhoneIn, orgChild2Fax: orgChild2.orgChild2Fax, orgRevisionId: orgChild2.orgRevisionId, + misId: orgChild2.misId, orgCode: orgChild2.orgRoot.orgRootCode + orgChild2.orgChild2Code, }; return new HttpSuccess(getOrgChild2); diff --git a/src/controllers/OrgChild3Controller.ts b/src/controllers/OrgChild3Controller.ts index 6e58e40c..e06c08fa 100644 --- a/src/controllers/OrgChild3Controller.ts +++ b/src/controllers/OrgChild3Controller.ts @@ -63,6 +63,7 @@ export class OrgChild3Controller { orgChild3PhoneIn: orgChild3.orgChild3PhoneIn, orgChild3Fax: orgChild3.orgChild3Fax, orgRevisionId: orgChild3.orgRevisionId, + misId: orgChild3.misId, orgCode: orgChild3.orgRoot.orgRootCode + orgChild3.orgChild3Code, }; return new HttpSuccess(getOrgChild3); diff --git a/src/controllers/OrgChild4Controller.ts b/src/controllers/OrgChild4Controller.ts index 95fae160..9f5456c7 100644 --- a/src/controllers/OrgChild4Controller.ts +++ b/src/controllers/OrgChild4Controller.ts @@ -76,6 +76,7 @@ export class OrgChild4Controller extends Controller { orgChild4PhoneIn: orgChild4.orgChild4PhoneIn, orgChild4Fax: orgChild4.orgChild4Fax, orgRevisionId: orgChild4.orgRevisionId, + misId: orgChild4.misId, orgCode: orgChild4.orgRoot.orgRootCode + orgChild4.orgChild4Code, }; return new HttpSuccess(getOrgChild4); diff --git a/src/controllers/OrgRootController.ts b/src/controllers/OrgRootController.ts index 7ef3eed5..d7529bb3 100644 --- a/src/controllers/OrgRootController.ts +++ b/src/controllers/OrgRootController.ts @@ -73,6 +73,7 @@ export class OrgRootController extends Controller { orgRootFax: orgRoot.orgRootFax, orgRevisionId: orgRoot.orgRevisionId, isDeputy: orgRoot.isDeputy, + misId: orgRoot.misId, orgCode: orgRoot.orgRootCode + "00", }; return new HttpSuccess(getOrgRoot); diff --git a/src/entities/OrgChild1.ts b/src/entities/OrgChild1.ts index 52adaff7..b38273f6 100644 --- a/src/entities/OrgChild1.ts +++ b/src/entities/OrgChild1.ts @@ -16,6 +16,14 @@ enum OrgChild1Rank { @Entity("orgChild1") export class OrgChild1 extends EntityBase { + @Column({ + nullable: true, + comment: "MisId", + length: 255, + default: null, + }) + misId: string; + @Column({ nullable: true, comment: "ชื่อส่วนราชการ", @@ -176,6 +184,9 @@ export class CreateOrgChild1 { @Column() isOfficer: boolean; + + @Column() + misId?: string; } export type UpdateOrgChild1 = Partial & { orgChild1Rank?: OrgChild1Rank }; diff --git a/src/entities/OrgChild2.ts b/src/entities/OrgChild2.ts index 842423c8..37e93b2d 100644 --- a/src/entities/OrgChild2.ts +++ b/src/entities/OrgChild2.ts @@ -15,6 +15,14 @@ enum OrgChild2Rank { } @Entity("orgChild2") export class OrgChild2 extends EntityBase { + @Column({ + nullable: true, + comment: "MisId", + length: 255, + default: null, + }) + misId: string; + @Column({ nullable: true, comment: "ชื่อส่วนราชการ", @@ -173,5 +181,8 @@ export class CreateOrgChild2 { @Column() responsibility?: string; + + @Column() + misId?: string; } export type UpdateOrgChild2 = Partial & { orgChild2Rank?: OrgChild2Rank }; diff --git a/src/entities/OrgChild3.ts b/src/entities/OrgChild3.ts index d49c283b..5783335d 100644 --- a/src/entities/OrgChild3.ts +++ b/src/entities/OrgChild3.ts @@ -16,6 +16,14 @@ enum OrgChild3Rank { @Entity("orgChild3") export class OrgChild3 extends EntityBase { + @Column({ + nullable: true, + comment: "MisId", + length: 255, + default: null, + }) + misId: string; + @Column({ nullable: true, comment: "ชื่อส่วนราชการ", @@ -181,6 +189,9 @@ export class CreateOrgChild3 { @Column() responsibility?: string; + + @Column() + misId?: string; } export type UpdateOrgChild3 = Partial & { orgChild3Rank?: OrgChild3Rank }; diff --git a/src/entities/OrgChild4.ts b/src/entities/OrgChild4.ts index e8cb2170..73ee7d3a 100644 --- a/src/entities/OrgChild4.ts +++ b/src/entities/OrgChild4.ts @@ -15,6 +15,14 @@ enum OrgChild4Rank { } @Entity("orgChild4") export class OrgChild4 extends EntityBase { + @Column({ + nullable: true, + comment: "MisId", + length: 255, + default: null, + }) + misId: string; + @Column({ nullable: true, comment: "ชื่อส่วนราชการ", @@ -187,5 +195,8 @@ export class CreateOrgChild4 { @Column() responsibility?: string; + + @Column() + misId?: string; } export type UpdateOrgChild4 = Partial; diff --git a/src/entities/OrgRoot.ts b/src/entities/OrgRoot.ts index 286a3c4b..b3c3e0bd 100644 --- a/src/entities/OrgRoot.ts +++ b/src/entities/OrgRoot.ts @@ -17,6 +17,14 @@ enum OrgRootRank { @Entity("orgRoot") export class OrgRoot extends EntityBase { + @Column({ + nullable: true, + comment: "MisId", + length: 255, + default: null, + }) + misId: string; + @Column({ nullable: true, comment: "ชื่อหน่วยงาน", @@ -173,6 +181,9 @@ export class CreateOrgRoot { @Column() isDeputy: boolean; + + @Column() + misId?: string; } export type UpdateOrgRoot = Partial & { orgRootRank?: OrgRootRank }; diff --git a/src/migration/1737104233654-update_add_misId.ts b/src/migration/1737104233654-update_add_misId.ts new file mode 100644 index 00000000..647d7132 --- /dev/null +++ b/src/migration/1737104233654-update_add_misId.ts @@ -0,0 +1,71 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class UpdateAddMisId1737104233654 implements MigrationInterface { + name = 'UpdateAddMisId1737104233654' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`DELETE FROM \`bma_ehr_organization_demo\`.\`typeorm_metadata\` WHERE \`type\` = ? AND \`name\` = ? AND \`schema\` = ?`, ["VIEW","view_director","bma_ehr_organization_demo"]); + await queryRunner.query(`DROP VIEW \`view_director\``); + await queryRunner.query(`ALTER TABLE \`orgChild4\` ADD \`misId\` varchar(255) NULL COMMENT 'MisId'`); + await queryRunner.query(`ALTER TABLE \`orgChild3\` ADD \`misId\` varchar(255) NULL COMMENT 'MisId'`); + await queryRunner.query(`ALTER TABLE \`orgChild2\` ADD \`misId\` varchar(255) NULL COMMENT 'MisId'`); + await queryRunner.query(`ALTER TABLE \`orgChild1\` ADD \`misId\` varchar(255) NULL COMMENT 'MisId'`); + await queryRunner.query(`ALTER TABLE \`orgRoot\` ADD \`misId\` varchar(255) NULL COMMENT 'MisId'`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE \`orgRoot\` DROP COLUMN \`misId\``); + await queryRunner.query(`ALTER TABLE \`orgChild1\` DROP COLUMN \`misId\``); + await queryRunner.query(`ALTER TABLE \`orgChild2\` DROP COLUMN \`misId\``); + await queryRunner.query(`ALTER TABLE \`orgChild3\` DROP COLUMN \`misId\``); + await queryRunner.query(`ALTER TABLE \`orgChild4\` DROP COLUMN \`misId\``); + await queryRunner.query(`CREATE VIEW \`view_director\` AS SELECT + \`profile\`.\`id\` AS \`Id\`, + \`profile\`.\`prefix\` AS \`prefix\`, + \`profile\`.\`firstName\` AS \`firstName\`, + \`profile\`.\`lastName\` AS \`lastName\`, + \`profile\`.\`citizenId\` AS \`citizenId\`, + \`profile\`.\`position\` AS \`position\`, + CONCAT((CASE + WHEN (\`posMaster\`.\`orgChild1Id\` IS NULL) THEN \`orgRoot\`.\`orgRootShortName\` + WHEN (\`posMaster\`.\`orgChild2Id\` IS NULL) THEN \`orgChild1\`.\`orgChild1ShortName\` + WHEN (\`posMaster\`.\`orgChild3Id\` IS NULL) THEN \`orgChild2\`.\`orgChild2ShortName\` + WHEN (\`posMaster\`.\`orgChild4Id\` IS NULL) THEN \`orgChild3\`.\`orgChild3ShortName\` + ELSE \`orgChild4\`.\`orgChild4ShortName\` + END), + \`posMaster\`.\`posMasterNo\`) AS \`posNo\`, + \`posMaster\`.\`isDirector\` AS \`isDirector\`, + \`posLevel\`.\`posLevelName\` AS \`posLevel\`, + \`posType\`.\`posTypeName\` AS \`posType\`, + \`posExecutive\`.\`posExecutiveName\` AS \`posExecutiveName\`, + \`orgRoot\`.\`isDeputy\` AS \`isDeputy\`, + \`posMaster\`.\`orgRootId\` AS \`orgRootId\`, + \`posMaster\`.\`orgChild1Id\` AS \`orgChild1Id\`, + \`posMaster\`.\`orgChild2Id\` AS \`orgChild2Id\`, + \`posMaster\`.\`orgChild3Id\` AS \`orgChild3Id\`, + \`posMaster\`.\`orgChild4Id\` AS \`orgChild4Id\`, + CONCAT(\`posMaster\`.\`id\`, \`profile\`.\`id\`) AS \`key\`, + \`profile\`.\`id\` AS \`actFullNameId\`, + CONCAT(\`profile\`.\`prefix\`, + \`profile\`.\`firstName\`, + ' ', + \`profile\`.\`lastName\`) AS \`actFullName\` + + FROM + ((((((((((\`posMaster\` + JOIN \`profile\` ON ((\`posMaster\`.\`current_holderId\` = \`profile\`.\`id\`))) + LEFT JOIN \`orgRoot\` ON ((\`posMaster\`.\`orgRootId\` = \`orgRoot\`.\`id\`))) + LEFT JOIN \`orgChild1\` ON ((\`posMaster\`.\`orgChild1Id\` = \`orgChild1\`.\`id\`))) + LEFT JOIN \`orgChild2\` ON ((\`posMaster\`.\`orgChild2Id\` = \`orgChild2\`.\`id\`))) + LEFT JOIN \`orgChild3\` ON ((\`posMaster\`.\`orgChild3Id\` = \`orgChild3\`.\`id\`))) + LEFT JOIN \`orgChild4\` ON ((\`posMaster\`.\`orgChild4Id\` = \`orgChild4\`.\`id\`))) + JOIN \`posLevel\` ON ((\`profile\`.\`posLevelId\` = \`posLevel\`.\`id\`))) + JOIN \`posType\` ON ((\`profile\`.\`posTypeId\` = \`posType\`.\`id\`))) + LEFT JOIN \`position\` ON ((\`posMaster\`.\`id\` = \`position\`.\`posMasterId\`))) + LEFT JOIN \`posExecutive\` ON ((\`position\`.\`posExecutiveId\` = \`posExecutive\`.\`id\`))) + WHERE + (\`position\`.\`positionIsSelected\` = TRUE)`); + 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_director","SELECT \n `profile`.`id` AS `Id`,\n `profile`.`prefix` AS `prefix`,\n `profile`.`firstName` AS `firstName`,\n `profile`.`lastName` AS `lastName`,\n `profile`.`citizenId` AS `citizenId`,\n `profile`.`position` AS `position`,\n CONCAT((CASE\n WHEN (`posMaster`.`orgChild1Id` IS NULL) THEN `orgRoot`.`orgRootShortName`\n WHEN (`posMaster`.`orgChild2Id` IS NULL) THEN `orgChild1`.`orgChild1ShortName`\n WHEN (`posMaster`.`orgChild3Id` IS NULL) THEN `orgChild2`.`orgChild2ShortName`\n WHEN (`posMaster`.`orgChild4Id` IS NULL) THEN `orgChild3`.`orgChild3ShortName`\n ELSE `orgChild4`.`orgChild4ShortName`\n END),\n `posMaster`.`posMasterNo`) AS `posNo`,\n `posMaster`.`isDirector` AS `isDirector`,\n `posLevel`.`posLevelName` AS `posLevel`,\n `posType`.`posTypeName` AS `posType`,\n `posExecutive`.`posExecutiveName` AS `posExecutiveName`,\n `orgRoot`.`isDeputy` AS `isDeputy`,\n `posMaster`.`orgRootId` AS `orgRootId`,\n `posMaster`.`orgChild1Id` AS `orgChild1Id`,\n `posMaster`.`orgChild2Id` AS `orgChild2Id`,\n `posMaster`.`orgChild3Id` AS `orgChild3Id`,\n `posMaster`.`orgChild4Id` AS `orgChild4Id`,\n CONCAT(`posMaster`.`id`, `profile`.`id`) AS `key`,\n `profile`.`id` AS `actFullNameId`,\n CONCAT(`profile`.`prefix`,\n `profile`.`firstName`,\n ' ',\n `profile`.`lastName`) AS `actFullName`\n \n FROM\n ((((((((((`posMaster`\n JOIN `profile` ON ((`posMaster`.`current_holderId` = `profile`.`id`)))\n LEFT JOIN `orgRoot` ON ((`posMaster`.`orgRootId` = `orgRoot`.`id`)))\n LEFT JOIN `orgChild1` ON ((`posMaster`.`orgChild1Id` = `orgChild1`.`id`)))\n LEFT JOIN `orgChild2` ON ((`posMaster`.`orgChild2Id` = `orgChild2`.`id`)))\n LEFT JOIN `orgChild3` ON ((`posMaster`.`orgChild3Id` = `orgChild3`.`id`)))\n LEFT JOIN `orgChild4` ON ((`posMaster`.`orgChild4Id` = `orgChild4`.`id`)))\n JOIN `posLevel` ON ((`profile`.`posLevelId` = `posLevel`.`id`)))\n JOIN `posType` ON ((`profile`.`posTypeId` = `posType`.`id`)))\n LEFT JOIN `position` ON ((`posMaster`.`id` = `position`.`posMasterId`)))\n LEFT JOIN `posExecutive` ON ((`position`.`posExecutiveId` = `posExecutive`.`id`)))\n WHERE\n (`position`.`positionIsSelected` = TRUE)"]); + } + +}