Merge branch 'develop' into adiDev
This commit is contained in:
commit
168a5ec53c
7 changed files with 390 additions and 276 deletions
|
|
@ -42,11 +42,11 @@ export class LoginController extends Controller {
|
||||||
_data = x;
|
_data = x;
|
||||||
})
|
})
|
||||||
.catch(async (x) => {
|
.catch(async (x) => {
|
||||||
throw new HttpError(HttpStatus.UNAUTHORIZED, "ชื่อผู้ใช้งานหรือรหัสผ่านไม่ถูกต้อง4");
|
throw new HttpError(HttpStatus.UNAUTHORIZED, "ชื่อผู้ใช้งานหรือรหัสผ่านไม่ถูกต้อง");
|
||||||
}),
|
}),
|
||||||
]);
|
]);
|
||||||
if (_data == null) {
|
if (_data == null) {
|
||||||
return new HttpError(HttpStatus.UNAUTHORIZED, "ชื่อผู้ใช้งานหรือรหัสผ่านไม่ถูกต้อง5");
|
return new HttpError(HttpStatus.UNAUTHORIZED, "ชื่อผู้ใช้งานหรือรหัสผ่านไม่ถูกต้อง");
|
||||||
} else {
|
} else {
|
||||||
return new HttpSuccess(_data);
|
return new HttpSuccess(_data);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -548,6 +548,36 @@ export class OrganizationDotnetController extends Controller {
|
||||||
x.orgRevision?.orgRevisionIsDraft == false &&
|
x.orgRevision?.orgRevisionIsDraft == false &&
|
||||||
x.orgRevision?.orgRevisionIsCurrent == true,
|
x.orgRevision?.orgRevisionIsCurrent == true,
|
||||||
)?.orgChild4?.orgChild4Name ?? null,
|
)?.orgChild4?.orgChild4Name ?? null,
|
||||||
|
rootId:
|
||||||
|
profile?.current_holders?.find(
|
||||||
|
(x) =>
|
||||||
|
x.orgRevision?.orgRevisionIsDraft == false &&
|
||||||
|
x.orgRevision?.orgRevisionIsCurrent == true,
|
||||||
|
)?.orgRootId ?? null,
|
||||||
|
child1Id:
|
||||||
|
profile?.current_holders?.find(
|
||||||
|
(x) =>
|
||||||
|
x.orgRevision?.orgRevisionIsDraft == false &&
|
||||||
|
x.orgRevision?.orgRevisionIsCurrent == true,
|
||||||
|
)?.orgChild1Id ?? null,
|
||||||
|
child2Id:
|
||||||
|
profile?.current_holders?.find(
|
||||||
|
(x) =>
|
||||||
|
x.orgRevision?.orgRevisionIsDraft == false &&
|
||||||
|
x.orgRevision?.orgRevisionIsCurrent == true,
|
||||||
|
)?.orgChild2Id ?? null,
|
||||||
|
child3Id:
|
||||||
|
profile?.current_holders?.find(
|
||||||
|
(x) =>
|
||||||
|
x.orgRevision?.orgRevisionIsDraft == false &&
|
||||||
|
x.orgRevision?.orgRevisionIsCurrent == true,
|
||||||
|
)?.orgChild3Id ?? null,
|
||||||
|
child4Id:
|
||||||
|
profile?.current_holders?.find(
|
||||||
|
(x) =>
|
||||||
|
x.orgRevision?.orgRevisionIsDraft == false &&
|
||||||
|
x.orgRevision?.orgRevisionIsCurrent == true,
|
||||||
|
)?.orgChild4Id ?? null,
|
||||||
commander: fullname,
|
commander: fullname,
|
||||||
posLevel: profile.posLevel?.posLevelName ?? null,
|
posLevel: profile.posLevel?.posLevelName ?? null,
|
||||||
posType: profile.posType?.posTypeName ?? null,
|
posType: profile.posType?.posTypeName ?? null,
|
||||||
|
|
@ -785,6 +815,36 @@ export class OrganizationDotnetController extends Controller {
|
||||||
x.orgRevision?.orgRevisionIsDraft == false &&
|
x.orgRevision?.orgRevisionIsDraft == false &&
|
||||||
x.orgRevision?.orgRevisionIsCurrent == true,
|
x.orgRevision?.orgRevisionIsCurrent == true,
|
||||||
)?.orgChild4?.orgChild4Name ?? null,
|
)?.orgChild4?.orgChild4Name ?? null,
|
||||||
|
rootId:
|
||||||
|
profile?.current_holders?.find(
|
||||||
|
(x) =>
|
||||||
|
x.orgRevision?.orgRevisionIsDraft == false &&
|
||||||
|
x.orgRevision?.orgRevisionIsCurrent == true,
|
||||||
|
)?.orgRootId ?? null,
|
||||||
|
child1Id:
|
||||||
|
profile?.current_holders?.find(
|
||||||
|
(x) =>
|
||||||
|
x.orgRevision?.orgRevisionIsDraft == false &&
|
||||||
|
x.orgRevision?.orgRevisionIsCurrent == true,
|
||||||
|
)?.orgChild1Id ?? null,
|
||||||
|
child2Id:
|
||||||
|
profile?.current_holders?.find(
|
||||||
|
(x) =>
|
||||||
|
x.orgRevision?.orgRevisionIsDraft == false &&
|
||||||
|
x.orgRevision?.orgRevisionIsCurrent == true,
|
||||||
|
)?.orgChild2Id ?? null,
|
||||||
|
child3Id:
|
||||||
|
profile?.current_holders?.find(
|
||||||
|
(x) =>
|
||||||
|
x.orgRevision?.orgRevisionIsDraft == false &&
|
||||||
|
x.orgRevision?.orgRevisionIsCurrent == true,
|
||||||
|
)?.orgChild3Id ?? null,
|
||||||
|
child4Id:
|
||||||
|
profile?.current_holders?.find(
|
||||||
|
(x) =>
|
||||||
|
x.orgRevision?.orgRevisionIsDraft == false &&
|
||||||
|
x.orgRevision?.orgRevisionIsCurrent == true,
|
||||||
|
)?.orgChild4Id ?? null,
|
||||||
commander: fullname,
|
commander: fullname,
|
||||||
posLevel: profile.posLevel?.posLevelName ?? null,
|
posLevel: profile.posLevel?.posLevelName ?? null,
|
||||||
posType: profile.posType?.posTypeName ?? null,
|
posType: profile.posType?.posTypeName ?? null,
|
||||||
|
|
|
||||||
|
|
@ -562,270 +562,274 @@ export class PositionController extends Controller {
|
||||||
@Get("position")
|
@Get("position")
|
||||||
async findPosition(@Query("keyword") keyword?: string, @Query("type") type?: string) {
|
async findPosition(@Query("keyword") keyword?: string, @Query("type") type?: string) {
|
||||||
let findPosDict: any;
|
let findPosDict: any;
|
||||||
if(keyword && keyword?.length > 0){
|
if (keyword && keyword?.length > 0) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case "positionName":
|
case "positionName":
|
||||||
findPosDict = await this.posDictRepository.find({
|
findPosDict = await this.posDictRepository.find({
|
||||||
where: { posDictName: keyword && keyword.length > 0?Like(`%${keyword}%`):"1=1" },
|
where: { posDictName: keyword && keyword.length > 0 ? Like(`%${keyword}%`) : "1=1" },
|
||||||
relations: ["posType", "posLevel", "posExecutive"],
|
relations: ["posType", "posLevel", "posExecutive"],
|
||||||
order: {
|
order: {
|
||||||
posDictName: "ASC",
|
posDictName: "ASC",
|
||||||
createdAt: "DESC",
|
createdAt: "DESC",
|
||||||
posType:{
|
posType: {
|
||||||
posTypeRank: "ASC",
|
posTypeRank: "ASC",
|
||||||
createdAt: "DESC"
|
createdAt: "DESC",
|
||||||
|
},
|
||||||
|
posLevel: {
|
||||||
|
posLevelRank: "ASC",
|
||||||
|
createdAt: "DESC",
|
||||||
|
},
|
||||||
|
posExecutive: {
|
||||||
|
posExecutivePriority: "ASC",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
posLevel: {
|
});
|
||||||
posLevelRank: "ASC",
|
break;
|
||||||
createdAt: "DESC"
|
|
||||||
},
|
|
||||||
posExecutive: {
|
|
||||||
posExecutivePriority: "ASC"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "positionField":
|
case "positionField":
|
||||||
findPosDict = await this.posDictRepository.find({
|
findPosDict = await this.posDictRepository.find({
|
||||||
where: { posDictField: keyword && keyword.length > 0?Like(`%${keyword}%`):"1=1" },
|
where: { posDictField: keyword && keyword.length > 0 ? Like(`%${keyword}%`) : "1=1" },
|
||||||
relations: ["posType", "posLevel", "posExecutive"],
|
relations: ["posType", "posLevel", "posExecutive"],
|
||||||
order: {
|
order: {
|
||||||
posDictField: "ASC",
|
posDictField: "ASC",
|
||||||
createdAt: "DESC",
|
createdAt: "DESC",
|
||||||
posType:{
|
posType: {
|
||||||
posTypeRank: "ASC",
|
posTypeRank: "ASC",
|
||||||
createdAt: "DESC"
|
createdAt: "DESC",
|
||||||
|
},
|
||||||
|
posLevel: {
|
||||||
|
posLevelRank: "ASC",
|
||||||
|
createdAt: "DESC",
|
||||||
|
},
|
||||||
|
posExecutive: {
|
||||||
|
posExecutivePriority: "ASC",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
posLevel: {
|
});
|
||||||
posLevelRank: "ASC",
|
break;
|
||||||
createdAt: "DESC"
|
|
||||||
},
|
|
||||||
posExecutive: {
|
|
||||||
posExecutivePriority: "ASC"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "positionType":
|
case "positionType":
|
||||||
const findTypes: PosType[] = await this.posTypeRepository.find({
|
const findTypes: PosType[] = await this.posTypeRepository.find({
|
||||||
where: { posTypeName: keyword && keyword.length > 0?Like(`%${keyword}%`):"1=1" },
|
where: { posTypeName: keyword && keyword.length > 0 ? Like(`%${keyword}%`) : "1=1" },
|
||||||
order: {
|
order: {
|
||||||
// posTypeName: "ASC"
|
// posTypeName: "ASC"
|
||||||
posTypeRank: "ASC",
|
|
||||||
createdAt: "DESC"
|
|
||||||
},
|
|
||||||
select: ["id"],
|
|
||||||
});
|
|
||||||
findPosDict = await this.posDictRepository.find({
|
|
||||||
where: { posTypeId: In(findTypes.map((x) => x.id)) },
|
|
||||||
relations: ["posType", "posLevel", "posExecutive"],
|
|
||||||
order: {
|
|
||||||
posDictName: "ASC",
|
|
||||||
createdAt: "DESC",
|
|
||||||
posType:{
|
|
||||||
posTypeRank: "ASC",
|
posTypeRank: "ASC",
|
||||||
createdAt: "DESC"
|
createdAt: "DESC",
|
||||||
},
|
},
|
||||||
posLevel: {
|
select: ["id"],
|
||||||
posLevelRank: "ASC",
|
});
|
||||||
createdAt: "DESC"
|
findPosDict = await this.posDictRepository.find({
|
||||||
|
where: { posTypeId: In(findTypes.map((x) => x.id)) },
|
||||||
|
relations: ["posType", "posLevel", "posExecutive"],
|
||||||
|
order: {
|
||||||
|
posDictName: "ASC",
|
||||||
|
createdAt: "DESC",
|
||||||
|
posType: {
|
||||||
|
posTypeRank: "ASC",
|
||||||
|
createdAt: "DESC",
|
||||||
|
},
|
||||||
|
posLevel: {
|
||||||
|
posLevelRank: "ASC",
|
||||||
|
createdAt: "DESC",
|
||||||
|
},
|
||||||
|
posExecutive: {
|
||||||
|
posExecutivePriority: "ASC",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
posExecutive: {
|
});
|
||||||
posExecutivePriority: "ASC"
|
break;
|
||||||
}
|
|
||||||
},
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "positionLevel":
|
case "positionLevel":
|
||||||
const findLevel: PosLevel[] = await this.posLevelRepository.find({
|
const findLevel: PosLevel[] = await this.posLevelRepository.find({
|
||||||
where: { posLevelName: keyword && keyword.length > 0?Like(`%${keyword}%`):"1=1" },
|
where: { posLevelName: keyword && keyword.length > 0 ? Like(`%${keyword}%`) : "1=1" },
|
||||||
order: {
|
order: {
|
||||||
// posLevelName: "ASC"
|
// posLevelName: "ASC"
|
||||||
posLevelRank: "ASC",
|
|
||||||
createdAt: "DESC"
|
|
||||||
},
|
|
||||||
select: ["id"],
|
|
||||||
});
|
|
||||||
findPosDict = await this.posDictRepository.find({
|
|
||||||
where: { posLevelId: In(findLevel.map((x) => x.id)) },
|
|
||||||
relations: ["posType", "posLevel", "posExecutive"],
|
|
||||||
order: {
|
|
||||||
posDictName: "ASC",
|
|
||||||
createdAt: "DESC",
|
|
||||||
posType:{
|
|
||||||
posTypeRank: "ASC",
|
|
||||||
createdAt: "DESC"
|
|
||||||
},
|
|
||||||
posLevel: {
|
|
||||||
posLevelRank: "ASC",
|
posLevelRank: "ASC",
|
||||||
createdAt: "DESC"
|
createdAt: "DESC",
|
||||||
},
|
},
|
||||||
posExecutive: {
|
select: ["id"],
|
||||||
posExecutivePriority: "ASC"
|
});
|
||||||
}
|
findPosDict = await this.posDictRepository.find({
|
||||||
},
|
where: { posLevelId: In(findLevel.map((x) => x.id)) },
|
||||||
});
|
relations: ["posType", "posLevel", "posExecutive"],
|
||||||
break;
|
order: {
|
||||||
|
posDictName: "ASC",
|
||||||
|
createdAt: "DESC",
|
||||||
|
posType: {
|
||||||
|
posTypeRank: "ASC",
|
||||||
|
createdAt: "DESC",
|
||||||
|
},
|
||||||
|
posLevel: {
|
||||||
|
posLevelRank: "ASC",
|
||||||
|
createdAt: "DESC",
|
||||||
|
},
|
||||||
|
posExecutive: {
|
||||||
|
posExecutivePriority: "ASC",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
|
||||||
case "positionExecutive":
|
case "positionExecutive":
|
||||||
const findExecutive: PosExecutive[] = await this.posExecutiveRepository.find({
|
const findExecutive: PosExecutive[] = await this.posExecutiveRepository.find({
|
||||||
where: { posExecutiveName: keyword && keyword.length > 0?Like(`%${keyword}%`):"1=1" },
|
where: {
|
||||||
select: ["id"],
|
posExecutiveName: keyword && keyword.length > 0 ? Like(`%${keyword}%`) : "1=1",
|
||||||
});
|
|
||||||
findPosDict = await this.posDictRepository.find({
|
|
||||||
where: { posExecutiveId: In(findExecutive.map((x) => x.id)) },
|
|
||||||
relations: ["posType", "posLevel", "posExecutive"],
|
|
||||||
order: {
|
|
||||||
posDictName: "ASC",
|
|
||||||
createdAt: "DESC",
|
|
||||||
posType:{
|
|
||||||
posTypeRank: "ASC",
|
|
||||||
createdAt: "DESC"
|
|
||||||
},
|
},
|
||||||
posLevel: {
|
select: ["id"],
|
||||||
posLevelRank: "ASC",
|
});
|
||||||
createdAt: "DESC"
|
findPosDict = await this.posDictRepository.find({
|
||||||
|
where: { posExecutiveId: In(findExecutive.map((x) => x.id)) },
|
||||||
|
relations: ["posType", "posLevel", "posExecutive"],
|
||||||
|
order: {
|
||||||
|
posDictName: "ASC",
|
||||||
|
createdAt: "DESC",
|
||||||
|
posType: {
|
||||||
|
posTypeRank: "ASC",
|
||||||
|
createdAt: "DESC",
|
||||||
|
},
|
||||||
|
posLevel: {
|
||||||
|
posLevelRank: "ASC",
|
||||||
|
createdAt: "DESC",
|
||||||
|
},
|
||||||
|
posExecutive: {
|
||||||
|
posExecutivePriority: "ASC",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
posExecutive: {
|
});
|
||||||
posExecutivePriority: "ASC"
|
break;
|
||||||
}
|
|
||||||
},
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "positionExecutiveField":
|
case "positionExecutiveField":
|
||||||
findPosDict = await this.posDictRepository.find({
|
findPosDict = await this.posDictRepository.find({
|
||||||
where: { posDictExecutiveField: keyword && keyword.length > 0?Like(`%${keyword}%`):"1=1" },
|
where: {
|
||||||
relations: ["posType", "posLevel", "posExecutive"],
|
posDictExecutiveField: keyword && keyword.length > 0 ? Like(`%${keyword}%`) : "1=1",
|
||||||
order: {
|
|
||||||
posDictName: "ASC",
|
|
||||||
createdAt: "DESC",
|
|
||||||
posType:{
|
|
||||||
posTypeRank: "ASC",
|
|
||||||
createdAt: "DESC"
|
|
||||||
},
|
},
|
||||||
posLevel: {
|
relations: ["posType", "posLevel", "posExecutive"],
|
||||||
posLevelRank: "ASC",
|
order: {
|
||||||
createdAt: "DESC"
|
posDictName: "ASC",
|
||||||
|
createdAt: "DESC",
|
||||||
|
posType: {
|
||||||
|
posTypeRank: "ASC",
|
||||||
|
createdAt: "DESC",
|
||||||
|
},
|
||||||
|
posLevel: {
|
||||||
|
posLevelRank: "ASC",
|
||||||
|
createdAt: "DESC",
|
||||||
|
},
|
||||||
|
posExecutive: {
|
||||||
|
posExecutivePriority: "ASC",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
posExecutive: {
|
});
|
||||||
posExecutivePriority: "ASC"
|
break;
|
||||||
}
|
|
||||||
},
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "positionArea":
|
case "positionArea":
|
||||||
findPosDict = await this.posDictRepository.find({
|
findPosDict = await this.posDictRepository.find({
|
||||||
where: { posDictArea: keyword && keyword.length > 0?Like(`%${keyword}%`):"1=1" },
|
where: { posDictArea: keyword && keyword.length > 0 ? Like(`%${keyword}%`) : "1=1" },
|
||||||
relations: ["posType", "posLevel", "posExecutive"],
|
relations: ["posType", "posLevel", "posExecutive"],
|
||||||
order: {
|
order: {
|
||||||
posDictName: "ASC",
|
posDictName: "ASC",
|
||||||
createdAt: "DESC",
|
createdAt: "DESC",
|
||||||
posType:{
|
posType: {
|
||||||
posTypeRank: "ASC",
|
posTypeRank: "ASC",
|
||||||
createdAt: "DESC"
|
createdAt: "DESC",
|
||||||
|
},
|
||||||
|
posLevel: {
|
||||||
|
posLevelRank: "ASC",
|
||||||
|
createdAt: "DESC",
|
||||||
|
},
|
||||||
|
posExecutive: {
|
||||||
|
posExecutivePriority: "ASC",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
posLevel: {
|
});
|
||||||
posLevelRank: "ASC",
|
break;
|
||||||
createdAt: "DESC"
|
|
||||||
},
|
|
||||||
posExecutive: {
|
|
||||||
posExecutivePriority: "ASC"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "ALL":
|
case "ALL":
|
||||||
findPosDict = await this.posDictRepository.find({
|
findPosDict = await this.posDictRepository.find({
|
||||||
where: [
|
where: [
|
||||||
{ posDictName: Like(`%${keyword}%`) },
|
{ posDictName: Like(`%${keyword}%`) },
|
||||||
{ posDictField: Like(`%${keyword}%`) },
|
{ posDictField: Like(`%${keyword}%`) },
|
||||||
{
|
{
|
||||||
posTypeId: In(
|
posTypeId: In(
|
||||||
await this.posTypeRepository
|
await this.posTypeRepository
|
||||||
.find({ where: { posTypeName: Like(`%${keyword}%`) }, select: ["id"] })
|
.find({ where: { posTypeName: Like(`%${keyword}%`) }, select: ["id"] })
|
||||||
.then((types) => types.map((type) => type.id)),
|
.then((types) => types.map((type) => type.id)),
|
||||||
),
|
),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
posLevelId: In(
|
||||||
|
await this.posLevelRepository
|
||||||
|
.find({ where: { posLevelName: Like(`%${keyword}%`) }, select: ["id"] })
|
||||||
|
.then((levels) => levels.map((level) => level.id)),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
posExecutiveId: In(
|
||||||
|
await this.posExecutiveRepository
|
||||||
|
.find({ where: { posExecutiveName: Like(`%${keyword}%`) }, select: ["id"] })
|
||||||
|
.then((executives) => executives.map((exec) => exec.id)),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
{ posDictExecutiveField: Like(`%${keyword}%`) },
|
||||||
|
{ posDictArea: Like(`%${keyword}%`) },
|
||||||
|
],
|
||||||
|
relations: ["posType", "posLevel", "posExecutive"],
|
||||||
|
order: {
|
||||||
|
posDictName: "ASC",
|
||||||
|
createdAt: "DESC",
|
||||||
|
posType: {
|
||||||
|
posTypeRank: "ASC",
|
||||||
|
createdAt: "DESC",
|
||||||
|
},
|
||||||
|
posLevel: {
|
||||||
|
posLevelRank: "ASC",
|
||||||
|
createdAt: "DESC",
|
||||||
|
},
|
||||||
|
posExecutive: {
|
||||||
|
posExecutivePriority: "ASC",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
});
|
||||||
posLevelId: In(
|
break;
|
||||||
await this.posLevelRepository
|
|
||||||
.find({ where: { posLevelName: Like(`%${keyword}%`) }, select: ["id"] })
|
|
||||||
.then((levels) => levels.map((level) => level.id)),
|
|
||||||
),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
posExecutiveId: In(
|
|
||||||
await this.posExecutiveRepository
|
|
||||||
.find({ where: { posExecutiveName: Like(`%${keyword}%`) }, select: ["id"] })
|
|
||||||
.then((executives) => executives.map((exec) => exec.id)),
|
|
||||||
),
|
|
||||||
},
|
|
||||||
{ posDictExecutiveField: Like(`%${keyword}%`) },
|
|
||||||
{ posDictArea: Like(`%${keyword}%`) },
|
|
||||||
],
|
|
||||||
relations: ["posType", "posLevel", "posExecutive"],
|
|
||||||
order: {
|
|
||||||
posDictName: "ASC",
|
|
||||||
createdAt: "DESC",
|
|
||||||
posType:{
|
|
||||||
posTypeRank: "ASC",
|
|
||||||
createdAt: "DESC"
|
|
||||||
},
|
|
||||||
posLevel: {
|
|
||||||
posLevelRank: "ASC",
|
|
||||||
createdAt: "DESC"
|
|
||||||
},
|
|
||||||
posExecutive: {
|
|
||||||
posExecutivePriority: "ASC"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
findPosDict = await this.posDictRepository.find({
|
findPosDict = await this.posDictRepository.find({
|
||||||
relations: ["posType", "posLevel", "posExecutive"],
|
relations: ["posType", "posLevel", "posExecutive"],
|
||||||
order: {
|
order: {
|
||||||
posDictName: "ASC",
|
posDictName: "ASC",
|
||||||
createdAt: "DESC",
|
createdAt: "DESC",
|
||||||
posType:{
|
posType: {
|
||||||
posTypeRank: "ASC",
|
posTypeRank: "ASC",
|
||||||
createdAt: "DESC"
|
createdAt: "DESC",
|
||||||
|
},
|
||||||
|
posLevel: {
|
||||||
|
posLevelRank: "ASC",
|
||||||
|
createdAt: "DESC",
|
||||||
|
},
|
||||||
|
posExecutive: {
|
||||||
|
posExecutivePriority: "ASC",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
posLevel: {
|
});
|
||||||
posLevelRank: "ASC",
|
break;
|
||||||
createdAt: "DESC"
|
|
||||||
},
|
|
||||||
posExecutive: {
|
|
||||||
posExecutivePriority: "ASC"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}else{
|
} else {
|
||||||
findPosDict = await this.posDictRepository.find({
|
findPosDict = await this.posDictRepository.find({
|
||||||
relations: ["posType", "posLevel", "posExecutive"],
|
relations: ["posType", "posLevel", "posExecutive"],
|
||||||
order: {
|
order: {
|
||||||
posDictName: "ASC",
|
posDictName: "ASC",
|
||||||
createdAt: "DESC",
|
createdAt: "DESC",
|
||||||
posType:{
|
posType: {
|
||||||
posTypeRank: "ASC",
|
posTypeRank: "ASC",
|
||||||
createdAt: "DESC"
|
createdAt: "DESC",
|
||||||
},
|
},
|
||||||
posLevel: {
|
posLevel: {
|
||||||
posLevelRank: "ASC",
|
posLevelRank: "ASC",
|
||||||
createdAt: "DESC"
|
createdAt: "DESC",
|
||||||
},
|
},
|
||||||
posExecutive: {
|
posExecutive: {
|
||||||
posExecutivePriority: "ASC"
|
posExecutivePriority: "ASC",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -4970,53 +4974,53 @@ export class PositionController extends Controller {
|
||||||
.where(conditions)
|
.where(conditions)
|
||||||
.andWhere(
|
.andWhere(
|
||||||
_data.root != undefined && _data.root != null
|
_data.root != undefined && _data.root != null
|
||||||
? _data.root[0] != null
|
? _data.root[0] != null
|
||||||
? `posMaster.orgRootId IN (:...root)`
|
? `posMaster.orgRootId IN (:...root)`
|
||||||
: `posMaster.orgRootId is null`
|
: `posMaster.orgRootId is null`
|
||||||
: "1=1",
|
: "1=1",
|
||||||
{
|
{
|
||||||
root: _data.root,
|
root: _data.root,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
.andWhere(
|
.andWhere(
|
||||||
_data.child1 != undefined && _data.child1 != null
|
_data.child1 != undefined && _data.child1 != null
|
||||||
? _data.child1[0] != null
|
? _data.child1[0] != null
|
||||||
? `posMaster.orgChild1Id IN (:...child1)`
|
? `posMaster.orgChild1Id IN (:...child1)`
|
||||||
: `posMaster.orgChild1Id is null`
|
: `posMaster.orgChild1Id is null`
|
||||||
: "1=1",
|
: "1=1",
|
||||||
{
|
{
|
||||||
child1: _data.child1,
|
child1: _data.child1,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
.andWhere(
|
.andWhere(
|
||||||
_data.child2 != undefined && _data.child2 != null
|
_data.child2 != undefined && _data.child2 != null
|
||||||
? _data.child2[0] != null
|
? _data.child2[0] != null
|
||||||
? `posMaster.orgChild2Id IN (:...child2)`
|
? `posMaster.orgChild2Id IN (:...child2)`
|
||||||
: `posMaster.orgChild2Id is null`
|
: `posMaster.orgChild2Id is null`
|
||||||
: "1=1",
|
: "1=1",
|
||||||
{
|
{
|
||||||
child2: _data.child2,
|
child2: _data.child2,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
.andWhere(
|
.andWhere(
|
||||||
_data.child3 != undefined && _data.child3 != null
|
_data.child3 != undefined && _data.child3 != null
|
||||||
? _data.child3[0] != null
|
? _data.child3[0] != null
|
||||||
? `posMaster.orgChild3Id IN (:...child3)`
|
? `posMaster.orgChild3Id IN (:...child3)`
|
||||||
: `posMaster.orgChild3Id is null`
|
: `posMaster.orgChild3Id is null`
|
||||||
: "1=1",
|
: "1=1",
|
||||||
{
|
{
|
||||||
child3: _data.child3,
|
child3: _data.child3,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
.andWhere(
|
.andWhere(
|
||||||
_data.child4 != undefined && _data.child4 != null
|
_data.child4 != undefined && _data.child4 != null
|
||||||
? _data.child4[0] != null
|
? _data.child4[0] != null
|
||||||
? `posMaster.orgChild4Id IN (:...child4)`
|
? `posMaster.orgChild4Id IN (:...child4)`
|
||||||
: `posMaster.orgChild4Id is null`
|
: `posMaster.orgChild4Id is null`
|
||||||
: "1=1",
|
: "1=1",
|
||||||
{
|
{
|
||||||
child4: _data.child4,
|
child4: _data.child4,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
.orWhere(
|
.orWhere(
|
||||||
new Brackets((qb) => {
|
new Brackets((qb) => {
|
||||||
|
|
@ -5027,10 +5031,10 @@ export class PositionController extends Controller {
|
||||||
: `CASE WHEN posMaster.orgChild1 is null THEN ${searchShortName0} WHEN posMaster.orgChild2 is null THEN ${searchShortName1} WHEN posMaster.orgChild3 is null THEN ${searchShortName2} WHEN posMaster.orgChild4 is null THEN ${searchShortName3} ELSE ${searchShortName4} END LIKE '%${body.keyword}%'`
|
: `CASE WHEN posMaster.orgChild1 is null THEN ${searchShortName0} WHEN posMaster.orgChild2 is null THEN ${searchShortName1} WHEN posMaster.orgChild3 is null THEN ${searchShortName2} WHEN posMaster.orgChild4 is null THEN ${searchShortName3} ELSE ${searchShortName4} END LIKE '%${body.keyword}%'`
|
||||||
: "1=1",
|
: "1=1",
|
||||||
)
|
)
|
||||||
.andWhere(checkChildConditions)
|
.andWhere(checkChildConditions)
|
||||||
.andWhere(typeCondition)
|
.andWhere(typeCondition)
|
||||||
.andWhere(revisionCondition)
|
.andWhere(revisionCondition)
|
||||||
.andWhere({ current_holderId: IsNull() });
|
.andWhere({ current_holderId: IsNull() });
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
.orderBy("posMaster.posMasterOrder", "ASC")
|
.orderBy("posMaster.posMasterOrder", "ASC")
|
||||||
|
|
@ -5075,7 +5079,8 @@ export class PositionController extends Controller {
|
||||||
},
|
},
|
||||||
relations: ["posLevel", "posType", "posExecutive"],
|
relations: ["posLevel", "posType", "posExecutive"],
|
||||||
order: {
|
order: {
|
||||||
createdAt: "ASC",
|
posType: { posTypeRank: "ASC" },
|
||||||
|
posLevel: { posLevelRank: "ASC" },
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
let shortName = "";
|
let shortName = "";
|
||||||
|
|
|
||||||
|
|
@ -2007,9 +2007,7 @@ export class ProfileController extends Controller {
|
||||||
process.env.AUTH_ACCOUNT_SECRET,
|
process.env.AUTH_ACCOUNT_SECRET,
|
||||||
{ expiresIn: "15m" },
|
{ expiresIn: "15m" },
|
||||||
);
|
);
|
||||||
// console.log("[token]",token);
|
|
||||||
const link = process.env.URL + "/verifyemail?upn=" + token;
|
const link = process.env.URL + "/verifyemail?upn=" + token;
|
||||||
// console.log("[link]",link);
|
|
||||||
|
|
||||||
await new CallAPI()
|
await new CallAPI()
|
||||||
.PostData(req, "/placement/noti/send-mail", {
|
.PostData(req, "/placement/noti/send-mail", {
|
||||||
|
|
@ -3964,6 +3962,28 @@ export class ProfileController extends Controller {
|
||||||
return new HttpSuccess({ data: data, total });
|
return new HttpSuccess({ data: data, total });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* API Update amount
|
||||||
|
*
|
||||||
|
* @summary Update amount (ADMIN)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@Get("update-amount")
|
||||||
|
async updateProfileAmount(@Request() request: RequestWithUser) {
|
||||||
|
const profiles = await this.profileRepo.find({
|
||||||
|
order: { profileSalary: { order: "DESC" } },
|
||||||
|
relations: ["profileSalary"],
|
||||||
|
});
|
||||||
|
profiles.map(async (x) => {
|
||||||
|
const amount = x.profileSalary[0];
|
||||||
|
x.amount = amount?.amount ?? 0;
|
||||||
|
x.amountSpecial = amount?.amountSpecial ?? 0;
|
||||||
|
x.positionSalaryAmount = amount?.positionSalaryAmount ?? 0;
|
||||||
|
await this.profileRepo.save(x);
|
||||||
|
});
|
||||||
|
return new HttpSuccess();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* API รายละเอียดรายการทะเบียนประวัติ
|
* API รายละเอียดรายการทะเบียนประวัติ
|
||||||
*
|
*
|
||||||
|
|
@ -8274,7 +8294,6 @@ export class ProfileController extends Controller {
|
||||||
receiverUserId: x.id,
|
receiverUserId: x.id,
|
||||||
notiLink: "",
|
notiLink: "",
|
||||||
}));
|
}));
|
||||||
console.log(profileNoti);
|
|
||||||
await new CallAPI()
|
await new CallAPI()
|
||||||
.PostData(req, "/placement/noti/profiles", {
|
.PostData(req, "/placement/noti/profiles", {
|
||||||
subject: body.subject,
|
subject: body.subject,
|
||||||
|
|
|
||||||
|
|
@ -1309,6 +1309,28 @@ export class ProfileEmployeeController extends Controller {
|
||||||
return new HttpSuccess(formattedData);
|
return new HttpSuccess(formattedData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* API Update amount
|
||||||
|
*
|
||||||
|
* @summary Update amount (ADMIN)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@Get("update-amount")
|
||||||
|
async updateProfileAmount(@Request() request: RequestWithUser) {
|
||||||
|
const profiles = await this.profileRepo.find({
|
||||||
|
order: { profileSalary: { order: "DESC" } },
|
||||||
|
relations: ["profileSalary"],
|
||||||
|
});
|
||||||
|
profiles.map(async (x) => {
|
||||||
|
const amount = x.profileSalary[0];
|
||||||
|
x.amount = amount?.amount ?? 0;
|
||||||
|
x.amountSpecial = amount?.amountSpecial ?? 0;
|
||||||
|
x.positionSalaryAmount = amount?.positionSalaryAmount ?? 0;
|
||||||
|
await this.profileRepo.save(x);
|
||||||
|
});
|
||||||
|
return new HttpSuccess();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* API รายละเอียดรายการทะเบียนประวัติ
|
* API รายละเอียดรายการทะเบียนประวัติ
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -107,6 +107,14 @@ export class KeycloakController extends Controller {
|
||||||
}
|
}
|
||||||
const list = await getRoles();
|
const list = await getRoles();
|
||||||
if (!Array.isArray(list)) throw new Error("Failed. Cannot get role(s) data from the server.");
|
if (!Array.isArray(list)) throw new Error("Failed. Cannot get role(s) data from the server.");
|
||||||
|
const result = await addUserRoles(
|
||||||
|
userId,
|
||||||
|
list.filter((v) => body.roles.includes(v.id)),
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!result) {
|
||||||
|
throw new Error("Failed. Cannot set user's role.");
|
||||||
|
}
|
||||||
const profile = await this.profileRepo.findOne({
|
const profile = await this.profileRepo.findOne({
|
||||||
where: {
|
where: {
|
||||||
id: body.profileId,
|
id: body.profileId,
|
||||||
|
|
|
||||||
|
|
@ -817,7 +817,7 @@ export class WorkflowController extends Controller {
|
||||||
orgRootId: posMasterUser.orgRootId,
|
orgRootId: posMasterUser.orgRootId,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (type.trim().toLowerCase() == "OPERATE") {
|
if (type.trim().toUpperCase() == "OPERATE") {
|
||||||
} else {
|
} else {
|
||||||
if (
|
if (
|
||||||
(posMasterUser.current_holder.posType.posTypeName == "ทั่วไป" &&
|
(posMasterUser.current_holder.posType.posTypeName == "ทั่วไป" &&
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue