บรรจุ
This commit is contained in:
parent
31b8116a6f
commit
d999c8050c
3 changed files with 379 additions and 34 deletions
|
|
@ -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 },
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue