บรรจุ

This commit is contained in:
mamoss 2025-04-23 09:33:26 +07:00
parent 31b8116a6f
commit d999c8050c
3 changed files with 379 additions and 34 deletions

View file

@ -2655,4 +2655,241 @@ export class ImportDataController extends Controller {
}
return new HttpSuccess();
}
OrgRank(value: string) {
switch (value.trim().toUpperCase()) {
case "DEPARTMENT":
return "หน่วยงาน";
case "OFFICE":
return "ส่วนราชการระดับกอง/สำนักงาน หรือเทียบเท่า";
case "DIVISION":
return "ส่วนราชการระดับส่วน/กลุ่มภารกิจ";
case "SECTION":
return "ส่วนราชการระดับฝ่าย/กลุ่มงาน หรือเทียบเท่า";
default:
return "";
}
}
OrgRankSub(value: string) {
switch (value.trim().toUpperCase()) {
case "BUREAU":
return "สำนัก";
case "OFFICE":
return "สำนักงาน";
case "DISTRICT":
return "สำนักงานเขต";
case "DIVISION":
return "กอง";
case "INSTITUTION":
return "สถาบัน";
case "HOSPITAL":
return "โรงพยาบาล";
case "CENTER":
return "ศูนย์";
case "MEDICAL":
return "ศูนย์บริการการแพทย์";
case "HEALTHMAJOR":
return "ศูนย์บริการสาธารณสุข";
case "UNIT":
return "หน่วย";
case "SECTION":
return "ส่วน";
case "FACTION":
return "ฝ่าย";
case "GROUPWORK":
return "กลุ่มงาน";
case "HEALTHBRANCH":
return "ศูนย์บริการสาธารณสุขสาขา";
case "TRAINING":
return "ศูนย์ฝึกอาชีพ";
case "SCHOOL":
return "โรงเรียนฝึกอาชีพ";
case "ELDERLY":
return "บ้านพักผู้สูงอายุ";
case "PARK":
return "สวนสาธารณะ";
case "FIRESTATION":
return "สถานีดับเพลิง";
case "WORK":
return "งาน";
case "PRIMARYSCHOOL":
return "โรงเรียนประถมศึกษา";
case "SECONDARYSCHOOL":
return "โรงเรียนมัธยมศึกษา";
case "MISSION":
return "กลุ่มภารกิจ";
default:
return "";
}
}
/**
* @summary Import Org
*/
@Post("ExportOrg")
async ExportOrg(@Request() request: { user: Record<string, any> }) {
const orgRevision = await this.orgRevisionRepo.findOne({
where: { orgRevisionIsCurrent: false, orgRevisionIsDraft: true },
// where: { id: "30e594c9-a65b-485e-a4c5-71aa497e6b8a" },
});
if (orgRevision == null) return new HttpSuccess();
//create root
const orgRaw = await this.orgRootRepo.find({
where: { orgRevisionId: orgRevision.id },
order: {
orgRootOrder: "ASC",
},
});
let order = 1;
let result = [];
for await (const item of orgRaw) {
console.log(item.orgRootOrder);
const data = {
ORDER: order,
HRMS_DEP_CODE: "",
HRMS_DIV_CODE: "",
DEPARTMENT_CODE: item.DEPARTMENT_CODE,
DIVISION_CODE: item.DIVISION_CODE,
SECTION_CODE: item.SECTION_CODE,
JOB_CODE: item.JOB_CODE,
orgRoot: item.orgRootName,
orgChild1: "",
orgChild2: "",
orgChild3: "",
orgChild4: "",
orgShortname: item.orgRootShortName,
orgRank: this.OrgRank(item.orgRootRank),
orgSubRank: this.OrgRankSub(item.orgRootRankSub),
};
await result.push(data);
order++;
const org1Raw = await this.orgChild1Repo.find({
where: { orgRevisionId: orgRevision.id, orgRootId: item.id },
order: {
orgChild1Order: "ASC",
},
relations: ["orgRoot"],
});
for await (const item1 of org1Raw) {
const data1 = {
ORDER: order,
HRMS_DEP_CODE: "",
HRMS_DIV_CODE: "",
DEPARTMENT_CODE: item1.DEPARTMENT_CODE,
DIVISION_CODE: item1.DIVISION_CODE,
SECTION_CODE: item1.SECTION_CODE,
JOB_CODE: item1.JOB_CODE,
orgRoot: item1.orgRoot.orgRootName,
orgChild1: item1.orgChild1Name,
orgChild2: "",
orgChild3: "",
orgChild4: "",
orgShortname: item1.orgChild1ShortName,
orgRank: this.OrgRank(item1.orgChild1Rank),
orgSubRank: this.OrgRankSub(item1.orgChild1RankSub),
};
await result.push(data1);
order++;
const org2Raw = await this.orgChild2Repo.find({
where: { orgRevisionId: orgRevision.id, orgRootId: item.id, orgChild1Id: item1.id },
order: {
orgChild2Order: "ASC",
},
relations: ["orgRoot", "orgChild1"],
});
for await (const item2 of org2Raw) {
const data2 = {
ORDER: order,
HRMS_DEP_CODE: "",
HRMS_DIV_CODE: "",
DEPARTMENT_CODE: item2.DEPARTMENT_CODE,
DIVISION_CODE: item2.DIVISION_CODE,
SECTION_CODE: item2.SECTION_CODE,
JOB_CODE: item2.JOB_CODE,
orgRoot: item2.orgRoot.orgRootName,
orgChild1: item2.orgChild1.orgChild1Name,
orgChild2: item2.orgChild2Name,
orgChild3: "",
orgChild4: "",
orgShortname: item2.orgChild2ShortName,
orgRank: this.OrgRank(item2.orgChild2Rank),
orgSubRank: this.OrgRankSub(item2.orgChild2RankSub),
};
await result.push(data2);
order++;
const org3Raw = await this.orgChild3Repo.find({
where: {
orgRevisionId: orgRevision.id,
orgRootId: item.id,
orgChild1Id: item1.id,
orgChild2Id: item2.id,
},
order: {
orgChild3Order: "ASC",
},
relations: ["orgRoot", "orgChild1", "orgChild2"],
});
for await (const item3 of org3Raw) {
const data3 = {
ORDER: order,
HRMS_DEP_CODE: "",
HRMS_DIV_CODE: "",
DEPARTMENT_CODE: item3.DEPARTMENT_CODE,
DIVISION_CODE: item3.DIVISION_CODE,
SECTION_CODE: item3.SECTION_CODE,
JOB_CODE: item3.JOB_CODE,
orgRoot: item3.orgRoot.orgRootName,
orgChild1: item3.orgChild1.orgChild1Name,
orgChild2: item3.orgChild2.orgChild2Name,
orgChild3: item3.orgChild3Name,
orgChild4: "",
orgShortname: item3.orgChild3ShortName,
orgRank: this.OrgRank(item3.orgChild3Rank),
orgSubRank: this.OrgRankSub(item3.orgChild3RankSub),
};
await result.push(data3);
order++;
const org4Raw = await this.orgChild4Repo.find({
where: {
orgRevisionId: orgRevision.id,
orgRootId: item.id,
orgChild1Id: item1.id,
orgChild2Id: item2.id,
orgChild3Id: item3.id,
},
order: {
orgChild4Order: "ASC",
},
relations: ["orgRoot", "orgChild1", "orgChild2", "orgChild3"],
});
for await (const item4 of org4Raw) {
const data4 = {
ORDER: order,
HRMS_DEP_CODE: "",
HRMS_DIV_CODE: "",
DEPARTMENT_CODE: item4.DEPARTMENT_CODE,
DIVISION_CODE: item4.DIVISION_CODE,
SECTION_CODE: item4.SECTION_CODE,
JOB_CODE: item4.JOB_CODE,
orgRoot: item4.orgRoot.orgRootName,
orgChild1: item4.orgChild1.orgChild1Name,
orgChild2: item4.orgChild2.orgChild2Name,
orgChild3: item4.orgChild3.orgChild3Name,
orgChild4: item4.orgChild4Name,
orgShortname: item4.orgChild4ShortName,
orgRank: this.OrgRank(item4.orgChild4Rank),
orgSubRank: this.OrgRankSub(item4.orgChild4RankSub),
};
await result.push(data4);
order++;
}
}
}
}
}
return new HttpSuccess({
template: "exportRawOrg",
reportName: "exportRawOrg",
data: { data: result },
});
}
}