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";
|
} from "../entities/DevelopmentHistory";
|
||||||
import { PosType } from "../entities/PosType";
|
import { PosType } from "../entities/PosType";
|
||||||
import { PosLevel } from "../entities/PosLevel";
|
import { PosLevel } from "../entities/PosLevel";
|
||||||
|
import Extension from "../interfaces/extension";
|
||||||
@Route("api/v1/development/report")
|
@Route("api/v1/development/report")
|
||||||
@Tags("Report")
|
@Tags("Report")
|
||||||
@Security("bearerAuth")
|
@Security("bearerAuth")
|
||||||
|
|
@ -63,18 +63,49 @@ export class ReportController extends Controller {
|
||||||
*
|
*
|
||||||
* @summary DEV_0xx - Report รายการประวัติการฝึกอบรม/ดูงานของข้าราชการกรุงเทพมหานครสามัญ #xx
|
* @summary DEV_0xx - Report รายการประวัติการฝึกอบรม/ดูงานของข้าราชการกรุงเทพมหานครสามัญ #xx
|
||||||
*
|
*
|
||||||
* @param {string} type type ประเภท report
|
|
||||||
*/
|
*/
|
||||||
@Get("history-officer/{type}")
|
@Get("history-officer/{year}")
|
||||||
async GetReportDevelopemtHistoryOfficer(@Path() type: string) {
|
async GetReportDevelopemtHistoryOfficer(@Query("year") year: number) {
|
||||||
const _type = type.trim().toUpperCase();
|
const type = "OFFICER";
|
||||||
const formattedData = {
|
const development = await AppDataSource.getRepository(DevelopmentHistory)
|
||||||
org: _type,
|
.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({
|
return new HttpSuccess({
|
||||||
template: "development",
|
template: "developmentHistoryOfficer",
|
||||||
reportName: "development",
|
reportName: "developmentHistoryOfficer",
|
||||||
data: {
|
data: {
|
||||||
data: formattedData,
|
data: formattedData,
|
||||||
},
|
},
|
||||||
|
|
@ -86,18 +117,48 @@ export class ReportController extends Controller {
|
||||||
*
|
*
|
||||||
* @summary DEV_0xx - Report รายการประวัติฝึกอบรม/ดูงานลูกจ้าง #xx
|
* @summary DEV_0xx - Report รายการประวัติฝึกอบรม/ดูงานลูกจ้าง #xx
|
||||||
*
|
*
|
||||||
* @param {string} type type ประเภท report
|
* @param {number} year year ปี report
|
||||||
*/
|
*/
|
||||||
@Get("history-employee/{type}")
|
@Get("history-employee/{year}")
|
||||||
async GetReportDevelopemtHistoryEmployee(@Path() type: string) {
|
async GetReportDevelopemtHistoryEmployee(@Query("year") year: number = 2024) {
|
||||||
const _type = type.trim().toUpperCase();
|
const type = "EMPLOYEE";
|
||||||
const formattedData = {
|
const development = await AppDataSource.getRepository(DevelopmentHistory)
|
||||||
org: _type,
|
.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({
|
return new HttpSuccess({
|
||||||
template: "development",
|
template: "developmentHistoryEmployee",
|
||||||
reportName: "development",
|
reportName: "developmentHistoryEmployee",
|
||||||
data: {
|
data: {
|
||||||
data: formattedData,
|
data: formattedData,
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue