Fix [Invalid] รายชื่อลูกจ้างชั่วคราวไม่แสดงตามสิทธิ์ #131

This commit is contained in:
Bright 2025-06-19 17:44:17 +07:00
parent 64eb28af68
commit 9eac11ff30

View file

@ -1428,6 +1428,7 @@ export class ProfileEmployeeTempController extends Controller {
@Query() isRetire?: boolean,
@Query() type?: string,
) {
let _data = await new permission().PermissionOrgList(request, "SYS_REGISTRY_TEMP");
let queryLike =
"CONCAT(profileEmployee.prefix, profileEmployee.firstName, ' ', profileEmployee.lastName) LIKE :keyword";
if (searchField == "citizenId") {
@ -1435,7 +1436,6 @@ export class ProfileEmployeeTempController extends Controller {
} else if (searchField == "position") {
queryLike = "profileEmployee.position LIKE :keyword";
}
let _data = await new permission().PermissionList(request, "SYS_REGISTRY_TEMP");
const findRevision = await this.orgRevisionRepo.findOne({
where: { orgRevisionIsCurrent: true },
});
@ -1446,17 +1446,19 @@ export class ProfileEmployeeTempController extends Controller {
.createQueryBuilder("profileEmployee")
.leftJoinAndSelect("profileEmployee.posLevel", "posLevel")
.leftJoinAndSelect("profileEmployee.posType", "posType")
.leftJoinAndSelect("profileEmployee.current_holders", "current_holders")
.leftJoinAndSelect("profileEmployee.current_holderTemps", "current_holderTemps")
.leftJoinAndSelect("profileEmployee.profileEmployeeEmployment", "profileEmployeeEmployment")
.leftJoinAndSelect("current_holders.positions", "positions")
.leftJoinAndSelect("current_holders.orgRoot", "orgRoot")
.leftJoinAndSelect("current_holders.orgChild1", "orgChild1")
.leftJoinAndSelect("current_holders.orgChild2", "orgChild2")
.leftJoinAndSelect("current_holders.orgChild3", "orgChild3")
.leftJoinAndSelect("current_holders.orgChild4", "orgChild4")
.leftJoinAndSelect("current_holderTemps.positions", "positions")
.leftJoinAndSelect("current_holderTemps.orgRoot", "orgRoot")
.leftJoinAndSelect("current_holderTemps.orgChild1", "orgChild1")
.leftJoinAndSelect("current_holderTemps.orgChild2", "orgChild2")
.leftJoinAndSelect("current_holderTemps.orgChild3", "orgChild3")
.leftJoinAndSelect("current_holderTemps.orgChild4", "orgChild4")
.andWhere(
_data.root != undefined && _data.root != null
? `current_holders.orgRootId IN (:...root)`
? _data.root[0] != null
? `current_holderTemps.orgRootId IN (:...root)`
: `current_holderTemps.orgRootId is null`
: "1=1",
{
root: _data.root,
@ -1464,7 +1466,9 @@ export class ProfileEmployeeTempController extends Controller {
)
.andWhere(
_data.child1 != undefined && _data.child1 != null
? `current_holders.orgChild1Id IN (:...child1)`
? _data.child1[0] != null
? `current_holderTemps.orgChild1Id IN (:...child1)`
: `current_holderTemps.orgChild1Id is null`
: "1=1",
{
child1: _data.child1,
@ -1472,7 +1476,9 @@ export class ProfileEmployeeTempController extends Controller {
)
.andWhere(
_data.child2 != undefined && _data.child2 != null
? `current_holders.orgChild2Id IN (:...child2)`
? _data.child2[0] != null
? `current_holderTemps.orgChild2Id IN (:...child2)`
: `current_holderTemps.orgChild2Id is null`
: "1=1",
{
child2: _data.child2,
@ -1480,7 +1486,9 @@ export class ProfileEmployeeTempController extends Controller {
)
.andWhere(
_data.child3 != undefined && _data.child3 != null
? `current_holders.orgChild3Id IN (:...child3)`
? _data.child3[0] != null
? `current_holderTemps.orgChild3Id IN (:...child3)`
: `current_holderTemps.orgChild3Id is null`
: "1=1",
{
child3: _data.child3,
@ -1488,7 +1496,9 @@ export class ProfileEmployeeTempController extends Controller {
)
.andWhere(
_data.child4 != undefined && _data.child4 != null
? `current_holders.orgChild4Id IN (:...child4)`
? _data.child4[0] != null
? `current_holderTemps.orgChild4Id IN (:...child4)`
: `current_holderTemps.orgChild4Id is null`
: "1=1",
{
child4: _data.child4,
@ -1518,19 +1528,19 @@ export class ProfileEmployeeTempController extends Controller {
keyword2: `${posLevel}`,
},
)
.andWhere(
isProbation != undefined && isProbation != null
? `profile.isProbation = ${isProbation}`
: "1=1",
)
.andWhere(
isRetire != undefined && isRetire != null
? isRetire == true
? `profile.dateRetire IS null`
: `profile.dateRetire IS NOT NULL`
: "1=1",
)
.andWhere("profileEmployee.employeeClass LIKE :type", {
// .andWhere(
// isProbation != undefined && isProbation != null
// ? `profileEmployee.isProbation = ${isProbation}`
// : "1=1",
// )
// .andWhere(
// isRetire != undefined && isRetire != null
// ? isRetire == true
// ? `profileEmployee.dateRetire IS null`
// : `profileEmployee.dateRetire IS NOT NULL`
// : "1=1",
// )
.andWhere("profileEmployee.employeeClass = :type", {
type: "TEMP",
})
.skip((page - 1) * pageSize)
@ -1539,29 +1549,29 @@ export class ProfileEmployeeTempController extends Controller {
const data = await Promise.all(
record.map((_data) => {
const shortName =
_data.current_holders.length == 0
_data.current_holderTemps.length == 0
? null
: _data.current_holders.find((x) => x.orgRevisionId == findRevision.id) != null &&
_data.current_holders.find((x) => x.orgRevisionId == findRevision.id)?.orgChild4 !=
: _data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id) != null &&
_data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)?.orgChild4 !=
null
? `${_data.current_holders.find((x) => x.orgRevisionId == findRevision.id)?.orgChild4.orgChild4ShortName} ${_data.current_holders.find((x) => x.orgRevisionId == findRevision.id)?.posMasterNo}`
: _data.current_holders.find((x) => x.orgRevisionId == findRevision.id) != null &&
_data.current_holders.find((x) => x.orgRevisionId == findRevision.id)
? `${_data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)?.orgChild4.orgChild4ShortName} ${_data.current_holders.find((x) => x.orgRevisionId == findRevision.id)?.posMasterNo}`
: _data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id) != null &&
_data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)
?.orgChild3 != null
? `${_data.current_holders.find((x) => x.orgRevisionId == findRevision.id)?.orgChild3.orgChild3ShortName} ${_data.current_holders.find((x) => x.orgRevisionId == findRevision.id)?.posMasterNo}`
: _data.current_holders.find((x) => x.orgRevisionId == findRevision.id) != null &&
_data.current_holders.find((x) => x.orgRevisionId == findRevision.id)
? `${_data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)?.orgChild3.orgChild3ShortName} ${_data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)?.posMasterNo}`
: _data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id) != null &&
_data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)
?.orgChild2 != null
? `${_data.current_holders.find((x) => x.orgRevisionId == findRevision.id)?.orgChild2.orgChild2ShortName} ${_data.current_holders.find((x) => x.orgRevisionId == findRevision.id)?.posMasterNo}`
: _data.current_holders.find((x) => x.orgRevisionId == findRevision.id) != null &&
_data.current_holders.find((x) => x.orgRevisionId == findRevision.id)
? `${_data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)?.orgChild2.orgChild2ShortName} ${_data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)?.posMasterNo}`
: _data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id) != null &&
_data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)
?.orgChild1 != null
? `${_data.current_holders.find((x) => x.orgRevisionId == findRevision.id)?.orgChild1.orgChild1ShortName} ${_data.current_holders.find((x) => x.orgRevisionId == findRevision.id)?.posMasterNo}`
: _data.current_holders.find((x) => x.orgRevisionId == findRevision.id) !=
? `${_data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)?.orgChild1.orgChild1ShortName} ${_data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)?.posMasterNo}`
: _data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id) !=
null &&
_data.current_holders.find((x) => x.orgRevisionId == findRevision.id)
_data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)
?.orgRoot != null
? `${_data.current_holders.find((x) => x.orgRevisionId == findRevision.id)?.orgRoot.orgRootShortName} ${_data.current_holders.find((x) => x.orgRevisionId == findRevision.id)?.posMasterNo}`
? `${_data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)?.orgRoot.orgRootShortName} ${_data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)?.posMasterNo}`
: null;
const dateEmployment =
_data.profileEmployeeEmployment.length == 0