Merge branch 'develop' of github.com:Frappet/hrms-api-org into develop
This commit is contained in:
commit
36ac1d146d
3 changed files with 100 additions and 17 deletions
|
|
@ -4848,7 +4848,6 @@ export class CommandController extends Controller {
|
|||
}
|
||||
profile.keycloak = checkUser[0].id;
|
||||
}
|
||||
|
||||
positionNew.positionIsSelected = true;
|
||||
profile.posLevelId = positionNew.posLevelId;
|
||||
profile.posTypeId = positionNew.posTypeId;
|
||||
|
|
@ -4872,11 +4871,11 @@ export class CommandController extends Controller {
|
|||
root: posMaster.orgRoot.orgRootName,
|
||||
rootId: posMaster.orgRootId,
|
||||
rootShortName: posMaster.orgRoot.orgRootShortName,
|
||||
rootDnaId: posMaster.orgRoot.ancestorDNA,
|
||||
child1DnaId: posMaster.orgChild1.ancestorDNA,
|
||||
child2DnaId: posMaster.orgChild2.ancestorDNA,
|
||||
child3DnaId: posMaster.orgChild3.ancestorDNA,
|
||||
child4DnaId: posMaster.orgChild4.ancestorDNA,
|
||||
rootDnaId: posMaster.orgRoot.ancestorDNA??_null,
|
||||
child1DnaId: posMaster.orgChild1.ancestorDNA??_null,
|
||||
child2DnaId: posMaster.orgChild2.ancestorDNA??_null,
|
||||
child3DnaId: posMaster.orgChild3.ancestorDNA??_null,
|
||||
child4DnaId: posMaster.orgChild4.ancestorDNA??_null,
|
||||
});
|
||||
await this.profileEmployeeRepository.save(profile);
|
||||
await this.employeePositionRepository.save(positionNew);
|
||||
|
|
|
|||
|
|
@ -1174,25 +1174,46 @@ export class OrganizationUnauthorizeController extends Controller {
|
|||
* @summary ผลการประเมิน 5 ปีย้อนหลังนับจากปีปัจจุบัน
|
||||
*
|
||||
*/
|
||||
@Get("calculate-Eva/{node}/{nodeId}")
|
||||
async calculateEva(
|
||||
@Path() node: string,
|
||||
@Path() nodeId: string,
|
||||
@Get("calculateEvaluation")
|
||||
async calculateEvaluation(
|
||||
// @Path() node: number,
|
||||
// @Path() nodeId: string,
|
||||
) {
|
||||
|
||||
// let condition :any = {};
|
||||
// switch (node) {
|
||||
// case 0:
|
||||
// condition = {orgRootId: nodeId}
|
||||
// break;
|
||||
// case 1:
|
||||
// condition = {orgChild1Id: nodeId}
|
||||
// break;
|
||||
// case 2:
|
||||
// condition = {orgChild2Id: nodeId}
|
||||
// break;
|
||||
// case 3:
|
||||
// condition = {orgChild3Id: nodeId}
|
||||
// break;
|
||||
// case 4:
|
||||
// condition = {orgChild4Id: nodeId}
|
||||
// break;
|
||||
// default:
|
||||
// throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูล");
|
||||
// }
|
||||
|
||||
const lists = await this.viewProfileEvaluationRepo.find({
|
||||
// where:{
|
||||
// profileId: profileId
|
||||
// ...condition
|
||||
// }
|
||||
})
|
||||
|
||||
const formattedResults: any = {};
|
||||
const groupData: any = {};
|
||||
const year = new Date().getFullYear();
|
||||
const years = [year, year - 1, year - 2, year - 3, year - 4];
|
||||
|
||||
lists.forEach((item: any) => {
|
||||
if (!formattedResults[item.profileId]) {
|
||||
formattedResults[item.profileId] = {
|
||||
if (!groupData[item.profileId]) {
|
||||
groupData[item.profileId] = {
|
||||
profileId: item.profileId,
|
||||
yearAPR1: "-", periodAPR1: "-", resultAPR1: "-",
|
||||
yearOCT1: "-", periodOCT1: "-", resultOCT1: "-",
|
||||
|
|
@ -1214,12 +1235,40 @@ export class OrganizationUnauthorizeController extends Controller {
|
|||
const periodKey = `period${item.period}${yearSuffix}`;
|
||||
const resultKey = `result${item.period}${yearSuffix}`;
|
||||
|
||||
formattedResults[item.profileId][yearKey] = item.year;
|
||||
formattedResults[item.profileId][periodKey] = item.period;
|
||||
formattedResults[item.profileId][resultKey] = item.result;
|
||||
groupData[item.profileId][yearKey] = item.year;
|
||||
groupData[item.profileId][periodKey] = item.period;
|
||||
groupData[item.profileId][resultKey] = item.result;
|
||||
}
|
||||
});
|
||||
|
||||
const formattedResults = Object.values(groupData).map((item: any) => ({
|
||||
profileId: item.profileId,
|
||||
yearAPR1: item.yearAPR1,
|
||||
periodAPR1: item.periodAPR1,
|
||||
resultAPR1: item.resultAPR1,
|
||||
yearOCT1: item.yearOCT1,
|
||||
periodOCT1: item.periodOCT1,
|
||||
resultOCT1: item.resultOCT1,
|
||||
yearAPR2: item.yearAPR2,
|
||||
periodAPR2: item.periodAPR2,
|
||||
resultAPR2: item.resultAPR2,
|
||||
yearOCT2: item.yearOCT2,
|
||||
periodOCT2: item.periodOCT2,
|
||||
resultOCT2: item.resultOCT2,
|
||||
yearAPR3: item.yearAPR3,
|
||||
periodAPR3: item.periodAPR3,
|
||||
resultAPR3: item.resultAPR3,
|
||||
yearOCT3: item.yearOCT3,
|
||||
periodOCT3: item.periodOCT3,
|
||||
resultOCT3: item.resultOCT3,
|
||||
yearAPR4: item.yearAPR4,
|
||||
periodAPR4: item.periodAPR4,
|
||||
resultAPR4: item.resultAPR4,
|
||||
yearOCT4: item.yearOCT4,
|
||||
periodOCT4: item.periodOCT4,
|
||||
resultOCT4: item.resultOCT4,
|
||||
}));
|
||||
|
||||
return new HttpSuccess(formattedResults);
|
||||
}
|
||||
|
||||
|
|
|
|||
35
src/migration/1739153948936-update_viewProfileEvaluation.ts
Normal file
35
src/migration/1739153948936-update_viewProfileEvaluation.ts
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class UpdateViewProfileEvaluation1739153948936 implements MigrationInterface {
|
||||
name = 'UpdateViewProfileEvaluation1739153948936'
|
||||
|
||||
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_profile_evaluation","bma_ehr_organization_demo"]);
|
||||
await queryRunner.query(`DROP VIEW \`view_profile_evaluation\``);
|
||||
await queryRunner.query(`CREATE VIEW \`view_profile_evaluation\` AS SELECT
|
||||
\`profileId\`,\`period\`,\`year\`,\`posMaster\`.\`orgRootId\`,\`posMaster\`.\`orgChild1Id\`,\`posMaster\`.\`orgChild2Id\`,\`posMaster\`.\`orgChild3Id\`,\`posMaster\`.\`orgChild4Id\`, COUNT(*) AS recordCount, SUM(pointSum) AS totalPointSum, SUM(pointSum) / COUNT(*) AS result
|
||||
FROM\`profileAssessment\`
|
||||
LEFT JOIN \`profile\` ON \`profileAssessment\`.\`profileId\` = \`profile\`.\`id\`
|
||||
LEFT JOIN \`posMaster\` ON \`profile\`.\`id\` = \`posMaster\`.\`current_holderId\`
|
||||
LEFT JOIN \`orgRevision\` ON \`posMaster\`.\`orgRevisionId\` = \`orgRevision\`.\`id\`
|
||||
WHERE \`period\` Is not null
|
||||
AND \`orgRevision\`.\`orgRevisionIsCurrent\` = true
|
||||
GROUP BY\`profileId\`,\`period\`,\`year\`,\`orgRootId\`,\`orgChild1Id\`,\`orgChild2Id\`,\`orgChild3Id\`,\`orgChild4Id\`
|
||||
ORDER BY\`year\` desc ,\`period\` asc
|
||||
`);
|
||||
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_profile_evaluation","SELECT \n `profileId`,`period`,`year`,`posMaster`.`orgRootId`,`posMaster`.`orgChild1Id`,`posMaster`.`orgChild2Id`,`posMaster`.`orgChild3Id`,`posMaster`.`orgChild4Id`, COUNT(*) AS recordCount, SUM(pointSum) AS totalPointSum, SUM(pointSum) / COUNT(*) AS result\n FROM`profileAssessment` \n LEFT JOIN `profile` ON `profileAssessment`.`profileId` = `profile`.`id`\n LEFT JOIN `posMaster` ON `profile`.`id` = `posMaster`.`current_holderId`\n LEFT JOIN `orgRevision` ON `posMaster`.`orgRevisionId` = `orgRevision`.`id`\n WHERE `period` Is not null\n AND `orgRevision`.`orgRevisionIsCurrent` = true\n GROUP BY`profileId`,`period`,`year`,`orgRootId`,`orgChild1Id`,`orgChild2Id`,`orgChild3Id`,`orgChild4Id`\n ORDER BY`year` desc ,`period` asc"]);
|
||||
}
|
||||
|
||||
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_profile_evaluation","bma_ehr_organization_demo"]);
|
||||
await queryRunner.query(`DROP VIEW \`view_profile_evaluation\``);
|
||||
await queryRunner.query(`CREATE VIEW \`view_profile_evaluation\` AS SELECT
|
||||
\`profileId\`, \`period\`, \`year\`, COUNT(*) AS recordCount, SUM(pointSum) AS totalPointSum, SUM(pointSum) / COUNT(*) AS result
|
||||
FROM \`profileAssessment\`
|
||||
WHERE \`period\` Is not null
|
||||
GROUP BY \`profileId\`, \`period\`, \`year\`
|
||||
ORDER BY \`year\` desc , \`period\` asc`);
|
||||
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_profile_evaluation","SELECT \n `profileId`, `period`, `year`, COUNT(*) AS recordCount, SUM(pointSum) AS totalPointSum, SUM(pointSum) / COUNT(*) AS result\n FROM `profileAssessment` \n WHERE `period` Is not null\n GROUP BY `profileId`, `period`, `year`\n ORDER BY `year` desc , `period` asc"]);
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue