2024-06-06 11:15:26 +07:00
|
|
|
import {
|
|
|
|
|
Controller,
|
|
|
|
|
Get,
|
|
|
|
|
Post,
|
|
|
|
|
Put,
|
|
|
|
|
Delete,
|
|
|
|
|
Route,
|
|
|
|
|
Security,
|
|
|
|
|
Tags,
|
|
|
|
|
Body,
|
|
|
|
|
Path,
|
|
|
|
|
Request,
|
|
|
|
|
Query,
|
|
|
|
|
UploadedFile,
|
|
|
|
|
} from "tsoa";
|
|
|
|
|
import { AppDataSource } from "../database/data-source";
|
|
|
|
|
import { Brackets } from "typeorm";
|
|
|
|
|
import HttpSuccess from "../interfaces/http-success";
|
|
|
|
|
import HttpError from "../interfaces/http-error";
|
|
|
|
|
import HttpStatusCode from "../interfaces/http-status";
|
|
|
|
|
import { UseInterceptors } from "@nestjs/common";
|
2024-06-10 17:11:54 +07:00
|
|
|
import { Profile } from "../entities/Profile";
|
2024-06-06 11:15:26 +07:00
|
|
|
import { FileInterceptor } from "@nestjs/platform-express";
|
|
|
|
|
import * as xlsx from "xlsx";
|
|
|
|
|
import { ProfileEducation } from "../entities/ProfileEducation";
|
2024-06-10 17:11:54 +07:00
|
|
|
import { ProfileSalary } from "../entities/ProfileSalary";
|
|
|
|
|
import { ProfileFamilyCouple } from "../entities/ProfileFamilyCouple";
|
|
|
|
|
import { ProfileFamilyMother } from "../entities/ProfileFamilyMother";
|
|
|
|
|
import { ProfileFamilyFather } from "../entities/ProfileFamilyFather";
|
|
|
|
|
import { ProfileEmployee } from "../entities/ProfileEmployee";
|
2024-06-12 14:44:18 +07:00
|
|
|
import { PosLevel } from "../entities/PosLevel";
|
|
|
|
|
import { PosType } from "../entities/PosType";
|
2024-07-25 16:20:48 +07:00
|
|
|
import Extension from "../interfaces/extension";
|
|
|
|
|
import {
|
|
|
|
|
calculateAge,
|
|
|
|
|
calculateRetireDate,
|
|
|
|
|
calculateRetireLaw,
|
|
|
|
|
calculateRetireYear,
|
|
|
|
|
removeProfileInOrganize,
|
|
|
|
|
} from "../interfaces/utils";
|
|
|
|
|
import { EducationMis } from "../entities/EducationMis";
|
2024-06-06 11:15:26 +07:00
|
|
|
|
2024-06-06 11:20:37 +07:00
|
|
|
@Route("api/v1/org/upload")
|
|
|
|
|
@Tags("UPLOAD")
|
2024-06-06 11:15:26 +07:00
|
|
|
@Security("bearerAuth")
|
|
|
|
|
export class ImportDataController extends Controller {
|
|
|
|
|
private educationRepository = AppDataSource.getRepository(ProfileEducation);
|
2024-06-10 17:11:54 +07:00
|
|
|
private profileFamilyCoupleRepository = AppDataSource.getRepository(ProfileFamilyCouple);
|
|
|
|
|
private profileFamilyMotherRepository = AppDataSource.getRepository(ProfileFamilyMother);
|
|
|
|
|
private profileFamilyFatherRepository = AppDataSource.getRepository(ProfileFamilyFather);
|
|
|
|
|
private salaryRepository = AppDataSource.getRepository(ProfileSalary);
|
|
|
|
|
private profileRepo = AppDataSource.getRepository(Profile);
|
|
|
|
|
private profileEmpRepo = AppDataSource.getRepository(ProfileEmployee);
|
2024-06-12 14:44:18 +07:00
|
|
|
private posLevelRepo = AppDataSource.getRepository(PosLevel);
|
|
|
|
|
private posTypeRepo = AppDataSource.getRepository(PosType);
|
2024-07-25 16:20:48 +07:00
|
|
|
private educationMisRepo = AppDataSource.getRepository(EducationMis);
|
|
|
|
|
|
2024-06-06 11:15:26 +07:00
|
|
|
/**
|
2024-07-25 16:20:48 +07:00
|
|
|
* @summary ทะเบียนประวัติ ข้าราชการ
|
2024-06-06 11:15:26 +07:00
|
|
|
*/
|
2024-07-25 16:20:48 +07:00
|
|
|
@Post("uploadProfile-Officer")
|
2024-06-06 11:15:26 +07:00
|
|
|
@UseInterceptors(FileInterceptor("file"))
|
2024-07-25 16:20:48 +07:00
|
|
|
async UploadFileSqlOfficer(
|
2024-06-10 17:11:54 +07:00
|
|
|
@UploadedFile() file: Express.Multer.File,
|
2024-07-25 16:20:48 +07:00
|
|
|
@Request() request: { user: Record<string, any> },
|
2024-06-10 17:11:54 +07:00
|
|
|
) {
|
|
|
|
|
const workbook = xlsx.read(file.buffer, { type: "buffer" });
|
2024-07-25 16:20:48 +07:00
|
|
|
const sheetName = workbook.SheetNames[0];
|
2024-06-10 17:11:54 +07:00
|
|
|
const sheet = workbook.Sheets[sheetName];
|
|
|
|
|
const getProFile = xlsx.utils.sheet_to_json(sheet);
|
|
|
|
|
let profiles: any = [];
|
2024-07-25 16:20:48 +07:00
|
|
|
let null_: any = null;
|
2024-06-10 17:11:54 +07:00
|
|
|
await Promise.all(
|
|
|
|
|
getProFile.map(async (item: any) => {
|
2024-07-25 16:20:48 +07:00
|
|
|
let type_: any = null;
|
|
|
|
|
let level_: any = null;
|
|
|
|
|
let dateRetire: any = null;
|
|
|
|
|
const profile = new Profile();
|
|
|
|
|
const existingProfile = await this.profileRepo.findOne({
|
|
|
|
|
where: { citizenId: item["ID"] },
|
2024-06-10 17:11:54 +07:00
|
|
|
});
|
|
|
|
|
if (existingProfile) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
2024-07-25 16:20:48 +07:00
|
|
|
if(item["MP_CEE_TYPE"]) {
|
|
|
|
|
type_ = await this.posTypeRepo.findOne({
|
|
|
|
|
where: { posTypeName: item["MP_CEE_TYPE"] }
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
if(item["MP_CEE_POSITION"]) {
|
|
|
|
|
level_ = await this.posLevelRepo.findOne({
|
|
|
|
|
where: {
|
|
|
|
|
posLevelName: item["MP_CEE_POSITION"],
|
|
|
|
|
posTypeId: type_.id
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
dateRetire = Extension.ConvertToDateTime(item["MP_FORCE_DATE"]);
|
|
|
|
|
profile.citizenId = item["ID"] == "" ? "" : item["ID"];
|
|
|
|
|
profile.rank = item["RANK_NAME"] == "" ? null : item["RANK_NAME"];
|
|
|
|
|
profile.prefix = item["RANK_NAME"] == "" ? null : item["RANK_NAME"];
|
|
|
|
|
profile.firstName = item["FNAME"] == "" ? null : item["FNAME"];
|
|
|
|
|
profile.lastName = item["LNAME"] == "" ? null : item["LNAME"];
|
|
|
|
|
profile.gender = item["SEX"] == "1" ? "ชาย" : item["SEX"] == "2" ? "หญิง" : null_;
|
|
|
|
|
profile.birthDate = item["BORN"] == "" ? null_ : Extension.ConvertToDateTime(item["BORN"]);
|
|
|
|
|
profile.dateAppoint = item["BEGIN_ENTRY_DATE"] == "" ? null_ : Extension.ConvertToDateTime(item["BEGIN_ENTRY_DATE"]);
|
|
|
|
|
profile.dateStart = item["MP_FORCE_DATE"] == "" ? null_ : Extension.ConvertToDateTime(item["MP_FORCE_DATE"]);
|
|
|
|
|
profile.dateRetire = dateRetire == null ? null_ : calculateRetireDate(dateRetire);
|
|
|
|
|
profile.dateRetireLaw = dateRetire == null ? null_ : calculateRetireLaw(dateRetire);
|
|
|
|
|
profile.position = item["WORK_LINE_NAME"] == "" ? null : item["WORK_LINE_NAME"];
|
|
|
|
|
profile.posTypeId = type_ != null && type_.posTypeName == item["MP_CEE_TYPE"] ? type_.id : null;
|
|
|
|
|
profile.posLevelId = level_ != null && level_.posLevelName == item["MP_CEE_POSITION"] ? level_.id : null;
|
|
|
|
|
profile.relationship = item["MARRIAGE_STATE"] == "" ? "" : Extension.CheckRelationship(item["MARRIAGE_STATE"]);
|
|
|
|
|
profile.isLeave = item["FLAG_RETIRE_STATUS"] == "" || item["FLAG_RETIRE_STATUS"] == null ? false : true;
|
|
|
|
|
profile.createdUserId = request.user.sub;
|
|
|
|
|
profile.createdFullName = request.user.name;
|
|
|
|
|
profile.lastUpdateUserId = request.user.sub;
|
|
|
|
|
profile.lastUpdateFullName = request.user.name;
|
2024-06-10 17:11:54 +07:00
|
|
|
profiles.push(profile);
|
|
|
|
|
}),
|
|
|
|
|
);
|
2024-07-25 16:20:48 +07:00
|
|
|
await this.profileRepo.save(profiles);
|
2024-07-25 16:27:43 +07:00
|
|
|
return new HttpSuccess();
|
2024-06-10 17:11:54 +07:00
|
|
|
}
|
|
|
|
|
|
2024-07-25 16:20:48 +07:00
|
|
|
/**
|
|
|
|
|
* @summary ทะเบียนประวัติ ลูกจ้างประจำ
|
|
|
|
|
*/
|
|
|
|
|
@Post("uploadProfile-Employee")
|
2024-06-10 17:11:54 +07:00
|
|
|
@UseInterceptors(FileInterceptor("file"))
|
2024-07-25 16:20:48 +07:00
|
|
|
async UploadFileSQL(
|
2024-06-10 17:11:54 +07:00
|
|
|
@UploadedFile() file: Express.Multer.File,
|
2024-07-25 16:20:48 +07:00
|
|
|
@Request() request: { user: Record<string, any> },
|
2024-06-10 17:11:54 +07:00
|
|
|
) {
|
|
|
|
|
const workbook = xlsx.read(file.buffer, { type: "buffer" });
|
2024-07-25 16:20:48 +07:00
|
|
|
const sheetName = workbook.SheetNames[0];
|
2024-06-10 17:11:54 +07:00
|
|
|
const sheet = workbook.Sheets[sheetName];
|
|
|
|
|
const getProFile = xlsx.utils.sheet_to_json(sheet);
|
|
|
|
|
let profiles: any = [];
|
2024-07-25 16:20:48 +07:00
|
|
|
let null_: any = null
|
|
|
|
|
let dateRetire: any = null;
|
2024-06-10 17:11:54 +07:00
|
|
|
await Promise.all(
|
|
|
|
|
getProFile.map(async (item: any) => {
|
2024-07-25 16:20:48 +07:00
|
|
|
const profileEmp = new ProfileEmployee();
|
|
|
|
|
const existingProfile = await this.profileEmpRepo.findOne({
|
|
|
|
|
where: { citizenId: item["ID"] },
|
2024-06-10 17:11:54 +07:00
|
|
|
});
|
|
|
|
|
if (existingProfile) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
2024-07-25 16:20:48 +07:00
|
|
|
dateRetire = Extension.ConvertToDateTime(item["MP_FORCE_DATE"]);
|
|
|
|
|
profileEmp.citizenId = item["ID"] == "" ? "" : item["ID"];
|
|
|
|
|
profileEmp.employeeClass = item["FLAG_PERSON_TYPE"] == "6" ? "PERM" : item["FLAG_PERSON_TYPE"] == "7" ? "TEMP" : "";
|
|
|
|
|
profileEmp.rank = item["RANK_NAME"] == "" ? null : item["RANK_NAME"];
|
|
|
|
|
profileEmp.prefix = item["RANK_NAME"] == "" ? null : item["RANK_NAME"];
|
|
|
|
|
profileEmp.firstName = item["FNAME"] == "" ? null : item["FNAME"];
|
|
|
|
|
profileEmp.lastName = item["LNAME"] == "" ? null : item["LNAME"];
|
|
|
|
|
profileEmp.gender = item["SEX"] == "1" ? "ชาย" : item["SEX"] == "2" ? "หญิง" : null_;
|
|
|
|
|
profileEmp.birthDate = item["BORN"] == "" ? null_ : Extension.ConvertToDateTime(item["BORN"]);
|
|
|
|
|
profileEmp.dateAppoint = item["BEGIN_ENTRY_DATE"] == "" ? null_ : Extension.ConvertToDateTime(item["BEGIN_ENTRY_DATE"]);
|
|
|
|
|
profileEmp.dateStart = item["MP_FORCE_DATE"] == "" ? null_ : Extension.ConvertToDateTime(item["MP_FORCE_DATE"]);
|
|
|
|
|
profileEmp.dateRetire = dateRetire == null ? null_ : calculateRetireDate(dateRetire);
|
|
|
|
|
profileEmp.dateRetireLaw = dateRetire == null ? null_ : calculateRetireLaw(dateRetire);
|
|
|
|
|
profileEmp.position = item["WORK_LINE_NAME"] == "" ? null : item["WORK_LINE_NAME"];
|
|
|
|
|
profileEmp.salaryLevel = item["SALARY_LEVEL_CODE"] == "" ? null : item["SALARY_LEVEL_CODE"];
|
|
|
|
|
profileEmp.relationship = item["MARRIAGE_STATE"] == "" ? "" : Extension.CheckRelationship(item["MARRIAGE_STATE"]);
|
|
|
|
|
profileEmp.createdUserId = request.user.sub;
|
|
|
|
|
profileEmp.createdFullName = request.user.name;
|
|
|
|
|
profileEmp.lastUpdateUserId = request.user.sub;
|
|
|
|
|
profileEmp.lastUpdateFullName = request.user.name;
|
|
|
|
|
profiles.push(profileEmp);
|
2024-06-10 17:11:54 +07:00
|
|
|
}),
|
|
|
|
|
);
|
2024-07-25 16:20:48 +07:00
|
|
|
await this.profileEmpRepo.save(profiles);
|
2024-07-25 16:27:43 +07:00
|
|
|
return new HttpSuccess();
|
2024-06-10 17:11:54 +07:00
|
|
|
}
|
|
|
|
|
|
2024-07-25 16:20:48 +07:00
|
|
|
/**
|
|
|
|
|
* @summary เงินเดือน ข้าราชการ
|
|
|
|
|
*/
|
|
|
|
|
@Post("uploadProfileSalary-Officer")
|
2024-06-10 17:11:54 +07:00
|
|
|
@UseInterceptors(FileInterceptor("file"))
|
2024-07-25 16:20:48 +07:00
|
|
|
async UploadFileSQLSalary(
|
2024-06-10 17:11:54 +07:00
|
|
|
@UploadedFile() file: Express.Multer.File,
|
2024-07-25 16:20:48 +07:00
|
|
|
@Request() request: { user: Record<string, any> },
|
2024-06-10 17:11:54 +07:00
|
|
|
) {
|
|
|
|
|
const workbook = xlsx.read(file.buffer, { type: "buffer" });
|
2024-07-25 16:20:48 +07:00
|
|
|
const sheetName = workbook.SheetNames[0]
|
2024-06-10 17:11:54 +07:00
|
|
|
const sheet = workbook.Sheets[sheetName];
|
2024-07-25 16:20:48 +07:00
|
|
|
const getExcel = xlsx.utils.sheet_to_json(sheet);
|
|
|
|
|
let profileSalarys: any = [];
|
|
|
|
|
let null_: any=null
|
2024-06-10 17:11:54 +07:00
|
|
|
await Promise.all(
|
2024-07-25 16:20:48 +07:00
|
|
|
getExcel
|
|
|
|
|
.filter((x:any) => x.FLAG_PERSON_TYPE == 1)
|
|
|
|
|
.map(async (item: any) => {
|
2024-06-10 17:11:54 +07:00
|
|
|
|
2024-07-25 16:20:48 +07:00
|
|
|
const profileSalary = new ProfileSalary();
|
2024-06-10 17:11:54 +07:00
|
|
|
const existingProfile = await this.profileRepo.findOne({
|
2024-07-25 16:20:48 +07:00
|
|
|
where: { citizenId: item.ID },
|
2024-06-10 17:11:54 +07:00
|
|
|
});
|
2024-07-25 16:20:48 +07:00
|
|
|
if (!existingProfile) {
|
2024-06-10 17:11:54 +07:00
|
|
|
return;
|
|
|
|
|
}
|
2024-07-25 16:20:48 +07:00
|
|
|
|
|
|
|
|
profileSalary.date = item.MP_POS_DATE == "" ? null_ : Extension.ConvertToDateTime(item.MP_POS_DATE);
|
|
|
|
|
profileSalary.amount = item.SALARY;
|
|
|
|
|
profileSalary.profileId = existingProfile.id;
|
|
|
|
|
profileSalary.refCommandNo = item.MP_COMMAND_NUM;
|
|
|
|
|
profileSalary.posNo = item.POS_NUM_NAME+item.POS_NUM_CODE;
|
|
|
|
|
profileSalary.position = item.FLAG_TO_NAME;
|
|
|
|
|
profileSalary.positionLine = item.WORK_LINE_NAME;
|
|
|
|
|
profileSalary.positionPathSide = item.SPECIALIST_NAME;
|
|
|
|
|
profileSalary.positionExecutive = item.ADMIN_NAME;
|
|
|
|
|
profileSalary.templateDoc = item.REMARK;
|
|
|
|
|
profileSalary.order = item.ORDER_MOVE_POSITION;
|
|
|
|
|
profileSalary.createdUserId = request.user.sub;
|
|
|
|
|
profileSalary.createdFullName = request.user.name;
|
|
|
|
|
profileSalary.lastUpdateUserId = request.user.sub;
|
|
|
|
|
profileSalary.lastUpdateFullName = request.user.name
|
|
|
|
|
profileSalarys.push(profileSalary);
|
2024-06-10 17:11:54 +07:00
|
|
|
}),
|
|
|
|
|
);
|
2024-07-25 16:20:48 +07:00
|
|
|
await this.salaryRepository.save(profileSalarys);
|
2024-07-25 16:27:43 +07:00
|
|
|
return new HttpSuccess();
|
2024-06-10 17:11:54 +07:00
|
|
|
}
|
|
|
|
|
|
2024-07-25 16:20:48 +07:00
|
|
|
/**
|
|
|
|
|
* @summary เงินเดือน ลูกจ้างประจำ
|
|
|
|
|
*/
|
|
|
|
|
@Post("uploadProfileSalary-Employee")
|
2024-06-10 17:11:54 +07:00
|
|
|
@UseInterceptors(FileInterceptor("file"))
|
2024-07-25 16:20:48 +07:00
|
|
|
async UploadFileSQLSalaryEmp(
|
2024-06-10 17:11:54 +07:00
|
|
|
@UploadedFile() file: Express.Multer.File,
|
2024-07-25 16:20:48 +07:00
|
|
|
@Request() request: { user: Record<string, any> },
|
2024-06-10 17:11:54 +07:00
|
|
|
) {
|
|
|
|
|
const workbook = xlsx.read(file.buffer, { type: "buffer" });
|
2024-07-25 16:20:48 +07:00
|
|
|
const sheetName = workbook.SheetNames[0]
|
2024-06-10 17:11:54 +07:00
|
|
|
const sheet = workbook.Sheets[sheetName];
|
2024-07-25 16:20:48 +07:00
|
|
|
const getExcel = xlsx.utils.sheet_to_json(sheet);
|
|
|
|
|
let profileSalarys: any = [];
|
|
|
|
|
let null_: any=null
|
2024-06-10 17:11:54 +07:00
|
|
|
await Promise.all(
|
2024-07-25 16:20:48 +07:00
|
|
|
getExcel
|
|
|
|
|
.filter((x:any) => x.FLAG_PERSON_TYPE == 6)
|
|
|
|
|
.map(async (item: any) => {
|
2024-06-10 17:11:54 +07:00
|
|
|
|
2024-07-25 16:20:48 +07:00
|
|
|
const profileSalary = new ProfileSalary();
|
|
|
|
|
const existingProfile = await this.profileEmpRepo.findOne({
|
|
|
|
|
where: { citizenId: item.ID },
|
2024-06-10 17:11:54 +07:00
|
|
|
});
|
2024-07-25 16:20:48 +07:00
|
|
|
if (!existingProfile) {
|
2024-06-10 17:11:54 +07:00
|
|
|
return;
|
|
|
|
|
}
|
2024-07-25 16:20:48 +07:00
|
|
|
|
|
|
|
|
profileSalary.date = item.MP_POS_DATE == "" ? null_ : Extension.ConvertToDateTime(item.MP_POS_DATE);
|
|
|
|
|
profileSalary.amount = item.SALARY;
|
|
|
|
|
profileSalary.profileEmployeeId = existingProfile.id;
|
|
|
|
|
profileSalary.refCommandNo = item.MP_COMMAND_NUM;
|
|
|
|
|
profileSalary.posNo = item.POS_NUM_NAME+item.POS_NUM_CODE;
|
|
|
|
|
profileSalary.position = item.FLAG_TO_NAME;
|
|
|
|
|
profileSalary.positionLine = item.WORK_LINE_NAME;
|
|
|
|
|
profileSalary.positionPathSide = item.SPECIALIST_NAME;
|
|
|
|
|
profileSalary.positionExecutive = item.ADMIN_NAME;
|
|
|
|
|
profileSalary.templateDoc = item.REMARK;
|
|
|
|
|
profileSalary.order = item.ORDER_MOVE_POSITION;
|
|
|
|
|
profileSalary.createdUserId = request.user.sub;
|
|
|
|
|
profileSalary.createdFullName = request.user.name;
|
|
|
|
|
profileSalary.lastUpdateUserId = request.user.sub;
|
|
|
|
|
profileSalary.lastUpdateFullName = request.user.name
|
|
|
|
|
profileSalarys.push(profileSalary);
|
2024-06-10 17:11:54 +07:00
|
|
|
}),
|
|
|
|
|
);
|
2024-07-25 16:20:48 +07:00
|
|
|
await this.salaryRepository.save(profileSalarys);
|
2024-07-25 16:27:43 +07:00
|
|
|
return new HttpSuccess();
|
2024-06-10 17:11:54 +07:00
|
|
|
}
|
|
|
|
|
|
2024-07-25 16:20:48 +07:00
|
|
|
/**
|
|
|
|
|
* @summary ครอบครัว ข้าราชการ
|
|
|
|
|
*/
|
|
|
|
|
@Post("uploadProfileFamily-Officer")
|
2024-06-10 17:11:54 +07:00
|
|
|
@UseInterceptors(FileInterceptor("file"))
|
2024-07-25 16:20:48 +07:00
|
|
|
async UploadFileSQLFamily(
|
2024-06-10 17:11:54 +07:00
|
|
|
@UploadedFile() file: Express.Multer.File,
|
2024-07-25 16:20:48 +07:00
|
|
|
@Request() request: { user: Record<string, any> },
|
2024-06-10 17:11:54 +07:00
|
|
|
) {
|
|
|
|
|
const workbook = xlsx.read(file.buffer, { type: "buffer" });
|
2024-07-25 16:20:48 +07:00
|
|
|
const sheetName = workbook.SheetNames[0]
|
2024-06-10 17:11:54 +07:00
|
|
|
const sheet = workbook.Sheets[sheetName];
|
2024-07-25 16:20:48 +07:00
|
|
|
const getExcel = xlsx.utils.sheet_to_json(sheet);
|
|
|
|
|
let fathers: any = [];
|
|
|
|
|
let mothers: any = [];
|
|
|
|
|
let couples: any = [];
|
|
|
|
|
let null_: any = null
|
2024-06-10 17:11:54 +07:00
|
|
|
await Promise.all(
|
2024-07-25 16:20:48 +07:00
|
|
|
getExcel.map(async (item: any) => {
|
|
|
|
|
const profileFather = new ProfileFamilyFather();
|
|
|
|
|
const profileMother = new ProfileFamilyMother();
|
|
|
|
|
const profileCouple = new ProfileFamilyCouple();
|
|
|
|
|
const existingProfile = await this.profileRepo.findOne({
|
|
|
|
|
where: { citizenId: item.ID },
|
2024-06-10 17:11:54 +07:00
|
|
|
});
|
2024-07-25 16:20:48 +07:00
|
|
|
if (!existingProfile) {
|
2024-06-10 17:11:54 +07:00
|
|
|
return;
|
|
|
|
|
}
|
2024-07-25 16:20:48 +07:00
|
|
|
|
|
|
|
|
profileFather.profileId = existingProfile.id;
|
|
|
|
|
profileFather.fatherPrefix = item.FATHER_RANK_NAME;
|
|
|
|
|
profileFather.fatherFirstName = item.FATHER_FNAME;
|
|
|
|
|
profileFather.fatherLastName = item.FATHER_LNAME;
|
|
|
|
|
profileFather.createdUserId = request.user.sub;
|
|
|
|
|
profileFather.createdFullName = request.user.name;
|
|
|
|
|
profileFather.lastUpdateUserId = request.user.sub;
|
|
|
|
|
profileFather.lastUpdateFullName = request.user.name
|
|
|
|
|
|
|
|
|
|
profileMother.profileId = existingProfile.id;
|
|
|
|
|
profileMother.motherPrefix = item.MOTHER_RANK_NAME;
|
|
|
|
|
profileMother.motherFirstName = item.MOTHER_FNAME;
|
|
|
|
|
profileMother.motherLastName = item.MOTHER_LNAME;
|
|
|
|
|
profileMother.createdUserId = request.user.sub;
|
|
|
|
|
profileMother.createdFullName = request.user.name;
|
|
|
|
|
profileMother.lastUpdateUserId = request.user.sub;
|
|
|
|
|
profileMother.lastUpdateFullName = request.user.name
|
|
|
|
|
|
|
|
|
|
profileCouple.profileId = existingProfile.id;
|
|
|
|
|
profileCouple.couplePrefix = item.SPOUSE_RANK_NAME;
|
|
|
|
|
profileCouple.coupleFirstName = item.SPOUSE_FNAME;
|
|
|
|
|
profileCouple.coupleLastName = item.SPOUSE_LNAME;
|
|
|
|
|
profileCouple.coupleCitizenId = item.SPOUSE_ID;
|
|
|
|
|
profileCouple.relationship = item.MARRIAGE_STATE;
|
|
|
|
|
profileCouple.coupleLive = item.LIFE_SPOUSE;
|
|
|
|
|
profileCouple.createdUserId = request.user.sub;
|
|
|
|
|
profileCouple.createdFullName = request.user.name;
|
|
|
|
|
profileCouple.lastUpdateUserId = request.user.sub;
|
|
|
|
|
profileCouple.lastUpdateFullName = request.user.name
|
|
|
|
|
|
|
|
|
|
fathers.push(profileFather);
|
|
|
|
|
mothers.push(profileMother);
|
|
|
|
|
couples.push(profileCouple);
|
2024-06-10 17:11:54 +07:00
|
|
|
}),
|
|
|
|
|
);
|
2024-07-25 16:20:48 +07:00
|
|
|
const result = {
|
|
|
|
|
fathers: fathers,
|
|
|
|
|
mothers: mothers,
|
|
|
|
|
couples: couples,
|
|
|
|
|
};
|
|
|
|
|
|
2024-07-25 16:27:43 +07:00
|
|
|
await Promise.all([
|
|
|
|
|
this.profileFamilyFatherRepository.save(fathers),
|
|
|
|
|
this.profileFamilyMotherRepository.save(mothers),
|
|
|
|
|
this.profileFamilyCoupleRepository.save(couples)
|
|
|
|
|
]);
|
2024-07-25 16:20:48 +07:00
|
|
|
|
2024-07-25 16:27:43 +07:00
|
|
|
return new HttpSuccess();
|
2024-06-10 17:11:54 +07:00
|
|
|
}
|
|
|
|
|
|
2024-07-25 16:20:48 +07:00
|
|
|
/**
|
|
|
|
|
* @summary ครอบครัว ลูกจ้างประจำ
|
|
|
|
|
*/
|
|
|
|
|
@Post("uploadProfileFamily-Employee")
|
2024-06-10 17:11:54 +07:00
|
|
|
@UseInterceptors(FileInterceptor("file"))
|
2024-07-25 16:20:48 +07:00
|
|
|
async UploadFileSQLFamilyEmp(
|
2024-06-10 17:11:54 +07:00
|
|
|
@UploadedFile() file: Express.Multer.File,
|
2024-07-25 16:20:48 +07:00
|
|
|
@Request() request: { user: Record<string, any> },
|
2024-06-10 17:11:54 +07:00
|
|
|
) {
|
|
|
|
|
const workbook = xlsx.read(file.buffer, { type: "buffer" });
|
2024-07-25 16:20:48 +07:00
|
|
|
const sheetName = workbook.SheetNames[0]
|
2024-06-10 17:11:54 +07:00
|
|
|
const sheet = workbook.Sheets[sheetName];
|
2024-07-25 16:20:48 +07:00
|
|
|
const getExcel = xlsx.utils.sheet_to_json(sheet);
|
|
|
|
|
let fathers: any = [];
|
|
|
|
|
let mothers: any = [];
|
|
|
|
|
let couples: any = [];
|
|
|
|
|
let null_: any = null
|
2024-06-10 17:11:54 +07:00
|
|
|
await Promise.all(
|
2024-07-25 16:20:48 +07:00
|
|
|
getExcel.map(async (item: any) => {
|
|
|
|
|
const profileFather = new ProfileFamilyFather();
|
|
|
|
|
const profileMother = new ProfileFamilyMother();
|
|
|
|
|
const profileCouple = new ProfileFamilyCouple();
|
|
|
|
|
const existingProfile = await this.profileEmpRepo.findOne({
|
|
|
|
|
where: { citizenId: item.ID },
|
2024-06-10 17:11:54 +07:00
|
|
|
});
|
2024-07-25 16:20:48 +07:00
|
|
|
if (!existingProfile) {
|
2024-06-10 17:11:54 +07:00
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
2024-07-25 16:20:48 +07:00
|
|
|
profileFather.profileEmployeeId = existingProfile.id;
|
|
|
|
|
profileFather.fatherPrefix = item.FATHER_RANK_NAME;
|
|
|
|
|
profileFather.fatherFirstName = item.FATHER_FNAME;
|
|
|
|
|
profileFather.fatherLastName = item.FATHER_LNAME;
|
|
|
|
|
profileFather.createdUserId = request.user.sub;
|
|
|
|
|
profileFather.createdFullName = request.user.name;
|
|
|
|
|
profileFather.lastUpdateUserId = request.user.sub;
|
|
|
|
|
profileFather.lastUpdateFullName = request.user.name
|
2024-06-12 14:44:18 +07:00
|
|
|
|
2024-07-25 16:20:48 +07:00
|
|
|
profileMother.profileEmployeeId = existingProfile.id;
|
|
|
|
|
profileMother.motherPrefix = item.MOTHER_RANK_NAME;
|
|
|
|
|
profileMother.motherFirstName = item.MOTHER_FNAME;
|
|
|
|
|
profileMother.motherLastName = item.MOTHER_LNAME;
|
|
|
|
|
profileMother.createdUserId = request.user.sub;
|
|
|
|
|
profileMother.createdFullName = request.user.name;
|
|
|
|
|
profileMother.lastUpdateUserId = request.user.sub;
|
|
|
|
|
profileMother.lastUpdateFullName = request.user.name
|
2024-06-12 14:44:18 +07:00
|
|
|
|
2024-07-25 16:20:48 +07:00
|
|
|
profileCouple.profileEmployeeId = existingProfile.id;
|
|
|
|
|
profileCouple.couplePrefix = item.SPOUSE_RANK_NAME;
|
|
|
|
|
profileCouple.coupleFirstName = item.SPOUSE_FNAME;
|
|
|
|
|
profileCouple.coupleLastName = item.SPOUSE_LNAME;
|
|
|
|
|
profileCouple.coupleCitizenId = item.SPOUSE_ID;
|
|
|
|
|
profileCouple.relationship = item.MARRIAGE_STATE;
|
|
|
|
|
profileCouple.coupleLive = item.LIFE_SPOUSE;
|
|
|
|
|
profileCouple.createdUserId = request.user.sub;
|
|
|
|
|
profileCouple.createdFullName = request.user.name;
|
|
|
|
|
profileCouple.lastUpdateUserId = request.user.sub;
|
|
|
|
|
profileCouple.lastUpdateFullName = request.user.name
|
2024-06-12 14:44:18 +07:00
|
|
|
|
2024-07-25 16:20:48 +07:00
|
|
|
fathers.push(profileFather);
|
|
|
|
|
mothers.push(profileMother);
|
|
|
|
|
couples.push(profileCouple);
|
2024-06-12 14:44:18 +07:00
|
|
|
}),
|
|
|
|
|
);
|
2024-07-25 16:20:48 +07:00
|
|
|
const result = {
|
|
|
|
|
fathers: fathers,
|
|
|
|
|
mothers: mothers,
|
|
|
|
|
couples: couples,
|
|
|
|
|
};
|
|
|
|
|
|
2024-07-25 16:27:43 +07:00
|
|
|
await Promise.all([
|
|
|
|
|
this.profileFamilyFatherRepository.save(fathers),
|
|
|
|
|
this.profileFamilyMotherRepository.save(mothers),
|
|
|
|
|
this.profileFamilyCoupleRepository.save(couples)
|
|
|
|
|
]);
|
2024-07-25 16:20:48 +07:00
|
|
|
|
2024-07-25 16:27:43 +07:00
|
|
|
return new HttpSuccess();
|
2024-06-12 14:44:18 +07:00
|
|
|
}
|
2024-07-25 16:20:48 +07:00
|
|
|
|
2024-07-25 16:27:43 +07:00
|
|
|
// /**
|
|
|
|
|
// * @summary Import Education Code
|
|
|
|
|
// */
|
|
|
|
|
// @Post("uploadEducation-Code")
|
|
|
|
|
// @UseInterceptors(FileInterceptor("file"))
|
|
|
|
|
// async UploadFileSQLEducationCode(
|
|
|
|
|
// @UploadedFile() file: Express.Multer.File,
|
|
|
|
|
// @Request() request: { user: Record<string, any> },
|
|
|
|
|
// ) {
|
|
|
|
|
// const workbook = xlsx.read(file.buffer, { type: "buffer" });
|
|
|
|
|
// const sheetName = workbook.SheetNames[0]
|
|
|
|
|
// const sheet = workbook.Sheets[sheetName];
|
|
|
|
|
// const getExcel = xlsx.utils.sheet_to_json(sheet);
|
|
|
|
|
// let educationMis_: any = [];
|
2024-07-25 16:22:29 +07:00
|
|
|
|
2024-07-25 16:27:43 +07:00
|
|
|
// await Promise.all(
|
|
|
|
|
// getExcel.map(async (item: any) => {
|
|
|
|
|
// const educationMis = new EducationMis();
|
|
|
|
|
// educationMis.EDUCATION_CODE = item.EDUCATION_CODE;
|
|
|
|
|
// educationMis.EDUCATION_CODE = item.EDUCATION_CODE;
|
|
|
|
|
// educationMis_.push(educationMis);
|
2024-07-25 16:20:48 +07:00
|
|
|
|
2024-07-25 16:27:43 +07:00
|
|
|
// }),
|
|
|
|
|
// );
|
|
|
|
|
// await this.educationMisRepo.save(educationMis_);
|
|
|
|
|
// return new HttpSuccess(educationMis_);
|
|
|
|
|
// }
|
2024-07-25 16:20:48 +07:00
|
|
|
|
|
|
|
|
// /**
|
|
|
|
|
// * API upload EDU
|
|
|
|
|
// *
|
|
|
|
|
// * @summary DEV_0 - upload EDU #
|
|
|
|
|
// *
|
|
|
|
|
// */
|
|
|
|
|
// @Post("")
|
|
|
|
|
// @UseInterceptors(FileInterceptor("file"))
|
|
|
|
|
// async UploadUserDevelopemtById(@UploadedFile() file: Express.Multer.File) {
|
|
|
|
|
// const workbook = xlsx.read(file.buffer, { type: "buffer" });
|
|
|
|
|
// const sheetName = workbook.SheetNames[1];
|
|
|
|
|
// const sheet = workbook.Sheets[sheetName];
|
|
|
|
|
// const getEducations = xlsx.utils.sheet_to_json(sheet);
|
|
|
|
|
|
|
|
|
|
// await Promise.all(
|
|
|
|
|
// getEducations.map(async (item: any) => {
|
|
|
|
|
// if (item["id"] === undefined) {
|
|
|
|
|
// return;
|
|
|
|
|
// }
|
|
|
|
|
// const education = new ProfileEducation();
|
|
|
|
|
|
|
|
|
|
// education.id = item["id"];
|
|
|
|
|
// education.createdAt = item["createdAt"];
|
|
|
|
|
// education.createdUserId = item["createdUserId"];
|
|
|
|
|
// education.lastUpdatedAt = item["lastUpdatedAt"];
|
|
|
|
|
// education.lastUpdateUserId = item["lastUpdateUserId"];
|
|
|
|
|
// education.createdFullName = item["createdFullName"];
|
|
|
|
|
// education.lastUpdateFullName = item["lastUpdateFullName"];
|
|
|
|
|
// education.profileId = item["profileId"];
|
|
|
|
|
// education.country = item["country"];
|
|
|
|
|
// education.degree = item["degree"];
|
|
|
|
|
// education.duration = item["duration"];
|
|
|
|
|
// education.durationYear = item["durationYear"];
|
|
|
|
|
// education.field = item["field"];
|
|
|
|
|
// education.finishDate = item["finishDate"];
|
|
|
|
|
// education.fundName = item["fundName"];
|
|
|
|
|
// education.institute = item["institute"];
|
|
|
|
|
// education.other = item["other"];
|
|
|
|
|
// education.startDate = item["startDate"];
|
|
|
|
|
// education.endDate = item["endDate"];
|
|
|
|
|
// education.educationLevel = item["educationLevel"];
|
|
|
|
|
// education.educationLevelId = item["educationLevelId"];
|
|
|
|
|
// education.positionPath = item["positionPath"];
|
|
|
|
|
// education.positionPathId = item["positionPathId"];
|
|
|
|
|
// education.isDate = item["isDate"];
|
|
|
|
|
// education.isEducation = item["isEducation"];
|
|
|
|
|
// education.note = item["note"];
|
|
|
|
|
// education.profileEmployeeId = item["profileEmployeeId"];
|
|
|
|
|
|
|
|
|
|
// await this.educationRepository.save(education);
|
|
|
|
|
// }),
|
|
|
|
|
// );
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// @Post("uploadSQLEdu")
|
|
|
|
|
// @UseInterceptors(FileInterceptor("file"))
|
|
|
|
|
// async UploadFileSQLEdu(
|
|
|
|
|
// @UploadedFile() file: Express.Multer.File,
|
|
|
|
|
// @Request() request: { user: Record<string, any> },
|
|
|
|
|
// ) {
|
|
|
|
|
// const workbook = xlsx.read(file.buffer, { type: "buffer" });
|
|
|
|
|
// const sheetName = workbook.SheetNames[0]; // Assuming we're reading the first sheet
|
|
|
|
|
// const sheet = workbook.Sheets[sheetName];
|
|
|
|
|
// const getProFile = xlsx.utils.sheet_to_json(sheet);
|
|
|
|
|
// let profiles: any = [];
|
|
|
|
|
// await Promise.all(
|
|
|
|
|
// getProFile.map(async (item: any) => {
|
|
|
|
|
// // Create a new Profile entity and assign fields from the parsed data
|
|
|
|
|
|
|
|
|
|
// const profile = new ProfileEducation();
|
|
|
|
|
// // Check if the profile already exists
|
|
|
|
|
// const existingProfile = await this.educationRepository.findOne({
|
|
|
|
|
// where: { id: item["id"] },
|
|
|
|
|
// });
|
|
|
|
|
// // If profile exists, skip saving
|
|
|
|
|
// if (existingProfile) {
|
|
|
|
|
// return;
|
|
|
|
|
// }
|
|
|
|
|
// // Assign fields from the item to the profile entit
|
|
|
|
|
|
|
|
|
|
// profile.id = item["id"] == "NULL" ? null : item["id"];
|
|
|
|
|
// // profile.createdAt = item["createdAt"] == "NULL" ? null : new Date(item["createdAt"]);
|
|
|
|
|
// profile.createdUserId = item["createdUserId"] == "NULL" ? null : item["createdUserId"];
|
|
|
|
|
// // profile.lastUpdatedAt =
|
|
|
|
|
// // item["lastUpdatedAt"] == "NULL" ? null : new Date(item["lastUpdatedAt"]);
|
|
|
|
|
// profile.lastUpdateUserId =
|
|
|
|
|
// item["lastUpdateUserId"] == "NULL" ? null : item["lastUpdateUserId"];
|
|
|
|
|
// profile.createdFullName =
|
|
|
|
|
// item["createdFullName"] == "NULL" ? null : item["createdFullName"];
|
|
|
|
|
// profile.lastUpdateFullName =
|
|
|
|
|
// item["lastUpdateFullName"] == "NULL" ? null : item["lastUpdateFullName"];
|
|
|
|
|
// profile.profileId = item["profileId"] == "NULL" ? null : item["profileId"];
|
|
|
|
|
// profile.country = item["country"] == "NULL" ? null : item["country"];
|
|
|
|
|
// profile.degree = item["degree"] == "NULL" ? null : item["degree"];
|
|
|
|
|
// profile.duration = item["duration"] == "NULL" ? null : item["duration"];
|
|
|
|
|
// profile.durationYear = item["durationYear"] == "NULL" ? null : item["durationYear"];
|
|
|
|
|
// profile.field = item["field"] == "NULL" ? null : item["field"];
|
|
|
|
|
// // profile.finishDate = item["finishDate"] == "NULL" ? null : new Date(item["finishDate"]);
|
|
|
|
|
// profile.fundName = item["fundName"] == "NULL" ? null : item["fundName"];
|
|
|
|
|
// profile.gpa = item["gpa"] == "NULL" ? null : item["gpa"];
|
|
|
|
|
// profile.institute = item["institute"] == "NULL" ? null : item["institute"];
|
|
|
|
|
// profile.other = item["other"] == "NULL" ? null : item["other"];
|
|
|
|
|
// // profile.startDate = item["startDate"] == "NULL" ? null : new Date(item["startDate"]);
|
|
|
|
|
// // profile.endDate = item["endDate"] == "NULL" ? null : new Date(item["endDate"]);
|
|
|
|
|
// profile.educationLevel = item["educationLevel"] == "NULL" ? null : item["educationLevel"];
|
|
|
|
|
// profile.educationLevelId =
|
|
|
|
|
// item["educationLevelId"] == "NULL" ? null : item["educationLevelId"];
|
|
|
|
|
// profile.positionPath = item["positionPath"] == "NULL" ? null : item["positionPath"];
|
|
|
|
|
// profile.positionPathId = item["positionPathId"] == "NULL" ? null : item["positionPathId"];
|
|
|
|
|
// profile.isDate = item["isDate"] == "NULL" ? null : item["isDate"];
|
|
|
|
|
// profile.isEducation = item["isEducation"] == "NULL" ? null : item["isEducation"];
|
|
|
|
|
// profile.note = item["note"] == "NULL" ? null : item["note"];
|
|
|
|
|
// profile.profileEmployeeId =
|
|
|
|
|
// item["profileEmployeeId"] == "NULL" ? null : item["profileEmployeeId"];
|
|
|
|
|
|
|
|
|
|
// profiles.push(profile);
|
|
|
|
|
// }),
|
|
|
|
|
// );
|
|
|
|
|
// await this.educationRepository.save(profiles);
|
|
|
|
|
// return new HttpSuccess(getProFile);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// @Post("uploadSQLFamilly-Father")
|
|
|
|
|
// @UseInterceptors(FileInterceptor("file"))
|
|
|
|
|
// async UploadFileSQLFamilly(
|
|
|
|
|
// @UploadedFile() file: Express.Multer.File,
|
|
|
|
|
// // @Request() request: { user: Record<string, any> },
|
|
|
|
|
// ) {
|
|
|
|
|
// const workbook = xlsx.read(file.buffer, { type: "buffer" });
|
|
|
|
|
// const sheetName = workbook.SheetNames[0]; // Assuming we're reading the first sheet
|
|
|
|
|
// const sheet = workbook.Sheets[sheetName];
|
|
|
|
|
// const getProFile = xlsx.utils.sheet_to_json(sheet);
|
|
|
|
|
// let profiles: any = [];
|
|
|
|
|
// await Promise.all(
|
|
|
|
|
// getProFile.map(async (item: any) => {
|
|
|
|
|
// // Create a new Profile entity and assign fields from the parsed data
|
|
|
|
|
|
|
|
|
|
// const profile = new ProfileFamilyFather();
|
|
|
|
|
// // Check if the profile already exists
|
|
|
|
|
// const existingProfile = await this.profileFamilyFatherRepository.findOne({
|
|
|
|
|
// where: { id: item["id"] },
|
|
|
|
|
// });
|
|
|
|
|
// // If profile exists, skip saving
|
|
|
|
|
// if (existingProfile) {
|
|
|
|
|
// return;
|
|
|
|
|
// }
|
|
|
|
|
// // Assign fields from the item to the profile entit
|
|
|
|
|
|
|
|
|
|
// profile.id = item["id"] == "NULL" ? null : item["id"];
|
|
|
|
|
// // profile.createdAt = item["createdAt"] == "NULL" ? null : new Date(item["createdAt"]);
|
|
|
|
|
// profile.createdUserId = item["createdUserId"] == "NULL" ? null : item["createdUserId"];
|
|
|
|
|
// // profile.lastUpdatedAt =
|
|
|
|
|
// // item["lastUpdatedAt"] == "NULL" ? null : new Date(item["lastUpdatedAt"]);
|
|
|
|
|
// profile.lastUpdateUserId =
|
|
|
|
|
// item["lastUpdateUserId"] == "NULL" ? null : item["lastUpdateUserId"];
|
|
|
|
|
// profile.createdFullName =
|
|
|
|
|
// item["createdFullName"] == "NULL" ? null : item["createdFullName"];
|
|
|
|
|
// profile.lastUpdateFullName =
|
|
|
|
|
// item["lastUpdateFullName"] == "NULL" ? null : item["lastUpdateFullName"];
|
|
|
|
|
// profile.fatherPrefix = item["fatherPrefix"] == "NULL" ? null : item["fatherPrefix"];
|
|
|
|
|
// profile.fatherFirstName =
|
|
|
|
|
// item["fatherFirstName"] == "NULL" ? null : item["fatherFirstName"];
|
|
|
|
|
// profile.fatherLastName = item["fatherLastName"] == "NULL" ? null : item["fatherLastName"];
|
|
|
|
|
// profile.fatherCareer = item["fatherCareer"] == "NULL" ? null : item["fatherCareer"];
|
|
|
|
|
// profile.fatherCitizenId =
|
|
|
|
|
// item["fatherCitizenId"] == "NULL" ? null : item["fatherCitizenId"];
|
|
|
|
|
// profile.fatherLive = item["fatherLive"] == "NULL" ? null : item["fatherLive"];
|
|
|
|
|
// profile.profileId = item["profileId"] == "NULL" ? null : item["profileId"];
|
|
|
|
|
// profile.profileEmployeeId =
|
|
|
|
|
// item["profileEmployeeId"] == "NULL" ? null : item["profileEmployeeId"];
|
|
|
|
|
// profiles.push(profile);
|
|
|
|
|
// }),
|
|
|
|
|
// );
|
|
|
|
|
// await this.profileFamilyFatherRepository.save(profiles);
|
|
|
|
|
// return new HttpSuccess(getProFile);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// @Post("uploadSQLFamilly-Mother")
|
|
|
|
|
// @UseInterceptors(FileInterceptor("file"))
|
|
|
|
|
// async UploadFileSQLFamillyMother(
|
|
|
|
|
// @UploadedFile() file: Express.Multer.File,
|
|
|
|
|
// @Request() request: { user: Record<string, any> },
|
|
|
|
|
// ) {
|
|
|
|
|
// const workbook = xlsx.read(file.buffer, { type: "buffer" });
|
|
|
|
|
// const sheetName = workbook.SheetNames[0]; // Assuming we're reading the first sheet
|
|
|
|
|
// const sheet = workbook.Sheets[sheetName];
|
|
|
|
|
// const getProFile = xlsx.utils.sheet_to_json(sheet);
|
|
|
|
|
// let profiles: any = [];
|
|
|
|
|
// await Promise.all(
|
|
|
|
|
// getProFile.map(async (item: any) => {
|
|
|
|
|
// // Create a new Profile entity and assign fields from the parsed data
|
|
|
|
|
|
|
|
|
|
// const profile = new ProfileFamilyMother();
|
|
|
|
|
// // Check if the profile already exists
|
|
|
|
|
// const existingProfile = await this.profileFamilyMotherRepository.findOne({
|
|
|
|
|
// where: { id: item["id"] },
|
|
|
|
|
// });
|
|
|
|
|
// // If profile exists, skip saving
|
|
|
|
|
// if (existingProfile) {
|
|
|
|
|
// return;
|
|
|
|
|
// }
|
|
|
|
|
// // Assign fields from the item to the profile entit
|
|
|
|
|
|
|
|
|
|
// profile.id = item["id"] == "NULL" ? null : item["id"];
|
|
|
|
|
// // profile.createdAt = item["createdAt"] == "NULL" ? null : new Date(item["createdAt"]);
|
|
|
|
|
// profile.createdUserId = item["createdUserId"] == "NULL" ? null : item["createdUserId"];
|
|
|
|
|
// // profile.lastUpdatedAt =
|
|
|
|
|
// // item["lastUpdatedAt"] == "NULL" ? null : new Date(item["lastUpdatedAt"]);
|
|
|
|
|
// profile.lastUpdateUserId =
|
|
|
|
|
// item["lastUpdateUserId"] == "NULL" ? null : item["lastUpdateUserId"];
|
|
|
|
|
// profile.createdFullName =
|
|
|
|
|
// item["createdFullName"] == "NULL" ? null : item["createdFullName"];
|
|
|
|
|
// profile.lastUpdateFullName =
|
|
|
|
|
// item["lastUpdateFullName"] == "NULL" ? null : item["lastUpdateFullName"];
|
|
|
|
|
// profile.motherPrefix = item["motherPrefix"] == "NULL" ? null : item["motherPrefix"];
|
|
|
|
|
// profile.motherFirstName =
|
|
|
|
|
// item["motherFirstName"] == "NULL" ? null : item["motherFirstName"];
|
|
|
|
|
// profile.motherLastName = item["motherLastName"] == "NULL" ? null : item["motherLastName"];
|
|
|
|
|
// profile.motherCareer = item["motherCareer"] == "NULL" ? null : item["motherCareer"];
|
|
|
|
|
// profile.motherCitizenId =
|
|
|
|
|
// item["motherCitizenId"] == "NULL" ? null : item["motherCitizenId"];
|
|
|
|
|
// profile.motherLive = item["motherLive"] == "NULL" ? null : item["motherLive"];
|
|
|
|
|
// profile.profileId = item["profileId"] == "NULL" ? null : item["profileId"];
|
|
|
|
|
// profile.profileEmployeeId =
|
|
|
|
|
// item["profileEmployeeId"] == "NULL" ? null : item["profileEmployeeId"];
|
|
|
|
|
// profiles.push(profile);
|
|
|
|
|
// }),
|
|
|
|
|
// );
|
|
|
|
|
// await this.profileFamilyMotherRepository.save(profiles);
|
|
|
|
|
// return new HttpSuccess(getProFile);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// @Post("uploadSQLFamilly-Couple")
|
|
|
|
|
// @UseInterceptors(FileInterceptor("file"))
|
|
|
|
|
// async UploadFileSQLFamillyCouple(
|
|
|
|
|
// @UploadedFile() file: Express.Multer.File,
|
|
|
|
|
// // @Request() request: { user: Record<string, any> },
|
|
|
|
|
// ) {
|
|
|
|
|
// const workbook = xlsx.read(file.buffer, { type: "buffer" });
|
|
|
|
|
// const sheetName = workbook.SheetNames[0]; // Assuming we're reading the first sheet
|
|
|
|
|
// const sheet = workbook.Sheets[sheetName];
|
|
|
|
|
// const getProFile = xlsx.utils.sheet_to_json(sheet);
|
|
|
|
|
// let profiles: any = [];
|
|
|
|
|
// await Promise.all(
|
|
|
|
|
// getProFile.map(async (item: any) => {
|
|
|
|
|
// // Create a new Profile entity and assign fields from the parsed data
|
|
|
|
|
|
|
|
|
|
// const profile = new ProfileFamilyCouple();
|
|
|
|
|
// // Check if the profile already exists
|
|
|
|
|
// const existingProfile = await this.profileFamilyCoupleRepository.findOne({
|
|
|
|
|
// where: { id: item["id"] },
|
|
|
|
|
// });
|
|
|
|
|
// // If profile exists, skip saving
|
|
|
|
|
// if (existingProfile) {
|
|
|
|
|
// return;
|
|
|
|
|
// }
|
|
|
|
|
// // Assign fields from the item to the profile entit
|
|
|
|
|
|
|
|
|
|
// profile.id = item["id"] == "NULL" ? null : item["id"];
|
|
|
|
|
// // profile.createdAt = item["createdAt"] == "NULL" ? null : new Date(item["createdAt"]);
|
|
|
|
|
// profile.createdUserId = item["createdUserId"] == "NULL" ? null : item["createdUserId"];
|
|
|
|
|
// // profile.lastUpdatedAt =
|
|
|
|
|
// // item["lastUpdatedAt"] == "NULL" ? null : new Date(item["lastUpdatedAt"]);
|
|
|
|
|
// profile.lastUpdateUserId =
|
|
|
|
|
// item["lastUpdateUserId"] == "NULL" ? null : item["lastUpdateUserId"];
|
|
|
|
|
// profile.createdFullName =
|
|
|
|
|
// item["createdFullName"] == "NULL" ? null : item["createdFullName"];
|
|
|
|
|
// profile.lastUpdateFullName =
|
|
|
|
|
// item["lastUpdateFullName"] == "NULL" ? null : item["lastUpdateFullName"];
|
|
|
|
|
// profile.couple = item["couple"] == "NULL" ? null : item["couple"];
|
|
|
|
|
// profile.couplePrefix = item["couplePrefix"] == "NULL" ? null : item["couplePrefix"];
|
|
|
|
|
// profile.coupleFirstName =
|
|
|
|
|
// item["coupleFirstName"] == "NULL" ? null : item["coupleFirstName"];
|
|
|
|
|
// profile.coupleLastName = item["coupleLastName"] == "NULL" ? null : item["coupleLastName"];
|
|
|
|
|
// profile.coupleLastNameOld =
|
|
|
|
|
// item["coupleLastNameOld"] == "NULL" ? null : item["coupleLastNameOld"];
|
|
|
|
|
// profile.coupleCareer = item["coupleCareer"] == "NULL" ? null : item["coupleCareer"];
|
|
|
|
|
// profile.coupleCitizenId =
|
|
|
|
|
// item["coupleCitizenId"] == "NULL" ? null : item["coupleCitizenId"];
|
|
|
|
|
// profile.coupleLive = item["coupleLive"] == "NULL" ? null : item["coupleLive"];
|
|
|
|
|
// profile.relationship = item["relationship"] == "NULL" ? null : item["relationship"];
|
|
|
|
|
// profile.profileId = item["profileId"] == "NULL" ? null : item["profileId"];
|
|
|
|
|
// profile.profileEmployeeId =
|
|
|
|
|
// item["profileEmployeeId"] == "NULL" ? null : item["profileEmployeeId"];
|
|
|
|
|
// profiles.push(profile);
|
|
|
|
|
// }),
|
|
|
|
|
// );
|
|
|
|
|
// await this.profileFamilyCoupleRepository.save(profiles);
|
|
|
|
|
// return new HttpSuccess(getProFile);
|
|
|
|
|
// }
|
2024-06-06 11:15:26 +07:00
|
|
|
}
|