update issue #1642

This commit is contained in:
Bright 2025-08-06 11:15:08 +07:00
parent f77c8467d6
commit e40c9eb001
3 changed files with 89 additions and 40 deletions

View file

@ -1149,7 +1149,7 @@ export class ProfileController extends Controller {
where: { where: {
profileId: id, profileId: id,
commandCode: In(["5", "6"]), commandCode: In(["5", "6"]),
isEntry: false, // isEntry: false,
}, },
order: { order: "ASC" }, order: { order: "ASC" },
}); });
@ -1317,15 +1317,11 @@ export class ProfileController extends Controller {
.createQueryBuilder("profileLeave") .createQueryBuilder("profileLeave")
.leftJoinAndSelect("profileLeave.leaveType", "leaveType") .leftJoinAndSelect("profileLeave.leaveType", "leaveType")
.select([ .select([
"profileLeave.leaveTypeId", "profileLeave.dateLeaveStart AS dateLeaveStart",
"profileLeave.dateLeaveStart", "profileLeave.dateLeaveEnd AS dateLeaveEnd",
"profileLeave.dateLeaveEnd", "profileLeave.leaveDays AS leaveDays",
"leaveType.name as name", "profileLeave.reason AS reason",
"leaveType.code as code", "leaveType.name as name"
"profileLeave.status",
"profileLeave.profileId",
"profileLeave.leaveDays",
"profileLeave.reason",
]) ])
.where("profileLeave.profileId = :profileId", { profileId: id }) .where("profileLeave.profileId = :profileId", { profileId: id })
.andWhere("leaveType.code IN (:...codes)", { codes: ["LV-008", "LV-009", "LV-010"] }) .andWhere("leaveType.code IN (:...codes)", { codes: ["LV-008", "LV-009", "LV-010"] })
@ -1335,13 +1331,12 @@ export class ProfileController extends Controller {
const leaves2 = const leaves2 =
leave2_raw.length > 0 leave2_raw.length > 0
? leave2_raw.map((item) => ({ ? leave2_raw.map((item) => ({
date: item.dateLeaveStart date: item.dateLeaveStart && item.dateLeaveEnd
? Extension.ToThaiNumber(Extension.ToThaiFullDate2(item.dateLeaveStart)) ? Extension.ToThaiNumber(Extension.ToThaiFullDate2(item.dateLeaveStart)) + " - "
: item.dateLeaveEnd + Extension.ToThaiNumber(Extension.ToThaiFullDate2(item.dateLeaveEnd))
? " - " + Extension.ToThaiNumber(Extension.ToThaiFullDate2(item.dateLeaveEnd)) : "-",
: "",
type: item.name || "-", type: item.name || "-",
leaveDays: item.leaveDays ? Extension.ToThaiNumber(item.leaveDays) : "-", leaveDays: item.leaveDays ? Extension.ToThaiNumber(item.leaveDays.toString()) : "-",
reason: item.reason || "-", reason: item.reason || "-",
})) }))
: [ : [
@ -1611,7 +1606,7 @@ export class ProfileController extends Controller {
where: { where: {
profileId: id, profileId: id,
commandCode: "7", commandCode: "7",
isEntry: false, // isEntry: false,
}, },
order: { order: "ASC" }, order: { order: "ASC" },
}); });
@ -1688,6 +1683,17 @@ export class ProfileController extends Controller {
(profiles.currentZipCode ? " " + profiles.currentZipCode : ""), (profiles.currentZipCode ? " " + profiles.currentZipCode : ""),
) )
: ""; : "";
let portfolio:any
await new CallAPI()
.GetData(req, `/development/portfolio/kk1/${profiles?.keycloak}`)
.then((x) => {
portfolio = x.result;
})
.catch(() => {});
if (!portfolio)
portfolio = [{name: "-", year: "-"}]
const data = { const data = {
fullName: `${profiles?.prefix}${profiles?.firstName} ${profiles?.lastName}`, fullName: `${profiles?.prefix}${profiles?.firstName} ${profiles?.lastName}`,
prefix: profiles?.prefix != null ? profiles.prefix : "", prefix: profiles?.prefix != null ? profiles.prefix : "",
@ -1841,6 +1847,7 @@ export class ProfileController extends Controller {
assessments, assessments,
profileAbility, profileAbility,
otherIncome, otherIncome,
portfolio
}; };
return new HttpSuccess({ return new HttpSuccess({

View file

@ -10,6 +10,7 @@ import {
Route, Route,
Security, Security,
Tags, Tags,
Query
} from "tsoa"; } from "tsoa";
import { AppDataSource } from "../database/data-source"; import { AppDataSource } from "../database/data-source";
import HttpSuccess from "../interfaces/http-success"; import HttpSuccess from "../interfaces/http-success";
@ -25,6 +26,7 @@ import {
} from "../entities/ProfileDevelopment"; } from "../entities/ProfileDevelopment";
import permission from "../interfaces/permission"; import permission from "../interfaces/permission";
import { DevelopmentProject } from "../entities/DevelopmentProject"; import { DevelopmentProject } from "../entities/DevelopmentProject";
import { In, Brackets } from "typeorm";
@Route("api/v1/org/profile-employee/development") @Route("api/v1/org/profile-employee/development")
@Tags("ProfileDevelopment") @Tags("ProfileDevelopment")
@Security("bearerAuth") @Security("bearerAuth")
@ -48,15 +50,60 @@ export class ProfileDevelopmentEmployeeController extends Controller {
} }
@Get("{profileId}") @Get("{profileId}")
public async getDevelopment(@Path() profileId: string, @Request() req: RequestWithUser) { public async getDevelopment(
@Path() profileId: string,
@Request() req: RequestWithUser,
@Query("page") page: number = 1,
@Query("pageSize") pageSize: number = 10,
@Query() searchKeyword: string = "",
) {
let _workflow = await new permission().Workflow(req, profileId, "SYS_REGISTRY_EMP"); let _workflow = await new permission().Workflow(req, profileId, "SYS_REGISTRY_EMP");
if (_workflow == false) if (_workflow == false)
await new permission().PermissionOrgUserGet(req, "SYS_REGISTRY_EMP", profileId); await new permission().PermissionOrgUserGet(req, "SYS_REGISTRY_EMP", profileId);
const lists = await this.developmentRepository.find({ const [profileDevelopment, total] = await AppDataSource.getRepository(ProfileDevelopment)
where: { profileEmployeeId: profileId }, .createQueryBuilder("profileDevelopment")
order: { createdAt: "ASC" }, .where({ profileEmployeeId: profileId })
}); .andWhere(
return new HttpSuccess(lists); new Brackets((qb) => {
qb.where(
searchKeyword != undefined && searchKeyword != null && searchKeyword != ""
? "profileDevelopment.name LIKE :keyword"
: "1=1",
{
keyword: `%${searchKeyword}%`,
},
)
.orWhere(
searchKeyword != undefined && searchKeyword != null && searchKeyword != ""
? "profileDevelopment.developmentTarget LIKE :keyword"
: "1=1",
{
keyword: `%${searchKeyword}%`,
},
)
.orWhere(
searchKeyword != undefined && searchKeyword != null && searchKeyword != ""
? "profileDevelopment.developmentResults LIKE :keyword"
: "1=1",
{
keyword: `%${searchKeyword}%`,
},
)
.orWhere(
searchKeyword != undefined && searchKeyword != null && searchKeyword != ""
? "profileDevelopment.developmentReport LIKE :keyword"
: "1=1",
{
keyword: `%${searchKeyword}%`,
},
);
}),
)
.orderBy("profileDevelopment.createdAt", "ASC")
.skip((page - 1) * pageSize)
.take(pageSize)
.getManyAndCount();
return new HttpSuccess({ data: profileDevelopment, total });
} }
@Get("history/{developmentId}") @Get("history/{developmentId}")

View file

@ -1144,7 +1144,7 @@ export class ProfileEmployeeController extends Controller {
where: { where: {
profileEmployeeId: id, profileEmployeeId: id,
commandCode: In(["5", "6"]), commandCode: In(["5", "6"]),
isEntry: false, // isEntry: false,
}, },
order: { order: "ASC" }, order: { order: "ASC" },
}); });
@ -1310,15 +1310,11 @@ export class ProfileEmployeeController extends Controller {
.createQueryBuilder("profileLeave") .createQueryBuilder("profileLeave")
.leftJoinAndSelect("profileLeave.leaveType", "leaveType") .leftJoinAndSelect("profileLeave.leaveType", "leaveType")
.select([ .select([
"profileLeave.leaveTypeId", "profileLeave.dateLeaveStart AS dateLeaveStart",
"profileLeave.dateLeaveStart", "profileLeave.dateLeaveEnd AS dateLeaveEnd",
"profileLeave.dateLeaveEnd", "profileLeave.leaveDays AS leaveDays",
"leaveType.name as name", "profileLeave.reason AS reason",
"leaveType.code as code", "leaveType.name as name"
"profileLeave.status",
"profileLeave.profileEmployeeId",
"profileLeave.leaveDays",
"profileLeave.reason",
]) ])
.where("profileLeave.profileEmployeeId = :profileId", { profileId: id }) .where("profileLeave.profileEmployeeId = :profileId", { profileId: id })
.andWhere("leaveType.code IN (:...codes)", { codes: ["LV-008", "LV-009", "LV-010"] }) .andWhere("leaveType.code IN (:...codes)", { codes: ["LV-008", "LV-009", "LV-010"] })
@ -1328,13 +1324,12 @@ export class ProfileEmployeeController extends Controller {
const leaves2 = const leaves2 =
leave2_raw.length > 0 leave2_raw.length > 0
? leave2_raw.map((item) => ({ ? leave2_raw.map((item) => ({
date: item.dateLeaveStart date: item.dateLeaveStart && item.dateLeaveEnd
? Extension.ToThaiNumber(Extension.ToThaiFullDate2(item.dateLeaveStart)) ? Extension.ToThaiNumber(Extension.ToThaiFullDate2(item.dateLeaveStart)) + " - "
: item.dateLeaveEnd + Extension.ToThaiNumber(Extension.ToThaiFullDate2(item.dateLeaveEnd))
? " - " + Extension.ToThaiNumber(Extension.ToThaiFullDate2(item.dateLeaveEnd)) : "-",
: "",
type: item.name || "-", type: item.name || "-",
leaveDays: item.leaveDays ? Extension.ToThaiNumber(item.leaveDays) : "-", leaveDays: item.leaveDays ? Extension.ToThaiNumber(item.leaveDays.toString()) : "-",
reason: item.reason || "-", reason: item.reason || "-",
})) }))
: [ : [
@ -1601,7 +1596,7 @@ export class ProfileEmployeeController extends Controller {
where: { where: {
profileEmployeeId: id, profileEmployeeId: id,
commandCode: "7", commandCode: "7",
isEntry: false, // isEntry: false,
}, },
order: { order: "ASC" }, order: { order: "ASC" },
}); });