no message

This commit is contained in:
Kittapath 2024-05-17 14:17:01 +07:00
parent 977b88875f
commit 22f7e01ea8
2 changed files with 127 additions and 87 deletions

View file

@ -78,25 +78,36 @@ export class kpiReasonController extends Controller {
relations: ["kpiUserEvaluation"], relations: ["kpiUserEvaluation"],
}); });
if (!kpiUserEvaluation) {
throw new HttpError(
HttpStatusCode.NOT_FOUND,
"ไม่พบข้อมูลรายการประเมินผลการปฏิบัติราชการระดับบุคคลนี้",
);
}
let kpiUserEvaluationReason = Object.assign(new KpiUserEvaluationReasonPlan(), requestBody); let kpiUserEvaluationReason = Object.assign(new KpiUserEvaluationReasonPlan(), requestBody);
kpiUserEvaluationReason.type = type.trim().toUpperCase(); kpiUserEvaluationReason.type = type.trim().toUpperCase();
if (type.trim().toUpperCase() == "PROBLEM") { if (type.trim().toUpperCase() == "PROBLEM") {
const _kpiUserEvaluationReason = await this.kpiUserEvaluationReasonPlan.findOne({ const _kpiUserEvaluationReason = await this.kpiUserEvaluationReasonPlan.findOne({
where: { id: id }, where: { id: id },
relations: ["kpiUserPlanned", "kpiUserPlanned.kpiUserEvaluation"],
}); });
if (_kpiUserEvaluationReason != null) kpiUserEvaluationReason = _kpiUserEvaluationReason; if (_kpiUserEvaluationReason != null) {
kpiUserEvaluationReason.status = kpiUserEvaluationReason = _kpiUserEvaluationReason;
kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null || Object.assign(kpiUserEvaluationReason, requestBody);
kpiUserEvaluation.kpiUserEvaluation.evaluatorId == "" kpiUserEvaluationReason.status =
? "DONE" kpiUserEvaluationReason.kpiUserPlanned.kpiUserEvaluation.evaluatorId == null ||
: "DRAFT"; kpiUserEvaluationReason.kpiUserPlanned.kpiUserEvaluation.evaluatorId == ""
? "DONE"
: "DRAFT";
} else {
kpiUserEvaluationReason.status =
kpiUserEvaluation == null ||
kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null ||
kpiUserEvaluation.kpiUserEvaluation.evaluatorId == ""
? "DONE"
: "DRAFT";
}
} else { } else {
if (!kpiUserEvaluation) {
throw new HttpError(
HttpStatusCode.NOT_FOUND,
"ไม่พบข้อมูลรายการประเมินผลการปฏิบัติราชการระดับบุคคลนี้",
);
}
kpiUserEvaluationReason.status = kpiUserEvaluationReason.status =
kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null || kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null ||
kpiUserEvaluation.kpiUserEvaluation.evaluatorId == "" kpiUserEvaluation.kpiUserEvaluation.evaluatorId == ""
@ -176,7 +187,7 @@ export class kpiReasonController extends Controller {
kpiReason.kpiUserPlanned.kpiUserEvaluation.evaluatorId == "" kpiReason.kpiUserPlanned.kpiUserEvaluation.evaluatorId == ""
? "DONE" ? "DONE"
: "EVALUATOR"; : "EVALUATOR";
kpiReason.reasonCommanderHigh = requestBody.reason; kpiReason.reason = requestBody.reason;
kpiReason.lastUpdateUserId = request.user.sub; kpiReason.lastUpdateUserId = request.user.sub;
kpiReason.lastUpdateFullName = request.user.name; kpiReason.lastUpdateFullName = request.user.name;
await this.kpiUserEvaluationReasonPlan.save(kpiReason); await this.kpiUserEvaluationReasonPlan.save(kpiReason);
@ -254,30 +265,36 @@ export class kpiReasonController extends Controller {
where: { id: id }, where: { id: id },
relations: ["kpiUserEvaluation"], relations: ["kpiUserEvaluation"],
}); });
if (!kpiUserEvaluation) {
throw new HttpError(
HttpStatusCode.NOT_FOUND,
"ไม่พบข้อมูลรายการประเมินผลการปฏิบัติราชการระดับบุคคลนี้",
);
}
let kpiUserEvaluationReason = Object.assign(new KpiUserEvaluationReasonRole(), requestBody); let kpiUserEvaluationReason = Object.assign(new KpiUserEvaluationReasonRole(), requestBody);
kpiUserEvaluationReason.type = type.trim().toUpperCase(); kpiUserEvaluationReason.type = type.trim().toUpperCase();
// kpiUserEvaluationReason.status =
// kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null ||
// kpiUserEvaluation.kpiUserEvaluation.evaluatorId == ""
// ? "DONE"
// : "EVALUATOR";
if (type.trim().toUpperCase() == "PROBLEM") { if (type.trim().toUpperCase() == "PROBLEM") {
const _kpiUserEvaluationReason = await this.kpiUserEvaluationReasonRole.findOne({ const _kpiUserEvaluationReason = await this.kpiUserEvaluationReasonRole.findOne({
where: { id: id }, where: { id: id },
relations: ["kpiUserRole", "kpiUserRole.kpiUserEvaluation"],
}); });
if (_kpiUserEvaluationReason != null) kpiUserEvaluationReason = _kpiUserEvaluationReason; if (_kpiUserEvaluationReason != null) {
kpiUserEvaluationReason.status = kpiUserEvaluationReason = _kpiUserEvaluationReason;
kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null || Object.assign(kpiUserEvaluationReason, requestBody);
kpiUserEvaluation.kpiUserEvaluation.evaluatorId == "" kpiUserEvaluationReason.status =
? "DONE" kpiUserEvaluationReason.kpiUserRole.kpiUserEvaluation.evaluatorId == null ||
: "DRAFT"; kpiUserEvaluationReason.kpiUserRole.kpiUserEvaluation.evaluatorId == ""
? "DONE"
: "DRAFT";
} else {
kpiUserEvaluationReason.status =
kpiUserEvaluation == null ||
kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null ||
kpiUserEvaluation.kpiUserEvaluation.evaluatorId == ""
? "DONE"
: "DRAFT";
}
} else { } else {
if (!kpiUserEvaluation) {
throw new HttpError(
HttpStatusCode.NOT_FOUND,
"ไม่พบข้อมูลรายการประเมินผลการปฏิบัติราชการระดับบุคคลนี้",
);
}
kpiUserEvaluationReason.status = kpiUserEvaluationReason.status =
kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null || kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null ||
kpiUserEvaluation.kpiUserEvaluation.evaluatorId == "" kpiUserEvaluation.kpiUserEvaluation.evaluatorId == ""
@ -358,7 +375,7 @@ export class kpiReasonController extends Controller {
kpiReason.kpiUserRole.kpiUserEvaluation.evaluatorId == "" kpiReason.kpiUserRole.kpiUserEvaluation.evaluatorId == ""
? "DONE" ? "DONE"
: "EVALUATOR"; : "EVALUATOR";
kpiReason.reasonCommanderHigh = requestBody.reason; kpiReason.reason = requestBody.reason;
kpiReason.lastUpdateUserId = request.user.sub; kpiReason.lastUpdateUserId = request.user.sub;
kpiReason.lastUpdateFullName = request.user.name; kpiReason.lastUpdateFullName = request.user.name;
await this.kpiUserEvaluationReasonRole.save(kpiReason); await this.kpiUserEvaluationReasonRole.save(kpiReason);
@ -436,33 +453,39 @@ export class kpiReasonController extends Controller {
where: { id: id }, where: { id: id },
relations: ["kpiUserEvaluation"], relations: ["kpiUserEvaluation"],
}); });
if (!kpiUserEvaluation) {
throw new HttpError(
HttpStatusCode.NOT_FOUND,
"ไม่พบข้อมูลรายการประเมินผลการปฏิบัติราชการระดับบุคคลนี้",
);
}
let kpiUserEvaluationReason = Object.assign( let kpiUserEvaluationReason = Object.assign(
new KpiUserEvaluationReasonSpecial(), new KpiUserEvaluationReasonSpecial(),
requestBody, requestBody,
); );
kpiUserEvaluationReason.type = type.trim().toUpperCase(); kpiUserEvaluationReason.type = type.trim().toUpperCase();
// kpiUserEvaluationReason.status =
// kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null ||
// kpiUserEvaluation.kpiUserEvaluation.evaluatorId == ""
// ? "DONE"
// : "EVALUATOR";
if (type.trim().toUpperCase() == "PROBLEM") { if (type.trim().toUpperCase() == "PROBLEM") {
const _kpiUserEvaluationReason = await this.kpiUserEvaluationReasonSpecial.findOne({ const _kpiUserEvaluationReason = await this.kpiUserEvaluationReasonSpecial.findOne({
where: { id: id }, where: { id: id },
relations: ["kpiUserSpecial", "kpiUserSpecial.kpiUserEvaluation"],
}); });
if (_kpiUserEvaluationReason != null) kpiUserEvaluationReason = _kpiUserEvaluationReason; if (_kpiUserEvaluationReason != null) {
kpiUserEvaluationReason.status = kpiUserEvaluationReason = _kpiUserEvaluationReason;
kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null || Object.assign(kpiUserEvaluationReason, requestBody);
kpiUserEvaluation.kpiUserEvaluation.evaluatorId == "" kpiUserEvaluationReason.status =
? "DONE" kpiUserEvaluationReason.kpiUserSpecial.kpiUserEvaluation.evaluatorId == null ||
: "DRAFT"; kpiUserEvaluationReason.kpiUserSpecial.kpiUserEvaluation.evaluatorId == ""
? "DONE"
: "DRAFT";
} else {
kpiUserEvaluationReason.status =
kpiUserEvaluation == null ||
kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null ||
kpiUserEvaluation.kpiUserEvaluation.evaluatorId == ""
? "DONE"
: "DRAFT";
}
} else { } else {
if (!kpiUserEvaluation) {
throw new HttpError(
HttpStatusCode.NOT_FOUND,
"ไม่พบข้อมูลรายการประเมินผลการปฏิบัติราชการระดับบุคคลนี้",
);
}
kpiUserEvaluationReason.status = kpiUserEvaluationReason.status =
kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null || kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null ||
kpiUserEvaluation.kpiUserEvaluation.evaluatorId == "" kpiUserEvaluation.kpiUserEvaluation.evaluatorId == ""
@ -542,7 +565,7 @@ export class kpiReasonController extends Controller {
kpiReason.kpiUserSpecial.kpiUserEvaluation.evaluatorId == "" kpiReason.kpiUserSpecial.kpiUserEvaluation.evaluatorId == ""
? "DONE" ? "DONE"
: "EVALUATOR"; : "EVALUATOR";
kpiReason.reasonCommanderHigh = requestBody.reason; kpiReason.reason = requestBody.reason;
kpiReason.lastUpdateUserId = request.user.sub; kpiReason.lastUpdateUserId = request.user.sub;
kpiReason.lastUpdateFullName = request.user.name; kpiReason.lastUpdateFullName = request.user.name;
await this.kpiUserEvaluationReasonSpecial.save(kpiReason); await this.kpiUserEvaluationReasonSpecial.save(kpiReason);
@ -620,33 +643,39 @@ export class kpiReasonController extends Controller {
where: { id: id }, where: { id: id },
relations: ["kpiUserEvaluation"], relations: ["kpiUserEvaluation"],
}); });
if (!kpiUserEvaluation) {
throw new HttpError(
HttpStatusCode.NOT_FOUND,
"ไม่พบข้อมูลรายการประเมินผลการปฏิบัติราชการระดับบุคคลนี้",
);
}
let kpiUserEvaluationReason = Object.assign( let kpiUserEvaluationReason = Object.assign(
new KpiUserEvaluationReasonDevelopment(), new KpiUserEvaluationReasonDevelopment(),
requestBody, requestBody,
); );
kpiUserEvaluationReason.type = type.trim().toUpperCase(); kpiUserEvaluationReason.type = type.trim().toUpperCase();
// kpiUserEvaluationReason.status =
// kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null ||
// kpiUserEvaluation.kpiUserEvaluation.evaluatorId == ""
// ? "DONE"
// : "EVALUATOR";
if (type.trim().toUpperCase() == "PROBLEM") { if (type.trim().toUpperCase() == "PROBLEM") {
const _kpiUserEvaluationReason = await this.kpiUserEvaluationReasonDevelopment.findOne({ const _kpiUserEvaluationReason = await this.kpiUserEvaluationReasonDevelopment.findOne({
where: { id: id }, where: { id: id },
relations: ["kpiUserDevelopment", "kpiUserDevelopment.kpiUserEvaluation"],
}); });
if (_kpiUserEvaluationReason != null) kpiUserEvaluationReason = _kpiUserEvaluationReason; if (_kpiUserEvaluationReason != null) {
kpiUserEvaluationReason.status = kpiUserEvaluationReason = _kpiUserEvaluationReason;
kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null || Object.assign(kpiUserEvaluationReason, requestBody);
kpiUserEvaluation.kpiUserEvaluation.evaluatorId == "" kpiUserEvaluationReason.status =
? "DONE" kpiUserEvaluationReason.kpiUserDevelopment.kpiUserEvaluation.evaluatorId == null ||
: "DRAFT"; kpiUserEvaluationReason.kpiUserDevelopment.kpiUserEvaluation.evaluatorId == ""
? "DONE"
: "DRAFT";
} else {
kpiUserEvaluationReason.status =
kpiUserEvaluation == null ||
kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null ||
kpiUserEvaluation.kpiUserEvaluation.evaluatorId == ""
? "DONE"
: "DRAFT";
}
} else { } else {
if (!kpiUserEvaluation) {
throw new HttpError(
HttpStatusCode.NOT_FOUND,
"ไม่พบข้อมูลรายการประเมินผลการปฏิบัติราชการระดับบุคคลนี้",
);
}
kpiUserEvaluationReason.status = kpiUserEvaluationReason.status =
kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null || kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null ||
kpiUserEvaluation.kpiUserEvaluation.evaluatorId == "" kpiUserEvaluation.kpiUserEvaluation.evaluatorId == ""
@ -726,7 +755,7 @@ export class kpiReasonController extends Controller {
kpiReason.kpiUserDevelopment.kpiUserEvaluation.evaluatorId == "" kpiReason.kpiUserDevelopment.kpiUserEvaluation.evaluatorId == ""
? "DONE" ? "DONE"
: "EVALUATOR"; : "EVALUATOR";
kpiReason.reasonCommanderHigh = requestBody.reason; kpiReason.reason = requestBody.reason;
kpiReason.lastUpdateUserId = request.user.sub; kpiReason.lastUpdateUserId = request.user.sub;
kpiReason.lastUpdateFullName = request.user.name; kpiReason.lastUpdateFullName = request.user.name;
await this.kpiUserEvaluationReasonDevelopment.save(kpiReason); await this.kpiUserEvaluationReasonDevelopment.save(kpiReason);
@ -808,33 +837,39 @@ export class kpiReasonController extends Controller {
where: { id: id }, where: { id: id },
relations: ["kpiUserEvaluation"], relations: ["kpiUserEvaluation"],
}); });
if (!kpiUserEvaluation) {
throw new HttpError(
HttpStatusCode.NOT_FOUND,
"ไม่พบข้อมูลรายการประเมินผลการปฏิบัติราชการระดับบุคคลนี้",
);
}
let kpiUserEvaluationReason = Object.assign( let kpiUserEvaluationReason = Object.assign(
new KpiUserEvaluationReasonCapacity(), new KpiUserEvaluationReasonCapacity(),
requestBody, requestBody,
); );
kpiUserEvaluationReason.type = type.trim().toUpperCase(); kpiUserEvaluationReason.type = type.trim().toUpperCase();
// kpiUserEvaluationReason.status =
// kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null ||
// kpiUserEvaluation.kpiUserEvaluation.evaluatorId == ""
// ? "DONE"
// : "EVALUATOR";
if (type.trim().toUpperCase() == "PROBLEM") { if (type.trim().toUpperCase() == "PROBLEM") {
const _kpiUserEvaluationReason = await this.kpiUserEvaluationReasonCapacity.findOne({ const _kpiUserEvaluationReason = await this.kpiUserEvaluationReasonCapacity.findOne({
where: { id: id }, where: { id: id },
relations: ["kpiUserCapacity", "kpiUserCapacity.kpiUserEvaluation"],
}); });
if (_kpiUserEvaluationReason != null) kpiUserEvaluationReason = _kpiUserEvaluationReason; if (_kpiUserEvaluationReason != null) {
kpiUserEvaluationReason.status = kpiUserEvaluationReason = _kpiUserEvaluationReason;
kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null || Object.assign(kpiUserEvaluationReason, requestBody);
kpiUserEvaluation.kpiUserEvaluation.evaluatorId == "" kpiUserEvaluationReason.status =
? "DONE" kpiUserEvaluationReason.kpiUserCapacity.kpiUserEvaluation.evaluatorId == null ||
: "DRAFT"; kpiUserEvaluationReason.kpiUserCapacity.kpiUserEvaluation.evaluatorId == ""
? "DONE"
: "DRAFT";
} else {
kpiUserEvaluationReason.status =
kpiUserEvaluation == null ||
kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null ||
kpiUserEvaluation.kpiUserEvaluation.evaluatorId == ""
? "DONE"
: "DRAFT";
}
} else { } else {
if (!kpiUserEvaluation) {
throw new HttpError(
HttpStatusCode.NOT_FOUND,
"ไม่พบข้อมูลรายการประเมินผลการปฏิบัติราชการระดับบุคคลนี้",
);
}
kpiUserEvaluationReason.status = kpiUserEvaluationReason.status =
kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null || kpiUserEvaluation.kpiUserEvaluation.evaluatorId == null ||
kpiUserEvaluation.kpiUserEvaluation.evaluatorId == "" kpiUserEvaluation.kpiUserEvaluation.evaluatorId == ""
@ -914,7 +949,7 @@ export class kpiReasonController extends Controller {
kpiReason.kpiUserCapacity.kpiUserEvaluation.evaluatorId == "" kpiReason.kpiUserCapacity.kpiUserEvaluation.evaluatorId == ""
? "DONE" ? "DONE"
: "EVALUATOR"; : "EVALUATOR";
kpiReason.reasonCommanderHigh = requestBody.reason; kpiReason.reason = requestBody.reason;
kpiReason.lastUpdateUserId = request.user.sub; kpiReason.lastUpdateUserId = request.user.sub;
kpiReason.lastUpdateFullName = request.user.name; kpiReason.lastUpdateFullName = request.user.name;
await this.kpiUserEvaluationReasonCapacity.save(kpiReason); await this.kpiUserEvaluationReasonCapacity.save(kpiReason);

View file

@ -64,6 +64,7 @@ export class KpiUserEvaluationController extends Controller {
status?: string | null; status?: string | null;
results?: string | null; results?: string | null;
reqedit?: string | null; reqedit?: string | null;
evaluating?: boolean | null;
}, },
) { ) {
let profileId: any = null; let profileId: any = null;
@ -91,8 +92,12 @@ export class KpiUserEvaluationController extends Controller {
requestBody.status != null && requestBody.status != undefined requestBody.status != null && requestBody.status != undefined
? requestBody.status.trim().toUpperCase() == "NEW" ? requestBody.status.trim().toUpperCase() == "NEW"
? `evaluationStatus LIKE CASE WHEN evaluatorId = "${profileId}" THEN "NEW_EVALUATOR" WHEN commanderId = "${profileId}" THEN "NEW_COMMANDER" WHEN commanderHighId = "${profileId}" THEN "NEW_COMMANDER_HIGH" ELSE "${requestBody.status.trim().toUpperCase()}" END` ? `evaluationStatus LIKE CASE WHEN evaluatorId = "${profileId}" THEN "NEW_EVALUATOR" WHEN commanderId = "${profileId}" THEN "NEW_COMMANDER" WHEN commanderHighId = "${profileId}" THEN "NEW_COMMANDER_HIGH" ELSE "${requestBody.status.trim().toUpperCase()}" END`
: requestBody.status.trim().toUpperCase() == "EVALUATING" : requestBody.status.trim().toUpperCase() == "EVALUATING_EVALUATOR"
? `evaluationStatus LIKE CASE WHEN evaluatorId = "${profileId}" THEN "EVALUATING_EVALUATOR" WHEN commanderId = "${profileId}" THEN "EVALUATING_COMMANDER" WHEN commanderHighId = "${profileId}" THEN "EVALUATING_COMMANDER_HIGH" ELSE "${requestBody.status.trim().toUpperCase()}" END` ? requestBody.evaluating == null || requestBody.evaluating == undefined
? `evaluationStatus LIKE CASE WHEN evaluatorId = "${profileId}" THEN "EVALUATING_EVALUATOR" WHEN commanderId = "${profileId}" THEN "EVALUATING_COMMANDER" WHEN commanderHighId = "${profileId}" THEN "EVALUATING_COMMANDER_HIGH" ELSE "${requestBody.status.trim().toUpperCase()}" END`
: requestBody.evaluating == true
? `evaluationStatus LIKE CASE WHEN evaluatorId = "${profileId}" THEN "EVALUATING_EVALUATOR" ELSE "${requestBody.status.trim().toUpperCase()}" END`
: `evaluationStatus LIKE CASE WHEN commanderId = "${profileId}" THEN "EVALUATING_COMMANDER" WHEN commanderHighId = "${profileId}" THEN "EVALUATING_COMMANDER_HIGH" ELSE "${requestBody.status.trim().toUpperCase()}" END`
: "evaluationStatus LIKE :status" : "evaluationStatus LIKE :status"
: "1=1", : "1=1",
{ {