start project
This commit is contained in:
commit
0703810fa3
62 changed files with 12665 additions and 0 deletions
302
src/controllers/DataOptionsController.ts
Normal file
302
src/controllers/DataOptionsController.ts
Normal file
|
|
@ -0,0 +1,302 @@
|
|||
import {
|
||||
Controller,
|
||||
Route,
|
||||
Security,
|
||||
Tags,
|
||||
Path,
|
||||
Request,
|
||||
SuccessResponse,
|
||||
Response,
|
||||
Get,
|
||||
Query,
|
||||
} from "tsoa";
|
||||
import { AppDataSource } from "../database/data-source";
|
||||
import HttpSuccess from "../interfaces/http-success";
|
||||
import HttpStatusCode from "../interfaces/http-status";
|
||||
import HttpError from "../interfaces/http-error";
|
||||
import { RequestWithUser } from "../middlewares/user";
|
||||
import { Knowledge, TypeKnowledge } from "../entities/Knowledge";
|
||||
import { Skill, TypeSkill } from "../entities/Skill";
|
||||
import { MapKnowledgeSkill } from "../entities/MapKnowledgeSkill";
|
||||
import { Personal } from "../entities/Personal";
|
||||
import { Law } from "../entities/Law";
|
||||
import { Assign } from "../entities/Assign";
|
||||
|
||||
@Route("api/v1/data-options")
|
||||
@Tags("Data Options")
|
||||
@Security("bearerAuth")
|
||||
@Response(
|
||||
HttpStatusCode.INTERNAL_SERVER_ERROR,
|
||||
"เกิดข้อผิดพลาด ไม่สามารถแสดงรายการได้ กรุณาลองใหม่ในภายหลัง"
|
||||
)
|
||||
@SuccessResponse(HttpStatusCode.OK, "สำเร็จ")
|
||||
export class DataOptionController extends Controller {
|
||||
private personalRepository = AppDataSource.getRepository(Personal);
|
||||
private knowledgeRepository = AppDataSource.getRepository(Knowledge);
|
||||
private mapKnowledgeSkillRepository =
|
||||
AppDataSource.getRepository(MapKnowledgeSkill);
|
||||
private skillRepository = AppDataSource.getRepository(Skill);
|
||||
private lawRepository = AppDataSource.getRepository(Law);
|
||||
private assignRepository = AppDataSource.getRepository(Assign);
|
||||
|
||||
/**
|
||||
* API list รายการความรู้
|
||||
*
|
||||
* @summary options ความรู้
|
||||
*
|
||||
*/
|
||||
@Get("knowledge")
|
||||
async GetKnowledge(
|
||||
@Query() personal_id: string,
|
||||
@Request() request: RequestWithUser
|
||||
) {
|
||||
const person = await this.personalRepository.findOne({
|
||||
where: { personal_id },
|
||||
});
|
||||
|
||||
console.log(person);
|
||||
|
||||
if (!person) {
|
||||
return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลบุคคล");
|
||||
}
|
||||
|
||||
const result = await this.mapKnowledgeSkillRepository.findOne({
|
||||
where: {
|
||||
positionName: person.positionName,
|
||||
positionLevelName: person.positionLevelName,
|
||||
active: 1,
|
||||
},
|
||||
});
|
||||
|
||||
if (!result) {
|
||||
return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล");
|
||||
}
|
||||
|
||||
const knowledges = await this.knowledgeRepository.find({
|
||||
where: { type: TypeKnowledge.PERFORMANCE, active: 1 },
|
||||
});
|
||||
|
||||
const knowledge = knowledges.map((knowledge) => ({
|
||||
id: knowledge.id,
|
||||
title: knowledge.title,
|
||||
description:
|
||||
result.knowlage_performance_level == 1
|
||||
? knowledge.level1
|
||||
: result.knowlage_performance_level == 2
|
||||
? knowledge.level2
|
||||
: result.knowlage_performance_level == 3
|
||||
? knowledge.level3
|
||||
: result.knowlage_performance_level == 4
|
||||
? knowledge.level4
|
||||
: knowledge.level5,
|
||||
level: result.knowlage_performance_level,
|
||||
}));
|
||||
|
||||
return new HttpSuccess(knowledge);
|
||||
}
|
||||
|
||||
/**
|
||||
* API ข้อมูลทักษะ
|
||||
*
|
||||
* @summary options ทักษะ
|
||||
*
|
||||
*/
|
||||
@Get("skill")
|
||||
async GetSkill(
|
||||
@Query() personal_id: string,
|
||||
@Request() request: RequestWithUser
|
||||
) {
|
||||
const person = await this.personalRepository.findOne({
|
||||
where: { personal_id },
|
||||
});
|
||||
|
||||
if (!person) {
|
||||
return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล");
|
||||
}
|
||||
|
||||
const result = await this.mapKnowledgeSkillRepository.findOne({
|
||||
select: [
|
||||
"skill_computer_level",
|
||||
"skill_english_level",
|
||||
"skill_information_level",
|
||||
"skill_resourse_level",
|
||||
],
|
||||
where: {
|
||||
positionName: person.positionName,
|
||||
positionLevelName: person.positionLevelName,
|
||||
active: 1,
|
||||
},
|
||||
});
|
||||
|
||||
if (!result) {
|
||||
return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล");
|
||||
}
|
||||
|
||||
const skills = await this.skillRepository.find({
|
||||
where: { type: TypeSkill.COMPUTER, active: 1 },
|
||||
});
|
||||
const skill = await skills.map((v) => ({
|
||||
id: v.id,
|
||||
title: v.title,
|
||||
level_description:
|
||||
result.skill_english_level == 1
|
||||
? v.level1
|
||||
: result.skill_english_level == 2
|
||||
? v.level2
|
||||
: result.skill_english_level == 3
|
||||
? v.level3
|
||||
: result.skill_english_level == 4
|
||||
? v.level4
|
||||
: v.level5,
|
||||
level: result.skill_english_level,
|
||||
}));
|
||||
|
||||
const englishs = await this.skillRepository.find({
|
||||
where: { type: TypeSkill.ENG, active: 1 },
|
||||
});
|
||||
const english = await englishs.map((v) => ({
|
||||
id: v.id,
|
||||
title: v.title,
|
||||
level_description:
|
||||
result.skill_english_level == 1
|
||||
? v.level1
|
||||
: result.skill_english_level == 2
|
||||
? v.level2
|
||||
: result.skill_english_level == 3
|
||||
? v.level3
|
||||
: result.skill_english_level == 4
|
||||
? v.level4
|
||||
: v.level5,
|
||||
level: result.skill_english_level,
|
||||
}));
|
||||
|
||||
const informations = await this.skillRepository.find({
|
||||
where: { type: TypeSkill.INFORMATION, active: 1 },
|
||||
});
|
||||
const information = await informations.map((v) => ({
|
||||
id: v.id,
|
||||
title: v.title,
|
||||
level_description:
|
||||
result.skill_information_level == 1
|
||||
? v.level1
|
||||
: result.skill_information_level == 2
|
||||
? v.level2
|
||||
: result.skill_information_level == 3
|
||||
? v.level3
|
||||
: result.skill_information_level == 4
|
||||
? v.level4
|
||||
: v.level5,
|
||||
level: result.skill_information_level,
|
||||
}));
|
||||
|
||||
const resourses = await this.skillRepository.find({
|
||||
where: { type: TypeSkill.RESOURSE, active: 1 },
|
||||
});
|
||||
const resourse = await resourses.map((v) => ({
|
||||
id: v.id,
|
||||
title: v.title,
|
||||
level_description:
|
||||
result.skill_resourse_level == 1
|
||||
? v.level1
|
||||
: result.skill_resourse_level == 2
|
||||
? v.level2
|
||||
: result.skill_resourse_level == 3
|
||||
? v.level3
|
||||
: result.skill_resourse_level == 4
|
||||
? v.level4
|
||||
: v.level5,
|
||||
level: result.skill_resourse_level,
|
||||
}));
|
||||
|
||||
return new HttpSuccess({
|
||||
computer: skill,
|
||||
english: english,
|
||||
information: information,
|
||||
resourse: resourse,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* API list รายการกฎหมาย
|
||||
*
|
||||
* @summary options กฎหมาย
|
||||
*
|
||||
*/
|
||||
@Get("law")
|
||||
async GetLaw(
|
||||
@Query() personal_id: string,
|
||||
@Request() request: RequestWithUser
|
||||
) {
|
||||
const results = await this.lawRepository.find({
|
||||
select: ["id", "parent_id", "description", "status_select"],
|
||||
where: {
|
||||
active: 1,
|
||||
},
|
||||
});
|
||||
|
||||
if (!results) {
|
||||
return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล");
|
||||
}
|
||||
|
||||
const result = await results.map((v) => ({
|
||||
...v,
|
||||
checked: 0,
|
||||
}));
|
||||
|
||||
return new HttpSuccess(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* API ดึงข้อมูลจำนวนครั้งแบบมอบหมายงานและข้อมูลผู้ทดลอง
|
||||
*
|
||||
* @summary จำนวนครั้งแบบมอบหมายงานและข้อมูลผู้ทดลอง
|
||||
*
|
||||
*/
|
||||
@Get("new-assign")
|
||||
async NewAssign(
|
||||
@Query() personal_id: string,
|
||||
@Request() request: RequestWithUser
|
||||
) {
|
||||
const person = await this.personalRepository.findOne({
|
||||
select: [
|
||||
"personal_id",
|
||||
"prefixName",
|
||||
"firstName",
|
||||
"lastName",
|
||||
"posNo",
|
||||
"positionName",
|
||||
"positionLevelName",
|
||||
"positionLineName",
|
||||
"isProbation",
|
||||
"orgRootName",
|
||||
"organization",
|
||||
"createdAt",
|
||||
"updatedAt",
|
||||
],
|
||||
where: { personal_id },
|
||||
});
|
||||
|
||||
if (!person) {
|
||||
return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล");
|
||||
}
|
||||
|
||||
const assign = await this.assignRepository.count({
|
||||
where: {
|
||||
personal_id,
|
||||
},
|
||||
});
|
||||
|
||||
const responsePerson = {
|
||||
id: person.personal_id,
|
||||
...person,
|
||||
};
|
||||
|
||||
const data = await {
|
||||
person: responsePerson,
|
||||
assign_no: assign + 1,
|
||||
assign_month: 6,
|
||||
};
|
||||
|
||||
return new HttpSuccess({ data: data });
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue