fix assign
This commit is contained in:
parent
fc3f40722e
commit
2709fff7ea
1 changed files with 172 additions and 106 deletions
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue