From 2709fff7eaeb3529ad353daf02207169da948058 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Tue, 21 Jan 2025 12:14:28 +0700 Subject: [PATCH] fix assign --- src/controllers/AssignController.ts | 278 +++++++++++++++++----------- 1 file changed, 172 insertions(+), 106 deletions(-) diff --git a/src/controllers/AssignController.ts b/src/controllers/AssignController.ts index 5e3331a..5b6f258 100644 --- a/src/controllers/AssignController.ts +++ b/src/controllers/AssignController.ts @@ -21,12 +21,21 @@ import { findEndDate, setLogDataDiff } from "../interfaces/utils"; import { Personal } from "../entities/Personal"; import permission from "../interfaces/permission"; import { Assign, CreateAssign } from "../entities/Assign"; -import { AssignDirector, CreateAssignDirector } from "../entities/AssignDirector"; +import { + AssignDirector, + CreateAssignDirector, +} from "../entities/AssignDirector"; import { AssignJob, CreateAssignJob } from "../entities/AssignJob"; -import { AssignKnowledge, CreateAssignKnowledge } from "../entities/AssignKnowledge"; +import { + AssignKnowledge, + CreateAssignKnowledge, +} from "../entities/AssignKnowledge"; import { AssignLaw, CreateAssignLaw } from "../entities/AssignLaw"; import { AssignSkill, CreateAssignSkill } from "../entities/AssignSkill"; -import { AssignCompetency, CreateAssignCompetency } from "../entities/AssignCompetency"; +import { + AssignCompetency, + CreateAssignCompetency, +} from "../entities/AssignCompetency"; import { AssignCompetencyGroup, CreateAssignCompetencyGroup, @@ -40,18 +49,23 @@ import CallAPI from "../interfaces/call-api"; @Security("bearerAuth") @Response( HttpStatusCode.INTERNAL_SERVER_ERROR, - "เกิดข้อผิดพลาด ไม่สามารถแสดงรายการได้ กรุณาลองใหม่ในภายหลัง", + "เกิดข้อผิดพลาด ไม่สามารถแสดงรายการได้ กรุณาลองใหม่ในภายหลัง" ) export class AssignController extends Controller { private assignRepository = AppDataSource.getRepository(Assign); private personalRepository = AppDataSource.getRepository(Personal); - private assignDirectorRepository = AppDataSource.getRepository(AssignDirector); + private assignDirectorRepository = + AppDataSource.getRepository(AssignDirector); private assignJobRepository = AppDataSource.getRepository(AssignJob); - private assignKnowledgeRepository = AppDataSource.getRepository(AssignKnowledge); + private assignKnowledgeRepository = + AppDataSource.getRepository(AssignKnowledge); private assignLawRepository = AppDataSource.getRepository(AssignLaw); private assignSkillRepository = AppDataSource.getRepository(AssignSkill); - private assignCompetencyRepository = AppDataSource.getRepository(AssignCompetency); - private assignCompetencyGroupRepository = AppDataSource.getRepository(AssignCompetencyGroup); + private assignCompetencyRepository = + AppDataSource.getRepository(AssignCompetency); + private assignCompetencyGroupRepository = AppDataSource.getRepository( + AssignCompetencyGroup + ); private assignOutputRepository = AppDataSource.getRepository(AssignOutput); private lawsRepository = AppDataSource.getRepository(Law); @@ -73,7 +87,10 @@ export class AssignController extends Controller { * */ @Post("") - async AddAssign(@Request() request: RequestWithUser, @Body() requestBody: CreateAssign) { + async AddAssign( + @Request() request: RequestWithUser, + @Body() requestBody: CreateAssign + ) { await new permission().PermissionUpdate(request, "SYS_PROBATION"); const person = await this.personalRepository.findOne({ where: { @@ -108,15 +125,17 @@ export class AssignController extends Controller { const assign = await this.assignRepository.save(data, { data: request }); setLogDataDiff(request, { before, after: data }); - const jobs = await requestBody.assign_jobs.map((x: CreateAssignJob, index: number) => ({ - ...x, - id: index + 1, - assign_id: assign.id, - createdUserId: request.user.sub, - createdFullName: request.user.name, - updateUserId: request.user.sub, - updateFullName: request.user.name, - })); + const jobs = await requestBody.assign_jobs.map( + (x: CreateAssignJob, index: number) => ({ + ...x, + id: index + 1, + assign_id: assign.id, + createdUserId: request.user.sub, + createdFullName: request.user.name, + updateUserId: request.user.sub, + updateFullName: request.user.name, + }) + ); await this.assignJobRepository.save(jobs, { data: request }); setLogDataDiff(request, { before, after: jobs }); @@ -129,32 +148,36 @@ export class AssignController extends Controller { createdFullName: request.user.name, updateUserId: request.user.sub, updateFullName: request.user.name, - }), + }) ); await this.assignKnowledgeRepository.save(knowledges, { data: request }); setLogDataDiff(request, { before, after: knowledges }); - const laws = await requestBody.assign_law.map((x: CreateAssignLaw, index: number) => ({ - ordering: index + 1, - law_id: x.id, - assign_id: assign.id, - createdUserId: request.user.sub, - createdFullName: request.user.name, - updateUserId: request.user.sub, - updateFullName: request.user.name, - })); + const laws = await requestBody.assign_law.map( + (x: CreateAssignLaw, index: number) => ({ + ordering: index + 1, + law_id: x.id, + assign_id: assign.id, + createdUserId: request.user.sub, + createdFullName: request.user.name, + updateUserId: request.user.sub, + updateFullName: request.user.name, + }) + ); await this.assignLawRepository.save(laws, { data: request }); setLogDataDiff(request, { before, after: laws }); - const skills = await requestBody.assign_skill.map((x: CreateAssignSkill, index: number) => ({ - skill_id: index + 1, - skill_level: x.level, - assign_id: assign.id, - createdUserId: request.user.sub, - createdFullName: request.user.name, - updateUserId: request.user.sub, - updateFullName: request.user.name, - })); + const skills = await requestBody.assign_skill.map( + (x: CreateAssignSkill, index: number) => ({ + skill_id: index + 1, + skill_level: x.level, + assign_id: assign.id, + createdUserId: request.user.sub, + createdFullName: request.user.name, + updateUserId: request.user.sub, + updateFullName: request.user.name, + }) + ); await this.assignSkillRepository.save(skills, { data: request }); setLogDataDiff(request, { before, after: skills }); @@ -169,7 +192,7 @@ export class AssignController extends Controller { createdFullName: request.user.name, updateUserId: request.user.sub, updateFullName: request.user.name, - }), + }) ); await this.assignCompetencyRepository.save(competencise, { data: request }); setLogDataDiff(request, { before, after: competencise }); @@ -185,7 +208,7 @@ export class AssignController extends Controller { createdFullName: request.user.name, updateUserId: request.user.sub, updateFullName: request.user.name, - }), + }) ); await this.assignCompetencyGroupRepository.save(competencyGroups, { data: request, @@ -201,7 +224,7 @@ export class AssignController extends Controller { createdFullName: request.user.name, updateUserId: request.user.sub, updateFullName: request.user.name, - }), + }) ); await this.assignOutputRepository.save(outputs, { data: request }); setLogDataDiff(request, { before, after: outputs }); @@ -216,7 +239,7 @@ export class AssignController extends Controller { createdFullName: request.user.name, updateUserId: request.user.sub, updateFullName: request.user.name, - }), + }) ); await this.assignDirectorRepository.save(directors, { data: request }); setLogDataDiff(request, { before, after: directors }); @@ -234,7 +257,7 @@ export class AssignController extends Controller { async EditAssign( @Query() assign_id: string, @Request() request: RequestWithUser, - @Body() requestBody: CreateAssign, + @Body() requestBody: CreateAssign ) { await new permission().PermissionUpdate(request, "SYS_PROBATION"); @@ -268,15 +291,17 @@ export class AssignController extends Controller { }; await this.assignJobRepository.delete({ assign_id }); - const jobs = await requestBody.assign_jobs.map((x: CreateAssignJob, index: number) => ({ - ...x, - id: index + 1, - assign_id: assign.id, - createdUserId: request.user.sub, - createdFullName: request.user.name, - updateUserId: request.user.sub, - updateFullName: request.user.name, - })); + const jobs = await requestBody.assign_jobs.map( + (x: CreateAssignJob, index: number) => ({ + ...x, + id: index + 1, + assign_id: assign.id, + createdUserId: request.user.sub, + createdFullName: request.user.name, + updateUserId: request.user.sub, + updateFullName: request.user.name, + }) + ); await this.assignJobRepository.save(jobs); await this.assignKnowledgeRepository.delete({ assign_id }); @@ -289,32 +314,36 @@ export class AssignController extends Controller { createdFullName: request.user.name, updateUserId: request.user.sub, updateFullName: request.user.name, - }), + }) ); await this.assignKnowledgeRepository.save(knowledges); await this.assignLawRepository.delete({ assign_id }); - const laws = await requestBody.assign_law.map((x: CreateAssignLaw, index: number) => ({ - ordering: index + 1, - law_id: x.id, - assign_id: assign.id, - createdUserId: request.user.sub, - createdFullName: request.user.name, - updateUserId: request.user.sub, - updateFullName: request.user.name, - })); + const laws = await requestBody.assign_law.map( + (x: CreateAssignLaw, index: number) => ({ + ordering: index + 1, + law_id: x.id, + assign_id: assign.id, + createdUserId: request.user.sub, + createdFullName: request.user.name, + updateUserId: request.user.sub, + updateFullName: request.user.name, + }) + ); await this.assignLawRepository.save(laws); await this.assignSkillRepository.delete({ assign_id }); - const skills = await requestBody.assign_skill.map((x: CreateAssignSkill, index: number) => ({ - skill_id: index + 1, - skill_level: x.level, - assign_id: assign.id, - createdUserId: request.user.sub, - createdFullName: request.user.name, - updateUserId: request.user.sub, - updateFullName: request.user.name, - })); + const skills = await requestBody.assign_skill.map( + (x: CreateAssignSkill, index: number) => ({ + skill_id: index + 1, + skill_level: x.level, + assign_id: assign.id, + createdUserId: request.user.sub, + createdFullName: request.user.name, + updateUserId: request.user.sub, + updateFullName: request.user.name, + }) + ); await this.assignSkillRepository.save(skills); await this.assignCompetencyRepository.delete({ assign_id }); @@ -329,7 +358,7 @@ export class AssignController extends Controller { createdFullName: request.user.name, updateUserId: request.user.sub, updateFullName: request.user.name, - }), + }) ); await this.assignCompetencyRepository.save(competencise); @@ -345,7 +374,7 @@ export class AssignController extends Controller { createdFullName: request.user.name, updateUserId: request.user.sub, updateFullName: request.user.name, - }), + }) ); await this.assignCompetencyGroupRepository.save(competencyGroups); @@ -359,7 +388,7 @@ export class AssignController extends Controller { createdFullName: request.user.name, updateUserId: request.user.sub, updateFullName: request.user.name, - }), + }) ); await this.assignOutputRepository.save(outputs); @@ -374,7 +403,7 @@ export class AssignController extends Controller { createdFullName: request.user.name, updateUserId: request.user.sub, updateFullName: request.user.name, - }), + }) ); await this.assignDirectorRepository.save(directors); @@ -453,9 +482,17 @@ export class AssignController extends Controller { * */ @Get("assign-list") - async ListPersonal(@Request() request: RequestWithUser, @Query() personal_id: string) { - let _workflow = await new permission().Workflow(request, personal_id, "SYS_PROBATION"); - if (_workflow == false) await new permission().PermissionGet(request, "SYS_PROBATION"); + async ListPersonal( + @Request() request: RequestWithUser, + @Query() personal_id: string + ) { + let _workflow = await new permission().Workflow( + request, + personal_id, + "SYS_PROBATION" + ); + if (_workflow == false) + await new permission().PermissionGet(request, "SYS_PROBATION"); const lists = await this.assignRepository.find({ select: ["id", "round_no", "date_start", "date_finish"], where: { personal_id }, @@ -483,10 +520,14 @@ export class AssignController extends Controller { } } - const commanderData = await (director.find((x) => x.role == "commander") ?? null); + const commanderData = await (director.find( + (x) => x.role == "commander" + ) ?? null); const commander = commanderData ? commanderData.fullname : null; - const chairmanData = await (director.find((x) => x.role == "chairman") ?? null); + const chairmanData = await (director.find( + (x) => x.role == "chairman" + ) ?? null); const chairman = chairmanData ? chairmanData.fullname : null; await result.push({ @@ -495,7 +536,7 @@ export class AssignController extends Controller { commander: commander, chairman: chairman, }); - }), + }) ); return new HttpSuccess(result); @@ -508,7 +549,10 @@ export class AssignController extends Controller { * */ @Get("assign-user-list") - async ListPersonalUser(@Request() request: RequestWithUser, @Query() personal_id: string) { + async ListPersonalUser( + @Request() request: RequestWithUser, + @Query() personal_id: string + ) { const lists = await this.assignRepository.find({ select: ["id", "round_no", "date_start", "date_finish"], where: { personal_id }, @@ -536,10 +580,14 @@ export class AssignController extends Controller { } } - const commanderData = await (director.find((x) => x.role == "commander") ?? null); + const commanderData = await (director.find( + (x) => x.role == "commander" + ) ?? null); const commander = commanderData ? commanderData.fullname : null; - const chairmanData = await (director.find((x) => x.role == "chairman") ?? null); + const chairmanData = await (director.find( + (x) => x.role == "chairman" + ) ?? null); const chairman = chairmanData ? chairmanData.fullname : null; await result.push({ @@ -548,7 +596,7 @@ export class AssignController extends Controller { commander: commander, chairman: chairman, }); - }), + }) ); return new HttpSuccess(result); @@ -564,10 +612,15 @@ export class AssignController extends Controller { async GetAssign( @Query() assign_id: string, @Query() isReport: boolean = false, - @Request() request: RequestWithUser, + @Request() request: RequestWithUser ) { - let _workflow = await new permission().Workflow(request, assign_id, "SYS_PROBATION"); - if (_workflow == false) await new permission().PermissionGet(request, "SYS_PROBATION"); + let _workflow = await new permission().Workflow( + request, + assign_id, + "SYS_PROBATION" + ); + if (_workflow == false) + await new permission().PermissionGet(request, "SYS_PROBATION"); const assign = await this.assignRepository.findOne({ select: [ @@ -621,9 +674,11 @@ export class AssignController extends Controller { name: `${profileData.prefixName}${profileData.firstName} ${profileData.lastName}`, Position: profileData.positionName, Department: splitOcAmount > 2 ? splitOc[splitOcAmount - 3] : "-", - OrganizationOrganization: splitOcAmount > 1 ? splitOc[splitOcAmount - 2] : "-", + OrganizationOrganization: + splitOcAmount > 1 ? splitOc[splitOcAmount - 2] : "-", Oc: profileData.orgRootName, - PositionAndLevel: profileData.positionName + profileData.positionLevelName, + PositionAndLevel: + profileData.positionName + profileData.positionLevelName, }; const jobs = await this.assignJobRepository.find({ @@ -676,7 +731,7 @@ export class AssignController extends Controller { description: description, status_select: x.status_select, }; - }), + }) ); const skillsData = await this.assignSkillRepository.find({ @@ -703,7 +758,12 @@ export class AssignController extends Controller { })); const competencyData = await this.assignCompetencyRepository.find({ - select: ["competency_id", "competency_level", "competency_name", "competency_description"], + select: [ + "competency_id", + "competency_level", + "competency_name", + "competency_description", + ], where: { assign_id }, order: { createdAt: "ASC" }, }); @@ -715,16 +775,18 @@ export class AssignController extends Controller { description: x.competency_description, })); - const competencyGroupData = await this.assignCompetencyGroupRepository.find({ - select: [ - "competency_group_id", - "competency_group_level", - "competency_group_name", - "competency_group_description", - ], - where: { assign_id }, - order: { createdAt: "ASC" }, - }); + const competencyGroupData = await this.assignCompetencyGroupRepository.find( + { + select: [ + "competency_group_id", + "competency_group_level", + "competency_group_name", + "competency_group_description", + ], + where: { assign_id }, + order: { createdAt: "ASC" }, + } + ); const competency_groups = await competencyGroupData.map((x) => ({ id: x.competency_group_id, level: x.competency_group_level, @@ -751,13 +813,16 @@ export class AssignController extends Controller { ...e, name: e.fullname, label: - e.fullname + " " + (e.position ? `(${e.position}, ${e.posType}: ${e.posLevel})` : ""), + e.fullname + + " " + + (e.position ? `(${e.position}${e.posLevel})` : ""), Position: e.position + e.posLevel, // report }); } } - const commanderData = await (director.find((x) => x.role == "commander") ?? null); + const commanderData = await (director.find((x) => x.role == "commander") ?? + null); const commander = await (commanderData ? { ...commanderData, @@ -766,13 +831,14 @@ export class AssignController extends Controller { commanderData.fullname + " " + (commanderData.position - ? `(${commanderData.position}, ${commanderData.posType}: ${commanderData.posLevel})` + ? `(${commanderData.position}${commanderData.posLevel})` : ""), Position: commanderData.position + commanderData.posLevel, // report } : null); - const chairmanData = await (director.find((x) => x.role == "chairman") ?? null); + const chairmanData = await (director.find((x) => x.role == "chairman") ?? + null); const chairman = await (chairmanData ? { ...chairmanData, @@ -781,7 +847,7 @@ export class AssignController extends Controller { chairmanData.fullname + " " + (chairmanData.position - ? `(${chairmanData.position}, ${chairmanData.posType}: ${chairmanData.posLevel})` + ? `(${chairmanData.position},${chairmanData.posLevel})` : ""), Position: chairmanData.position + chairmanData.posLevel, // report }