no message
This commit is contained in:
parent
daaa18b3c1
commit
7e9aa4e0fa
2 changed files with 330 additions and 0 deletions
327
src/controllers/DevelopmentScholarshipController.ts
Normal file
327
src/controllers/DevelopmentScholarshipController.ts
Normal file
|
|
@ -0,0 +1,327 @@
|
|||
import {
|
||||
Controller,
|
||||
Get,
|
||||
Post,
|
||||
Put,
|
||||
Delete,
|
||||
Route,
|
||||
Security,
|
||||
Tags,
|
||||
Body,
|
||||
Path,
|
||||
Request,
|
||||
Query,
|
||||
} from "tsoa";
|
||||
import { AppDataSource } from "../database/data-source";
|
||||
import { Brackets, Not } from "typeorm";
|
||||
import HttpSuccess from "../interfaces/http-success";
|
||||
import HttpError from "../interfaces/http-error";
|
||||
import HttpStatusCode from "../interfaces/http-status";
|
||||
import { Development } from "../entities/Development";
|
||||
import {
|
||||
CreateDevelopmentHistory,
|
||||
DevelopmentHistory,
|
||||
UpdateDevelopmentHistory,
|
||||
} from "../entities/DevelopmentHistory";
|
||||
import { PosType } from "../entities/PosType";
|
||||
import { PosLevel } from "../entities/PosLevel";
|
||||
|
||||
@Route("api/v1/development/scholarship")
|
||||
@Tags("DevelopmentScholarship")
|
||||
@Security("bearerAuth")
|
||||
export class DevelopmentScholarshipController extends Controller {
|
||||
private developmentHistoryRepository = AppDataSource.getRepository(DevelopmentHistory);
|
||||
private developmentRepository = AppDataSource.getRepository(Development);
|
||||
private posTypeRepository = AppDataSource.getRepository(PosType);
|
||||
private posLevelRepository = AppDataSource.getRepository(PosLevel);
|
||||
|
||||
// /**
|
||||
// * API เพิ่มประวัติการฝึกอบรม/ดูงาน
|
||||
// *
|
||||
// * @summary DEV_006 - เพิ่มประวัติการฝึกอบรม/ดูงาน#6
|
||||
// *
|
||||
// */
|
||||
// @Post()
|
||||
// async CreateDevelopmentHistory(
|
||||
// @Body() requestBody: CreateDevelopmentHistory,
|
||||
// @Request() request: { user: Record<string, any> },
|
||||
// ) {
|
||||
// const type = "OFFICER";
|
||||
// const chk_name = await this.developmentHistoryRepository.find({
|
||||
// where: {
|
||||
// citizenId: requestBody.citizenId,
|
||||
// developmentId: requestBody.developmentId,
|
||||
// type: type,
|
||||
// },
|
||||
// });
|
||||
// if (chk_name.length > 0) {
|
||||
// throw new HttpError(HttpStatusCode.NOT_FOUND, "ประวัติการฝึกอบรม/ดูงาน มีอยู่ในระบบแล้ว");
|
||||
// }
|
||||
|
||||
// const checkId = await this.developmentRepository.findOne({
|
||||
// where: { id: requestBody.developmentId },
|
||||
// });
|
||||
// if (!checkId) {
|
||||
// throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลโครงการ/หลักสูตรการฝึกอบรม");
|
||||
// }
|
||||
// if (requestBody.posTypeId != null) {
|
||||
// const checkId = await this.posTypeRepository.findOne({
|
||||
// where: { id: requestBody.posTypeId },
|
||||
// });
|
||||
// if (!checkId) {
|
||||
// throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลประเภทตำแหน่ง");
|
||||
// }
|
||||
// }
|
||||
// if (requestBody.posLevelId != null) {
|
||||
// const checkId = await this.posLevelRepository.findOne({
|
||||
// where: { id: requestBody.posLevelId },
|
||||
// });
|
||||
// if (!checkId) {
|
||||
// throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลระดับตำแหน่ง");
|
||||
// }
|
||||
// }
|
||||
|
||||
// const development = Object.assign(new DevelopmentHistory(), requestBody);
|
||||
// development.type = type;
|
||||
// development.createdUserId = request.user.sub;
|
||||
// development.createdFullName = request.user.name;
|
||||
// development.lastUpdateUserId = request.user.sub;
|
||||
// development.lastUpdateFullName = request.user.name;
|
||||
// await this.developmentHistoryRepository.save(development);
|
||||
// return new HttpSuccess(development.id);
|
||||
// }
|
||||
|
||||
// /**
|
||||
// * API แก้ไขประวัติการฝึกอบรม/ดูงาน
|
||||
// *
|
||||
// * @summary DEV_007 - แก้ไขประวัติการฝึกอบรม/ดูงาน #7
|
||||
// *
|
||||
// * @param {string} id Id โครงการ
|
||||
// */
|
||||
// @Put("{id}")
|
||||
// async UpdateDevelopmentHistory(
|
||||
// @Path() id: string,
|
||||
// @Body() requestBody: UpdateDevelopmentHistory,
|
||||
// @Request() request: { user: Record<string, any> },
|
||||
// ) {
|
||||
// const type = "OFFICER";
|
||||
// const development = await this.developmentHistoryRepository.findOne({
|
||||
// where: { id: id, type: type },
|
||||
// });
|
||||
// if (!development) {
|
||||
// throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลประวัติการฝึกอบรม/ดูงานนี้");
|
||||
// }
|
||||
// const chk_name = await this.developmentHistoryRepository.find({
|
||||
// where: {
|
||||
// citizenId: requestBody.citizenId,
|
||||
// developmentId: requestBody.developmentId,
|
||||
// type: type,
|
||||
// id: Not(id),
|
||||
// },
|
||||
// });
|
||||
// if (chk_name.length > 0) {
|
||||
// throw new HttpError(HttpStatusCode.NOT_FOUND, "ประวัติการฝึกอบรม/ดูงาน มีอยู่ในระบบแล้ว");
|
||||
// }
|
||||
// const checkId = await this.developmentRepository.findOne({
|
||||
// where: { id: requestBody.developmentId },
|
||||
// });
|
||||
// if (!checkId) {
|
||||
// throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลโครงการ/หลักสูตรการฝึกอบรม");
|
||||
// }
|
||||
// if (requestBody.posTypeId != null) {
|
||||
// const checkId = await this.posTypeRepository.findOne({
|
||||
// where: { id: requestBody.posTypeId },
|
||||
// });
|
||||
// if (!checkId) {
|
||||
// throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลประเภทตำแหน่ง");
|
||||
// }
|
||||
// }
|
||||
// if (requestBody.posLevelId != null) {
|
||||
// const checkId = await this.posLevelRepository.findOne({
|
||||
// where: { id: requestBody.posLevelId },
|
||||
// });
|
||||
// if (!checkId) {
|
||||
// throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลระดับตำแหน่ง");
|
||||
// }
|
||||
// }
|
||||
// Object.assign(development, requestBody);
|
||||
// development.type = type;
|
||||
// development.lastUpdateUserId = request.user.sub;
|
||||
// development.lastUpdateFullName = request.user.name;
|
||||
// await this.developmentHistoryRepository.save(development);
|
||||
// return new HttpSuccess(development.id);
|
||||
// }
|
||||
|
||||
// /**
|
||||
// * API ลบประวัติการฝึกอบรม/ดูงาน
|
||||
// *
|
||||
// * @summary DEV_008 - ลบประวัติการฝึกอบรม/ดูงาน #8
|
||||
// *
|
||||
// * @param {string} id Id โครงการ
|
||||
// */
|
||||
// @Delete("{id}")
|
||||
// async DeleteDevelopmentHistory(@Path() id: string) {
|
||||
// const type = "OFFICER";
|
||||
// const development = await this.developmentHistoryRepository.findOne({
|
||||
// where: { id: id, type: type },
|
||||
// });
|
||||
// if (!development) {
|
||||
// throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลประวัติการฝึกอบรม/ดูงานนี้");
|
||||
// }
|
||||
|
||||
// await this.developmentHistoryRepository.remove(development);
|
||||
// return new HttpSuccess();
|
||||
// }
|
||||
|
||||
// /**
|
||||
// * API รายการประวัติการฝึกอบรม/ดูงาน
|
||||
// *
|
||||
// * @summary DEV_009 - รายการประวัติการฝึกอบรม/ดูงาน #9
|
||||
// *
|
||||
// */
|
||||
// @Get()
|
||||
// async GetDevelopmentHistoryLists(
|
||||
// @Query("page") page: number = 1,
|
||||
// @Query("pageSize") pageSize: number = 10,
|
||||
// @Query("keyword") keyword?: string,
|
||||
// @Query("year") year?: number,
|
||||
// ) {
|
||||
// const type = "OFFICER";
|
||||
// const [development, total] = await AppDataSource.getRepository(DevelopmentHistory)
|
||||
// .createQueryBuilder("developmentHistory")
|
||||
// .leftJoinAndSelect("developmentHistory.development", "development")
|
||||
// .leftJoinAndSelect("developmentHistory.posLevel", "posLevel")
|
||||
// .leftJoinAndSelect("developmentHistory.posType", "posType")
|
||||
// .andWhere(year != 0 && year != null && year != undefined ? "development.year = :year" : "1=1", { year: year })
|
||||
// .andWhere("developmentHistory.type = :type", { type: type })
|
||||
// .andWhere(
|
||||
// new Brackets((qb) => {
|
||||
// qb.where(
|
||||
// keyword != null && keyword != ""
|
||||
// ? "developmentHistory.prefix LIKE :keyword"
|
||||
// : "1=1",
|
||||
// {
|
||||
// keyword: `%${keyword}%`,
|
||||
// },
|
||||
// )
|
||||
// .orWhere(
|
||||
// keyword != null && keyword != ""
|
||||
// ? "developmentHistory.firstName LIKE :keyword"
|
||||
// : "1=1",
|
||||
// {
|
||||
// keyword: `%${keyword}%`,
|
||||
// },
|
||||
// )
|
||||
// .orWhere(
|
||||
// keyword != null && keyword != ""
|
||||
// ? "developmentHistory.lastName LIKE :keyword"
|
||||
// : "1=1",
|
||||
// {
|
||||
// keyword: `%${keyword}%`,
|
||||
// },
|
||||
// )
|
||||
// .orWhere(
|
||||
// keyword != null && keyword != ""
|
||||
// ? "developmentHistory.position LIKE :keyword"
|
||||
// : "1=1",
|
||||
// {
|
||||
// keyword: `%${keyword}%`,
|
||||
// },
|
||||
// )
|
||||
// .orWhere(
|
||||
// keyword != null && keyword != ""
|
||||
// ? "developmentHistory.position LIKE :keyword"
|
||||
// : "1=1",
|
||||
// {
|
||||
// keyword: `%${keyword}%`,
|
||||
// },
|
||||
// )
|
||||
// .orWhere(
|
||||
// keyword != null && keyword != ""
|
||||
// ? "development.projectName LIKE :keyword"
|
||||
// : "1=1",
|
||||
// {
|
||||
// keyword: `%${keyword}%`,
|
||||
// },
|
||||
// )
|
||||
// .orWhere(
|
||||
// keyword != null && keyword != ""
|
||||
// ? "posType.posTypeName LIKE :keyword"
|
||||
// : "1=1",
|
||||
// {
|
||||
// keyword: `%${keyword}%`,
|
||||
// },
|
||||
// )
|
||||
// .orWhere(
|
||||
// keyword != null && keyword != ""
|
||||
// ? "posLevel.posLevelName LIKE :keyword"
|
||||
// : "1=1",
|
||||
// {
|
||||
// keyword: `%${keyword}%`,
|
||||
// },
|
||||
// );
|
||||
// }),
|
||||
// )
|
||||
// .orderBy("developmentHistory.createdAt", "DESC")
|
||||
// .skip((page - 1) * pageSize)
|
||||
// .take(pageSize)
|
||||
// .getManyAndCount();
|
||||
// const formattedData = development.map(item => ({
|
||||
// id: item.id,
|
||||
// citizenId: item.citizenId,
|
||||
// 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.projectName,
|
||||
// }));
|
||||
|
||||
// return new HttpSuccess({ data: formattedData, total });
|
||||
// }
|
||||
|
||||
// /**
|
||||
// * API รายละเอียดประวัติการฝึกอบรม/ดูงาน
|
||||
// *
|
||||
// * @summary DEV_010 - รายละเอียดประวัติการฝึกอบรม/ดูงาน #10
|
||||
// *
|
||||
// * @param {string} id Id โครงการ
|
||||
// */
|
||||
// @Get("{id}")
|
||||
// async GetDevelopemtHistoryById(@Path() id: string) {
|
||||
// const type = "OFFICER";
|
||||
// const getDevelopment = await this.developmentHistoryRepository.findOne({
|
||||
// relations: ["development"],
|
||||
// where: { id: id, type: type },
|
||||
// });
|
||||
// if (!getDevelopment) {
|
||||
// throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลประวัติการฝึกอบรม/ดูงานนี้");
|
||||
// }
|
||||
|
||||
// const formattedData = {
|
||||
// rank: getDevelopment.rank ? getDevelopment.rank : null,
|
||||
// prefix: getDevelopment.prefix ? getDevelopment.prefix : null,
|
||||
// firstName: getDevelopment.firstName ? getDevelopment.firstName : null,
|
||||
// lastName: getDevelopment.lastName ? getDevelopment.lastName : null,
|
||||
// citizenId: getDevelopment.citizenId ? getDevelopment.citizenId : null,
|
||||
// position: getDevelopment.position ? getDevelopment.position : null,
|
||||
// posLevelId: getDevelopment.posLevelId ? getDevelopment.posLevelId : null,
|
||||
// posTypeId: getDevelopment.posTypeId ? getDevelopment.posTypeId : null,
|
||||
// developmentId: getDevelopment.developmentId ? getDevelopment.developmentId : null,
|
||||
// order: getDevelopment.order ? getDevelopment.order : null,
|
||||
// dateOrder: getDevelopment.dateOrder ? getDevelopment.dateOrder : null,
|
||||
// year: getDevelopment.development.year ? getDevelopment.development.year : null,
|
||||
// projectName: getDevelopment.development.projectName ? getDevelopment.development.projectName : null,
|
||||
// dateStart: getDevelopment.development.dateStart ? getDevelopment.development.dateStart : null,
|
||||
// dateEnd: getDevelopment.development.dateEnd ? getDevelopment.development.dateEnd : null,
|
||||
// totalDate: getDevelopment.development.totalDate ? getDevelopment.development.totalDate : null,
|
||||
// addressAcademic: getDevelopment.development.addressAcademic ? getDevelopment.development.addressAcademic : null,
|
||||
// topicAcademic: getDevelopment.development.topicAcademic ? getDevelopment.development.topicAcademic : null,
|
||||
// dateStudyStart: getDevelopment.development.dateStudyStart ? getDevelopment.development.dateStudyStart : null,
|
||||
// dateStudyEnd: getDevelopment.development.dateStudyEnd ? getDevelopment.development.dateStudyEnd : null,
|
||||
// org: null,
|
||||
// };
|
||||
|
||||
// return new HttpSuccess(formattedData);
|
||||
// }
|
||||
}
|
||||
|
|
@ -37,6 +37,9 @@
|
|||
},
|
||||
{
|
||||
"name": "DevelopmentEmployeeHistory", "description": "ประวัติการฝึกอบรม/ดูงานลูกจ้าง."
|
||||
},
|
||||
{
|
||||
"name": "DevelopmentScholarship", "description": "ทุนการศึกษา/ฝึกอบรม"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue