Merge branch 'develop' into adiDev

This commit is contained in:
AdisakKanthawilang 2024-11-21 11:39:21 +07:00
commit fb3dd54518
10 changed files with 467 additions and 109 deletions

View file

@ -337,6 +337,105 @@ export class PositionController extends Controller {
return new HttpSuccess(posDict.id);
}
/**
* API
*
* @summary (ADMIN)
*
*/
@Put("position/executive/{id}")
@Example([
{
positionName: "นักบริหาร",
positionField: "บริหาร",
posTypeId: "08db9e81-fc46-4e95-8b33-be4ca0016abf",
posLevelId: "08db9e81-fc46-4e95-8b33-be4ca0016abf",
posExecutiveId: "08db9e81-fc46-4e95-8b33-be4ca0016abf",
positionExecutiveField: "นักบริหาร",
positionArea: "บริหาร",
},
])
async updatePositionExecutive(
@Path() id: string,
@Body()
requestBody: UpdatePosDict,
@Request() request: RequestWithUser,
) {
// await new permission().PermissionUpdate(request, "SYS_ORG");
const posDict = await this.posDictRepository.findOne({
where: { id: id },
});
if (!posDict) {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล");
}
const checkPosTypeId = await this.posTypeRepository.findOne({
where: { id: requestBody.posTypeId },
});
if (!checkPosTypeId) {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล PosTypeId");
}
const checkPosLevelId = await this.posLevelRepository.findOne({
where: { id: requestBody.posLevelId },
});
if (!checkPosLevelId) {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล PosLevelId");
}
const _null: any = null;
if (requestBody.posExecutiveId == "") {
requestBody.posExecutiveId = _null;
}
if (requestBody.posExecutiveId != null && requestBody.posExecutiveId != "") {
const checkPosExecutiveId = await this.posExecutiveRepository.findOne({
where: { id: requestBody.posExecutiveId },
});
if (!checkPosExecutiveId) {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล PosExecutiveId");
}
}
const rowRepeated = await this.posDictRepository.findOne({
where: {
id: Not(id),
posDictName: requestBody.posDictName,
posDictField: requestBody.posDictField,
posTypeId: requestBody.posTypeId,
posLevelId: requestBody.posLevelId,
posExecutiveId: requestBody.posExecutiveId ? requestBody.posExecutiveId : "",
posDictExecutiveField: requestBody.posDictExecutiveField
? requestBody.posDictExecutiveField
: "",
posDictArea: requestBody.posDictArea ? requestBody.posDictArea : "",
isSpecial: requestBody.isSpecial,
},
});
if (rowRepeated) {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ข้อมูล Row นี้มีอยู่ในระบบแล้ว");
}
const before = structuredClone(posDict);
Object.assign(posDict, requestBody);
posDict.lastUpdateUserId = request.user.sub;
posDict.lastUpdateFullName = request.user.name;
posDict.lastUpdatedAt = new Date();
posDict.posDictName = requestBody.posDictName;
posDict.posDictField = requestBody.posDictField;
posDict.posTypeId = requestBody.posTypeId;
posDict.posLevelId = requestBody.posLevelId;
posDict.posExecutiveId = requestBody.posExecutiveId ? requestBody.posExecutiveId : null;
posDict.posDictExecutiveField = requestBody.posDictExecutiveField
? requestBody.posDictExecutiveField
: "";
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 });
return new HttpSuccess();
}
/**
* API
*
@ -1122,13 +1221,13 @@ export class PositionController extends Controller {
where: { posMasterId: posMaster.id },
relations: ["posType", "posLevel", "posExecutive"],
// order: { lastUpdatedAt: "ASC" },
order: {
order: {
posType: {
posTypeRank: "ASC"
posTypeRank: "ASC",
},
posLevel: {
posLevelRank: "ASC"
}
posLevelRank: "ASC",
},
},
});
const formattedData = {
@ -1423,7 +1522,7 @@ export class PositionController extends Controller {
.andWhere(checkChildConditions)
.andWhere(typeCondition)
.andWhere(revisionCondition);
})
}),
)
.orWhere(
new Brackets((qb) => {
@ -1438,13 +1537,13 @@ export class PositionController extends Controller {
.andWhere(checkChildConditions)
.andWhere(typeCondition)
.andWhere(revisionCondition);
})
}),
)
.orderBy("posMaster.posMasterOrder", "ASC")
.skip((body.page - 1) * body.pageSize)
.take(body.pageSize)
.getManyAndCount();
//แก้ค้นหา
let _position: any[] = [];
let x: any = null;
@ -2007,6 +2106,8 @@ export class PositionController extends Controller {
profilePostype: type == null || type.posTypeName == null ? null : type.posTypeName,
profilePoslevel: level == null || level.posLevelName == null ? null : level.posLevelName,
authRoleId: posMaster.authRoleId,
isCondition: posMaster.isCondition,
conditionReason: posMaster.conditionReason,
authRoleName:
authRoleName == null || authRoleName.roleName == null ? null : authRoleName.roleName,
positions: positions.map((position: any) => ({