From ee71e985abd49f0816ac8ff453fda66320beb6c2 Mon Sep 17 00:00:00 2001 From: AdisakKanthawilang Date: Mon, 17 Feb 2025 10:57:03 +0700 Subject: [PATCH] add viewProfileEmp --- .../OrganizationUnauthorizeController.ts | 11 ++-- src/controllers/ReportController.ts | 7 +-- .../view/viewProfileEmployeeEvaluation.ts | 55 +++++++++++++++++++ 3 files changed, 65 insertions(+), 8 deletions(-) create mode 100644 src/entities/view/viewProfileEmployeeEvaluation.ts diff --git a/src/controllers/OrganizationUnauthorizeController.ts b/src/controllers/OrganizationUnauthorizeController.ts index e0f32b9d..0f9506b7 100644 --- a/src/controllers/OrganizationUnauthorizeController.ts +++ b/src/controllers/OrganizationUnauthorizeController.ts @@ -1174,12 +1174,12 @@ export class OrganizationUnauthorizeController extends Controller { * @summary ผลการประเมิน 5 ปีย้อนหลังนับจากปีปัจจุบัน * */ - @Get("calculateEvaluation") + @Get("calculateEvaluation/{type}") async calculateEvaluation( - // @Path() node: number, + @Path() type: string, // @Path() nodeId: string, ) { - + const conType = type.toUpperCase(); // let condition :any = {}; // switch (node) { // case 0: @@ -1206,7 +1206,10 @@ export class OrganizationUnauthorizeController extends Controller { // ...condition // } }) - + // if(conType == "EMPLOYEE"){ + // const lists = await this.viewProfileEmployeeEvaluationRepo.find({ + // }) + // } const groupData: any = {}; const year = new Date().getFullYear(); const years = [year, year - 1, year - 2, year - 3, year - 4]; diff --git a/src/controllers/ReportController.ts b/src/controllers/ReportController.ts index 1139f2d3..b35aa04b 100644 --- a/src/controllers/ReportController.ts +++ b/src/controllers/ReportController.ts @@ -83,7 +83,7 @@ export class ReportController extends Controller { .andWhere(rootId?'posMaster.orgRootId = :rootId': "1=1", { rootId: rootId }) .andWhere('posMaster.current_holderId Is Not Null') .andWhere('positions.positionIsSelected = :positionIsSelected', { positionIsSelected: true }) - .andWhere( yearInAD && yearInAD != null? 'YEAR(current_holder.dateAppoint) = :year': "1=1", { year: yearInAD }) + .andWhere( yearInAD && yearInAD != null? 'YEAR(current_holder.dateAppoint) = :year': "1=1", { year: yearInAD }) //ตอนนี้ where ที่วันที่บรรจุ (รอ prove) ว่าจะ where ที่ไหน .andWhere(` TIMESTAMPDIFF(YEAR, current_holder.birthDate, CURDATE()) >= :minAge AND TIMESTAMPDIFF(YEAR, current_holder.birthDate, CURDATE()) <= :maxAge @@ -137,12 +137,11 @@ export class ReportController extends Controller { ...item , count: Extension.ToThaiNumber(item.count.toString()), })); - return new HttpSuccess({ template: "registry-officer", reportName: "xlsx-report", data: { - year: year?Extension.ToThaiNumber(year.toString()):Extension.ToThaiNumber(new Date().getFullYear().toString()), + year: year?Extension.ToThaiNumber((year + 543).toString()):Extension.ToThaiNumber(((new Date()).getFullYear()+543).toString()), date: Extension.ToThaiNumber(Extension.ToThaiShortDate(new Date())), list: result }, @@ -248,7 +247,7 @@ export class ReportController extends Controller { template: "registry-emp", reportName: "xlsx-report", data: { - year: year?Extension.ToThaiNumber(year.toString()):Extension.ToThaiNumber(new Date().getFullYear().toString()), + year: year?Extension.ToThaiNumber((year + 543).toString()):Extension.ToThaiNumber(((new Date()).getFullYear()+543).toString()), date: Extension.ToThaiNumber(Extension.ToThaiShortDate(new Date())), list: result }, diff --git a/src/entities/view/viewProfileEmployeeEvaluation.ts b/src/entities/view/viewProfileEmployeeEvaluation.ts new file mode 100644 index 00000000..b738697d --- /dev/null +++ b/src/entities/view/viewProfileEmployeeEvaluation.ts @@ -0,0 +1,55 @@ +import { ViewColumn, ViewEntity } from "typeorm"; + +@ViewEntity({ + expression: `SELECT + \`profileEmployeeId\`, + \`period\`, + \`year\`, + \`employeePosMaster\`.\`orgRootId\`, + \`employeePosMaster\`.\`orgChild1Id\`, + \`employeePosMaster\`.\`orgChild2Id\`, + \`employeePosMaster\`.\`orgChild3Id\`, + \`employeePosMaster\`.\`orgChild4Id\`, + COUNT(*) AS recordCount, + SUM(pointSum) AS totalPointSum, + SUM(pointSum) / COUNT(*) AS result + FROM \`profileAssessment\` + LEFT JOIN \`profileEmployee\` ON \`profileAssessment\`.\`profileEmployeeId\` = \`profileEmployee\`.\`id\` + LEFT JOIN \`employeePosMaster\` ON \`profileEmployee\`.\`id\` = \`employeePosMaster\`.\`current_holderId\` + LEFT JOIN \`orgRevision\` ON \`employeePosMaster\`.\`orgRevisionId\` = \`orgRevision\`.\`id\` + WHERE \`period\` IS NOT NULL + AND \`orgRevision\`.\`orgRevisionIsCurrent\` = TRUE + GROUP BY \`profileEmployeeId\`, \`period\`, \`year\`, + \`employeePosMaster\`.\`orgRootId\`, + \`employeePosMaster\`.\`orgChild1Id\`, + \`employeePosMaster\`.\`orgChild2Id\`, + \`employeePosMaster\`.\`orgChild3Id\`, + \`employeePosMaster\`.\`orgChild4Id\` + ORDER BY \`year\` DESC, \`period\` ASC; + `, +}) + +export class viewProfileEmployeeEvaluation { + @ViewColumn() + profileEmployeeId: string; + @ViewColumn() + period: string; + @ViewColumn() + year: number; + @ViewColumn() + orgRootId: string; + @ViewColumn() + orgChild1Id: string; + @ViewColumn() + orgChild2Id: string; + @ViewColumn() + orgChild3Id: string; + @ViewColumn() + orgChild4Id: string; + @ViewColumn() + recordCount: number; + @ViewColumn() + totalPointSum: number; + @ViewColumn() + result: number; +}