Merge branch 'develop' into adiDev
Some checks failed
release / release (push) Failing after 9s

This commit is contained in:
Adisak 2025-11-04 09:52:01 +07:00
commit 999bfa7cd2
3 changed files with 79 additions and 63 deletions

View file

@ -67,8 +67,8 @@ async function main() {
}); });
// const cronTime_Oct = "0 0 1 10 *"; // const cronTime_Oct = "0 0 1 10 *";
// Test #1892 // Test #1912
const cronTime_Oct = "0 0 31 10 *"; const cronTime_Oct = "0 0 4 11 *";
cron.schedule(cronTime_Oct, async () => { cron.schedule(cronTime_Oct, async () => {
try { try {
const commandController = new CommandController(); const commandController = new CommandController();

View file

@ -1477,24 +1477,6 @@ export class CommandController extends Controller {
} }
// @Get("XXX") // @Get("XXX")
async cronjobUpdateRetirementStatus(/*@Request() request: RequestWithUser*/) { async cronjobUpdateRetirementStatus(/*@Request() request: RequestWithUser*/) {
// let body = {
// client_id: "gettoken",
// client_secret: process.env.AUTH_ACCOUNT_SECRET,
// grant_type: "client_credentials",
// };
// const postData = querystring.stringify(body);
// const response = await axios.post(
// `${process.env.KC_URL}/realms/${process.env.KC_REALMS}/protocol/openid-connect/token`,
// postData,
// {
// headers: {
// "Content-Type": "application/x-www-form-urlencoded",
// api_key: process.env.API_KEY,
// },
// },
// );
// const adminToken = response.data.access_token;
// const adminToken = request.headers["authorization"]?.replace("Bearer ", "");
const adminToken = await getToken() ?? ""; const adminToken = await getToken() ?? "";
const today = new Date(); const today = new Date();
today.setUTCHours(0, 0, 0, 0); today.setUTCHours(0, 0, 0, 0);
@ -1668,32 +1650,30 @@ export class CommandController extends Controller {
} }
async posMasterRetire(profileId: string, type: string, _Date: Date) { async posMasterRetire(profileId: string, type: string, _Date: Date) {
const orgRevision = await this.orgRevisionRepo.findOne({ const revisionIsCurrent = await this.orgRevisionRepo.findOne({
where: { orgRevisionIsCurrent: true, orgRevisionIsDraft: false }, where: { orgRevisionIsCurrent: true, orgRevisionIsDraft: false },
}); });
if (orgRevision) { if (revisionIsCurrent) {
let _posMaster: any = null; let _posMaster: any = null;
let _position: any = null;
if (type == "OFFICER") { if (type == "OFFICER") {
_posMaster = await this.posMasterRepository.findOne({ _posMaster = await this.posMasterRepository.findOne({
where: { where: {
orgRevisionId: orgRevision.id, orgRevisionId: revisionIsCurrent.id,
current_holderId: profileId, current_holderId: profileId,
}, },
}); });
if (_posMaster) { if (_posMaster) {
_position = await this.positionRepository.findOne({ await this.positionRepository.update(
where: { {
posMasterId: _posMaster.id, posMasterId: _posMaster.id,
positionIsSelected: true, positionIsSelected: true,
}, },
}); {
if (_position) { positionIsSelected: false,
_position.positionIsSelected = false; lastUpdateFullName: "System Administrator",
_position.lastUpdateFullName = "System Administrator"; lastUpdatedAt: _Date,
_position.lastUpdatedAt = _Date; }
await this.positionRepository.save(_position); );
}
_posMaster.isSit = false; _posMaster.isSit = false;
_posMaster.current_holderId = null; _posMaster.current_holderId = null;
_posMaster.lastUpdateFullName = "System Administrator"; _posMaster.lastUpdateFullName = "System Administrator";
@ -1701,26 +1681,57 @@ export class CommandController extends Controller {
await this.posMasterRepository.save(_posMaster); await this.posMasterRepository.save(_posMaster);
await CreatePosMasterHistoryOfficer(_posMaster.id, null); await CreatePosMasterHistoryOfficer(_posMaster.id, null);
} }
const revisionIsDraft = await this.orgRevisionRepo.findOne({
where: { orgRevisionIsCurrent: false, orgRevisionIsDraft: true },
});
if (revisionIsDraft) {
_posMaster = null;
_posMaster = await this.posMasterRepository.findOne({
where: {
orgRevisionId: revisionIsDraft.id,
next_holderId: profileId,
},
});
if (_posMaster) {
await this.positionRepository.update(
{
posMasterId: _posMaster.id,
positionIsSelected: true,
},
{
positionIsSelected: false,
lastUpdateFullName: "System Administrator",
lastUpdatedAt: _Date,
}
);
_posMaster.isSit = false;
_posMaster.next_holderId = null;
_posMaster.lastUpdateFullName = "System Administrator";
_posMaster.lastUpdatedAt = _Date;
await this.posMasterRepository.save(_posMaster);
await CreatePosMasterHistoryOfficer(_posMaster.id, null);
}
// console.log("clear posMaster & position 'Draf' success")
}
} else if (type == "EMPLOYEE") { } else if (type == "EMPLOYEE") {
_posMaster = await this.employeePosMasterRepository.findOne({ _posMaster = await this.employeePosMasterRepository.findOne({
where: { where: {
orgRevisionId: orgRevision.id, orgRevisionId: revisionIsCurrent.id,
current_holderId: profileId, current_holderId: profileId,
}, },
}); });
if (_posMaster) { if (_posMaster) {
_position = await this.employeePositionRepository.findOne({ await this.employeePositionRepository.update(
where: { {
posMasterId: _posMaster.id, posMasterId: _posMaster.id,
positionIsSelected: true, positionIsSelected: true,
}, },
}); {
if (_position) { positionIsSelected: false,
_position.positionIsSelected = false; lastUpdateFullName: "System Administrator",
_position.lastUpdateFullName = "System Administrator"; lastUpdatedAt: _Date,
_position.lastUpdatedAt = _Date; }
await this.employeePositionRepository.save(_position); );
}
_posMaster.isSit = false; _posMaster.isSit = false;
_posMaster.current_holderId = null; _posMaster.current_holderId = null;
_posMaster.lastUpdateFullName = "System Administrator"; _posMaster.lastUpdateFullName = "System Administrator";
@ -1729,6 +1740,7 @@ export class CommandController extends Controller {
await CreatePosMasterHistoryEmployee(_posMaster.id, null); await CreatePosMasterHistoryEmployee(_posMaster.id, null);
} }
} }
// console.log("clear posMaster & position 'Current' success")
} }
} }

View file

@ -6316,45 +6316,49 @@ export class ImportDataController extends Controller {
@Post("updateRetireClearOrg") @Post("updateRetireClearOrg")
async updateRetireClearOrg(@Request() request: { user: Record<string, any> }) { async updateRetireClearOrg(@Request() request: { user: Record<string, any> }) {
const profiles = await this.profileRepo.find({ const profiles = await this.profileRepo.find({
where: { where: { isLeave: true },
isLeave: true, select: ["id"],
},
}); });
const profileIds = profiles.map((p) => p.id);
for (const item of profiles) { if (profileIds.length > 0) {
const posmaster = await this.posMasterRepo.findOne({ const posmasters = await this.posMasterRepo.find({
where: { where: {
orgRevision: { orgRevision: {
orgRevisionIsCurrent: false, orgRevisionIsCurrent: false,
orgRevisionIsDraft: true, orgRevisionIsDraft: true,
}, },
next_holderId: item.id, next_holderId: In(profileIds),
}, },
}); });
if (!posmaster) continue; for (const posmaster of posmasters) {
posmaster.next_holderId = null; posmaster.next_holderId = null;
await this.posMasterRepo.save(posmaster); }
if (posmasters.length > 0) {
await this.posMasterRepo.save(posmasters);
}
} }
const profileEmps = await this.profileEmpRepo.find({ const profileEmps = await this.profileEmpRepo.find({
where: { where: { isLeave: true },
isLeave: true, select: ["id"],
},
}); });
const profileEmpIds = profileEmps.map((p) => p.id);
for (const item of profileEmps) { if (profileEmpIds.length > 0) {
const posmaster = await this.posMasterEmpRepo.findOne({ const posmasterEmps = await this.posMasterEmpRepo.find({
where: { where: {
orgRevision: { orgRevision: {
orgRevisionIsCurrent: false, orgRevisionIsCurrent: false,
orgRevisionIsDraft: true, orgRevisionIsDraft: true,
}, },
next_holderId: item.id, next_holderId: In(profileEmpIds),
}, },
}); });
if (!posmaster) continue; for (const posmasterEmp of posmasterEmps) {
posmaster.next_holderId = null; posmasterEmp.next_holderId = null;
await this.posMasterEmpRepo.save(posmaster); }
if (posmasterEmps.length > 0) {
await this.posMasterEmpRepo.save(posmasterEmps);
}
} }
return new HttpSuccess(); return new HttpSuccess();
} }