#2345
All checks were successful
Build & Deploy on Dev / build (push) Successful in 3m14s

This commit is contained in:
Adisak 2026-03-09 14:44:38 +07:00
parent 91887ec63d
commit 060ac81532
4 changed files with 201 additions and 123 deletions

View file

@ -101,6 +101,7 @@ import {
} from "../services/PositionService";
import { PostRetireToExprofile } from "./ExRetirementController";
import { LeaveType } from "../entities/LeaveType";
import { KeycloakAttributeService } from "../services/KeycloakAttributeService";
@Route("api/v1/org/command")
@Tags("Command")
@Security("bearerAuth")
@ -157,6 +158,8 @@ export class CommandController extends Controller {
private genderRepo = AppDataSource.getRepository(Gender);
private avatarRepository = AppDataSource.getRepository(ProfileAvatar);
private leaveType = AppDataSource.getRepository(LeaveType);
private keycloakAttributeService = new KeycloakAttributeService();
/**
* API list
*
@ -810,8 +813,8 @@ export class CommandController extends Controller {
.PostData(request, path + "/delete", {
refIds: [commandRecive.refId],
})
.then(async (res) => {})
.catch(() => {});
.then(async (res) => { })
.catch(() => { });
const commandId = commandRecive.commandId;
await this.commandReciveRepository.delete(commandRecive.id);
@ -854,8 +857,8 @@ export class CommandController extends Controller {
.PostData(request, path + "/delete", {
refIds: [commandRecive.refId],
})
.then(async (res) => {})
.catch(() => {});
.then(async (res) => { })
.catch(() => { });
const commandId = commandRecive.commandId;
await this.commandReciveRepository.delete(commandRecive.id);
@ -898,8 +901,8 @@ export class CommandController extends Controller {
.PostData(request, path + "/delete", {
refIds: [commandRecive.refId],
})
.then(async (res) => {})
.catch(() => {});
.then(async (res) => { })
.catch(() => { });
const commandId = commandRecive.commandId;
await this.commandReciveRepository.delete(commandRecive.id);
@ -1183,8 +1186,8 @@ export class CommandController extends Controller {
.PostData(request, path + "/delete", {
refIds: command.commandRecives.map((x) => x.refId),
})
.then(async (res) => {})
.catch(() => {});
.then(async (res) => { })
.catch(() => { });
await this.commandReciveRepository.delete({ commandId: command.id });
command.status = "CANCEL";
@ -1249,8 +1252,8 @@ export class CommandController extends Controller {
.PostData(request, path + "/delete", {
refIds: command.commandRecives.map((x) => x.refId),
})
.then(async (res) => {})
.catch(() => {});
.then(async (res) => { })
.catch(() => { });
await this.commandSendCCRepository.delete({ commandSendId: In(commandSend.map((x) => x.id)) });
await this.commandReciveRepository.delete({ commandId: command.id });
@ -1439,8 +1442,8 @@ export class CommandController extends Controller {
refIds: command.commandRecives.filter((x) => x.refId != null).map((x) => x.refId),
status: "WAITING",
})
.then(async (res) => {})
.catch(() => {});
.then(async (res) => { })
.catch(() => { });
await this.commandRepository.save(command);
} else {
const path = commandTypePath(command.commandType.code);
@ -1577,7 +1580,7 @@ export class CommandController extends Controller {
);
await this.profileRepository.save(profiles);
}
} catch {}
} catch { }
type = "EMPLOYEE";
try {
@ -1609,7 +1612,7 @@ export class CommandController extends Controller {
);
await this.profileEmployeeRepository.save(profiles);
}
} catch {}
} catch { }
return new HttpSuccess();
}
@ -1673,7 +1676,7 @@ export class CommandController extends Controller {
}),
);
}
} catch {}
} catch { }
type = "EMPLOYEE";
try {
@ -1728,7 +1731,7 @@ export class CommandController extends Controller {
}),
);
}
} catch {}
} catch { }
return new HttpSuccess();
}
@ -1941,7 +1944,7 @@ export class CommandController extends Controller {
.then((x) => {
res = x;
})
.catch((x) => {});
.catch((x) => { });
}
let _command;
@ -2295,7 +2298,7 @@ export class CommandController extends Controller {
.then(async (res) => {
_command = res;
})
.catch(() => {});
.catch(() => { });
let issue =
command.isBangkok == "OFFICE"
@ -2666,8 +2669,8 @@ export class CommandController extends Controller {
refIds: requestBody.persons.filter((x) => x.refId != null).map((x) => x.refId),
status: "REPORT",
})
.then(async (res) => {})
.catch(() => {});
.then(async (res) => { })
.catch(() => { });
let order =
command.commandRecives == null || command.commandRecives.length <= 0
? 0
@ -4253,6 +4256,14 @@ export class CommandController extends Controller {
profile.isActive = true;
}
await this.profileRepository.save(profile);
if (profile.id) {
await this.keycloakAttributeService.clearOrgDnaAttributes(
[profile.id],
"PROFILE",
);
}
// update user attribute in keycloak
await updateUserAttributes(profile.keycloak ?? "", {
profileId: [profile.id],
@ -4499,6 +4510,14 @@ export class CommandController extends Controller {
// profile.posLevelId = _null;
}
await this.profileEmployeeRepository.save(profile);
if (profile.id) {
await this.keycloakAttributeService.clearOrgDnaAttributes(
[profile.id],
"PROFILE_EMPLOYEE",
);
}
// Task #2190
if (code && ["C-PM-23", "C-PM-43"].includes(code)) {
let organizeName = "";
@ -4714,6 +4733,13 @@ export class CommandController extends Controller {
profile.amount = item.amount ?? _null;
profile.amountSpecial = item.amountSpecial ?? _null;
await this.profileRepository.save(profile, { data: req });
if (profile.id) {
await this.keycloakAttributeService.clearOrgDnaAttributes(
[profile.id],
"PROFILE",
);
}
}
Object.assign(data, { ...item, ...meta });
const history = new ProfileSalaryHistory();
@ -5198,6 +5224,12 @@ export class CommandController extends Controller {
// _profile.posLevelId = _null;
}
await this.profileRepository.save(_profile);
if (_profile.id) {
await this.keycloakAttributeService.clearOrgDnaAttributes(
[_profile.id],
"PROFILE",
);
}
}
}
// ลูกจ้าง
@ -5375,6 +5407,12 @@ export class CommandController extends Controller {
// _profile.posLevelId = _null;
}
await this.profileEmployeeRepository.save(_profile);
if (_profile.id) {
await this.keycloakAttributeService.clearOrgDnaAttributes(
[_profile.id],
"PROFILE_EMPLOYEE",
);
}
}
}
// Task #2190
@ -5706,6 +5744,13 @@ export class CommandController extends Controller {
// _profile.posLevelId = _null;
}
await this.profileEmployeeRepository.save(_profile);
if (_profile.id) {
await this.keycloakAttributeService.clearOrgDnaAttributes(
[_profile.id],
"PROFILE_EMPLOYEE",
);
}
}
}),
);
@ -6139,6 +6184,14 @@ export class CommandController extends Controller {
this.profileRepository.save(_profile),
this.salaryRepo.save(profileSalary),
]);
if (profile.id) {
await this.keycloakAttributeService.clearOrgDnaAttributes(
[profile.id],
"PROFILE",
);
}
const history = new ProfileSalaryHistory();
Object.assign(history, { ...profileSalary, id: undefined });
history.profileSalaryId = profileSalary.id;
@ -6170,7 +6223,6 @@ export class CommandController extends Controller {
);
}),
);
return new HttpSuccess();
}
@ -6883,8 +6935,8 @@ export class CommandController extends Controller {
prefix: avatar,
fileName: fileName,
})
.then(() => {})
.catch(() => {});
.then(() => { })
.catch(() => { });
}
}
}),
@ -7995,7 +8047,7 @@ export class CommandController extends Controller {
.then(async (res) => {
_command = res;
})
.catch(() => {});
.catch(() => { });
let issue =
command.isBangkok == "OFFICE"

View file

@ -43,6 +43,7 @@ import {
CreatePosMasterHistoryOfficer,
} from "../services/PositionService";
import { PosMasterEmployeeHistory } from "../entities/PosMasterEmployeeHistory";
import { KeycloakAttributeService } from "../services/KeycloakAttributeService";
@Route("api/v1/org/employee/pos")
@Tags("Employee")
@Security("bearerAuth")
@ -65,6 +66,7 @@ export class EmployeePositionController extends Controller {
private child3Repository = AppDataSource.getRepository(OrgChild3);
private child4Repository = AppDataSource.getRepository(OrgChild4);
private authRoleRepo = AppDataSource.getRepository(AuthRole);
private keycloakAttributeService = new KeycloakAttributeService();
/**
* API
@ -2435,6 +2437,12 @@ export class EmployeePositionController extends Controller {
// await this.profileRepository.save(profile);
// }
// }
if (dataMaster.current_holderId) {
await this.keycloakAttributeService.clearOrgDnaAttributes(
[dataMaster.current_holderId],
"PROFILE_EMPLOYEE",
);
}
await this.employeePosMasterRepository.update(id, {
isSit: false,

View file

@ -43,6 +43,7 @@ import permission from "../interfaces/permission";
import { setLogDataDiff } from "../interfaces/utils";
import { CreatePosMasterHistoryEmployeeTemp } from "../services/PositionService";
import { PosMasterEmployeeTempHistory } from "../entities/PosMasterEmployeeTempHistory";
import { KeycloakAttributeService } from "../services/KeycloakAttributeService";
@Route("api/v1/org/employee-temp/pos")
@Tags("Employee")
@Security("bearerAuth")
@ -65,6 +66,7 @@ export class EmployeeTempPositionController extends Controller {
private child3Repository = AppDataSource.getRepository(OrgChild3);
private child4Repository = AppDataSource.getRepository(OrgChild4);
private authRoleRepo = AppDataSource.getRepository(AuthRole);
private keycloakAttributeService = new KeycloakAttributeService();
/**
* API
@ -2141,6 +2143,13 @@ export class EmployeeTempPositionController extends Controller {
// }
// }
if (dataMaster.current_holderId) {
await this.keycloakAttributeService.clearOrgDnaAttributes(
[dataMaster.current_holderId],
"PROFILE_EMPLOYEE",
);
}
await this.employeeTempPosMasterRepository.update(id, {
isSit: false,
next_holderId: null,

View file

@ -44,6 +44,7 @@ import { Assign } from "../entities/Assign";
import { ProfileEmployee } from "../entities/ProfileEmployee";
import { PosMasterHistory } from "../entities/PosMasterHistory";
import { CreatePosMasterHistoryOfficer } from "../services/PositionService";
import { KeycloakAttributeService } from "../services/KeycloakAttributeService";
@Route("api/v1/org/pos")
@Tags("Position")
@Security("bearerAuth")
@ -73,6 +74,7 @@ export class PositionController extends Controller {
private authRoleRepo = AppDataSource.getRepository(AuthRole);
private posMasterAssignRepo = AppDataSource.getRepository(PosMasterAssign);
private assignRepo = AppDataSource.getRepository(Assign);
private keycloakAttributeService = new KeycloakAttributeService();
/**
* API
@ -3868,6 +3870,13 @@ export class PositionController extends Controller {
await CreatePosMasterHistoryOfficer(dataMaster.id, request, "DELETE");
}
if (dataMaster.current_holderId) {
await this.keycloakAttributeService.clearOrgDnaAttributes(
[dataMaster.current_holderId],
"PROFILE",
);
}
let _profileId: string = "";
if (dataMaster?.current_holderId) {
_profileId = dataMaster?.current_holderId;