fix assign

This commit is contained in:
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 2025-01-21 12:14:28 +07:00
parent fc3f40722e
commit 2709fff7ea

View file

@ -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
}