api report รายการประวัติการฝึกอบรม/ดูงาน
This commit is contained in:
parent
a4eed4f690
commit
371f09c26f
1 changed files with 80 additions and 19 deletions
|
|
@ -25,7 +25,7 @@ import {
|
|||
} from "../entities/DevelopmentHistory";
|
||||
import { PosType } from "../entities/PosType";
|
||||
import { PosLevel } from "../entities/PosLevel";
|
||||
|
||||
import Extension from "../interfaces/extension";
|
||||
@Route("api/v1/development/report")
|
||||
@Tags("Report")
|
||||
@Security("bearerAuth")
|
||||
|
|
@ -63,18 +63,49 @@ export class ReportController extends Controller {
|
|||
*
|
||||
* @summary DEV_0xx - Report รายการประวัติการฝึกอบรม/ดูงานของข้าราชการกรุงเทพมหานครสามัญ #xx
|
||||
*
|
||||
* @param {string} type type ประเภท report
|
||||
*/
|
||||
@Get("history-officer/{type}")
|
||||
async GetReportDevelopemtHistoryOfficer(@Path() type: string) {
|
||||
const _type = type.trim().toUpperCase();
|
||||
const formattedData = {
|
||||
org: _type,
|
||||
};
|
||||
@Get("history-officer/{year}")
|
||||
async GetReportDevelopemtHistoryOfficer(@Query("year") year: number) {
|
||||
const type = "OFFICER";
|
||||
const development = await AppDataSource.getRepository(DevelopmentHistory)
|
||||
.createQueryBuilder("developmentHistory")
|
||||
.leftJoinAndSelect("developmentHistory.posLevel", "posLevel")
|
||||
.leftJoinAndSelect("developmentHistory.posType", "posType")
|
||||
.leftJoinAndSelect("developmentHistory.development", "development")
|
||||
.andWhere(
|
||||
year != 0 && year != null && year != undefined ? "development.year = :year" : "1=1",
|
||||
{ year: year },
|
||||
)
|
||||
.andWhere("developmentHistory.type = :type", { type: type })
|
||||
.select([
|
||||
"developmentHistory.citizenId",
|
||||
"developmentHistory.rank",
|
||||
"developmentHistory.position",
|
||||
"developmentHistory.posExecutive",
|
||||
"developmentHistory.developmentId",
|
||||
"developmentHistory.prefix",
|
||||
"developmentHistory.firstName",
|
||||
"developmentHistory.lastName",
|
||||
"posLevel.posLevelName",
|
||||
"posType.posTypeName",
|
||||
"development.projectName",
|
||||
])
|
||||
.getMany();
|
||||
|
||||
const formattedData = development.map((item) => ({
|
||||
id: item.id,
|
||||
citizenId: Extension.ToThaiNumber(item.citizenId.toString()),
|
||||
fullName: item.prefix + item.firstName + " " + item.lastName,
|
||||
position: item.position,
|
||||
posType: item.posType ? item.posType.posTypeName : null,
|
||||
posLevel: item.posLevel ? item.posLevel.posLevelName : null,
|
||||
posExecutive: item.posExecutive,
|
||||
projectName: item.development ? item.development.projectName : null,
|
||||
}));
|
||||
|
||||
return new HttpSuccess({
|
||||
template: "development",
|
||||
reportName: "development",
|
||||
template: "developmentHistoryOfficer",
|
||||
reportName: "developmentHistoryOfficer",
|
||||
data: {
|
||||
data: formattedData,
|
||||
},
|
||||
|
|
@ -86,18 +117,48 @@ export class ReportController extends Controller {
|
|||
*
|
||||
* @summary DEV_0xx - Report รายการประวัติฝึกอบรม/ดูงานลูกจ้าง #xx
|
||||
*
|
||||
* @param {string} type type ประเภท report
|
||||
* @param {number} year year ปี report
|
||||
*/
|
||||
@Get("history-employee/{type}")
|
||||
async GetReportDevelopemtHistoryEmployee(@Path() type: string) {
|
||||
const _type = type.trim().toUpperCase();
|
||||
const formattedData = {
|
||||
org: _type,
|
||||
};
|
||||
@Get("history-employee/{year}")
|
||||
async GetReportDevelopemtHistoryEmployee(@Query("year") year: number = 2024) {
|
||||
const type = "EMPLOYEE";
|
||||
const development = await AppDataSource.getRepository(DevelopmentHistory)
|
||||
.createQueryBuilder("developmentHistory")
|
||||
.leftJoinAndSelect("developmentHistory.employeePosLevel", "employeePosLevel")
|
||||
.leftJoinAndSelect("developmentHistory.employeePosType", "employeePosType")
|
||||
.leftJoinAndSelect("developmentHistory.development", "development")
|
||||
.where("development.year = :year", { year })
|
||||
.andWhere("developmentHistory.type = :type", { type: type })
|
||||
.select([
|
||||
"developmentHistory.citizenId",
|
||||
"developmentHistory.position",
|
||||
"developmentHistory.developmentId",
|
||||
"developmentHistory.prefix",
|
||||
"developmentHistory.firstName",
|
||||
"developmentHistory.lastName",
|
||||
"employeePosLevel.posLevelName",
|
||||
"employeePosType.posTypeName",
|
||||
"employeePosType.posTypeShortName",
|
||||
"development.projectName",
|
||||
])
|
||||
.getMany();
|
||||
|
||||
const formattedData = development.map((item) => ({
|
||||
id: item.id,
|
||||
citizenId: Extension.ToThaiNumber(item.citizenId.toString()),
|
||||
fullName: item.prefix + item.firstName + " " + item.lastName,
|
||||
position: item.position,
|
||||
employeePosType: item.employeePosType ? item.employeePosType.posTypeName : null,
|
||||
employeePosLevel:
|
||||
item.employeePosType.posTypeShortName +
|
||||
" " +
|
||||
Extension.ToThaiNumber(item.employeePosLevel.posLevelName.toString()),
|
||||
projectName: item.development ? item.development.projectName : null,
|
||||
}));
|
||||
|
||||
return new HttpSuccess({
|
||||
template: "development",
|
||||
reportName: "development",
|
||||
template: "developmentHistoryEmployee",
|
||||
reportName: "developmentHistoryEmployee",
|
||||
data: {
|
||||
data: formattedData,
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue