This commit is contained in:
parent
2629ae87a3
commit
66f81707d4
1 changed files with 36 additions and 12 deletions
|
|
@ -3689,32 +3689,56 @@ export class PositionController extends Controller {
|
|||
*/
|
||||
@Post("dna")
|
||||
async dna(
|
||||
@Body() requestBody: { draftPositionId: string; publishPositionId: string },
|
||||
@Body() requestBody: {
|
||||
draftRevisionId?: string | null; //ใช้เฉพาะเคสสืบทอดจากโครงสร้างปัจจุบัน
|
||||
draftPositionId: string; //ในเคสสืบทอดจากโครงสร้างปัจจุบันจะ "ตำแหน่งที่แบบร่าง" จะเป็น "ตำแหน่งปัจจุบัน" ใช้ draftRevisionId เพื่อเช็คว่าเป็นโครงสร้างปัจจุบันไหม
|
||||
publishRevisionId?: string | null; //ใช้เฉพาะเคสสืบทอดจากโครงสร้างปัจจุบัน
|
||||
publishPositionId: string //ในเคสสืบทอดจากโครงสร้างปัจจุบันจะ "ตำแหน่งปัจจุบัน" จะเป็น "ตำแหน่งที่ต้องการจะสืบทอด" ตาม publishRevisionId ที่ส่งมา
|
||||
},
|
||||
@Request() request: RequestWithUser,
|
||||
) {
|
||||
await new permission().PermissionUpdate(request, "SYS_ORG");
|
||||
let whereConditionRevision: any = {};
|
||||
|
||||
// ถ้ามี draftRevisionId ค่อยเพิ่มเข้าไป
|
||||
if (requestBody.draftRevisionId) {
|
||||
whereConditionRevision.id = requestBody.draftRevisionId;
|
||||
} else {
|
||||
whereConditionRevision.orgRevisionIsDraft = true;
|
||||
}
|
||||
|
||||
const findDraft = await this.orgRevisionRepository.findOne({
|
||||
where: {
|
||||
orgRevisionIsDraft: true,
|
||||
},
|
||||
where: whereConditionRevision,
|
||||
});
|
||||
if (!findDraft) {
|
||||
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลโครงสร้างที่เผยแพร่");
|
||||
}
|
||||
|
||||
const dataPublish = await this.posMasterRepository.findOne({
|
||||
where: {
|
||||
id: requestBody.publishPositionId,
|
||||
},
|
||||
let whereConditionPub: any = {};
|
||||
// ถ้ามี publishPositionId ค่อยเพิ่มเข้าไป ***อันนี้อาจไม่ต้องทำเพราะใช้ publishPositionId where ได้โดยตรง (!!รอดูหน้าบ้าน!!)***
|
||||
if (requestBody.publishRevisionId) {
|
||||
whereConditionPub.id = requestBody.publishPositionId;
|
||||
whereConditionPub.orgRevisionId = requestBody.publishRevisionId
|
||||
} else {
|
||||
whereConditionPub.id = requestBody.publishPositionId;
|
||||
}
|
||||
const dataPublish = await this.posMasterRepository.findOne({ //เคสโครงสร้างปัจจุบัน: ตัวที่ต้องการจะสืบทอด
|
||||
where: whereConditionPub,
|
||||
});
|
||||
if (!dataPublish) {
|
||||
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลตำแหน่งนี้");
|
||||
}
|
||||
|
||||
const dataDraft = await this.posMasterRepository.findOne({
|
||||
where: {
|
||||
id: requestBody.draftPositionId,
|
||||
},
|
||||
let whereConditionDraft: any = {};
|
||||
// ถ้ามี publishPositionId ค่อยเพิ่มเข้าไป ***อันนี้อาจไม่ต้องทำเพราะใช้ draftPositionId where ได้โดยตรง (!!รอดูหน้าบ้าน!!)***
|
||||
if (requestBody.draftRevisionId) {
|
||||
whereConditionDraft.id = requestBody.draftPositionId;
|
||||
whereConditionDraft.orgRevisionId = requestBody.draftRevisionId
|
||||
} else {
|
||||
whereConditionDraft.id = requestBody.draftPositionId;
|
||||
}
|
||||
const dataDraft = await this.posMasterRepository.findOne({ //เคสโครงสร้างปัจจุบัน: ตัวปัจจุบัน
|
||||
where: whereConditionDraft,
|
||||
});
|
||||
if (!dataDraft) {
|
||||
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลตำแหน่งนี้");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue