update scrip update retire
This commit is contained in:
parent
7eae9d2c8d
commit
a366e5ca0d
1 changed files with 125 additions and 0 deletions
|
|
@ -1,3 +1,5 @@
|
||||||
|
import { ProfileSalaryHistory } from "./../entities/ProfileSalaryHistory";
|
||||||
|
import { ProfileSalary } from "./../entities/ProfileSalary";
|
||||||
import {
|
import {
|
||||||
Controller,
|
Controller,
|
||||||
Get,
|
Get,
|
||||||
|
|
@ -31,6 +33,7 @@ import { sendToQueueOrg, sendToQueueOrgDraft } from "../services/rabbitmq";
|
||||||
import { PosType } from "../entities/PosType";
|
import { PosType } from "../entities/PosType";
|
||||||
import { PosLevel } from "../entities/PosLevel";
|
import { PosLevel } from "../entities/PosLevel";
|
||||||
import { PermissionOrg } from "../entities/PermissionOrg";
|
import { PermissionOrg } from "../entities/PermissionOrg";
|
||||||
|
import { deleteUser } from "../keycloak";
|
||||||
|
|
||||||
@Route("api/v1/org")
|
@Route("api/v1/org")
|
||||||
@Tags("Organization")
|
@Tags("Organization")
|
||||||
|
|
@ -51,6 +54,9 @@ export class OrganizationController extends Controller {
|
||||||
private posTypeRepository = AppDataSource.getRepository(PosType);
|
private posTypeRepository = AppDataSource.getRepository(PosType);
|
||||||
private posLevelRepository = AppDataSource.getRepository(PosLevel);
|
private posLevelRepository = AppDataSource.getRepository(PosLevel);
|
||||||
private permissionOrgRepository = AppDataSource.getRepository(PermissionOrg);
|
private permissionOrgRepository = AppDataSource.getRepository(PermissionOrg);
|
||||||
|
private profileSalaryRepository = AppDataSource.getRepository(ProfileSalary);
|
||||||
|
private salaryHistoryRepo = AppDataSource.getRepository(ProfileSalaryHistory);
|
||||||
|
private orgRevisionRepo = AppDataSource.getRepository(OrgRevision);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* API ล้างข้อมูล
|
* API ล้างข้อมูล
|
||||||
|
|
@ -7942,4 +7948,123 @@ export class OrganizationController extends Controller {
|
||||||
|
|
||||||
return new HttpSuccess();
|
return new HttpSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* API บันทึกลงประวัติตำแหน่ง
|
||||||
|
*
|
||||||
|
* @summary - แก้ไขเหตุผลการลาออก และปลดจาก keycloak (ADMIN)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@Get("save/profile/position-history")
|
||||||
|
async saveRetireToPositionHistory(request: RequestWithUser) {
|
||||||
|
const profileLeave = await this.profileRepo.find({
|
||||||
|
where: {
|
||||||
|
isLeave: true,
|
||||||
|
leaveType: "RETIRE",
|
||||||
|
},
|
||||||
|
relations: [
|
||||||
|
"posType",
|
||||||
|
"posLevel",
|
||||||
|
"current_holders",
|
||||||
|
"current_holders.orgRoot",
|
||||||
|
"current_holders.orgChild1",
|
||||||
|
"current_holders.orgChild2",
|
||||||
|
"current_holders.orgChild3",
|
||||||
|
"current_holders.orgChild4",
|
||||||
|
"current_holders.positions",
|
||||||
|
"current_holders.positions.posExecutive",
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
const batchSize = 1000;
|
||||||
|
for (let i = 0; i < profileLeave.length; i += batchSize) {
|
||||||
|
const batch = profileLeave.slice(i, i + batchSize);
|
||||||
|
await Promise.all(
|
||||||
|
batch.map(async (profile: any) => {
|
||||||
|
const dest_item = await this.profileSalaryRepository.findOne({
|
||||||
|
where: { profileId: profile.id },
|
||||||
|
order: { order: "DESC" },
|
||||||
|
});
|
||||||
|
const data: any = {
|
||||||
|
order: dest_item == null ? 1 : dest_item.order + 1,
|
||||||
|
amount: null,
|
||||||
|
positionSalaryAmount: null,
|
||||||
|
mouthSalaryAmount: null,
|
||||||
|
profileId: profile.id,
|
||||||
|
posNo: "-",
|
||||||
|
positionExecutive: "-",
|
||||||
|
positionType: "-",
|
||||||
|
positionLevel: "-",
|
||||||
|
amountSpecial: null,
|
||||||
|
orgRoot: null,
|
||||||
|
orgChild1: null,
|
||||||
|
orgChild2: null,
|
||||||
|
orgChild3: null,
|
||||||
|
orgChild4: null,
|
||||||
|
commandYear: new Date().getFullYear() + 543,
|
||||||
|
commandDateAffect: profile.dateLeave,
|
||||||
|
commandCode: "16",
|
||||||
|
commandName: "พ้นจากราชการ",
|
||||||
|
posNoAbb: "-",
|
||||||
|
isEntry: false,
|
||||||
|
positionName: "เกษียณอายุราชการ",
|
||||||
|
createdUserId: request.user.sub,
|
||||||
|
createdFullName: request.user.name,
|
||||||
|
lastUpdateUserId: request.user.sub,
|
||||||
|
lastUpdateFullName: request.user.name,
|
||||||
|
createdAt: new Date(),
|
||||||
|
lastUpdatedAt: new Date(),
|
||||||
|
remark: "ประกาศคณะอนุกรรมการสามัญข้าราชการกรุงเทพมหานครสามัญ ลว. 31 มี.ค. 68", // script เกษียณจริง ๆ ให้เอา “วันที่ประกาศเกษียณฉบับแรก” มาลงในเอกสารอ้างอิง
|
||||||
|
isGovernment: false,
|
||||||
|
};
|
||||||
|
|
||||||
|
delete data.id;
|
||||||
|
|
||||||
|
const history = new ProfileSalaryHistory();
|
||||||
|
Object.assign(history, { ...data, id: undefined });
|
||||||
|
data.dateGovernment = profile.dateLeave;
|
||||||
|
await this.profileSalaryRepository.save(data);
|
||||||
|
history.profileSalaryId = data.id;
|
||||||
|
await this.salaryHistoryRepo.save(history);
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return new HttpSuccess();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* API แก้ไขเหตุผลการลาออก และปลดจาก keycloak
|
||||||
|
*
|
||||||
|
* @summary - แก้ไขเหตุผลการลาออก และปลดจาก keycloak (ADMIN)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@Get("update/profile/leave-reason")
|
||||||
|
async updateRetireReason() {
|
||||||
|
const profileLeave = await this.profileRepo.find({
|
||||||
|
where: {
|
||||||
|
isLeave: true,
|
||||||
|
leaveType: "RETIRE",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const batchSize = 1000;
|
||||||
|
for (let i = 0; i < profileLeave.length; i += batchSize) {
|
||||||
|
const batch = profileLeave.slice(i, i + batchSize);
|
||||||
|
await Promise.all(
|
||||||
|
batch.map(async (profile) => {
|
||||||
|
const delUserKeycloak = await deleteUser(profile.keycloak);
|
||||||
|
if (delUserKeycloak) {
|
||||||
|
profile.leaveReason = "เกษียณอายุราชการ";
|
||||||
|
profile.keycloak = "";
|
||||||
|
profile.isActive = false;
|
||||||
|
profile.roleKeycloaks = [];
|
||||||
|
await this.profileRepo.save(profile);
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return new HttpSuccess();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue