#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"; } from "../services/PositionService";
import { PostRetireToExprofile } from "./ExRetirementController"; import { PostRetireToExprofile } from "./ExRetirementController";
import { LeaveType } from "../entities/LeaveType"; import { LeaveType } from "../entities/LeaveType";
import { KeycloakAttributeService } from "../services/KeycloakAttributeService";
@Route("api/v1/org/command") @Route("api/v1/org/command")
@Tags("Command") @Tags("Command")
@Security("bearerAuth") @Security("bearerAuth")
@ -157,6 +158,8 @@ export class CommandController extends Controller {
private genderRepo = AppDataSource.getRepository(Gender); private genderRepo = AppDataSource.getRepository(Gender);
private avatarRepository = AppDataSource.getRepository(ProfileAvatar); private avatarRepository = AppDataSource.getRepository(ProfileAvatar);
private leaveType = AppDataSource.getRepository(LeaveType); private leaveType = AppDataSource.getRepository(LeaveType);
private keycloakAttributeService = new KeycloakAttributeService();
/** /**
* API list * API list
* *
@ -4253,6 +4256,14 @@ export class CommandController extends Controller {
profile.isActive = true; profile.isActive = true;
} }
await this.profileRepository.save(profile); await this.profileRepository.save(profile);
if (profile.id) {
await this.keycloakAttributeService.clearOrgDnaAttributes(
[profile.id],
"PROFILE",
);
}
// update user attribute in keycloak // update user attribute in keycloak
await updateUserAttributes(profile.keycloak ?? "", { await updateUserAttributes(profile.keycloak ?? "", {
profileId: [profile.id], profileId: [profile.id],
@ -4499,6 +4510,14 @@ export class CommandController extends Controller {
// profile.posLevelId = _null; // profile.posLevelId = _null;
} }
await this.profileEmployeeRepository.save(profile); await this.profileEmployeeRepository.save(profile);
if (profile.id) {
await this.keycloakAttributeService.clearOrgDnaAttributes(
[profile.id],
"PROFILE_EMPLOYEE",
);
}
// Task #2190 // Task #2190
if (code && ["C-PM-23", "C-PM-43"].includes(code)) { if (code && ["C-PM-23", "C-PM-43"].includes(code)) {
let organizeName = ""; let organizeName = "";
@ -4714,6 +4733,13 @@ export class CommandController extends Controller {
profile.amount = item.amount ?? _null; profile.amount = item.amount ?? _null;
profile.amountSpecial = item.amountSpecial ?? _null; profile.amountSpecial = item.amountSpecial ?? _null;
await this.profileRepository.save(profile, { data: req }); await this.profileRepository.save(profile, { data: req });
if (profile.id) {
await this.keycloakAttributeService.clearOrgDnaAttributes(
[profile.id],
"PROFILE",
);
}
} }
Object.assign(data, { ...item, ...meta }); Object.assign(data, { ...item, ...meta });
const history = new ProfileSalaryHistory(); const history = new ProfileSalaryHistory();
@ -5198,6 +5224,12 @@ export class CommandController extends Controller {
// _profile.posLevelId = _null; // _profile.posLevelId = _null;
} }
await this.profileRepository.save(_profile); 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; // _profile.posLevelId = _null;
} }
await this.profileEmployeeRepository.save(_profile); await this.profileEmployeeRepository.save(_profile);
if (_profile.id) {
await this.keycloakAttributeService.clearOrgDnaAttributes(
[_profile.id],
"PROFILE_EMPLOYEE",
);
}
} }
} }
// Task #2190 // Task #2190
@ -5706,6 +5744,13 @@ export class CommandController extends Controller {
// _profile.posLevelId = _null; // _profile.posLevelId = _null;
} }
await this.profileEmployeeRepository.save(_profile); 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.profileRepository.save(_profile),
this.salaryRepo.save(profileSalary), this.salaryRepo.save(profileSalary),
]); ]);
if (profile.id) {
await this.keycloakAttributeService.clearOrgDnaAttributes(
[profile.id],
"PROFILE",
);
}
const history = new ProfileSalaryHistory(); const history = new ProfileSalaryHistory();
Object.assign(history, { ...profileSalary, id: undefined }); Object.assign(history, { ...profileSalary, id: undefined });
history.profileSalaryId = profileSalary.id; history.profileSalaryId = profileSalary.id;
@ -6170,7 +6223,6 @@ export class CommandController extends Controller {
); );
}), }),
); );
return new HttpSuccess(); return new HttpSuccess();
} }

View file

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

View file

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

View file

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