no message

This commit is contained in:
kittapath 2024-11-04 13:29:30 +07:00
parent af38addf46
commit d2974a12ab

View file

@ -1679,7 +1679,7 @@ export class PositionController extends Controller {
} }
masterId = [...new Set(masterId)]; masterId = [...new Set(masterId)];
} }
const revisionCondition = { const revisionCondition = {
orgRevisionId: body.revisionId, orgRevisionId: body.revisionId,
}; };
@ -1695,157 +1695,156 @@ export class PositionController extends Controller {
child4: null, child4: null,
privilege: "OWNER", privilege: "OWNER",
}; };
const conditions = [ const conditions = [
{
...checkChildConditions,
...typeCondition,
...revisionCondition,
...(body.keyword &&
(masterId.length > 0
? { id: In(masterId) }
: { posMasterNo: Like(`%${body.keyword}%`) })),
},
];
let [posMaster, total] = await AppDataSource.getRepository(PosMaster)
.createQueryBuilder("posMaster")
.leftJoinAndSelect("posMaster.orgRoot", "orgRoot")
.leftJoinAndSelect("posMaster.orgChild1", "orgChild1")
.leftJoinAndSelect("posMaster.orgChild2", "orgChild2")
.leftJoinAndSelect("posMaster.orgChild3", "orgChild3")
.leftJoinAndSelect("posMaster.orgChild4", "orgChild4")
.leftJoinAndSelect("posMaster.current_holder", "current_holder")
.leftJoinAndSelect("posMaster.next_holder", "next_holder")
.leftJoinAndSelect("posMaster.orgRevision", "orgRevision")
.where(conditions)
.andWhere(
_data.root != undefined && _data.root != null
? _data.root[0] != null
? `posMaster.orgRootId IN (:...root)`
: `posMaster.orgRootId is null`
: "1=1",
{ {
...checkChildConditions, root: _data.root,
...typeCondition,
...revisionCondition,
...(body.keyword &&
(masterId.length > 0
? { id: In(masterId) }
: { posMasterNo: Like(`%${body.keyword}%`) })),
}, },
]; )
.andWhere(
let [posMaster, total] = await AppDataSource.getRepository(PosMaster) _data.child1 != undefined && _data.child1 != null
.createQueryBuilder("posMaster") ? _data.child1[0] != null
.leftJoinAndSelect("posMaster.orgRoot", "orgRoot") ? `posMaster.orgChild1Id IN (:...child1)`
.leftJoinAndSelect("posMaster.orgChild1", "orgChild1") : `posMaster.orgChild1Id is null`
.leftJoinAndSelect("posMaster.orgChild2", "orgChild2") : "1=1",
.leftJoinAndSelect("posMaster.orgChild3", "orgChild3") {
.leftJoinAndSelect("posMaster.orgChild4", "orgChild4") child1: _data.child1,
.leftJoinAndSelect("posMaster.current_holder", "current_holder") },
.leftJoinAndSelect("posMaster.next_holder", "next_holder") )
.leftJoinAndSelect("posMaster.orgRevision", "orgRevision") .andWhere(
.where(conditions) _data.child2 != undefined && _data.child2 != null
.andWhere( ? _data.child2[0] != null
_data.root != undefined && _data.root != null ? `posMaster.orgChild2Id IN (:...child2)`
? _data.root[0] != null : `posMaster.orgChild2Id is null`
? `posMaster.orgRootId IN (:...root)` : "1=1",
: `posMaster.orgRootId is null` {
: "1=1", child2: _data.child2,
{ },
root: _data.root, )
}, .andWhere(
) _data.child3 != undefined && _data.child3 != null
.andWhere( ? _data.child3[0] != null
_data.child1 != undefined && _data.child1 != null ? `posMaster.orgChild3Id IN (:...child3)`
? _data.child1[0] != null : `posMaster.orgChild3Id is null`
? `posMaster.orgChild1Id IN (:...child1)` : "1=1",
: `posMaster.orgChild1Id is null` {
: "1=1", child3: _data.child3,
{ },
child1: _data.child1, )
}, .andWhere(
) _data.child4 != undefined && _data.child4 != null
.andWhere( ? _data.child4[0] != null
_data.child2 != undefined && _data.child2 != null ? `posMaster.orgChild4Id IN (:...child4)`
? _data.child2[0] != null : `posMaster.orgChild4Id is null`
? `posMaster.orgChild2Id IN (:...child2)` : "1=1",
: `posMaster.orgChild2Id is null` {
: "1=1", child4: _data.child4,
{ },
child2: _data.child2, )
}, .orWhere(
) new Brackets((qb) => {
.andWhere( qb.andWhere(
_data.child3 != undefined && _data.child3 != null body.keyword != null && body.keyword != ""
? _data.child3[0] != null ? body.isAll == false
? `posMaster.orgChild3Id IN (:...child3)` ? searchShortName
: `posMaster.orgChild3Id is null` : `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",
{ )
child3: _data.child3, .andWhere(checkChildConditions)
}, .andWhere(typeCondition)
) .andWhere(revisionCondition);
.andWhere( }),
_data.child4 != undefined && _data.child4 != null )
? _data.child4[0] != null .orWhere(
? `posMaster.orgChild4Id IN (:...child4)` new Brackets((qb) => {
: `posMaster.orgChild4Id is null` qb.andWhere(
: "1=1", body.keyword != null && body.keyword != ""
{ ? `CONCAT(current_holder.prefix, current_holder.firstName," ",current_holder.lastName) like '%${body.keyword}%'`
child4: _data.child4, : "1=1",
}, {
) keyword: `%${body.keyword}%`,
.orWhere( },
new Brackets((qb) => { )
qb.andWhere( .andWhere(checkChildConditions)
body.keyword != null && body.keyword != "" .andWhere(typeCondition)
? body.isAll == false .andWhere(revisionCondition);
? searchShortName }),
: `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", .orWhere(
) new Brackets((qb) => {
.andWhere(checkChildConditions) qb.andWhere(
.andWhere(typeCondition) body.keyword != null && body.keyword != ""
.andWhere(revisionCondition); ? `CASE WHEN orgRevision.orgRevisionIsDraft = true THEN CONCAT(next_holder.prefix, next_holder.firstName,' ', next_holder.lastName) ELSE CONCAT(current_holder.prefix, current_holder.firstName,' ' , current_holder.lastName) END LIKE '%${body.keyword}%'`
}), : "1=1",
) {
.orWhere( keyword: `%${body.keyword}%`,
new Brackets((qb) => { },
qb.andWhere( )
body.keyword != null && body.keyword != "" .andWhere(checkChildConditions)
? `CONCAT(current_holder.prefix, current_holder.firstName," ",current_holder.lastName) like '%${body.keyword}%'` .andWhere(typeCondition)
: "1=1", .andWhere(revisionCondition);
{ }),
keyword: `%${body.keyword}%`, )
}, .orderBy("posMaster.posMasterOrder", "ASC")
) .skip((body.page - 1) * body.pageSize)
.andWhere(checkChildConditions) .take(body.pageSize)
.andWhere(typeCondition) .getManyAndCount();
.andWhere(revisionCondition);
}), //แก้ค้นหา
) let _position: any[] = [];
.orWhere( let x: any = null;
new Brackets((qb) => { let y: any = null;
qb.andWhere( if (body.keyword != null && body.keyword != "") {
body.keyword != null && body.keyword != "" const position = await this.positionRepository.find({
? `CASE WHEN orgRevision.orgRevisionIsDraft = true THEN CONCAT(next_holder.prefix, next_holder.firstName,' ', next_holder.lastName) ELSE CONCAT(current_holder.prefix, current_holder.firstName,' ' , current_holder.lastName) END LIKE '%${body.keyword}%'` relations: ["posType", "posLevel", "posExecutive"],
: "1=1", where: { posMasterId: In(posMaster.map((x) => x.id)) },
{ order: { createdAt: "ASC" },
keyword: `%${body.keyword}%`, });
}, for (let data of position) {
) x = data.posMasterId;
.andWhere(checkChildConditions) if (y != x) {
.andWhere(typeCondition) if (
.andWhere(revisionCondition); data.positionName.includes(body.keyword) ||
}), data.posType.posTypeName.includes(body.keyword) ||
) data.posLevel.posLevelName.includes(body.keyword)
.orderBy("posMaster.posMasterOrder", "ASC") ) {
.skip((body.page - 1) * body.pageSize) _position.push(data);
.take(body.pageSize)
.getManyAndCount();
//แก้ค้นหา
let _position: any[] = [];
let x: any = null;
let y: any = null;
if (body.keyword != null && body.keyword != ""){
const position = await this.positionRepository.find({
relations: ["posType", "posLevel", "posExecutive"],
where: { posMasterId: In(posMaster.map(x => x.id))},
order: { createdAt: "ASC" }
});
for(let data of position){
x = data.posMasterId
if(y != x){
if(
data.positionName.includes(body.keyword) ||
data.posType.posTypeName.includes(body.keyword) ||
data.posLevel.posLevelName.includes(body.keyword)
){
_position.push(data);
}
} }
y = x;
} }
y = x;
} }
}
if(_position.length > 0){
posMaster = posMaster.filter((x) => _position.some(y => y.posMasterId === x.id)); if (_position.length > 0) {
} posMaster = posMaster.filter((x) => _position.some((y) => y.posMasterId === x.id));
}
const formattedData = await Promise.all( const formattedData = await Promise.all(
posMaster.map(async (posMaster) => { posMaster.map(async (posMaster) => {
@ -3312,10 +3311,10 @@ export class PositionController extends Controller {
.getManyAndCount(); .getManyAndCount();
const _posType = await this.posTypeRepository.find({ const _posType = await this.posTypeRepository.find({
where: { posTypeName: In(["ทั่วไป", "วิชาการ"]) } where: { posTypeName: In(["ทั่วไป", "วิชาการ"]) },
}); });
const _posLevel = await this.posLevelRepository.find({ const _posLevel = await this.posLevelRepository.find({
where: { posLevelName: In(["ปฏิบัติงาน", "ปฏิบัติการ"]) } where: { posLevelName: In(["ปฏิบัติงาน", "ปฏิบัติการ"]) },
}); });
const formattedData = await Promise.all( const formattedData = await Promise.all(
@ -3382,12 +3381,13 @@ export class PositionController extends Controller {
nodeId = posMaster.orgRootId; nodeId = posMaster.orgRootId;
} }
let _position: any let _position: any;
if( posLevel == null && posType == null && body.position != null) { if (posLevel == null && posType == null && body.position != null) {
_position = posMaster.positions _position = posMaster.positions
.filter((x:any) => .filter(
_posType.some((y:any) => y.id == x.posTypeId) && (x: any) =>
_posLevel.some((z:any) => z.id == x.posLevelId) _posType.some((y: any) => y.id == x.posTypeId) &&
_posLevel.some((z: any) => z.id == x.posLevelId),
) )
.map((position) => ({ .map((position) => ({
id: position.id, id: position.id,
@ -3405,8 +3405,7 @@ export class PositionController extends Controller {
positionIsSelected: position.positionIsSelected, positionIsSelected: position.positionIsSelected,
isSpecial: position.isSpecial, isSpecial: position.isSpecial,
})); }));
} } else {
else {
_position = posMaster.positions.map((position) => ({ _position = posMaster.positions.map((position) => ({
id: position.id, id: position.id,
positionName: position.positionName, positionName: position.positionName,
@ -4594,7 +4593,7 @@ export class PositionController extends Controller {
.leftJoinAndSelect("posMaster.orgChild4", "orgChild4") .leftJoinAndSelect("posMaster.orgChild4", "orgChild4")
.where(conditions) .where(conditions)
.andWhere({ .andWhere({
current_holderId: Not(IsNull()), current_holderId: IsNull(),
}) })
.andWhere( .andWhere(
_data.root != undefined && _data.root != null _data.root != undefined && _data.root != null