From 0926594e3386754712fc2627a5fc70f450a2c220 Mon Sep 17 00:00:00 2001 From: AdisakKanthawilang Date: Tue, 13 Feb 2024 14:31:36 +0700 Subject: [PATCH] fix org_068 --- src/controllers/PositionController.ts | 48 ++++++++++++++++++++------- 1 file changed, 36 insertions(+), 12 deletions(-) diff --git a/src/controllers/PositionController.ts b/src/controllers/PositionController.ts index 3e87f380..312b57a6 100644 --- a/src/controllers/PositionController.ts +++ b/src/controllers/PositionController.ts @@ -661,6 +661,8 @@ export class PositionController extends Controller { try { let typeCondition: any = {}; let checkChildConditions: any = {}; + let keywordAsInt: any; + if (body.type === 0) { typeCondition = { orgRootId: body.id, @@ -737,7 +739,6 @@ export class PositionController extends Controller { select: ["posMasterId"], }); masterId = masterId.concat(findPosition.map((position: any) => position.posMasterId)); - let keywordAsInt: any; keywordAsInt = body.keyword == null ? null : parseInt(body.keyword, 10); if (isNaN(keywordAsInt)) { keywordAsInt = "P@ssw0rd!z"; @@ -1790,28 +1791,51 @@ export class PositionController extends Controller { */ @Post("dna") async dna(@Body() requestBody: { draftPositionId: string; publishPositionId: string;}) { - const dataDraft = await this.posMasterRepository.findOne({ - where: { id: requestBody.draftPositionId }, + + const findDraft = await this.orgRevisionRepository.findOne({ + where:{ + orgRevisionIsDraft:true, + } }); - if (!dataDraft) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลไอดีนี้(draftPositionId) : " + requestBody.draftPositionId); - } const dataPublish = await this.posMasterRepository.findOne({ - where: { id: requestBody.publishPositionId }, + where: { + id: requestBody.publishPositionId, + }, }); if (!dataPublish) { throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลไอดีนี้(publishPositionId) : " + requestBody.publishPositionId); + } + + const dataDraft = await this.posMasterRepository.findOne({ + where: { + id: requestBody.draftPositionId, + }, + }); + if (!dataDraft) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลไอดีนี้(draftPositionId) : " + requestBody.draftPositionId); + } + + const dataPosMaster = await this.posMasterRepository.find({ + where:{ + orgRevisionId:findDraft?.id, + ancestorDNA:dataPublish.ancestorDNA + } + }); + if (!dataPosMaster) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลไอดีนี้ใน posMaster (publishPositionId) : " + requestBody.publishPositionId); } - + try { - + + await this.posMasterRepository.update( + { orgRevisionId: findDraft?.id, ancestorDNA: dataPublish.ancestorDNA }, + { ancestorDNA: "" } + ); + dataDraft.ancestorDNA = dataPublish.ancestorDNA; await this.posMasterRepository.save(dataDraft); - dataPublish.ancestorDNA = ""; - await this.posMasterRepository.save(dataPublish); - return new HttpSuccess(); } catch (error) { return error;