รายชื่อตามกลุ่มในโครงสร้าง
This commit is contained in:
parent
8786468761
commit
289b447b33
8 changed files with 269 additions and 42 deletions
|
|
@ -151,7 +151,7 @@ export class PositionController extends Controller {
|
|||
posDict.lastUpdateFullName = request.user.name;
|
||||
posDict.createdAt = new Date();
|
||||
posDict.lastUpdatedAt = new Date();
|
||||
await this.posDictRepository.save(posDict, {data: request});
|
||||
await this.posDictRepository.save(posDict, { data: request });
|
||||
setLogDataDiff(request, { before, after: posDict });
|
||||
return new HttpSuccess(posDict.id);
|
||||
}
|
||||
|
|
@ -223,7 +223,7 @@ export class PositionController extends Controller {
|
|||
where: { posMasterId: posMaster.id },
|
||||
});
|
||||
if (posMasterAssigns.length > 0) {
|
||||
await this.posMasterAssignRepo.remove(posMasterAssigns, {data:request});
|
||||
await this.posMasterAssignRepo.remove(posMasterAssigns, { data: request });
|
||||
}
|
||||
// await this.posMasterAssignRepo.delete({ posMasterId: posMaster.id });
|
||||
return new HttpSuccess();
|
||||
|
|
@ -307,8 +307,8 @@ export class PositionController extends Controller {
|
|||
posExecutive.lastUpdateFullName = request.user.name;
|
||||
posExecutive.createdAt = new Date();
|
||||
posExecutive.lastUpdatedAt = new Date();
|
||||
await this.posExecutiveRepository.save(posExecutive, {data:request});
|
||||
setLogDataDiff(request, {before, after: posExecutive});
|
||||
await this.posExecutiveRepository.save(posExecutive, { data: request });
|
||||
setLogDataDiff(request, { before, after: posExecutive });
|
||||
}
|
||||
|
||||
const rowRepeated = await this.posDictRepository.findOne({
|
||||
|
|
@ -334,8 +334,8 @@ export class PositionController extends Controller {
|
|||
posDict.lastUpdateFullName = request.user.name;
|
||||
posDict.createdAt = new Date();
|
||||
posDict.lastUpdatedAt = new Date();
|
||||
await this.posDictRepository.save(posDict, {data:request});
|
||||
setLogDataDiff(request, {before, after: posDict});
|
||||
await this.posDictRepository.save(posDict, { data: request });
|
||||
setLogDataDiff(request, { before, after: posDict });
|
||||
return new HttpSuccess(posDict.id);
|
||||
}
|
||||
|
||||
|
|
@ -433,8 +433,8 @@ export class PositionController extends Controller {
|
|||
posDict.posDictArea = requestBody.posDictArea ? requestBody.posDictArea : "";
|
||||
posDict.isSpecial = requestBody.isSpecial;
|
||||
// this.posDictRepository.merge(posDict, requestBody);
|
||||
await this.posDictRepository.save(posDict, {data:request});
|
||||
setLogDataDiff(request, {before, after: posDict});
|
||||
await this.posDictRepository.save(posDict, { data: request });
|
||||
setLogDataDiff(request, { before, after: posDict });
|
||||
return new HttpSuccess();
|
||||
}
|
||||
|
||||
|
|
@ -452,7 +452,7 @@ export class PositionController extends Controller {
|
|||
if (!delPosDict) {
|
||||
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลตำแหน่งในสายงานนี้");
|
||||
}
|
||||
await this.posDictRepository.remove(delPosDict, {data: request});
|
||||
await this.posDictRepository.remove(delPosDict, { data: request });
|
||||
return new HttpSuccess();
|
||||
}
|
||||
|
||||
|
|
@ -4053,4 +4053,109 @@ export class PositionController extends Controller {
|
|||
}
|
||||
return new HttpSuccess();
|
||||
}
|
||||
|
||||
/**
|
||||
* API รายชื่อตามกลุ่มในโครงสร้าง
|
||||
*
|
||||
* @summary รายชื่อตามกลุ่มในโครงสร้าง
|
||||
*
|
||||
*/
|
||||
@Post("report/draft")
|
||||
async reportDraft(
|
||||
@Body()
|
||||
body: {
|
||||
type: string;
|
||||
rootId: string;
|
||||
},
|
||||
) {
|
||||
let conditionGroup = "";
|
||||
if (body.type.trim().toUpperCase() == "GROUP1") {
|
||||
conditionGroup =
|
||||
"(posType.posTypeName = 'ทั่วไป' AND posLevel.posLevelName = 'ชำนาญงาน') OR (posType.posTypeName = 'ทั่วไป' AND posLevel.posLevelName = 'ปฏิบัติงาน') OR (posType.posTypeName = 'วิชาการ' AND posLevel.posLevelName = 'ปฏิบัติการ') OR (posType.posTypeName = 'วิชาการ' AND posLevel.posLevelName = 'ชำนาญการ')";
|
||||
} else if (body.type.trim().toUpperCase() == "GROUP2") {
|
||||
conditionGroup =
|
||||
"(posType.posTypeName = 'ทั่วไป' AND posLevel.posLevelName = 'อาวุโส') OR (posType.posTypeName = 'วิชาการ' AND posLevel.posLevelName = 'ชำนาญการพิเศษ') OR (posType.posTypeName = 'อำนวยการ' AND posLevel.posLevelName = 'ต้น')";
|
||||
} else if (body.type.trim().toUpperCase() == "GROUP3") {
|
||||
conditionGroup =
|
||||
"(posType.posTypeName = 'ทั่วไป' AND posLevel.posLevelName = 'ทักษะพิเศษ') OR (posType.posTypeName = 'วิชาการ' AND posLevel.posLevelName = 'เชี่ยวชาญ') OR (posType.posTypeName = 'วิชาการ' AND posLevel.posLevelName = 'ทรงคุณวุฒิ') OR (posType.posTypeName = 'อำนวยการ' AND posLevel.posLevelName = 'สูง') OR (posType.posTypeName = 'บริหาร' AND posLevel.posLevelName = 'ต้น') OR (posType.posTypeName = 'บริหาร' AND posLevel.posLevelName = 'สูง')";
|
||||
} else {
|
||||
throw new HttpError(HttpStatusCode.NOT_FOUND, "กลุ่มเป้าหมายไม่ถูกต้อง");
|
||||
}
|
||||
|
||||
let posMaster = 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.next_holder", "next_holder")
|
||||
.leftJoinAndSelect("posMaster.positions", "positions")
|
||||
.leftJoinAndSelect("positions.posType", "posType")
|
||||
.leftJoinAndSelect("positions.posLevel", "posLevel")
|
||||
.leftJoinAndSelect("posMaster.orgRevision", "orgRevision")
|
||||
.andWhere("posMaster.orgRootId = :orgRootId", { orgRootId: body.rootId })
|
||||
.andWhere("posMaster.statusReport = :statusReport", { statusReport: "PENDING" })
|
||||
.andWhere("posMaster.next_holderId IS NOT NULL")
|
||||
.andWhere("orgRevision.orgRevisionIsCurrent = :orgRevisionIsCurrent", {
|
||||
orgRevisionIsCurrent: false,
|
||||
})
|
||||
.andWhere("orgRevision.orgRevisionIsDraft = :orgRevisionIsDraft", {
|
||||
orgRevisionIsDraft: true,
|
||||
})
|
||||
.andWhere("positions.positionIsSelected = :isSelected", { isSelected: true })
|
||||
.andWhere(
|
||||
new Brackets((qb) => {
|
||||
qb.andWhere(conditionGroup);
|
||||
}),
|
||||
)
|
||||
.orderBy("posMaster.posMasterOrder", "ASC")
|
||||
.select([
|
||||
"posMaster.id",
|
||||
"posMaster.posMasterNo",
|
||||
"positions.positionName",
|
||||
"positions.positionIsSelected",
|
||||
"posType.posTypeName",
|
||||
"posLevel.posLevelName",
|
||||
"orgRoot.orgRootShortName",
|
||||
"orgChild1.orgChild1ShortName",
|
||||
"orgChild2.orgChild2ShortName",
|
||||
"orgChild3.orgChild3ShortName",
|
||||
"orgChild4.orgChild4ShortName",
|
||||
"next_holder.prefix",
|
||||
"next_holder.firstName",
|
||||
"next_holder.lastName",
|
||||
])
|
||||
.getMany();
|
||||
const _posMaster = posMaster.map((x) => {
|
||||
const posMasterNo =
|
||||
x.orgChild4 != null
|
||||
? `${x.orgChild4.orgChild4ShortName}${x.posMasterNo}`
|
||||
: x != null && x?.orgChild3 != null
|
||||
? `${x.orgChild3.orgChild3ShortName}${x.posMasterNo}`
|
||||
: x != null && x?.orgChild2 != null
|
||||
? `${x.orgChild2.orgChild2ShortName}${x.posMasterNo}`
|
||||
: x != null && x?.orgChild1 != null
|
||||
? `${x.orgChild1.orgChild1ShortName}${x.posMasterNo}`
|
||||
: x != null && x?.orgRoot != null
|
||||
? `${x.orgRoot.orgRootShortName}${x.posMasterNo}`
|
||||
: null;
|
||||
const position =
|
||||
x.positions.filter((x) => x.positionIsSelected == true).length > 0
|
||||
? x.positions.filter((x) => x.positionIsSelected == true)[0]
|
||||
: null;
|
||||
return {
|
||||
id: x.id,
|
||||
posMasterNo: posMasterNo,
|
||||
positionName: position?.positionName || null,
|
||||
posType: position?.posType?.posTypeName || null,
|
||||
posLevel: position?.posLevel?.posLevelName || null,
|
||||
prefix: x.next_holder?.prefix || null,
|
||||
firstName: x.next_holder?.firstName || null,
|
||||
lastName: x.next_holder?.lastName || null,
|
||||
};
|
||||
});
|
||||
|
||||
return new HttpSuccess(_posMaster);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue